- removed guardian hp from the castle data structure, database, savefiles and various script functions (use upgrade_svn11914.sql)
- removed guardian hp calculation and manipulation from the castle manager npc, now the hp values are updated by the server itself (glitch: when castle defense changes, all guardians are healed to full)
- tweaked script function 'guardianinfo' to provide some data needed by the manager npc (currently available are hp, maxhp and visibility); also, it doesn't need a player attached to execute anymore
The whole thing is experimental, use at your own risk (seems to work though...)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11915 54d463be-8e91-2dee-dedb-b68131a5f0ec
- some strings that can be freed outside the script engine were being pushed into the stack as constant strings
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11901 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Made script_rid2sd report the script source directly and changed related return 1's to return 0's to avoid double script source reports.
* Added missing return 0's after script_rid2sd is used and an extra error message in buildin_set/buildin_setd.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11860 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Removed several script config options which break NPC compatibility when you mess with them (event_script_type, event_requires_trigger, die_event_name, kill_pc_event_name, kill_mob_event_name, logout_event_name, login_event_name, loadmap_event_name, baselvup_event_name, joblvup_event_name)
- LoadMap events no longer set the variable "@maploaded$" to the name of the new map.
- Optimized/simplified the code now that the previous config options were removed.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11859 54d463be-8e91-2dee-dedb-b68131a5f0ec
- exported several core structures to login.h
- split off ladmin communication code from the TXT login server
- removed all occurences of login_log(); a unified function should be added when SQL's loginlog_db logging code gets synced with TXT
- removed conf setting login_log_filename
- fixed ladmin getting timeouts since the ping system was changed
- removed login/char server_fd[] arrays, added server[].fd instead
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11826 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added a check in script command sc_end to properly end infinte endure
- ASC_BREAKER no longer triggers status effect cards.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11817 54d463be-8e91-2dee-dedb-b68131a5f0ec
- automatically fixes bugreport:404, which would otherwise require manipulating the npcname_db (the original author didn't, hence the bug)
- now a supporting variable 'count' is used for tracking the length instead of an extra dummy entry at the end of the shop list
- partially removed the MAX_SHOPITEM restriction (if this was written properly, the system could support an unlimited amount of entries)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11753 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
Removed the big list of BUILDIN_FUNC() declarations in script.c, as they are not needed anymore and no code utilizes them => file size-= 11 kB.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11637 54d463be-8e91-2dee-dedb-b68131a5f0ec
* separated the execution part of command code into interface part and internal part to better see which checks are done and when (fixes problem where 'nocommand' mapflag blocked server npcs)
* moved the internal commands list (array) to the end of the file, this let me discard that long block of ACMD_FUNC() declarations
* removed enum AtCommandType from command headers and commands array; its purpose was perhaps to identify aliased commands, but apparently it was never finished because the rest of the code doesn't use it (also doing aliases like this is not a very good idea)
* internally, commands are now referenced to using their function name
* removed the @/# symbols from the command lists; all lookup functions will now properly deal with strings with- and without a command symbol (commands interface still requires the symbol tho', so TODO for later)
* removed several unneeded commands (*id2 code, dmalloc debug commands)
* reverted atcommand config from alphabetically-sorted to how it was before (with additional fixes; see /conf changelog)
* added missing code for #dropall / #storeall
* added a warning when trying to set gm level of an undefined command
The structure of the commands table has changed, please adjust docs/guides to match the new format (sorry for the inconvenience).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11607 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Set 'Create Converter's produce success rate to 100% (bugreport:302)
* Added check that verifies weapon/ammo/state requirements also when casting finishes (might have unwanted side-effects tho'!) (bugreport:228)
* Fixed Firewall knocking back undead/fire element mobs (bug in r11578)
* Added dummy 'openmail' to txt server to fix a script error message
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11585 54d463be-8e91-2dee-dedb-b68131a5f0ec
- @/#jobchange no longer strip your equipment since pc_jobchange removes any unequippables already.
- removed the wasteful define MAX_PC_CLASS and replaced it by the CLASS_COUNT define (which is automatically updated using the previous JOB_MAX* defines) + pc_class2idx function (which converts high class IDs into values that fit in CLASS_COUNT)
- Made status_charge a function rather than a define to get rid of those warnings that have been there since forever.
- Merged the CELL_NOVENDING code (see topic #129209)
- Small check that disables the pet catching process if you try to use another item.
- Added a check to fix a warning and prevent a crash in the npc duplicate check (even though I have no idea what this check is supposed to do, therefore I can't fix it properly other than to avoid the crash)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11572 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixes npc.c discarding the '}' at the end of file, when there is no newline. (uncovered as a side-effect of r11487)
* Empty script functions always have code now (won't report as missing when you try to call them).
* Changed userfunc_db to not limit the name to 50 characters.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11502 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Fixed a typo in skip_space that stopped skipping characters when it encountered a '*' or '/' in a block comment.
ex: /* this will give a parse error after this character->* */
/* same thing here->/ */
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11487 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Added an option for parse_script to ignore the checks for the set of brackets around the script.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11398 54d463be-8e91-2dee-dedb-b68131a5f0ec
- CHATBOX_SIZE: 70 -> 70+1
- removed some too aggressive checks in clif_parse_globalmessage()
- removed CHAT_SIZE define as it actually doesn't apply anywhere
- added CHAT_SIZE_MAX to serve as a custom limit to input string lengths
- added length/contents checks to /b and /lb (against fake names)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11386 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Fixed some \r uses, now looks better; /thx to Ai4rei (topic:165952)
* Removed that ridiculous spinner that displays during map/npc loading, and added a more informative progress indicator (idea from jA/eapp)
* Checked/fixed/removed some old script and npc commands
* cmdothernpc - a specialized 'donpcevent' with the event specified as two arguments
* enablearena/disablearena - completely equivalent to enablewaitingroomevent & co.
* inittimer/stoptimer - removed since its logic was incompatible with the code it depended on
* Removed loads of code that supported these functions. Result: -100b per npc => -1,5MB of wasted memory
* Fixed related npcs that erroneously used 'stoptimer'
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11374 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Fixed buildin_gethominfo not being included in the script engine. (bugreport:124)
* homunculus_evolution -> homevolution in script_commands.txt.
* Deleted item DEFAULT from item_db.txt and regenerated item_db.sql. (bugreport:103)
* Skip empty lines and give more feedback (for invalid lines) when reading item_db.txt/item_db2.txt.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11311 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Fixed global chat logging always crashing on a null pointer
* Applied changes to clif_parse_globalmessage() from my WiP code
- clearer processing of the individual packet components
- proper code ordering, some more integrity checks
- fixes to some poorly chosen ShowWarning() format strings
- global chat logging no longer logs the entire string (w/ player name)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11271 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Abstraction for the sql code (sql.c/h).
- New configure script and makefiles.
- Restored txt zeny logging code. (r10814)
- Rewrote mapserver's sql code - itemdb, mobdb, mapreg, logs. (r10814)
- Fixed a precedence issue (&& and ) in char_sql/char.c. (r10833)
- Improved db reading code a bit for consistency. (r11077)
- Added separate atcommand for mail deletion. (r11077)
- Corrected a few messages that said "new" instead of "unread". (r11077)
- Broadcast (*) messages now use "*" as the target's name (not ""). (r11077)
- Moved StringBuf code from utils.c/h to strlib.c/h. (r11084 r11117)
- Some misc login server cleanups (reformatting etc). (r11136)
- Corrected/modified some header entries. (r11141 r11147 11148)
- Adjusted VS project files. (r11147)
- Adjusted the way the sql charserver does item saving. (r11192)
- Corrected usage of reserved keyword 'friend' in mmo.h. (r11192)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11245 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Corrected and simplified the skill_magic_reflect function. Fixed damage reflection being based on the caster rather than the target.
- Potions are now usable inside Gospel by the casting Paladin (as per Aegis tests done by AuronX)
- The unequip script command now takes a position from 1 to 10 rather than 0 to 9 (to make it consistant with all the other equip position related script commands)
- Added the EQI_* constants to db/const.txt in a format usable by the equip-position related script commands.
- Updated some items to use the new EQI constants.
- Also updated doc/script_commands.txt to refer to the EQI list.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11230 54d463be-8e91-2dee-dedb-b68131a5f0ec