49 Commits

Author SHA1 Message Date
Lance
e266a08f7c [Optimized]:
- clif_specialeffect to use the enums.
[Improved]: 
- buildin_specialeffect and buildin_specialeffect2 to accept effect area definition.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6855 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-05-30 18:13:16 +00:00
skotlex
856240443d - Added structure status_data which holds status-related information (str, agi, etc, speed, amotion, adelay, dmotion, weapon-damage, race, size, etc) and weapon_atk structure with the weapon specific info (atk, atk2, element) to be used by all combat structures (TODO: Homun needs to be updated to use it)
- 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
2006-05-27 18:08:30 +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
skotlex
9aa86f86e4 - Fixed crash when looking for SC_MIRACLE in battle_calc_weapon_attack
- Some more standard C code cleanups.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6038 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-13 15:56:22 +00:00
skotlex
4d97159683 - Cleaned atcommand_param against overflows and also to make it standard C so it may compile with the Borland C.
- Modified Charcommand_stats to make it standard C as well.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6037 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-13 14:25:22 +00:00
skotlex
254d003229 - Fixed various include lines in the map server (of the type <include "nullpo.h"> -> <include "../common/nullpo.h">)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5985 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-04-11 14:24:46 +00:00
skotlex
876cc3f814 - Pet catching now uses the menuskill variables to prevent item usage from disrupting the catch process.
- Added Safetywall to the list not blocked by Dispell.
- Added some include limits.h required by window compiles.
- Corrected Wedding rings being trade-able. 


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5772 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-27 14:54:40 +00:00
Lance
5d286a9b08 * GCC on Cygwin still complaining, resorted to including limits.h in malloc.h
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5770 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-27 13:33:11 +00:00
Lance
14fe8c03e8 * Refixed the fix with a constant list for Win32 users - limits.h (imported from MSVC)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5769 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-27 13:23:53 +00:00
skotlex
f2d2edd1cd - Changed status_point/skill_point to unsigned short. Adjusted the code as necessary to prevent overflows.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5762 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-27 01:24:34 +00:00
skotlex
1a023c8a7c - Fixed #itemlist not taking into consideration crafted/forged items and pet eggs. Cleaned up a bit the function as well.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5530 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-09 14:42:51 +00:00
skotlex
2b874adf3c - Fixed a debug message showing up on skill castend nodamage id when using a guild skill
- Fixed #save not working on maps not in the current map server.
- Added battle config clear_skills_on_death to decide whether all ground-based skills should be removed when you die. Defaults to yes.
- Changed Magic Crasher's element to -1


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5472 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-03-06 14:37:44 +00:00
skotlex
d770421a9d - Trick dead now ends on logout
- 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
2006-03-03 14:38:13 +00:00
skotlex
00bbc7673b - Made the warm skills BF_WEAPON type so that they may trigger effect cards.
- Also changed their pl to -1 so they carry the elemeso they carry the element.
- Warm skills now damage other players for 60sp per hit.
- Warm skill damage interval decreased to 100ms instead of 1000ms.
- TK_DODGE  now only dodges ranged weapon attacks, while under Spurt mode it dodges everything.
- Cleaned up and expanded the sc_def_rate battle config. The new battle flags are mob_sc_def_rate, pc_sc_def_rate, mob_max_sc_def, pc_max_sc_def
- Modified Marionette Control so that the max bonus stats you get is capped to your server's defined max stats instead of 99.
- Mobs are no longer affected by the vs_traps_bctall switch.
- Added function pc_damage_sp to damage the SP of players.
- Modified Warm skills so that it only hurts SP of players while attacking/knocking back mobs.
- Autospell loop breaks after one skill is successful.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5288 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-02-15 18:56:54 +00:00
skotlex
59e17a948b - Modified PA_GOSPEL so that the random damage attack becomes a BF_MISC attack.
- Added pc_resetskill when lowering job level and there's not enough skpoints to substract.
- Fixed compile error of SG_FUSION in pc.c
- Modified pc_resetskill to receive a flag to indicate if it should or not do status_calc_pc and send skill block updates. Meant to optimize performance when used in the middle of a larger update.


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5269 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-02-13 16:54:24 +00:00
skotlex
cf059ff1a9 - NPC_POWERUP now gives +40% atk per level.
- Water elementals can be frozen again.
- Fixed the sc_def equation in status_change_start
- Fixed an extra semi-colon that broke win32 compiles.
- Some rewriting of bounds checks in @baselvup, @joblvup and the # equivalents to prevent signed/unsigned comparisons.
- Now slaves give exp/loot (exception: player slaves still stick to the old rules)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5267 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-02-13 15:04:11 +00:00
skotlex
d69479b946 - Added define clif_deadsit to send the dead state into player packets if the player is in trick dead state.
- Venom Splasher always hits (but splash damage targets can still avoid it)
- Using autoloot with no arguments now toggles it between @autoloot 0 and @autoloot 100%
- Falcon Assault now takes Blitz Beat lv5 as base damage.
- Fixed pc_makesavestatus not updating status.option correctly.
- Corrected Waterball so that higher levels can do insane amount of hits.
- Altered slave behaviour. No more random walking, will stay within 2 cells of their master.
- Reverted the Summon Slave behaviour to not adjust level based on number of current slaves.
- Coma no longer sends SP to 1.
- Updated Meteor so that when level 11 or more is casted, the area over which meteors fall is tripled.
- Dark elemental characters are now inmune to Curse.
- Fixed sc_data saving to sql buffer building method. Thanks to its_sparky.
- Changed the map zone reading from using pow to a bit shift.
- Experience has now been changed to unsigned int, and is read as such from the dbs.
- Increased HT_DETECTING seek range to 7x7
- Added function map_foreachinrange which actually checks distance of nearing objects (unlike for each in area which uses a square area), may come handy for future code.
- Corrected Venom Splasher: Being hit does not cancels it, works at 75% or less of target's HP, being hit normally while under the count has a chance of causing poison. Damage is +400% + 50*lv%


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5204 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-02-06 18:38:51 +00:00
skotlex
697d29d7d4 - Fixed a typo bug in SC_STAR_COMFORT handling.
- Fixed a possible crash bug in SC_POISONREACT handling.
- Simplified the skill trigger code for ST_PRESERVE, SG_FUSION, SG_*_COMFORT
- Unified the status change variables into a single structure (sc_count, opt1, opt2, opt3, option, and the array of status change data) which should make it easier to handle sc related stuff.
- TK_DODGE now won't trigger if your opt1 is set ;)


