Jump to content

Brian

Members
  • Posts

    2223
  • Joined

  • Last visited

  • Days Won

    24

Everything posted by Brian

  1. rand(1) always returns 0. It should be rand(2) if you want it to return 0 or 1.
  2. You would have to edit or remove lines 6796-6813. Option 1: remove those lines and use a custom OnPCDieEvent script to warp them out after 2 deaths Option 2: edit line 6798 and add a mapname check to see if they are on guild_vs3.
  3. In your script (Tombstone.txt), go to line 39 which looks like this: end;Add the 2 lines I posted (starting at line 39), so now it looks like this:// trigger MVP Ranking script doevent "Auto Ranking System::OnNPCKillEvent"; end;
  4. Yes it should work then. As long as the map has the pvp mapflag, does NOT have the pvp_nocalcrank mapflag, and pk_mode is off. This is the source code trunk/src/map/pc.c (line 6796) // pvp // disable certain pvp functions on pk_mode [Valaris] if( map[sd->bl.m].flag.pvp && !battle_config.pk_mode && !map[sd->bl.m].flag.pvp_nocalcrank ) { sd->pvp_point -= 5; sd->pvp_lost++; if( src && src->type == BL_PC ) { struct map_session_data *ssd = (struct map_session_data *)src; ssd->pvp_point++; ssd->pvp_won++; } if( sd->pvp_point < 0 ) { add_timer(tick+1000, pc_respawn_timer,sd->bl.id,0); return 1|8; } }
  5. You could add a doevent to Tombstone.txt that triggers your MVP script: // trigger MVP Ranking script doevent "Auto Ranking System::OnNPCKillEvent";
  6. From search: http://www.google.com/search?q=eathena+backpack (v3)Backpack Function by goddameit2
  7. When you setup your MVP Tomb script, you changed the MVPs' event labels to something like "tombstone_dup::Onmvpdead". If a monster has a defined event label, then it will NOT trigger global OnNPCKillEvent label(s). That's why your MVP Ranking script is not counting the kills.
  8. As of r16197, 64-bit builds are enabled by default (on 64-bit platforms). So you just type: ./configure I estimate 1,000+
  9. Both. source edits and client edits.
  10. I've experienced this problem when the map-server disconnects from the login server. Then when the map-server reconnects, all @autotrade venders get set to offline in SQL, but in-game they are still included in the online count. I never found a solution; just make sure your login/char/map servers have a reliable network connection between them?
  11. oops! I forgot to attachrid back to the invoking character. To fix, add these 2 lines so the fixed script looks like this: http://rathena.kpaste.net/60f0ec?raw
  12. No. Probably not, since adaboost already ran 'dpkg' and showed he has all the MySQL stuff installed.Also, 'apt-get update' only fetches the update list. You have to do upgrade to install them: apt-get update apt-get upgrade@adaboost: I'm not sure why it's not working for you.When I setup rAthena on Ubuntu/Debian (with an external MySQL Server), these are the only packages I have to install: apt-get install cmake gcc libmysqlclient-dev libpcre3-dev make subversion
  13. delchar and charat can also be used to "scroll" through the word! scrolling_waitingroom.txt
  14. http://rathena.kpaste.net/5b80?raw prontera,155,188,0 script Reset Position 910,{ mes "[Reset Position]"; mes "I can reset the position of your char on ^0000FFanother^000000 account."; next; mes "(For your char that is stuck)"; mes "Enter your username:"; input .@userid$; mes "Enter your password:"; input .@user_pass$; next; query_sql "SELECT account_id FROM login WHERE userid='"+.@userid$+"' AND user_pass='"+(.@use_MD5_passwords ? md5(.@user_pass$):.@user_pass$)+"'", .@account_id; if (!.@account_id) { set @bruteforce, @bruteforce +1; if (@bruteforce >= 5) { mes "^FF0000 Unable to process your request, please contact a GM."; } else { mes "^FF0000 Invalid username/password, or account does not exist."; } close; } else if (.@account_id == playerattached()) { mes "^FF0000 You are already logged into this account!"; close; } // get list of chars on that account query_sql "SELECT char_id,`name` FROM `char` WHERE account_id="+.@account_id, .@char_id, .@name$; if (getarraysize(.@char_id) == 0) { mes "^FF0000 There are no chars on that account."; close; } for (set .@i,0; .@i<getarraysize(.@char_id); set .@i,.@i+1) set .@menu$, .@menu$ + .@name$[.@i]+":"; mes "Which char do you want to reset position?"; set .@num, select(.@menu$) -1; if (isloggedin(.@account_id)) { mes "^FF0000 You must log off all chars on that account first."; close; } // reset position query_sql "UPDATE `char` SET last_map=save_map, last_x=save_x, last_y=save_y WHERE char_id="+.@char_id[.@num]; mes "^0000FF"+.@name$[.@num]+"'s^000000 position has been reset. ^_^"; close; OnInit: set .@use_MD5_passwords, 0; // set to 1 for "yes" end; }
  15. Brian

    TOMB

    Right, all MVPs spawned with the boss_monster permanent monster spawn command (npc.c) ... but script-controlled MVP spawns (like Bios, Lord of Death) don't have the MVP Tombs because there is no equivalent script command (script.c).
  16. Set the item_id(s) in the array on line 3. http://rathena.kpaste.net/eb47?raw - script kick_if_have_item -1,{ OnInit: setarray .item_id[0], 55555; // check non-character places for (set .@i,0; .@i<getarraysize(.item_id); set .@i,.@i+1) { set .@count, query_sql("SELECT nameid FROM `auction` WHERE nameid="+.item_id[.@i], .@nameid); if (.@count > 0) debugmes "item_id "+.item_id[.@i]+" found in `auction` table. Count: " + .@count; set .@count, query_sql("SELECT nameid FROM `guild_storage` WHERE nameid="+.item_id[.@i], .@nameid); if (.@count > 0) debugmes "item_id "+.item_id[.@i]+" found in `guild_storage` table. Count: " + .@count; set .@count, query_sql("SELECT nameid FROM `mail` WHERE nameid="+.item_id[.@i], .@nameid); if (.@count > 0) debugmes "item_id "+.item_id[.@i]+" found in `mail` table. Count: " + .@count; } end; OnPCLoginEvent: for (set .@i,0; .@i<getarraysize(.item_id); set .@i,.@i+1) { if (countitem(.item_id[.@i]) > 0) { set .@where$, "inventory"; goto S_KickChar; } else if (query_sql("SELECT nameid FROM `cart_inventory` WHERE nameid="+.item_id[.@i], .@nameid) > 0) { set .@where$, "cart_inventory"; goto S_KickChar; } else if (query_sql("SELECT nameid FROM `storage` WHERE nameid="+.item_id[.@i], .@nameid) > 0) { set .@where$, "storage"; goto S_KickChar; } } end; S_KickChar: debugmes "item_id "+.item_id[.@i]+" found in "+strcharinfo(0)+"'s "+.@where$+". Kicking..."; sleep2 100; atcommand "@kick "+strcharinfo(0); end; }
  17. Players might not be able to whisper the Reset NPC if their client crashed (ex: from loading on a map they are missing). Instead, you could allow players to log on their other account, talk to the NPC and input the user/pass of their stuck account, select the stuck character, then reset that char's position.
  18. Brian

    TOMB

    I think he meant the MVP, not the mini boss. Scripted MVP spawns (like Bios, Lord of Death) don't have the MVP Tomb because there is no script command equivalent to the 'boss_monster' permanent monster spawn command. I'm not sure if a 'boss_monster' script command would even work because it would not know the respawn delay, unless we added that as an additional parameter.
  19. That's a feature of Harmony. The client sends the computer's MAC address to the server. I'm not sure if there are any other modifications that support this.
  20. No it will not work. This script requires Harmony or some other modification that allows the client to send its MAC address to the server.
  21. Hotspotshield would give them a different IP address, but their computer's network card would still have the same MAC address. No, the new account would not be able to get a guild pack.
  22. When working with SQL, it's a good practice to specify all the column names you are selecting. Then you can be 100% sure your query will return the columns you expect, in the order you expect. I avoid using SELECT * in scripts.
×
×
  • Create New...