43 Commits

Author SHA1 Message Date
ultramage
0072a0189e * Cleaned/clarified some #include relationships between headers
* 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://svn.code.sf.net/p/rathena/svn/trunk@11040 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-08-19 12:55:29 +00:00
ultramage
97e812dda1 * Fixed a deallocation mistake and some buffer overflows in npc_chat.c after 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://svn.code.sf.net/p/rathena/svn/trunk@11036 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-08-19 06:04:34 +00:00
ultramage
ffbf79b895 Reformatting, warning fixes, unsigned char removal
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10618 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-05-25 19:37:58 +00:00
FlavioJS
a91b77d781 * Recoded and renamed the trim function in strlib to normalize_name. (didn't behave like a standard trim function, see function comment for what it does)
* Added a proper trim function to strlib.

* Other minor cleanups.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10199 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-09 20:21:17 +00:00
FlavioJS
d6b4625e06 * Cleanups at npc source file adding/removing. (one variable has been removed)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10195 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-09 14:51:17 +00:00
ultramage
dec82b6120 - Fixed the server crashing on startup due to bad define
- Fixed the server crashing on a timer-queued disguise / undisguise (no sd check)
- re-added the item_group_list for consistency's sake, moved to itemdb.h (after some hacking to remove the ugly map.h dependency)
- Removed some overly verbose item group messages & code

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@10112 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-04-01 21:15:57 +00:00
skotlex
29cb0abe60 - Added player not attached crash prevention to countitem/countitem2
- Probably corrected delitem not deleting pet eggs at all.
- Possibly nullpo fix on npcskilleffect
- Corrected a warning when using #fakename
- Hopefully fixed hidenpc/disablenpc not working on Guild flag sprites.
- Mob skill state "anytarget" no longer triggers when the mob has an item-target (looting).


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9991 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-11 22:21:34 +00:00
skotlex
ddfc677c99 - @storage/@gstorage will no longer work if you have a trade or a storage opened already.
- Cleaned up a bit @gstorage
- Added a bunch of npc functions required to properly handle moving the NPC cells when an npc is moved from it's previous location.
- Added npc_setcells to handle setting down the NPC cells of ontouch npcs.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9990 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-11 20:02:42 +00:00
FlavioJS
2b42ec13cf - Added info on packet 0x86 (simple move packet). Not usable until a clear separation between entering sight/leaving sight/walking in sight is done.
- Propagating const char* from the script engine.
- ".gat" is appended to the map name before sending the changemapserver packet to the client.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9979 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-03-09 01:49:50 +00:00
ultramage
49096125fb Applied a consistent look to all header files (copyright, ifdefs)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9891 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-21 15:09:20 +00:00
ultramage
06074c6046 Fixed @loadnpc not updating the script_event[] array
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9850 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-02-11 21:44:37 +00:00
skotlex
c52340cb3a - Corrected the homunculus deletion functions so that the homunculus is deleted together with the character.
- Added npc_check_areanpc so that Wand of Hermod will correctly check for nearby warps.
- Emergency avoid now stacks with other speed boost statuses
- Item skills and skills that bring up a menu now are cleared on death.
- Minor cleanings


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9742 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-01-29 22:00:51 +00:00
FlavioJS
637ae9a4dc - Massive EOL normalization & 'svn:eol-style native' flag setting for all txt/conf/h/c files.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9410 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-12-05 13:23:07 +00:00
skotlex
0db4ee6126 - Added function npc_unload_duplicates(), it unloads all npcs that are a duplicate of the passed one. For use with @unloadnpc to prevent crashes when you unload the npc that has duplicates.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8939 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-10-05 14:37:06 +00:00
skotlex
4e9c745bdf - Corrected SC_INTRAVISION not starting.
- 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://svn.code.sf.net/p/rathena/svn/trunk@8639 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-09-05 19:49:38 +00:00
skotlex
8da82e0a0a - Changed npc_click declaration to receive an npc structure rather than a generic block-list one.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7925 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-07-27 16:28:00 +00:00
skotlex
3b13b070e1 - Made guild member exp an unsigned int.
- Modified npc_click to receive the bl that was clicked directly. Also cleaned it up so it isn't as easy to crash the server with invalid ids <.<
- Moved npc_checknear to npc_checknear2 and added npc_checknear. The near version receives a bl, checks it's validity, and returns a TBL_NPC object, near2 does the same but doesn't checks for type NPC. The first returns a pointer, the second returns 1 on fail, 0 success.
- Also uncommented various npc_checknear calls in the code, who's idea was to comment them out so you could exploit npcs from afar with custom packets?
- Added overflow checks for bonus settings mdef_rate/def_rate.
- Added missing update of INT after a buf. 
- Small cleanup of how SC_BLEEDING works.
- Fixed party_foreach_samemap invoking the function on the CASTER instead of on the party members.
- Added clif_parse_ActionRequest_sub to handle player commands, is used from npc_click or any other function that needs to "re-route" a player's request.
- Modified clif_parse_NpcClicked to handle the different situations with different bl-objects (attack on players/mobs, click on npcs or mobs with npc attached)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7103 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-12 14:55:35 +00:00
skotlex
b6a5dc4547 - Added config setting mob_npc_warp, when set to yes, enables mobs to be warped between maps when stepping on a npc-warp.
- Added monster_ai setting &64, when enabled makes a mob run to any nearby npc-warp when their current target has switched maps.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7039 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-06-07 20:15:23 +00:00
Lance
428c7271fd [Moved]:
fake_npc from map.h to npc.h

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6879 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-31 05:40:08 +00:00
skotlex
db83032024 - Added a npc-script-event cache to avoid looking up event-scripts every time they need to be executed. Events cached are all those defined in script_config.
- Since the cache holds direct pointers to the npcs/events, do NOT unload the related NPCs or you'll get dangling pointers. However, @reloadscript will work fine.
- Set the etc_log to on to see a summary of npcs/events loaded for script execution on startup.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6494 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-05 23:22:16 +00:00
skotlex
63eec80717 - Added support for n to specify minutes to @charban.
- Fixed a logic typo on the way dummy_npc_id was defined.
- Added state.trading to specify when a trading has started. Now you should be able to walk around until the trade is either rejected or started.
- Armor defense is no longer reduced by the amount of characters targetting you.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6192 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-20 16:04:47 +00:00
Lance
c0b1eb7787 * Shinomori's method (kinda) of remote script execution with interaction.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6151 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-18 11:40:36 +00:00
skotlex
47adb68d91 - Fixed mysql ping setting being in minutes rather than hours.
- Removed npc_event_sub from npc.h and moved it to npc.c
- Cleaned up #warp to prevent spitting non-walkable tile warnings.
- Changed the meaning of msg_athena 2, it is now "invalid target cell, randomizing".


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6114 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-16 15:33:59 +00:00
Lance
88cf55de08 * Sending fake npc for inputs and menus for NPC without map coordinates.
* Fixed npc.h compiler warnings.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6112 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-16 14:57:54 +00:00
Lance
af5bdf87c3 * Experimental npc_event_doall_sub with queue and npc_id allocation when needed.
* Added warnings to npc_scriptcont for easier debugging.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6106 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-16 12:10:53 +00:00
skotlex
07c8dd3902 - Fixed @movenpc
- Cleaned up and improved the lootsearch routine to pick nearest item.
- Added INVISIBLE_CLASS to the list of classes supported by npc_get_viewdata
- Fixed trying to set the view_data for npcs who are located on a map, but have no visual data.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5959 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-08 17:56:31 +00:00
skotlex
e9c44b50c8 - Added structure view_data to handle sprite information for all characters (equipment, weapons, hair, dyes, etc). Unified a bunch of clif functions now that you only need to handle the view_data (so instead of clif_spawn[pc/mob/npc/pet] you just have clif_spawn)
- Fixed the clif_change_class packet (it should check for non players classes, not a class above MAX_PC_CLASS), it fixes morphing enemies.
- Rewrote the way cloth dye packets are resent to optimize bandwidth usage.
- Fixed the npc_item_flag thing (enable_items/disable_items script command)
- Rewrote the disguise implementation to be bandwidth friendly.
- Modified the hide options to change your class to INVISIBLE_CLASS, since such classes don't even get their view packets sent around.
- Rewrote several clif functions to adapt to the new view_data class;
- Added class 139 to npcdb_checkid which was required by some npcs in the swordman quest? o.O


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5833 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-01 02:23:56 +00:00
skotlex
7a8371273a - Merged the unit_data structure from jA for handling unit-related data (attack times, walking, auto-attack timers, skill related data)
- Modified unit_skillcastcancel to receive flag&2, which stands for "cancel casting only if current skill is cancellable"
- Battle config options changed from yes/no to BL_TYPE settings: skillrange_by_distance, skill_noreiteration, skill_nofootset, gvg_traps_target_all, skill_log, attack_direction_change, auto_counter_type
- Clif.c will disconnect sessions that send an unknown command packet above 0x30000 instead of just ignoring it.
- Cleaned up/rewrite of the pet ai, same for pet_calc_pos
- Implemented use of mob variable attacked_players as it is used on jA
- Cleaned up error reporting during mob-skill loading to be less spamy with non-loaded mobs.
- Corrected water_height reading. I forgot to give credits to LittleWolf for providing the water-reading function :X


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5707 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-22 23:58:16 +00:00
Lance
46bdee18f9 * BL_PC and BL_MOB control script commands (experimental).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5627 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-16 15:39:49 +00:00
skotlex
28c32a9532 - Improved the NPC timer system to enable to have multiple timers going on at a time with different players attached to each. Now npc event timers are of two types: attached or global. The global timers don't have a player attached and can be started/halted by anyone. The character timers have a player attached, and they can only be stopped by a script that has the same player attached.
- Now player attached scripts will auto-abort when the atteched player quits the map server.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5167 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-02-02 21:26:53 +00:00
Valaris
2178a86317 AS OF SVN REV. 5901, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.  EVERYTHING ELSE
GOES INTO TRUNK AND WILL BE MERGED INTO STABLE BY VALARIS AND WIZPUTER. -- VALARIS


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5094 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-01-29 16:10:48 +00:00
Valaris
fd99753f8e Clearing trunk.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5091 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-01-29 16:00:45 +00:00
celest
171609d4a2 * Readded @disablenpc
* Fixed @reloadscript not removing old NPC's and monsters first
* Some changes in mob and NPC unloading
* Changed the original @disablenpc to @hidenpc

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1429 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-04-07 15:14:35 +00:00
celest
05e31aee3c * Fixed a bug with InitTimer/StopTimer
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1358 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-03-31 17:21:24 +00:00
celest
37851efb84 * Added 'map_charid2id'
* Changed monster damage logging to save char ID's
* Implemented 'event_script_type'
* Set Emsolute Develop as a learnable skill
* Updated 'require_glory_guild'
* Allow monsters to cast skills near themselves even when monster_nofootset is set to 'yes'
* Print number of online users in online.txt/.html even if there's only 1 user

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1282 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-03-24 15:31:28 +00:00
celest
4d4414fbbc * Added display script filename when a script error is found while parsing
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1244 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-03-17 10:46:37 +00:00
Lupus
9f0d5a05a8 added new script commands
from jA

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1182 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-02-26 07:40:41 +00:00
amber
882e26643d Cleanup compiler warnings
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1159 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-02-22 05:42:31 +00:00
amber
0b091d02ee PCRE updates
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1157 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-02-22 05:01:20 +00:00
celest
c50add18b1 Added Shinomori's changes to npc event timers
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@953 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-01-11 14:52:10 +00:00
mc_cameri
b0e36adc2b git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@708 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-12-21 20:52:27 +00:00
amber
d479e29aee Fixed some file types
git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@172 54d463be-8e91-2dee-dedb-b68131a5f0ec
2004-11-14 16:18:26 +00:00
(no author)
706e785091 git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@2 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-11-04 23:25:09 +00:00