548 Commits

Author SHA1 Message Date
zephyrus
94fbb46238 - Battleground mapflags:
* 1 = no scoreboard (as Tierra Valley is).
* 2 = scoreboard enable (as Flavius and KvM requires).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13594 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-03-17 22:39:22 +00:00
zephyrus
e9153a3c17 - Fixed item Nemesis.
- Fixed Tarot Card being used on Emperium.
- First Part of BattleGround Implementation (please wait).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13550 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-02-26 21:27:12 +00:00
FlavioJS
ad963e52e6 * Fixed impropper filling of w4 in npc_parsesrcfile when there are less than 4 fields. (bugreport:1063)
* Simplified atcommand_spiritball. (deprecated msg_txt 204 and 205)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13538 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-02-19 16:57:01 +00:00
FlavioJS
1a2d2c0d4e * Changed npc_get_new_npc_id to ensure that it never returns invalid/used ids.
- npc_get_new_npc_id is used to generate ids for npcs/mobs/homunculus/mercenaries/pets. If the server runs for long enough (years to months or less, depending on settings), the auxiliary variable npc_id will eventually overflow and go negative, then go through the range of object ids, then through the range of account ids. This can lead to all sorts of random crashes and memory leaks.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13481 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-23 17:49:44 +00:00
ultramage
47fad03c47 Added a missing break; in pc_setstat, messing up LUK increasing (see r13460) (bugreport:2697).
Corrected clif_bladestop(), void function returning a value (see r13471) (bugreport:2698).
Fixed npcs with touch area not stopping walk timers (see r6516) (bugreport:2700).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13480 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-23 11:53:52 +00:00
ultramage
95d25086a6 Mobs with nonzero spawn time can now be cached as well, saving some more cpu/memory (bugreport:1197).
Fixed dynamic mobs being unloaded without stopping their respawn timer.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13445 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-13 10:38:54 +00:00
FlavioJS
cb8ef12df8 * Changes to the script engine:
- script ends when run_func can't find the buildin command. (script engine error)
- run_script_main doesn't change RERUNLINE to RUN automatically, the buildin command that set it is responsible for that now. The buildin command can use this to detect a rerun.
- created functions to alloc/free a script_state.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13426 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-12-30 03:27:46 +00:00
FlavioJS
d55642d64c * Extended how duplicates work: (based on Orcao's work in bugreport:2361) [FlavioJS]
- you can duplicate warps/shops/cashshops/npcs (before only npcs could be duplicated)
- warp duplicates inherit the target location
- shop/cashshop duplicates inherit the item list
- npc duplicates inherit the script code (backward compatible behaviour)
- updated script_commands.txt with the information

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13407 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-12-20 22:57:29 +00:00
FlavioJS
7ae74b588b * Hunted down improper uses of va_list variables.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13383 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-11-22 23:54:34 +00:00
FlavioJS
72542d65cc * Hunted down the simpler 64bit pointer truncations.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13380 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-11-22 15:44:17 +00:00
zephyrus
c562d05efc - More code for mercenaries and starting work on restrictions.
* Heal and Sanctuary skills have their effectiveness on mercenaries reduced by 50%.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13183 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-09-01 22:19:18 +00:00
zephyrus
6b6ef43c4b - Removed my barricade implementation. Not required in WoE SE.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13097 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-20 19:40:53 +00:00
ultramage
249d1350e5 Fixed a bug in the npc shop code, where requesting an item that wasn't on the list caused the server to keep scanning past the list's array bounds.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12980 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-22 16:09:20 +00:00
FlavioJS
cdda61ce1b * Added const to the return value of get_timer.
* Added a maximum timer interval. Avoids server shutdowns being delayed for ~10 seconds under some circumstances on windows.
* Replaced the fake timer heap (ordered array) with a binary min heap.

(actually, this is just a merge and has been in use for months)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12926 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-09 01:25:19 +00:00
zephyrus
fc312a5088 - Added support to Cash Shop for script command callshop
- Fixed a bug in OnTouchNPC
- Cleanup in barricade code.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12896 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-06-29 15:16:51 +00:00
ultramage
7444eb572c Random assortment of various small corrections and tweaks.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12894 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-06-29 06:00:05 +00:00
sketchyphoenix
159e55e3d1 Fixed cash shop not using points to make up the cash difference when purchasing an item.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12853 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-06-18 10:39:20 +00:00
zephyrus
e595e1f69f - Little cleanup to OnTouchNPC.
- Updating Release of Wish script.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12757 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-06-04 13:13:34 +00:00
zephyrus
5c7a1807e4 - Added support for OnTouchNPC event, required for Monster Race. Script commands need to be tested. Already tested sc_start.
- Added status SC_WALKSPEED required in monster Race.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12752 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-06-02 15:54:50 +00:00
FlavioJS
1be6ba4a63 * Changes to map_foreach* functions:
- removed the unecessary use of va_copy in map_foreachpc
- applied the same function pattern to map_foreachmob and map_foreachiddb
- created map_foreachnpc
- extended the behaviour of map_foreach* functions to stop iterating when func returns -1
(also added missing changelog entries from ultramage >.>)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12684 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-05-02 17:14:00 +00:00
ultramage
7a9a3a12bb Cleaning up the itemdb reload mess (see r12635, r12643, r12650, r12661, r12662, r12663)
* the player data inventory-itemdb index is now refreshed using pc_setinventorydata()
 * mobdb will no longer initialize with nonexistent items, and mobs will no longer drop them in case of a reload
 * the clif_buylist() function once again hides invalid npc shop items
 * it is no longer possible to purchase nonexistent items from a npc shop
 * npc shop loading will not abort if there is a nonexistent item entry, it will just skip over it

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12665 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-27 11:06:55 +00:00
Kevin
26a70ed737 Some major changes to @reloaditemdb to allow unloading of any item while map server is running.
- Delete any item from inventory/cart/open storages that went missing during the reload.
- Delete item from any shop that has this item.
- Refresh item screen for anyone who has a shop open.
- Delete mob db drop table references.
- Delete item from storage during load if it isn't in the item db.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12661 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-27 07:18:21 +00:00
toms
c79a5092eb Fixed bugreport:1223 (Invalid Items In Shops Are Processed Incorrectly)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12650 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-25 07:47:29 +00:00
FlavioJS
c880052f0f * Changed the data field of timers from int to intptr.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12633 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-21 21:34:31 +00:00
toms
2577ffdf25 * Fixed a bug when unloading a npc near a shop.
* Fixed npc_buylist not giving/checking the good item when it was an item_avail in the shop (the real one was added in inventory).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12616 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-18 14:33:31 +00:00
FlavioJS
cd1f48cc9e * Made script command 'flagemblem' and guild_emblem_change send an update of the emblem_id to the players in the area.
- known bug: ui components that are displaying the emblem at the time (emblem in flag npc and emblem over head in gvg maps) are not updated, but putting the mouse over the target shows the new emblem
* Modified script command 'guardian':
- returns the id of the guardian
- if guardian index isn't supplied, it generates a temporary guardian
* Implemented support for temporary guardians (not saved with castle).
* Added missing includes from r12520.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12525 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-07 21:04:28 +00:00
ultramage
255f0fe3fc Removed the 'wait close' timer that closed a session's socket after 5 seconds.
This was causing random disconnects when logging in. (bugreport:1330)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12520 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-07 13:49:13 +00:00
Kevin
d826519faf Reverted one of the changes in dynamic mobs that may be causing the spawning problems.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12512 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-07 00:06:47 +00:00
ultramage
94943b2b6a Adjusted eAthena code to compile cleanly in C++ mode.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12436 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-26 10:37:45 +00:00
zephyrus
fb7daea244 - Added SC_ARMOR_RESIST, used by Undead Scroll, gives you resistance against elements and it's can be used with Resist Potions.
- SC_ARMOR_RESIST and SC_BENEDICTIO ends if you change your armor. Tested on iRO.
- If you call SC_ELEMENTALCHANGE with val3 = 1 it will use the level in val 1, and not a random value.
* Barricades:
- Fixed a bug when @reloadscript. Barricades should be destroyed too.
- Unbreakable barricades are only wall type (not shootable) According to Doddler info.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12407 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-20 20:56:55 +00:00
ultramage
3d6f2af01c Changed the dynamic mobs system to also unload mobs that have respawn time but are already spawned - 22M less mem usage (bugreport:1197).
Also added a check to not respawn mobs on maps with no players (potentially unsafe operation, needs further inspection).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12402 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-19 22:02:26 +00:00
ultramage
675eab189e Fixed spawned mob count not being counted properly, causing yet more respawn problems.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12364 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-14 22:59:13 +00:00
ultramage
8b00f6dbdd * extended the "npc_event: event queue is full" error message to also print the name of the event (so that the cause can be tracked down)
* removed a strange (and undocumented) event name check for "GM_MONSTER" in the npc event execution code
* added effects from recent sakexes to effects list
* removed ladmin from vs8 sql builds
* added int_auction.c/.h to vs6 and vs7 project files
* some small cleanups

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12362 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-14 12:59:02 +00:00
ultramage
f6d2d9a360 Replaced some foreach-based functions by their inlined iterator equivalents.
Changed the dynamic mobs system, so that the flag that indicates whether a particular mob can be unloaded is stored in the mob's respawn data structure.
Cleaned up related parts of the source code.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12358 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-13 22:09:58 +00:00
ultramage
078d492412 Removed one mob data variable related to dynamic mobs that I found to be redundant.
Changed MAX_MOBSKILL (max. amount of different skill entries per mob) from 50 to 40 to reduce memory consumption a bit more.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12350 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-12 21:02:59 +00:00
ultramage
0088adcbbf * Added code to clear the Illusionary Shadow effect (followup to r12293)
* Added some trim() calls into mapflag code (followup to r12238)
* Fixed mvp exp reward packet not working right for big values
* Added dbghelpplug plugin entry to the plugins configuration file
* Added conf setting for auction table name (see r12287)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12300 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-05 16:23:02 +00:00
zephyrus
84ffdd36bf - The last, i hope, fix to the mail system.
* kRO have a possible way to read mail by just sending the open mail window packet to the client.
This protection adds a mapflag town, to set the only maps that allow mail operations.
because there is no way to know when client closes the mail inbox window. *

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12279 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-02 23:03:22 +00:00
ultramage
d84310bc4e Fixed wrong mvp format string for @mobinfo (would not show big mvp exp rewards correctly).
Added data length check to chrif_authok(), to detect a mismatch between charserver's and mapserver's mmo_charstatus structure size.
Corrected some typos in the cash shop code.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12277 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-02 17:36:59 +00:00
zephyrus
e6bf7c5458 - Added cash shop support. (i need to add documentation, working on it).
- An charcommand is still required to add/remove points.
- Scripts command only requires to work on #CASHPOINTS and #KAFRAPOINTS.
- I called it "Kafra Points" just because it's how comes in the translation. I allready know this changes between Oficial servers.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12264 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-28 22:25:58 +00:00
zephyrus
3868080ead - Added new settings for autotrade on battle/misc.conf (you can read descriptions there).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12243 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-26 22:14:05 +00:00
ultramage
abd31f84a3 Now the server will print an error message if an invalid mapflag is found during script loading (see bugreport:980 for the motivation).
Removed one extra space that broke jail's noreturn mapflag loading.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12238 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-24 18:04:13 +00:00
zephyrus
69ae4766ce - Added some new config settings: homunculus_autoloot, idle_no_autoloot, 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://svn.code.sf.net/p/rathena/svn/trunk@12203 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-14 01:18:19 +00:00
skotlex
96684da892 - Fixed Freezing Trap doing no damage (changed type from misc to weapon)
- 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://svn.code.sf.net/p/rathena/svn/trunk@12180 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-07 00:07:47 +00:00
ultramage
1859b5e45a Applied a temp patch to make some npc-executed atcommands work again (bugreport:790).
Added support for right-click-gm-menu kicking NPC objects.
Removed redundant function npc_checknear2().

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12073 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-14 11:34:59 +00:00
FlavioJS
4b4a7ef2a0 * Modified npc_parsesrcfile to read the file as binary and let sv_parse handle LF/CRLF line endings.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12059 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-12 17:21:41 +00:00
ultramage
a4007e12d4 Expanded the poor "npc_touch_areanpc : some bug" with info about which cell exactly caused the problem.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12024 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-06 21:14:54 +00:00
ultramage
e7bb626a80 Modified the map_setcell() code to to use a boolean flag instead of needing 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://svn.code.sf.net/p/rathena/svn/trunk@12009 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-04 12:41:49 +00:00
ultramage
c2dfc595b1 Fixed npc unloading not clearing NPC touch cells (bugreport:595).
Added a comment to npc_unsetcells(), pointing out that it's most likely not scanning for cells correctly.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12004 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-03 22:00:59 +00:00
ultramage
8fdc689343 Map cell mechanism rewrite
- 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://svn.code.sf.net/p/rathena/svn/trunk@12003 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-01-03 21:36:40 +00:00
skotlex
81e5c08f4f - Fixed warning about unused variable
- 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://svn.code.sf.net/p/rathena/svn/trunk@11968 54d463be-8e91-2dee-dedb-b68131a5f0ec
2007-12-23 11:06:58 +00:00