summaryrefslogtreecommitdiff
path: root/src/map/npc.c
AgeCommit message (Collapse)AuthorFilesLines
2008-02-14- Added some new config settings: homunculus_autoloot, idle_no_autoloot, ↵zephyrus1-0/+2
max_guild_alliance. - Added a code to activate a Kill Steal protection and the required mapflags. * (I will explain this later on forums). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12203 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-07- Fixed Freezing Trap doing no damage (changed type from misc to weapon)skotlex1-6/+7
- Changed suiton's element to water (apparently fixes not being able to use water-based skills on it) - Fixed Landmine doing no damage (decreased trigger range to 0 to match its splash range) - Fixed the disguise commands using the wrong variable when attempting to disguise as an npc. - Fixed a compilation warning on CELL_CHKNODAMAGE (which is a totally bad-ripoff of basilica cells anyway) - Corrected and optimized npc_remove_map's npc array cleanup (@reloadscripts no longer report 'too many npcs per map and related dangling pointer crashes are fixed) - Removed suspicious, yet totally unused npc_data variable 'n' - HP loss item scripts can no longer kill you. - Corrected the item-drop-rate check to avoid duplicate entries in @whodrops after a @reloadmobdb - Cleaned up and optimized map_addnpc (there are never any gaps in the npc array so npc_num always points to the last valid entry) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12180 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-14Applied a temp patch to make some npc-executed atcommands work again ↵ultramage1-22/+0
(bugreport:790). Added support for right-click-gm-menu kicking NPC objects. Removed redundant function npc_checknear2(). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12073 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-12* Modified npc_parsesrcfile to read the file as binary and let sv_parse ↵FlavioJS1-2/+2
handle LF/CRLF line endings. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12059 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-06Expanded the poor "npc_touch_areanpc : some bug" with info about which cell ↵ultramage1-6/+8
exactly caused the problem. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12024 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-04Modified the map_setcell() code to to use a boolean flag instead of needing ↵ultramage1-47/+2
SET_ / CLR_ pairs of defines (topic:174323). Also removed script object 'setcell', added script function 'setcell'. - Now you can manipulate cell information without needing @loadnpc - You can also manipulate the terrain ('gat') type itself, using the new cell_walkable, cell_shootable and cell_water constants (currently the implementation uses bit flags too, so to get the type you want, you need to adjust the flags one by one) - This breaks current scripts, so please adjust places that use setcell (also be sure to _only_ use predefined constants, not direct numbers) - Details can be found in the script reference. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12009 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-03Fixed npc unloading not clearing NPC touch cells (bugreport:595).ultramage1-14/+2
Added a comment to npc_unsetcells(), pointing out that it's most likely not scanning for cells correctly. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12004 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-03Map cell mechanism rewriteultramage1-3/+3
- defined a data structure for map cells (replaces 3 various cell arrays) - both terrain (gat) and dynamic (cell) information is now stored as C-style bit flags instead of #defines and bitmasks - added map_gat2cell() and map_cell2gat() for terrain type conversions - changing terrain information via 'setcell' is temporarily disabled - mapserver startup now takes longer, as it needs to adapt mapcache data to internal representation, cell by cell (new mapcache format anyone?) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12003 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-23- Fixed warning about unused variableskotlex1-1/+1
- Made the kaahi heal timer function uncrashable. - Fixed pc move item to cart function checking against the wrong max index. - Fixed initialization of sd issue in map_addblock - Removed redundant reinitialization when parsing item pickup. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11968 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-22- Corrected mob spawn utilization of the delay1/delay2 values (one is ↵skotlex1-5/+0
respawn delay base, the second is random variance added on top of it). Cleaned up related code. - Changed abit map_add_block to prevent adding a player object which is invalid (not authed, waiting to be disconnected) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11964 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-18* Updated respawn time interpretation according to latest kRO updatePlaytester1-4/+5
- this first time is the "min respawn time" - the second time is the "variance" which is added to the "min respawn time" git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11946 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-12* Some preparations for the guild script updateultramage1-54/+51
- cleaned up npc event execution code - cleaned up guild data loading/saving code; to be improved later - removed dummy 'account name' expulsion list management code - removed columns 'rsv1' and 'rsv2' from guild member data - removed columns 'rsv1' 'rsv2' 'rsv3' and 'acc' from guild expulsion data - added upgrade_svn11895.sql for SQL git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11895 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-09* Modified npc_parsesrcfile to parse the line as a 'tab-separated values' ↵FlavioJS1-15/+47
string and added data truncation warnings. - enforces a stricter adherence to the format (no multiple tabs) - avoids sscanf matching spaces, new lines and carriage returns when '\t' is used in the format string git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11879 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-06* Removed the attempts to recover from invalid syntax in npc_parsesrcfile ↵FlavioJS1-12/+4
since they can produce incorrect results (spaces in sscanf can match \n's and company). * 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11860 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-06- The default event script behaviour is to trigger on labels rather than ↵skotlex1-37/+15
NPCs now. - 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11859 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-28- Corrected skill_check_condition to not delete items right away for certain ↵skotlex1-2/+1
skills that do the deletion themselves. Fixes several skills consuming items twice. - Dispel's success rate is no longer affected by MDEF - You are no longer blocked from being warped when standing in a warp while in a duel. - Duels are now automatically ended when you warp out of the map you are in. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11836 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-27* Fixed fake_nd not being exported correctly and being unloaded when ↵FlavioJS1-1/+4
reloading scripts. (probably fixes bugreport:444) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11816 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-22* Renamed fakenpcname to setnpcdisplay, fixed and extended it. FlavioJS1-9/+26
- See doc/script_commands.txt for information on how to use it git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11779 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-21- Moved subtype from struct block_list to struct npc_data.skotlex1-19/+19
- Fixed some compilation warnings. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11772 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-21- Optimized a bit the map set cell imperative so it only fails when the ↵skotlex1-1/+2
target cells are of native type wall/ground, so that it still allows setting/unsetting temporarily unwalkable types by using icewall types of cell. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11770 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-19- removed 'skill_fail' message when a ground skill fails as that caues ↵skotlex1-1/+1
double 'skill failed' messages in several instances. - Corrected shop freeing using free instead of aFree ,causing memory leak reports. - Corrected the sc def settings modifying tick_def in regards to sc_def instead of tick_def git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11762 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-18- Implemented a small change that was long overdue: Displaying the ↵skotlex1-1/+2
char-select screen now uses a single SQL query instead of up to 9. - Fixed a bug in the update to prevent setting cell types on unwalkable cells. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11757 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-18- setting npc cells will no longer work on non-walkable tiles (since you ↵skotlex1-0/+2
could do this to override cell types and make unwalkable cells walkable again, for example). - Small fix in the char-server accept code. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11755 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-18* Replaced jA's way of allocating npc shop data with a simple dynamic array ↵ultramage1-13/+21
that gets allocated during loading and freed on unload - 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11753 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-18Fixed npc_debug_warps() not identifying x:0,y:0 as valid (random) coordinatesultramage1-0/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11752 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-17Removed battle_config.error_log as console_silent already handles thisultramage1-23/+12
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11751 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-17Made OnTouch zone dimensions be stored as radius instead of diameter.ultramage1-51/+50
Cleaned up some overly complicated area calculations. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11750 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-12* Fixed @addwarp crashing the map server (bugreport:390).FlavioJS1-1/+42
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11719 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-11- Cleaned up pc_calc_weapontypeskotlex1-3/+1
- made on-touch areas work with walking npcs. Note that the implementation is performance may not be optimal, but I am not sure if it can be done in any better way. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11713 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-11-08* Changed EXIT_SUCCESS back to 0 in console.c to avoid an unnecessary include.FlavioJS1-6/+6
* 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11698 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-28* Minor adjustment to take into account the end of line.FlavioJS1-7/+11
* Fixed the line count in the new error message of npc_parse_function. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11606 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-28* Restricted more the parsing of npc code. (fixes bugreport:317)FlavioJS1-7/+24
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11603 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-27Fixed a typo in r11505 messing up the 'npcmove' command (only 'x' coordinate ↵ultramage1-1/+1
was being set correctly) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11588 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-24* Corrected a fex misshaps from r11571:FlavioJS1-6/+2
- disabling the memory manager - using the wrong length for the title and body in mail_savemessage * Removed the quick-fix in the npc duplicate check and the impossible condition that is generating the warning. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11573 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-24- added defines JOB_MAX_BASIC and JOB_MAX to mmo.h so the code can know ↵skotlex1-0/+5
which are the max valid classes. - @/#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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11572 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-24* Cleaned up some messy guild code (more to come)ultramage1-8/+5
* Cleaned up the mail code, no more pointless dynamic allocation * Added upgrade_svn11548.sql to convert the mail table to new format * Updated vs7 and vs6 project files * Increased the max. send buffer size to 5M since 1M is not enough * Please complain if something stops working ^^; git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11571 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18Uncommented the ShowWarning and ShowDebug from rev. 11508, and cleaned up ↵L0ne_W0lf1-7/+3
the warnings it produced. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11516 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18Fixed numerous /W4 warnings (and created more :)ultramage1-2/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11514 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18* Fixed the incorrect map names on the debug messages (mapid->mapindex ↵FlavioJS1-5/+5
mishap from r11508). * Fixed the incorrect reporting of npc names being too long when the the length is 24 (from r11508). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11512 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18* Commented out ShowWarning and ShowDebug messages added in revision 11508. ↵L0ne_W0lf1-3/+7
Aside from the ShowDebug being faulty, they are both fare too annoying for public use for the time being. If/when I get the NPC names fixed, we can add it back. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11511 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18* Clarified how npc names work in script_commands.txt.FlavioJS1-64/+92
* Fixed a forgotten "return 0;" that stopped the parsing of the file after the first "script" of the file is parsed sucessfully (caused by r11502). * Applied the same parsing and restrictions of npc names to warps, duplicates and shops (other code expects unique names for them too). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11508 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-18Some code cleaning...ultramage1-15/+12
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11505 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-17* Reworked the parsing at npc.c.FlavioJS1-466/+426
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11502 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-17Using predefined constants as parameters to the exit() function.ultramage1-5/+5
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11501 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-10-06 * the mapserver won't exit when no mapcache is found, with use_grf: yesultramage1-291/+35
* 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11374 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-20* Merged the tmpsql branch:FlavioJS1-0/+1
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11245 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-15Getting some (mostly atcommand) code cleaning out of the way...ultramage1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11222 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-09-03- Merged @whereis from my server (displays normal spawn maps for given ↵skotlex1-1/+30
mobs). This command should be working correctly considering I've been using it since July. I was meant to merge it as soon as I got my hard-drive back, but I kinda forgot @_@ - bonus3 autospell (and autospell when hit) will change the target to self when the skill to be casted is inf&4 (self skill). - Corrected script homevolution not making the homunculus /swt if it is invoked when not loyal. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11110 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-08-19* Cleaned/clarified some #include relationships between headersultramage1-3/+2
* Changed clif_sitting() to use 'bl' instead of 'sd' (for non-player objects) * Removed way messed-up script function 'unitdeadsit' * Tagged 'FIXME' lines written by myself git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11040 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-08-19* Fixed a deallocation mistake and some buffer overflows in npc_chat.c after ↵ultramage1-3/+4
doing rtfm@pcre.txt (all caused by incorrect usage of pcre api) * Removed underscores in npc_chat.c's variable names (easier to read) * Reindented the whole thing (used spaces half of the time ._.) * Moved npc pcre-data deallocation from npc_remove_map to npc_unload git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11036 54d463be-8e91-2dee-dedb-b68131a5f0ec