Автор: Bruce Willis: Дата: 04.07.2009
Вот собственно скрипт который я у кого-то позаимствовал.
moscovia,215,178,7 script ranker 857,{
OnInit:
// [==================================================]
// [ Configuration: ]
// [--------------------------------------------------]
set .@n$,"^33CCCC Рангер ^000000"; // NPC name.
set $@CPgm,100; // Gm level required to avoid the Ranking.
set $@CPgm2,99; // Gm level required to use the Control Panel whispering to NPC:CPfunc .
set $@CPpk,10; // Level range to get points in the PK Ranking. (Range | 0 = off)
// Auto-Purge system. Remove inactive players from the Ranking.
// Rankings will be purged automaticaly everyday at 5 am. To change the hour, see Note 1.
set $@CPp,1; // Auto-Purge. (boolean)
set $@CPpt,7; // Inactivity time to be consider an inactive player: (Days | 0 = off)
set $@CPdb,3000; // MAX_MOB_DB value in ./src/map/mob.h .
// [--------------------------------------------------]
// [ End of configuration. ]
// [==================================================]
// Configure Player based Rankings:
// callsub OnConf,"{Name}",{1st Variable Id},"{1st Variable}","{2nd Variable}","{1st Variable Name}","{2nd Variable Name}";
callsub OnConf0,"Рейтинг Левелов",3,"BaseLevel","JobLevel","Base","Job";
callsub OnConf0,"ПК Рейтинг",7,"CP7","CP8","Kills","Deaths";
callsub OnConf0,"MvP Рейтинг",11,"CP11","CP12","MVPs","Bosses";
callsub OnConf0,"Emperium Рейтинг",16,"CP16","CP17","Emperiums","Guardian Stones";
// Configure Guild based Rankings:
// callsub OnConf,"{Name}",{1st Variable Id},"{1st Variable Name}","{2nd Variable Name}";
callsub OnConf1,"WoE Рейтинг",23,"Ownages","Captures";
// NPCs' names:
set .@a,1;
while(!setnpcdisplay("CP#"+.@a,.@n$+"#"+.@a)) set .@a,.@a + 1;
set $@CPn$,"^008888"+.@n$+"^000000";
end;
OnConf0:
set $@CPc,$@CPc + 1;
set getd("$@CPc0x"+$@CPc+"$"),getarg(0);
set getd("$@CPc1x"+$@CPc),getarg(1);
set getd("$@CPc2x"+$@CPc+"$"),getarg(2);
set getd("$@CPc3x"+$@CPc+"$"),getarg(3);
set getd("$@CPc4x"+$@CPc+"$"),getarg(4);
set getd("$@CPc5x"+$@CPc+"$"),getarg(5);
return;
OnConf1:
set $@CPd,$@CPd + 1;
set getd("$@CPd0x"+$@CPd+"$"),getarg(0);
set getd("$@CPd1x"+$@CPd),getarg(1);
set getd("$@CPd2x"+$@CPd+"$"),getarg(2);
set getd("$@CPd3x"+$@CPd+"$"),getarg(3);
return;
OnPCLoginEvent:
if(getgmlevel() >= $@CPgm) end;
callsub OnRank0;
set getd("$CP15x"+(getcharid(0) - 149999)),0; // Last Time Online.
end;
OnPCLogoutEvent:
if(getgmlevel() >= $@CPgm) end;
callsub OnRank0;
set getd("$CP15x"+(getcharid(0) - 149999)),gettimetick(2) / (60 * 60 * 24); // Last Time Online.
end;
// Level Ranking:
OnPCBaseLvUpEvent:
OnPCJobLvUpEvent:
if(getgmlevel() >= $@CPgm) end;
callsub OnRank0;
end;
// PK Ranking:
OnPCKillEvent:
if(getgmlevel() >= $@CPgm) end;
set .@a,getcharid(3);
set .@b,killedrid;
if(.@a == .@b) end;
set .@c,BaseLevel;
if(!attachrid(.@b)) end; // Killed:
if(getgmlevel() >= $@CPgm) end;
if($@CPpk && (.@c > (BaseLevel + $@CPpk))) end;
set CP8,CP8 - 1;
callsub OnRank0;
if(!attachrid(.@a)) end; // Killer:
set CP7,CP7 + 1;
callsub OnRank0;
end;
// MVP Ranking:
OnNPCKillEvent:
if(getgmlevel() >= $@CPgm) end;
set .@a,killedrid;
if(.@a > ($@CPdb - 1000)) end;
if(!(getmonsterinfo(.@a,21) & 0x0020)) end;
if(getgmlevel() >= $@CPgm) end;
if(getmonsterinfo(.@a,22) > 0) set CP11,CP11 + 1; // MVP.
else set CP12,CP12 + 1; // Boss.
callsub OnRank0;
end;
// Emperium and WoE Ranking:
OnEmp1:
if(getgmlevel() >= $@CPgm) end;
set CP16,CP16 + 1; // Emperium.
callsub OnRank0;
set .@a,getcharid(2) - 9999;
set getd("$CP"+24+"x"+.@a),getd("$CP"+24+"x"+.@a) + 1;
callsub OnRank1,.@a,24;
end;
OnEmp2:
if(getgmlevel() >= $@CPgm) end;
set CP17,CP17 + 1; // Guardian Stone.
callsub OnRank0;
end;
OnAgitEnd:
sleep 1000;
setarray .@c$[0],"aldeg_cas01","aldeg_cas02","aldeg_cas03","aldeg_cas04","aldeg_cas05","gefg_cas01","gefg_cas02","gefg_cas03","gefg_cas04","gefg_cas05","payg_cas01","payg_cas02","payg_cas03","payg_cas04","payg_cas05","prtg_cas01","prtg_cas02","prtg_cas03","prtg_cas04","prtg_cas05";
while(.@a < getarraysize(.@c$)) {
set .@b,getcastledata(.@c$[.@a],1);
if(.@b) {
set .@b,.@b - 9999;
set getd("$CP23x"+.@b),getd("$CP23x"+.@b) + 1;
callsub OnRank1,.@b,23;
}
set .@a,.@a + 1;
}
end;
OnAgitEnd2:
sleep 2000;
setarray .@c$[getarraysize(.@c$)],"schg_cas01","schg_cas02","schg_cas03","schg_cas04","schg_cas05","arug_cas01","arug_cas02","arug_cas03","arug_cas04","arug_cas05";
while(.@a < getarraysize(.@c$)) {
set .@b,getcastledata(.@c$[.@a],1);
if(.@b) {
set .@b,.@b - 9999;
set getd("$CP23x"+.@b),getd("$CP23x"+.@b) + 1;
callsub OnRank1,.@b,23;
}
set .@a,.@a + 1;
}
end;
// Struct of the Player data:
// $CP0x# : Id (getcharid(0) - 149999).
// $CP1x{Id}$ : Name.
// $CP2x{Id} : Job (eaclass).
// $CP3x{Id} : Base.
// $CP4x{Id} : Job.
// $CP5x{Id} : Position in the Level Ranking.
// $CP6x# : Level Ranking.
// $CP7x{Id} : Kill.
// $CP8x{Id} : Death.
// $CP9x{Id} : Position in the PK Ranking.
// $CP10x# : PK Ranking.
// $CP11x{Id} : MVP.
// $CP12x{Id} : Boss.
// $CP13x{Id} : Position in the MVP Ranking.
// $CP14x# : MVP Ranking.
// $CP15x{Id} : Last time online.
// $CP16x{Id} : Emperium.
// $CP17x{Id} : Guardian Stone.
// $CP18x{Id} : Position in the Emperium Ranking.
// $CP19x# : Emperium Ranking.
// $CP20x{Id} : Guild (getcharid(2) - 9999).
// Struct of the Guild data:
// $CP21x# : Id (getcharid(2) - 9999).
// $CP22x{Id} : Size.
// $CP23x{Id} : Owned.
// $CP24x{Id} : Denied.
// $CP25x{Id} : Position in the WoE Ranking.
// $CP26x# : WoE Ranking.
// Update Player based Rankings:
OnRank0:
set .@a,getcharid(0) - 149999;
if(getd("$CP1x"+.@a+"$") == "") {
// New Player:
set $CPn,$CPn + 1;
set getd("$CP0x"+$CPn),.@a;
}
set getd("$CP1x"+.@a+"$"),strcharinfo(0);
set getd("$CP2x"+.@a),eaclass(Class);
set .@c,getcharid(2);
if(.@c) set .@c,.@c - 9999;
set .@d,getd("$CP20x"+.@a);
if(.@c != .@d) {
if(.@d && getd("$CP22x"+.@d)) set getd("$CP22x"+.@d),getd("$CP22x"+.@d) - 1;
set getd("$CP20x"+.@a),.@c;
if(.@c) {
if(!getd("$CP22x"+.@c)) {
// New Guild:
set $CPg,$CPg + 1;
set getd("$CP21x"+$CPg),.@c;
set .@d,0;
while(.@d < $@CPd) {
// Add Guild to the Ranking:
set .@d,.@d + 1;
set .@e,getd("$@CPd1x"+.@d);
set .@f,getd("$CPg"+.@e) + 1;
set getd("$CPg"+.@e),.@f;
set .@g,getd("$CP"+.@e+"x"+.@c);
set .@h,getd("$CP"+(.@e + 1)+"x"+.@c);
while(.@f > 1) {
set .@i,getd("$CP"+(.@e + 3)+"x"+(.@f - 1));
set .@j,getd("$CP"+.@e+"x"+.@i);
set .@k,getd("$CP"+(.@e + 1)+"x"+.@i);
if((.@g > .@j) || ((.@g == .@j) && (.@h > .@k))) {
set getd("$CP"+(.@e + 2)+"x"+.@i),.@f;
set getd("$CP"+(.@e + 3)+"x"+.@f),.@i;
set .@f,.@f - 1;
}
else break;
}
set getd("$CP"+(.@e + 2)+"x"+.@c),.@f;
set getd("$CP"+(.@e + 3)+"x"+.@f),.@c;
}
}
set getd("$CP22x"+.@c),getd("$CP22x"+.@c) + 1;
}
}
while(.@b < $@CPc) {
set .@b,.@b + 1;
set .@c,getd("$@CPc1x"+.@b);
set .@d,getd("$CP"+(.@c + 2)+"x"+.@a);
if(!.@d) {
// Add Player to the Ranking:
set .@d,getd("$CPn"+.@c) + 1;
set getd("$CPn"+.@c),.@d;
set getd("$CP"+(.@c + 2)+"x"+.@a),.@d;
set getd("$CP"+(.@c + 3)+"x"+.@d),.@a;
set .@e,getd(getd("$@CPc2x"+.@b+"$"));
set .@f,getd(getd("$@CPc3x"+.@b+"$"));
set getd("$CP"+.@c+"x"+.@a),.@e;
set getd("$CP"+(.@c + 1)+"x"+.@a),.@f;
while(.@d > 1) {
set .@g,getd("$CP"+(.@c + 3)+"x"+(.@d - 1));
set .@h,getd("$CP"+.@c+"x"+.@g);
set .@i,getd("$CP"+(.@c + 1)+"x"+.@g);
if((.@e > .@h) || ((.@e == .@h) && (.@f > .@i))) {
set getd("$CP"+(.@c + 2)+"x"+.@g),.@d;
set getd("$CP"+(.@c + 3)+"x"+.@d),.@g;
set .@d,.@d - 1;
}
else break;
}
set getd("$CP"+(.@c + 2)+"x"+.@a),.@d;
set getd("$CP"+(.@c + 3)+"x"+.@d),.@a;
}
else {
set .@e,getd(getd("$@CPc2x"+.@b+"$"));
set .@f,getd(getd("$@CPc3x"+.@b+"$"));
if((getd("$CP"+.@c+"x"+.@a) != .@e) || (getd("$CP"+(.@c + 1)+"x"+.@a) != .@f)) {
// Update Ranking:
set getd("$CP"+.@c+"x"+.@a),.@e;
set getd("$CP"+(.@c + 1)+"x"+.@a),.@f;
// Move Position:
while(.@d > 1) {
set .@g,getd("$CP"+(.@c + 3)+"x"+(.@d - 1));
set .@h,getd("$CP"+.@c+"x"+.@g);
set .@i,getd("$CP"+(.@c + 1)+"x"+.@g);
if((.@e > .@h) || ((.@e == .@h) && (.@f >= .@i))) {
set getd("$CP"+(.@c + 2)+"x"+.@g),.@d;
set getd("$CP"+(.@c + 3)+"x"+.@d),.@g;
set .@d,.@d - 1;
}
else break;
}
while(.@d < getd("$CPn"+.@c)) {
set .@g,getd("$CP"+(.@c + 3)+"x"+(.@d + 1));
set .@h,getd("$CP"+.@c+"x"+.@g);
set .@i,getd("$CP"+(.@c + 1)+"x"+.@g);
if((.@e < .@h) || ((.@e == .@h) && (.@f < .@i))) {
set getd("$CP"+(.@c + 2)+"x"+.@g),.@d;
set getd("$CP"+(.@c + 3)+"x"+.@d),.@g;
set .@d,.@d + 1;
}
else break;
}
if(.@d < getd("$CP"+(.@c + 2)+"x"+.@a)) announce "Has subido a la posiciуn ["+.@d+"] del "+getd("$@CPc0x"+.@b+"$")+".",bc_self,0xFF6622;
set getd("$CP"+(.@c + 2)+"x"+.@a),.@d;
set getd("$CP"+(.@c + 3)+"x"+.@d),.@a;
}
}
}
return;
// Update Guild based Rankings:
OnRank1:
set .@a,getarg(0); // Guild Id (getcharid(2) - 9999).
set .@b,getarg(1); // 1st Variable Id.
set .@c,getd("$CP"+.@b+"x"+.@a);
set .@d,getd("$CP"+(.@b + 1)+"x"+.@a);
set .@e,getd("$CP"+(.@b + 2)+"x"+.@a);
while(.@e > 1) {
set .@f,getd("$CP"+(.@b + 3)+"x"+(.@e - 1));
set .@g,getd("$CP"+.@b+"x"+.@f);
set .@h,getd("$CP"+(.@b + 1)+"x"+.@f);
if((.@d > .@g) || ((.@d == .@g) && (.@e >= .@h))) {
set getd("$CP"+(.@b + 2)+"x"+.@f),.@e;
set getd("$CP"+(.@b + 3)+"x"+.@e),.@f;
set .@e,.@e - 1;
}
else break;
}
set getd("$CP"+(.@b + 2)+"x"+.@a),.@e;
set getd("$CP"+(.@b + 3)+"x"+.@e),.@a;
return;
// Control Panel for GMs:
OnWhisperGlobal:
if(getgmlevel() < $@CPgm2) end;
mes $@CPn$;
mes "Здраствуйте, "+strcharinfo(0)+".";
mes "Вы попали в панель наблюдения за рейтингом сервера.";
mes "Чем могу помочь?";
next;
set .@a,select("^880000Выйти^000000","Чистка Рейтинга","Сбросить Рейтинг");
mes $@CPn$;
if(.@a == 2) {
callsub OnPurge;
mes "Неактивные игроки были удалены из рейтинга.";
}
if(.@a == 3) {
callsub OnReset;
mes "Ранги сброшены успешно.";
}
mes "Счастливого дня.";
close;
OnClock0500: // Nota 1: Automatic purge hour.
if($@CPp) callsub OnPurge;
end;
OnPurge:
set .@t,(gettimetick(2) / (60 * 60 * 24)) - $@CPpt;
while(.@a < $CPn) {
set .@a,.@a + 1;
set .@b,getd("$CP0x"+.@a);
set getd("$CP0x"+.@a),0;
set .@t2,getd("$CP15x"+.@b);
set .@g,getd("$CP20x"+.@b);
if(.@t2 && (.@t2 < .@t)) {
// Remove Player:
set .@c,.@c + 1;
set getd("$CP1x"+.@b+"$"),"";
set getd("$CP2x"+.@b),0;
set getd("$CP15x"+.@b),0;
if(.@g) {
if(getd("$CP22x"+.@g)) set getd("$CP22x"+.@g),getd("$CP22x"+.@g) - 1;
set getd("$CP20x"+.@b),0;
}
set .@d,0;
while(.@d < $@CPc) {
set .@d,.@d + 1;
set .@e,getd("$@CPc1x"+.@d);
set getd("$CP"+.@e+"x"+.@b),0;
set getd("$CP"+(.@e + 1)+"x"+.@b),0;
set .@f,getd("$CP"+(.@e + 2)+"x"+.@b);
set getd("$CP"+(.@e + 2)+"x"+.@b),0;
set getd("$CP"+(.@e + 3)+"x"+.@f),0;
}
}
else {
set getd("$CP0x"+(.@a - .@c)),.@b;
if(.@g && (getguildname(.@g + 9999) == "null")) {
// Remove guild:
set getd("$CP22x"+.@g),0;
set getd("$CP20x"+.@b),0;
}
}
}
set $CPn,$CPn - .@c;
set .@a,0;
while(.@a < $@CPc) {
// Clean Player based Rankings:
set .@a,.@a + 1;
set .@b,getd("$@CPc1x"+.@a);
set .@c,0;
set .@d,0;
set .@e,getd("$CPn"+.@b);
while(.@c < .@e) {
set .@c,.@c + 1;
set .@f,getd("$CP"+(.@b + 3)+"x"+.@c);
if(!.@f) set .@d,.@d + 1;
else if(.@d) {
// Move Player Id:
set getd("$CP"+(.@b + 2)+"x"+.@f),.@c - .@d;
set getd("$CP"+(.@b + 3)+"x"+.@c),0;
set getd("$CP"+(.@b + 3)+"x"+(.@c - .@d)),.@f;
}
}
set getd("$CPn"+.@b),.@e - .@d;
}
set .@a,0;
set .@c,0;
while(.@a < $CPg) {
// Purge Guilds:
set .@a,.@a + 1;
set .@b,getd("$CP21x"+.@a);
set getd("$CP21x"+.@a),0;
set .@a$,getguildname(.@b + 9999);
if(.@a$ == "null") set getd("$CP22x"+.@b),0;
if(!getd("$CP22x"+.@b)) {
set .@c,.@c + 1;
set .@d,0;
while(.@d < $@CPd) {
set .@d,.@d + 1;
set .@e,getd("$@CPd1x"+.@d);
if(.@a$ == "null") {
set getd("$CP"+.@e+"x"+.@b),0;
set getd("$CP"+(.@e + 1)+"x"+.@b),0;
}
set .@f,getd("$CP"+(.@e + 2)+"x"+.@b);
set getd("$CP"+(.@e + 2)+"x"+.@b),0;
set getd("$CP"+(.@e + 3)+"x"+.@f),0;
}
}
else set getd("$CP21x"+(.@a - .@c)),.@b;
}
set $CPg,$CPg - .@c;
set .@a,0;
while(.@a < $@CPd) {
// Clean Guild based Rankings:
set .@a,.@a + 1;
set .@b,getd("$@CPd1x"+.@a);
set .@c,0;
set .@d,0;
set .@e,getd("$CPg"+.@b);
while(.@c < .@e) {
set .@c,.@c + 1;
set .@f,getd("$CP"+(.@b + 3)+"x"+.@c);
if(!.@f) set .@d,.@d + 1;
else if(.@d) {
// Move Guild Id:
set getd("$CP"+(.@b + 2)+"x"+.@f),.@c - .@d;
set getd("$CP"+(.@b + 3)+"x"+.@c),0;
set getd("$CP"+(.@b + 3)+"x"+(.@c - .@d)),.@f;
}
}
set getd("$CPg"+.@b),.@e - .@d;
}
return;
OnReset:
while(.@a < $CPn) {
// Reset Players:
set .@a,.@a + 1;
set .@b,getd("$CP0x"+.@a);
set getd("$CP0x"+.@a),0;
set getd("$CP1x"+.@b+"$"),"";
set getd("$CP2x"+.@b),0;
set getd("$CP15x"+.@b),0;
set getd("$CP20x"+.@b),0;
set .@c,0;
while(.@c < $@CPc) {
set .@c,.@c + 1;
set .@d,getd("$@CPc1x"+.@c);
set getd("$CP"+.@d+"x"+.@b),0;
set getd("$CP"+(.@d + 1)+"x"+.@b),0;
set getd("$CP"+(.@d + 2)+"x"+.@b),0;
}
}
set $CPn,0;
set .@a,0;
while(.@a < $@CPc) {
// Reset Player based Rankings:
set .@a,.@a + 1;
set .@b,getd("$@CPc1x"+.@a);
set .@c,0;
while(.@c < getd("$CPn"+.@b)) {
set .@c,.@c + 1;
set getd("$CP"+(.@b + 3)+"x"+.@c),0;
}
set getd("$CPn"+.@b),0;
}
set .@a,0;
while(.@a < $CPg) {
// Reset Guilds:
set .@a,.@a + 1;
set .@b,getd("$CP21x"+.@a);
set getd("$CP21x"+.@a),0;
set getd("$CP22x"+.@b),0;
set .@c,0;
while(.@c < $@CPd) {
set .@c,.@c + 1;
set .@d,getd("$@CPd1x"+.@c);
set getd("$CP"+.@d+"x"+.@b),0;
set getd("$CP"+(.@d + 1)+"x"+.@b),0;
set getd("$CP"+(.@d + 2)+"x"+.@b),0;
}
}
set $CPg,0;
set .@a,0;
while(.@a < $@CPd) {
// Reset Guild based Rankings:
set .@a,.@a + 1;
set .@b,getd("$@CPd1x"+.@a);
set .@c,0;
while(.@c < getd("$CPg"+.@b)) {
set .@c,.@c + 1;
set getd("$CP"+(.@b + 3)+"x"+.@c),0;
}
set getd("$CPg"+.@b),0;
}
return;
}
// Npcs:
- script Рейтинг#0::CP -1,{
mes $@CPn$;
mes "Здраствуйте, "+strcharinfo(0)+".";
mes "Хотите посмотреть на статистику сервера?";
next;
while(.@a < $@CPc) {
set .@a$[.@a],getd("$@CPc0x"+(.@a + 1)+"$");
set .@a,.@a + 1;
}
set .@a,0;
while(.@a < $@CPd) {
set .@a$[.@a + $@CPc],"[Guild] "+getd("$@CPd0x"+(.@a + 1)+"$");
set .@a,.@a + 1;
}
set .@a,select("^880000Пока^000000",.@a$[0],.@a$[1],.@a$[2],.@a$[3],.@a$[4],.@a$[5],.@a$[6],.@a$[7],.@a$[8],.@a$[9],.@a$[10]) - 1;
mes $@CPn$;
if(.@a) {
if(.@a <= $@CPc) {
mes "Выбирите категорию:";
next;
set .@b,select("^880000Все игроки^000000","Игроки в Онлайне","Превосходящие игроки","Дети","По классам") - 1;
if(.@b == 4) {
mes $@CPn$;
mes "Select a class:";
next;
set .@c,(select("Novice","Swordman","Mage","Archer","Acolyte","Merchant","Thief","Taekwon","Gunslinger","Ninja","Super Novice","Knight","Crussader","Wizard","Sage","Hunter","Bard/Dancer","Priest","Monk","Blacksmith","Alchemist","Assassin","Rogue","Star Gladiator","Soul Linker") - 1);
if(.@c > 10) {
set .@c,.@c - 9;
if(.@c % 2) set .@c,(.@c / 2) | 0x200;
else set .@c,(.@c / 2) | 0x100;
}
if(.@c == 8) set .@c,0x9;
if(.@c == 9) set .@c,0x0a;
if(.@c == 10) set .@c,0x100;
}
mes $@CPn$;
}
mes "Хорошо.";
mes "Я отправлю информацию в ваше окно чата.";
}
mes "Счастливого дня.";
close2;
emotion 12;
if(.@a) {
if(.@a <= $@CPc) {
// Show Player based Ranking:
set .@d,getd("$@CPc1x"+.@a);
set .@f,getcharid(0) - 149999;
set .@g,getcharid(2);
if(.@g) set .@g,.@g - 9999;
while(.@h < getd("$CPn"+.@d)) {
set .@h,.@h + 1;
set .@i,getd("$CP"+(.@d + 3)+"x"+.@h);
set .@j,getd("$CP2x"+.@i);
if(!.@b || ((.@b == 1) && getcharid(0,getd("$CP1x"+.@i+"$"))) || ((.@b == 2) && (.@j & 0x1000)) || ((.@b == 3) && (.@j & 0x2000)) || ((.@b == 4) && ((.@j & 0x0fff) == .@c))) {
set .@k,.@k + 1;
if((.@k < 100) || (.@f == .@i)) {
if((.@k % 20) == 1) announce "[ "+getd("$@CPc0x"+.@a+"$")+" ] [ "+getd("$@CPc4x"+.@a+"$")+" / "+getd("$@CPc5x"+.@a+"$")+" ] - Ник - Класс - Гильдия",bc_self,0xFF7700;
set .@l,getd("$CP20x"+.@i);
if(.@f == .@i) set .@d$,"0x00BBAA"; // You
else if(.@g && (.@g == .@l)) set .@d$,"0x66AA55"; // Guild member
else set .@d$,"0xBB9900";
set .@m,getd("$CP"+.@d+"x"+.@i);
if(.@m < 0) set .@m,.@m * (-1);
set .@n,getd("$CP"+(.@d + 1)+"x"+.@i);
if(.@n < 0) set .@n,.@n * (-1);
set .@e$,getguildname(.@l + 9999);
if(.@e$ == "null") set .@e$,"";
announce "[ "+.@k+" ] [ "+.@m+" / "+.@n+" ] - "+getd("$CP1x"+.@i+"$")+" - "+jobname(roclass(.@j))+" - "+.@e$,bc_self,.@d$;
}
}
}
}
else {
// Show Guild based Ranking:
set .@a,.@a - $@CPc;
set .@d,getd("$@CPd1x"+.@a);
set .@g,getcharid(2);
if(.@g) set .@g,.@g - 9999;
while(.@h < getd("$CPg"+.@d)) {
set .@h,.@h + 1;
set .@i,getd("$CP"+(.@d + 3)+"x"+.@h);
set .@e$,getguildname(.@i + 9999);
if((.@e$ != "null") && getd("$CP22x"+.@i)) {
set .@k,.@k + 1;
if((.@k < 100) || (.@g == .@i)) {
if((.@k % 20) == 1) announce "[ "+getd("$@CPd0x"+.@a+"$")+" ] [ "+getd("$@CPd2x"+.@a+"$")+" / "+getd("$@CPd3x"+.@a+"$")+" ] - Name",bc_self,0xFF7700;
if(.@g && (.@g == .@i)) set .@d$,"0x00BBAA"; // Your Guild
else set .@d$,"0xBB9900";
set .@m,getd("$CP"+.@d+"x"+.@i);
if(.@m < 0) set .@m,.@m * (-1);
set .@n,getd("$CP"+(.@d + 1)+"x"+.@i);
if(.@n < 0) set .@n,.@n * (-1);
announce "[ "+.@k+" ] [ "+.@m+" / "+.@n+" ] - "+.@e$,bc_self,.@d$;
}
}
}
}
if(!.@k) announce "Ничего небыло найдено.",bc_self,0xFF7700;
else announce "----------",bc_self,0xFF7700;
}
end;
}
alberta,195,138,4 duplicate(CP) Рейтинг#1 857
alberta,51,250,5 duplicate(CP) Рейтинг#2 857
aldebaran,133,116,6 duplicate(CP) Рейтинг#3 857
aldebaran,133,236,6 duplicate(CP) Рейтинг#4 857
alde_gld,234,150,4 duplicate(CP) Рейтинг#5 857
amatsu,242,279,6 duplicate(CP) Рейтинг#6 857
amatsu,99,260,4 duplicate(CP) Рейтинг#7 857
amatsu,207,100,4 duplicate(CP) Рейтинг#8 857
ayothaya,212,204,4 duplicate(CP) Рейтинг#9 857
ayothaya,157,78,4 duplicate(CP) Рейтинг#10 857
comodo,180,329,4 duplicate(CP) Рейтинг#11 857
comodo,205,112,4 duplicate(CP) Рейтинг#12 857
comodo,316,181,4 duplicate(CP) Рейтинг#13 857
comodo,36,221,6 duplicate(CP) Рейтинг#14 857
einbech,66,92,6 duplicate(CP) Рейтинг#15 857
einbech,131,245,6 duplicate(CP) Рейтинг#16 857
einbech,42,201,8 duplicate(CP) Рейтинг#17 857
einbroch,74,187,2 duplicate(CP) Рейтинг#18 857
einbroch,149,315,6 duplicate(CP) Рейтинг#19 857
einbroch,152,49,4 duplicate(CP) Рейтинг#20 857
einbroch,249,239,2 duplicate(CP) Рейтинг#21 857
geffen,123,69,4 duplicate(CP) Рейтинг#22 857
geffen,41,107,6 duplicate(CP) Рейтинг#23 857
geffen,124,177,4 duplicate(CP) Рейтинг#24 857
geffen,171,123,6 duplicate(CP) Рейтинг#25 857
gef_fild13,193,244,4 duplicate(CP) Рейтинг#26 857
gonryun,152,110,6 duplicate(CP) Рейтинг#27 857
gonryun,168,180,2 duplicate(CP) Рейтинг#28 857
gonryun,153,16,6 duplicate(CP) Рейтинг#29 857
hugel,101,130,4 duplicate(CP) Рейтинг#30 857
hugel,178,170,4 duplicate(CP) Рейтинг#31 857
izlude,121,94,6 duplicate(CP) Рейтинг#32 857
yuno,175,89,4 duplicate(CP) Рейтинг#33 857
yuno,68,203,4 duplicate(CP) Рейтинг#34 857
sch_gld,291,123,4 duplicate(CP) Рейтинг#35 857
lighthalzen,209,95,6 duplicate(CP) Рейтинг#36 857
lighthalzen,218,322,4 duplicate(CP) Рейтинг#37 857
lighthalzen,311,299,4 duplicate(CP) Рейтинг#38 857
louyang,203,104,6 duplicate(CP) Рейтинг#39 857
xmas,139,306,6 duplicate(CP) Рейтинг#41 857
xmas,161,108,4 duplicate(CP) Рейтинг#42 857
morocc,166,76,4 duplicate(CP) Рейтинг#43 857
morocc,47,174,4 duplicate(CP) Рейтинг#44 857
morocc,166,289,4 duplicate(CP) Рейтинг#45 857
morocc,279,197,8 duplicate(CP) Рейтинг#46 857
morocc,35,290,4 duplicate(CP) Рейтинг#47 857
moscovia,215,178,7 duplicate(CP) Рейтинг#48 857
niflheim,29,158,6 duplicate(CP) Рейтинг#50 857
niflheim,199,188,4 duplicate(CP) Рейтинг#51 857
payon,213,72,6 duplicate(CP) Рейтинг#52 857
payon,160,49,2 duplicate(CP) Рейтинг#53 857
payon,232,316,4 duplicate(CP) Рейтинг#54 857
payon,63,120,6 duplicate(CP) Рейтинг#55 857
pay_gld,201,157,4 duplicate(CP) Рейтинг#56 857
prontera,146,174,4 duplicate(CP) Рейтинг#57 857
prontera,40,212,6 duplicate(CP) Рейтинг#58 857
prontera,259,213,4 duplicate(CP) Рейтинг#60 857
prontera,161,312,4 duplicate(CP) Рейтинг#61 857
prt_gld,166,75,4 duplicate(CP) Рейтинг#62 857
rachel,264,136,4 duplicate(CP) Рейтинг#63 857
rachel,150,144,4 duplicate(CP) Рейтинг#64 857
rachel,135,45,4 duplicate(CP) Рейтинг#65 857
rachel,39,131,6 duplicate(CP) Рейтинг#66 857
aru_gld,179,326,6 duplicate(CP) Рейтинг#67 857
umbala,121,128,8 duplicate(CP) Рейтинг#68 857
umbala,163,249,4 duplicate(CP) Рейтинг#69 857
veins,209,234,4 duplicate(CP) Рейтинг#70 857
veins,222,352,4 duplicate(CP) Рейтинг#71 857
veins,157,62,6 duplicate(CP) Рейтинг#72 857
Автор: Bruce Willis: Дата: 04.08.2009
Спасибо.
Автор: Scars: Дата: 04.08.2009
Дек должен же быть конект к базе чтобы считывать с таблиц инфу о чарах?ии
Автор: Sanasol: Дата: 04.08.2009
Scars не должен тут нету в скрипте считывания с базы... Насколько я вижу..... Тут Стоит ОнПиСи Логин. т.е. начинает работать когда ты в игру входишь и Тебе даются переменные вот и всё.
Автор: nomn: Дата: 04.10.2009
ну боже мой, работает как pvpLEADER скрипт.
Автор: Infarkt: Дата: 04.14.2010
без единой ошибки спасибо *КЛАЦ*
Автор: SergeiX: Дата: 03.31.2011
люди а можна вырезать както с этого скрипта только пвп рейтинг???
Автор: defo: Дата: 03.31.2011
нехочешь долго возится, удали строки меню, с началом callsub