summaryrefslogtreecommitdiff
path: root/src/map/script.c
AgeCommit message (Collapse)AuthorFilesLines
2014-04-17Added sysinfo (System Information) functionalitiesHaru1-14/+3
- More informative messages are displayed during startup, to make it easier to identify what system and environment Hercules is running. - Git/SVN revision detection is improved, separating the source version (cached at compile time) from the runtime version, in case the user updated their working copy without recompiling the server. Git version detection is also more reliable, in case a non-default branch is used. - The get_revision script command has been removed (as it was useless to begin with, after the switch to git). An alternative will be provided later, for feature-probing purposes. - The patch was tested under Linux (Gentoo / gcc 4.7 on i686 and x86_64, Debian 6 / gcc 4.4 on i686, Raspbian / gcc 4.6 on armv6l, CentOS 5 / gcc 4.1 on i686, CentOS 6 / gcc 4.4 on x86_64, Linux Mint 15 / gcc 4.7 on x86_64, OS X Mountain Lion / clang 5.0 and gcc 4.8 on x86_64, Cygwin-NT-5.1/gcc 4.8 on i686, FreeBSD 8 / gcc 4.2 on i386, FreeBSD 9 / gcc 4.2 on amd64, FreeBSD 10 / clang 3.3 on amd64, NetBSD 5 / gcc 4.1 on i386, NetBSD 6 / gcc 4.5 on amd64, OpenBSD 5 / gcc 4.2 on amd64, Solaris 11 / gcc 4.5 on i86pc, Windows 7 / Visual Studio 2012 on x86, Windows 8 / Visual Studio 2010 on WOW64, Windows 8.1 / Visual Studio 2013 on WOW64. Signed-off-by: Haru <haru@dotalux.com>
2014-04-04Fixed issue: 8131panikon1-1/+1
http://hercules.ws/board/tracker/issue-8131-sc-chat/ -Documented SC_NOCHAT -Corrected the way that pc_setparam was handling SP_MANNER -Added documentation on *sc_status regarding SC_NOCHAT, to mute a user via script you should set Manner
2014-03-29Fixed getmapxy crashshennetsind1-1/+19
getmapxy was failing to validate whether the variables passed met the necessary criteria. As reported in http://hercules.ws/board/topic/5113-map-crash-after-getmapxy/ by Javanese Signed-off-by: shennetsind <ind@henn.et>
2014-03-29Fixed Bug 8125shennetsind1-0/+7
using skilleffect on a sitting character no longer causes it to be unable to move. http://hercules.ws/board/tracker/issue-8125-sit-soul-link-npc-stuck/ Signed-off-by: shennetsind <ind@henn.et>
2014-03-18Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-4/+93
2014-03-18BG Queue Fixes & +++shennetsind1-1/+1
Fixed issue where players would be able to join a ongoing game when queueing by meeting the criteria. Fixed/Implemented the maximum_afk_seconds setting. Fixed issue with the maxPlayers arena setting that'd cause the maximum to be less than specified. Added a new battlegrounds.conf setting "allowedTypes" for arenas in order for further customisation. Expect a few more soon. Special Thanks to AnnieRuru Signed-off-by: shennetsind <ind@henn.et>
2014-03-17Added regular expression matching script commands and operatorsHaru1-4/+93
- The script command pcre_match and the operator ~= will return the number of regular expression matches in a given string (roughly equivalent to the php function preg_match or the perl operator =~) - The operator ~! is the opposite of ~= (roughly equivalent to the perl operator !~) - See script_commands and npc/custom/test.txt for more information. Signed-off-by: Haru <haru@dotalux.com>
2014-03-16Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-1/+4
2014-03-16Fixed Bug 8093shennetsind1-0/+12
Special Thanks to Haruna for pinpointing the cause, developing test cases and contributing to the final solution :3 http://hercules.ws/board/tracker/issue-8093-memory-leak-after-stop-server-cant-fix/ Signed-off-by: shennetsind <ind@henn.et>
2014-03-17Fix addtimer will report error when hit MAX_EVENTTIMERAnnieRuru1-1/+4
Fix bug 7965 http://hercules.ws/board/tracker/issue-7965-
2014-03-15Follow up f4b1ff7426b1c4cd5e8cac37f7e3983cc03c706eshennetsind1-0/+5
Memory leak from bug report 8090 which was created in f4b1ff7426b1c4cd5e8cac37f7e3983cc03c706e when I somehow managed to assume all instances consuming memory would be active. Special Thanks to LordOdin! http://hercules.ws/board/tracker/issue-8090-memory-leak/ Signed-off-by: shennetsind <ind@henn.et>
2014-03-14Follow up 1007d606645c16d5246761976b7648809edb8b1dshennetsind1-4/+4
A bonus. Fixed unitwalk's non-x/y possibility, NPCs can now be set to chase players around for as long as they keep walking, which opens a number of possibilities e.g. help npc y get thru z. Signed-off-by: shennetsind <ind@henn.et>
2014-03-14Added internal awareness of active script instancesshennetsind1-4/+21
Fixes the following issues: - donpcevent could cause a crash when used to a event of the same npc - input/other-dialog-interactions could cause a crash when sending data to a disabled-fakenpc-id'd. Special Thanks to Haruna, ossi0110. Signed-off-by: shennetsind <ind@henn.et>
2014-03-11Fixed getvariableofnpcshennetsind1-0/+3
Would crash when target npc's variable database is empty. Special Thanks to Haruna, ossi0110 Signed-off-by: shennetsind <ind@henn.et>
2014-03-11Merge pull request #265 from AnnieRuru/request_1shennetsind1-0/+34
set_constant the send_target
2014-03-10Fixed a crash caused by NPC variable references in callfuncHaru1-13/+41
- Fixes bugreport:8074, thanks to ahmadshidqi http://hercules.ws/board/tracker/issue-8074-help-crash/ - Also fixed some DBMap allocation mistakes introduced in 4f3156b. - Added testcases to the self-test script. - Made possible thanks to Ind. Signed-off-by: Haru <haru@dotalux.com>
2014-03-10set_constant the send_targetAnnieRuru1-0/+34
fix bug 8049 http://hercules.ws/board/tracker/issue-8049-specialeffect-target-self-doesnt-work/
2014-03-05Corrected same-reference check to work on vars with the same name in ↵Haru1-14/+11
different scopes - Fixes bugreport:8008, special thanks to KeyWorld http://hercules.ws/board/tracker/issue-8008-copyarray-fail-on-a-referenced-array-argument/ Signed-off-by: Haru <haru@dotalux.com>
2014-03-05Ref redesign, part 3Haru1-128/+125
- Updated several functions to properly use the data structures defined in parts 1 and 2. - Special thanks to Ind for his help on this, as well as the previous two parts. - Fixes some crashes related to variable references passed back and forth between nested callfunc/callsub scopes (related: 2669e9a, 3259f89, 4f2de07) Signed-off-by: Haru <haru@dotalux.com>
2014-03-05Ref redesign, part 2Haru1-81/+91
- Reorganized regs var/array DBMaps into a specific reg_db structure Signed-off-by: Haru <haru@dotalux.com>
2014-02-27Cleaned up messages.confHaru1-1/+1
- Removed some unused messages. - Re-mapped some duplicate IDs - fixes bugreport:8057, thanks to AnnieRuru http://hercules.ws/board/tracker/issue-8057-jobname-with-invalid-id-return-tomb/ - Fixed some issues with the message range loaded by the char server. - Reworded some messages, fixed typos in others. Note for translation users: some messages have been remapped to new IDs. You'll need to remap them in your custom translations as well. The list of changes is as follows: - Removed messages (you can safely remove them from your translations): 15, 26-27, 35, 48-52, 57-58, 65-69, 82-83, 86-87, 91, 101, 140-142, 164, 189-194, 199-200, 202-203, 209-211, 215-218, 267-268, 275, 289-290, 380-385, 387-388, 401, 497, 499, 535-537, 922, 995, 1063, 1079, 1291-1294 - New messages (you need to add them to your translations): 15 - Moved messages (you need to change their IDs in your translations file): * [Unknown Job] 656 -> 620, * [Job names] 681~693 -> 656~668 * [Tombstone related] 656~661 -> 856~861 * [Etc messages] 662~680 -> 862~880 * [@version] 1436 -> 1294 * [Hercules Chat] 1475 -> 1436 Signed-off-by: Haru <haru@dotalux.com>
2014-02-26Improved mapindex_name2id errors for scriptsshennetsind1-15/+30
NPC Error is now printed as well as the original message as proposed by Emistry in http://hercules.ws/board/topic/1864-mapindex-name2id-display-which-npc-caused-this/ Special Thanks to Haru! Signed-off-by: shennetsind <ind@henn.et>
2014-02-26Introducing #define npc constantsshennetsind1-0/+11
As proposed by AnnieRuru in http://hercules.ws/board/topic/4320-getserverdef/ They're input directly by the server, Haru's idea! (Thank you). Also introducing the MAX_CHAT_USERS define as requested by AnnieRuru. Signed-off-by: shennetsind <ind@henn.et>
2014-02-26Removed Option_ constants from const.txt, now input directly from the sourceshennetsind1-0/+39
a benefit, for example, would be that the compounds are always up to date regardless if new members are added, also added a new compound OPTION_COSTUME Special Thanks to Haruna, and AnnieRuru for pointing out constdb's outdatedness. Signed-off-by: shennetsind <ind@henn.et>
2014-02-22Changed function types related to SG days in date.cpanikon1-1/+1
Changed types in clif.c: bool clif_setip -> map:ip_set, map: char_ip_set changed as well bool clif_setbindip bool clif_send bool clif_spawn void clif_homskillinfoblock bool clif_sub_guild_invite Note that return values of those types have changed, so if any modification uses their return values it should be changed. clif_disp_onlyself replaced as a macro clif_viewequip_fail replaced as a macro Merged clif_skillup and clif_guild_skillup as they were using the same packet Added packet_len() values in clif_updatestatus
2014-02-19Fixed issue 8034panikon1-1/+2
http://hercules.ws/board/tracker/issue-8034-map-crash-scripts/
2014-02-19Readding last merge as last revert was unintended. Sorry for the trouble.panikon1-14/+30
2014-02-19Revert "Merge branch 'master' of https://github.com/HerculesWS/Hercules"panikon1-30/+14
This reverts commit c4a9dd3f2804b75c1d49b5ab58a3ba80ea4303c2, reversing changes made to 58544d7f610261a903b3e843a795efd7571b2d56.
2014-02-19Fixed Bug 8025shennetsind1-5/+21
Temporary fix for data->ref on array handling, will be dropped once Haru's data->ref redesign is commit. Special Thanks to AnnieRuru http://hercules.ws/board/tracker/issue-8025-callfunc-getarraysize-getarg-server-crash/ Signed-off-by: shennetsind <ind@henn.et>
2014-02-14sc sourcesshennetsind1-9/+9
Signed-off-by: shennetsind <ind@henn.et>
2014-02-11Fixed issue with referenced array operationsshennetsind1-15/+18
Did not affect write/read, except getarraysize and deletearray. Special Thanks to Haru! Signed-off-by: shennetsind <ind@henn.et>
2014-02-10Modified successrefitem script commandshennetsind1-5/+8
Added a new optional parameter to specify upgrade quantity, so its consistent with downrefitem which provides a optional parameter to specify downgrade quantity. As proposed by kyeme in http://hercules.ws/board/topic/2403-successrefitem/ Signed-off-by: shennetsind <ind@henn.et>
2014-02-09Improved script case check reports to include more accurate source info.Haru1-3/+15
- Fixes bugreport:8013, thanks to Dastgir Pojee http://hercules.ws/board/tracker/issue-8013-script-add-str-problem/ Signed-off-by: Haru <haru@dotalux.com>
2014-02-08Improvements on the script commands sscanf, axtoi. Added strtol.Haru1-44/+32
- Added script command strtol (conforming to the ISO C90 function) - Modified script command axtoi to internally use strtol instead of an unnecessary own implementation. - Fixed sscanf behavior to conform to the C specifications in case the input string is empty. It now correctly returns -1, or 0 if the format string is also empty. Fixes bugreport:8009, thanks to AnnieRuru - http://hercules.ws/board/tracker/issue-8009-sscanf-should-return-1-if-the-string-field-is-an-empty-string/ Signed-off-by: Haru <haru@dotalux.com>
2014-02-03Added /stat+ commands support for 2013-12+ clientsHaru1-3/+2
- Fixes /str+, /agi+ and the likes, only being able to increase stats by 1 point on 2013-12 and newer clients. - As a bonus, on those clients, processing of the /stat+ commands will be much faster, and the requested points will be added instantly and all at once rather than one at a time like in older clients. Signed-off-by: Haru <haru@dotalux.com>
2014-01-22Renamed atcommand->parse to atcommand->execHaru1-2/+2
- Renamed function to a more appropriate name. - Changed its last argument 'int type' to 'bool player_invoked' to make its purpose more obvious. Signed-off-by: Haru <haru@dotalux.com>
2014-01-18Socket interfacedshennetsind1-1/+1
We designed this one with having as little changes required elsewhere in mind, thus the way most socket-related things are called has not changed. Plugins may now take a greater advantage of the socket features. Signed-off-by: shennetsind <ind@henn.et>
2014-01-13Fixed getarraysize returning incorrect values for character variablesshennetsind1-1/+1
- Committing on Ind's behalf. Special thanks to ossi0110. Signed-off-by: Haru <haru@dotalux.com>
2014-01-13Improved overwriting priority of variables/constants/parametersHaru1-22/+16
- Fixes issue 7968, thanks to Moguri http://hercules.ws/board/tracker/issue-7968-trader-npc-not-working/ - Corrected sprite name for KO_KAGE to match latest kRO info (previouly KO_ZANZOU, conflicting with a Kagerou/Oboro skill identifier) - Updated self-test script to include checks for constants and for setd and getd. - Made possible thanks to Ind. Signed-off-by: Haru <haru@dotalux.com>
2014-01-12Follow up 20bdc01fa687b174a732be4483ddea4982d67ce9shennetsind1-4/+15
Fixed scripting deficiency of being unable to tell whether a user is assigned to a specific instance or not ( 20bdc01fa687b174a732be4483ddea4982d67ce9 removed that ability ), because users can be assigned to more than a single instance on hercules, the previous instance_id(<va>) isn't viable, so I'm introducing has_instance2("<map_name>"), returns the instance id of that map for the user (as long as the user is assigned to a instead with that map), -1 upon failure -- valid instance ids are >= 0. Signed-off-by: shennetsind <ind@henn.et>
2014-01-12Merge branch 'master' of https://github.com/HerculesWS/Herculesshennetsind1-24/+24
2014-01-12Follow up 95f13f3420822111f928ba6079fbc2061bd38c5fshennetsind1-16/+16
Fixed handling of arrays with 1-member and on index[0]. Thanks to Haruna. Signed-off-by: shennetsind <ind@henn.et>
2014-01-12Changed some void* to the correct data types where applicableHaru1-23/+23
Signed-off-by: Haru <haru@dotalux.com>
2014-01-12Corrected a 32 bit warningHaru1-1/+1
- Follow-up to 82b583b5ef4e729ad2c3c74b26adce16a145605a - Committing on Ind's behalf Signed-off-by: Haru <haru@dotalux.com>
2014-01-12Fixed ERS Cache sharingshennetsind1-2/+2
Enforcing cache to match the option condition in order for it to be shared. Special Thanks to Haruna! Signed-off-by: shennetsind <ind@henn.et>
2014-01-12Adjusted indexing of vars with index 0shennetsind1-8/+66
Special Thanks to Haruna. Also fixed a compiler warning, thanks to ossi0110 Signed-off-by: shennetsind <ind@henn.et>
2014-01-11Follow up 82b583b5ef4e729ad2c3c74b26adce16a145605ashennetsind1-10/+7
Fixed mapreg reload issue, sql_query not returning results, and caused deletearray to no longer display error messages when the array in question is not available. Special Thanks to Haruna, ossi0110 Signed-off-by: shennetsind <ind@henn.et>
2014-01-11Fixed Bug 7960shennetsind1-2/+4
http://hercules.ws/board/tracker/issue-7960-scriptc-warnings/ Also applied a temporary adjustment due to ERS_OPT_CLEAN not being consistent (decent fix will follow up, haru and i are working on it) -- thanks to kyeme for pointing it out! Signed-off-by: shennetsind <ind@henn.et>
2014-01-11Follow up 82b583b5ef4e729ad2c3c74b26adce16a145605ashennetsind1-1/+0
Forgot to remove this little fella. Thanks to kyeme! Signed-off-by: shennetsind <ind@henn.et>
2014-01-11Hercules 1st 2014 MegaPatchshennetsind1-321/+514
http://hercules.ws/board/topic/3886-hercules-1st-2014-megapatch/ Signed-off-by: shennetsind <ind@henn.et>