97 Commits

Author SHA1 Message Date
aleos89
179f734249 Added documentation for script command navigateto
* Follow up to 4f13007.
* Corrected a few constants from PLANE -> AIRSHIP.
2016-03-06 16:10:15 -05:00
Lemongrass3110
4f13007fec Implemented serverside navigation system start
This feature was hidden in the client since 2011 and just came to our attention recently.
2016-03-06 21:48:47 +01:00
aleos89
0a77835029 Unit Controller Updates
* Added missing UMOB_CANMOVETICK option.
* Restructured script command getunittype return values to match the order of script command getmapxy to allow for more universal usage.
* Created constants for script commands getmapxy and getunittype.
* Updated NPCs using script command getmapxy to use the new constant values.
* Updated Battleground NPCs to use constant value for script command setunitdata.
2016-02-04 10:47:16 -05:00
Lemongrass3110
76725b436d Follow up to 958b6cd
Fixed compilation on linux, since those constants were only defined on windows.
2016-01-07 00:52:00 +01:00
Lemongrass3110
de61a19eca Migrated all getpetinfo constants to source exports
Created the respective enum on source side.
2016-01-07 00:19:37 +01:00
Lemongrass3110
28e337127e Migrated all getmonsterinfo constants to source exports
Created the respective enum on source side and changed the script doc to only refer to the constants not the direct values.
Additionally adjusted the sample script.
2016-01-06 23:55:06 +01:00
Lemongrass3110
a68ab0c88d Migrated all getpetinfo constants to source exports
Created the respective enum on source side and changed the script doc to only refer to the constants not the direct values.
2016-01-06 23:28:05 +01:00
aleos89
c389a6c456 Follow up to e276970
* Fixed an issue with ATK/MATK params. Thanks to Lord Ganja.
2015-11-16 11:14:42 -05:00
aleos89
e276970723 Updates for Unit Controller Script Commands
* Follow up to 2cee5b6.
* Fixes #516 - Base stats (STR, AGI, etc) will now stick after the unit's statuses are recalculated.
* Statuses are directly modifiable now (ATK, DEF, etc)
* Created constant values so it's a lot easier to read.
* Updated script command documentation to reflect changes.
2015-11-14 11:47:38 -05:00
Cydh Ramdh
c9c988abba * Fixed #654, TF_BACKSLIDE failed if player has 'no knock back' bonus.
* Clean up on buildin scripts, to use constant in return value.

Signed-off-by: Cydh Ramdh <cydh@pservero.com>
2015-10-03 22:29:46 +07:00
aleos89
b8f6e16f9d Follow up to 9738c82
* Fixed some more memory leaks.
* Added a few checks that were left out/removed by mistake.
2015-08-25 13:23:23 -04:00
aleos89
9738c825cc Follow up to f53916e
* Fixed remaining memory leak.
* Cleaned up and optimized a few more ERS allocations.
2015-08-25 10:31:38 -04:00
aleos89
f53916e060 Script Engine Fixes
* Cleaned up db_vdestroy errors at server shutdown.
* Expanded the ERS system. Thanks to Hercules.
* Added ERS to the database trees to speed up iterator memory allocation. Thanks to Hercules.
2015-08-21 15:16:52 -04:00
aleos89
0696125b82 Script Engine Upgrade
* Upgraded the script engine variables to no longer be limited.
* Increased array limit from 127 to 2 billion.
* Improvement in overall speed and storage size.
* All variable types now support arrays.
- Merge from HerculesWS/Hercules@82b583b. Thanks to those who worked on it.
2015-06-11 10:44:13 -04:00
Cydh Ramdh
0f137f3c67 Added command 'getattachedrid()' as discussion result with @aleos89
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2015-04-01 22:37:14 +07:00
Playtester
b6b6b1366a Autobonus in combos and monster target drop
- Fixed Autobonus not working in combos (bugreport:8300)
  * Combos will now have a "pos" variable that saves the combination of equipment slots used
  * Autobonus now works with combined positions rather than just a single position
  * Autobonus should now also work with all equipment slots instead of just the first 15
  * This does NOT fix problems with multiple auto-bonuses activating at the same time
- Monsters will now stop instantly if their target is completely non-existent
  * This is mainly for looters that had their loot taken
  * Hide and most other situations still use the configuration setting monster_chase_refresh
