Mihael Posted June 18, 2019 Posted June 18, 2019 Hi everyone, I'm using this vip system: function script getPremium { set .@ticks, getarg(0); if (.@ticks <= 0) { debugmes "getPremium - tried to set a timer in the past"; end; } set #prmm, ((#prmm > gettimetick(2))? #prmm : gettimetick(2)) + .@ticks; doevent "login::OnPCLoginEvent"; return; } - script login -1,{ OnPCLoginEvent: if (prmm > gettimetick(2)) { dispbottom "Your Premium Service will expire after " + callfunc("Time2Str",prmm); //sc_start SC_EXPBOOST,(( prmm - gettimetick(2) ) * 1000 ),200; //sc_start SC_JEXPBOOST,(( prmm - gettimetick(2) ) * 1000 ),200; //sc_start SC_ITEMBOOST,(( prmm - gettimetick(2) ) * 1000 ),100; atcommand "@adjgroup 1 "+strcharinfo(0); deltimer strnpcinfo(3)+"::OnPCLoginEvent"; if ((prmm - gettimetick(2)) < 2147483) { addtimer (prmm - gettimetick(2)) *1000, strnpcinfo(3)+"::OnPCLoginEvent"; } else { addtimer 2147483000, strnpcinfo(3)+"::OnPCLoginEvent"; } } else if (prmm) { atcommand "@adjgroup 0 "+strcharinfo(0); sc_end SC_EXPBOOST; sc_end SC_JEXPBOOST; sc_end SC_ITEMBOOST; set prmm, 0; message strcharinfo(0),"[ VIP ]: -- Your account vip expired."; } end; } - script atcmd23 -1,{ OnAtcommand: message strcharinfo(0),"[ VIP ]: -- You have more time vip > " + callfunc("Time2Str",prmm); end; OnInit: bindatcmd "vip",strnpcinfo(3)+"::OnAtcommand"; end; } and this ticket vip: { Id: 32249 AegisName: "Gold_Card" Name: "Ticket 7 Days VIP" Type: "IT_HEALING" Buy: 10 Weight: 10 Trade: { nodrop: true nocart: true nostorage: true nogstorage: true nomail: true noauction: true } Script: <" callfunc "getPremium", 7 * 24 * 3600; "> }, but he is not adding up the days of the player's vip account. if I use the ticket several times it grants only 7 days vip, instead of adding 7 + 7 + 7 + 7 + 7 days for example. Spoiler How do I solve this? Quote
0 Haruka Mayumi Posted June 18, 2019 Posted June 18, 2019 you set it as account variable which is "#". set #prmm, ((#prmm > gettimetick(2))? #prmm : gettimetick(2)) + .@ticks; but you used a character variable on this line to check. if (prmm > gettimetick(2)) also, if you will use the vip system. use vip_status and vip_time as it will automatically changed the players group to 5. *vip_status(<type>,{"<character name>"}) Returns various information about a player's VIP status. Valid types: VIP_STATUS_ACTIVE - VIP status: true if the player is a VIP or false if not VIP_STATUS_EXPIRE - VIP expire timestamp if the player is VIP or 0 if not VIP_STATUS_REMAINING - VIP time remaining in seconds NOTE: This command is only available if the VIP System is enabled. --------------------------------------- *vip_time <time>,{"<character name>"}; Changes a player's VIP time (in minutes). A positive value will increase time, and a negative value will decrease time. NOTE: This command is only available if the VIP System is enabled. Quote
0 sader1992 Posted June 18, 2019 Posted June 18, 2019 look like your item db is herc's item db are you using rAthena ? Quote
0 Mihael Posted June 18, 2019 Author Posted June 18, 2019 On 6/18/2019 at 2:54 PM, Haruka Mayumi said: you set it as account variable which is "#". set #prmm, ((#prmm > gettimetick(2))? #prmm : gettimetick(2)) + .@ticks; but you used a character variable on this line to check. if (prmm > gettimetick(2)) also, if you will use the vip system. use vip_status and vip_time as it will automatically changed the players group to 5. *vip_status(<type>,{"<character name>"}) Returns various information about a player's VIP status. Valid types: VIP_STATUS_ACTIVE - VIP status: true if the player is a VIP or false if not VIP_STATUS_EXPIRE - VIP expire timestamp if the player is VIP or 0 if not VIP_STATUS_REMAINING - VIP time remaining in seconds NOTE: This command is only available if the VIP System is enabled. --------------------------------------- *vip_time <time>,{"<character name>"}; Changes a player's VIP time (in minutes). A positive value will increase time, and a negative value will decrease time. NOTE: This command is only available if the VIP System is enabled. Many thanks, I'll check it out! On 6/18/2019 at 4:10 PM, sader1992 said: look like your item db is herc's item db are you using rAthena ? Actually my emulator is a modified old rAthena. I am studying the use of some old variables in it. Solved, ty Quote
Question
Mihael
Hi everyone, I'm using this vip system:
function script getPremium { set .@ticks, getarg(0); if (.@ticks <= 0) { debugmes "getPremium - tried to set a timer in the past"; end; } set #prmm, ((#prmm > gettimetick(2))? #prmm : gettimetick(2)) + .@ticks; doevent "login::OnPCLoginEvent"; return; } - script login -1,{ OnPCLoginEvent: if (prmm > gettimetick(2)) { dispbottom "Your Premium Service will expire after " + callfunc("Time2Str",prmm); //sc_start SC_EXPBOOST,(( prmm - gettimetick(2) ) * 1000 ),200; //sc_start SC_JEXPBOOST,(( prmm - gettimetick(2) ) * 1000 ),200; //sc_start SC_ITEMBOOST,(( prmm - gettimetick(2) ) * 1000 ),100; atcommand "@adjgroup 1 "+strcharinfo(0); deltimer strnpcinfo(3)+"::OnPCLoginEvent"; if ((prmm - gettimetick(2)) < 2147483) { addtimer (prmm - gettimetick(2)) *1000, strnpcinfo(3)+"::OnPCLoginEvent"; } else { addtimer 2147483000, strnpcinfo(3)+"::OnPCLoginEvent"; } } else if (prmm) { atcommand "@adjgroup 0 "+strcharinfo(0); sc_end SC_EXPBOOST; sc_end SC_JEXPBOOST; sc_end SC_ITEMBOOST; set prmm, 0; message strcharinfo(0),"[ VIP ]: -- Your account vip expired."; } end; } - script atcmd23 -1,{ OnAtcommand: message strcharinfo(0),"[ VIP ]: -- You have more time vip > " + callfunc("Time2Str",prmm); end; OnInit: bindatcmd "vip",strnpcinfo(3)+"::OnAtcommand"; end; }
and this ticket vip:
{ Id: 32249 AegisName: "Gold_Card" Name: "Ticket 7 Days VIP" Type: "IT_HEALING" Buy: 10 Weight: 10 Trade: { nodrop: true nocart: true nostorage: true nogstorage: true nomail: true noauction: true } Script: <" callfunc "getPremium", 7 * 24 * 3600; "> },
but he is not adding up the days of the player's vip account.
if I use the ticket several times it grants only 7 days vip, instead of adding 7 + 7 + 7 + 7 + 7 days for example.
How do I solve this?
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.