Jump to content

Petey Pablo

Members
  • Posts

    569
  • Joined

  • Last visited

Posts posted by Petey Pablo

  1. Maybe your flux is using `level` while your login table has `group_id` (vice versa) this will cause you some errors

    i got a fix for your problem change all item_db to item_db_re if you are using rathena with pre-renewal

    each item_db on modules you have to rename it into item_db_re and you are good proven tested :)

    Im using eAthena. How to do that? Thank you!

  2. Its already normal. But nothing happens. Same problem!

    
    'character' => array(
    'index'    => AccountLevel::LOWGM,
    'view'     => AccountLevel::NORMAL,
    'online'   => AccountLevel::ANYONE,
    'prefs'    => AccountLevel::NORMAL,
    'changeslot' => AccountLevel::NORMAL,
    'resetlook'  => AccountLevel::NORMAL,
    'resetpos'   => AccountLevel::NORMAL,
    'mapstats'   => AccountLevel::ANYONE,
    'divorce'    => AccountLevel::NORMAL
    ),
    

  3. I have enable core dump on my machine. Im using eAthena. See the result below

    After gdb map-server core.30056

    
    Loaded symbols for /lib/libnss_files.so.2
    Core was generated by `./map-server_sql'.
    Program terminated with signal 11, Segmentation fault.
    #0  0x0815828a in unit_walktoxy_timer (tid=3600, tick=3997628630, id=2000484,
    data=189) at unit.c:194
    194											 if( g->member[i].online && g->member[i].sd && sd->bl.m == g->member[i].sd->bl.m && check_distance_bl(&sd->bl, &g->member[i].sd->bl, 2) )
    
    

    Then the next command is bt full. See the result

    
    (gdb) bt full
    #0  0x0815828a in unit_walktoxy_timer (tid=3600, tick=3997628630, id=2000484,
    data=189) at unit.c:194
    	skill = <value optimized out>
    	strvit = 65536
    	agidex = 0
    	i = 0
    	x = <value optimized out>
    	y = <value optimized out>
    	dx = 1
    	dy = <value optimized out>
    	bl = 0xd3ccf00
    	sd = 0xd3ccf00
    	md = 0x0
    	ud = 0xd3ccf18
    #1  0x081675d9 in do_timer (tick=3997628644) at timer.c:371
    	tid = 3600
    	diff = -14
    	__FUNCTION__ = "do_timer"
    #2  0x08164a1e in main (argc=1, argv=0xbfd731d4) at core.c:261
    	next = <value optimized out>
    
    

  4. Script:

    
    //===== eAthena Script =======================================
    //= eAthena PVP-Ladder
    //===== By: ==================================================
    //= Terces
    //===== Current Version: =====================================
    //= 1.7.2
    //===== Compatible With: =====================================
    //= Any Athena Version that has "for" implemented
    //===== Credits: =============================================
    //= The whole eAthena Board and the eAthena Chat
    //===== Notes: ===============================================
    //= Note 1:
    //= Experience gain works like this formula:
    //= ($@LadderLength-(<new position>-1))*$@LadderExp
    //= so if someone gets the first place he'll get
    //= $@LadderLength*$@LadderExp experience points.
    //============================================================
    //= Fixxed by Dante
    //= V1.7.2
    //= Hosted by Dant3 aka Dante
    // HAFE FUN! READ THE TOPIC! IT DONT WORKS MAYBE ON OLDER REV
    //
    //
    //  LAST UPDATE: 12th,February.2008
    //
    // Main Script - Terces (Main Thanks to Terces )
    // V1.7.0 - Dant3
    // v1.7.1 - AnnieRuRu
    // v1.7.2 - Dant3
    
    // THIS SCRIPT WORKS ONLY ON THE NEW EATHENA REVISIONS! ENJOY!
    
    - script PVPLADDEROPTIONS -1,{
    end;
    OnInit:
    // 0 = Disabled (NO)
    // 1 = Enable   (YES)
    set $@languageselect, 0; //Enable/Disable language selection [English/German] (Default: 1)
    set $@LadderAnnounce, 1; //Enable/Disable the announcement when a char reaches a new position in the ladder (Default: 1)
    
    set $@LadderLength, 10; //Set the length of the Ladder [!Not higher than 128!] (Default: 30)
    set $@LadderSteps, 10; //Set the views per page (Default: 10)
    
    set $@LadderExpGain, 0; //Enable/Disable experience gain when reaching a new position in the ladder (*Note1)
    set $@LadderExp, 0; //Set Experience gain value (*Note1)
    
    // Update v1.7.0
    set $@LadderZenyGain, 0; //Enable/Disable zeny gain when reaching a new position in the ladder
    set $@LadderZeny, 0; //Set Zeny gain value
    set $@LadderChatRoom, 0; //Enable/Disable an Chat Room over the NPC with the message "PvP Ladder" (Users can not enter the Chat room)
    
    // Update v1.7.1 (Thanks to AnnieRuRu)
    // Added GM PvP Ladder Reset Function
    
    // Update v1.7.2
    // Thanks to for the Feedback
    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
    }
    
    - script PVPLADDER -1,{
    OnPCKillEvent:
    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;
    }
    }
    
    
    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,146,169,6 script PvP Ladder 411,{
    if ($@LadderChatRoom == 1) {
    //OnInit:
    //waitingroom "Pvp Ranking",0;
    //end;;   // 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 () < 99 )
    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 "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,"Reset Ladder",L_reset,"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_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$);
    }
    

    Problem:

    [Error]: script:getarg: no callfunc or callsub!
    [Debug]: Source (NPC): PVPLADDER (invisible/not on a map)
    

×
×
  • Create New...