2014-11-01 12:16:41 +01:00
lighta
b124498263 Fix -WShadow definition warning
Cleanup some leftover
2014-06-27 06:07:50 -04:00
Cydh Ramdh
267d521c00 Bug fixes:
-- Pin code issue after char_refac (bugreport:9027)
-- Delete date issue after char_refac (bugreport:9029)
-- Stuck when drag item from/to inventory/cart/storage if the item cannot be moved. (bugreport:8935)
Command:
-- Added @cloneequip to clone other's equipments.
-- Added @clonestat to clone other's statuses.
-- Thank Antares for the suggestion, http://rathena.org/board/topic/95076-new-atcommands-suggestion/
Permission:
-- Added 'bypass_stat_onclone' to make user who use @clonestat can bypass stat limit.
-- Change 'atcommand_enable_npc' to 'command_enable' permission to enable use command while talking with NPC. Suggested by @aleos long time ago.
Misc:
-- Correcting some checks for bAddEff bonuses.
-- Moved status point calculaiton formula to PC_STATUS_POINT_COST, removing redundancy in pc_need_status_point and pc_maxparameterincrease.
-- Added pc_is_same_equip_index function to move all item index checks, removing redundancy in some cases.
-- Some random in-source documentations.
-- Updated map_msg_idn.conf.

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-06-15 18:50:21 +07:00
Cydh Ramdh
dd67f9de96 Bug Fixes:
- 'hp_rate' and 'sp_rate' config aren't working. http://rathena.org/board/tracker/issue-8742-max-hpsp-battleconf-not-working/
- Mercenary DB that aren't being read properly whic also happens for Homunculus DB. http://rathena.org/board/tracker/issue-8761-mercenary-db-import-folder-issue/
- Fixed Elemental DBs that aren't being imported yet. (also changed to sv_readdb)

Rebellion Skill Updates:
- Some updates according to kRO updates on http://forums.irowiki.org/showpost.php?p=1364894&postcount=579, http://forums.irowiki.org/showpost.php?p=1388802&postcount=981, and http://forums.irowiki.org/showpost.php?p=1389627&postcount=1008
- Partial merge from idAthena.
- Using 0x107 as temporary marker on mini-map for Crimson Marker target.
- Some stuffs maybe still wrong, feel free to report/fix it.
- Thank people on those links, Ziu, and idAthena.

Misc changes:
- Changed some function names for homunculus.c/h with prefix hom_* and mercenary.c/h with prefix mercenary_*
- Change unnecessary 'int' return value tos 'void'

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-03-13 23:59:29 +07:00
Euphy
cad0a57865 Replaced 'getserverdef' command with 'script_hardcoded_constants' function in source. These constants can now be directly accessed in scripts. (Hercules 950e3eb)
- Relocated 'Option_*' constants from 'db/const.txt' to source; added OPTION_COSTUME compound. (Hercules a5728fd)
- Added MAX_CHAT_USERS define. (Hercules 950e3eb)
- Follow-up ca9642a: applied 'Loc' changes to Pre-Renewal database.

Signed-off-by: Euphy <euphy.raliel@rathena.org>
2014-03-01 15:42:49 -05:00
Euphy
27a0f3f88e Added 'OnPCStatCalcEvent' trigger. (tid:77230, credits: @QQfoolsorellina, AnnieRuru)
This label triggers whenever a player's stats are recalculated.
http://rathena.org/board/topic/77230-onpcstatcalcevent/

Signed-off-by: Euphy <euphy.raliel@rathena.org>
2014-02-15 12:40:43 -05:00
Cydh Ramdh
03108701c0 Implemented suggestion "Script Command to block commands" http://rathena.org/board/topic/88888-script-command-to-block-commands/
-- Added new script commands: 'enable_command', 'disable_command'
-- Added new config 'atcommand_enable_npc' at conf/battle/gm.conf
-- Thank Kichi for the patch file

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-01-27 19:34:29 +07:00
Euphy
fe95610ba8 * Added an integer overflow check on literal values in the script parser. (Hercules 8351881, 86602bb, 3d19c2d, 184ad8a)
- When attempting to use a value greater than INT_MAX or smaller than INT_MIN (about +/- 2 billions), a warning message will be shown and the values capped to INT_MAX or INT_MIN.
- Corrected some scripts that were attempting to use such values.
- Fixed some possible issues when using literal negative values in scripts.
* Added a note to @job documentation.

