summaryrefslogtreecommitdiff
path: root/src/map/npc.c
AgeCommit message (Collapse)AuthorFilesLines
2007-01-03- Fixed pc_calc_skilltree ignoring prerequisites / joblvl requirements.ultramage1-1/+1
- Re-applied change r9593 that got accidentally reverted by r9595. - Added the official behavior of monsters regaining full hp when they morph. - Added support for text/comments at the end of monster spawn lines (<tab> required) - Silenced the debug message in socket.c that's been freaking people out. - Modified the useless error message in atcommand_effect. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9608 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-31- Added more info when npc_scriptcont tries to continue a different script.FlavioJS1-2/+7
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9601 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-23- Moved "#include <limits.h>" to cbasetypes.h to ensure it's included before ↵FlavioJS1-1/+1
checking if UINT_MAX has been defined. - Minor changes in pc_readdb related to max_level being unsigned. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9561 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-22- Change strncpy to memcpy when parsing switches in the script engine since ↵FlavioJS1-13/+13
it's guaranteed to be a word of that size (skip_word). - Made scriptlabel_db duplicate the key. When str_buf is reallocated, the keys in scriptlabel_db could become invalid, causing a crash in npc_convertlabel_db. ( removed the readded >=0x81 equivalent ) - Now npc_convertlabel_db clears scriptlabel_db after using it. - parse_script has an extra parameter options. At the moment it only indicates if scriptlabel_db should be used or not. - Fixed "UINT_MAX undeclared" on systems that don't declare it in limits.h git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9557 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-21- Moved md5calc to commonFlavioJS1-1/+1
- Answered Skotlex's question and fixed "warning: comparison is always false due to limited range of data type" by restricting script words to ASCII characters only. - Applied "svn:eol-style native" to makefiles and project files git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9544 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-20- Added an answer to a FlavioJS's comment, and added a question myself ↵skotlex1-1/+1
(npc.c/script.c respectively) - Fixed add_str in script.h not being updated to const char as well. But why do we really need such a script-engine low-level function exposed to the rest of files? :/ - Moved the strip unequip code to before deleting the timer, this fixes trying to "re-strip" someone causing the skill to fail and on top of that terminate their current strip effect. - Added an ugly work around to the issue of skills with additional effect causing opt1 status when they have just terminated them (in short, you shouldn't be able to hit someone with, say, sleep, and then have the same skill cause them stun, since both are opt1 values). - Reading of TK Mission variables will now happen if you are a TK-class character regardless of whether you know TK_MISSION or not. Should fix being able to reset skills to reset your Mission data. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9537 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-20- Changed the script source from unsigned char* to const char*.FlavioJS1-4/+4
- Updated plugins Makefile. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9532 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-15- There will be now warnings printed when a shop sells an item which's buy ↵skotlex1-0/+5
price is 20z, since those usually are "rare" items with no buyying price set. Note that this reports one fake, and that is the selling of a certain shuriken that indeed costs 20z. - Most likely fixed client crash when xmas/wedding status runs out. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9505 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-12- Minor changes to ers.FlavioJS1-1/+1
- Removed unused/hardly used cbasetypes typedefs. - Updated txt-converter's makefile to include utils.o git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9473 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-12- Updated npc_event_dequeue to free up your current npc information, and not ↵skotlex1-2/+15
just the npc_id git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9472 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-11- Spirit of Sin and Enchant Deadly Poison now stack.skotlex1-1/+1
- Fixed skill damage card bonuses not working on magic skills. - Moved the setting of sd->npc_id = 0 in npc_dequeue to the beginning, since this function is called when a script is cancelled (TODO: but when this happens, shouldn't the previously ongoing script also be free'd?) - Made homunc's speed be recalculated when you respawn it from rest state. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9453 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-05- Massive EOL normalization & 'svn:eol-style native' flag setting for all ↵FlavioJS1-3084/+3084
txt/conf/h/c files. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9410 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-02- Fixed passive mobs becoming increasingly unlikely to retaliate to attacks ↵skotlex1-4/+0
after they got inflicted by a disabling status change. - Changed the "is_boss" define to check for mode MD_BOSS instead of giving mvp exp. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9384 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-01- Fixed txt-converter compilation. skotlex1-4/+1
- Added my_global.h include to login converter - Removed sd->char_id since we can use sd->status.char_id instead. - Small speedup in STRECOVERY, and made it not unlock a mob's target. - Fixed GS_GROUNDDRIFT consuming ammo when it's time expires (so it was consuming 2 grenades instead of one). Also added a "explosion effect" when their time runs out. - gvg_dungeon mapflag won't set pvp related mapflags anymore, pc_dead will force pvp ranking gain/loss on gvg_dungeon maps now. - Now when coming out of hiding land-effects will trigger on the character. - Made the pc_setpos message when being placed on an unwalkable tile tell you which player triggered it. - Fixed land effects not taking effect inmediately on map-load when the invincible timer is disabled. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9374 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-29- Fixed the new npc parsing code not accounting for windows-style line ↵skotlex1-1/+1
terminators, which as a side effect messed up mapflag parsing if the file had windows-style terminators, which coincidentally was the case for the nopvp file, which unfortunately meant that all towns became pvp! git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9363 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-29- Now gvg_dungeon mapflag will activate the other mapflags which are ↵skotlex1-1/+4
required: pvp, pvp_nocalcrank and pvp_noparty/pvp_noguild (they are forced to off if gvg_dungeon is on and viceversa) - Cleaned the pvp ranking code so that it takes effect even if pvp_nocalcrank is active WHEN the map is a gvg_dungeon one. - Cleaned up a bit the pvp ranking timer code. - Now homuncs and their masters are the only ones who can use support skills on the homunc. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9360 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-28- Increased line buffer size when parsing scripts. Helps when trying to ↵skotlex1-20/+21
define pretty big shops. - Applied The Ultra Mage's patch to use strict npc header formatting parsing. Updated the relevant stock scripts/mapflags that didn't conform to the standard. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9352 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-14- Characters with Karma may fight amongst them anywhere.skotlex1-0/+6
- Added mapflags partylock and guildlock, which lock the state of the parties/guilds on said maps. partylock blocks user party requests to create/invite/leave/kick, while guildlock blocks user guild requests to create/invite/leave/expel/make alliance/make opposition/delete alliance/delete opposition/break git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9216 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-08- Moved the duel functions to pc.c since they are so totally out of place in ↵skotlex1-1/+1
atcommand.c - Fixed Spider Web not ending when hit by a fireelemental attack. - Cast-time reductions from status changes will not be executed until right before casting, to prevent status changes from ending when attempting to cast and the attempt fails (invalid cells, not enough sp, wrong target, etc, etc) - Added check to prevent Wand of Hermod from seeking for a partner to encore, since the partner is supposed to be the warp. - Moved the duel auto-reject on logout from map_quit to unit_free - Corrected the mob spawn reading code so that the event-name can be up to 50 characters long (which is the actual event length) and so that it can read spaces within them, it will also strip the leading/trailing quotes if you use them so that the event is actually found on mob-death (so you can do stuff like "My NPC::OnDead" as a valid event). - Moved the homunc inherit speed from the master from status_calc_pc to LoadEndAck, since the hom's speed matches that of the master each time the master changes maps. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9173 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-11-07- Fixed map_foreachiddb and map_foreachpc so they don't encapsulate the ↵skotlex1-4/+2
variable arguments into a double va_arg list. Thanks to the Ultra Mage for the tip. - Cleaned up the clif_hate/mob_info functions with the correct fields/usage as explained by Rayce. - Implemented clif_feel_hate_reset packet to properly display the Angel of the Sun/Moon/Stars, thanks again to Rayce for the relevant information. - LP will again block all land-stuff from being placed down on top of it for the exception of Song/Dance/Encores. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9162 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-30Fixed a little bug in event enqueue codetoms1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9102 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-27modified src/map/npc.cLance1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9085 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-27* Experimental tweak to npc_parse_function - Overwrite existing functions.Lance1-4/+11
modified Changelog-Trunk.txt modified src/map/npc.c git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9084 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-25- Cleaned up some more the event dequeue code, it will no longer clear out ↵skotlex1-36/+18
the npc_id if there's no events waiting to be executed (why does it clears the npc_id anyway?) - Because of possible conflicts with this change and the on-login script, now the on-login script is executed when the player has finished loading into their start-up map rather than as soon as receiving the registry variables from the char-server. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9073 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-25- Some cleaning of the pc_eventtimer and pc enqueue code, it should fix some ↵skotlex1-2/+2
memory leaks when the event counter does not matches with the actual number of queued timers during logout. - Minor typos, corrections, etc. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9072 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-19- Cleaned up the log.c file.skotlex1-2/+2
- Splitted log_pick into log_pick_pc and log_pick_mob to avoid ugly type-casting. - Fixed log_chat not recording anything if the server is compiled in SQL mode and sql_logs is turned off (it should then record to a plain txt file) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9017 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-05- Added function npc_unload_duplicates(), it unloads all npcs that are a ↵skotlex1-0/+21
duplicate of the passed one. For use with @unloadnpc to prevent crashes when you unload the npc that has duplicates. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8939 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-02- Renamed nopenalty mapflag to noexppenalty. Using nopenalty will turn ↵skotlex1-1/+5
on/off both noexppenalty and nozenypenalty now. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8915 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-18- Reloading scripts will no longer eliminate mobs with no respawn data. ↵skotlex1-13/+7
Watch out for duplicating Treasure Boxes? - Some cleaning of npc_final - Made speed_add_rate a linearly stacking increase. - Corrected a possible overflow when using show_mob_info to display the mob's up as a percent. - Corrected the documentation for checkoption/checkoption1/checkoption2 git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8792 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-13- Modified the nocommand mapflag so you can specify the GM range that is ↵skotlex1-1/+7
blocked from using commands (eg: "prontera.gat mapflag nocommand 40" disables commands to characters in the GM range 0~39) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8733 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-09- Fixed a npc-timer memory leak on npc_unload ("[Warning]: ers_obj_destroy: ↵skotlex1-1/+6
X entries missing, continuing destruction. Manager for entries of size 16.") git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8686 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-05- Corrected SC_INTRAVISION not starting.skotlex1-1/+0
- Small cleanups (line terminators, indenting) - Fixed crash when attempting to read a Label as a string on a script (thanks to End of Exam) - Fixed possible crash when changing a chat-room's owner (thanks to End of Exam) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8639 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-01The duplicate npc report will now print the related file nametoms1-1/+1
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8582 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-28- The memory leak reports will now print out in the logs also the revision ↵skotlex1-0/+21
they belong to. - Cleaned up the scriptable npc-shop code, it should be crash-proof now. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8525 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-27* Optional macro MEMSET_TURBO for faster low-level memory initializations.Lance1-9/+9
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8499 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-18- Changed unit_free so that it receives which cleartype should be used when ↵skotlex1-1/+1
the character is still on a map. Used this on status_damage so that mobs that do not respawn when killed will properly display the death animation. - Should have fixed the signed/unsigned comparison warnings in the main regen function. - Fixed Energy Coat consuming 10x less SP per hit than it should. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8339 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-07- Cleaned some of mpeg's updated work.skotlex1-4/+5
- Fixed HT_BLITZBEAT hitting neutral characters when it auto-triggers. - Simplified the Tatami Gaeshi code. - Fixed AS_SPLASHER doing full damage on everyone except targetted char instead of the other way around. - Fixed KAENSIN clearing out SUITON cells and viceversa. - The spawn area is now seen as range rather than absolute for mob spawn lines. This means that x,y,10,10 will spawn the mob on a 21x21 grid around the given x,y point. - Some clean up of the mob-spawn code. Now you can specify negative areas, so that a spawn location such as 100,150,0,-1 will spawn a mob always on x=100, but any Y value of the current map. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8165 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-07- Adjusted Battle_check_target so that alchemist summoned mobs are targetted ↵skotlex1-0/+5
by everyone as long as 1. The top-level master is a player and 2. the actual attacker is not a mob-type. - Added config force_random_spawn which overrides the spawn-files defined coordinates to make all mobs always spawn randomly on the map. - SC_SPEEDUP0 is no longer dispellable by SA_DISPEL git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8159 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-04- Removed settings enemy_critical_rate, homun_critical_rate. Added settings ↵skotlex1-4/+3
enable_critical (defaults to specify only players), mob_critical_rate and critical_rate. The last applies to all non-mobs and non-players (battle/battle.conf) - Removed settings mob_npc_warp, mob_warpportal. Replaced with setting mob_warp which specifies which types of warp can a mob step into (battle/monster.conf) - Updated status_calc_misc so that it also handles the BL_PC case, removed redundant info from status_calc_pc, and moving the SNovice Max Hp bonus to status_base_pc_maxhp git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8135 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-08-04- Enabled Mastery damage on Soul Breaker again, moved adv katar mastery out ↵skotlex1-2/+2
of the mastery function so that it may apply to all skills except Soul Breaker. - Changed name of the setting log_pick to log_filter since that's what it does now. - Modified enable_logs so that instead of a 0/1 setting, you can specify which kind of events to log (so you can use a combination), see log_athena for the bitmask configuration. - Cleaned a bit the contents of log_athena.conf git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8129 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-28- Fixed a memory leak when there exists more than one user function with the ↵skotlex1-5/+11
same name, added the appropiate warning when this happens. - Added reporting source file when an npc shops item's price is exploitable. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7935 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-28- The picklog will now record negative values for items sold to npcs.skotlex1-1/+1
- Added inmediate position and hp-bar update when a character joins a party. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7934 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-27- Synced the script.c file with as much data as possible from jA's:skotlex1-18/+15
- A lot of functions were moved around, a bunch of indentation and space-usage changes were done to make it easier to diff against their files. - Miscellanous addition and corrections were applied. - Largest one is likely a restructuring of run_script_main, which hopes to solve the memory leaks. - script engine now uses the setjmp functions to restore memory state when there's an error parsing scripts, which means that script errors won't cause the map-server to inmediately bail out anymore. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7926 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-27- Changed npc_click declaration to receive an npc structure rather than a ↵skotlex1-16/+8
generic block-list one. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7925 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-25- Added a check when buying from npcs to allow buying of item_avail items.skotlex1-1/+2
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7883 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-19- When enabling/disabling hiding/unhiding an npc, if the npc is a warp, it ↵skotlex1-8/+13
will use clearchar and spawn packets instead of changeoption. Thanks to Toms for the fix. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7746 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-12- Fixed inverted check which was preventing you from buying more than 1 from ↵skotlex1-1/+1
any stackable item.... git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7627 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-11- Coded @reset.skotlex1-1/+1
- Reenabled @changesex - Added function pet_create_egg which handles creating pet eggs correctly (when passed item id is indeed a valid petegg). Applied this on @createitem and getitem. - Cleaned up code of @item - Added define UNKNOWN_ITEM_ID (512 = apple) - Added IT_* enumation item_Types to identify said data from items. - Cleaned up the itemdb_isequip functions. itemdb_isequip will now return if the item is equipable by players, itemdb_isstackable returns if the item can be stacked, and itemdb_isidentified returns if the item should drop identified. - Added defines CARD0_PET/CARD0_FORGE/CARD0_CREATED to identify if a given item has "invalid" cards, added define function itemdb_isspecial to simplify this check. - Removed itemdb.c considering item ids above 20000 as invalid. - Cleaned up script commands getitem and card-counting related ones. - Cleaned up a bit more pc_isequip git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7613 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-30- Added mapflag "nochat" to prevent chatting rooms from being created.skotlex1-0/+3
- Corrected some of the sleep checks when the char id does not matches with the char-id expected by the script engine. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7423 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-29* [Fixed] Lance1-7/+5
- Scripting system screwing up script position after mixing timers with menus. - NPC attached AI mobs display as alive when dead. - View data not updating after buildin_unitdeadsit. [Improved] - NPCE_LOADMAP to execute after all (area) objects are sent to the player. - Simplified scripting system. sd will now use pointer to the script state itself. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@7388 54d463be-8e91-2dee-dedb-b68131a5f0ec