Hello to everybody, ^^
I create a package , the name is Rent System,
the pkg function on singn (similar a housing system) when the Player click on the rent sing , open a gump when the pg pay a first rent start a system rent, in the sign props write a data when start the first payment, now i need to start countdown days for the next rent ...
now i not ideas, someone wants to help me?
Date countdown
Moderator: POL Developer
- ghibli1983
- New User
- Posts: 27
- Joined: Mon Apr 23, 2018 1:36 pm
Re: Date countdown
Solved,
I used the POLCore().systime and and his family
thanks to all I read carefully the unix time topic,
TIP FOR OTHER NOVICE USER; https://www.epochconverter.com/ READ
I used the POLCore().systime and and his family
thanks to all I read carefully the unix time topic,
TIP FOR OTHER NOVICE USER; https://www.epochconverter.com/ READ
Re: Date countdown
I am glad you solved it. I had a solution I was going to post but it involved using the game clock but I think your solution is probably better.
- ghibli1983
- New User
- Posts: 27
- Joined: Mon Apr 23, 2018 1:36 pm
Re: Date countdown
please yukiko , post your solution, i want learn more and more and more for the pol , is possible use in the future for the other package or function
Re: Date countdown
I'll see if i can dig up my static housing package which has a rental system built into it referred to as Upkeep.
Re: Date countdown
Sorry, I do not speak English.
I do not know if this will help you.
I did this job a long time ago.
you only have to add the total time and the formula that already has the correct calculations for leap year, and you can add the time zone.
if you add a return you can pick up this data structure, and you can do other functions to show the time the way you want.
this code was created to create a date that is in the future.
OR
use util::StrFormatTime( format_string, time_stamp:=0 ), time_stamp == future
http://www.cppreference.com/stddate/strftime.html
var future := 100000;
print(StrFormatTime( "%Y %m %d %H %M %S", (POLCore().systime + future) ));
output 2018 07 12 05 44 35
I do not know if this will help you.
I did this job a long time ago.
you only have to add the total time and the formula that already has the correct calculations for leap year, and you can add the time zone.
if you add a return you can pick up this data structure, and you can do other functions to show the time the way you want.
this code was created to create a date that is in the future.
Code: Select all
program data(character)
var year := {2678400,2419200,2678400,2592000,2678400,2592000,2678400,2678400,2592000,2678400,2592000,2678400};
var leap_year := {2678400,2505600,2678400,2592000,2678400,2592000,2678400,2678400,2592000,2678400,2592000,2678400};
var date := struct{"second":=0,"minute":=0,"hour":=0,"day":=1,"month":=1,"year":=1970};
var time := polcore().systime;//add the time here in the future
//time := (time - 3*60*60); //com Fuso horário do brasil - 3 horas
var quociente := cint(time / 126230400);// 126230400 é igual a 3 anos normais + 1 bissexto, transformados em segundos
time := ( time - ( quociente * 126230400 )) ;// time = quantos 4 anos cabem no total
date.year := ( date.year + quociente*4 );
while(time >= 31536000)
if(date.year % 4 == 0)
date.year := ( date.year + 1 );
time := ( time - 31622400 );
else
date.year := ( date.year + 1 );
time := ( time - 31536000 );
endif
endwhile
if(date.year % 4 == 0)
while(time >= leap_year[date.month] )
time := ( time - leap_year[date.month] );
date.month := ( date.month + 1 );
endwhile
else
while(time >= year[date.month] )
time := ( time - year[date.month] );
date.month := ( date.month + 1 );
endwhile
endif
quociente := cint( time / 86400 );
time := ( time - ( quociente * 86400 )) ;
date.day := (date.day + quociente );
quociente := cint( time / 3600 );
time := ( time - ( quociente * 3600 )) ;
date.hour := (date.hour + quociente );
quociente := cint( time / 60 );
date.minute := (date.minute + quociente );
date.second := ( time - ( quociente * 60 )) ;
SendSysMessage( character," Clock "+date.hour+":"+date.minute+":"+date.second, 3, 33 );
SendSysMessage( character," Date "+date.month+"/"+date.day+"/"+date.year, 3, 33 );
endprogram
OR
use util::StrFormatTime( format_string, time_stamp:=0 ), time_stamp == future
http://www.cppreference.com/stddate/strftime.html
var future := 100000;
print(StrFormatTime( "%Y %m %d %H %M %S", (POLCore().systime + future) ));
output 2018 07 12 05 44 35
- ghibli1983
- New User
- Posts: 27
- Joined: Mon Apr 23, 2018 1:36 pm
Re: Date countdown
nice to meet you here, I use your code in another PACKAGE in my Shard, thanks for developing the date function, I did not think to meet you here
PS: Note the first props in my gump.... in my fisrt post
PS: Note the first props in my gump.... in my fisrt post
guialtran wrote: ↑Tue Jul 10, 2018 8:45 pm Sorry, I do not speak English.
I do not know if this will help you.
I did this job a long time ago.
you only have to add the total time and the formula that already has the correct calculations for leap year, and you can add the time zone.
if you add a return you can pick up this data structure, and you can do other functions to show the time the way you want.
this code was created to create a date that is in the future.
Code: Select all
program data(character) var year := {2678400,2419200,2678400,2592000,2678400,2592000,2678400,2678400,2592000,2678400,2592000,2678400}; var leap_year := {2678400,2505600,2678400,2592000,2678400,2592000,2678400,2678400,2592000,2678400,2592000,2678400}; var date := struct{"second":=0,"minute":=0,"hour":=0,"day":=1,"month":=1,"year":=1970}; var time := polcore().systime;//add the time here in the future //time := (time - 3*60*60); //com Fuso horário do brasil - 3 horas var quociente := cint(time / 126230400);// 126230400 é igual a 3 anos normais + 1 bissexto, transformados em segundos time := ( time - ( quociente * 126230400 )) ;// time = quantos 4 anos cabem no total date.year := ( date.year + quociente*4 ); while(time >= 31536000) if(date.year % 4 == 0) date.year := ( date.year + 1 ); time := ( time - 31622400 ); else date.year := ( date.year + 1 ); time := ( time - 31536000 ); endif endwhile if(date.year % 4 == 0) while(time >= leap_year[date.month] ) time := ( time - leap_year[date.month] ); date.month := ( date.month + 1 ); endwhile else while(time >= year[date.month] ) time := ( time - year[date.month] ); date.month := ( date.month + 1 ); endwhile endif quociente := cint( time / 86400 ); time := ( time - ( quociente * 86400 )) ; date.day := (date.day + quociente ); quociente := cint( time / 3600 ); time := ( time - ( quociente * 3600 )) ; date.hour := (date.hour + quociente ); quociente := cint( time / 60 ); date.minute := (date.minute + quociente ); date.second := ( time - ( quociente * 60 )) ; SendSysMessage( character," Clock "+date.hour+":"+date.minute+":"+date.second, 3, 33 ); SendSysMessage( character," Date "+date.month+"/"+date.day+"/"+date.year, 3, 33 ); endprogram
OR
use util::StrFormatTime( format_string, time_stamp:=0 ), time_stamp == future
http://www.cppreference.com/stddate/strftime.html
var future := 100000;
print(StrFormatTime( "%Y %m %d %H %M %S", (POLCore().systime + future) ));
output 2018 07 12 05 44 35
Last edited by ghibli1983 on Wed Jul 11, 2018 1:24 am, edited 1 time in total.
- ghibli1983
- New User
- Posts: 27
- Joined: Mon Apr 23, 2018 1:36 pm
Re: Date countdown
The rent system is complete i use a unixtime in polcore, but i like learn other methods , I like to learn from other developers !
Next step is notify the rent countdown when the player logged on , i think check the props in logon code (script/misc/logon)
Thank's for your contribute!
Next step is notify the rent countdown when the player logged on , i think check the props in logon code (script/misc/logon)
Thank's for your contribute!