/*
create table gold_ranking (
char_id int(11) primary key,
name varchar(23) default '',
gold_points int(11) default 0,
key (gold_points)
) engine = innodb;
create table gold_ranking_today (
char_id int(11) primary key,
name varchar(23) default '',
gold_points_today int(11) default 0,
key (gold_points_today)
) engine = innodb;
*/
prontera,165,195,5 script Gold Room 848,{
OnMenu:
OnMain:
mes "[ Gold Room ]";
mes "Welcome, ^ff0000" +strcharinfo(0)+ "!^000000";
mes "We rank players based on their performance on farming Gold.";
mes " ";
[email protected]$ = "SELECT `name`, IF(@d=t.`gold_points`, @r, @r:
[email protected]), @d:=t.`gold_points`, @i:
[email protected]+1 ";
[email protected]$ += "FROM `gold_ranking` t, (SELECT @d:=0, @r:=0, @i:=1)q ";
[email protected]$ += "ORDER BY `gold_points` DESC LIMIT 1";
[email protected] = query_sql(
[email protected]$,
[email protected]$,
[email protected],
[email protected],
[email protected]);
query_sql "select gold_points from `gold_ranking` where char_id = "+ getcharid(0),
[email protected];
menu "Enter ^ff0000Gold Room^000000 ^3333cc(" + getmapusers("ordeal_1-2") + ")^000000",L_Enter,"",L_Total,"",L_Today,"Cancel",L_Cancel;
L_Total:
clear;
mes "[ Gold Ladder ]";
mes "^73acde<Rank>^000000 ^40cc39<Name>^000000 ^cc4f39<Points>^000000";
[email protected]$ = "SELECT `name`, IF(@d=t.`gold_points`, @r, @r:
[email protected]), @d:=t.`gold_points`, @i:
[email protected]+1 ";
[email protected]$ += "FROM `gold_ranking` t, (SELECT @d:=0, @r:=0, @i:=1)q ";
[email protected]$ += "ORDER BY `gold_points` DESC LIMIT 10";
[email protected] = query_sql(
[email protected]$,
[email protected]$,
[email protected],
[email protected],
[email protected]);
if (
[email protected] ) {
mes " ^777777-- Ladder is currently empty.^000000";
close;
}
for (
[email protected] = 0;
[email protected] <
[email protected];
[email protected] )
mes "^73acde"+
[email protected][
[email protected]] +".^000000 ^40cc39"+
[email protected]$[
[email protected]] +" : ^000000 ^cc4f39<"+
[email protected][
[email protected]] +">^000000";
end;
L_Today:
clear;
mes "[ Gold Ladder ]";
mes "^73acde<Rank>^000000 ^40cc39<Name>^000000 ^ffad33<Points>^000000";
[email protected]$ = "SELECT `name`, IF(@d=t.`gold_points_today`, @r, @r:
[email protected]), @d:=t.`gold_points_today`, @i:
[email protected]+1 ";
[email protected]$ += "FROM `gold_ranking_today` t, (SELECT @d:=0, @r:=0, @i:=1)q ";
[email protected]$ += "ORDER BY `gold_points_today` DESC LIMIT 10";
[email protected] = query_sql(
[email protected]$,
[email protected]$,
[email protected],
[email protected],
[email protected]);
if (
[email protected] ) {
mes " ^777777-- Ladder is currently empty.^000000";
close;
}
for (
[email protected] = 0;
[email protected] <
[email protected];
[email protected] )
mes "^73acde"+
[email protected][
[email protected]] +".^000000 ^40cc39"+
[email protected]$[
[email protected]] +" : ^000000 ^ffad33<"+
[email protected][
[email protected]] +">^000000";
end;
L_Enter:
specialeffect 253;
showscript "'" + strcharinfo(0) + "' entered!",getnpcid(0),AREA;
warp "ordeal_1-2",0,0;
end;
L_Cancel:
end;
OnNPCKillEvent:
if (killedrid == 1369) {
if(!$gold_hour) {
[email protected] = 1;
}
else if($gold_hour) {
[email protected] = rand(1,3);
}
getitem 969,
[email protected];
if(
[email protected] == 1){
query_sql "insert into gold_ranking values ( "+ getcharid(0) +", '"+ escape_sql( strcharinfo(0) ) +"', 1 ) on duplicate key update name = '"+ escape_sql( strcharinfo(0) )+"', gold_points = gold_points + 1";
query_sql "insert into gold_ranking_today values ( "+ getcharid(0) +", '"+ escape_sql( strcharinfo(0) ) +"', 1 ) on duplicate key update name = '"+ escape_sql( strcharinfo(0) )+"', gold_points_today = gold_points_today + 1";
}
if(
[email protected] == 2){
query_sql "insert into gold_ranking values ( "+ getcharid(0) +", '"+ escape_sql( strcharinfo(0) ) +"', 1 ) on duplicate key update name = '"+ escape_sql( strcharinfo(0) )+"', gold_points = gold_points + 2";
query_sql "insert into gold_ranking_today values ( "+ getcharid(0) +", '"+ escape_sql( strcharinfo(0) ) +"', 1 ) on duplicate key update name = '"+ escape_sql( strcharinfo(0) )+"', gold_points_today = gold_points_today + 2";
}
query_sql "select gold_points from `gold_ranking` where char_id = "+ getcharid(0),
[email protected];
query_sql "select gold_points_today from `gold_ranking_today` where char_id = "+ getcharid(0),
[email protected]_today;
end;
}
end;
OnClock0000:
npctalk "Daily ladder has been reset!";
query_sql "TRUNCATE TABLE `gold_ranking_today`";
end;
}
ordeal_1-2 mapflag pvp
ordeal_1-2 mapflag nowarpto
ordeal_1-2 mapflag nodrop
ordeal_1-2 mapflag nobranch
ordeal_1-2 mapflag nosave
ordeal_1-2 mapflag nomemo
ordeal_1-2 mapflag noloot
ordeal_1-2 monster Golden Peco 1369,500
ordeal_1-2 monster Golden Peco 1369,500
ordeal_1-2 monster Golden Peco 1369,300