//===== rAthena Script =======================================
//= PvP Top 10 Ladder Weekly Reward
prontera,166,188,3 script PVP REWARD 88,{
.@cid = getcharid(0);
query_sql( "SELECT `pvpreward` FROM `char` WHERE `char_id` = "+.@cid[.@i]+" LIMIT 1",.@pvpreward );
query_sql( "UPDATE `char` SET `pvpreward` = 0 WHERE `char_id` = "+.@cid[.@i]+" LIMIT 1" );
set .PVP_Reward, 7227;
set .TOP_1_PLAYER, 7227;
set .TOP_2_PLAYER, 7227;
// ITEM LISTED PRIZE
switch ( .@pvpreward ) {
case 1: getitem .TOP_1_PLAYER,50; break;
case 2: getitem .TOP_2_PLAYER,45; break;
case 3: getitem .PVP_Reward,40; break;
case 4: getitem .PVP_Reward,30; break;
case 5: getitem .PVP_Reward,20; break;
case 6: getitem .PVP_Reward,10; break;
case 7: getitem .PVP_Reward,5; break;
case 8: getitem .PVP_Reward,5; break;
case 9: getitem .PVP_Reward,5; break;
case 10: getitem .PVP_Reward,5; break;
default:
mes "[PVP Gate Keeper]";
mes "You're not top pvp for this week. or you already claimed the rewards.";
mes "The Reward Item is <ITEM>RTC<INFO>"+ .TOP_1_PLAYER +"</INFO></ITEM>.";
mes "The Reward giving days";
mes "Start Claiming: ^0000FFSun12:00 Noon^000000";
mes "End Claiming: ^0000FFMon 12:00 Noon^000000";
close;
}
mes "[PVP Gate Keeper]";
mes "Congratulation "+ strcharinfo(0) +"";
mes "You gained reward as top "+.@pvpreward+" PVP.";
close;
OnInit:
// INITIATE THE LIMIT OF LADDER LISTED PRIZE
.limit = 10;
waitingroom "[PVP Reward]",0;
end;
//DATE TIME ASSIGN
OnSun1200:
// **************************************************************
// FIRST EMISTRY SCRIPT
// **************************************************************
for ( .@i = 3; .@i > 0; .@i-- ){
announce "Top "+ .limit +" PVP Rewards will be given in "+.@i+" minutes, please login your characters to get the auto assigned rewards.",bc_all;
sleep 60000;
}
//ITEM NAME ANNOUNCE ON THE DAY OF CLAIMING PRIZE
// item id reward for top 10 pvp
setarray .@itemid,50058,50006,50006,50006,50006,50006,50006,50006,50006,50006;
// item quantity reward for top 10 pvp
setarray .@itemid_qty,1,7,7,7,5,5,5,2,2,2;
.@itemid_size = getarraysize( .@itemid );
query_sql ("SELECT c.`account_id`,c.`char_id` FROM `pvpladder` pvp INNER JOIN `char` c ON c.`char_id` = pvp.`char_id` WHERE pvp.`kills` > 0 ORDER BY pvp.`kills` DESC,pvp.`deaths` LIMIT "+.@itemid_size ,.@aid,.@cid );
.@cid_size = getarraysize( .@cid );
for ( .@i = 0; .@i < .@cid_size; .@i++ )
if ( .@aid[.@i] && isloggedin( .@aid[.@i],.@cid[.@i] ) ) {
attachrid( .@aid[.@i] );
announce "Top "+( .@i+1 )+" PVP Rewards - "+strcharinfo(0)+" obtained "+.@itemid_qty[.@i]+"x "+getitemname( .@itemid[.@i] ),bc_all;
}
detachrid;
query_sql( "SELECT `char_id` FROM `pvpladder` WHERE `kills` > 0 ORDER BY `kills` DESC,`deaths` LIMIT "+.limit,.@cid );
.@cid_size = getarraysize( .@cid );
for ( .@i = 0; .@i < .@cid_size; .@i++ )
query_sql("UPDATE `char` SET `pvpreward` = "+( .@i+1 )+" WHERE `char_id` = "+.@cid[.@i]+" LIMIT 1");
announce "Top 1 PVP Reward - "+.@cid_size+" players is selected as winner.",bc_all;
//AUTO TRUNCATE DB
announce "PVP Ladder Will Reset in Monday 12PM +8GMT. Claim your prize immediately",bc_all;
end;
}
/*
ALTER TABLE `char` ADD `pvpreward` TINYINT(3) UNSIGNED NOT NULL DEFAULT '0' AFTER `fame`;
//*/
- script PVPRESETLADDER#disable1 -1,{
//OnInit:
OnMon1800:
query_sql( "TRUNCATE `pvpladder`" );
announce "PVP Ladder completely reset.",bc_all;
end;
}