Jump to content
  • 0

[ASK/HELP] Dota PVP Script


Question

Posted (edited)

Hello , I Have Dota PVP Script + PVP Leader , can someone help me to make SQL Files for this script ? because i forgot where i got this script...and i lost my sql files :(

 

, and can someone make this script more simple ?? thanks

 

//============================== DOTA Sound PVP ===============================\\

-    script    DOTAPVP    -1,{
OnPCKillEvent:
    getmapxy .@mapname$,.@mapx,.@mapy,0;
    if ( .@mapname$ == "aldeg_cas01" || .@mapname$ == "aldeg_cas04" || .@mapname$ == "gefg_cas01" || .@mapname$ == "gefg_cas03" || .@mapname$ == "payg_cas01" || .@mapname$ == "payg_cas04" || .@mapname$ == "prtg_cas01" || .@mapname$ == "prtg_cas03" || .@mapname$ == "arug_cas02" || .@mapname$ == "schg_cas03" || .@mapname$ == "pvp_y_8-5" || .@mapname$ == "arena_4" || .@mapname$ == "pvp_y_8-2" ) {
        if (@first != 1 && @PlayersKilledStreak < 1) {
        set @first,1;
        set @PlayersKilledStreak,1;
        set @lastkilltime,gettimetick(2)+300;
        specialeffect2 7;
        announce ""+strcharinfo(0)+" has gained First Blood",bc_all,0x00FF00;
        goto L_RESULT;
        }
        if (@first == 1 && @PlayersKilledStreak < 1) {
        set @PlayersKilledStreak,1;
        set @lastkilltime,gettimetick(2)+300;
            if(killedrid == @whokillme) {
            specialeffect2 131;
            announce ""+strcharinfo(0)+" has pawned "+rid2name(killedrid)+"'s head",bc_all,0x00FF00;
            goto L_RESULT;
            }
        specialeffect2 7;
        goto L_RESULT;
        }
        if (@PlayersKilledStreak == 1) {
        set @PlayersKilledStreak,2;
        specialeffect2 7;
            if (@lastkilltime > gettimetick(2)) {
            soundeffectall "doublekill.wav",0,.@mapname$;
            announce ""+strcharinfo(0)+" has just got a Double Kill !",bc_all,0x00FF00;
            set @lastkilltime,gettimetick(2)+300;
            }
        goto L_RESULT;
        }
        if (@PlayersKilledStreak == 2) {
        set @PlayersKilledStreak,3;
        specialeffect2 7;
            if (@lastkilltime > gettimetick(2)) {
            soundeffectall "triplekill.wav",0,.@mapname$;
            announce ""+strcharinfo(0)+" has just got a Triple Kill !",bc_all,0x00FF00;
            set @lastkilltime,gettimetick(2)+300;
            }
            else {
            soundeffectall "killingspree.wav",0,.@mapname$;
            announce ""+strcharinfo(0)+" is on a KILLING SPREE !",bc_all,0x00FF00;
            }
        goto L_RESULT;
        }
        if (@PlayersKilledStreak == 3) {
        set @PlayersKilledStreak,4;
        specialeffect2 7;
            if (@lastkilltime > gettimetick(2)) {
            soundeffectall "ultrakill.wav",0,.@mapname$;
            announce ""+strcharinfo(0)+" has just got an Ultra Kill !",bc_all,0x00FF00;
            set @lastkilltime,gettimetick(2)+300;
            goto L_RESULT;
            }
            else {
            soundeffectall "dominating.wav",0,.@mapname$;
            announce ""+strcharinfo(0)+" is DOMINATING !",bc_all,0x00FF00;
            }
        goto L_RESULT;
        }
        if (@PlayersKilledStreak == 4) {
        set @PlayersKilledStreak,5;
        specialeffect2 7;
            if (@lastkilltime > gettimetick(2)) {
            soundeffectall "rampage.wav",0,.@mapname$;
            announce ""+strcharinfo(0)+" is on a Rampage !",bc_all,0x00FF00;
            goto L_RESULT;
            }
            else {
            soundeffectall "megakill.wav",0,.@mapname$;
            announce ""+strcharinfo(0)+" has a MEGA KILL !",bc_all,0x00FF00;
            }
        goto L_RESULT;
        }
        if (@PlayersKilledStreak == 5) {
        set @PlayersKilledStreak,6;
        specialeffect2 7;
            soundeffectall "unstoppable.wav",0,.@mapname$;
            announce ""+strcharinfo(0)+" is UNSTOPPABLE !!",bc_all,0x00FF00;
            goto L_RESULT;
        }
        if (@PlayersKilledStreak == 6) {
        set @PlayersKilledStreak,7;
        specialeffect2 7;
            soundeffectall "wickedsick.wav",0,.@mapname$;
            announce ""+strcharinfo(0)+" is WICKED SICK !!",bc_all,0x00FF00;
            goto L_RESULT;
        }
        if (@PlayersKilledStreak == 7) {
        set @PlayersKilledStreak,8;
        specialeffect2 7;
            soundeffectall "monsterkill.wav",0,.@mapname$;
            announce ""+strcharinfo(0)+" has a MONSTER KILL !!",bc_all,0x00FF00;
            goto L_RESULT;
        }
        if (@PlayersKilledStreak == 8) {
        set @PlayersKilledStreak,9;
        specialeffect2 7;
            soundeffectall "godlike.wav",0,.@mapname$;
            announce ""+strcharinfo(0)+" is GODLIKE !!!",bc_all,0x00FF00;
            goto L_RESULT;
        }
        if (@PlayersKilledStreak > 8) {
        set @PlayersKilledStreak,@PlayersKilledStreak + 1;
        specialeffect2 7;
            soundeffectall "holyshit.wav",0,.@mapname$;
            specialeffect2 72;
            announce ""+strcharinfo(0)+" is BEYOND GODLIKE ["+@PlayersKilledStreak+"]. Someone KILL "+( (sex)?"HIM":"HER" )+" !!!!!!",bc_all,0x00FF00;
            }
        goto L_RESULT;
        }
        end;
L_RESULT:
        callfunc "dotawin";
        end;
OnPCDieEvent:
    getmapxy .@mapname$,.@mapx,.@mapy,0;
    if ( .@mapname$ == "aldeg_cas01" || .@mapname$ == "aldeg_cas04" || .@mapname$ == "gefg_cas01" || .@mapname$ == "gefg_cas03" || .@mapname$ == "payg_cas01" || .@mapname$ == "payg_cas04" || .@mapname$ == "prtg_cas01" || .@mapname$ == "prtg_cas03" || .@mapname$ == "arug_cas02" || .@mapname$ == "schg_cas03" || .@mapname$ == "pvp_y_8-5" || .@mapname$ == "arena_4" || .@mapname$ == "pvp_y_8-2" ) {
        if(@PlayersKilledStreak>2){
            announce ""+rid2name(killerrid)+" has ended "+strcharinfo(0)+"'s "+$@streakname$[@PlayersKilledStreak]+"!",bc_all,0x00FF00;
            }
            set @PlayersKilledStreak,0;
            set @whokillme,killerrid;
            callfunc "dotaloss";
        }
    end;
OnInit:
    set .showtotal, 20;
    set .showpage, 10;
    setarray $@streakname$[3],"Killing Spree","Dominating","Mega Kill","Unstoppable","Wicked Sick","Monster Kill","Godlike","Beyond Godlike";
    end;
}

function    script    dotawin    {
query_sql "UPDATE `pvpladder` SET `kills` = `kills` + 1 WHERE `char_id` = "+getcharid(0);
query_sql ("SELECT `streaks` FROM `pvpladder` WHERE `char_id` = "+getcharid(0), .@streaks);
if(.@streaks < @PlayersKilledStreak) {
query_sql "UPDATE `pvpladder` SET `streaks` = "+@PlayersKilledStreak+" WHERE `char_id` = "+getcharid(0);
}
end;
}

function    script    dotaloss    {
query_sql "UPDATE `pvpladder` SET `deaths` = `deaths` + 1 WHERE `char_id` = "+getcharid(0);
end;
}

-    script    PVPLADDEROPTIONS    -1,{
end;
OnInit:
// 0 = Disabled (NO)
// 1 = Enable   (YES)
set $@languageselect, 0;    //Enable/Disable language selection [English/German] (Default: 1)
set $@LadderAnnounce, 0;    //Enable/Disable the announcement when a char reaches a new position in the ladder (Default: 1)
set $@LadderLength, 30;        //Set the length of the Ladder [!Not higher than 128!] (Default: 30)
set $@LadderSteps, 10;        //Set the views per page (Default: 10)set $@LadderExpGain, 1;        //Enable/Disable experience gain when reaching a new position in the ladder (*Note1)
set $@LadderExp, 50;        //Set Experience gain value (*Note1)
set $@LadderZenyGain, 1;    //Enable/Disable zeny gain when reaching a new position in the ladder
set $@LadderZeny, 50;        //Set Zeny gain value
set $@LadderChatRoom, 1;    //Enable/Disable an Chat Room over the NPC with the message "PvP Ladder" (Users can not enter the Chat room)
set $@LadderAskLogin, 1;    //Enable/Disable that the NPC asks about the Broadcast when a Player logins / or  with the Npc Chat (0 = Login Ask , 1 = Npc Chat) Related: 0
set $@LadderGM,    60;        //All GM LVL UNDER this value will show on the PvP Ladder (Over GM LVL: Not shown on Ladder | under GM LVL:  Shown on Ladder)
set $@LadderGMMenu,    99;    //GM LVL that need for entering GM Menu
}

-    script    PVPLADDER    -1,{
OnPCKillEvent:
if ( getgmlevel() >= $@LadderGM ) end;
if (terces_PVP_resets != $terces_PVP_resets) {
    dispbottom "Please relog your character, in order to get the correct kills for you in the PVP ladder.";
    dispbottom "Because a GM just reset the ladder.";
    end;
}
if ( killedrid == getcharid(3) ) {
    set PVPDeaths, PVPDeaths +1;
    set #PVPDeathsAccount, #PVPDeathsAccount +1;
    set @PVPDeathstoday, @PVPDeathstoday +1;
    end;
}
set $@PVPcounter,$@PVPcounter+1;
set getd("$@PVPKill"+$@PVPcounter),getcharid(3);    //getd to avoid errors when more than 1 people kill someone
attachrid(killedrid);
set PVPDeaths,PVPDeaths+1;
set @PVPDeathstoday,@PVPDeathstoday+1;
set #PVPDeathsAccount,#PVPDeathsAccount+1;
set getd("$@PVPkilledplayer"+$@PVPcounter+"$"), strcharinfo(0);    //again, getd to avoid possible glitches
detachrid;

attachrid(getd("$@PVPKill"+$@PVPcounter));
CountKills:
    set PVPKills,PVPKills+1;
    set @PVPKillstoday,@PVPKillstoday+1;
    set #PVPKillsAccount,#PVPKillsAccount+1;
    setarray @playerstats[0],@PVPKillstoday,@PVPDeathstoday,PVPKills,PVPDeaths,#PVPKillsAccount,#PVPDeathsAccount;

l_ladder:
    set @considerdeath,0;
    for (set @PosinLadder, 0; @PosinLadder < $@LadderLength; set @PosinLadder, @PosinLadder + 1){
        if (PVPKills >= $terces_PVP_kills[@PosinLadder]){    //Player deserves to be in the ladder
            //Check if Death plays a role on the position
            if ((PVPKills == $terces_PVP_kills[@PosinLadder]) && (PVPDeaths > $terces_PVP_deaths[@PosinLadder])) set @considerdeath,1; //Consider Deaths
            //Check if the player only topped his own scores
            if ($terces_PVP_names$[@PosinLadder] == strcharinfo(0)){
                set $terces_PVP_kills[@PosinLadder],PVPKills;
                set $terces_PVP_deaths[@PosinLadder],PVPDeaths;
                end;
            }
            //Moves all characters in the Ladder
            for (set @beginmoving, $@LadderLength; @beginmoving >= (@PosinLadder+@considerdeath); set @beginmoving, @beginmoving - 1){
                if ($terces_PVP_names$[@beginmoving] == strcharinfo(0)){
                    //If the player already is in the Ladder it only has to move players between characters new position and characters old position
                    callsub L_LadderMove,0;
                    end;
                }
                else if (@beginmoving == (@PosinLadder+@considerdeath)){
                    //Player is not in the Ladder and therefor it has to move all players from characters new position downwards
                    callsub L_LadderMove,1;
                    end;
                }
            }
            end;
        }
    }
end;

L_LadderMove:
    if (getarg(0) == 0) set @length,@beginmoving;
    if (getarg(0) == 1) set @length,$@LadderLength;
    for (set @movecycle, @length; @movecycle > (@PosinLadder+@considerdeath);
     set @movecycle, @movecycle - 1){

        set $terces_PVP_names$[@movecycle],$terces_PVP_names$[(@movecycle-1)];
        set $terces_PVP_kills[@movecycle],$terces_PVP_kills[(@movecycle-1)];
        set $terces_PVP_deaths[@movecycle],$terces_PVP_deaths[(@movecycle-1)];
        set $terces_PVP_times[@movecycle],$terces_PVP_times[(@movecycle-1)];
    }
    //sets the character's stats in the new position
    set $terces_PVP_names$[(@PosinLadder+@considerdeath)],strcharinfo(0);
    set $terces_PVP_kills[(@PosinLadder+@considerdeath)],PVPKills;
    set $terces_PVP_deaths[(@PosinLadder+@considerdeath)],PVPDeaths;
    set $terces_PVP_times[(@PosinLadder+@considerdeath)],gettimetick(2);
    //Experience Gain
    if ($@LadderExpGain == 1){
        set BaseExp,BaseExp+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderExp);
        dispbottom "You have just been rewarded with "+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderExp)+" base experience points";
    }
    //Zeny Gain
    if ($@LadderZenyGain == 1){
        set Zeny,Zeny+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderZeny);
        dispbottom "You have just been rewarded with "+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderZeny)+" Zeny";
    }
    //Announcement (Setting for Char)
    if (pvpbroadcast == 2){
    announce strcharinfo(0)+" just claimed the "+((@PosinLadder+@considerdeath)+1)+". Position in the Top "+$@LadderLength+" after killing "+getd("$@PVPkilledplayer"+$@PVPcounter+"$")+".",16;
    }
    //Announcement (Setting for Account)
    if (#pvpbroadcast == 2){
    announce strcharinfo(0)+" just claimed the "+((@PosinLadder+@considerdeath)+1)+". Position in the Top "+$@LadderLength+" after killing "+getd("$@PVPkilledplayer"+$@PVPcounter+"$")+".",16;
    }
    end;