Signed-off-by: Euphy <euphy@rathena.org>
2013-08-27 13:46:02 -04:00
akinari1087
cd95d1cada Instance System Rewrite!
- Removed a bunch of script commands and replaced others
- Rewrote the way instances are created
- Added Instance Database files
- Fixed and rewrote instances scripts (Euphy)
- Added reloading to instancedb
- Instances are now persistent through @reloadscript
- Special thanks to Auriga (emulator) for the base of their system
- Special thanks to Euphy for doing major testing and script rewrites for this
- Special thanks to Lemongrass and Lighta for some help along the way

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17386 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-06-26 17:33:59 +00:00
akinari1087
8d220fce91 Reworked script_getfuncname - Fixes bugreport:7721
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17356 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-06-11 17:26:00 +00:00
aleos
ae5e899822 * Small cleanup in friend_auto_add config to now note auto-deletion.
* Updated the Secure NPC Timeout feature to work as it does on official servers and enabled by default. (bugreport:1721) (Hercules e671397)
* Fixed disable_items not working when the close button appears in NPC dialog while keeping close/close2/end backwards compatibility. (bugreport:7307 / bugreport:7469)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17280 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-04-22 02:08:11 +00:00
euphyy
6e72489049 * Part two of fixing bugreport:6527. Players can now change equipment when talking with NPCs by default. This behavior can be switched off in conf/battle/items.conf. (Hercules ad792f4)
* Minor update to Renewal item database.
* Follow-up r17158, added a missing label in Octopus Cave instance (bugreport:7303).

> Hercules merges:
* b9c79ce:
Fixed NJ_SUITON not working properly with Kagerou/Oboro.

