- cleaned up npc event execution code
- cleaned up guild data loading/saving code; to be improved later
- removed dummy 'account name' expulsion list management code
- removed columns 'rsv1' and 'rsv2' from guild member data
- removed columns 'rsv1' 'rsv2' 'rsv3' and 'acc' from guild expulsion data
- added upgrade_svn11895.sql for SQL
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11895 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Modified a bit the changesex code so you get saved and quit before changing your sex rather than afterwards.
- Cleaned up #changesex
- Signum Crucis now works on bosses.
- party_recv_data will not set the sd pointer for not-yet-authed characters.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11867 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Had to add a few 'ugly' flags to status_change since now you can't track SC related information while said SC is not active (happens only for Storm Gust, Joint Beat and Magic Power).
- Since I am unable to fully test, watch out for any bugs~
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11786 54d463be-8e91-2dee-dedb-b68131a5f0ec
- mapserver no longer sends entire user list to charserver every 10 seconds; similar change done to the char-login connection
- user count updates are only sent when the value actually changes instead of servers polling each other every few seconds
- the servers now prevent interserver connection timeout explicitly by sending ping/ack packet pairs instead of relying on the usercount polling to do so; keepalive is sent every 'stall_time'-2 seconds
- removed the @refreshonline command as refresh happens automatically every 5 seconds
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11703 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Fixed gm_account_db not being deallocated in login-converter.c.
* Refactoring names and documentation in db.h/db.c:
- changed 'struct dbt' to 'struct DBMap' and 'DB' to 'DBMap*'
- changed 'struct db' to 'struct DBMap_impl' and 'DB_impl' to 'DBMap_impl*'
- changed COUNT to DB_COUNTSTAT and made it's existence not depend on DB_ENABLE_STATS
- removed some @see links and corrected small typos in the documentation
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11698 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Fixed subnet check message displaying incorrect ip addresses
* client_addr will now be properly set to 0 for server connections
* Removed socket code that attempts to cope with code bugs at runtime
* Removed outdated copyright and version number from startup logo
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11503 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Added a charid2sd database for fast charid searches.
* Reworked the nick cache to only contain offline characters.
Note: The tick cache was causing _some_ of the desync problems in eA. Gameplay should be much smother, but desync problems still exist.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11290 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Changed clif_sitting() to use 'bl' instead of 'sd' (for non-player objects)
* Removed way messed-up script function 'unitdeadsit'
* Tagged 'FIXME' lines written by myself
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11040 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Updated the @homstats command to show evolution bonuses
- Cleaned up the homunculus db structure.
- Implemented the evolution stat growth bonuses.
- Some small cleanups in the mercenary.c file
- Corrected initial intimacy of a newly created homunculus (should be 21/1000)
- Incremented the size of mob.c:summon.class_[] since mob_pouch has almost 350 entries.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10965 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added mapindex_getmapname(_ext) to help with ".gat" adding/removing
- Moved related processing to the interface (prevents duplicity)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10963 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Reworked the player fame update:
- would crash if an invalid pos was received
- the wrong player could be updated on certain conditions
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10640 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed Martyr's Reckoning never triggering for gms with all skills
- Added MO_TRIPLEATTACK and RG_SNATCHER to @skillall's skill filter
- Made gm_skill_unconditional bypass skill blocking (guild timer, etc)
- Reverted the weird delay_dependon_agi thing (r8923, r9055, r9059)
- Changed a few memsets to strncpy (reading past buffer is a bad idea)
- Sped up some memset operations (multiples of 4 are faster)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10613 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Replaced toupper/tolower in ladmin by TOUPPER/TOLOWER defines.
Shortlist:
It's a list of sockets that have data to send and/or are ready for eof processing.
It aims to reduce the amount of time spent on do_sendrecv, where it was spending ~13.5% of execution time on a server with 1k users at WoE.
thanks to Buuyo-tama for the profile info and code
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10506 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed bug which totally broke item group bonuses.
- Added warnings when setting a pvp/gvg flag removes the other flags on the same map (gvg and pvp can't coexist on the same map)
- Optimized the unequip loop when changing sex.
- Removed the check that prevented you from casting soul-collect when you already have 5 spirits.
- Corrected Magic Rod so it doesn't displays any skill-use animation until it triggers.
- Debuff on logout&2 is again set to default, instead of removing food bonuses now it removes Maximize Power, Maximum Overthrust and Steel Body.
- Corrected Steel Body's icon (it actually belongs to AutoBerserk)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10317 54d463be-8e91-2dee-dedb-b68131a5f0ec
Rewrote fame ranking lists- changed MAP_NAME_LENGTH to 12, now there's MAP_NAME_LENGTH_EXT at 16 for
uses where there is / may be the .gat extension, code adjusted accordingly
- moved map_normalize_name to mapindex_normalize_name so that everything
handling map names uses the same extension-removing function
- greatly enhanced the map cache generator, complete documentation on the
tool and the map cache format can be found in doc/
- the map cache format changed a bit as a consequence, but of course a new
valid one is included (contains latest Nameless Island maps)
- fixed a duplicate entry in map index
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10167 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Major edit to the way the servers handle ip addresses, making them obey the "host byte order inside, network byte order outside" rule
- hopefully covered all entry- and exit-points for IP address data
- discovered several places where Gravity's client breaks the convention, will need to come up with a suitable countermeasure for that
- other than that, the code should be portable, except for printing and ipban mask testing (those still assume a specific byte order)
- tested both txt and sql in all usual situations; tested single- and multi-server setups, all seems to work (but watch out for hidden bugs!)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10162 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed the badly worded messages during mapserver startup
- Cleaned up socket config reading
- Split resolve_hostbyname() into 2 separate functions for clarity
- Moved the probably obsolete LOWER/UPPER macros to db.c (TODO: remove)
- Moved the badly placed compare_item() function to storage.c (see r779)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10119 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Corrected @unjail having the GM level check backwards.
- chrif_authok will now reject to store the newly received status data when the player it was received from is still online, should prevent losing data in certain situations.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10060 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Made pc_setpos fail if you are jailed, effectively blocking you from being moved out of the jail map for the duration of jail.
- Modified @adjcmdlvl so you can't set a command to require higher level than yourself, and so you can't edit the level of a command which is higher than your own.
- Corrected attack_attr_none setting disabling elemental resist cards.
- Added missing cap check of 100% to drop rate configs for heal/use/adddrop (cards)/treasures.
- Corrected Autoblitz yelling the skill name if the attack splashed.
- Corrected Dispell removing Jailed status.
- Corrected being able to revive with 0 hp.
- Modified the "Restart" code so that it makes you stand on spot when pc_setpos fails to move you back to your originating location.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10028 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed some wrong sql login logic
- Fixed some compiler warnings, cleaned up mapserver sql-related vars
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10027 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Propagating const char* from the script engine.
- ".gat" is appended to the map name before sending the changemapserver packet to the client.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9979 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Merged packet 2b22 (from my server) to handle quick fame updates whenever someone's fame in the ranking changes, but no position swaps take place (prevents having to resend the whole fame list in such events, you lazy Draco <.<)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9936 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed Self Destruction causing double-free'd errors and triggering twice when a self-destruct cast makes other objects trigger self destruct as well
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9924 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added a static +100 Hp to ninjas and gunslingers since it's required for the best approximated hp growth algorythm.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9404 54d463be-8e91-2dee-dedb-b68131a5f0ec
- If somehow a player logs out and it's saved with 0 hp, on login his state will be set to dead as well so he can respawn (otherwise that leads to a stuck char)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9398 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added my_global.h include to login converter
- Removed sd->char_id since we can use sd->status.char_id instead.
- Small speedup in STRECOVERY, and made it not unlock a mob's target.
- Fixed GS_GROUNDDRIFT consuming ammo when it's time expires (so it was consuming 2 grenades instead of one). Also added a "explosion effect" when their time runs out.
- gvg_dungeon mapflag won't set pvp related mapflags anymore, pc_dead will force pvp ranking gain/loss on gvg_dungeon maps now.
- Now when coming out of hiding land-effects will trigger on the character.
- Made the pc_setpos message when being placed on an unwalkable tile tell you which player triggered it.
- Fixed land effects not taking effect inmediately on map-load when the invincible timer is disabled.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9374 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Some speed up code when loading status changes (use a pointer instead of memcpy'ing all the time)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9359 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added define TURBO to the Makefile. It enables MouseJstr's socket access optimization which should speed up the code when accessing the write/read buffers repeatedly within a function.
- Fixed the functions where the RFIFOHEAD/WFIFOHEAD functions were used incorrectly (prevents TURBO enabled compilations from finishing)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9297 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Simplified skillnotok_hom by using an invocation to skillnotok
- Hopefully fixed BD_ADAPTATION
- Homun won't lose any intimacy on death now.
- Homun will be saved together with the master now (as long as the homun is active)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8564 54d463be-8e91-2dee-dedb-b68131a5f0ec