- Added some missing SC_* entries on the initial listing (potion related and speed up ones)
- Fixed function declaration of map_getcellp()
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6817 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Removed unused checks for unsigned data type and possible logic error for char type (gcc treats char as unsigned).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6814 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Cleaned up TBL_PC, TBL_MOB, TBL_PC and mob_db structures to use status_data.
- Set the NPC-Change Attribute duration on Time1, updated their max to 1 in the db.
- Berserk's HP cost interval is now defined as time2.
- Split damage received functions into pc_damage/pc_dead and mob_damage/mob_dead
- Rewrote the @heal related functions to use the new status_* healing functions.
- Added status functions to deal with damage and healing (status_damage, status_heal, status_percent_change) and a bunch of defines for easier handling of them (status_percent_heal, status_percent_damage, status_fix_damage, status_kill, etc)
- Splitted mob_once_spawn into two. mob_once_spawn_sub creates the mob instance without spawning it.
- Added defines for Elements (ELE_*)
- Modified battle_calc_(weapon/magic/misc)_attack to use the status data structure.
- Rewrote and cleaned up battle_calc_misc_attack
- Merged config options pc_attack_attr_none, mob_attack_attr_none, pet_attack_attr_none into attack_attr_none (type 4)
- Removed config options player_defense_type, monster_defense_type, pet_defense_type in favor of weapon_defense_type
- Cleaned up pet.c to stop invoking status_calc_pc when unnecessary
- Modified skill_calc_heal to take into account the MEDITATION bonus.
- Cleaned up code of Adjustment, Madness Cancel and other GS/NJ skills inside skill_check_condition
- Added status change SC_MODECHANGE which handles mob state changes (this SC is continous until manually ended, eg: like Weight50)
- Modified Slim Pitcher so it will work when casted by non-players. Will now also work with SP-healing items.
- Rewrote Freedom of Cast code to use function status_freecast_switch to switch adelay/speed when cast begins/ends.
- Modified Magic Power to store amplified MATK/MATK2 in val3/val4 for easier updating when used in conjunction with ground skills.
- Fixed Asura Strike being usable from within a combo regardless of combo skill.
- Modifed SC_DANCING to store speed-change in val3 (it is shared with skill duration...)
- Added StatusChangeFlagTable to store which statuses are changed by each SC
- Added SCB_* constants to specify the different stats that each sc changes. SCB_PC is the only one that means a change hardcoded in status_calc_pc, the rest are handled by status_calc_bl
- Added some helper functions to simplify with basic status calculations (status_base_atk, status_calc_misc, status_base_pc_maxhp, status_base_pc_maxsp)
- Added status_calc_mob which calculates initial status and special base status alterations (HP changes, stat changes due to big/small mobs, etc)
- Made all the status_calc functions static.
- Added status_calc_bl_sub_pc for PC related calculations that must happen after status-change adjustments.
- Added status_calc_bl which does status-change related calculations using as base the base_status of the bl object and the SCB_* flag passed.
- Added status_get_status_data and status_get_base_status to retrieve the bl objects current status_data and basic status_data (current never returns null, instead it returns a dummy structure with basic data)
- The main switch in status_change_start now only sets the tick and val values, therefore it is skipped when loading (flag&4)
- Cleaned up status_change_start and replaced many of the ex-japanese comments for english ones.
- Changed Hiding to store the speed penalty on val3. val4 stores interval SP cost.
- Changed Chase Walk to store Speed adjustment on val3, sp cost in val4
- Changed Cloaking to store speed penalty on val3, val4&2 signals wall-present, val4&1 is infinite cloaking.
- Changed Wind walk to store speed bonus on val3
- Rewrote Marionette Control to store the status to add/substract in val3/val4, it now works on anyone (players/mobs)
- Changed Improve concentration to store Card bonuses (which are not counted for total % increase) on val3/val4
- Changed SC_ADRENALINE, SC_CONCENTRATION, SC_ANGELUS, SC_IMPOSITIO, SC_MELTDOWN, SC_TRUESIGHT, SC_SUN_COMFORT, SC_MOON_COMFORT, SC_STAR_COMFORT, SC_QUAGMIRE, SC_GATLINGFEVER to store the bonus modifiers in their val values rather than calculate them in status_calc_*
- Status_change_start/end will use clif_status_load rather than clif_status_change when related bl is not on a map.
- Modified status_change_timer to use the status_charge function rather than directly substracting SP
- Added SC_ELEMENTALCHANGE to modify someone's base defense element.
- pc_clean_skilltree will now also remove item-granted skills.
- Learning skills will now only invoke status_calc_pc when the skill is passive.
- Cleaned up pc_steal_coin
- Cleaned up pc_check_base/job_lvup to only invoke the lv-up related packets and functions ONCE regardless of skill-levls earned.
- Cleaned up pc_ regen related functions.
- Made player-sprite mobs have item pickup animation and walkdelay when taking items.
- Cleaned up mob_dead code.
- Removed paramb, parame from struct map_session_data, replaced them by param_bonus[6],param_equip[6]
- mob special ai state 3 signals summon flora.
- Moved petDB pet_hungry_timer vars from TBL_PC to TBL_PET
- Cleaned up some pet functions, made the menu functions receive as argument both pet and master.
- Clones will copy a player's base status rather than battle status (so status-change alterations are not cloned)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6791 54d463be-8e91-2dee-dedb-b68131a5f0ec
- cardillust_read_grffile, item_equip_override_grffile, item_slots_override_grffile, and item_name_override_grffile are set to 0 after map-server loads to prevent crashes on item_db reloading.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6656 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Blood Drain always hits now.
- Fixed Mob Area Skills not updating their use-time (rendering their skill delay useless)
- Search free cell will now skip picking the center-tile as target location. Will prevent slaves from walking on top of their master, or mobs placing stuff right under themselves with the "around" target conditions.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6621 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Reduced Stun duration of multiple skills to 3 secs. Skills affected: Meteor Storm, Land Mine, Bash (fatal blow), Throw Stone, NPC_LICK, Raid, shield Charge, Cart Termination.
- status_set_viewdata will remove the Wedding Option status when you set a class that is not wedding.
- Removed the Job_Novice range check in pcdb_checkid since it's causing warnings when checking versus vd->class_ (and when will we use a negative value class anyway?)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6518 54d463be-8e91-2dee-dedb-b68131a5f0ec
- 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
- Rewrote Warmth to use ground-skill-units, it should behave now like in officials (implementation is not quite the same, but it should yield the same effects while consuming less bandwidth). "Stacking", as it's called, is possible now, but limited to eA's minimum timer skill interval (100ms).
- Modified NPC_POWERUP so that it gives +10 dex * skill level rather than +5+lv to all stats (as explained by Playtester and Tharis on how the skill behaves).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6446 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Eliminated initializations for pointers returned by calloc.
* Moved grfio_final to do_init since it's not used after server boot.
* Optimized scripts to return CONSTSTR instead of allocating memory just to return a constant string. Some buildin functions still need work.
* Disabled graph since it doesn't work yet.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6355 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed a possible crash in grfio_find_file
- Corrected water-level-reading to account for a return of null from the previously mentioned function
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6117 54d463be-8e91-2dee-dedb-b68131a5f0ec
- 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
- Changed line terminators back to *nix on map.c because otherwise it's impossible to run a diff between the stable and trunk versions of the file.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6043 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Removed login sql handle from the map server as it isn't used for anything.
- Made the login sql handle on the char-sql server be used only when gm_read_method 1 is enabled.
- Small fixes to npc_enable, added BL_NPC handling on status_get_sc.
- Added a path_search check in map_random_dir, so that the random direction picked up doesn't goes through walls and all that.
- Some changes to close-confine, status start will fail when the source is not found or it doesn't has sc-data.
- pc_setoption no longer changes the character's class when mounting/dismounting, it only changes the view-class.
- The peco-crash-fix from the char servers is still needed. This packet must be wrong! We likely need to sniff it.
- Modified the char-txt server to modify the class of mounted characters to their non-mounted version. Added an upgrade_svn file to handle the class update on the sql tables.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5902 54d463be-8e91-2dee-dedb-b68131a5f0ec
- 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
- Added Explosion Spirits to list of effects that dispel on logout.
- Fixed handling of guild skills by pc_blockskill_start, renamed it to skill_blockpc_start as it needs some constants available only in skill.c
- Fixed autoguard icon showing with stun.
- Fixed splash area of Ganbantein
- Fixed acid demonstration breaking shield instead of armor.
- Fixed Slim Pitcher crashing server ocassionally.
- Hopefully fixed Ankle Snare lasting the whole trap's duration
- Added sc_start(SC_ENDURE) on infinite endure bonus.
- Fixed Berserk Pitcher consuming required items twice.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5681 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added battle_config debuff_on_logout which removes Asura's SP regen delay and Strip-Equip effects on logout when set to yes (default).
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5644 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Fix on initnpctimer not attaching rid.
* Fix on OnTouch ignoring -1 NPCs.
* Fix on @reloadscript crashing due to passing non BL_SKILL bl to a function that accepts only BL_SKILL bl.
* Added area NPC detection in clif_parseLoadEndAck.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5638 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added mapflag nocommand which blocks @/# commands unless your gm level is above gm_skill_unconditional's level.
- Fixed weapon scripts not being executed unless the weapon was forged.
- gm_skill_unconditional is now a no/gm-level setting instead of yes/no
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5446 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Updated path.c with jA's implementation, which should make long path searching more efficient.
- Also added some typedefs from jA for the common structure types (PC/MOB/NPC, etc)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5366 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Removed the double-cast specific code and made it use skill_addtimerskill instead.
- Modified party_foreachsamemap so that it returns to addition of the return value of the functions invoked. Type has been changed for "range", when 0, it scans all party members in the map.
- Updated most skill/battle code to use map_foreachinrange rather than map_foreachinarea.
- map_foreachinrange does not performs an exact range check anymore. However the relevant code is commented and anyone can enable it.
- Updated most skills to use skill_get_splash instead of hardcoded ranges.
- Added function skill_get_casttype which returns the type of function that should be invoked for that skill: skill_castend_pos, skill_castend_nodamage_id or skill_castend_damage_id.
- self skills are sent to skill_castend_nodamage_id regardless of nk (nk should signal if the skill causes damage above everything, it is used on autospell/effects).
- Due to the previous change, self skills where the target and src are different, and don't have an nk of no damage, they are sent to castend_damage_id (assumed target auto-selected skills)
- Applied the relevant updates to db/skill_db.txt, db/skill_unit_db also got updated, as trap ranges should all be 1, the splash damage range is defined now in skill_db
- Cleaned up the implementation of the code related to Gangster's paradise and TK_HP/SPtime
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5313 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added flag 0x3000 to path_search to specify that path searching should go through stacked cells. Used for skill_wall_check calls.
- easy path_search will be successful in CELL_NOSTACK mode if the search fails only on the target cell (it is presumed the target cell contains the character one is trying to reach). The walk routines will take care of stopping the character from walking into another one when stacked.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5263 54d463be-8e91-2dee-dedb-b68131a5f0ec