* dbf69e8:
Updated quest_db with more Port Malaya entries.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17163 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-02-27 01:49:09 +00:00
euphyy
3a330a455a * Part one of fixing bugreport:6527. This does not yet change functionality.
-- Added 'disable_items' to all applicable scripts.
-- Added preliminary source modifications. (Hercules 137cc43)
* Raised max stat for third jobs to 125 (follow-up r17133, bugreport:7295).
* Fixed logical issue with r17151. (Hercules 5c667cc)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@17160 54d463be-8e91-2dee-dedb-b68131a5f0ec
2013-02-25 03:04:33 +00:00
brianluau
a2bdc47daf - Undid r16968: SVN Replaced with source:/trunk/src/@16966 (tid:74924).
[16969:16991/trunk/src/] will be re-committed in the next 24 hours.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16992 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-12-05 02:53:33 +00:00
greenboxal2
a7c32653f7 Applied AStyle code formating as discussed on tid:74602.
Removed /SAFESEH option from MSVC11 projects.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16968 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-11-25 21:20:43 +00:00
shennetsind
aa237aacdd Hello World! with this commit trunk will finally be making use of the gorgeous stuff sirius_black last implemented. we want to make sure everything related to this feature is working as intended so for now its being released under a optional define, after the features stability is confirmed the define will be removed along with the previous processings of the feature. By enabling BETA_THREAD_TEST in /src/config/core.h all your mysql logs, query_sql and query_logsql script functions will be handled by a different thread, therefore any slow queries won't have any effect (e.g. slow down) on the game server. Everyone is welcome on helping us test and debug the features, be aware however I DO NOT RECOMMEND YOU TO ENABLE THIS ON PRODUCTION SERVERS AS OF NOW (which is why while we're all testing it still is a optional feature).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16588 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-08-06 01:47:50 +00:00
cookiecrumbs
0fd45ac13e Added the ability to bind atcommands to NPC events (ex: NPCNAME::OnEvent); original version by ToastOfDoom however heavily modified by I enabling command level at the invoking/character (@/#) level and fixes to prevent console errors as well as fixes aimed to ensure compatibility with rAthena.
Updated the script_commands.txt documentation with the following script commands: bindatcmd, unbindatcmd and useatcmd.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16471 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-07-22 05:15:32 +00:00
greenboxal2
30e0f39055 Fixed bugreport:5740 var reference was not being restored to call buildin_set on assignment statements.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@16300 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-06-15 00:30:20 +00:00
epoque11
02e4daf67d - Updated the script engine to make use of the DBMap* structure for storing variables (for Ind <3)
- Fixed missing new-lines at the end of various files causing warnings

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15997 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-04-28 21:50:55 +00:00
epoque11
c3193f3106 - Added initial support for direct variable assignment (allows assigning values to variables without the use of 'set')
- Note: the set; function is still required to be defined in the source

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15982 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-04-27 13:28:51 +00:00
eathenabot
87f1a4a49e * Merged changes up to eAthena 15067.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15481 54d463be-8e91-2dee-dedb-b68131a5f0ec
2012-01-17 07:35:05 +00:00
shennetsind
01b818b0ac Added 4 new all-handy script functions; special thanks to KeyWorld!
* getargcount()
-- to be used inside functions/callsub labels, returns quantity of arguments provided
* is_function(<function name>)
-- checks weather a "user" function exists, returning 1 if function is found and 0 otherwise.
* freeloop(<toggle>)
-- lets you to enable/disable (1 or 0) the loop infinity protection for that specific npc instance, allowing your script to loop as much as it may need.
* get_revision()
-- retrieves the current svn revision

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15340 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-12-31 23:02:50 +00:00
ultramage
edcb998d59 Replaced custom type 'intptr' with standard 'intptr_t'.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14873 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-06-30 09:14:21 +00:00
ai4rei
63321f205e * Moved script constant manipulation code into separate functions script_get_constant / script_set_constant. [Ai4rei]
- Added protection against overwriting existing names in script constant creation code.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14701 54d463be-8e91-2dee-dedb-b68131a5f0ec
2011-02-08 10:43:51 +00:00
ai4rei
b86d48e71a * Added script_setarray_pc for setting temporary character array variables outside of script.c without requiring them to use script-interal code (add_str and reference_uid).
- Applied script_setarray_pc to assignment of dynamic shop arrays (related r5841).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14613 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-12-21 23:23:06 +00:00
ai4rei
7c90fd1bf1 * Fixed dynamic shop arrays @bought_nameid, @bought_quantity, @sold_nameid and @sold_quantity not getting reset to zero before use, thus providing attached script with wrong/old data, if it did not clear them by itself in previous call (bugreport:1574, since r5841).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14611 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-12-21 21:30:46 +00:00
ai4rei
6a684a566b * Added support for checking argument data type of built-in script functions (bugreport:1701, topic:261833, related r14573).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14577 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-12-11 21:52:27 +00:00
ai4rei
a5326bd2b6 * Fixed a crash uncovered with r14501, caused by outdated local variables when a script is about to suspend or terminate (bugreport:4577).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14511 54d463be-8e91-2dee-dedb-b68131a5f0ec
2010-11-28 02:02:30 +00:00
Inkfish
69bd8dced5 * Autobonus code cleanups.
- removed the 'script_parsed' flag to fix the issues with combo items.
- introduced a global cache for autobonus scripts so that we don't have to parse scripts everytime invoking status_calc_bl.
- fixed such script commands as 'getrefine()' not working inside autobonus scripts.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14180 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-12-02 10:30:10 +00:00
ultramage
a38fddad27 Hardcoded the even label config settings from r14097.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14099 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-10-25 11:59:09 +00:00
Inkfish
42987f61ad * Implemented the official version of 'OnTouch' named as 'OnTouch_'.(it can be defined in script_athena.conf)
* Adapted 'map_foreachinarea' to 'map_forsomeinarea' so that it allows you to specify the number of bl you wanna operate on.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14097 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-10-25 09:38:33 +00:00
zephyrus
6b710571ad - Optimization to instance system.
* Removed the crc feature to generate instance npc names. The instance npc name will be "dup_" + instanceid + "_" + srcnpcid.
* Removed the big array under map structure and coded in a different way. It was only used to generate map names, but i just used the instance_id + "origin map name".
* Moved all instance features to separated files.
* Moved the npc duplication for instances into npc.c as Ultramage says (removed npcname_db from npc.h).
* Added recomendations for scripts commands by Saithis.
- Testing required, i will prepare Endless Tower script soon. I hope this do almost anything in bugreport 3276.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@14003 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-08-12 21:44:02 +00:00
zephyrus
33e1fbbd66 - Instancing System (Thanks to Sirius White who did most of the code, with some of my work to implement client side information, some optimizations and bugfixes). Also thanks to contributions from UEAUP team and Orcao.
- Fixed a bug on areamobuseskill and changed it to make it as Aegis.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13901 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-06-20 17:56:01 +00:00
FlavioJS
89d683d668 * Changes to the script engine:
- new stack datatype script_retinfo for C_RETINFO to hold all the return state info that was being stored in the stack. (the script engine in 64bit-ready now)
- pop_stack is responsible for adjusting all the stack pointers.
- push_* returns the created script_data.
- 'return' only converts to value scope variables of the current scope.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13427 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-12-31 15:54:33 +00:00
FlavioJS
cb8ef12df8 * Changes to the script engine:
- script ends when run_func can't find the buildin command. (script engine error)
- run_script_main doesn't change RERUNLINE to RUN automatically, the buildin command that set it is responsible for that now. The buildin command can use this to detect a rerun.
- created functions to alloc/free a script_state.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13426 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-12-30 03:27:46 +00:00