Назад

ПвП-Мвп и остальной рэйтинг.

Автор: 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

Доска работает, все норм, только ни где нету ни каких показаний. Я понимаю, что у меня скорее всего нету базы для этих логов в MySql. Только каких баз и куда их прописывать я пока не особо понимаю). Гуру, помогите советом пожалуйста.

Автор: 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