- modulus division detects division by 0.
dividing by zero stops the script and gives an error
- underflow/overflow messages differentiated (warnings)
- when a script function doesn't return a value, a C_NOP value is pushed
instead (avoids stack corruption)
- op_add merged with op_2+op_2num/op2_str
- better type checking in the operators, int/string is never assumed.
The script ends when an invalid type is found.
- other minor code cleanups
Changes made in consequence of:
Ref: http://www.eathena.ws/board/index.php?s=&showtopic=149237&view=findpost&p=823195
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10379 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Corrected the pet_db information for Xmas Goblin and Rice Cake.
- Replaced all struct map_session_data to TBL_PC in script.c
- Pressure no longer vaporizes plants.
- Corrected pc_setregstr to handle a null str argument.
- Corrected @reloadbattleconf causing a add_timer_func "already existing function" error.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10326 54d463be-8e91-2dee-dedb-b68131a5f0ec
* menu/select/prompt script functions support grouped and empty options.
The selected option number is consistent with them.
* More work on ticket #41.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10316 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Removed range checks for autospells as per UltraMage Aegis tests.
- Added chatID skill fail check to skill_check_condition
- Corrected @refresh not re-displaying your spirit spheres nor re-setting your cloth dye.
- Now the "number of attackers" in mob_dead is counted only from online characters on the same map.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10307 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added the required constants to const.txt to specify the autospell trigger properties.
- Added bonus5 bAutoSpell/bAutoSpellWhenHit. The new parameter is used to specify when the spell should trigger (melee/range + weapon/magic/misc attack), see item_bonus for details.
- Applied use of packet 0x28a (clif_changeoption2) to transmit opt3 changes.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10278 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Removed wrong defines status_get_sc_def_[mdef/vit/int/luk], they actually had a rather undefined behaviour.
- The pc_max_status_def mob_max_status_def configs are now set on a 1-100% scale instead of 1.00-100.00%
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10206 54d463be-8e91-2dee-dedb-b68131a5f0ec
- adjusted code so that it handles mingw-specific compatibility problems
- adjusted the makefile, mingw is not a subset of cygwin
* As an experiment Corrected many /W4 warnings on the txt login server
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10192 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
- Fixed the server crashing on a timer-queued disguise / undisguise (no sd check)
- re-added the item_group_list for consistency's sake, moved to itemdb.h (after some hacking to remove the ugly map.h dependency)
- Removed some overly verbose item group messages & code
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10112 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Corrected the change that made Coma not be reduced by mdef making Stone, Freeze and Decrease Agi be reduced by luck rather than mdef.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10090 54d463be-8e91-2dee-dedb-b68131a5f0ec
Added defines script_pushstr and script_pushconststr to have the same syntax as integers
Added defines script_getref, data_islabel, data_isfunclabel to increase code readability
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10088 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Applied mass replacing of text to enforce usage of script_hasdata, script_getnum, script_getstr and data_isstring defines where possible.
- Cleaned up the 'input' command code.
- Minor other cleanups in script.c
- Removed OPTION_SIGHTTRASHER as there's no indication this value exists.
- Corrected OPTION_XMAS since 2007 clients have split it up from OPTION_FLYING (on previous clients both were the same option value)
- Removed GRF_PATH_FILENAME references (it wasn't used anymore)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10085 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Cleaned up unitattack
- Made packet_ver_flag's description use hexadecimal values for the packet versions, and changed the default to 0xFFFF.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10047 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Autoloot will now only work on items dropped a certain distance from the player. The distance is defined by AUTOLOOT_DISTANCE in atcommand.h and defaults to AREA_SIZE.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10039 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added skill ITEM_ENCHANTARMS, this is what weapon enchanting items should use.
- Corrected itemskill calls in the item_db, also made the weapon enchanting items invoke the ITEM_ENCHANTARMS skill. Corrected Holy Egg not being type 11 (delay consume)
- Updated item_db.sql with item_db information.
- Added support for specifying different elements per skill level in the skill_db
- Added bonus bNoKnockback
- Corrected typo in bonus bSubRace2 (it was called bSPSubRace2 for some reason)
- Corrected login sql server not resetting your account state to 0 when the banuntil duration expires.
- Corrected use of UINT_MAX instead of INT_MAX in some jailing check.
- Made the skillatk bonus it's own function, it can now be used to boost Heal/Sanctuary/Potion Pitcher and Slim Pitcher as well.
- Cleaned up TK_WARMWIND to use the element acquired from the skill_db rather than hardcoded values.
- Corrected Teleport's save map entry being sent without the .gat extension.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10031 54d463be-8e91-2dee-dedb-b68131a5f0ec
- calling functions without using the return value doesn't generate warnings
- more work on Ticket #41
* Took care of two warnings and a minor change to the makefile.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10025 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Probably corrected delitem not deleting pet eggs at all.
- Possibly nullpo fix on npcskilleffect
- Corrected a warning when using #fakename
- Hopefully fixed hidenpc/disablenpc not working on Guild flag sprites.
- Mob skill state "anytarget" no longer triggers when the mob has an item-target (looting).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9991 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Cleaned up a bit @gstorage
- Added a bunch of npc functions required to properly handle moving the NPC cells when an npc is moved from it's previous location.
- Added npc_setcells to handle setting down the NPC cells of ontouch npcs.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9990 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
- Because of this, many functions that handled the return of conv_str need to be changed, I haven't finished doing the conversion process because I must go already, if someone else can continue, please do so (I will resume work on this in ~5 hours
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9978 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added log options 0x800/0x1000 to log storage moves ('R') and guild storage moves ('G')
- Added upgrade_svn9976.sql to include 'R'/'G' on the picklog type column set.
- Updated the logs_athena description to include the letter of each type (512 - M, 32 - N, etc)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9976 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Externalized battle skill range and blewcount bonus into their own static functions (battle_range_type & battle_blewcount_bonus).
- Sped up the skill range flag setting code.
- Added automatic support of damagesplit. This means that if a skill's nk value includes damage split among targets, it will do a divide by the number of targets (whereas before the list of skills where this worked was hardcoded)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9950 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Adjusted menu-based skills so you can't reuse the same skill until you've dealt with the menu.
- Adjust autospells so that removing an autospell works when the script of the card that removes the autospell is triggered before the script that adds the spell.
- The "requested name of gm-hidden char" warning will not be displayed when the object in question is an NPC (since you can use Intravision to do this).
- Corrected the header format for invisible npcs.
- Venom Knife no longer takes into accounts cards or EDP.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9905 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Updated script commands startnpctimer, stopnpctimer, initnpctimer so you can attach a player to them, this is done because the attach/detach functions can't be used to attach to a different script than the one currently running.
- Some script code cleaning
- Updated the script_command reference with the new flag values of [start/stop/init]npctimer.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9872 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Guardian spawning will now fail if you attempt to spawn a guardian that already exists on the same position.
- Collapsed clif_party_main_info and clif_party_join_info into a single function: clif_party_member_info
- Collapsed config settings "sg_miracle_skill_min_duration" and "sg_miracle_skill_max_duration" into "sg_miracle_skill_duration", which defaults to an hour.
- Miracle of the Sun, Moon and Stars can now retrigger to lenghten it's effect, and it is cancelled on warp/map-change.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9871 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed Storm Gust counter freezing on fourth hit instead of third.
- Fixed @homstats not taking into consideration that the stat growth decimals get discarded on level up (so the real minimum/maximum displayed was off).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9868 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added 'r' (variable reference) to the script argument definitions.
- Added a simple define for suspitious actions. (empty at the moment)
- Added clif_clearcart and moved sending cart packets to pc_setoption.
- clif_parse_ChangeCart checking the player level.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9857 54d463be-8e91-2dee-dedb-b68131a5f0ec