Rewrote map_foreachpc() so that its callback function signature now uses a more natural 'sd' instead of a DBKey/void* pair.
Rewrote atcommand_users() to use a single function, instead of depending on two helper functions and global objects.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12683 54d463be-8e91-2dee-dedb-b68131a5f0ec
Fixed integer arithmetic overflows that were occuring in several supernovice checks (bugreport:1135).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12679 54d463be-8e91-2dee-dedb-b68131a5f0ec
* the player data inventory-itemdb index is now refreshed using pc_setinventorydata()
* mobdb will no longer initialize with nonexistent items, and mobs will no longer drop them in case of a reload
* the clif_buylist() function once again hides invalid npc shop items
* it is no longer possible to purchase nonexistent items from a npc shop
* npc shop loading will not abort if there is a nonexistent item entry, it will just skip over it
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12665 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Delete any item from inventory/cart/open storages that went missing during the reload.
- Delete item from any shop that has this item.
- Refresh item screen for anyone who has a shop open.
- Delete mob db drop table references.
- Delete item from storage during load if it isn't in the item db.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12661 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Merged the new Auth process to avoid double logins.
- Merged official adoption process.
- Removed @gm command.
- Cleaning of MAX_ACCOUNT_ID and MAX_CHAR_ID
- Update of the online user count (map_getusers)
NOTE: i will do a second check to see if i forget something else.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12621 54d463be-8e91-2dee-dedb-b68131a5f0ec
Merged some recent changes from SQL to TXT, as someone didn't bother to do it.
Ifdefed the quest data request code as SQL-only (this was causing server disconnects whenver someone logged in).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12606 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Renamed BA_FROSTJOKE to BA_FROSTJOKER (aegis server-side name)
* Implemented a generic framework for parsing delimited db files (allows specifying min/max column ranges and max number of rows to read)
* Corrected a typo in quest_update_objective()
* Cleaned up pc.c a bit
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12599 54d463be-8e91-2dee-dedb-b68131a5f0ec
Renamed 'ban_until_time' to 'unban_time'.
this also applies to login table columns (see upgrade_svn12464.sql).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12464 54d463be-8e91-2dee-dedb-b68131a5f0ec
- SC_ARMOR_RESIST and SC_BENEDICTIO ends if you change your armor. Tested on iRO.
- If you call SC_ELEMENTALCHANGE with val3 = 1 it will use the level in val 1, and not a random value.
* Barricades:
- Fixed a bug when @reloadscript. Barricades should be destroyed too.
- Unbreakable barricades are only wall type (not shootable) According to Doddler info.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12407 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed a bug on trade, if you received a trade without accept it do logout... the other player cannot trade anymore 'til restart.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12396 54d463be-8e91-2dee-dedb-b68131a5f0ec
( Parents need to create a party, invite a novice/first class, both equip the wedding rings and someone just right click the future baby ).
- Fixed a bug sometimes client don't show job's bonus stats.
- Removed the problematic adoption script.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12389 54d463be-8e91-2dee-dedb-b68131a5f0ec
* removed a strange (and undocumented) event name check for "GM_MONSTER" in the npc event execution code
* added effects from recent sakexes to effects list
* removed ladmin from vs8 sql builds
* added int_auction.c/.h to vs6 and vs7 project files
* some small cleanups
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12362 54d463be-8e91-2dee-dedb-b68131a5f0ec
* On LoadEndAck added a flag to know if the client is allready changing map or just doing teleport/fly wing.
- This will reduce a little bit some info send to the client that only need to be updated on map change.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12349 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Corrected Earthquake so it behaves as explained in the development topics.
- Corrected a missing opt_flag = 0 when using SC_INCATKRATE on mobs.
- Added a missing line to actually unequip unallowed compounded cards when changing maps.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12299 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Updated the firepillar code so it behaves like the other traps.
- Changed the default format for @me and @main to avoid crashes on the newer clients.
- Fixed the char-sql server so it returns a valid 'not found' packet when attempting to load a non-existing homunculus.
- Fixed jump to use 0,0 for random coordinates rather than -1,-1
- Added missing \n to error reporting in getmonsterinfo
- Additional status changes now only get triggered if the attack did damage, not if they get absorbed.
- Fixed a logical comparison in unit_free to properly remove pets/homuncs when their intimacy is reduced to 0.
- Properly set the opt3 value for Moonlight, Changeundead and Soul Link
- Fixed the "no equip" flag of cards not being properly applied when attemting to equip items.
- Added a check to avoid invoking pet menu entries when the pet is incuvated.
- Fixed the session_data de-association in chrif_auth_delete
- Cleaned chrif_auth_ok so that the latest received char info is kept when previous char login data was already in there.
- Corrected docs mentioning non-existing flag 'mf_nopvp'
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12293 54d463be-8e91-2dee-dedb-b68131a5f0ec
Added data length check to chrif_authok(), to detect a mismatch between charserver's and mapserver's mmo_charstatus structure size.
Corrected some typos in the cash shop code.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12277 54d463be-8e91-2dee-dedb-b68131a5f0ec
- An charcommand is still required to add/remove points.
- Scripts command only requires to work on #CASHPOINTS and #KAFRAPOINTS.
- I called it "Kafra Points" just because it's how comes in the translation. I allready know this changes between Oficial servers.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12264 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Icewall now uses basic cell type 5 (nonwalkable, shootable)
- as a consequence, you can now warp to a nonwalkable cell - but only via gm command or scripted warp bug (hopefully :)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12247 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Cleaned up player respawning code (bugreport:1022)
* Increased the max amount of different autocast skills from 5 to 10
* Added a missing function declaration, for real this time (followup to r12229)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12232 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Implemented the correct walk-speed bonus from the Bard/Dancer spirit.
- Added a few error messages in case something goes wrong in the new auth db system.
- Fixed logarithmic drops turning 0% drop rates into 100%.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12225 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed acc_reg2 parsing screwing up the char_id and subtracting 2 from it rather than passing it as it is.
- Extended the auth_node/auth_db system in chrif.c to handle log in/out and mapserver-change procedures. This way players are not in the main dbs when they are not "active", which blocks potential invalid accesses to them.
- Replaced states auth, waiting_disconnect and finalsave with active.
- Cleaned some the party/guild login and creation procedures, removed the party_sent/guild_sent states.
- Removed a redundant guild_check_member call which is beyond not-needed and into the realm of wasting resources.
- clif_parse will no longer process packets from !sd->state.active players, this also makes checking for finalsave uneccessary (since players re already removed from the maps and dbs by this point, so you can't access them in any other way)
- Separated the roles of unit_free and map_quit, the former will handle cleaning structures from the player so it can be free'd safely, while the latter performs additional routines which are unique to characters logging out normally (map-server changes will invoke unit_free and bypass map_quit).
- Removed pc_isplaying, quit_db, map_knowsaccount, MAPIT_PCISPLAYING among other functions/defines which are no longer needed due to the new login scheme.
- Cleand up a bit some code in the clif_send(_sub) functions.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12223 54d463be-8e91-2dee-dedb-b68131a5f0ec
- corrected login_fd/char_fd being uninitialized in the char servers.
- Changed a bit around how status_base_atk works to avoid overflows.
- Added a check to prevent using consume-delay items when you cannot use skills, since that opens an exploit if the item also has non-skill-casting components to its script.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12214 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Changed suiton's element to water (apparently fixes not being able to use water-based skills on it)
- Fixed Landmine doing no damage (decreased trigger range to 0 to match its splash range)
- Fixed the disguise commands using the wrong variable when attempting to disguise as an npc.
- Fixed a compilation warning on CELL_CHKNODAMAGE (which is a totally bad-ripoff of basilica cells anyway)
- Corrected and optimized npc_remove_map's npc array cleanup (@reloadscripts no longer report 'too many npcs per map and related dangling pointer crashes are fixed)
- Removed suspicious, yet totally unused npc_data variable 'n'
- HP loss item scripts can no longer kill you.
- Corrected the item-drop-rate check to avoid duplicate entries in @whodrops after a @reloadmobdb
- Cleaned up and optimized map_addnpc (there are never any gaps in the npc array so npc_num always points to the last valid entry)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12180 54d463be-8e91-2dee-dedb-b68131a5f0ec