summaryrefslogtreecommitdiff
path: root/src/map/npc.c
AgeCommit message (Collapse)AuthorFilesLines
2014-11-28Add function for create npc.Andrei Karas1-39/+21
2014-11-27Fix npc->parse_unknown_object usage.Andrei Karas1-1/+1
2014-11-27Add function for parse or report about unknown object in parsing script file.Andrei Karas1-3/+10
2014-11-27Add function for parse/report unknown map flag.Andrei Karas1-2/+10
2014-11-16Whitespace cleanup (no code changes)Haru1-23/+26
This includes, and is not limited to: mixed or wrong indentation, excess whitespace (horizontal and vertical), misalignment, trailing spaces. Signed-off-by: Haru <haru@dotalux.com>
2014-10-28Removed some temporary case-check error messages.Haru1-1/+1
- Control flow statements (break, case, continue, default, do, for, if, switch, whilei, else) and sub-function declarations (function) will no longer show a custom error message when they are incorrectly capitalized. - Note: This does not mean that they are no longer case-sensitive. This only means that no special message will be shown in case such an error is detected. The script engine will throw a normal error, as it would with any other kind of typo, rather than treating this as a special case. Enough time was given to update third party scripts, and it is now time to clean up our parsing code and get rid of these special warnings. - Variables, labels and commands will still show a warning for the time being, since the side-effects of silently ignoring it could be quite dangerous. An alternative approach to the case-check will be presented in future. For now, those who want to disable it (and save a bit on execution time and memory use), can simply comment out the #define ENABLE_CASE_CHECK line in script.h, as usual. Signed-off-by: Haru <haru@dotalux.com>
2014-10-28Removed some temporary case-check error messages.Haru1-19/+0
- Top level commands (function, warp, shop, cashshop, script, trader, duplicate, monster, boss_monster, mapflag) will no longer show a custom error message when they are incorrectly capitalized. - Note: This does not mean that the commands are no longer case-sensitive. This only means that no special message will be shown in case such an error is detected. The script engine will throw a normal error, as it would with any other kind of typo, rather than treating this as a special case. Enough time was given to update third party scripts, and it is now time to clean up our parsing code and get rid of these special warnings. Signed-off-by: Haru <haru@dotalux.com>
2014-10-25Added some missing variable initializationsHaru1-6/+6
- The issue was caused by memcmp failing because of garbage in structs padding. - Fixes bugreport:8410, special thanks (and credits for the fix) to Garr http://hercules.ws/board/tracker/issue-8410-autotradeat-issue/ - Also reduced scope of some variables, where appropriate. - Thanks to Ind. Signed-off-by: Haru <haru@dotalux.com>
2014-10-23Improved bindatcmd handling of spaces in parameters.Haru1-20/+22
- Parameters passed to bindatcmd-invoked labels are now properly space-delimited. - This is in order to support strings containing multiple spaces or containing a trailing space. Previously it was impossible to create a bindatcmd command that could accept a player name such as 'This name has two spaces' or 'Sir Trailingspace '. - Added documentation and usage examples, especially wrt space handling. See doc/script_commands.txt for details. - NOTE: Your custom atcommand labels may need edits, as we're no longer trimming multiple sequantial spaces or trailing spaces, in order to gain more flexibility. It is your care to do that. - Special thanks to Dastgir, jaBote. Signed-off-by: Haru <haru@dotalux.com>
2014-10-18Renamed DeprecationWarning to DeprecationCaseWarning, since that's what it ↵Haru1-11/+11
is about. Signed-off-by: Haru <haru@dotalux.com>
2014-09-20Fixed Bug 8272shennetsind1-1/+1
Fixed issue where 'pvp off' mapflag would assign the map the pk zone (this would not affect the pvp status of the map, only the disabled_ settings). Special Thanks to kyeme http://hercules.ws/board/tracker/issue-8272-map-zone-db-mapflags/ Signed-off-by: shennetsind <ind@henn.et>
2014-09-20Fixed Bug 8301shennetsind1-2/+6
reloadscript now clears npc-spawned (by warpportal script command) warps properly. Special Thanks to Emistry, Cydh http://hercules.ws/board/tracker/issue-8301-warpportal-reloadscript-map-server-error/ Signed-off-by: shennetsind <ind@henn.et>
2014-09-08Fix on start possible buffer overruns.Andrei Karas1-1/+1
Checks after using --enable-sanitize.
2014-08-07Corrected several format-string errors through the codeHaru1-3/+4
- Functions that expect a printf-style format string are now marked as such, so that gcc/clang will emit a warning warn you if you mismatch format string and arguments. Signed-off-by: Haru <haru@dotalux.com>
2014-07-11Fixed reserved __identifier violationsHaru1-1/+1
- Complies with CERT DCL37-C - Fixes issue #293 (special thanks to elfring) Signed-off-by: Haru <haru@dotalux.com>
2014-06-28Changes in npc_parse_shop in order to fit documentation standard, now an ↵panikon1-7/+29
unlimited item amount is supported in SHOP/CASHSHOP NPC objects and when value is a negative value other than -1 a warning is shown
2014-06-28Changes in npc_parsefile in order to decrease the number of unecessary calls ↵panikon1-11/+16
to strcmp Fixed issue that different header syntax would lead to a deprecation warning instead of the proper error
2014-05-30Fixed typos inside src/Shido1-5/+5
2014-05-13Removed trailing whitespace (sources)Haru1-2/+2
Signed-off-by: Haru <haru@dotalux.com>
2014-05-10Follow-up to 5f1529083ad1f35a3ac66cc041ee74d6db2f3552Haru1-1/+5
- Now the map-server returns nonzero even on nomral runs (or --run-once) if any script failed loading. Signed-off-by: Haru <haru@dotalux.com>
2014-05-10Re-commit of "Fixed order of includes in all source files"Haru1-27/+30
This reverts commit 94657284973f4037596bae468ebfbee5c217e02b.
2014-05-10Revert "Fixed order of includes in all source files"panikon1-30/+27
This reverts commit b6b3f58795288701d0e162d43fa6f0a47af913b3. Fixes issue 8184 http://hercules.ws/board/tracker/issue-8184-cart-related/
2014-05-10Optimized THQS_TTShop.txt and corrected a minor mistakepanikon1-8/+7
Added npc_market_data_db to inter-server.conf Added shop message to messages.conf Fixed small typo in clif_GM_kickack
2014-05-10Small changes in npc loading/reloadingpanikon1-52/+53
Compartmentalized npc file processing Corrected event initalisation order in npc_reload Changed loading order, now item db constants are loaded before npc processing in order to avoid labels overwriting constants values, like Aegis Names Added information regarding reloading scripts in /doc/script_commands.txt
2014-05-09Added documentation regarding trader objects in script_commands.txtpanikon1-30/+30
Added enumered returns to npc_cashshop_buy and to npc_cashshop_buylist
2014-05-09Fixed order of includes in all source filesHaru1-27/+30
- Changed order according to the (upcoming) code style guidelines. - Fixes several issues caused by missing headers when their include order is changed or in plugins. Signed-off-by: Haru <haru@dotalux.com>
2014-05-09Return EXIT_FAILURE if a script parse error occurred.Haru1-95/+144
- This affects normal execution as well as ./script-checker runs. Signed-off-by: Haru <haru@dotalux.com>
2014-05-06Bug fixes and other changespanikon1-3/+18
#Fixed issue where a corrupted map cache would lead to a crash *Moved Big-endian compatibility functions to common/utils.h #Fixed issue 8162 *http://hercules.ws/board/tracker/issue-8162-loadnpc-doesnt-trigger-oninit-of-duplicate-npcs/ *Added options to npc_parse_duplicate #Fixed issue 8169 *http://hercules.ws/board/tracker/issue-8169-script-command-guildskill-skill-idlevel-not-working-as-intended/ *Changed *guildskill behavior, now it behaves exactly as depicted in the documentation *Updated *guildskill documentation #Added missing GBI types to mapif_parse_GuildBasicInfoChange now it's possible to change guild exp, lv, skill point and skill information #GeoIP revamp *GeoIP module was partially rewritten *Added several data checks to prevent corruption and crashes *Updated GeoIP database *See https://github.com/maxmind/geoip-api-c/blob/master/libGeoIP/GeoIP.c for more information #Added packetver checks regarding NST_MARKET *Now *tradertype warns if user is trying to use this feature with older clients
2014-04-12Fixed some compiler/analyzer warnings.Haru1-2/+1
- Sanitized some macros (they weren't going to cause problems, but better being safe than sorry) - Parenthesized an incorrect expression in 6f6a6b3. - Inverted an if(foo); else bar; statement in 6f6a6b3 to get rid of the empty expression (for legibility). - Commented out some unnecessary lines as suggested by clang's static analyzer. Signed-off-by: Haru <haru@dotalux.com>
2014-04-11Fixed issue: 7694panikon1-4/+9
http://hercules.ws/board/tracker/issue-7694-guild-notice/ Follow up to 7a5f7db Follow up to 4147d9f
2014-04-10Fixed issue: 8140panikon1-0/+7
http://hercules.ws/board/tracker/issue-8140-toucan-npc-error-message/ That error usually happens when the player clicked on a NPC that has the view id of a mob, to activate this kind of npc it's needed to be in a 2,2 range from it. If the OnTouch area of a npc, coincides with the 2,2 range of another it's expected that the OnTouch event be put first in stack, because unit_walktoxy_timer is executed before any other function in this case. So it's best practice to put an 'end;' before OnTouch events in npcs that have view ids of mobs to avoid this kind of error. Also updated script_commands.txt to add this recomendation.
2014-04-02Added UTF-8 BOM detectionHaru1-0/+12
- This prevents things like the following from happening, by warning the user if an incompatible file is loaded: http://hercules.ws/board/topic/5126-mapname-selft-announcer/?p=33068 - We're erroring out instead of ignoring it, as explained in the source comment. - Special thanks to jaBote. Signed-off-by: Haru <haru@dotalux.com>
2014-03-14Added internal awareness of active script instancesshennetsind1-7/+9
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-05Ref redesign, part 2Haru1-3/+2
- Reorganized regs var/array DBMaps into a specific reg_db structure Signed-off-by: Haru <haru@dotalux.com>
2014-02-27Cleaned up messages.confHaru1-13/+12
- 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-03Fixed Bug 7333shennetsind1-6/+11
Zones are now able to merge during runtime. Special Thanks to Haru, kyeme. http://hercules.ws/board/tracker/issue-7333-map-zone-db/ Signed-off-by: shennetsind <ind@henn.et>
2014-01-23Compatibility fixes for NetBSD and SolarisHaru1-2/+2
- Fixed some warnings in NetBSD (5.x and 6.x) and Solaris (11) Signed-off-by: Haru <haru@dotalux.com>
2014-01-12Two Adjustmentsshennetsind1-1/+1
From some notes I took while working on the megapatch: - Dropped unused char_dat variable in chrif's auth_node - Fixed DB/BB/PB Logging, which could create false logs due to where it was placed. Signed-off-by: shennetsind <ind@henn.et>
2014-01-01Correctly removed persistent database entries for disabled NPC Market scriptsHaru1-7/+14
- When a Market script is disabled or removed, its database entries are now correctly cleared upon reloadscript and/or server restart. - Special thanks to ossi0110. Signed-off-by: Haru <haru@dotalux.com>
2013-12-24Follow up cf19b26d50ac96111e44c33a80afd1f1ea935cecshennetsind1-3/+9
Fixed selllist on zeny trader. Special Thanks to Thunderbolt, bleachftl and Frost Signed-off-by: shennetsind <ind@henn.et>
2013-12-24Christmas Patch - 2013-12-23 Supportshennetsind1-79/+487
Info: http://hercules.ws/board/topic/3614-christmas-patch-gifto/ Signed-off-by: shennetsind <ind@henn.et>
2013-12-17Fixed several compiler warningsHaru1-11/+10
- Warnings detected thanks to Xcode's compiler settings (more strict by default) and clang, warnings mostly but not only related to data sizes on 64 bit systems, that were silenced until now by very lax compiler settings. - This also decreases by a great deal the amount of warnings produced by MSVC in x64 mode (for the adventurous ones who tried that) - Also fixed (or silenced in case of false positives) the potential issues pointed out by the (awesome) clang static analyzer. - Patch co-produced with Ind, I'm merging and committing in his place! Signed-off-by: Haru <haru@dotalux.com>
2013-12-09Fixed some logic errorsshennetsind1-5/+8
Special Thanks to Haru Signed-off-by: shennetsind <ind@henn.et>
2013-12-06HPM: mapindex interfaceshennetsind1-4/+4
Signed-off-by: shennetsind <ind@henn.et>
2013-12-01Changed variables, labels, functions, commands to case sensitive.Haru1-7/+8
- Fixes bugreport:7810, thanks to Wend, kyeme, evilpuncker, jaBote, and various other people I may be forgetting to mention http://hercules.ws/board/tracker/issue-7810-disguise-script-command - Due to the nature of this change, I'm leaving the deprecation messages lingering around for a while more (as errors rather than warnings), to make sure they won't pass unnoticed, in case you haven't yet updated your custom scripts to comply with this. - Special thanks to Ind. Signed-off-by: Haru <haru@dotalux.com>
2013-12-01Changed builtin keywords in the script engine to case sensitive.Haru1-34/+31
- Any scripts using the wrong case, that were throwing deprecation warnings until now, will become invalid. - Related to bugreport:7810. Signed-off-by: Haru <haru@dotalux.com>
2013-11-13Follow up 8fda38dcdabbb9d252b0e11fb07b2ad37f9e659fshennetsind1-0/+2
Fixed compiler error on selected systems, thanks to haruna bringing it up! Signed-off-by: shennetsind <ind@henn.et>
2013-11-13HPM Custom Data Struct Makeover!shennetsind1-0/+11
- Modified how the core handles it, making it easier to add new points. - Modified how plugins call it, calls were made shorter, e.g. 'HPMi->getFromSession(session[fd],HPMi->pid,0)' => 'getFromSession(session[fd],0)' -- check src/common/HPMi.h #defines for all the options - Added support for npc_data (getFromNPCD and so on) as requested in http://hercules.ws/board/topic/2923-hpm-custom-struct-npcs/ Signed-off-by: shennetsind <ind@henn.et>
2013-11-10Added deprecation messages for incorrect capitalization in scriptsHaru1-0/+25
- These messages are temporary, only meant to help those with custom scripts to transition them to the correct case-sensitive syntax. If you ignore the deprecation messages you encounter, your scripts may continue to work just as they did until now, but this will no longer be true in the near future, and they may stop working at any time. If you ignore this, and your scripts break, you'll get to keep the pieces :) Signed-off-by: Haru <haru@dotalux.com>
2013-11-08Fixed Bug 7807shennetsind1-1/+1
NPC Duplicates with xs/ys weren't being properly loaded, Special Thanks to Haruna. Also fixes an issue with the instance empty timer. http://hercules.ws/board/tracker/issue-7807-endless-tower/ Signed-off-by: shennetsind <ind@henn.et>