// ~~~~~ show time left in days, hours, minutes and seconds ~~~~~
function script timeleft__ {
if ( ( .@left = getarg(0) ) <= 0 ) return getarg(0);
.@day = .@left / 86400;
.@hour = .@left % 86400 / 3600;
.@min = .@left % 3600 / 60;
.@sec = .@left % 60;
if ( .@day )
return .@day +" day "+ .@hour +" hour";
else if ( .@hour )
return .@hour +" hour "+ .@min +" min";
else if ( .@min )
return .@min +" min "+ .@sec +" sec";
else
return .@sec +" sec";
}
prontera,156,179,5 script Player Promoter 947,{
mes "[Player Promoter]";
if ( getgmlevel() == 99 ) {
mes "Hi Admin, do you want to distribute ^00CC00Player Promoter Cards^000000 with your name on it ?";
next;
for ( .@i = 1; .@i <= .total_group; .@i++ )
.@menu$ = .@menu$ +"Distribute "+ getitemname( .group_idreq[.@i] ) +":";
.@s = select( .@menu$ );
getitem2 .group_idreq[.@s], 1,1,0,0, 254, 0, getcharid(0) % ( 1 << 16 ), getcharid(0) >> 16;
close;
}
else if ( getgmlevel() > 1 ) {
mes "Only Admin can use me";
close;
}
for ( .@i = 1; .@i <= .total_group; .@i++ )
.@menu$ = .@menu$ +( ( getgroupid() < .@i && countitem( .group_idreq[.@i] ) )? "upgrade to "+ .group_name$[.@i] : "" )+":";
if ( getstrlen( #pp_accupgrade$ ) ) {
sscanf #pp_accupgrade$, "%d %d", .@id, .@time;
mes "Your account is currently a ^00CC00"+ .group_name$[.@id] +"^000000. You still have ^0000FF"+ callfunc( "timeleft__", .@time - gettimetick(2) )+"^000000.";
if ( getstrlen( .@menu$ ) == .total_group ) close;
}
else if ( getstrlen( .@menu$ ) == .total_group ) {
mes "Make a donation and you can upgrade your account to become Super Players ^^";
close;
}
mes "Do you want to upgrade your account ?";
next;
.@s = select( .@menu$ );
delitem .group_idreq[.@s], 1;
#pp_accupgrade$ = .@s +" "+( gettimetick(2) + 2592000 ); // 1 month
atcommand "@adjgroup "+ .@s;
mes "[Player Promoter]";
mes "Your account has successfully upgraded to "+ .group_name$[1];
sc_start SC_EXPBOOST,1,0;
close;
OnPCLoginEvent:
if ( getgmlevel() > 1 )
#pp_accupgrade$ = "";
if ( !getstrlen( #pp_accupgrade$ ) ) end;
sscanf #pp_accupgrade$, "%d %d", .@id, .@time;
.@left = .@time - gettimetick(2);
if ( .@left > 0 ) {
atcommand "@adjgroup "+ .@id;
if ( .@left >= 2147483 ) end;
addtimer .@left *1000, "player_demoter::Ondemote";
sc_start SC_EXPBOOST,1,0;
end;
}
Ondemote:
atcommand "@adjgroup 0";
message strcharinfo(0), "Your account has demoted to normal player";
#pp_accupgrade$ = "";
sc_start SC_DROPBOOST,1,0;
end;
OnInit:
// setarray .group_<definition>, <group ID 1>, <group ID 2>, <group ID 3>; ... must follow the sequence in 1,2,3,4,5 ...
setarray .group_idreq[1], 31061, 31062, 31063;
setarray .group_name$[1], "Super Player", "Hyper Player", "Ultra Player";
.total_group = 3;
end;
}