git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5154 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-02-01 17:17:09 +00:00
skotlex
4f5babb97d - Changed the exp tables format.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5135 54d463be-8e91-2dee-dedb-b68131a5f0ec
2006-01-31 13:45:04 +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
amber
13eeee2ee6 More C/C++ Conformance fixes
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1334 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-03-29 16:46:19 +00:00
celest
a7dcc90c58 * Updated damage calculation for Magnum Break
* Fixed #item not working properly

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1331 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-03-29 15:23:08 +00:00
amber
150683e2e6 Fixed use of storage variable to conform to ANSI C spec [MouseJstr]
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1327 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-03-29 05:05:50 +00:00
veider
de7940888a git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1316 54d463be-8e91-2dee-dedb-b68131a5f0ec 2005-03-28 21:25:11 +00:00
(no author)
0c541b77fb * Added status.c and status.h of jA 1091 update and moved some functions into the new source files
* Updated auto_counter_type's description in battle_athena
* Removed some unnecessary skill level checks in battle.c

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@996 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-01-26 04:54:22 +00:00
(no author)
778e804dd6 update
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@968 54d463be-8e91-2dee-dedb-b68131a5f0ec
2005-01-23 20:38:44 +00:00
amber
0452a9c55f cxx updates
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@861 54d463be-8e91-2dee-dedb-b68131a5f0ec
2004-12-29 19:18:18 +00:00
mc_cameri
6ee9b2d680 git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@857 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-12-29 15:33:40 +00:00
mc_cameri
e333217bc3 git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@856 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-12-29 14:55:16 +00:00
mc_cameri
025b4ac2d3 git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@714 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-12-21 22:44:37 +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
mc_cameri
ca2de30c5e git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@600 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-12-17 22:45:15 +00:00
mc_cameri
bd5bd4110a git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@599 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-12-17 22:21:34 +00:00
mc_cameri
b9c3ccdf88 git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@598 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-12-17 22:18:01 +00:00
mc_cameri
90251c6011 git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@595 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-12-17 10:53:38 +00:00
amber
ea99e6c3f7 Fix compile errors
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@578 54d463be-8e91-2dee-dedb-b68131a5f0ec
2004-12-16 03:28:42 +00:00
mc_cameri
4f34ae0c68 git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@577 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-12-16 01:53:35 +00:00
codemaster
6cfcb5f217 * common/mmo.h: changed base_level and job_level to unsigned int to increase max levels
* char/char.c: added a NULL check for the file in parse_friend_txt
* map/atcommand.c/.h: added @clearweather (thanks to Dexity)
* map/charcommand.c/.h: added #spiritball
* map/mob.c: fixed a compiler warning (ln was an int and was supposed to be an unsigned long int)

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@563 54d463be-8e91-2dee-dedb-b68131a5f0ec
2004-12-13 22:15:58 +00:00
Lupus
07eee64dc7 MAIL: moved all string messages from HARDCODED strings to
msg_athena.conf

git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@548 54d463be-8e91-2dee-dedb-b68131a5f0ec
2004-12-12 21:19:14 +00:00
amber
b2674befff Fix some file types
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@404 54d463be-8e91-2dee-dedb-b68131a5f0ec
2004-11-28 19:58:22 +00:00
mc_cameri
58eb17da2b git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@356 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-11-24 23:13:58 +00:00
mc_cameri
1102e9d06b git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@355 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-11-24 22:44:30 +00:00
mc_cameri
d2afe2f5fb git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@334 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-11-23 10:35:02 +00:00
mc_cameri
974c37433b git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@331 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-11-22 21:25:28 +00:00
mc_cameri
2e0c62e875 git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@311 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-11-22 10:26:39 +00:00
mc_cameri
79324826fd git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@295 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-11-21 15:11:59 +00:00
mc_cameri
0be79fa569 git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@292 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-11-21 14:31:17 +00:00
mc_cameri
fcfbef1124 git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@290 54d463be-8e91-2dee-dedb-b68131a5f0ec 2004-11-21 13:08:44 +00:00