- duel related messaging functions (added clif targets DUEL/DUEL_WOS).
- intif whisper to gm function
- day/night timers
- Rewrote the parse_console function to stop allocating/deallocating memory on every call.
- Modified chrif_charselectreq to receive the player's ip among the data.
- Added function clif_disp_message, which is the same as clif_disp_onlyself, except you can specify the targets (it sends a guild-chat packet)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7617 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Corrected the pet-armor field of the pet not being updated on equip/unequip of accessories, making them not show up inmediately.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7577 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Scripting system screwing up script position after mixing timers with menus.
- NPC attached AI mobs display as alive when dead.
- View data not updating after buildin_unitdeadsit.
[Improved]
- NPCE_LOADMAP to execute after all (area) objects are sent to the player.
- Simplified scripting system. sd will now use pointer to the script state itself.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7388 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Use charif_sendallwos rather than manually altering the buffers of each server.
- Use the id variable for identifying current char-server instead of scanning the connected servers for it (it's doing the same work twice)
- Added config setting sync_ip_interval to specify how long to go before updating ip. Defaults to 0 (disabled)
- Sending ip update packets will only be done when the ip changed now.
- Removed dns_str variables, and now char_ip_str/login_ip_str/map_ip_str will hold the unresolved dns address (as these variables have no use otherwise)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7360 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Applied said function around most of the code where needed. Removed includes for the OS/network system pretty much from every file (our socket.c file should handle this)
- Added clif_getip_long, which returns the ip as a long. Prevents having to include the files to define the int_addr structure in all files that include clif.h
- Made the GM mute request bypass the manner_system setting.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7285 54d463be-8e91-2dee-dedb-b68131a5f0ec
- buildin_checkcell, buildin_mobwarp, buildin_pcattack.
* [Improved]:
- buildin_skilluseid and buildin_skillusepos to accept a few more arguments.
- mob_script_callback to return sucess value.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7219 54d463be-8e91-2dee-dedb-b68131a5f0ec
- SL_STIN/SL_STUN have dex-reducable casting times now.
- Added a warning on item loading when an item is of equippable type but has no equippable position.
- Turning an alliance to an opposition won't work now during WoE
- Slaves can summon other mobs now. The only ones who can't do this are player summoned mobs.
- Merged the following functions for faster processing of items:
clif_storageitemlist + clif_storageequiplist = clif_storagelist
clif_guildstorageitemlist + clif_guildstorageequiplist = clif_guildstoragelist
clif_itemlist + clif_equiplist = clif_inventorylist
- Increased max knockback value support to 25.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7109 54d463be-8e91-2dee-dedb-b68131a5f0ec
- party Hp updates are no longer done each time the Hp is modified, but together with the party xy timer.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@7083 54d463be-8e91-2dee-dedb-b68131a5f0ec
- 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
- Disabled ontouch npcs triggering on hidden/chase-walk characters.
- Added the SC* code blocks relevant to SC_AVOID, SC_CHANGE, SC_BLOODLUST, SC_FLEET
- Added structure status_data to homun_data
- Added handling of BL_HOMUNCULUS in status_heal, status_damage.
- Cleaned up the homun-submitted code, moved the relevant code to status_calc_homunculus.
- Updated map-server Makefile to compile mercenary.* files.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6847 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
This only features the structures, status_* and clif_* (packets) and is
not functional yet in any conventional way, but doesn't interfere
with present functionality either.
I would only forget half of this stuff if I tried to do all at once.
Expect the rest somewhen within the upcoming week.
(This is not similar to jA's implementation.)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6681 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Added function clif_party_join_info which sends packet 0x1e9 each time a party-member joins. This packet (as redundant info as it has) should also contain the field for "adoptability", but that needs to be coded in yet.
- Added clif_ParseAdoptRequest which does the basic adoption handling. More checks and the reply packets still need to be coded in.
- Happy State and TK stances won't dispel on death now.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6521 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Moved Sharp Shooting display to the block with Auto-Counter (since that's the other skill that can show critical as well)
- Corrected some fields in the still packet (guild emblem being stored as a Long when it should be Short)
- Modified most fields of view_data to be unsigned shorts rather than signed ones.
- On-Touch NPCs will now make you stop walking when you trigger them.
- Reduced stun duration of most skills to 3 secs.
- ShadowJump/JumpKick will make you land on the target's cell now.
- Fixed Kaahi triggering only once per skill duration.
- Added the kaahi_heal_timer to the list of status change functions.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6516 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Bumped up PACKETVER to 7 to enable use of packets 0x229 and 0x22c
- Small cleanup on the calculation in the skill tree regarding spirit skills.
- Added missing next/prev initialization in chat-creation.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6359 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Removed use of packet 0x1c9 for skill_unit display, except for Graffiti (which is the only unit which requires the much larger packet)
- clif_getareachar_skillunit will sent the unit_id of UNT_ATTACK_SKILLS for traps (this is to prevent them from displaying on the client)
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@6091 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Changed battle_damage to accept the walk-delay as well.
- Removed the walk-delay timers from unit.c, merged them to battle_delay_damage.
- Traps will not be displayed when you walk within their range.
- Added HT_DETECTING revealing traps.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5997 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Fixed the clif_change_class packet (it should check for non players classes, not a class above MAX_PC_CLASS), it fixes morphing enemies.
- Rewrote the way cloth dye packets are resent to optimize bandwidth usage.
- Fixed the npc_item_flag thing (enable_items/disable_items script command)
- Rewrote the disguise implementation to be bandwidth friendly.
- Modified the hide options to change your class to INVISIBLE_CLASS, since such classes don't even get their view packets sent around.
- Rewrote several clif functions to adapt to the new view_data class;
- Added class 139 to npcdb_checkid which was required by some npcs in the swordman quest? o.O
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5833 54d463be-8e91-2dee-dedb-b68131a5f0ec
- Affected skills/packets: AC_MAKINGARROW/ AL_WARP/ AL_TELEPORT/ AM_PHARMACY (all refine functions)/ MC_IDENTIFY/ BS_REPAIRWEAPON/ SA_TAMINGMONSTER/ SA_AUTOSPELL/ WS_WEAPONREFINE/ SG_FEEL
- Removed feel_lv and repair_target variables as now they are handled by the previous two new variables.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@5345 54d463be-8e91-2dee-dedb-b68131a5f0ec
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
* Refresh the client when day comes to get rid of the night effect
* Changed @refresh to fake map loading, but without teleporting side effect
* Updated SQL file for the item_db
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@1307 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Integrated packet size and function DB's into 1 packet_db
* Removed packet_db_ver defining in packet_db.txt -- it'll determine itself based on MAX_PACKET_VER
* Added MAX_PACKET_VER -- maximum versions supported by eA -- and changed packet size and function DB's to use it
* When sending 'Game exe not latest version' packet don't close the session immediately so it will still be delivered
* Added map-server display if an unidentified client was rejected -- also fixes the 'empty string sent to _showmessage'
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@965 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Added the 6 new Yuno fields
* Added some Freya's optimisations in clif_parse
* Added clif_update_mobhp
* Set alive_timer to -1 when quitting, not 0
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@811 54d463be-8e91-2dee-dedb-b68131a5f0ec
* Removed my own additions for skill delays using aspd
* Adapted skill_range_leniency to jA's code
* Fixed drop rates only limited to multiples of 100's
* Added missing code for castle_defense_rate
* Removed pc_undead_nofreeze
* Updated unrefineable items table
* Added 3 new script commands
* Added SC_SpeedUp0
* Merged itemdb_read for SQL and TXT
* Removed itemdb_read_cardillustnametable limited to TXT only
* Added reading itemslotcounttable.txt from the GRF to auto set number of slots per item
* Added a display message when reading itemslottable from the GRF
* Added options in battle_athena.conf to enable/disable reading the GRF
git-svn-id: https://svn.code.sf.net/p/rathena/svn/branches/stable@699 54d463be-8e91-2dee-dedb-b68131a5f0ec