OnPCLoginEvent:
if (terces_PVP_resets != $terces_PVP_resets){
        set PVPDeaths,0;
        set @PVPDeathstoday,0;
        set #PVPDeathsAccount,0;
        set PVPKills,0;
        set @PVPKillstoday,0;
        set #PVPKillsAccount,0;
        set terces_PVP_resets,$terces_PVP_resets;
    }
if ($@LadderAskLogin == 0){
    if (#pvpbroadcast == 2) goto L_ignore;
    if (pvpbroadcast == 2) goto L_ignore;
    if (#pvpbroadcast == 1) goto L_ignore;
    if (pvpbroadcast == 1) goto L_ignore;

    if (pvpbroadcast == 0)
    mes "Hi, "+strcharinfo(0)+"";
    mes "Me is the PvP Top Management!";
    mes "Let me ask you one Question and i will let you play!";
    menu "Later please",L_close,"Okay, fine",L_fine;

    L_fine:
    next;
    mes "Well, do you want read Broadcast Messages when a Player reach a new position on the PvP Ranglist?";
    menu "Yeah, why not",L_accept,"No, thanks",L_accept_2,"Wtf is Broadcast?",L_broadcast;

    L_accept:
    next;
    mes "Yay, thank you! ^_^";
    mes "Will this Setting work on all your Chars on this account or only this char?";
    menu "Account",L_account,"Only this char",L_char;

    L_account:
    set #pvpbroadcast,2;
    next;
    mes "Okay, "+strcharinfo(0)+"";
    mes "Thank you for your time and have fun!";
    close;

    L_char:
    set pvpbroadcast,2;
    next;
    mes "Okay, "+strcharinfo(0)+"";
    mes "Thank you for your time and have fun!";
    goto access_eng;
    close;
    
    L_accept_2:
    next;
    mes "Yay, thank you! ^_^";
    mes "Will this Setting work on all your Chars on this account or only this char?";
    menu "Account",L_account_2,"Only this char",L_char_2;

    L_close:
    close;

    L_account_2:
    set #pvpbroadcast,1;
    next;
    mes "Okay, "+strcharinfo(0)+"";
    mes "Thank you for your time and have fun!";
    close;

    L_char_2:
    set pvpbroadcast,1;
    next;
    mes "Okay, "+strcharinfo(0)+"";
    mes "Thank you for your time and have fun!";
    goto access_eng;
    close;


    L_broadcast:
    mes "Broadcasts are this yellow messages from  the GMs";
    goto L_fine;
    }
}

prontera.gat,181,213,4    script    [PvP-Ladder]    750,{
    if ($@LadderChatRoom == 1) {
      delwaitingroom;
      waitingroom "PvP Top "+$@LadderLength+"",0;   // Look on the configuration!
    }

    set @name$,"[PvP-Ladder]";
    //Colour of:            Position    Name        Kills        Deaths        Time
    setarray @colour$[0],    "^996600",    "^006699",    "^00AA00",    "^FF0000",    "^EE8800";
if ($@LadderAskLogin == 1){
    if (#pvpbroadcast == 2) goto     access_eng;
    if (pvpbroadcast == 2) goto     access_eng;
    if (#pvpbroadcast == 1) goto     access_eng;
    if (pvpbroadcast == 1) goto     access_eng;
    if (pvpbroadcast == 0)
    mes "Hi, "+strcharinfo(0)+"";
    mes "Me is the PvP Top Management!";
    mes "Let me ask you one Question and i will let you play!";
    menu "Later please",L_close,"Okay, fine",L_fine;

    L_fine:
    next;
    mes "Well, do you want read Broadcast Messages when a Player reach a new position on the PvP Ranglist?";
    menu "Yeah, why not",L_accept,"No, thanks",L_accept_2,"Wtf is Broadcast?",L_broadcast;

    L_accept:
    next;
    mes "Yay, thank you! ^_^";
    mes "Will this Setting work on all your Chars on this account or only this char?";
    menu "Account",L_account,"Only this char",L_char;

    L_account:
    set #pvpbroadcast,2;
    next;
    mes "Okay, "+strcharinfo(0)+"";
    mes "Thank you for your time and have fun!";
    close;

    L_char:
    set pvpbroadcast,2;
    next;
    mes "Okay, "+strcharinfo(0)+"";
    mes "Thank you for your time and have fun!";
    goto access_eng;
    close;
    
    L_accept_2:
    next;
    mes "Yay, thank you! ^_^";
    mes "Will this Setting work on all your Chars on this account or only this char?";
    menu "Account",L_account_2,"Only this char",L_char_2;

    L_close:
    close;

    L_account_2:
    set #pvpbroadcast,1;
    next;
    mes "Okay, "+strcharinfo(0)+"";
    mes "Thank you for your time and have fun!";
    close;

    L_char_2:
    set pvpbroadcast,1;
    next;
    mes "Okay, "+strcharinfo(0)+"";
    mes "Thank you for your time and have fun!";
    goto access_eng;
    close;


    L_broadcast:
    mes "Broadcasts are this yellow messages from  the GMs";
    goto L_fine;
}
    access_eng:
    mes @name$;
    mes "Hello "+strcharinfo(0)+"...";
    mes "If you want to I can show you your PVP stats.";
    next;
    M_selection_eng:
    if ( getgmlevel () < $@LadderGMMenu )
        menu "Show me the PVP Ladder",M_Ladder_eng,"PvP stats since my login",M_seitLogin_eng,"PvP stats of this Char",M_dieserChar_eng,"Stats of the whole account",M_vomAccount_eng,"Cancel",M_abbrechen_eng;
    else
        menu "[GM MENU]",GMMenu,"[USER MENU]",UserMenu;

    UserMenu:
    menu "Show me the PVP Ladder",M_Ladder_eng,"PvP stats since my login",M_seitLogin_eng,"PvP stats of this Char",M_dieserChar_eng,"Stats of the whole account",M_vomAccount_eng,"Cancel",M_abbrechen_eng;

    GMMenu:
    mes "PVP Ladder Script";
    mes "Version: 1.7.3";
    mes "Status of functions: ";
    mes "Reset Ladder: No Bugs";
    mes "Delete Char on the ladder: BETA [Not working perfect]";
    menu "Reset Ladder",L_reset,"Delete a Char on the Ladder",L_del_char,"Cancel",M_abbrechen_eng;

    M_Ladder_eng:
    mes "Alright...I'll show you the Top "+ $@LadderLength +" with "+$@LadderSteps+" entries per page.";
    mes "It'll be viewed like this:";
    mes @colour$[0]+"Place^000000: "+@colour$[1]+"<name>^000000 :"+@colour$[2]+"<kills>^000000:"+@colour$[3]+"<deaths>^000000 "+@colour$[4]+"<time>";
    next;
    callsub L_Ladder;
    goto M_selection_eng;

    M_seitLogin_eng:
    mes @name$;
    mes "Your stats since your login:";
    mes @PVPKillstoday+"/"+@PVPDeathstoday+"(Kills/Deaths)";
    next;
    goto M_selection_eng;

    M_dieserChar_eng:
    mes @name$;
    mes "Your stats of this Char:";
    mes PVPKills+"/"+PVPDeaths+"(Kills/Deaths)";
    next;
    goto M_selection_eng;

    M_vomAccount_eng:
    mes @name$;
    mes "Your stats of the whole account:";
    mes #PVPKillsAccount+"/"+#PVPDeathsAccount+"(Kills/Deaths)";
    next;
    goto M_selection_eng;

    M_abbrechen_eng:
    mes @name$;
    mes "OK. You can come back to me and see your stats whenever you want.";
    close;

L_del_char:
    if (getgmlevel() < 99) end;
    mes "Do you want to delete a char on the Ladder?";
    if (select ("Yes","No") == 2) goto L_end;
    next;
    mes "Please give me the Ladder Position of the Char";
    input $@CharLadderInput;
    set $@CharLadder, $@CharLadderInput;
    deletearray @PosinLadder, $@CharLadderInput;
    next;
    mes "THIS IS ONLY  BETA";
    mes "When this step has not worked PLEASE wait until the next Update for this script";
    mes "Please don't request support when this step has not worked";
    close;

L_reset:
    if (getgmlevel() < 99) end;
    mes "Do you want to reset the ladder?";
    if (select ("Yes","No") == 2) goto L_end;
    mes "Are you really really sure you want to reset it?";
    menu "Yes, ffs!!",-,"No",L_end;
    deletearray $terces_PVP_kills,128;
    deletearray $terces_PVP_deaths,128;
    deletearray $terces_PVP_names$,128;
    deletearray $terces_PVP_times,128;
    set $terces_PVP_resets,$terces_PVP_resets +1;

    L_end:
    mes "Okay...cya";
    close;
    
    L_Ladder:
    for (set @y,0; @y < $@LadderLength; set @y,@y+$@LadderSteps){
        for (set @x,@y; (@x < (@y+$@LadderSteps)) && (@x < ($@LadderLength)); set @x,@x+1){
            if ($terces_PVP_names$[@x] != ""){
                mes @colour$[0]+(@x+1)+"^000000: "+@colour$[1]+$terces_PVP_names$[@x]+"^000000 "+@colour$[2]+$terces_PVP_kills[@x]+"^000000:"+@colour$[3]+$terces_PVP_deaths[@x]+"^000000 ~ "+@colour$[4]+callfunc ("Gettime",$terces_PVP_times[@x])+"^000000";
            } else {
                mes "^DD0000"+(@x+1)+": ^006699None^000000 ";
            }
        }
        next;
    }
    return;
}

function    script    Gettime    {
if (getarg(0)==0) return;

set @difftimedays,(gettimetick(2) - getarg(0));
set @difftimehours,@difftimedays%86400;
set @difftimeminutes,@difftimehours%3600;
set @difftimeseconds,@difftimeminutes%60;

set @days,@difftimedays/86400;
set @hours,@difftimehours/3600;
set @minutes,@difftimeminutes/60;
set @seconds,@difftimeseconds;
set @result$,"";
if(@days != 0) set @result$,@result$+@days+"d ";
if(@hours != 0) set @result$,@result$+@hours+"h ";
if(@minutes != 0) set @result$,@result$+@minutes+"m ";
if(@seconds != 0) set @result$,@result$+@seconds+"s";

return (@result$);
}

 


Edited by RyokoMVP
Script in [Code]

5 answers to this question

Recommended Posts

Posted

Hello , I Have Dota PVP Script + PVP Leader , can someone help me to make SQL Files for this script ? because i forgot where i got this script...and i lost my sql files :(

 

, and can someone make this script more simple ?? thanks

 

//============================== DOTA Sound PVP ===============================\\

-    script    DOTAPVP    -1,{

OnPCKillEvent:

    getmapxy .@mapname$,.@mapx,.@mapy,0;

    if ( .@mapname$ == "aldeg_cas01" || .@mapname$ == "aldeg_cas04" || .@mapname$ == "gefg_cas01" || .@mapname$ == "gefg_cas03" || .@mapname$ == "payg_cas01" || .@mapname$ == "payg_cas04" || .@mapname$ == "prtg_cas01" || .@mapname$ == "prtg_cas03" || .@mapname$ == "arug_cas02" || .@mapname$ == "schg_cas03" || .@mapname$ == "pvp_y_8-5" || .@mapname$ == "arena_4" || .@mapname$ == "pvp_y_8-2" ) {

        if (@first != 1 && @PlayersKilledStreak < 1) {

        set @first,1;

        set @PlayersKilledStreak,1;

        set @lastkilltime,gettimetick(2)+300;

        specialeffect2 7;

        announce ""+strcharinfo(0)+" has gained First Blood",bc_all,0x00FF00;

        goto L_RESULT;

        }

        if (@first == 1 && @PlayersKilledStreak < 1) {

        set @PlayersKilledStreak,1;

        set @lastkilltime,gettimetick(2)+300;

            if(killedrid == @whokillme) {

            specialeffect2 131;

            announce ""+strcharinfo(0)+" has pawned "+rid2name(killedrid)+"'s head",bc_all,0x00FF00;

            goto L_RESULT;

            }

        specialeffect2 7;

        goto L_RESULT;

        }

        if (@PlayersKilledStreak == 1) {

        set @PlayersKilledStreak,2;

        specialeffect2 7;

            if (@lastkilltime > gettimetick(2)) {

            soundeffectall "doublekill.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" has just got a Double Kill !",bc_all,0x00FF00;

            set @lastkilltime,gettimetick(2)+300;

            }

        goto L_RESULT;

        }

        if (@PlayersKilledStreak == 2) {

        set @PlayersKilledStreak,3;

        specialeffect2 7;

            if (@lastkilltime > gettimetick(2)) {

            soundeffectall "triplekill.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" has just got a Triple Kill !",bc_all,0x00FF00;

            set @lastkilltime,gettimetick(2)+300;

            }

            else {

            soundeffectall "killingspree.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" is on a KILLING SPREE !",bc_all,0x00FF00;

            }

        goto L_RESULT;

        }

        if (@PlayersKilledStreak == 3) {

        set @PlayersKilledStreak,4;

        specialeffect2 7;

            if (@lastkilltime > gettimetick(2)) {

            soundeffectall "ultrakill.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" has just got an Ultra Kill !",bc_all,0x00FF00;

            set @lastkilltime,gettimetick(2)+300;

            goto L_RESULT;

            }

            else {

            soundeffectall "dominating.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" is DOMINATING !",bc_all,0x00FF00;

            }

        goto L_RESULT;

        }

        if (@PlayersKilledStreak == 4) {

        set @PlayersKilledStreak,5;

        specialeffect2 7;

            if (@lastkilltime > gettimetick(2)) {

            soundeffectall "rampage.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" is on a Rampage !",bc_all,0x00FF00;

            goto L_RESULT;

            }

            else {

            soundeffectall "megakill.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" has a MEGA KILL !",bc_all,0x00FF00;

            }

        goto L_RESULT;

        }

        if (@PlayersKilledStreak == 5) {

        set @PlayersKilledStreak,6;

        specialeffect2 7;

            soundeffectall "unstoppable.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" is UNSTOPPABLE !!",bc_all,0x00FF00;

            goto L_RESULT;

        }

        if (@PlayersKilledStreak == 6) {

        set @PlayersKilledStreak,7;

        specialeffect2 7;

            soundeffectall "wickedsick.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" is WICKED SICK !!",bc_all,0x00FF00;

            goto L_RESULT;

        }

        if (@PlayersKilledStreak == 7) {

        set @PlayersKilledStreak,8;

        specialeffect2 7;

            soundeffectall "monsterkill.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" has a MONSTER KILL !!",bc_all,0x00FF00;

            goto L_RESULT;

        }

        if (@PlayersKilledStreak == 8) {

        set @PlayersKilledStreak,9;

        specialeffect2 7;

            soundeffectall "godlike.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" is GODLIKE !!!",bc_all,0x00FF00;

            goto L_RESULT;

        }

        if (@PlayersKilledStreak > 8) {

        set @PlayersKilledStreak,@PlayersKilledStreak + 1;

        specialeffect2 7;

            soundeffectall "holyshit.wav",0,.@mapname$;

            specialeffect2 72;

            announce ""+strcharinfo(0)+" is BEYOND GODLIKE ["+@PlayersKilledStreak+"]. Someone KILL "+( (sex)?"HIM":"HER" )+" !!!!!!",bc_all,0x00FF00;

            }

        goto L_RESULT;

        }

        end;

L_RESULT:

        callfunc "dotawin";

        end;

OnPCDieEvent:

    getmapxy .@mapname$,.@mapx,.@mapy,0;

    if ( .@mapname$ == "aldeg_cas01" || .@mapname$ == "aldeg_cas04" || .@mapname$ == "gefg_cas01" || .@mapname$ == "gefg_cas03" || .@mapname$ == "payg_cas01" || .@mapname$ == "payg_cas04" || .@mapname$ == "prtg_cas01" || .@mapname$ == "prtg_cas03" || .@mapname$ == "arug_cas02" || .@mapname$ == "schg_cas03" || .@mapname$ == "pvp_y_8-5" || .@mapname$ == "arena_4" || .@mapname$ == "pvp_y_8-2" ) {

        if(@PlayersKilledStreak>2){

            announce ""+rid2name(killerrid)+" has ended "+strcharinfo(0)+"'s "+$@streakname$[@PlayersKilledStreak]+"!",bc_all,0x00FF00;

            }

            set @PlayersKilledStreak,0;

            set @whokillme,killerrid;

            callfunc "dotaloss";

        }

    end;

OnInit:

    set .showtotal, 20;

    set .showpage, 10;

    setarray $@streakname$[3],"Killing Spree","Dominating","Mega Kill","Unstoppable","Wicked Sick","Monster Kill","Godlike","Beyond Godlike";

    end;

}

function    script    dotawin    {

query_sql "UPDATE `pvpladder` SET `kills` = `kills` + 1 WHERE `char_id` = "+getcharid(0);

query_sql ("SELECT `streaks` FROM `pvpladder` WHERE `char_id` = "+getcharid(0), .@streaks);

if(.@streaks < @PlayersKilledStreak) {

query_sql "UPDATE `pvpladder` SET `streaks` = "+@PlayersKilledStreak+" WHERE `char_id` = "+getcharid(0);

}

end;

}

function    script    dotaloss    {

query_sql "UPDATE `pvpladder` SET `deaths` = `deaths` + 1 WHERE `char_id` = "+getcharid(0);

end;

}

-    script    PVPLADDEROPTIONS    -1,{

end;

OnInit:

// 0 = Disabled (NO)

// 1 = Enable   (YES)

set $@languageselect, 0;    //Enable/Disable language selection [English/German] (Default: 1)

set $@LadderAnnounce, 0;    //Enable/Disable the announcement when a char reaches a new position in the ladder (Default: 1)

set $@LadderLength, 30;        //Set the length of the Ladder [!Not higher than 128!] (Default: 30)

set $@LadderSteps, 10;        //Set the views per page (Default: 10)set $@LadderExpGain, 1;        //Enable/Disable experience gain when reaching a new position in the ladder (*Note1)

set $@LadderExp, 50;        //Set Experience gain value (*Note1)

set $@LadderZenyGain, 1;    //Enable/Disable zeny gain when reaching a new position in the ladder

set $@LadderZeny, 50;        //Set Zeny gain value

set $@LadderChatRoom, 1;    //Enable/Disable an Chat Room over the NPC with the message "PvP Ladder" (Users can not enter the Chat room)

set $@LadderAskLogin, 1;    //Enable/Disable that the NPC asks about the Broadcast when a Player logins / or  with the Npc Chat (0 = Login Ask , 1 = Npc Chat) Related: 0

set $@LadderGM,    60;        //All GM LVL UNDER this value will show on the PvP Ladder (Over GM LVL: Not shown on Ladder | under GM LVL:  Shown on Ladder)

set $@LadderGMMenu,    99;    //GM LVL that need for entering GM Menu

}

-    script    PVPLADDER    -1,{

OnPCKillEvent:

if ( getgmlevel() >= $@LadderGM ) end;

if (terces_PVP_resets != $terces_PVP_resets) {

    dispbottom "Please relog your character, in order to get the correct kills for you in the PVP ladder.";

    dispbottom "Because a GM just reset the ladder.";

    end;

}

if ( killedrid == getcharid(3) ) {

    set PVPDeaths, PVPDeaths +1;

    set #PVPDeathsAccount, #PVPDeathsAccount +1;

    set @PVPDeathstoday, @PVPDeathstoday +1;

    end;

}

set $@PVPcounter,$@PVPcounter+1;

set getd("$@PVPKill"+$@PVPcounter),getcharid(3);    //getd to avoid errors when more than 1 people kill someone

attachrid(killedrid);

set PVPDeaths,PVPDeaths+1;

set @PVPDeathstoday,@PVPDeathstoday+1;

set #PVPDeathsAccount,#PVPDeathsAccount+1;

set getd("$@PVPkilledplayer"+$@PVPcounter+"$"), strcharinfo(0);    //again, getd to avoid possible glitches

detachrid;

attachrid(getd("$@PVPKill"+$@PVPcounter));

CountKills:

    set PVPKills,PVPKills+1;

    set @PVPKillstoday,@PVPKillstoday+1;

    set #PVPKillsAccount,#PVPKillsAccount+1;

    setarray @playerstats[0],@PVPKillstoday,@PVPDeathstoday,PVPKills,PVPDeaths,#PVPKillsAccount,#PVPDeathsAccount;

l_ladder:

    set @considerdeath,0;

    for (set @PosinLadder, 0; @PosinLadder < $@LadderLength; set @PosinLadder, @PosinLadder + 1){

        if (PVPKills >= $terces_PVP_kills[@PosinLadder]){    //Player deserves to be in the ladder

            //Check if Death plays a role on the position

            if ((PVPKills == $terces_PVP_kills[@PosinLadder]) && (PVPDeaths > $terces_PVP_deaths[@PosinLadder])) set @considerdeath,1; //Consider Deaths

            //Check if the player only topped his own scores

            if ($terces_PVP_names$[@PosinLadder] == strcharinfo(0)){

                set $terces_PVP_kills[@PosinLadder],PVPKills;

                set $terces_PVP_deaths[@PosinLadder],PVPDeaths;

                end;

            }

            //Moves all characters in the Ladder

            for (set @beginmoving, $@LadderLength; @beginmoving >= (@PosinLadder+@considerdeath); set @beginmoving, @beginmoving - 1){

                if ($terces_PVP_names$[@beginmoving] == strcharinfo(0)){

                    //If the player already is in the Ladder it only has to move players between characters new position and characters old position

                    callsub L_LadderMove,0;

                    end;

                }

                else if (@beginmoving == (@PosinLadder+@considerdeath)){

                    //Player is not in the Ladder and therefor it has to move all players from characters new position downwards

                    callsub L_LadderMove,1;

                    end;

                }

            }

            end;

        }

    }

end;

L_LadderMove:

    if (getarg(0) == 0) set @length,@beginmoving;

    if (getarg(0) == 1) set @length,$@LadderLength;

    for (set @movecycle, @length; @movecycle > (@PosinLadder+@considerdeath);

     set @movecycle, @movecycle - 1){

        set $terces_PVP_names$[@movecycle],$terces_PVP_names$[(@movecycle-1)];

        set $terces_PVP_kills[@movecycle],$terces_PVP_kills[(@movecycle-1)];

        set $terces_PVP_deaths[@movecycle],$terces_PVP_deaths[(@movecycle-1)];

        set $terces_PVP_times[@movecycle],$terces_PVP_times[(@movecycle-1)];

    }

    //sets the character's stats in the new position

    set $terces_PVP_names$[(@PosinLadder+@considerdeath)],strcharinfo(0);

    set $terces_PVP_kills[(@PosinLadder+@considerdeath)],PVPKills;

    set $terces_PVP_deaths[(@PosinLadder+@considerdeath)],PVPDeaths;

    set $terces_PVP_times[(@PosinLadder+@considerdeath)],gettimetick(2);

    //Experience Gain

    if ($@LadderExpGain == 1){

        set BaseExp,BaseExp+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderExp);

        dispbottom "You have just been rewarded with "+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderExp)+" base experience points";

    }

    //Zeny Gain

    if ($@LadderZenyGain == 1){

        set Zeny,Zeny+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderZeny);

        dispbottom "You have just been rewarded with "+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderZeny)+" Zeny";

    }

    //Announcement (Setting for Char)

    if (pvpbroadcast == 2){

    announce strcharinfo(0)+" just claimed the "+((@PosinLadder+@considerdeath)+1)+". Position in the Top "+$@LadderLength+" after killing "+getd("$@PVPkilledplayer"+$@PVPcounter+"$")+".",16;

    }

    //Announcement (Setting for Account)

    if (#pvpbroadcast == 2){

    announce strcharinfo(0)+" just claimed the "+((@PosinLadder+@considerdeath)+1)+". Position in the Top "+$@LadderLength+" after killing "+getd("$@PVPkilledplayer"+$@PVPcounter+"$")+".",16;

    }

    end;

OnPCLoginEvent:

if (terces_PVP_resets != $terces_PVP_resets){

        set PVPDeaths,0;

        set @PVPDeathstoday,0;

        set #PVPDeathsAccount,0;

        set PVPKills,0;

        set @PVPKillstoday,0;

        set #PVPKillsAccount,0;

        set terces_PVP_resets,$terces_PVP_resets;

    }

if ($@LadderAskLogin == 0){

    if (#pvpbroadcast == 2) goto L_ignore;

    if (pvpbroadcast == 2) goto L_ignore;

    if (#pvpbroadcast == 1) goto L_ignore;

    if (pvpbroadcast == 1) goto L_ignore;

    if (pvpbroadcast == 0)

    mes "Hi, "+strcharinfo(0)+"";

    mes "Me is the PvP Top Management!";

    mes "Let me ask you one Question and i will let you play!";

    menu "Later please",L_close,"Okay, fine",L_fine;

    L_fine:

    next;

    mes "Well, do you want read Broadcast Messages when a Player reach a new position on the PvP Ranglist?";

    menu "Yeah, why not",L_accept,"No, thanks",L_accept_2,"Wtf is Broadcast?",L_broadcast;

    L_accept:

    next;

    mes "Yay, thank you! ^_^";

    mes "Will this Setting work on all your Chars on this account or only this char?";

    menu "Account",L_account,"Only this char",L_char;

    L_account:

    set #pvpbroadcast,2;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    close;

    L_char:

    set pvpbroadcast,2;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    goto access_eng;

    close;

    

    L_accept_2:

    next;

    mes "Yay, thank you! ^_^";

    mes "Will this Setting work on all your Chars on this account or only this char?";

    menu "Account",L_account_2,"Only this char",L_char_2;

    L_close:

    close;

    L_account_2:

    set #pvpbroadcast,1;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    close;

    L_char_2:

    set pvpbroadcast,1;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    goto access_eng;

    close;

    L_broadcast:

    mes "Broadcasts are this yellow messages from  the GMs";

    goto L_fine;

    }

}

prontera.gat,181,213,4    script    [PvP-Ladder]    750,{

    if ($@LadderChatRoom == 1) {

      delwaitingroom;

      waitingroom "PvP Top "+$@LadderLength+"",0;   // Look on the configuration!

    }

    set @name$,"[PvP-Ladder]";

    //Colour of:            Position    Name        Kills        Deaths        Time

    setarray @colour$[0],    "^996600",    "^006699",    "^00AA00",    "^FF0000",    "^EE8800";

if ($@LadderAskLogin == 1){

    if (#pvpbroadcast == 2) goto     access_eng;

    if (pvpbroadcast == 2) goto     access_eng;

    if (#pvpbroadcast == 1) goto     access_eng;

    if (pvpbroadcast == 1) goto     access_eng;

    if (pvpbroadcast == 0)

    mes "Hi, "+strcharinfo(0)+"";

    mes "Me is the PvP Top Management!";

    mes "Let me ask you one Question and i will let you play!";

    menu "Later please",L_close,"Okay, fine",L_fine;

    L_fine:

    next;

    mes "Well, do you want read Broadcast Messages when a Player reach a new position on the PvP Ranglist?";

    menu "Yeah, why not",L_accept,"No, thanks",L_accept_2,"Wtf is Broadcast?",L_broadcast;

    L_accept:

    next;

    mes "Yay, thank you! ^_^";

    mes "Will this Setting work on all your Chars on this account or only this char?";

    menu "Account",L_account,"Only this char",L_char;

    L_account:

    set #pvpbroadcast,2;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    close;

    L_char:

    set pvpbroadcast,2;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    goto access_eng;

    close;

    

    L_accept_2:

    next;

    mes "Yay, thank you! ^_^";

    mes "Will this Setting work on all your Chars on this account or only this char?";

    menu "Account",L_account_2,"Only this char",L_char_2;

    L_close:

    close;

    L_account_2:

    set #pvpbroadcast,1;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    close;

    L_char_2:

    set pvpbroadcast,1;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    goto access_eng;

    close;

    L_broadcast:

    mes "Broadcasts are this yellow messages from  the GMs";

    goto L_fine;

}

    access_eng:

    mes @name$;

    mes "Hello "+strcharinfo(0)+"...";

    mes "If you want to I can show you your PVP stats.";

    next;

    M_selection_eng:

    if ( getgmlevel () < $@LadderGMMenu )

        menu "Show me the PVP Ladder",M_Ladder_eng,"PvP stats since my login",M_seitLogin_eng,"PvP stats of this Char",M_dieserChar_eng,"Stats of the whole account",M_vomAccount_eng,"Cancel",M_abbrechen_eng;

    else

        menu "[GM MENU]",GMMenu,"[uSER MENU]",UserMenu;

    UserMenu:

    menu "Show me the PVP Ladder",M_Ladder_eng,"PvP stats since my login",M_seitLogin_eng,"PvP stats of this Char",M_dieserChar_eng,"Stats of the whole account",M_vomAccount_eng,"Cancel",M_abbrechen_eng;

    GMMenu:

    mes "PVP Ladder Script";

    mes "Version: 1.7.3";

    mes "Status of functions: ";

    mes "Reset Ladder: No Bugs";

    mes "Delete Char on the ladder: BETA [Not working perfect]";

    menu "Reset Ladder",L_reset,"Delete a Char on the Ladder",L_del_char,"Cancel",M_abbrechen_eng;

    M_Ladder_eng:

    mes "Alright...I'll show you the Top "+ $@LadderLength +" with "+$@LadderSteps+" entries per page.";

    mes "It'll be viewed like this:";

    mes @colour$[0]+"Place^000000: "+@colour$[1]+"<name>^000000 :"+@colour$[2]+"<kills>^000000:"+@colour$[3]+"<deaths>^000000 "+@colour$[4]+"<time>";

    next;

    callsub L_Ladder;

    goto M_selection_eng;

    M_seitLogin_eng:

    mes @name$;

    mes "Your stats since your login:";

    mes @PVPKillstoday+"/"+@PVPDeathstoday+"(Kills/Deaths)";

    next;

    goto M_selection_eng;

    M_dieserChar_eng:

    mes @name$;

    mes "Your stats of this Char:";

    mes PVPKills+"/"+PVPDeaths+"(Kills/Deaths)";

    next;

    goto M_selection_eng;

    M_vomAccount_eng:

    mes @name$;

    mes "Your stats of the whole account:";

    mes #PVPKillsAccount+"/"+#PVPDeathsAccount+"(Kills/Deaths)";

    next;

    goto M_selection_eng;

    M_abbrechen_eng:

    mes @name$;

    mes "OK. You can come back to me and see your stats whenever you want.";

    close;

L_del_char:

    if (getgmlevel() < 99) end;

    mes "Do you want to delete a char on the Ladder?";

    if (select ("Yes","No") == 2) goto L_end;

    next;

    mes "Please give me the Ladder Position of the Char";

    input $@CharLadderInput;

    set $@CharLadder, $@CharLadderInput;

    deletearray @PosinLadder, $@CharLadderInput;

    next;

    mes "THIS IS ONLY  BETA";

    mes "When this step has not worked PLEASE wait until the next Update for this script";

    mes "Please don't request support when this step has not worked";

    close;

L_reset:

    if (getgmlevel() < 99) end;

    mes "Do you want to reset the ladder?";

    if (select ("Yes","No") == 2) goto L_end;

    mes "Are you really really sure you want to reset it?";

    menu "Yes, ffs!!",-,"No",L_end;

    deletearray $terces_PVP_kills,128;

    deletearray $terces_PVP_deaths,128;

    deletearray $terces_PVP_names$,128;

    deletearray $terces_PVP_times,128;

    set $terces_PVP_resets,$terces_PVP_resets +1;

    L_end:

    mes "Okay...cya";

    close;

    

    L_Ladder:

    for (set @y,0; @y < $@LadderLength; set @y,@y+$@LadderSteps){

        for (set @x,@y; (@x < (@y+$@LadderSteps)) && (@x < ($@LadderLength)); set @x,@x+1){

            if ($terces_PVP_names$[@x] != ""){

                mes @colour$[0]+(@x+1)+"^000000: "+@colour$[1]+$terces_PVP_names$[@x]+"^000000 "+@colour$[2]+$terces_PVP_kills[@x]+"^000000:"+@colour$[3]+$terces_PVP_deaths[@x]+"^000000 ~ "+@colour$[4]+callfunc ("Gettime",$terces_PVP_times[@x])+"^000000";

            } else {

                mes "^DD0000"+(@x+1)+": ^006699None^000000 ";

            }

        }

        next;

    }

    return;

}

function    script    Gettime    {

if (getarg(0)==0) return;

set @difftimedays,(gettimetick(2) - getarg(0));

set @difftimehours,@difftimedays%86400;

set @difftimeminutes,@difftimehours%3600;

set @difftimeseconds,@difftimeminutes%60;

set @days,@difftimedays/86400;

set @hours,@difftimehours/3600;

set @minutes,@difftimeminutes/60;

set @seconds,@difftimeseconds;

set @result$,"";

if(@days != 0) set @result$,@result$+@days+"d ";

if(@hours != 0) set @result$,@result$+@hours+"h ";

if(@minutes != 0) set @result$,@result$+@minutes+"m ";

if(@seconds != 0) set @result$,@result$+@seconds+"s";

return (@result$);

}

Same topic http://rathena.org/board/topic/81535-pvp-ladder-modifications/?p=193845

Posted

Hello , I Have Dota PVP Script + PVP Leader , can someone help me to make SQL Files for this script ? because i forgot where i got this script...and i lost my sql files :(

 

, and can someone make this script more simple ?? thanks

 

//============================== DOTA Sound PVP ===============================\\

-    script    DOTAPVP    -1,{

OnPCKillEvent:

    getmapxy .@mapname$,.@mapx,.@mapy,0;

    if ( .@mapname$ == "aldeg_cas01" || .@mapname$ == "aldeg_cas04" || .@mapname$ == "gefg_cas01" || .@mapname$ == "gefg_cas03" || .@mapname$ == "payg_cas01" || .@mapname$ == "payg_cas04" || .@mapname$ == "prtg_cas01" || .@mapname$ == "prtg_cas03" || .@mapname$ == "arug_cas02" || .@mapname$ == "schg_cas03" || .@mapname$ == "pvp_y_8-5" || .@mapname$ == "arena_4" || .@mapname$ == "pvp_y_8-2" ) {

        if (@first != 1 && @PlayersKilledStreak < 1) {

        set @first,1;

        set @PlayersKilledStreak,1;

        set @lastkilltime,gettimetick(2)+300;

        specialeffect2 7;

        announce ""+strcharinfo(0)+" has gained First Blood",bc_all,0x00FF00;

        goto L_RESULT;

        }

        if (@first == 1 && @PlayersKilledStreak < 1) {

        set @PlayersKilledStreak,1;

        set @lastkilltime,gettimetick(2)+300;

            if(killedrid == @whokillme) {

            specialeffect2 131;

            announce ""+strcharinfo(0)+" has pawned "+rid2name(killedrid)+"'s head",bc_all,0x00FF00;

            goto L_RESULT;

            }

        specialeffect2 7;

        goto L_RESULT;

        }

        if (@PlayersKilledStreak == 1) {

        set @PlayersKilledStreak,2;

        specialeffect2 7;

            if (@lastkilltime > gettimetick(2)) {

            soundeffectall "doublekill.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" has just got a Double Kill !",bc_all,0x00FF00;

            set @lastkilltime,gettimetick(2)+300;

            }

        goto L_RESULT;

        }

        if (@PlayersKilledStreak == 2) {

        set @PlayersKilledStreak,3;

        specialeffect2 7;

            if (@lastkilltime > gettimetick(2)) {

            soundeffectall "triplekill.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" has just got a Triple Kill !",bc_all,0x00FF00;

            set @lastkilltime,gettimetick(2)+300;

            }

            else {

            soundeffectall "killingspree.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" is on a KILLING SPREE !",bc_all,0x00FF00;

            }

        goto L_RESULT;

        }

        if (@PlayersKilledStreak == 3) {

        set @PlayersKilledStreak,4;

        specialeffect2 7;

            if (@lastkilltime > gettimetick(2)) {

            soundeffectall "ultrakill.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" has just got an Ultra Kill !",bc_all,0x00FF00;

            set @lastkilltime,gettimetick(2)+300;

            goto L_RESULT;

            }

            else {

            soundeffectall "dominating.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" is DOMINATING !",bc_all,0x00FF00;

            }

        goto L_RESULT;

        }

        if (@PlayersKilledStreak == 4) {

        set @PlayersKilledStreak,5;

        specialeffect2 7;

            if (@lastkilltime > gettimetick(2)) {

            soundeffectall "rampage.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" is on a Rampage !",bc_all,0x00FF00;

            goto L_RESULT;

            }

            else {

            soundeffectall "megakill.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" has a MEGA KILL !",bc_all,0x00FF00;

            }

        goto L_RESULT;

        }

        if (@PlayersKilledStreak == 5) {

        set @PlayersKilledStreak,6;

        specialeffect2 7;

            soundeffectall "unstoppable.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" is UNSTOPPABLE !!",bc_all,0x00FF00;

            goto L_RESULT;

        }

        if (@PlayersKilledStreak == 6) {

        set @PlayersKilledStreak,7;

        specialeffect2 7;

            soundeffectall "wickedsick.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" is WICKED SICK !!",bc_all,0x00FF00;

            goto L_RESULT;

        }

        if (@PlayersKilledStreak == 7) {

        set @PlayersKilledStreak,8;

        specialeffect2 7;

            soundeffectall "monsterkill.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" has a MONSTER KILL !!",bc_all,0x00FF00;

            goto L_RESULT;

        }

        if (@PlayersKilledStreak == 8) {

        set @PlayersKilledStreak,9;

        specialeffect2 7;

            soundeffectall "godlike.wav",0,.@mapname$;

            announce ""+strcharinfo(0)+" is GODLIKE !!!",bc_all,0x00FF00;

            goto L_RESULT;

        }

        if (@PlayersKilledStreak > 8) {

        set @PlayersKilledStreak,@PlayersKilledStreak + 1;

        specialeffect2 7;

            soundeffectall "holyshit.wav",0,.@mapname$;

            specialeffect2 72;

            announce ""+strcharinfo(0)+" is BEYOND GODLIKE ["+@PlayersKilledStreak+"]. Someone KILL "+( (sex)?"HIM":"HER" )+" !!!!!!",bc_all,0x00FF00;

            }

        goto L_RESULT;

        }

        end;

L_RESULT:

        callfunc "dotawin";

        end;

OnPCDieEvent:

    getmapxy .@mapname$,.@mapx,.@mapy,0;

    if ( .@mapname$ == "aldeg_cas01" || .@mapname$ == "aldeg_cas04" || .@mapname$ == "gefg_cas01" || .@mapname$ == "gefg_cas03" || .@mapname$ == "payg_cas01" || .@mapname$ == "payg_cas04" || .@mapname$ == "prtg_cas01" || .@mapname$ == "prtg_cas03" || .@mapname$ == "arug_cas02" || .@mapname$ == "schg_cas03" || .@mapname$ == "pvp_y_8-5" || .@mapname$ == "arena_4" || .@mapname$ == "pvp_y_8-2" ) {

        if(@PlayersKilledStreak>2){

            announce ""+rid2name(killerrid)+" has ended "+strcharinfo(0)+"'s "+$@streakname$[@PlayersKilledStreak]+"!",bc_all,0x00FF00;

            }

            set @PlayersKilledStreak,0;

            set @whokillme,killerrid;

            callfunc "dotaloss";

        }

    end;

OnInit:

    set .showtotal, 20;

    set .showpage, 10;

    setarray $@streakname$[3],"Killing Spree","Dominating","Mega Kill","Unstoppable","Wicked Sick","Monster Kill","Godlike","Beyond Godlike";

    end;

}

function    script    dotawin    {

query_sql "UPDATE `pvpladder` SET `kills` = `kills` + 1 WHERE `char_id` = "+getcharid(0);

query_sql ("SELECT `streaks` FROM `pvpladder` WHERE `char_id` = "+getcharid(0), .@streaks);

if(.@streaks < @PlayersKilledStreak) {

query_sql "UPDATE `pvpladder` SET `streaks` = "+@PlayersKilledStreak+" WHERE `char_id` = "+getcharid(0);

}

end;

}

function    script    dotaloss    {

query_sql "UPDATE `pvpladder` SET `deaths` = `deaths` + 1 WHERE `char_id` = "+getcharid(0);

end;

}

-    script    PVPLADDEROPTIONS    -1,{

end;

OnInit:

// 0 = Disabled (NO)

// 1 = Enable   (YES)

set $@languageselect, 0;    //Enable/Disable language selection [English/German] (Default: 1)

set $@LadderAnnounce, 0;    //Enable/Disable the announcement when a char reaches a new position in the ladder (Default: 1)

set $@LadderLength, 30;        //Set the length of the Ladder [!Not higher than 128!] (Default: 30)

set $@LadderSteps, 10;        //Set the views per page (Default: 10)set $@LadderExpGain, 1;        //Enable/Disable experience gain when reaching a new position in the ladder (*Note1)

set $@LadderExp, 50;        //Set Experience gain value (*Note1)

set $@LadderZenyGain, 1;    //Enable/Disable zeny gain when reaching a new position in the ladder

set $@LadderZeny, 50;        //Set Zeny gain value

set $@LadderChatRoom, 1;    //Enable/Disable an Chat Room over the NPC with the message "PvP Ladder" (Users can not enter the Chat room)

set $@LadderAskLogin, 1;    //Enable/Disable that the NPC asks about the Broadcast when a Player logins / or  with the Npc Chat (0 = Login Ask , 1 = Npc Chat) Related: 0

set $@LadderGM,    60;        //All GM LVL UNDER this value will show on the PvP Ladder (Over GM LVL: Not shown on Ladder | under GM LVL:  Shown on Ladder)

set $@LadderGMMenu,    99;    //GM LVL that need for entering GM Menu

}

-    script    PVPLADDER    -1,{

OnPCKillEvent:

if ( getgmlevel() >= $@LadderGM ) end;

if (terces_PVP_resets != $terces_PVP_resets) {

    dispbottom "Please relog your character, in order to get the correct kills for you in the PVP ladder.";

    dispbottom "Because a GM just reset the ladder.";

    end;

}

if ( killedrid == getcharid(3) ) {

    set PVPDeaths, PVPDeaths +1;

    set #PVPDeathsAccount, #PVPDeathsAccount +1;

    set @PVPDeathstoday, @PVPDeathstoday +1;

    end;

}

set $@PVPcounter,$@PVPcounter+1;

set getd("$@PVPKill"+$@PVPcounter),getcharid(3);    //getd to avoid errors when more than 1 people kill someone

attachrid(killedrid);

set PVPDeaths,PVPDeaths+1;

set @PVPDeathstoday,@PVPDeathstoday+1;

set #PVPDeathsAccount,#PVPDeathsAccount+1;

set getd("$@PVPkilledplayer"+$@PVPcounter+"$"), strcharinfo(0);    //again, getd to avoid possible glitches

detachrid;

attachrid(getd("$@PVPKill"+$@PVPcounter));

CountKills:

    set PVPKills,PVPKills+1;

    set @PVPKillstoday,@PVPKillstoday+1;

    set #PVPKillsAccount,#PVPKillsAccount+1;

    setarray @playerstats[0],@PVPKillstoday,@PVPDeathstoday,PVPKills,PVPDeaths,#PVPKillsAccount,#PVPDeathsAccount;

l_ladder:

    set @considerdeath,0;

    for (set @PosinLadder, 0; @PosinLadder < $@LadderLength; set @PosinLadder, @PosinLadder + 1){

        if (PVPKills >= $terces_PVP_kills[@PosinLadder]){    //Player deserves to be in the ladder

            //Check if Death plays a role on the position

            if ((PVPKills == $terces_PVP_kills[@PosinLadder]) && (PVPDeaths > $terces_PVP_deaths[@PosinLadder])) set @considerdeath,1; //Consider Deaths

            //Check if the player only topped his own scores

            if ($terces_PVP_names$[@PosinLadder] == strcharinfo(0)){

                set $terces_PVP_kills[@PosinLadder],PVPKills;

                set $terces_PVP_deaths[@PosinLadder],PVPDeaths;

                end;

            }

            //Moves all characters in the Ladder

            for (set @beginmoving, $@LadderLength; @beginmoving >= (@PosinLadder+@considerdeath); set @beginmoving, @beginmoving - 1){

                if ($terces_PVP_names$[@beginmoving] == strcharinfo(0)){

                    //If the player already is in the Ladder it only has to move players between characters new position and characters old position

                    callsub L_LadderMove,0;

                    end;

                }

                else if (@beginmoving == (@PosinLadder+@considerdeath)){

                    //Player is not in the Ladder and therefor it has to move all players from characters new position downwards

                    callsub L_LadderMove,1;

                    end;

                }

            }

            end;

        }

    }

end;

L_LadderMove:

    if (getarg(0) == 0) set @length,@beginmoving;

    if (getarg(0) == 1) set @length,$@LadderLength;

    for (set @movecycle, @length; @movecycle > (@PosinLadder+@considerdeath);

     set @movecycle, @movecycle - 1){

        set $terces_PVP_names$[@movecycle],$terces_PVP_names$[(@movecycle-1)];

        set $terces_PVP_kills[@movecycle],$terces_PVP_kills[(@movecycle-1)];

        set $terces_PVP_deaths[@movecycle],$terces_PVP_deaths[(@movecycle-1)];

        set $terces_PVP_times[@movecycle],$terces_PVP_times[(@movecycle-1)];

    }

    //sets the character's stats in the new position

    set $terces_PVP_names$[(@PosinLadder+@considerdeath)],strcharinfo(0);

    set $terces_PVP_kills[(@PosinLadder+@considerdeath)],PVPKills;

    set $terces_PVP_deaths[(@PosinLadder+@considerdeath)],PVPDeaths;

    set $terces_PVP_times[(@PosinLadder+@considerdeath)],gettimetick(2);

    //Experience Gain

    if ($@LadderExpGain == 1){

        set BaseExp,BaseExp+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderExp);

        dispbottom "You have just been rewarded with "+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderExp)+" base experience points";

    }

    //Zeny Gain

    if ($@LadderZenyGain == 1){

        set Zeny,Zeny+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderZeny);

        dispbottom "You have just been rewarded with "+(($@LadderLength-((@PosinLadder+@considerdeath)-1))*$@LadderZeny)+" Zeny";

    }

    //Announcement (Setting for Char)

    if (pvpbroadcast == 2){

    announce strcharinfo(0)+" just claimed the "+((@PosinLadder+@considerdeath)+1)+". Position in the Top "+$@LadderLength+" after killing "+getd("$@PVPkilledplayer"+$@PVPcounter+"$")+".",16;

    }

    //Announcement (Setting for Account)

    if (#pvpbroadcast == 2){

    announce strcharinfo(0)+" just claimed the "+((@PosinLadder+@considerdeath)+1)+". Position in the Top "+$@LadderLength+" after killing "+getd("$@PVPkilledplayer"+$@PVPcounter+"$")+".",16;

    }

    end;

OnPCLoginEvent:

if (terces_PVP_resets != $terces_PVP_resets){

        set PVPDeaths,0;

        set @PVPDeathstoday,0;

        set #PVPDeathsAccount,0;

        set PVPKills,0;

        set @PVPKillstoday,0;

        set #PVPKillsAccount,0;

        set terces_PVP_resets,$terces_PVP_resets;

    }

if ($@LadderAskLogin == 0){

    if (#pvpbroadcast == 2) goto L_ignore;

    if (pvpbroadcast == 2) goto L_ignore;

    if (#pvpbroadcast == 1) goto L_ignore;

    if (pvpbroadcast == 1) goto L_ignore;

    if (pvpbroadcast == 0)

    mes "Hi, "+strcharinfo(0)+"";

    mes "Me is the PvP Top Management!";

    mes "Let me ask you one Question and i will let you play!";

    menu "Later please",L_close,"Okay, fine",L_fine;

    L_fine:

    next;

    mes "Well, do you want read Broadcast Messages when a Player reach a new position on the PvP Ranglist?";

    menu "Yeah, why not",L_accept,"No, thanks",L_accept_2,"Wtf is Broadcast?",L_broadcast;

    L_accept:

    next;

    mes "Yay, thank you! ^_^";

    mes "Will this Setting work on all your Chars on this account or only this char?";

    menu "Account",L_account,"Only this char",L_char;

    L_account:

    set #pvpbroadcast,2;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    close;

    L_char:

    set pvpbroadcast,2;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    goto access_eng;

    close;

    

    L_accept_2:

    next;

    mes "Yay, thank you! ^_^";

    mes "Will this Setting work on all your Chars on this account or only this char?";

    menu "Account",L_account_2,"Only this char",L_char_2;

    L_close:

    close;

    L_account_2:

    set #pvpbroadcast,1;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    close;

    L_char_2:

    set pvpbroadcast,1;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    goto access_eng;

    close;

    L_broadcast:

    mes "Broadcasts are this yellow messages from  the GMs";

    goto L_fine;

    }

}

prontera.gat,181,213,4    script    [PvP-Ladder]    750,{

    if ($@LadderChatRoom == 1) {

      delwaitingroom;

      waitingroom "PvP Top "+$@LadderLength+"",0;   // Look on the configuration!

    }

    set @name$,"[PvP-Ladder]";

    //Colour of:            Position    Name        Kills        Deaths        Time

    setarray @colour$[0],    "^996600",    "^006699",    "^00AA00",    "^FF0000",    "^EE8800";

if ($@LadderAskLogin == 1){

    if (#pvpbroadcast == 2) goto     access_eng;

    if (pvpbroadcast == 2) goto     access_eng;

    if (#pvpbroadcast == 1) goto     access_eng;

    if (pvpbroadcast == 1) goto     access_eng;

    if (pvpbroadcast == 0)

    mes "Hi, "+strcharinfo(0)+"";

    mes "Me is the PvP Top Management!";

    mes "Let me ask you one Question and i will let you play!";

    menu "Later please",L_close,"Okay, fine",L_fine;

    L_fine:

    next;

    mes "Well, do you want read Broadcast Messages when a Player reach a new position on the PvP Ranglist?";

    menu "Yeah, why not",L_accept,"No, thanks",L_accept_2,"Wtf is Broadcast?",L_broadcast;

    L_accept:

    next;

    mes "Yay, thank you! ^_^";

    mes "Will this Setting work on all your Chars on this account or only this char?";

    menu "Account",L_account,"Only this char",L_char;

    L_account:

    set #pvpbroadcast,2;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    close;

    L_char:

    set pvpbroadcast,2;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    goto access_eng;

    close;

    

    L_accept_2:

    next;

    mes "Yay, thank you! ^_^";

    mes "Will this Setting work on all your Chars on this account or only this char?";

    menu "Account",L_account_2,"Only this char",L_char_2;

    L_close:

    close;

    L_account_2:

    set #pvpbroadcast,1;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    close;

    L_char_2:

    set pvpbroadcast,1;

    next;

    mes "Okay, "+strcharinfo(0)+"";

    mes "Thank you for your time and have fun!";

    goto access_eng;

    close;

    L_broadcast:

    mes "Broadcasts are this yellow messages from  the GMs";

    goto L_fine;

}

    access_eng:

    mes @name$;

    mes "Hello "+strcharinfo(0)+"...";

    mes "If you want to I can show you your PVP stats.";

    next;

    M_selection_eng:

    if ( getgmlevel () < $@LadderGMMenu )

        menu "Show me the PVP Ladder",M_Ladder_eng,"PvP stats since my login",M_seitLogin_eng,"PvP stats of this Char",M_dieserChar_eng,"Stats of the whole account",M_vomAccount_eng,"Cancel",M_abbrechen_eng;

    else

        menu "[GM MENU]",GMMenu,"[uSER MENU]",UserMenu;

    UserMenu:

    menu "Show me the PVP Ladder",M_Ladder_eng,"PvP stats since my login",M_seitLogin_eng,"PvP stats of this Char",M_dieserChar_eng,"Stats of the whole account",M_vomAccount_eng,"Cancel",M_abbrechen_eng;

    GMMenu:

    mes "PVP Ladder Script";

    mes "Version: 1.7.3";

    mes "Status of functions: ";

    mes "Reset Ladder: No Bugs";

    mes "Delete Char on the ladder: BETA [Not working perfect]";

    menu "Reset Ladder",L_reset,"Delete a Char on the Ladder",L_del_char,"Cancel",M_abbrechen_eng;

    M_Ladder_eng:

    mes "Alright...I'll show you the Top "+ $@LadderLength +" with "+$@LadderSteps+" entries per page.";

    mes "It'll be viewed like this:";

    mes @colour$[0]+"Place^000000: "+@colour$[1]+"<name>^000000 :"+@colour$[2]+"<kills>^000000:"+@colour$[3]+"<deaths>^000000 "+@colour$[4]+"<time>";

    next;

    callsub L_Ladder;

    goto M_selection_eng;

    M_seitLogin_eng:

    mes @name$;

    mes "Your stats since your login:";

    mes @PVPKillstoday+"/"+@PVPDeathstoday+"(Kills/Deaths)";

    next;

    goto M_selection_eng;

    M_dieserChar_eng:

    mes @name$;

    mes "Your stats of this Char:";

    mes PVPKills+"/"+PVPDeaths+"(Kills/Deaths)";

    next;

    goto M_selection_eng;

    M_vomAccount_eng:

    mes @name$;

    mes "Your stats of the whole account:";

    mes #PVPKillsAccount+"/"+#PVPDeathsAccount+"(Kills/Deaths)";

    next;

    goto M_selection_eng;

    M_abbrechen_eng:

    mes @name$;

    mes "OK. You can come back to me and see your stats whenever you want.";

    close;

L_del_char:

    if (getgmlevel() < 99) end;

    mes "Do you want to delete a char on the Ladder?";

    if (select ("Yes","No") == 2) goto L_end;

    next;

    mes "Please give me the Ladder Position of the Char";

    input $@CharLadderInput;

    set $@CharLadder, $@CharLadderInput;

    deletearray @PosinLadder, $@CharLadderInput;

    next;

    mes "THIS IS ONLY  BETA";

    mes "When this step has not worked PLEASE wait until the next Update for this script";

    mes "Please don't request support when this step has not worked";

    close;

L_reset:

    if (getgmlevel() < 99) end;

    mes "Do you want to reset the ladder?";

    if (select ("Yes","No") == 2) goto L_end;

    mes "Are you really really sure you want to reset it?";

    menu "Yes, ffs!!",-,"No",L_end;

    deletearray $terces_PVP_kills,128;

    deletearray $terces_PVP_deaths,128;

    deletearray $terces_PVP_names$,128;

    deletearray $terces_PVP_times,128;

    set $terces_PVP_resets,$terces_PVP_resets +1;

    L_end:

    mes "Okay...cya";

    close;

    

    L_Ladder:

    for (set @y,0; @y < $@LadderLength; set @y,@y+$@LadderSteps){

        for (set @x,@y; (@x < (@y+$@LadderSteps)) && (@x < ($@LadderLength)); set @x,@x+1){

            if ($terces_PVP_names$[@x] != ""){

                mes @colour$[0]+(@x+1)+"^000000: "+@colour$[1]+$terces_PVP_names$[@x]+"^000000 "+@colour$[2]+$terces_PVP_kills[@x]+"^000000:"+@colour$[3]+$terces_PVP_deaths[@x]+"^000000 ~ "+@colour$[4]+callfunc ("Gettime",$terces_PVP_times[@x])+"^000000";

            } else {

                mes "^DD0000"+(@x+1)+": ^006699None^000000 ";

            }

        }

        next;

    }

    return;

}

function    script    Gettime    {

if (getarg(0)==0) return;

set @difftimedays,(gettimetick(2) - getarg(0));

set @difftimehours,@difftimedays%86400;

set @difftimeminutes,@difftimehours%3600;

set @difftimeseconds,@difftimeminutes%60;

set @days,@difftimedays/86400;

set @hours,@difftimehours/3600;

set @minutes,@difftimeminutes/60;

set @seconds,@difftimeseconds;

set @result$,"";

if(@days != 0) set @result$,@result$+@days+"d ";

if(@hours != 0) set @result$,@result$+@hours+"h ";

if(@minutes != 0) set @result$,@result$+@minutes+"m ";

if(@seconds != 0) set @result$,@result$+@seconds+"s";

return (@result$);

}

Same topic http://rathena.org/board/topic/81535-pvp-ladder-modifications/?p=193845

 

hmm , i only need SQL files for pvp ladder ( dota ) , is your script no need sql files pvp ladder / dota?

Posted


CREATE TABLE IF NOT EXISTS `pvpladder` (

`char_id` int(11) unsigned NOT NULL default '0',

`kills` int(11) unsigned NOT NULL default '0',

`deaths` int(11) unsigned NOT NULL default '0',

`streaks` int(11) unsigned NOT NULL default '0',

PRIMARY KEY (`char_id`)

) ENGINE=MyISAM;

  • Upvote 1
Posted
CREATE TABLE IF NOT EXISTS `pvpladder` (
  `char_id` int(11) unsigned NOT NULL default '0',
  `kills` int(11) unsigned NOT NULL default '0',
  `deaths` int(11) unsigned NOT NULL default '0',
  `streaks` int(11) unsigned NOT NULL default '0',
  PRIMARY KEY  (`char_id`)
) ENGINE=MyISAM;

 

this what i need...okay i'll try :) thanks

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...