summaryrefslogtreecommitdiff
path: root/src/map/map.c
AgeCommit message (Collapse)AuthorFilesLines
2009-06-04* Updates to ST_PRESERVE and a few other minor details!L0ne_W0lf1-0/+7
- Recasting Preserve no longer toggles the skill off while active. - Preserve is no longer saved on log-out or mapserver changes. * Added SC_CRITICALWOUND and SC_SLOWCAST to negative statuses not saved with battle_config.debuff_on_logout&1 * Implemented the skills NPC_HELLPOWER and NPC_WIDEHELLDIGNITY, as per my personal experiences with the skill on iRO. * Increased MAX_MOBSKILLS to 50, as Satan Morroc has over 40 active skills now. * Added skill information for NPC_HELLPOWER and NPC_WIDEHELLDIGNITY, and enabled skills in mob_skill_db. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13843 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-05-25Now we can use 'boss_monster' to summon whatever monsters that need to be ↵Inkfish1-9/+9
radared by Convex Mirror. (bugreport:2653) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13813 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-05-15- Fixed a bunch of invalid memory access bugs as reported by Valgrind.skotlex1-2/+2
- Updated unit_stop_walking to not move character an extra cell when it is already half-way there unless flag 0x4 is passed. (bugreport:3078) - Fixed the monster MD_CASTSENSOR code not correctly setting the monster's aggressive state. - Corrected a few compiler warnings - Changed a bit the code for SC_BOSSMAPINFO so it is not so hideously ugly. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13774 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-04-23Fixed several occurences of map_freeblock() being used before map_deliddb() ↵ultramage1-1/+1
(caused by r13503, r13505 and r13508) (bugreport:2959). This would cause object ids (chatrooms / ground items) to never be removed when DEBUG_MEMMGR was turned on, ultimately causing a 'no free object id' fatal error. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13689 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-04-05The dynamic mobs system will no longer de-spawn mvps (because it's annoying ↵ultramage1-0/+3
as hell). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13662 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-02-26- Fixed item Nemesis.zephyrus1-0/+5
- Fixed Tarot Card being used on Emperium. - First Part of BattleGround Implementation (please wait). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13550 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-02-23 * Consolidated is_atcommand() and is_atcommand_sub()sketchyphoenix1-1/+1
- replaced gmlvl arg with a flag arg for internal/player generated checks. (dummy sds that used this arg are given gm levels) - each command check runs through is_atcommand() and is checked for its origin (internal or player generated) - charcommands are also parsed in this function. - script atcommand/charcommand function calls to is_atcommand() have been updated - also updated some clif/map functions calls to is_atcommand() * charcommands should now log properly with the target of the command included. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13545 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-02-02Fixing r13503...ultramage1-3/+8
- Added missing id_db removal calls for all flooritem objects (bugreport:2729) - Added missing destruction of skillunit_db on mapserver exit git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13505 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-31objects[] array removal (bugreport:2559)ultramage1-120/+26
- Removed the 2 MB wide static array in favor of a general-purpose DBMap (id_db for now). - Inlined functions map_addobject, map_delobject and map_delobjectnofree into their callers' code. - Replaced the free id lookup algorithm from ancient jathena with something more efficient. - Moved the algorithm to map_get_new_object_id() (similar idea as r13481). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13503 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-24* Changed the variables of the mapcache structs to fixed size equivalents. ↵FlavioJS1-7/+10
(64bit portability issue) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13483 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-24* Changed all uses of struct skill_unit_group* to group_id in ↵FlavioJS1-2/+2
status_change_entry's. (last known 64bit portability issue) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13482 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-13Mobs with nonzero spawn time can now be cached as well, saving some more ↵ultramage1-5/+8
cpu/memory (bugreport:1197). Fixed dynamic mobs being unloaded without stopping their respawn timer. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13445 54d463be-8e91-2dee-dedb-b68131a5f0ec
2009-01-12Added regen_db to reduce hp/sp processing delays (bugreport:2256).ultramage1-0/+32
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13443 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-12-23 * Added a few missing atcommands.sketchyphoenix1-1/+1
* Added more commands to configurations (bugreport:2565) * Added a missing charcommand symbol config to atcommand configs. * GM command configs under the old format will have a warning printed back to the console as being deprecated. * Other fixes/cleaning partially resolving bugreport:2549 git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13409 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-12-18Removed charcommand code while allowing atcommand code to support its ↵sketchyphoenix1-5/+1
functionality. Charcommands still retain their '#' symbol but now looks for a character name as the first parameter instead of last. Atcommand configs now support charcommand level configurations by comma seperation (e.g. 60,99) As a result of this, all atcommands that don't affect multiple users already (@kickall, @doom, @mapexit) are capable of remote usage. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13403 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-11-22* Hunted down improper uses of va_list variables.FlavioJS1-38/+49
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13383 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-09-18- Some corrections to Basilica.zephyrus1-2/+0
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13217 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-09-09Enabled WoE SE to be run independently of WoE. Let's see how long it is ↵L0ne_W0lf1-0/+1
before something blows up, or Ultramage pulls out his hair while cursing my existence. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13202 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-24- Moving all content of Homunculus code to a proper file Homunculus.c/hzephyrus1-1/+3
- Update of all project files. NOTE: All functions on homunculus.c should be renamed i think, to remove all the merc_*. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13122 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-23- Completed Mercenary Create, Delete, Save. Tests OK.zephyrus1-1/+2
- Incremented MAX_SKILL required for a proper load of Mercenary Skills. - Some fixes. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13118 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-20- New invisible walls system (for WOE SE and Battlegrounds).zephyrus1-1/+119
- New script commands for this system "setwall" and "delwall" - Added other scripts commands "changelook" (can be used to try clothes colors, hair styles, headgears, etc without saving this on logout). - Added getmobdrops to request a list of drop and rate of an specified class. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13101 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-15Split off mapreg code from script.cultramage1-3/+4
* new mapserver files, mapreg.h, mapreg_txt.c, mapreg_sql.c * removed MAPREGSQL from project files / makefiles * mapreg storage engine is now fully dependent on the server type * added config settings mapreg_txt and mapreg_db to inter config * added get_str() function to complement add_str() * fixed txt mapreg code allowing too long variable names git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13081 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-08-10Some small code cleaningultramage1-108/+147
- removed unused create_storage() function - removed unused char_db mapserver config setting - adjusted formatting of mapserver config loading code git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13063 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-30Removed the IRC bot system, now a customization (see topic:194306)ultramage1-6/+0
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13014 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-29- Fixed a bug with Status Resist Potion.zephyrus1-0/+1
- Fixed double char data save on quit with storage opened. BugReport 1794. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13013 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-27Cleaned up several poorly chosen loginlog variable names.ultramage1-8/+6
Removed the unused login and txt->sql options in inter_athena.conf. Renamed config option log_db to log_db_db in inter_athena.conf. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13005 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-26Merged the /loginmerge branch (topic:192754)ultramage1-42/+2
* the login server storage, ipban and logging systems have been abstracted and now provide a common interface; the rest has been merged into a single login server core (no more login/login_sql duplicity) * storage systems are now added via compiler options (WITH_SQL / WITH_TXT) * multiple storage engines can be compiled in at the same time, and the config option account.engine defines which one will be used. * due to MySQL autoincrement limitations, accounts with id '0' will not be supported; account IDs from this point on should start from '1'. * login_log() functions now again record IP addresses in dotted format, not as 4-byte integers (undo from r6868). * removed config options that defined column names in the login table * removed `memo` and `error message` columns from login db/savefile * moved `loginlog` table to the logs database * added sql files upgrade_svn12975.sql and upgrade_svn12975_log.sql * due to changes to the login table layout, I added an !optional! sql file (upgrade_svn12975_view.sql) that will provide a certain degree of backwards compatibility with existing software; read the instructions inside carefully! * moved third-party includes/libs to a separate directory * updated project files / makefiles Changed the way GM levels are handled * removed conf/gm_account.txt * added the gm level column to the txt savefile (after 'email' column) * gm level information is now transferred along with account data For open problems see bugreport:1889. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13000 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-26Replaced occurences of '-1' with the more appropriate 'INVALID_TIMER' value ↵ultramage1-3/+3
where appropriate. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12998 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-07-26- Implemented official Convex Mirror (With help of Yomanda and Sirius White)zephyrus1-4/+49
- Fixed SC_WARN don't receiving reflecting damage (Bug Report 1854). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12997 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-06-07Fixed a few properties of NPC_CHANGEUNDEAD bugreport:79shadow1-0/+3
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12763 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-05-07- Added function battle_attr_ratio to handle just getting the attribute ↵skotlex1-0/+2
table data. Fixes Sense messing up with elemental based statuses. - Added Throw tomahawk to the list of items that do not trigger the equipment breaking code. - Moved a bit around the SC_ start of dancing skills to fix Moonlight petals pushing back the casters. - Modified status_damage to handle SC_KAZIEL. The return value of *_dead functions can pass 8 to specify that kaziel should not be triggered (ie: pvp/gvg) - Infinite Endure won't be passed on to devoted characters. - Infinite Endure is no longer saved on logout. - Added check to avoid gms opening vending shops if they don't have the required level. - Moved around the Steel Body S. Novice code, simplified it so it triggers before most of the penalties (death is cancelled). - Fixed the flee penalty not applying when you walk into a gvg map. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12688 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-05-02* Fixed missing iterator destruction in the map_foreach* functions (followup ↵FlavioJS1-2/+5
to r12684). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12686 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-05-02* Changes to map_foreach* functions:FlavioJS1-20/+70
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12684 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-05-02Replaced the very ineffective clif_foreachclient() with map_foreachpc() ↵ultramage1-8/+16
since they essentially do the same thing (bugreport:1174). Rewrote map_foreachpc() so that its callback function signature now uses a more natural 'sd' instead of a DBKey/void* pair. Rewrote atcommand_users() to use a single function, instead of depending on two helper functions and global objects. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12683 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-04-21* Changed the data field of timers from int to intptr.FlavioJS1-4/+4
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12633 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-29- Fixed a visual bug in mail when sending Zeny.zephyrus1-0/+3
- Fixed bug pet loosing loot on logout. Bug Report 1291. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12449 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-28- Fixing a bug in map_nick2sd. Also fixed on Stable.zephyrus1-12/+11
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12445 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-27- Fixed a bug in map_nick2sd (sometimes we can have 3 chars with similar ↵zephyrus1-10/+8
names, and the "perfect match" in the 3º slot... or more). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12437 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-26Adjusted eAthena code to compile cleanly in C++ mode.ultramage1-9/+9
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12436 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-22Mobs with no respawn information which don't have a master will not get ↵ultramage1-0/+3
unloaded by the dynamic mobs system. This prevents script-spawned mobs (bio MVPs, Emperium/Guardians, ...) and dead-branched mobs from disappearing (bugreport:1246). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12424 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-21Added VS9 project files. Removed redundant map_getallusers() functionLupus1-40/+0
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12410 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-13Replaced some foreach-based functions by their inlined iterator equivalents.ultramage1-19/+18
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12358 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-13Fixed one forgotten mob spawning function call causing mobs to duplicate ↵ultramage1-1/+1
when respawning (followup to r12350) (bugreport:1173) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12353 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-12Removed one mob data variable related to dynamic mobs that I found to be ↵ultramage1-6/+6
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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12350 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-03-11Replaced clif_countusers() with a more efficient alternative (thanks to the ↵ultramage1-3/+17
fact that pc_db now only holds fully authed players only). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12339 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-27* Removed NODAMAGE and ICEWALL cell types (mem usage back to normal)ultramage1-8/+2
- Icewall now uses basic cell type 5 (nonwalkable, shootable) - as a consequence, you can now warp to a nonwalkable cell - but only via gm command or scripted warp bug (hopefully :) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12247 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-26- Added new settings for autotrade on battle/misc.conf (you can read ↵zephyrus1-0/+2
descriptions there). git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12243 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-21- Fixed new guilds displaying online-connect member count at 0 rather than ↵skotlex1-135/+61
1, and the guild master not knowing it is one (eg: it cannot edit the guild notice of a newly created guild until relogging). - Fixed acc_reg2 parsing screwing up the char_id and subtracting 2 from it rather than passing it as it is. - Extended the auth_node/auth_db system in chrif.c to handle log in/out and mapserver-change procedures. This way players are not in the main dbs when they are not "active", which blocks potential invalid accesses to them. - Replaced states auth, waiting_disconnect and finalsave with active. - Cleaned some the party/guild login and creation procedures, removed the party_sent/guild_sent states. - Removed a redundant guild_check_member call which is beyond not-needed and into the realm of wasting resources. - clif_parse will no longer process packets from !sd->state.active players, this also makes checking for finalsave uneccessary (since players re already removed from the maps and dbs by this point, so you can't access them in any other way) - Separated the roles of unit_free and map_quit, the former will handle cleaning structures from the player so it can be free'd safely, while the latter performs additional routines which are unique to characters logging out normally (map-server changes will invoke unit_free and bypass map_quit). - Removed pc_isplaying, quit_db, map_knowsaccount, MAPIT_PCISPLAYING among other functions/defines which are no longer needed due to the new login scheme. - Cleand up a bit some code in the clif_send(_sub) functions. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12223 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-11Getting rid of map_getallusers(), part 1ultramage1-29/+43
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12195 54d463be-8e91-2dee-dedb-b68131a5f0ec
2008-02-07- Fixed Freezing Trap doing no damage (changed type from misc to weapon)skotlex1-15/+9
- 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