787 Commits

Author SHA1 Message Date
Cydh Ramdh
7d929a06a3 NPC Market Shop support
* New shop script definition: `<map name>,<x>,<y>,<facing>%TAB%marketshop%TAB%<NPC Name>%TAB%<sprite id>,<itemid>:<price>:<quantity>{,<itemid>:<price>:<quantity>...}`
* Added script command to update shop NPC: 'npcshopupdate "<name>",<itemid>,<price>{,<stock>}'
* Added NPCMarketDB (DBMap) for market data persistance method.
* Added `market_table` definition for market table in conf/inter_athena.conf.
* Thank to @aleos89, @Lemongrass, @icxbb-xx, merged HerculesWS/Hercules@cf19b26.

NOTES:
* Minimum client needed 2013-12-23 (but this client has bugs there-and-there).
* There's new table, see `upgrade_20150327.sql`.
* Market shop doesn't support discount.
* Added items by script `npcshopitem` or `npchopadditem` will be assumed as persistance items, will be loaded on next script reload or server start even market_shop NPC does't list them (unless NPC is not exists, entries will be removed).

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2015-03-27 21:11:07 +07:00
Playtester
d4aa4c70a7 Walkpath loop fix (fixes #198)
- Move requests one cell west will now be ignored if the target cell is occupied
- You can now set official_cell_stack_limit to 0 to completely disable it including the limitation above
2015-02-28 15:41:18 +01:00
Cydh Ramdh
c92915b6cd DEFAULT_MAP clean up
* Moved hardcoded `DEFAULT_MAP`, `DEFAULT_MAP_X`, and `DEFAULT_MAP_Y` definition to conf/char_athena.conf: `default_map`, `default_map_x`, and `default_map_y` for `DEFAULT_MAP`
* Default map existance check only will be checked once, after map_index finished load by char-server, previously map-server also do a check that maybe cause unnecessary debug message
* `instance_start` value should be init'd with `map_num` not by `map_num + 1`. I was causing send extra 1 empty map to char-server.
* A little clean up in `chmapif_parse_getmapname()` and `doc/packet_interserv.txt`

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2015-02-19 15:02:14 +07:00
Cydh Ramdh
36be5aa5b9 Homunculus intimacy check
* Moved out intimacy required to evo the homun to conf/battle/homunc.conf: 'homunculus_evo_intimacy_need'
* Moved out intimacy reset after evo the homun to conf/battle/homunc.conf: 'homunculus_evo_intimacy_reset'
* Follow up eca4fa0e38c060c0f9918d11899ee00d099a16f7, missed the '/100' for intimacy info.
* Corrected intimacy set after using skill 'HVAN_EXPLOSION' to 1 (100, Hate with passion) instead of 2 (200, is for HFLI_SBR44)
* Init 'hardcoded' homunculus intimacy grade tables for some lookups

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2015-02-16 00:32:41 +07:00
aleos89
73243e8e9d Fixed #138 - Updated trap visibility to official settings. 2015-01-23 14:39:13 -05:00
aleos89
4860a7c7c4 Merge pull request #191 from rathena/cleanup/petdb
* Separated pet_db for Renewal & Pre-Renewal to avoid non-existant monster in different mode.
* Cleaned script command in pet_db.txt file, just point it to doc/script_commands.txt. Read them there!
* Separated damage value for petskillattack2 to its own var 'damage', that previously use 'lv' var to store the value.
* Added config 'pet_ignore_infinite_def' in conf/battle/pet.conf,
- If disabled (val:"no"), fixed damage from pet script 'petskillattack2' will be adjusted to 1. Example, just like player attacks Shining Plant.
- Enabled by default. Previously, fixed damage ignore the infinite defense, that's why it's enabled by default.
- TODO: Correcting the logic and maybe also confirm the correct behavior!
* Added validation for pet script commands,
- Skill for petskillattack, petskillattack2, & petskillsupport
- SC range for petrecovery.
* Cleaned up some source documentation.
2015-01-13 12:43:07 -05:00
Cydh Ramdh
0987aeeb5d Official Item BindOnEquip Support
* Added item flag value: 8 to init default item with BindOnEquip. Item with this flag will be character bound item once equipped.
* Added optional config 'default_bind_on_equip' in conf/battle/items.conf to set default bind type. By default the type is character bound.
* Hercules merge 1f5161a2bd

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2015-01-02 14:44:49 +07:00
Cydh Ramdh
62bdc99f05 A little cleanup for Pet DB
* Separated pet_db for Renewal & Pre-Renewal to avoid non-existant monster in different mode.
* Cleaned script command in pet_db.txt file, just point it to doc/script_commands.txt. Read them there!
* Separated damage value for petskillattack2 to its own var 'damage', that previously use 'lv' var to store the value.
* Added config 'pet_ignore_infinite_def' in conf/battle/pet.conf,
  * If disabled (val:"no"), fixed damage from pet script 'petskillattack2' will be adjusted to 1. Example, just like player attacks Shining Plant.
  * Enabled by default. Previously, fixed damage ignore the infinite defense, that's why it's enabled by default.
  * TODO: Correcting the logic and maybe also confirm the correct behavior!
* Added validation for pet script commands,
  * Skill for petskillattack, petskillattack2, & petskillsupport
  * SC range for petrecovery.
* Cleaned up some source documentation.

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-12-31 23:38:57 +07:00
Cydh Ramdh
47e33084ea A little clean up in atcommand
* Typo "status" should be "equip" at 267d521
* Follow up 3428ae2, use the 'parent' command name -atcommand_checkalias()- to compare the command, so it won't breaks alias recognition

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-12-09 13:22:40 +07:00
Cydh Ramdh
5c6afd7ea3 Clean up something RENEWAL_CAST
* Moved additive bonuses (reducing/increasing) to first calculation before the rate adjustment
* Corrected bFixedCastrate, shouldn't be stacked. Example between Puente_Robe (15012) is -3% and +10 Rafini_Staff (1649) is -10%, only -10% will be used not -13%.
* Reversed some value assignment, `-=` to `+=` and other part that affected by this changes.
* Also as follow up c3e488e & 4f4d8fe, fixed `bonus2 bFixedCastrate,"sk",rate;`
* Corrected `bFixedCastrate` for Krieger_Knuckle2 (1827) only for skill MO_EXTREMITYFIST
* Moved default the 20% of fixed cast rate to conf/battle/skill.conf `default_fixed_castrate`

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-11-29 01:54:56 +07:00
Cydh Ramdh
a212839665 Fixed #122 @accountinfo issue
* Now inter-server always asking to login-server for account info instead using direct query to `login` table. Merged from HerculesWS/Hercules@da233d5
* Inter-server packet usage: HA 0x2720 & AH 0x2721
* Additional changes from inter-server to map-server to parse the account info result with type 1 by using packet 0x3808 for clif_account_name(). Just some changes from @lighta at his old diff
* Moved some messages to char_msg.conf
* Updated inter-server packet documentation

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-11-22 18:58:29 +07:00
Playtester
d20ac845d1 Direction fixes
- Updated the config setting attack_direction_change from 15 to 0 (official value); that means that a unit's direction will no longer change when it attacks; knock-back effects from e.g. Firewall will depend on the last direction the target walked into instead (bugreport:1322)
- Ensured that the default direction of a monster is always "north", so that immobile monsters will now always be knocked back to the south by e.g. Firewall on default settings, unless a skill like e.g. Backstab changes their direction (bugreport:1322)
2014-11-18 12:03:57 +01:00
Cydh Ramdh
796b97455c * Fixed #109
- @charunban is fully usable now
  - Updated Inter-Server Packet documentation
* Added misc battle config, 'disp_servervip_msg' (default: no)

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-11-17 20:19:30 +07:00
Playtester
e7e8b5454b Land Protector, Ground Skill Splash, Storm Gust Knock-back
- Land Protector now behaves like on official servers (bugreport:5237)
  * Land Protector now protects from units being placed on it, no matter if they have splash range or not
  * Land Protector no longer protects from damage from units not outside Land Protector that splash inside
  * Meteor Storm no longer shows meteors falling if they would land on Land Protector
  * Pneuma can no longer be placed next to Land Protector
  * Also cleaned up the code a bit, so the checks are done where they should be done
- Ground skill splash ranges updated to their official values (bugreport:5237)
  * Lord of Vermilion places units in a 11x11 area with 3x3 splash range each
  * Storm Gust places units in a 9x9 area with 3x3 splash range each
  * Heaven's Drive places units in a 5x5 area with no splash range
  * Venom Dust now has a splash range of 3x3 and is consequently larger than before
- Storm Gust's knock-back behavior updated to official (bugreport:5237)
  * Each of Storm Gust's units will knock back "Away from center"
  * As units in the south-west are processed first, the knock-back direction will usually be north-east
  * At the edges the knock-back direction will be "to the outside"
  * Land Protector and Ganbantein will influence the knock-back behavior strongly, e.g. if Storm Gust has a hole in the middle, it will have a "suck in" effect
  * Added a config option for those who want the old "random direction" behavior from eAthena
2014-11-15 16:32:26 +01:00
Playtester
04a1173f7d Plant damage, Land Mine, minor fixes and improvements
- Fixed up the damage code in regards of damage against plants (bugreport:9380)
  * Rewrote DAMAGE_DIV_FIX so that it rounds damage down when number of hits is negative (damage split on hits)
  * Created a function battle_apply_div_fix that does not only call DAMAGE_DIV_FIX but also makes sure that damage can only become 0 when the custom config setting skill_min_damage is not set for the current skill type
  * skill_min_damage is now 0 by default (official: all types can fail against plants as long as skills have negative number of hits), if set, all skills will deal as much damage as hits
  * Restructured and renamed function now known as "is_infinite_defense" that will work for all 3 damage types and returns if damage is infinite for the current situation, it will now also properly consider all "MD_IGNORE" modes
  * Fixed the order of processing of all 3 skill types in regards of plant damage: first all calculations are done, then plant damage is applied and then DAMAGE_DIV_FIX is applied
  * Sonic Blow and Rapid Shower are now skills with negative number of hits (i.e. they can't hit plants officially)
  * Traps can no longer ignore plant mode (only way to damage plant more is via status changes)
  * Final Strike is now able to hit plants (deals 1 HP damage)
  * When left-hand-wielding, you will now always deal 2 damage to plants per attack, regardless of whether double attack triggers or you don't even have a weapon in the right hand
  * There will no longer be backhand damage to plants (Katar)
- Land Mine is now a single target skill, the trap still triggers in a 3x3 area, but will only hit the first target that touches it (issue:99)
- Changed the "Don't return reflect damage" flag from 0x1000 to 0x1000000 as apparently the other flag was already used; updated function description so it's easier to see
- Improved SC_SIGHTBLASTER structure slightly
- Typo fixes and description improvements
2014-11-07 23:28:54 +01:00
icxbb-xx
d62d89d59c Fixed Bug.
- Snap dodge bug (bugreport:3510)(Hercules 76662cc)
2014-11-05 00:14:57 +07:00
Playtester
9d50c57e8a No cell stacking implemented (official version) (bugreport:9378)
- Split config cell_stack_limit into custom_cell_stack_limit (previous feature) and official_cell_stack_limit (see below)
- Expanded map_count_oncell by a flag parameter, currently only one flag is supported: only count standing units (needed for official cell stack feature)
- Added a new function map_closest_freecell that will return the closest free cell using the same order that official servers use
- Monsters will now actively search for a free cell when starting to walk randomly and when unlocking target
- When any unit finishes walking (regularly) and is not on a free cell, it will now actively search for a free cell
- Step actions will be delayed until a suitable cell was found, they will even be executed when the player walked slightly out of attack range
2014-11-02 18:56:06 +01:00
Playtester
b6b6b1366a Autobonus in combos and monster target drop
- Fixed Autobonus not working in combos (bugreport:8300)
  * Combos will now have a "pos" variable that saves the combination of equipment slots used
  * Autobonus now works with combined positions rather than just a single position
  * Autobonus should now also work with all equipment slots instead of just the first 15
  * This does NOT fix problems with multiple auto-bonuses activating at the same time
- Monsters will now stop instantly if their target is completely non-existent
  * This is mainly for looters that had their loot taken
  * Hide and most other situations still use the configuration setting monster_chase_refresh
2014-11-01 12:16:41 +01:00
Playtester
902c920b73 Knockback, stop effects and Skid Trap reworked, monster chase and direction updates, code optimizations
- Created a new function unit_blown_immune that will now serve as the central function to determine if an object can be knocked back or stopped (bugreport:7637)
  * Moved the check code from skill_blown to unit_blown_immune
  * Several stopping effects and traps will now use unit_blown_immune to check if the object can be stopped, if not, the object will always move to its target cell before stopping
  * Bosses and monsters immune to knockback will now no longer be stopped by such traps
  * Expanded the configuration skill_trap_type and moved its checks into unit_blown_immune, so it's possible to switch the "no stop" behavior off for GVG/BG and monsters individually
  * Long-term we should make all skills use this function to check for knockback immunity, it will make the checks a lot cleaner and more centralized
- Monster chase range updates (bugreport:7637)
  * Updated monster_chase_range in monster.conf from 1 to 3; I originally thought official value is 1, but doing some in-depth tests myself I realized it's 3 for the most important situations
  * When a monster cannot issue new "move" commands because it was affected by a status change, but is still moving due to knockback immunity, it will no longer unlock its target and stop
  * Fixed a bug that always caused the chase path monsters calculated to be 1 cell too short causing them to recalculate their path one cell before their goal every single time
- Fixed the direction calculation once again and optimized it at the same time (bugreport:9373)
  * Now the calculated direction is 100% official, really truly, checked it myself with every single cell and various skills
  * Added a new function map_calc_dir_xy that allows to check for a direction between two cells without the need of a block_list
  * map_calc_dir will now just use map_calc_dir_xy to avoid duplicate code
- Implemented Skid Trap properly (bugreport:9373)
  * The direction of the knockback will now be "away from position of the caster during cast" rather than "away from trap"
  * Skid Trap will now stop the target for 3 seconds; this works even in GVG/BG and on bosses, even though the actual knockback doesn't happen
2014-10-30 20:12:18 +01:00
Playtester
b43b855d21 Improved Icewall walk block implementation
- Moved the configuration setting "icewall_walk_block" to monster.conf
- Split the configuration into mob_icewall_walk_block and boss_icewall_walk_block so it can be configured for bosses separately
- Expanded the configuration
  * If the value is set to 1, monsters on an ice wall cell will behave like trapped monsters, that means they won't be able to move at all, they will use idle skills and if they are attacked while nobody is in their attack range, they will use their rudeattacked skills; this is equal to official behavior of bosses
  * If the value is set to 2-255, it will behave as before but monsters in the AI loop now use both idle and chase skills, but will no longer use their rudeattacked skills even if attacked from range; this is equal to official behavior of normal monsters
  * Official values would be "220" for normal monsters (loop until Icewall expiration) and "1" for bosses (behave like trapped monster) on most official servers, but as some official servers have a less exploitable implementation (from looping AI only a limited amount of times up to outright blocking Icewall on all maps with bosses), we decided for less exploitable default values for now which are 75 for normal monsters (loop 15-35 seconds) and 0 for bosses (impossible to trap in Icewall)
- Cleaned up the rudeattacked code a little so it's easier to read
2014-10-28 23:40:39 +01:00
Playtester
a52b010668 - Merged config option knockback_left from Hercules
* Now the default direction is "east" and consequently the knockback direction is "west" when standing
  * This means if the source cell (ground target center or position of caster) is on the same cell as the target, it will be knocked back to the west
  * This also can effect other things like how an object is placed when cast on the cell you are currently standing on
  * If you disable the option it will use the old behavior and use the direction of the unit as default direction (and backwards as knock direction)
  * Special thanks to kisuka and Michieru for the original implementation: 2b8d5013ea
- Optimized the knockback / instant movement code
  * clif_blown will now call both clif_slide and then clif_fixpos, this is what Aegis does when any instant movement effect occurs and ensures proper updating of the position
  * skill_blown will call clif_blown and ensures the correct client information already, so it's no longer necessary to manually call clif_slide and clif_fixpos after it
  * replaced all calls of clif_slide and then clif_fixpos in row with a single call of clif_blown, makes the code look a lot cleaner
  * I tested over 20 knockback situations including knockback of frozen target and it worked fine for me, please report if there is still anything wrong (was why fixpos commented in the first place?)
2014-10-19 11:58:57 +02:00
Playtester
5540d89cb0 Official Icewall implementation and other fixes
- Reverted all the icewall-related changes done in SVN r15777 and following as testing shows they aren't official and are actually pretty exploitable (bugreport:7412)
- Instead implemented the official icewall characteristic that monsters can only leave an icewall cell to the west or south, the changes include:
  * The "sight" path check no longer checks for the current cell so standing on an icewall allows you to see/attack into any direction
  * The path finding will still ignore the current cell as before but the walk routine will not allow to walk east or north while standing on an icewall cell
  * This leads monsters in the situation where they go through an AI loop not allowing them to escape the icewall (if their target is north or east of them)
  * Monster in this situation will use idle skills and if they get attacked will use their rudeattacked skills if available, similar to traps like Spiderweb
  * Added a configuration icewall_walk_block that allows to configure how long a monster should go through the AI loop before the server allows it any movement, this "safety" system is official and seems to equal about 75 AI loops; if you want to disable the whole icewall system so that monsters don't get stuck in icewall at all, just set this to 0
  * Here are videos from jRO showing how this system works: http://ragdo.blog56.fc2.com/blog-entry-763.html
- Implemented the official calculation for "direction"; now you will be considered horizontal/vertical/diagonally aligned with a target cell in the exact same way as on official servers, this is for example used to determine whether an icewall or a firewall should be horizontal, vertical or diagonal; the only thing that is still unofficial is the default direction (officially always "west"); effectively now there are more situations considered diagonal than before
- Fixed a compiler warning (converting double to float)
- Further cleanups on the idle skill use code for immobile monsters and monsters near a player but without a target (now skill using will always go via mob_unlocktarget)
  * This also fixes that monsters switched to idle mode and start to use idle skills one second too late
2014-10-18 16:52:55 +02:00
Playtester
5110ddbaf4 MVP item drop mode setting added
- Added a new configuration setting "item_drop_mvp_mode"
* By default "item_drop_mvp_mode" is set to official order (0) which is always starting at first, then going to the second if the first didn't drop and only checking the third if the second didn't drop either
* @mobinfo will now properly consider this and display the effective chance, so if the MVP has 3 MVP item drops at 50%, the first item will display the chance 50%, the second 25% and the third 12.5%, this should help a lot against drop rate confusion (e.g. players wondering why always only the first item drops when all three are displayed at 100%); this only applies to official order (0)
* When "item_drop_mvp_mode" is set to random order (1), MVP item drops are checked in random order, but if one MVP item drops, the process will be canceled, so you will never get more than one MVP item no matter how high the drop rate is
* When "item_drop_mvp_mode" is set to all items (2), all MVP item drops are checked and have a chance to drop, regardless of other MVP items already being dropped or not (i.e. there is a chance that the player gets all 3 MVP items)
2014-10-13 21:11:16 +02:00
Playtester
2c86ee4356 Monster skill use behavior, ranges, position lag fixes
- Updated monster skill use behavior so monsters use skills the same way and at the same rhythm as official servers (bugreport:009326), the changes include:
 * Unified the "monster can't move by default" and the "monster trapped" code as it really should behave exactly the same
 * Fixed a bug that caused the "monster skill use" routine to be called 20 times more often than it should in some situations
 * When a monster attacks you and you run away from it, the monster will now check if it has a ranged skill on "attack" state before switching to chase state
 * Monsters will now always do a normal attack before using "attack" state skills
 * Fixed a bug that caused monsters to switch to idle mode and never use their chase skills when they get hit continuously
 * Changed default for skillrange_from_weapon from 30 (all but player) to 0 (none); monsters will now use all skills at the skill range and not at their own attack range, if they get tanked from farther away than skill range, they won't use these skills
- Updated ranges to work as on official servers (bugreport:009326), the changes include:
 * Implemented new functions "check_distance_client" and "distance_client", that instead of the server-sided square range system use the circular one that the client uses; these functions should be used for units that send their commands via the client (players mostly)
 * Applied the new distance algorithm to some player-specific range checks, players will now have a circular attack range that reflects their attack range on the client; this makes it impossible to hack the client for more diagonal range
 * Removed the arbitrary +1 range bonus at range checks; as monsters now react fluently, they won't need it anymore, that means a monster with for example 4 attack range will now only attack targets within a 9x9 area around it, the moment you step out of this area, the attacks will stop (if the monster can move it will follow you); as for players, the extra cell attack range when on a linear line to the target now is integrated into the distance algorithm, that means a player with attack range 4 can attack from 5 cells away when directly on line with a monster, but no longer diagonally as range is circular for players now
 * Implemented a new "step action" feature to reflect official chase range behavior; when an attack or skill is used inside the attack range, it will act exactly as now, the skill is used once the signal from the client was received; however, if an attack or skill is used outside the attack range, the player should move into the chase area which is 1 cell inside the attack range border; the client actually sends us where to use the attack / skill from, but previously we just dropped that information the moment an attack request came; now instead of stopping the player instantly on an attack request, the player will continue moving to the target cell and then automatically use the command received earlier (it will be remembered); this change was absolutely necessary as the client sends the attack request slightly before attack range is reached, execution on official servers only takes place on every full cell moved; the new system copies this behavior
- Implemented an improved hit-lock system (bugreport:007460), the changes include:
 * MVPs are no longer immune to being stopped by a hit unless they used Endure
 * When hitting any unit, it will stop for its "dMotion" interval, exactly at the end of "dMotion" it will continue walking (official behavior); this helps getting more "move" packets to be displayed
 * The unit that was hit will be immune to being stopped for another "dMotion" interval, this allows to slow down any units by hitting them frequently, but makes it almost impossible to completely stop them forever (depends a lot of ASPD and dMotion value); this does not affect special hit-lock properties (some skills and events should set delay anyway)
 * The unit that was hit will no longer be "pulled" to the next cell; this caused a lot of position lag, it should be much better now
- Fixed Sightrasher missing its variable cast time in Renewal
2014-10-05 17:26:06 +02:00
Playtester
cfef8a0088 Rewrote the hard monster AI. Monsters will now behave a lot closer to official servers:
* Monsters will now attack immediately when they are chasing a target and it comes into attack range (bugreport:7370)
* Monsters will now chase their target during their aDelay, but they still have to wait for aMotion to be able to move again (bugreport:9269)
* Monsters will now rethink their chase in a configurable interval (see monster_chase_refresh in monster.conf), official value is once per cell, previously it was once per 3 cells
* Monsters will now stop when they rethink their chase and their target is gone (player hides or target loot was picked), regardless of the monster_ai setting (note: if you want the old, stupid behavior, just increase monster_chase_refresh instead)
2014-09-27 23:50:45 +02:00
Cydh Ramdh
9b4d922ef4 Bug Fixes:
* Follow up 2d2991a, remove trailing spaces in inter_athena.conf
* Added `bound` field on `picklog` table (bugreport:9240) Thank @icxbb-xx (Napster)
* Fixed Randomize Spell infinite loop. Failure of skill improvise db reading. (bugreport:9288)
* Added **max_extended_aspd** for caping max ASPD for KO/Rebellion, default is 193. Pointed by @raynra & Ziu
* Mail attachment
  * Added `bound` field on `mail` table, since group with PC_PERM_TRADE_BOUNDED can put bound item into attachment
  * Fixed wrong data type causing wrong zeny amount (bugreport:9291)
* Fixed item color issue for bound item (bugreport:9238)
  * Stackable item shouldn't be displayed as yellow color
  * Equip doesn't shown as yellow after relog or item is moved
* Silence status immunity for Renewal (bugreport:9227)
  * Bleeding (SC_BLEEDING): Vit -> Agi
  * Silence (SC_SILENCE): Vit -> Int
  * Sleep (SC_SLEEP): Int -> Agi
  * Thank @Playtester, @Lilith-, partial merge of Hercules:6f26451
* Fixed status check when cast a skill to hidden target
  * Stone Curse shouldn't be casted to hidden enemy when the caster has intravision (bugreport:9266)
  * Added **INF3_HIT_HIDING** for skills that *maybe* have effect to/can hit the hidden target. Previously, every Earth Element skills *always* had it, doesn't matter ground skill or single-target skill
  * **!TODO: Confirm other skills that have ability for this!**
  * **!FIXME: For now, I rely as the previous check did, I put some Earth Element skills (and) with area/ground effect**
* Correcting Devotion behavior (Hercules:e7be725, 41f28c0)
  * Failing to cast Devotion to the 6th player
  * Only player who devotes other that 'shout' Auto Guard when it active also with the walk delay
  * Status icon that inherited from devoter won't be displayed at devoted player
  * Reflect Damage on devoted player won't reflect normal attack, only melee skill attack
  * Added config **devotion_rdamage_skill_only** for backward compability, ignore the behavior above

**IMPORTANT**
  * Please import sql-files/upgrades/upgrade_20140915_log.sql
  * Please import sql-files/upgrades/upgrade_20140915.sql

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-09-15 18:02:49 +07:00
aleos89
2d2991a1fd TXT reference removal from emulator.
- Removed any remaining TXT and SQL references from files.
- The 'make sql' command is now replaced by 'make server'.
- Removed account.engine feature as it is no longer needed.
- Moved login and IP ban configs to inter_athena.conf.
- Cleaned up cmake files.
- Miscellaneous clean ups.
2014-09-03 17:44:35 -04:00
Euphy
3b2762ca3c Enable NPC logging through 'logmes' by default.
- Commented some unnecessary log messages.

Bug fixes:
- M_DOPPELGANGER had too much HP. (Hercules 9cd3ec0)
- Huuma_Swirling_Petal should not have an element. (bugreport:9073)
http://rathena.org/board/tracker/issue-9073-huuma-swirling-petal/

Signed-off-by: Euphy <euphy.raliel@rathena.org>
2014-08-22 16:06:32 -04:00
Cydh Ramdh
70b8b8bc38 Bug Fixes:
- Fixed map-server crashed caused by Wall of Thorn when atatcked by Fire element (with wide range skill unit, bugreport9102). Also reverted some changes in c046668
- Added config conf/battle/skill.conf 'arrow_shower_knockback', as follow up 453b6d0. Direction of Arrow Shower knockback depends on Arrow Shower location

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-08-22 23:28:48 +07:00
aleos89
60b0ed9c8b Bug Fixes
* Fixed mouse cursor displaying incorrectly for PvP scenarios. Thanks to Napster. (bugreport:8605)
* Fixed summons getting stuck when master gets too far off screen or changes maps. (bugreport:9152)
* Added a battle_config 'spawn_direction' for keeping a  character's face direction when teleporting/changing maps/logging in. Default is always North (official). (bugreport:8754)
* Cast sensor mobs should always target the caster whenever any skill is used. (bugreport:8555)
* Added a packet version check to char_del_option based on client date. (bugreport:8521)
* Script command query_sql will now return -1 on an empty result or failed result. (bugreport:5937)
2014-08-16 16:15:50 -04:00
aleos89
4eeb10042c Added some options for idletime. (Herules e08c05a) 2014-07-31 09:54:22 -04:00
aleos89
c8758478b4 Bug Fixes
* Fixed the stun effect from Berkana Rune. (bugreport:9057)
* Adjusted Thorn Wall to be a placeable skill and to ignore caster's % damage cards.
* Field Manuals (SC_EXPBOOST and SC_JEXPBOOST) now increase EXP gained from NPC quests (through the getexp script command). (bugreport:9091)
* Lif's Mental Change no longer fully restores her HP and SP upon activation.
* Fixed fakename atcommand not working while disguised. (bugreport:8896) (Hercules 1e492e3)
* Fixed speed atcommand resetting when swapping equipment/changing maps. (bugreport:8915) (Hercules 37fdcba)
* Cleaned up some compile warnings.
2014-07-24 11:45:57 -04:00
Cydh Ramdh
7fd6776194 - SC_BANANA_BOMB_SITDOWN & SC_SITDOWN_FORCE force player to wait unti duration ended before standing. (bugreport:9074) Confirmed by @raynra & reigneil
- Corrected check to finalizing vending/buyingstore autotrader datas, follow up 171e2f2. Thank Stingor
- Autotrade persistance updates: (suggestion from Napster)
--- Kicked player will be removed from vending or buyingstore table. This also avoid 'confusion' lookup when server restarted after the kicked player logged back and does autotrade.
--- feature.autotrade_direction, added -1 value to use last player's direction
--- feature.autotrade_head_direction, added for player's head direction
--- feature.autotrade_sit, added -1 value to use last player's condition (standing/sitting)
--- Please import/execute upgrade_20140723.sql

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-07-23 13:26:04 +07:00
Cydh Ramdh
2bfe1d6f6e - Fixed bugreport:9146, wrong message for msg 380. Thank Napster
- Changed Monster, Mercenary, & Elemental defense element check, from %10 to %20, to support 10 custom elements. Thank @Atemo
- Updated some arrays in ACMD_FUNC(mobinfo)
- Removed element number limit for each level in db/[pre-]re/attr_fix.txt
- Allowing 'getitembound' and 'getitembound2' to put bound type 0 (no bound) for scripting easier
- Updated doc/mob_db.txt, follow up ca4a0ea
- Updated map_msg_idn.conf

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-07-19 13:50:46 +07:00
Cydh Ramdh
401a7161ce * Follow up 462b2be, wrong check for itemdb_isstackable(). Thank Napster
* Follow up 171e2f2, added battle config 'at_monsterignore' at conf/battle/misc.conf to makes autotrader cannot be attacked. Thank @Lemongrass3110

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-07-16 22:03:36 +07:00
Cydh Ramdh
171e2f2be9 Bug Fixes:
- Failure when initializing autotrade persitance for PACKETVER < 20120201 or NEW_CARTS, ENABLE_SC_SAVING aren't defined
- Added 'feature.autotrade_open_delay' config at conf/battle/feature.conf to give delay to open vending/buyingstore by autotrade persistency (bugreport:9077)
- Add immediate save after vending/buyingstore opened to avoid missing sc_data (for SC_PUSH_CART) when server terminated before saving routine (bugreport:9077)
- Disable to trigger NPCE_LOGIN (and NPCE_LOADMAP?) for autotraders, avoid vending_reopen & buyingstore_reopen failure (bugreport:9077)
- Set player's state, 'monster_ignore' when autotrade
- EXP calculation overload (bugreport:9127)
- Added macro apply_rate(val,rate) & apply_rate2(val,rate,per)

Thank you all for reports & helps

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-07-16 17:21:58 +07:00
lighta
a24da6d302 -Apply login_refac (from old refac branch) in same way as char_refac, each interface now have his own file.
-Remove _sql from some file.
Thx to Euphy for helping with documentation.
2014-07-15 19:49:32 -04:00
aleos89
237579c957 Bug Fixes
* Corrected some battle calculations for status changes to be applied during skill calculations. (bugreport:9109)
* Fixed Fire Expansion hitting players in all maps. (bugreport:9056)
* Fixed skill duration for Elemental Shield. (bugreport:9078)
* Fixed bSetDefRace and bSetMDefRace not zeroing out values. (bugreport:9108)
* Corrected Inspiration checking for the wrong damage formula. (bugreport:9098)
* Fixed combo type skills causing issues with usable items. (bugreport:9090) (Hercules 0100bae)
* Updated usable skills while riding a Warg. (Hercules cc4c87c)
* Updated the display message for using items that have a delay. (bugreport:9107)
* Fixed an issue when players couldn't attack they also couldn't talk to NPC with mob view IDs. (Hercules 9dd6ee6)
* Reverted 7a9aa7f so that the prompt script command will return 255 on cancel. (bugreport:9104)
2014-07-15 13:47:43 -04:00
Cydh Ramdh
3d27b7e109 Bug Fixes:
- Kunai Splash (KO_HAPPOKUNAI) ammo check failure crashing map-server (bugreport:9112)
- Fear Breeze status (SC_FEARBREEZE) makes impossible to critical for single hit (bugreport:8197)
- Missing item avail check at NPC Cashshop causing item with item_avail cannot be bought (bugreport:9106)
- Swapped value between 'nk' and 'inf' for MH_LIGHT_OF_REGENE & MH_OVERED_BOOST
- Multi-hit by SC_FEARBREEZE that possibly causing map-server crashed if no ammo equipped
- Thank to all bug reporters
Misc:
- Add enum for clif_damage type, e_damage_type
- Add check for Autotrade Persistency, make sure to kick player who fail open vending/buyingstore

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-07-12 07:38:32 +07:00
Cydh Ramdh
be9ffaf7e6 - Fixed 'atcommand' script failure for group with 'command_enable: false' (bugreport:9050)
- Replaced 'atcommand_max_stat_bypass' config (conf/gm.conf) to group permission 'bypass_max_stat'

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-07-07 12:26:07 +07:00
Cydh Ramdh
462b2bebdb * Bug Fixes:
-- Added itemstack check when init autotrader (bugreport:9077)
-- 'getitem' issue, gave unidentified item (bugreport:9075), follow up 62a2813
-- Invalid Def & Mdef reduction of SC_ARMORCHANGE & duration (NPC_STONESKIN & NPC_ANTIMAGIC), should be percentage (bugreport:9076)
-- Invalid Effect duration & Reflect chance of SC_MAGICMIRROR (NPC_MAGICMIRROR)
-- Wrong usage of script_isstring() for script commands: addspiritball, delspiritball, & countspiritball
* Misc:
-- Moved mail send progress to mail.c mail_send() from clif.c clif_parse_Mail_send()
-- Moved hardcoded flood protection when send a mail to 'mail_delay' in misc.conf

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-07-01 16:29:19 +07:00
Cydh Ramdh
c0326df96b * Added setting for resetting reuse skill delay homunculus, 0x80 (Disabled by default).
* Follow up 22dea1f

PS:
Hmm, as "suggested" by Darkpurple at bugreport:8989, idk it's bug or it should be like that. And, I added the setting option for a whole Homunculus (not for spesific skill/homun id yet), just like "reset reuse skill delay when vaporized" does.

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-06-28 15:38:49 +07:00
Cydh Ramdh
6c5d4a730f * Follow up 7cd82d0
-- Changed itemdb_array (array) to itemdb (DBMap)
-- Removed itemdb_other (DBMap)
-- Changed MAX_ITEMDB to MAX_ITEMID, by default limit is USHRT_MAX (65,535)
-- Changed item_drop_ratio_db (array) to mob_item_drop_ratio (DBMap)
-- Now all item datas stored in itemdb (DBMap) and mob item ratio datas in mob_item_drop_ratio (DBMap)

PS: I just realized that db/import/mob_item_ratio.txt doesn't work, because it loaded after mob_db.txt (another thing to do)
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-06-20 19:13:45 +07:00
Cydh Ramdh
267d521c00 Bug fixes:
-- Pin code issue after char_refac (bugreport:9027)
-- Delete date issue after char_refac (bugreport:9029)
-- Stuck when drag item from/to inventory/cart/storage if the item cannot be moved. (bugreport:8935)
Command:
-- Added @cloneequip to clone other's equipments.
-- Added @clonestat to clone other's statuses.
-- Thank Antares for the suggestion, http://rathena.org/board/topic/95076-new-atcommands-suggestion/
Permission:
-- Added 'bypass_stat_onclone' to make user who use @clonestat can bypass stat limit.
-- Change 'atcommand_enable_npc' to 'command_enable' permission to enable use command while talking with NPC. Suggested by @aleos long time ago.
Misc:
-- Correcting some checks for bAddEff bonuses.
-- Moved status point calculaiton formula to PC_STATUS_POINT_COST, removing redundancy in pc_need_status_point and pc_maxparameterincrease.
-- Added pc_is_same_equip_index function to move all item index checks, removing redundancy in some cases.
-- Some random in-source documentations.
-- Updated map_msg_idn.conf.

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-06-15 18:50:21 +07:00
aleos89
7cd82d00db Increased item ID array size.
- Increased limit from 32,767 to 65,535.
- Still uses same amount of memory with doubled usable size.
- Adjusted CARD0_PET from -256 to 256.
- Please run both SQL files after applying this update to avoid values becoming corrupt.
- Tested and works on clients 2012-04-10 and up thanks to Cydh.
- Removed an unused SQL file.
2014-06-12 11:29:10 -04:00
aleos89
b44e5e11f2 Bug Fixes
* Fixed characters moving to unavailable slots using Character Moving System. Thanks to Napster. (bugreport:8987)
* Implemented MD_RANDOMTARGET. (bugreport:8781) (Hercules 10e6f1a)
* Implemented a new define for renewal status point calculation to separate from default renewal define. Thanks to @cydh. (bugreport:8784)
* Follow up to f511107 to fix a compile warning.
* Forcefully save characters before opening a Vending Shop to prevent invalid data from saving. (bugreport:8955)
* Fixed 2013-12-23 client from disconnecting after executing /limitedsale command. Thanks to Napster. (bugreport:9011)
* Fixed Elemental Shield displaying a warning to the console. (bugreport:9016)
* Elemental Shield requires a Blue Gemstone to cast.
* Adjusted Flash Combo to only consume 65 SP.
* Added missing skill_require_db defines for Episode 14.3 Part 2 skills in the pre-renewal database.
2014-06-10 12:24:19 -04:00
Cydh Ramdh
a8a44254e1 * Bug Fixes & Misc
-- Compiling errors when VIP_ENABLE (bugreport:9013)
-- Taekwon skills leftover when player was in Taekwon Ranker then changes to other job (bugreport:8973)
-- Follow up f511107.Fixed parentheses statement.
-- Follow up 6afcdeb. Updated check for char table.
-- Follow up 794c1a8. Wrong SC constanta order.
* Battle Config Updates
-- 'transcendent_status_points', stat point bonus for trans classes.
-- 'revive_onwarp', disable/enable to revive a dead player when set new position (warping).
-- 'taekwon_ranker_min_lv', minimum level bonus of Taekwon Ranker.
-- 'fame_taekwon_mission', fame point gained when complete Taekwon Mission.
-- 'fame_refine_lv1', fame point when success to refine to +10 forged weapon level 1.
-- 'fame_refine_lv2', fame point when success to refine to +10 forged weapon level 2.
-- 'fame_refine_lv3', fame point when success to refine to +10 forged weapon level 3.
-- 'fame_forge', fame point when success to forge level 3 weapon with 3 additional ingredients.
-- 'fame_pharmacy_3', fame point when success do pharmacy 3 times in a row.
-- 'fame_pharmacy_5', fame point when success do pharmacy 5 times in a row.
-- 'fame_pharmacy_7', fame point when success do pharmacy 7 times in a row.
-- 'fame_pharmacy_10', fame point when success do pharmacy 8 times in a row.

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-06-08 17:04:37 +07:00
Capuche
811e657674 Update mapcache.dat 2014-06-06 23:30:53 +02:00
aleos89
6afcdeb613 Cleaned up the Font System to properly save to the character.
Also expanded @itemlist to support costume item types.
2014-05-23 11:48:28 -04:00
Euphy
2688d78e6a Added a few missing 'changequest' commands to Alchemist job quest. (Hercules 4b4e573)
Minor cleanup in Wolfchev's Laboratory script.

Signed-off-by: Euphy <euphy.raliel@rathena.org>
2014-05-18 08:36:12 -04:00