* Fixes#2671.
* Restructured battle_calc_damage to utilize battle_status_block_damage for statuses that block damage.
* Renewal Safety Wall has a hit count tracker, same as pre-renewal.
* Updated renewal Safety Wall HP formula.
* Safety Wall will now check for Land Protector before attempting to consume a Blue Gemstone.
* Moves Kyrie and other similar type status changes that may or may not block damage to the top of the list of priority.
* Adds a short delay to Parrying for the next attack when damage is successfully blocked.
* Fixes Millennium Shields remaining shields getting destroyed when damage was over 1000.
* Fixes Millennium Shields disappearing on map change.
Thanks to @Paoly28 and @mrjnumber1, @cydh, @ecdarreola, @InusualZ, and @Badarosk0!
* Fixes#5248.
* Commented out LUK bonus.
* Now reduces variable cast time by 30%.
* ASPD and cast reduction bonus now lasts for 5 seconds.
Thanks to @llchrisll!
* Updates EXP table to 200/70
* Always store exp as uint64 no matter the client date.
* Adjusts guild exp to uint64.
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#3622 and fixes#5220.
* Monsters now properly escape from the attacker.
* NPC_RUN should determine distance based on skill level > 1.
* Resolves Sphere Mine when summoned by an Alchemist not escaping.
Thanks to @Balferian, @Indigo000, and @Daegaladh!
* Players are no longer detached from the script.
* Players can't walk, attack, use items, or use skills while progress bar is active.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
* Fixes#4529.
* Adds support for applying groups and titles to non-player objects.
* Expands script command setunitdata and getunitdata to support group ID.
* Adds script commands setunittitle and getunittitle.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#5032.
* Soul Reaper souls will now persist relogs.
* Removed the soul_timer as the timer data is stored to the status change.
Thanks to @laziem and @Tokeiburu!
* Fixes#3268.
* Adds more safety checks for possible nullptr skill_unit_group data.
* Adjusts order of failure checks to speed up operations.
Thanks to @uddevil and @ecdarreola!
* Fixes#5110.
* Fixes a potential map server crash when non-player objects attempt to use Chain Lightning, Tetra Vortex, or Flash Combo and are kill during duration.
Thanks to @Hope8888!
* Added support to trigger 'OnTouch'/'OnTouch_' npc label when a npc is moving through npcwalkto script command.
* Fixed#502
Thanks to @aleos89, @wbgneto !
* Added RC_PLAYER_DORAM to differentiate summoner race from monster race RC_BRUTE (similiarly to RC_Player_Human and RC_DemiHuman)
* Replaced PC_Player by RC_Player_Human and added a deprecation notice
* The cards with specific 'compound on accessory side' can now only be inserted on accessory equipment using the same side.
* Fixed#4977
Thanks to @attackjom
Corrected MM_SARAH monster mode (added MD_MVP and MD_STATUS_IMMUNE to the mode)
Changed warpparty to mapwarp command in the instance script for now
Fixed#4323Fixed#5098
Thanks to @Badarosk0 and @Everade
* Adds support for instance destruction button
* Adds an extra parameter in the instance database to toggle if an instance is destroy-able or not.
* Adds support for being notified about character and Clan instances on login.
* Fixes an issue with the instance window displaying wrong instance information on an instance map when multiples instances were running for the character.
Co-authored-by: atemo <capucrath@gmail.com>
* Fixes#5003.
* Adds a battle config to toggle the ability for slaves to teleport back to their master when they are too far away.
* Officially, players can drag slaves away from the master without them teleporting back.
* Determined that slaves don't become completely stuck but rather immobile until a target comes in range again.
Thanks to @poporing and @Daegaladh!
* Fixes#5018.
* Adds support for sharing battle-type Achievements when killing monsters.
* The behavior mimics Quest objectives.
* Adds a battle_config to easily toggle (off by default until confirmed on kRO).
Thanks to @MccloudBR's suggestion!
* Fixes#4987.
* Ensemble skills apply SC_ENSEMBLEFATIGUE which should disable skill casting and reduces movement speed/ASPD by 30%.
* Applies SC_ENSEMBLEFATIGUE to both the caster and partner.
Thanks to @LordWhiplash!
* Fixes#4930.
* Fixes Mix Cooking quantity calculation to be based off the difference of the good and bad stat.
* Fixes Mix Cooking failure to create a random amount of failure material that's independent of the initial quantity calculation.
* Fixes Create Bomb to behave similar to Mix Cooking without the failure materials.
* Fixes Special Pharmacy quantity calculation to be based off of the difference of the good and bad stat along with a base quantity depending on the level used.
Thanks to @mrjnumber1 and @SeravySensei!
* Skill is no longer a unit skill but a status.
* Adjusts the attack rate timer to official.
* Skill does not proc cards.
* Skill does not reflect damage.
Thanks to @Tokeiburu, @ecdarreola, and @attackjom!
* Fixes#5065.
* Removes Blue Gemstone cost.
* No longer has a lingering hitbox.
* Deals full damage as one bundle of hits instead of pulsing individual hits.
* Can overlap with itself.
Thanks to @flamefury!
* Animations for Angelus, Impositio Manus, Suffragium, Magnificat, and Gloria no longer play for party members who are within skill range but outside of visible viewing range.
* Fixes AoE size of Magnificat and Impositio Manus.
* Fixes SP consumption of Impositio Manus.
* Fixes the splash range for Angelus and Gloria.
Thanks to @flamefury!
* Fixed an issue when several characters with the same ip are in the same guild and ip check is enabled, the character offline could receive the reward instead of the character online
Fixed#4833
Thanks to @mazvi !
* Initial implementation of the costume exchange NPC in malangdo
* Initial implementation of the costume enchant npc 'Aver De Dosh'
* Initial implementation of the costume enchant npc 'Lace La Zard'
* Added the groups box IG_Enchant_Stone_Box (number 5 to 15)
* Updated the aegis item name of the costumes
* Corrected the equipment location of some costumes
Thanks to @RagnaWay, @peney7 and @teededung for the review !
* Centralized the Summoner Power skill tree checks into one function.
* Fixes a couple passive skill bonuses not being recalculated when reaching 20 investment points.
Thanks to @exneval and @Balferian!
* Fixes#4801.
* Fixes Bard and Dancer not gaining the opposite class's skills.
* Cleans up check to not be reliant on sketchy index checks.
Thanks to @ihernandeza, @gidzdlcrz, and @Lemongrass3110!
Fixes#4646
Switches AppVeyor build worker image to Visual Studio 2015.
Fixed a bug with serv.bat, since crashes would result in a negative number sometimes, the crash would not be detected and would not be reported.
Thanks to @aleos89
Adds an upgrade script to change all existing entries to the respective gender in their account.
Cleanup of a few strange design decisions in the character server code.
Removed SEX_ACCOUNT.
Thanks to @Daegaladh for his help.
Slaves sometimes ended up with weird status calculations or insane speed, because their status got recalculated before their master and this way their speed could not be copied from the master.
Thanks to @Daegaladh
* Fixes#5005.
* Whikebain's Black Tail should not apply curse.
Thanks to @reunite-ro and @LordWhiplash!
Co-authored-by: LordWhiplash <LordWhiplash@users.noreply.github.com>
* Follow up to b6b6b13.
* Fixes#4941.
* Fixes cases of monsters getting stuck when they lose sight of their target item that is looted by another monster.
Thanks to @iraciz and @SeravySensei!
* Follow up to bfb6972.
* Adds a new return array for script command inventorylist: `@inventorylist_tradable`
* Adjusts script command countitem to not count rental items.
* Queue data will now be kept available until a Battleground event is over.
* Players can now join an active Battleground.
* Adds a more detailed queue state tracking feature.
* When a battleground is being prepared and not enough players click accept, stop the battleground from beginning.
* When a player logs off or leaves a queue they will now properly be removed from the queue.
* Cleans up MinPlayers and MaxPlayers parsing to not accept values less than 1.
* Resolves players not being able to join an active battleground (up to MaxPlayers) unless someone quit early.
* Adds a team size priority check to avoid adding more players to a larger team.
* Fixes battlechat messages.
* Adds a battle_config to disable the ability for players on maps with MF_NOWARP to join Battlegrounds.
* Adds a new optional ActiveEvent label to the database.
* Fixes a typo in Flavius 2 during unbooking process.
* Cleans up the behavior of the Battle Therapists to use areapercentheal and areawarp.
* Fixes KVM score not properly set on the first Battleground.
* Fixes the global timer checks not ending the main timers on Flavius and Tierra Gorge.
* Added an extra bg_reserve on global timer checks in case someone tries to join the battleground just before it's ended.
* Fixed OnReadyCheck being called on global timer checks, causing the battlegrounds to start when there were no players on the map.
* Fixed a bug on Tierra Gorge where multiple barricade walls could be stacked.
* Fixes Croix also receiving 9 badges when Guillaume wins.
* Adjusts StartDelay default to 0.
* Add a database setting to give the ability to enable or disable joining as an individual, party, or guild.
* Add a database setting to restrict jobs from entering Battlegrounds.
* Better documents script commands bg_reserve and bg_unbook.
* Other fixes and cleanups.
Thanks to @roSBK and @Daegaladh, @admkakaroto, @Artuvazro, and @Atemo!
Co-authored-by: Daegaladh <Daegaladh@users.noreply.github.com>
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
* Fixes SU_POWEROFSEA max HP and max SP bonus when investing more than 20 skill points.
* Fixes SU_SPIRITOFLAND and SU_CN_POWDERING combo's perfect dodge bonus.
Thanks to @LordWhiplash, @qwerty7vp, and @Balferian!
* Fixes#4864.
* Adjusts damage formula to official.
* Adjusts damage type from Misc to Magic.
* Skill now has a 50% success chance to damage the target.
* Removes Flee and Defense Card ignore flags.
Thanks to @Masao87 and @mrjnumber1!
* Fixes#4964.
* Fixes Blood Sucker not being able to be recast on another map if caster dies while active.
* Minor cleanups and added safety checks.
Thanks to @Everade!
* Fixes#4953.
* Remove Summoner Hide when changing maps to avoid equipment from being stripped due to the inability to change equipment while the status is active.
Thanks to @Everade!
* When reloading the skill_db clear out Abra, Magic Mushroom, and Reading Spell Book databases as well.
* Fixes NC_SHAPESHIFT and NC_REPAIR checking an invalid ItemCost slot based on the old implementation.
* Updated a lot of references to the old skill databases.
* Partial revert of ea8da71.
* Adjusts the battle config for the area size back to 14 cells.
* Adjusts the Bard/Dancer songs to be 15 cells rather than attempting to use AREA_SIZE.
* Fixes#4915.
* Fixes instance map names when it reaches 1000.
* Fixes instances with more than 8 character crashing the client.
* Other minor cleanups.
Thanks to @voyfmyuh and @Atemo!
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
* Fixes Acid Demonstration to use the target's VIT and not casters.
* Fixes Fire Expansion - Acid to behave like Acid Demonstration.
* Fixes Crazy Weed not doing 2 damage attacks.
* Crazy Weed is now a long ranged physical attack.
* Adjusts Hell's Plant behavior to no longer be removed on map change.
* Adds missing status icon for Hell's Plant.
* Fixes Hell's Plant attack formula when learning Summon Flora.
* Hell's Plant now uses the caster's weapon as the element.
* Hell's Plant no longer ignores the target's DEF and Element.
* Fixes Hell's Plant removing Thorns Trap.
* Removes fixed cast time from Xeno Slasher.
* Adds new Genetic Pharmacy potions (items are disabled until int32 item ID support).
* Fixes Spore Explosion's splash attack doing the same damage as the initial.
Thanks to @teededung, @Badarosk0, @cahya1992, and @OptimusM!
* Adds skill placeholder for Super Novice Expanded in the pre-renewal skill database.
* Prevents undefined skill errors for pc_checkskill.
Thanks to @gidzdlcrz!
* Fixes#4856.
* Follow up to d1f8c8c and 652d77e.
* A missing break from an old commit along with a refactor in code resulted in a "valid" fall through and breaking status change timers.
* Also fixes a potential crash with Book of Creating Star.
Thanks to @OptimusM, @technoken, @sader1992, @mazvi, and @akiyamamio16 for helping debug!
* Fixes#4808.
* Weapon Crush now uses SC_WEAPONBLOCK_ON to track the target instead of SC_COMBO.
* Also fixes Quick Draw Shot target selection.
* Quick Draw Shot and Weapon Blocking should be considered a combo and not end physical attacks when casting them.
* SC_QD_SHOT_READY will no longer become active if the player has 193+ ASPD.
* SC_QD_SHOT_READY will now end once Quick Draw Shot has been casted.
* Cleans up skill_check_condition_sc_required and removes duplicate code.
Thanks to @wdivet, @LordWhiplash, and @ecdarreola!
* Fixes#4802.
* Adds back AB_EUCHARISTICA, GN_SLINGITEM, and GN_MAKEBOMB.
* Adds back CR_CULTIVATION for renewal.
* Skills are disabled in the skill tree database but gives easy ability to re-enable.
* Fixes an issue with pre-renewal produce database spitting errors when using any production-type skills.
Thanks to @trinitynetworks!
Corrected the following combos
* Shackles + Prisoner's Uniform
* All of Vesper + Memory of Lovers
* Sprint Glove + Sprint Mail + Sprint Shoes + Sprint Ring
Thanks to Jumbo
* Fixes#4812.
* This script event can be replaced with the other various player script events.
* The trigger during equipment changing causes headache across other calculation events in source.
* Removes target SP consumption based on damage dealt by Tiger Cannon.
* This effect was removed in #4256 but accidentally merged back in through #3659.
Thanks to @Badarosk0!
Added missing status change cancel condition, when the player has reached the maximum amount of soul spheres.
Fixed duration display on the client.
Some cleanup of duplicate code.
Thanks to @aleos89
Adds missing checks for Super Novice Expanded, Star Emperor and Soul Reaper.
Enables bodystyles saving by default, since all sprites have been released officially long enough.
Adjusted the mismatching default value for max_body_style.
Fixes#4787
Thanks to @reunite-ro
* Adds Star Emperor and Soul Reaper restriction in WoE:TE
* Adds Rebellion, Summoner, Star Emperor, and Soul Reaper statuses to the status_disabled database.
Thanks to @reunite-ro!
* Fixes#4770.
* Adds back missing case for pre-renewal damage calculation.
* Adds back long ranged check for Neutral Barrier in pre-renewal.
Thanks to @danieljorge17!
Walking NPCs are not supported on official servers.
Therefore we have to respawn the NPC units as player units before they start walking.
After they stop walking we respawn them as NPC units again so that they show the bubbles for talking to them again.
Since player sprites have a small aura during spawning hardcoded in the client, this aura will be shown each time they begin walking now.
Fixes#4505
Thanks to @RagnaWay and @aleos89
* Fixes#3087 and fixes#3095.
* Converts database file to YAML.
* Converts static array to unordered_map which frees up pre-allocated memory that may never be fully used.
* Got rid of all DBMap/ERS features.
* Removes MAX_INSTANCE_DATA in favor of INT_MAX.
* Includes TXT converter.
Thanks to @Lemongrass3110, @secretdataz, @Atemo, @lighta, @InusualZ, @Angelic234, @Normynator, @cydh, and @ecdarreola!
* Fixes#4743.
* Resolves an issue with power skills and default data defined in the skill's array.
* Adds back linear determination and documentation for it.
* Adds a check in the converter to not print out values of 0 for levels 6 and higher for skill unit layout and skill unit range.
* Removes these values from the skill database.
Thanks to @Surefirer and @teededung!
* Changes TimeLimit format to be human readable.
* Converts title to string.
* Converts objectives and drop items to vectors.
* General clean ups and optimizations.
* Got rid of dummy_quest.
* Added TXT to YAML converter.
Thanks to @Atemo and @Normynator!
Co-authored-by: atemo <capucrath@gmail.com>
* Fixed a bug where the player can't finish the quest if the NPC times out after obtaining the weapon.
*Fixed savepoints for pre-renewal.
*Thanks to @Tydus1
Disabled by default - as on official servers.
Gives a better warning if it is turned on and client side password encryption is enabled and the account cannot be created because of this.
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
1) global_acc_reg_num_table and global_acc_reg_str_table are used in the login server only and their configuration and access is not shared with any other component.
2) The character server does not check for global_acc_reg_str_table and global_acc_reg_str_table, but for acc_reg_str_table and acc_reg_str_table.
* Fixes#4707.
* Follow up to ea8da71.
* Skill now applies long range damage.
* Skill now does 3 hits.
* Target's placement in the AoE does not affect damage; it's all the same for each target.
* Updates strength bonus.
* Reverts Mercenary Brandish Spear to pre-renewal effects.
Thanks to @violent01 and @mrjnumber1!
* Initial implementation of these two classes skills.
* Includes kRO balancing patch: http://ro.gnjoy.com/news/devnote/View.asp?category=1&seq=3921697
Thanks to @Rytech2, @Mateuus, @nubspixel, @exneval, @idamonli, @hotspicy945, @admkakaroto, @cahya1992 and @RagnaWay!
* Fixes#4702.
* Skill no longer ignores the target's flee.
* Skill now deals 2 hit when using dagger instead of doubling the damage.
Thanks to @yashimwong!
* Fixed some part in nightmare Biolab scripts
* Updated the normal monsters death count to spawn the 'mini-boss' (100 -> 110) and 'mini-boss' death count to spawn the mvp (10 -> 4)
Adds config for Land Protector Behavior
* This battle config option adds the ability to change Land Protector to the old behavior.
* Related to #1404 and #4412.
* Thanks to @Cydh for the initial release. Thanks to @Tydus1 for the pull request!
* The player can interact with a NPC cloaked by cloakonnpc command (click, mob event..) but the NPC trigger area is disabled (= the OnTouch* part is disabled).
* The changes last until the player leaves the map, logs out, or the npc option is updated by disablenpc/enablenpc/hideonnpc/hideoffnpc/cloakonnpc/cloakoffnpc commands.
Thanks to @aleos89
* Fixes#4660.
* Resolves an issue with skill database reloading not clearing the previous data first.
* While clearing the YAML cache it will also resize the cache to the previous capacity.
Thanks to @teededung!
* Fixes#4574.
* Removes the usage of atoi as any failure returns 0.
* Adds checks for cases of invalid data.
* General cleanups and fixes.
* Fixes the import database documentation.
Thanks to @Skormie!
* Updated Hero Token Exchanger npc to match official npc
* Updated Dimensional Travel Quest to match official script
* Dimensional Travel Quest now uses the official variable for future reference and to fill the missing sequence
* Moved the npcs from dimensional travel quest to separate custom npcs from official conversion of npcs
* Added official system to spawn the mini-boss on moro_vol map
* Added Flaming Basin and Doom Prayers quests
* Updated the aegis name and english name of the items from moro_vol map
* Fixed hardcoded castle count
* Adjusted to new header format and added changelog
* Fixed rewards for multiple characters in a guild
* Fixed#4619
* Fixed#4636
Thanks to @mazvi
* Cleans up Summoner dual-cast attacks Bite, Silvervine Stem Spear, Scar of Tarou, and Picky Peck so that they behave like Professor's Double Casting.
* Adjusts success formula.
Thanks to @Rytech2!
* Fixes#4656.
* Adds an atcommand option for reloading the attendance database.
* Adds missing headers for attendance database.
* Adds missing reload options in the atcommand configuration.
Thanks to @lelouch22's suggestion!
* Fixes#4644.
* Initialize all battleground queues at startup to reduce overhead of creation/deletion during live server.
* Removes lots of duplicate code between team checks.
* Adds missing checks for script commands bg_leave and bg_desert to only warp players out using the Battleground Queue System.
* Adds documentation for script commands bg_leave and bg_desert to state players will be warped out after when using the Battleground Queue System.
* Optimizes join logic to add new players to the end of the queue rather than the front.
* Cleans up the client messages so certain responses are cleared when they need to be.
Thanks to @Balferian and @Lemongrass3110!
* Fixes#1310.
* Added a battle config which allows toggling of the Battleground Queue client feature and also toggles between the modes of scripts.
* Added script commands bg_reserve, bg_unbook, and bg_desert.
* Removed old custom Battleground scripts.
Thanks to @Lemongrass3110, @Locien, @secretdataz, @InusualZ, @Normynator, @Atemo, @iubantot, @admkakaroto, and @noobzter003!
* Added refine and bound option for mail script command.
* Made some slight corrections to the script_commands document.
* Note: Any custom scripts that use this command and give some sort of card or random option bonus need to be adjusted as refine and bound come before these options now.
Thanks to @Skormie!
Co-authored-by: Daegaladh <Daegaladh@users.noreply.github.com>
* Updates Poison Herb, Rune Stone, and Point Merchants to a simple shop that doesn’t give discounts.
Thanks to @JohnnyPlayy!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Little simplification of the code
* Extends the target type for flag 2 to match the docs (target applicable for player, monster, pet, homunculus)
Thanks to @Lemongrass3110
* Fixes an issue with knockback converting the wrong column.
* Fixes an issue with skills containing multiple elements converting the wrong column.
Thanks to @mazvi and @Lemongrass3110!
* Fixes#4589.
* Resolves an issue with the skill converter outputting the incorrect ammo type requirement.
* Also fixes an issue with physically attacking targets while having a status option active.
Thanks to @mazvi!
* Combines skill_cast_db, skill_castnodex_db, skill_copyable_db, skill_nonearnpc_db, skill_require_db, and skill_unit_db into skill_db.
* Introduces a cached YAML class for quicker lookups.
* General cleanups and optimizations.
* Includes CSV2YAML conversion tool.
Thanks to @Lemongrass3110!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Fixes#1927
If aplayer is under devotion and gets attacked he will remain sitting server side, while standing up client side. This will result in the player not being able to move anymore, until he sat down/stood up again.
Since this is the real behavior on AEGIS we added a configuration for the fix, which will be enabled by default, since we think this is broken behavior. You can always turn it off in case you want to mimic official behavior.
Additionally fixed the devoting player as well:
The devoting player should also stand up when the devoted player is hit.
If the player is missed or he lucky dodges and no damage is dealt, no damage packet should be sent to the devoter.
Additionally fixed that the devoter did not use the waving damage animation, because the amotion and dmotion values were not sent.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#4350.
* Resolved Expanded Baby classes parameter cap defaulting to the upper class.
* Fixes baby parameters for Summoners as well.
* Removed redundant baby checks due to correct order now.
Thanks to @bgamez23!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Adjusted script command announce to accept charID
* Fixes#3901.
* Script command announce will now accept a character ID to display locally.
Thanks to @sader1992!
Co-authored-by: Atemo <Atemo@users.noreply.github.com>
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Follow up to 2732176.
* Fixes#4150.
* Removed an extra status calculation for players resulting in some status data being nullified.
* Adjusted status calculation for autobonus and unequipping items.
* Cleaned up delayed damage logic.
Thanks to @cydh, @Hatfun, and @NeutralDev!
Added support for signed 64 bit integer value computation into the script engine.
This is required because newer official features require support for bigger numbers inside the scripts.
This also cleans up a lot of messy code and fixes a few issues like script stack corruptions.
Thanks to @aleos89 and everyone who supported me with this.
* Adjusted documentation to match standard.
* Removed double quote from Table as there are no special characters used for these.
* Added license to import file.
* Added conf options to enable/disable monsters using idle skills and move when there's no players nearby.
Thanks to @aleos89
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Expanded Job_Baby_Rune -> Job_Baby_Rune_Knight, Job_Baby_Bishop -> Job_Baby_Arch_Bishop, Job_Baby_Cross -> Job_Baby_Guillotine_Cross, Job_Baby_Guard -> Job_Baby_Royal_Guard, and Job_Baby_Chaser -> Job_Baby_Shadow_Chaser.
* Expanded related MAPID/EAJ constants as well.
* Added deprecation notice for old constants.
* Updated database and NPC scripts to use new constants.
* Fixes#4495.
* Adjusted the monster sprite lookup to ignore any restrictions based on monster data.
Thanks to @sader1992!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Fixes#2497.
* Vacuum Extreme will now pull players into the center.
* Vacuum Extreme should only pull in players that stop within it's AoE.
* It will now ignore "no knockback" bonuses players have.
Thanks to @esu1214, @cydh and @exneval!
* Fixes#4289.
* Updated script commands setunitdata and getunitdata to support the modification of NPC view data.
* Converted mob_avail database to YAML.
Thanks to @Lemongrass3110, @4144, @exneval, @Balferian, @cahya1992 and @teededung!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
* Added primary key to tables that lack them
* Dropped table sstatus
* Changed some primary keys and dropped no longer needed indexes
* Indent upgrade file with spaces
[ci skip]
* Fixed upgrade query on bonus_script table
* Renamed to current date
* Added missing table to engine conversion script
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Merges atcommand_athena.conf and help.txt into a single file.
Removed some leftover settings that were removed before.
Removed CLI support for modifying the atcommand configuration file.
Moved atcommand and charcommand symbol definition into conf/battle/gm.conf
Removed some messages that are not needed anymore
Co-authored-by: Aleos <aleos89@users.noreply.github.com>
Added some missing portals to yuno and lighthalzen.
Thanks to @Daegaladh for confirming it on ASB 5.5
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Fixed an issue with random calculation on abra in some cases.
Moved some commonly used functions into util and yaml database for global usage.
Thanks to @Daegaladh and @aleos89
* Processing performance increases by an order of magnitudes.
* Generalized the path vector names to be used for future conversion functions.
* Fixed new lines.
* Added header templates.
Thanks to @Lemongrass3110!
* `bonus bVariableCast,t;` now works in pre-renewal to increase casting time
* `bonus2 bSkillVariableCast,sk,t;` now works in pre-renewal to increase casting time by skill name
* Item bonus documentation update
* Follow up to 24c4c49.
* Gentle Touch - Convert and Gentle Touch - Revitalize should not be able to be stacked with one another; only Gentle Touch - Energy Gain can stack with them.
Thanks to @teededung!
* Fixes#3735.
* Fixed Demon of the Sun Moon and Stars ASPD to now increase by a rate of 1 + skill_level.
* Cavalier Mastery and Dragon Training to be properly calculated.
Thanks to @poporing and @Balferian!
* Added the official values for the AG_GOAL_ACHIEVE.
* Refactored the leveling logic for Achievements to account for the new values.
* Moved achievement EXP to a database file.
* Added AchievementLevel player variable to allow for easy tracking in the achievement condition checks.
* Cleaned up player GUI EXP progression.
* Added a check to not save achievements that made no changes.
* Added first login achievement.
Thanks to @Lemongrass3110!
* The <quest ID> is now removed, all the conditions are handled by a <condition> argument. The <condition> is using the achievement_check_condition (like in achievement_db.yml) so any condition (in theory) can be used to display the icon.
* A new script command has been added to refresh the bubble for the given player anytime.
Thanks to @aleos89 and @secretdataz for the review!
* Added item with GUID flag as `CHKADDITEM_NEW` in pc_checkadditem
* Adjust inventory blank check for guid item to `+n`
* Moved slot check as item_data function
* Removed quantity force-set-to-1 check for buying equip from cashshop, it will gives the item to player just like item with GUID flag
* Fixes#4283.
* Corrected pet bonuses not applying on intimacy changes.
* Removed pet_equip_min_friendly battle config as bonuses are determined on intimacy in the bonus script.
Thanks to @teededung!
* Fixed CZ_STANDING_RESURRECTION check
* Player can force to resurrect as long as they have valid Token of Siegfried even in auto respawn maps
* Added command `@resurrect` to resurrect using first matched Token of Siegfried item in inventory clients that don't show Resurrect button
* Set `respawn_tid` to int
* Fixes#4131.
* Changed the behavior of achievement experience to roll over remaining experience rather than check from the total amount.
* Cleaned up achievement level logic.
Thanks to @daisyanne1380 and @SeravySensei!
* Fixes#4122.
* Added missing rate and duration reduction based on the targets stats.
* Confirmed that double damage only applies to BREAK_NECK.
* Cleaned up skill to remove jb_flag from status_change struct.
Thanks to @mrjnumber1!
* Fixes#4191.
* Magnum Break should have an aftercast delay of 2 seconds which can be reduced by Bragi (like all other skills) and no cooldown.
Thanks to @Playtester!
Implemented convertpcinfo script command
* The command allows to convert more easily a player data to another.
* It fails silently if the character is not found/online.
Thanks to @aleos89, @Normynator, @cydh !
Implemented instance_live_info script command to retrieve some data of running instances
Thanks to @Jeybla, @cydh, @Lemongrass3110 and @aleos89 for the review !
* The items implementation is based on JRO description instead of IRO description
* Yinyang combo items will be implemented later when more infos will be available
* Fixes#4177.
* Resolved some comments getting stripped from the SQL converter.
* Corrected Costume Camellia Hair Pin ending the wrong hat effect.
* Added the view ID for Costume Fluttering Feathers and Costume Show Me The Zeny.
Thanks to @CyberDevil75 and @lChyztl!
* Fixes#4146.
* Reverted some of 7f772c3 as this falls into a larger refactor scope.
* Resolved an issue where items could not be picked up from the cart when the overweight message was sent to the player.
* Added missing e_additem_result constants.
Thanks to @secretdataz, @Normynator, and @cydh!
* Fixed#4111
** Removed some costume refinability
* Fixed#4112
** Corrected Elemental Robe (ID 15177) and Elemental Cape (ID 20820) job mask
* Added missing item db for renewal.
Thanks to @mazvi
* Fixed issue #4087
* Added an extra map check in npc_touch_areanpc
* Move the npc warped by unitwarp to the new map.
Thanks to @aleos89 for the review and @Litro for testing !
* Fixes#4041.
* Created an item group used to remove hard coding of Token of Siegfried.
* Added the other Token of Siegfried's to work with this feature.
Thanks to @daisyanne1380!
* Script command instance_id now supports an instance mode argument. If no mode is given it will return the attached script's instance.
* Script commands instance_destroy, instance_npcname, instance_mapname, instance_announce now attach themselves to the script's instance by default.
* Script commands instance_enter and instance_warpall attach themselves to the player's IM_PARTY instance by default.
* Added getvariableofinstance command (similar to getvariableofnpc) to retrieve the instance variable outside the instance.
* Update documentation to match changes.
Thanks to @vykimo, @Atemo, and @Lemongrass3110!
* Fixes#3612.
* Separated the countitem-type script commands into their own functions.
* Created a global count function to be used between them.
Thanks to @kisuka, @Normynator and @Atemo!
* enablenpc / disablenpc / hideoffnpc / hideonnpc now display the npc source when the npc named doesn't exist
* Added the NPC source to status_set_viewdata when no view data has been found
* Added export_deprecated_constant3 to display the constant name replacing the deprecated
* Removed the debug message from `@ warp` when the map name is wrong
* Added clif_name_area to UMOB_LEVEL on setunitdata and a capvalue to UPET_HUNGER
* areamonster now checks if the monster ID exists
Thanks to @Normynator and @aleos89 for the review!
* Fixes#4069.
* Added caps to item bonus rates so that they don't exceed the -10000~10000 range.
* Added warning messages when initial rate exceeds range.
* Added a missing vector size check for HP/SP Vanish bonus.
Thanks to @Litro and @Lemongrass3110!
* Firewall should check at cast begin if unit max count has been reached.
* Removed redundancy with the unit max count checks by merging into a single function.
Thanks to @mrjnumber1!
* Fixes#1939 and fixes#2274.
* OnTouch NPC are now able to overlap one another and properly trigger as they do on official servers.
* When entering an overlap area it should trigger both NPC.
* Walking from overlap area to either NPC should trigger neither.
* Walking from one NPC to the other (skipping the overlap area) should trigger the NPC area you enter.
* Entering an OnTouch area will no longer stop the player from walking unless a message or menu window opens (or other events that should stop the player).
* Resolves OnTouch_ overlapping issues.
* Dead players don't trigger OnTouch_ anymore.
* Hidden players don't trigger NPC clicks when OnTouch_ label is defined.
Thanks to @Tokeiburu, @Lemongrass3110, @Atemo, and @Normynator!
* Added setpcblock to official scripts to mimic some npc interaction.
* Clean-up the docs.
* Added the WORK_IN_PROGRESS message when PCBLOCK_USEITEM and PCBLOCK_SKILL are enabled.
Thanks to @aleos89 for the review!
* Added setpcblock and getpcblock script commands.
'setpcblock' command prevents/allows the player from doing the given type of action.
'getpcblock' command return the bit-mask value of the currently enabled block flags.
The available type are:
PCBLOCK_MOVE
PCBLOCK_ATTACK
PCBLOCK_SKILL
PCBLOCK_USEITEM
PCBLOCK_CHAT
PCBLOCK_IMMUNE
PCBLOCK_SITSTAND
PCBLOCK_COMMANDS
PCBLOCK_NPCCLICK
PCBLOCK_EMOTION
PCBLOCK_ALL
Thanks to @sigtus, @secretdataz, @Lemongrass3110 and @aleos89 for the help and reviews !
Credit to https://github.com/HerculesWS/Hercules/pull/842 for the idea.
* Move HP/SP Vanish bonuses to vector
* Corrected the BF flags usage
* Immaterial Swords, Mental Destroyer, and Dark Priest trigger SPVanish by any attack types
Co-Authored-By: cydh <cydh@users.noreply.github.com>
* Implemented official pet evolution system
* Added evolved pets to pet database
* Corrected various pet system mechanics
* Migrated pet database to YAML format and the converter from CSV format
Thanks to @Lemongrass3110 @aleos89 and @Atemo for their suggestions and additional fixes
* Added getpcblock and setpcblock script commands.
* Added the docs
* Added the message 'This action is currently blocked.' when the player attempts to perform the following blocked actions
* PCBLOCK_USEITEM
* PCBLOCK_SITSTAND
* PCBLOCK_NPCCLICK
* The actions blocked are saved in state.block_action
* Click to the npc returns the WORK_IN_PROGRESS message when PCBLOCK_NPCCLICK is enabled
* Blocked action and reload script.
The player will return to his/her original state after reload script.
Thanks to @aleos89, @Lemongrass3110, @secretdataz
* Fixes#3953.
* Resolved an issue with monster's class not being properly recalculated when using script command setunitdata. For now, just allow switching between CLASS_NORMAL and CLASS_BOSS.
* Fixed HP and MaxHP adjustment for monster, homunculus, mercenary, elemental, and NPC.
* Fixed MaxSP adjustment for homunculus and elemental.
* Fixed Size adjustment for monster, homunculus, mercenary, and elemental.
* Fixed Race adjustment for monster, homunculus, mercenary, and elemental.
* Fixed the Map ID string check to support all unit types.
Thanks to @teededung and @SeravySensei!
* Fixes#4016.
* Cleaned up the way Vellum damage and Vanish damage are calculated.
* Implemented bonus3 bSPVanishRate/bHPVanishRate.
* Updated Mental Destroyer item bonus.
* Cleaned up and added documentation.
Thanks to @Balferian!
Converted Guild Skill Tree database to YAML
Please run csv2yaml to convert your existing databases if necessary.
Thanks to @aleos89, @Atemo and @Lemongrass3110
Synchronized the process of loading and parsing YAML databases.
Provides more robust parse warnings/errors.
Added Header checks to validate database versions.
Adjusted root keys to a standard name of Body.
Adjusted inter-server storages, achievements, and attendance to follow the new format.
Fixes#3483
Thanks to @Lemongrass3110!
* Added the use of DBPATH/DBIMPORT definition for guild EXP, job information, level penalties, and map cache to remove hardcoded values.
Thanks to @marky291!
Additionally if progress was being canceled and a message window was active, the user would be stuck, because no close button would show.
Fixes#3944
Thanks to @teededung, @cahya1992 and @Atemo
* Corrected Blue Bow's location.
* Corrected Ukulele_Of_Newoz, Floral_Mic_Of_Igu and Ukulele_Of_Newoz + Winged_Ring_Of_Newoz combo that should increase the SP usage of skills (instead of decrease).
* Corrects a potential map-server crash with script commands min, max, getpartymember, getguildmember, getunits, getmapunits, getareaunits, getunitdata, and channel_setgroup when a character variable is used when no character is attached to the script.
Thanks to @Tokeiburu and @Atemo!
* Fixes#2806.
* Added Old Card Album script to give a random card and give a High Weapon Box.
* Added missing item bonus (Level Up Box) for High Weapon Box.
Thanks to @Everade!
* pvpon, pvpoff, gvgon, gvgoff, gvgon3, gvgoff3 now display a message when the map doesn't exist
* The command don't return SCRIPT_CMD_FAILURE anymore when the mapflag is already in the state
* Fixes#3492.
* Resolved some item combo cards that transformed the wearer causing the stats to come awry.
* Cleaned up some documentation.
Thanks to @BrOgBr, @raelemagy, @mrjnumber1, and @Everade!
* Fixes#3908.
* Accessories that have cards which require specific left/right locations must take priority.
* Sped up position checking.
Thanks to @Badarosk0 and @Lemongrass3110!
* Cleaned up the way script commands parse arguments.
* script_isstring and script_isint will now properly check variable references.
* This allows script command arguments to contain variables without having to make source side adjustments.
* Reverted several script commands that reference the data directly.
Thanks to @Lemongrass3110!
* Fixes#131 and fixes#2699.
* Added item bonus bNoWalkDelay to replace infinite SC_ENDURE bonus in items.
* Added a warning if INFINITE_TICK is detected in the item combo bonus.
* Included some minor cleanups and additions.
Thanks to @exneval, @c0nflicts, and @esu1214!
* Fixes#3100.
* Script command getmapxy will now allow integer values for the search value.
* Deprecated UNITTYPE constants as they were replaced by BL.
* Defaulted BL_PC as the target for script command getmapxpy.
* Updated script command getunittype return value to return BL constants.
* Updated scripts to new BL constants.
Thanks to @pajodex's suggestion and @Lemongrass3110!
Problem:
if common fails target map/char/login will be disabled.
Solution:
if common fails stop cmake execution and throw an error, this will avoid building only mapcache and common_base.
* Fixes#3810.
* Partial revert of eae1161.
* Removed the item database bonuses from Throwing Increase HP/SP Potions and moved them back to source as these items require the caster's Base Level.
* Concentrated White Potion Z should only increase HP regeneration rate (not the interval).
* Vitata 500 should increase SP regeneration rate (not the interval).
Thanks to @Everade!
* Fixes#3817.
* Should give a 0.3% chance of increasing MATK by the equip's refine * 8 for 10 seconds when using magic attacks.
Thanks to @Everade and @Atemo!
Fixed getmapxy getting the first player map and coordinates in every instance
Optimization of shop by using inarray script command
Changed some values to constants
* Fixes#3872.
* Added a couple more map data validity checks on block list counting functions.
* QD Shot should no longer remove the read status.
* Dragon Trail should no longer end the Crimson Marker status.
* Some other minor optimizations/cleanups.
* Fixed a va_arg corruption
Thanks to @attackjom, @Lemongrass3110, and @teededung!
* Fixes#3611.
* Corrected Gangster's Paradise not releasing the monster invulnerability state when standing up around multiple Rogue's that know Gangster's Paradise.
* Same fix goes for Taekwon's Peaceful Break and Happy Break.
* Cleaned up some various parts of these functions as well.
Thanks to @Indigo000!
* Removed the mapflag from several instance maps. Icewall skill is already restricted with mapflag 'restricted' zone 6 which display the proper message "This skill cannot be used within this area".
* Fixes#3644.
* Corrected the loop that counts card/enchant combos at login being limited to the number of slots on the main item instead of MAX_SLOTS.
Thanks to @Badarosk0!
They now use the normal script engine and not a duplicated portion of code of it.
This is required for another pending update.
This also fixes atcommands not triggering status achievements.
Thanks to @aleos89 and @RadianFord
* Reloading the item database will now properly force a recalc on all players.
* If new item combos were added to the database and players were wearing the item combo the players would never get the bonus until unequipping and reequipping.
Thanks to @Lemongrass3110!
* Fixes#3801.
* Fixed a timer type issue causing Reflect Damage to no properly distribute damage.
* Corrected some final tick leftovers that may cause issues with other skills.
Thanks to @Angelic234 and @rAthenaCN!
With this you can now support more connections on linux, even if your system header is still set to a smaller value.
Make sure to increase the limit of open file handles with ulimit or other resource related settings.
You can change the compile time value of supported connections with ./configure --with-maxconn=value
Windows default is still 4096.
* Fixes#3820.
* Should be equippable by all classes.
* Added missing VIP bonus.
* Simplified elemental resistance bonus.
Thanks to @Everade and @Atemo!
* Fixes#3815.
* Should give Neutral resistance +5% and +1% per refine above 5.
* Added missing ranged resistance +5% and +1% per refine above 5.
Thanks to @Everade and @Atemo!
Fixes#3017
Thanks to Hercules for the idea and their implementation of it.
This deprecates Windows XP support. If you want to use it to run your server on it, you have to forcefully enable it now.
Since 64bit ticks do not exist on XP, you might encounter some issues that are already fixed on other OS.
* Fixes#3774.
* Resolved a few statuses getting removed when using Mado Gear that should be enabled.
* Added the ability to remove these statuses if the skills are disabled.
Thanks to @laziem and @Lemongrass3110!
Additionally added a script command to update the player's camera.
Added a new atcommand camerainfo for this, which is limited to admins.
Credits to @4144 for finding /setcamera
Fixes#3376
This adds support for clients after July 2018.
Since no unpacked RagexeRE exist anymore, we need to switch back over to Ragexe.
This should work without problems until 2018-11-21.
After this there are further changes required.
Thanks to @Haikenz
Fixes#3739
Thanks to @whupdo for finding the broken removal.
Fixes#3766
Since vector elements will be pushed around in the container when an element is removed,
the original pointer might be invalid at the time the end of the timer has been reached.
A big thank you to @teededung for being persistent and helping me to reproduce the issue.
Introducing a new constant INFINITE_TICK
Changed current usages in items, npcs and source to use the new and correct constant.
Replaced some invalid usages of INVALID_TIMER and replaced them with the new constant.
* Fixes#3706.
* Resolved Blessing of Shrimp not boosting SP recovery properly.
* Resolved Tasty Shrimp Party not accounting for Fresh Shrimp level learned.
* Resolved Lope not placing the caster at the selected target location.
Thanks to @Everade and @exneval!
* Fixed Skill Damage Database parsing
* Fixes#3732.
* Resolved an issue with constants not being properly parsed for the caster type.
Thanks to @RadianFord, @reunite-ro, and @Lemongrass3110!
* Changed Thanatos to Tartanos and Thanatos gears to Thanos,
to follow actual name from Ragnarok manhwa and kRO actual item name translation
* changed "Tartanos Magic Trace" to "Magic Sword Tartanos"
Signed-off-by: zackdreaver <zackdreaver@gmail.com>
* Resolved a rare case if a player logs in and the server hasn't fully initialized all of the player's items that the auto-save timer fires off and saves the player with no items.
Thanks to @Tokeiburu!
* Fixes#3703.
* Fixed bHealPower, bHealPower2, bSPGainValue, bHPGainValue, bMagicSPGainValue, and bMagicHPGainValue having a chance to potentially overflow from signed short limit.
Thanks to @Everade!
* Fixes#3649.
* Electric Shocker is able to stop MVP as well.
* Status should not stack with itself.
* Status should be cleared by normal means.
Thanks to @admkakaroto!
* Implements SU_CN_METEOR2 and SU_LUNATICCARROTBEAT2 skills.
* These skills are used as placeholders for the item requirements for skill bonuses.
Thanks to @Rytech2 and @exneval!
Added safestrncpy to char's inter configurations
Added safestrncpy to map's inter configurations
Added safestrncpy to message configurations
Adjusted some char configurations
Cleaned up logging configurations
Fixes#3624
Thanks to @mrjnumber1
* Fixes#996 and fixes#3152.
* Refactored MAX_PC_BONUS item bonuses from static arrays to vectors.
* Increased MAX_PC_BONUS to 50.
* Frees up memory from players that may not ever utilize all their static MAX_PC_BONUS item bonuses.
* Expanded bonus ResEff to not be restricted to SC_COMMON* statuses.
* Removed old ERS usages.
* Removed code redundancy and general cleanups.
Thanks to @Angelic234, @Atemo, @Lemongrass3110, and @Everade!
* Fixes#3614.
* Reins of Mount should not be applied to players who are in some sort of hidden state.
* Item delay is still applied.
Thanks to @admkakaroto and @cydh!
* Fixes#3559.
* Updated the cast range to 6 + skill_lv.
* Added Crimson Marker target checks to determine placement.
* No longer removes Crimson Marker on targets.
* Properly displays client effect.
Thanks to @Rytech2, @admkakaroto, @Tokeiburu and @exneval!
* Fixes#3666.
* When purchasing items from a NPC shop, the minimum purchase price is always 1 Zeny.
* When selling items to a NPC shop, the minimum sell price is always 0 Zeny.
Thanks to @Balferian and @dastgirp!
* Fixes#3530.
* Added constants for script commands getcastledata and setcastledata.
* Adjusted the guardian constants to adjust based on MAX_GUARDIANS define value.
* Updated scripts to reflect changes.
Thanks to @keitenai, @Atemo, and @Lemongrass3110!
* Fixes#3585.
* Resolves an issue when players change maps to instances (aside from script command instance_enter) and the active/idle timers are not adjusted.
* Cleaned up the entering and leaving checks for instances.
Thanks to @Atemo and @Lemongrass3110!
* Fixes#1658, fixes#3620.
* Fixed script command warp2 or OnTouch NPC attempting to trigger OnTouch events a second time for players in a hidden state while warping to the destination map resulting in them being sent to an invalid location.
Thanks to @exneval, @mgksrt8, @admkakaroto, and @Zeloss!
* Corrected atcommand reloadscript and NPC dialogs
* Fixes#3637.
* Force atcommand reloadscript to send a close button if a NPC dialog is active to any attached players.
* Fixed cutin removal as well.
Thanks to @kukuasir1 and @Lemongrass3110!
* Fixes#2745.
* Disabled the ability to equip old spheres and old slugs.
* Corrected some of the newer bullets name, weight, price, and effects.
* Updated the ASPD for Gunslinger/Rebellion when equipping guns.
* Spread Attack and Ground Drift now only use bullets.
* Adjusted Slug Shot skill item requirement to the new Slug Bullet.
* Separated pre-renewal and renewal ammo NPC (Kenny and Tony).
-- Renewal no longer has Tony.
-- Kenny can now trade in the Sphere bullets for new bullets.
-- Kenny can now trade in the old Slugs for Slug Bullet.
-- Added new bullets into Kenny.
Thanks to @cydh and @exneval!
* Added skill_duration mapflag.
* This mapflag sets a skill unit time limit to n% of original duration.
* Implemented mapflags for Hunter's Traps in GVG, BG, and Novice Guild maps.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
Initial release of Devil Tower memorial (walkthrough conversion)
* TO DO:
** implement Dancingblade, Pulsestrike2 and adjust ice mine skills
** correct progressbar behaviour
Thanks to all the contributors !
Special thanks to Divine Pride !
Updated npcs from ep 14.3 (official conversion)
* Adjusted permanent monster random spawn: xy are now optional
* TO DO: update questinfo to display the icon when the variable condition are met
Thanks to all the contributors !
Special thanks to https://www.divine-pride.net/ !
Initial implementation of nightmare biolab.
The missing skills will eventually be implemented later.
Thanks to all the contributor, special thanks to https://www.divine-pride.net/ !
* Removed 'set' to the new syntax and slight change
* Added the slotted versions of cutlus and Crescent_Scythe
* Corrected Wizardy_Staff positioning
* Added more weapons to enchant
* Corrected possible enchants of Twin_Edge_B, Twin_Edge_R and Poison_Forged_Spear thanks to @admkakaroto !
* Renewal Monster's ATK & MATK Calculation Updates
* Renewal Monster database updates
* ATK1 is *base* ATK, the range 80%~120% is calculated in src
* ATK2 is *base* MATK, the range 70%~130% is calculated in src
* Adjusted ATK range min~max in mobinfo atcommand
* Nothing was changed in pre-renewal system!
* Thanks to @aleos89, @slyx88 and Divine-Pride.net
We support all required features or have them ready in some pull requests.
The packet version after this will require a huge overhaul since item id sizes have been changed in all packets.
* Closes#3159.
* Adds script commands getunits, getmapunits, and getareaunits.
* Replacement for script commands getusers, getmapusers, getareausers. (In a future commit)
Thanks to @sader1992, @Atemo, and @anacondaqq!
* Fixes#3552 and fixes#3553.
* Corrected Lesser Agimat not getting removed from Old Man in Dilemma and Tikbalang Expert.
* Corrected a Buwaya Guard not continuing with the proper conversation.
Thanks to @Indigo000!
* Fixed#3517, new map from instance doesn't use unused map slots
* Fixed#3528, crashed on reloadscript if there is instance map
* Cleared map flags on reloadscript
* Corrected typo thanks to @zackdreaver
* Commented Despair_God_Morocc_Card and combo using unimplemented MM_MOROCC_ADT
Thanks to https://www.divine-pride.net/, Sigma for the translation
Also updated Rock Ridge enchant list from kRO 2016.12.07
Thanks to @JohnnyPlayy, @OptimusM, @attackjom, @teededung and @admkakaroto !
Big thanks to https://www.divine-pride.net/ !
* Fixes#3545.
* Corrected the item requirements for Repair and Shape Shift.
* Synced pre-renewal skill requirements to match renewal.
* Added a couple Mechanic items that were missing from pre-renewal.
* Updated requirements on a couple items to match pre-renewal format.
Thanks to @Questune09!
* Fixes#2787 and fixes#3513.
* Resolved some format-truncation warnings.
* The remaining will be fixed at a later time.
Thanks to @RadianFord and @Lemongrass3110!
* Added config values for `allow_bound_sell`
* 0x4 allows bound item to be sold at NPC Shops
* 0x8 restrict only guild leader who can sell guild bound item at NPC Shops or Itemshops
* Added config to allow rental items can be sold at NPC `rental_transaction` (planned for more config values based on #3490). Default to `yes` allowed to be sold, still can be restricted by item_trade, item id based.
* Fixed itemshop which ignores another item stack in inventory even for same item currency
* Fixed exploit potential by using Itemshop & Pointshop
* Now equipped item cannot be sold at NPC
* Typo and grammar fixes. Thanks to @aleos89 and @secretdataz
* Fixes#3499.
* Corrected the way target monsters are generated for Taekwon Mission.
* Requires: The mob ID is in the range [MOBID_PORING, MOBID_GREEN_IGUANA], the mob must have below 30,000 HP, the mob must give Base EXP, the mob must be CLASS_NORMAL.
* Added a new mob group: MOBG_Taekwon_Mission
* Removed hard coded checks.
* Created constants for random monster group flags.
Thanks to @mrjnumber1, @Lemongrass3110, and @cydh!
* Fixes#3476.
* Centralized all equipment stripping skills to skill_strip_equip.
* Updated success rates and durations to match official.
Thanks to @mrjnumber1!
* Added inf3 0x100000 for skill is not blocked by SC_AUTOGUARD (physical-skill only)
* Added inf3 0x200000 for skill is not blocked by SC_UTSUSEMI or SC_BUNSINJYUTSU (physical-skill only)
* Changed `NK_NO_CARDFIX_ATK` check to the flag above
* Applied those new inf3 flags for skills which are `weapon`-type and have `0x8`-nk
This setting only affects renewal mode:
- Switch to a different weapon or unequip a weapon now cancel EDP
- EDP can't be used with fist (right hand check only)
Thanks to @aleos89 and @cydh !
* Fixes#3478.
* Adjusted Banding to use proper party counting functions.
* Corrected the DEF and HP Regen bonus for Banding.
* Banding Defense will no longer stack on itself.
Thanks to @admkakaroto and @exneval!
* Fixes#1155.
* Added specific checks for weapons when equipping ammo.
* Ammo is removed if the required weapon is removed.
* Added battle configs to disable behavior.
Thanks to @Atemo, @exneval, and @benching!
* Resolves PvP timers and effects not displaying properly.
* Resolves any GvG effects not displaying properly.
* If PvP or GvG is disabled, stop players from attacking.
* Moved PvP timer and attack functions to appropriate locations.
* Removed redundancy from atcommands.
Item scripts from kRO 2017.05.10 update
* Iara Card
* Piranha Card
* Curupira Card
* Tucan Card
* Jaguar Card
* Headless Mule Card
* Boitata Card
* 'Tucan Card' have been changed to 'Toucan Card' to match the monster's name which drops the card
* Added the cards in the monster's card drop slot as suggested by @Lemongrass3110 !
* Follow up to 4f97c74.
* Fixes#3357.
* Updated Sphere Absorption to official behavior
* Sphere Absorption will fail if casted on an ally.
* Should only succeed on self or enemy targets.
* Removed Cursed Circle check as it's not needed anymore.
* Fixes#3369, fixes#3370, and fixes#3382.
* Converted maps storage container back to static array.
* Converted mapflag storage containers to unordered_map.
* Removed a lot of redundancy and recursive lookups.
* Fixed a couple short-circuit checks to help with performance.
* Fixed multiple instance creation/destruction issues.
* Fixed PK Mode attempting to set PvP on flags that are already active.
* Getting MF_RESTRICTED will return the map's zone value instead of the state.
* Converted mapflag macros to inline functions.
Thanks to @teededung, @lelouch22, @mazvi, @Lemongrass3110, and @cydh!
Fixes#3310
Replaced some still hardcoded values with their define constants.
Added a function to check if a walk will be diagonal and fixed invalid calculation for it.
Thanks to @DavidPS92
* Revert of 9a009bf.
* Spiritual Sphere Absorption should still take the spheres from the target even if Cursed Circle is used on the caster.
Thanks to @Raf4h!
Follow up to a942853.
Fixes#3336.
Moved map_data storage to std::map container.
Created map_getmapdata to obtain pointer to map_data.
Got rid of MAX_MAP_PER_SERVER define.
Resolved deletion of instances causing other instances to lose their intended map ID.
Refactored warp suggestions
Thanks to @teededung, @anacondaqq, @cydh and @Lemongrass3110!
* Follow up to a942853.
* Removed ADJUST_SKILL_DAMAGE define so that the mapflag is always enabled.
* Cleaned up atcommand mapinfo and skill_damage mapflag interaction.
* Cleaned up atcommand mapflag to not allow setting of special mapflags that require extra arguments (Please use script command setmapflag).
* Using script command setmapflag for MF_NOSAVE will default to SavePoint.
* Using script command setmapflag for MF_PVP_NIGHTMAREDROP will default to normal official drop values.
* Exported constants for skill_damage mapflag types.
Thanks to @ecdarreola, @cydh, and @Lemongrass3110!
* Created setter and getter functions.
* Adjusted all calls to use these functions.
* Converted mapflags to C++ map container.
* Converted drop_list to vector.
* Converted skill_damage ERS into vector and increased limit from UINT8 to UINT16.
* Cleaned up several functions to be more dynamic to reduce redundancy that was all over the place.
* Renamed nosumstarmiracle to nosunmoonstarmiracle.
* Adjusted skill_damage mapflag to use proper defined constants.
* Refactored map index into a vector.
Thanks to @Lemongrass3110 for a lot of help and @secretdataz!
* Fixes#3317.
* Resolves the Guild Storage Expansion skill not refreshing the map server cached data.
* Updated some inter server checks to grab the proper max size of guild storages.
Thanks to @admkakaroto and @Lemongrass3110!
* Fixes#2622.
* Added a new battle config for renewal.
* Adjusted the battle config to support dropping the recovery weight to 0.
* Added the new weight limit packet.
Thanks to @functor-x and @Lemongrass3110!
Banquet for Heroes ep16.1 - walkthrough conversion
* Added main quests of ep16.1 and the quests entries
*** Walther's daily quest will be enabled after quest_db refactor
* Added instances Ritual of Blessing and Room of Consciousness
* Added monsters spawn and entries on prt_prison, prt_cas and prt_q maps
* Prontera castle map changed in this ep
- Moved some NPCs from prt_castle to prt_cas
- Added warps on prt_cas
- Succession of the Prince quest is removed in ep16.1
Thanks to @admkakaroto, https://www.divine-pride.net/
@yoonjunho72, @teededung, @ecdarreola, @spinzaku and to all the contributors !
* Fixes#3301.
* Force the Guild Storage Expansion skill to save on level up so the next time the guild storage is opened the proper increase is shown.
Thanks to @spinzaku!
* Fixes#3265.
* Fixes bAddDamageClass, bAddMagicDamageClass, bAddDefMonster, and bAddMDefMonster not checking for the correct source/target class.
Thanks to @uddevil!
Fixes#2887 - thanks to @Everade
Fixes#3292 - thanks to @admkakaroto
Added a script command to open the roulette window from server side.
Added support for clients >= 2018-05-16
Fixed losing behavior for roulette
Enabled roulette system by default
Added a server side delay
Added missing sql log enum value 'Y'
Thanks to @Everade, @admkakaroto, @V0rr, @ecdarreola, @Haikenz and everyone else who contributed to this.
* Fixes#499 and part of #1303.
* Implements Guild Storage Expansion Skill which requires client 2013-12-23 or newer (enable by default depending on client date in src/config/packets.hpp).
* Implements guild storage permission which requires client 2014-02-05 or newer.
* Expanded script command guildopenstorage return values.
* Fixes#2169
* #CASHPOINTS and #KAFRAPOINTS now will be logged correctly when used by scripting
* Fixed a bug where points removed cash as well
* Small cleanup for pc_paycash and pc_getcash
* Thanks to @Lemongrass3110, @ecdarreola
Fixed status changes that are displayed for players that walk into the area after status change start being sent out with an invalid duration, since the timer was not yet created and causing an infinite duration packet to be sent.
Fixes#3182
Thanks to @Everade
Clients that do not support this ignore this anyway.
Party name is not displayed when you are in a clan unlike with a guild.
You can use display_party_name if you want to show it.
* Alphabetically sorted includes.
* Updated copyright and license text to match across all files.
* Removed pragma once define in header files in lieu of ifdef guards.
* Fixes#3225.
* While Crystallized Wind damage is increased 50%.
* Corrected an arrow state check for Crystallization on weapon damage reduction.
* Corrected elemental damage calculation for targets in pre-renewal mode.
Thanks to @flamefury!
* Fixes#3191.
* Adjusted movement speed reduction from -50% to -70%.
* Adjusted ASPD reduction from -15% to -30%.
* Adjusted physical DEF reduction from -10% to -30% for players only (mobs are still -10%).
* Adjusted variable cast time increase from +15% to fixed cast time +50%.
Thanks to @flamefury!
* Fixes#3217.
* A number of spelling and grammatical issues across the Dewata quests fixed in addition to the above issue.
Thanks to @danielbernard and @teededung!
* Fixes#3205.
* Follow up to 801d3ed.
* Resolved some string literals requiring a space.
* Redefine my_bool for MySQL 8.0 or later.
Thanks to @bentheexo and @secretdataz!
* Slight edits of custom Mushroom Event
- changed the monster count variable to mobcount script command
- changed killmonster label to only kill the mushrooms of the event
* Fixes#2099.
* Added Emergency Magic Gear.
-- Mounts the user to a Madogear.
-- Only usable by Mechanic class.
-- Has a reuse delay of 3 minutes.
* Increased maximum weight limit by 1500.
* HP naturally recovers similar to Swordman Moving HP-Recovery.
* Updated Emergency Cool's interaction with Overheat calculation.
* Added new Emergency Cool cooling devices.
* The three cooling devices now lower Overheat by 45, 75, and 105 respectively.
* Overheat now only increases on every attack by 1 or by 3 with Fire element.
* The Overheat limit is increased to 150, 200, 280, 360, and 450 respective to skill level.
* Updated the check for Acceleration, Self Destruction, Shape Shift, Emergency Cool, Magnetic Field, Neutral Barrier, and Stealth Field to also check inventory for required equipment.
* Updated Magic Gear Master NPC.
-- Added Emergency Magic Gear purchase option.
-- Added High Quality Cooler and Special Cooler upgrade options.
Thanks to @Felleonel, @Rytech2, @exneval and @mrjnumber1!
* Added missing maps to map_cache and its mapflags
* Added nowarp, nowarpto, pvp_noparty for RWC maps suggested by @Atemo
* Added mapflag/gvg_noparty.txt file to ignores party alliances on GvG-enabled maps.
* Fixes#3197.
* Bloody_Roar: Perfect dodge should not be affected, Flee should be reduced by Agi + BLvl instead of flat -160
* Bloody_Roar_C: Flee/Perfect dodge should not be affected, should restore 3 HP every 5 seconds
Thanks to @danielbernard!
* Added missing maps to map_cache
- additionnally removed the commented 'extra maps'
- Added mapflags on instances and dungeons maps
Credit to @zackdreaver for some map name
* Correct Variable Cast Rate for Geffen Magic Robe
* Fixes#3195
* Geffen Magic Robe (Renewal) (15074) is currently set to reduce variable cast rate by 15%, with an additional 5% at refine level 9. This should be an increase of 15%, reduced to 10% at level 9.
Thanks to @Balferian !
* Added new achievement.
* Updated score for Exploring Poring's life (2).
* Updated Reborn in Valhalla reward.
* Removed The Beginning of Outdoor and The First Step Becoming a Chef achievements as they are no longer listed.
* Initiale release of Instance Airship Assault
Walkthrough of airship assault instance based on Ziu's work
Thanks to @aleos89, @secretdataz and https://www.divine-pride.net/ !
* Follow up 87e7e8891b
- combo 18823:19246 : value for bResEff should be 10000 to immune the status
- combo 18823:28372 : according to the description the cast reduction is 2s
- item Imperial_Feather : according to the description of ID 18823 the bonus apply when base agi is 108 too
* Reverted combo 18823:28372 to match the database value, thanks to @aleos89 !
* Fixes#2510.
* Added Holink and Wagjak values to their own entries in the refine database.
* Added several anti-hack checks to refine NPC.
Thanks to the suggestion from @mazvi and @Atemo!
* Fixes#3031.
* Added missing Royal Guard Necklace and Imperial Glove.
* Added bSkillDelay bonus which increases delay of skill sk by t milliseconds.
Thanks to @iubantot and @Secret!
This adds support for /changedress and /nocosplay by adding an atcommand for it and redirecting the client command to it.
Thanks to @Everade for finding this.
Fixes#3108
Fixed wrong usage of EVENT_NAME_LENGTH, since this should have been UCHAR_MAX as well.
Converted C struct to C++ map/vector.
Removed limit of 255 events of a cached type.
Thanks to @ignizh and @secretdataz
* Fixes#2163, fixes#2720, and fixes#2761.
* Feint Bomb now closer mimics official behavior.
* Monsters now properly target the clone and refrain from attacking the Shadow Chaser.
* Shadow Chasers are now able to cast skills while in Feint Bomb hiding state.
* Removed extra skill cast value that wasn't used.
* Removed extra mob target release function as one already existed.
* Corrected Zanzou and Genwaku target release behavior as well.
Thanks to @ilovelemon, @redlightliu, and @MrAntares!
* Fixes#2969.
* Resolves unit skills that use UF_RANGEDSINGLEUNIT not being properly removed by other skills that clear unit types.
Thanks to @admkakaroto and @exneval!
* Fixes#3058.
* Updated links for prerequisites
* Updated Discord link as subdomain no longer exists
* Removed IRC links.. we haven't used this in forever!
Signed-off-by: Akkarinage <akkarin@rathena.org>
* Fixes#1086, fixes#2799, and fixes#3049.
* Fire Expansion Level 1 now lasts 10 seconds longer with stacked with Demonic Fire.
* Fire Expansion Tear Gas will no longer damage players on non-PvP type maps.
* Fire Expansion Acid is now misc type instead of magic.
* Corrected a possible map crash with Demonic Fire and Fire Expansion interactions.
* Demonic Fire can only have one instance on the ground at a time.
* Miscellaneous cleanups.
Thanks to @jamon18, @uddevil, and @LolyAll!
* Fixes#3052.
* Changed previous cartridges to item type 2 from item type 18.
* Added missing cartridges: Flare, Lightning, Ice, Poison, and Blind.
Thanks to @Questune09!
This will add support for all clients after 2018-03-07bRagexeRE.
This will work as long as Gravity does not add obfuscation or shuffling back in their clients.
If you want to be added to the list or want your mail address adjusted, please feel free to contact us.
Thanks to @kisuka for the original idea and the initial file.
Initial release of isle of Bios instance
* Implemented NPC_COMET
* Adjusted skillratio for NPC_COMET. Thanks to @secretdataz !
* Fixed typo, thanks to @Lemongrass3110 and @zackdreaver !
- Replaced Morroc -> Morocc and Reaper Yanku -> Grim Reaper Ankou
* Fixed typo in mob_db.txt, thanks to @talesofragnarok
Thanks to https://www.divine-pride.net/ for a lot of information !
* Fixes#2972.
* Updated Auto Shadow Spell:
-- Will now trigger even on ranged physical attacks.
-- Increased spell cast level to 3/3/4/4/5/5/6/6/7/7.
* Updated Reproduce:
-- SP penalty for casting spells is now 30% extra.
Thanks to @zackdreaver!
* Added a config for disabling novice/summoner character creation.
* Summoner can no longer be created on pre-renewal by default.
Thanks to @Lemongrass3110 for the help
* Fixes#2946.
* Resolves players being unable to transfer items when the character data is saved while a guild storage is open.
Thanks to @CodexRegius!
* Fixes#2087.
* The conditional was missing a check on Kagero/Oboro's Spirit Charm, therefore not removing the charms nor applying SP regeneration on caster.
Thanks to @Chisee!
* Fixes#2968.
* The rate of double attack should match the rate of Thief's Double Attack even levels.
* Confirmed that the double attack bonus does not work when weapons are not equipped.
Thanks to @redlightliu!
* Follow up to 2746e0d
* Cleaned up some variable assignments when parsing the packet.
* Updated packet documentation.
* Freed message 220.
Thanks to @RadianFord and @Lemongrass3110!
* Fixes#2858.
* Prevented items from being created if adding them to the inventory failed for whatever reason.
* Introduced a new config that allows to keep the old behavior.
Thanks to @Artuvazro and @Daegaladh!
* * Initial release of dimensional travel quest (access to flame bassin)
* Include misc npcs related to ep14.3
* Implementation of NPC_DEATHSUMMON - summon monsters at the location of master grave.
Thanks @ecdarreola, @rye305 for testing
Thanks to https://www.divine-pride.net/ !
* The case of unarmed and weapon (off-hand) resulted in the ASPD not being calculated properly.
* kRO includes the 1/4th ASPD penalty for off-hand weapons.
Thanks to @Tokeiburu!
* Fixes#2854.
* Updated guild skill Guard Up bonuses for pre-renewal and renewal.
* Removed SP adjustment as mobs don't have SP checks.
Thanks to @mrjnumber1!
* Fixes#2853.
* Holy Water should not cast or consume SP when the player has no empty bottles, both in water (and water skills) and outside water.
Thanks to @Daegaladh!
* More Items Correction (In general Equips) And new item 1835
Most errors in Item's Script. (but in some items, Weight and ATK/MATK rate too)
And new item "1835" Spartacus [2].
Special thanks to @sader1992, @Lemongrass3110 and Haruka Mayumi. (helped with some script).
Thanks to @aleos89 !
The button to access pin code menu after entering the correct code was likely removed in this client.
It was rendered in between all the characters if we send out the PASSED state instead of the OK state.
Thanks to Bruno
In this client the new character select and cash shop UI from Ragnarok Zero were merged into the Sakray client.
Increased MAX_CHARS to 15 to fit the new character select
Added possibility to overwrite MAX_CHARS in defines_pre.h
As always thanks to @4144 for the shuffle packets and keys.
* Fixes#2835.
* Rolling Cutter counter should only be reset on physical click-walks, not by any other movement.
Thanks to @ecdarreola and @secretdataz!
* Cleaned up Miracle damage bonus
* Fixes#2809, #2823.
* Moved the bulk of the checks outside of the status change check.
* This was possibly preventing the bonus from being applied when no statuses are active.
Thanks to @Dakado!
* Fixed Star Gladiator's SLS Wrath ATK calculation to match official servers.
* Fixes#2792.
* Added the missing HP bonus for Tasty Strawberry Hat (18852).
* Added the missing combo bonus for Tasty Strawberry Hat (18853).
* Corrected the buy price and equip level for Strawberry Decoration.
Thanks to @win4517!
* Fixes missing item view on Lapine Shield (2198) and White Gold Shield (2196)
* Missing item view on shield causing shield-related spell cannot be used.
* Added View ID on Lian Shield (2195)
* Fixed View ID Lian Shield, Lapine Shield, and White Gold Shield
Thanks to @Atemo
Initial release of Phantasmagorika Quests containing
* Phantasmagorika Quests ep 15.1 and 15.2
* Central Lab instance
* The Last Room instance
* News monsters around verus (credits divine-pride.net)
Thanks to @rofasindo @Valorro @jenkijo @ecdarreola @Jeybla !
Special thanks to Divine Pride !
** Updated Old Glast Heim instance
* Changed hardcoded sprite ID for NPCs in Old Glast Heim to constant
* Cleaned up Old Glast Heim NPC dialogues
* Merged OGH merchants from idathena (credits @exneval)
* Updated Old Glast Heim mobs
* Updated stats and skills for all Old Glast Heim mobs.
* Added Modified Boots (Temporal Boots for Oboro/Kagerou, Rebellion) entries.
* Added Gigant Snake Skin + Modified Boots item combo
Thanks to @secretdataz @aleos89 @srhmike @ecdarreola Heris, @zackdreaver @exneval and the reviewers
Special thanks to Divine-Pride.net!
* Added config to hide last chars of player's name `broadcast_hide_name` and its default value is 2.
* Fixed `getgroupitem` that should give unidentified item for equipment types.
* Added optional param for `getgroupitem` and `getrandgroupitem` to always give player identified item, ignores the `itemdb_isidentified`'s check.
* Thanks to @aleos89 @Lemongrass3110
* Fixes#2703.
* Added alternative for script command bpet: birthpet.
* Added alternative for script command pet: catchpet.
* Updated documentation for script command pet.
* Added PET_CATCH_UNIVERSAL_ITEM for script command pet which will attempt to catch the targeted monster as long as it is in the pet database and the targeted monster requires the lure item used.
Thanks to @sader1992!
* Duels are now dynamically created and no longer statically consumes memory.
* Removed max number of duel at once.
* Updated duel modules for multi-thread and safer management.
* Remove various statically allocated tab.
* Removed duplicate code for npc_movenpc.
* Fix few warnings.
Thanks for suggestions from @anacondaqq.
* Cleaned up renewal ASPD calculations
* Fixes#2067 and fixes#2224.
* Adjusted the ASPD table to match Aegis values.
* Angra Manyu now disregards base ASPD values (Pre-Renewal only).
* Relocated Angra Manyu check
* Moved Angra Manyu check to the front to avoid useless calculations.
Thanks to @Lemongrass3110!
* Corrected double weapon calculations
* Resolved wearing two weapons causing ASPD to drop significantly.
* Corrected some typos in the Assassin class ASPD table.
* Added a missing Shadow Arms equipment check.
Thanks to @Lilori!
* Removed some unneeded defines
* Removed the single handed and double handed weapon max defines.
Thanks to @Jeybla!
* Renamed constants to keep legacy values
* Update status.cpp
* Fix#2694
Move down skill_unit_move(bl,gettick(),4) of unit_remove_map_ to avoid conflict with duel changing realm.
The issue was that skill_unit_onleft was called before the duel_leave handling which was reapplying skill_unit_onplace causing an infinite status duration.
Other skill might had same issue.
* Small optimisation.
Avoid calling status_change_end when we have no status set yet (or no status_change holder).
Move down overrecurent call to status_change_end SC_ROLLINGCUTTER.
* Switched mob db searches to find
* Replace NULL with nullptr
As suggested by @Jeybla
This way no (caught) exceptions will be reported in visual studio anymore
* status_change_timer refactorization
* Changes some pointers to const pointers to prevent unwanted behavoir.
* Changes sc_timer_next to a lambda function with only the tick as a
paramter.
* sce is not reassigned in sc_timer_next anymore, therefore it should be
crash safe (see #2414 and #2539)
* Fixes#2539
* Thanks to @whupdo, @MuzTank and @admkakaroto!
* Fix#2425 Character variable lengths and char-server
Medium term fox for crash on char-serv caused by too long character variable.
Add few error msg and safety.
Add npc/test/npc_test_longvar.txt as a basic test.
NB:
The config.in for max_colum size if not really set as best would either retrive that value from sql, or use the same config file to actually set the sql column size...
May be handle later with some kind of hibernate ORM.
Thanks to @Tokeiburu, @aleos89, @Lemongrass3110.
* Snowman Hat (5738): Drop chance Buche de Noel and Candy Cane were reversed
* Holy Mom Love (5790): Corrected auto cast skill to Blessing
* Event Xmas Cake (12200): Heals HP by 5%
* Fixes#2706
* Fixes#2674 and fixes#2678.
* Chain Lightning will no longer bounce across Ice Wall.
* Chain Lightning damage should slowly decrease based on the number of bounces remaining.
* Removed the splash effect which was causing the damage to iterate faster on the first two hits.
* Removed the skill unit defines.
Thanks to @Sweet520!
* Fixed Crush Strike damage bonus
* Fixes#2684.
* Base damage increase should not be affected by a success rate.
* Adjusted Crush Strike weapon attack to take from the current indexed value.
Thanks to @Badarosk0 and @Paoly28!
* Updated Sorcerer Insignia Skills
* Fixes#2630.
* Added missing Elemental 20% damage bonus for level 1 Insignia.
* Adjusted the recovery bonus to only apply to Elementals.
* Adjusted 25% magic damage bonus calculation.
* Added the missing ASPD bonus for Wind Insignia.
* Insignias should not affect status immune.
* Removed the BATK addition.
* Miscellaneous cleanups.
Thanks to @admkakaroto and @exneval!
* Changes some pointers to const pointers to prevent unwanted behavoir.
* Changes sc_timer_next to a lambda function with only the tick as a
paramter.
* sce is not reassigned in sc_timer_next anymore, therefore it should be
crash safe (see #2414 and #2539)
* Fixes#2682: `getitem3`, `delitem3`, and `countitem3` always fail if `RandomValueArray` or `RandomParamArray` are not defined (Not all Item Options need 'Value' and 'Param')
* Thanks to @rAthenaCN
* Updated status change documentation for SC_STRIKING, SC_MOONLITSERENADE, SC_RUSHWINDMILL, SC_GT_REVITALIZE, SC_GT_ENERGYGAIN, SC_GT_CHANGE.
Thanks to @uddevil!
* Added the custom and test scripts to the buildbot
All scripts inside the custom and test npc directory are now parsed and executed automatically by the buildbot.
The only exceptions are the custom battleground scripts that would cause duplication warnings.
Thanks to @Jeybla for the Unix script!
* Fix#2591 spinlock issue.
Add basic_test, for few integration test.
Add thread_local_storage support in cmake
Fix thread.c for linux and fix small typo
* Follow up to 1c66035.
* Reverted a lambda function which was causing a mismatch between achievement vectors and player achievements.
Thanks to @reymarbc and @cydh!
* Fixes#2621
* Makes the getspawn functions independent of the mob_db struct.
Removes the getMobID() function from the struct which caused the
the issue.
* Thanks to @Lemongrass3110 and @uddevil!
* Adjusting Vending tax to match official
* Fixes#2528.
* There are no taxes on items being sold for less than 100 million. Anything above incurs a 5% tax.
* Refactored the tax code to use a single function.
Thanks to @mazvi, @Jeybla, and @lighta!
* Refactored achievements to utilize C++ features
* Cleaned up the YAML parser.
* Moved achievements from DBMap to an unordered_map.
* Moved achievement targets from DBMap to a vector.
* Changed all struct arrays into vectors.
* Changed all char arrays to strings.
* Changed all int arrays to std::arrays.
* Removed achievement_dummy as it's no longer needed.
* Achievements now use smart pointer to ensure proper construction and deconstruction of objects.
Thanks to @lighta!
* Fixed compilation for the Windows XP API
Fixes#2137
Thanks to @zackdreaver
* Fixed Windows version initialization
Respecting the SDK's Windows version and only use our own defines if they are not set by the SDK, which should not happen.
Thanks to @lighta.
* Moved Windows Vista declaration up
This way all defines that should actually come from sdkddkver.h will be checked right behind it and defined if they were not.
* Reverted line deletion
With this you will not have to upgrade your solution everytime you clone a fresh copy of rAthena and the problem with having to stash between branch switches should also be gone.
If you want to compile it for another toolset you simply have to set the target toolset by yourself.
With this the internal static array was changed to a std::map which manages it's memory dynamically when needed.
Dropped mob_dummy since it was useless to have it in the first place.
Replaced a lot of direct accesses to the mob db by the "get" function.
With this you can now use 20021-31998 for monsters and also 4000-20020 will be used for player clones whenever needed.
Dropped mobdb_exists
Replaced almost all references to MAX_MOB_DB
Moved MAX_MOB_DB from the header directly into the source file to make it only visible to the .cpp file itself and not to any other.
Moved the mob drop calculation function from itemdb.cpp into mob.cpp, because it needs to iterate over the whole mob db.
Added a few missing clone checks.
Thanks to @lighta, @Jeybla and @aleos89.
* Now mob_get_spawn does not add empty vectors to mob_spawn_data, when the
mobid does not exist in mob_spawn_data
* Saves a bit more memory space
* Thanks to @Lemongrass3110 for the suggestion
* Moves the monster spawn infos from the mob_db struct to an own
data structure.
* Fixes whereis after mobdb reload. Fixes#2360
* Fixes Taekwon Mission after mobdb reload. Closes#2460
* Thanks to @uddevil, @mgksrt8, @lighta and @aleos89!
* Fixes#2575 and fixes#2574.
* Adjusted the formula to properly account for bonuses which are additive of one another, not multiplicative.
* Added the global multiplier which is added on after MATK.
* Updated Highness Heal, Fresh Shrimp, and Bunch of Shrimp heal formulas.
Thanks to @Tokeiburu for his extensive research and code!
* Small cleanup of Rune Knight Runes
* Stone Hard Skin weapon break chance only applies to physical melee attacks.
* Giant Growth's physical bonus damage only applies to Rune Knights.
* Corrected weapon break chance to only happen when damage is increased for Giant Growth.
Thanks to @Rytech2 and @Jeybla!
* Adds several dungeons and fields
* Adds options for WOE TE Castles and dungeons
* Adds option to disable satan morroc and re-enable old morroc maps
* Adds option to warp only on the first level (of dungeons/fields)
* Adds Lasagna Town
* Adds castles Kafragarten and Gloria
* Adds several instances
* Adds Dimensional Rift and Para Market
This PR change the emoticons constant name to match emoticonlist from client side.
Note: the previous emoticons names are now deprecated.
Additionnally emotion and unitemote scripts commands are being merged together to the new format
-> emotion <emotion number>{,<target>};
Where target use the target Game ID (GID) of the unit (npc, pet, character etc..).
* unitemote is now deprecated.
* Additionnally fixed incorrect variable in quests_brasilis.txt
Thanks to @aleos89 and @Lemongrass3110 !
* Fixes#2540.
* Added battle config autoloot_adjust that allows autoloot to take player drop penalties and bonuses into account.
Thanks to @ecdarreola!
* Fixes#2572.
* Added a custom rule to avoid optimization causing monsters to not attack. (From tests this appears to be npc.cpp on Centos 7 and mob.cpp on Windows vc141)
* Added -fno-strict-alising to CMake when building with GCC. (Clang and VS have it by default)
* Fixed cmake output path.
Thanks to @lighta!
* Created a define for maximum warp attempts.
* Added SETPOS_MAX_ATTEMPTS for pc_setpos.
* Adjusted buildin_warp_sub to return enum e_setpos.
* Removed pc_randomwarp since it was just duplicate code and pc_setpos already contained the same exact functions.
* Fixed a few locations where a destination point would fail when searching for the map index.
* Added clan type to script command mapwarp.
* Adjusted various variable types to match.
Thanks to @Lemongrass3110's suggestions!
* Fixes#2173.
* Created a central warp function to check for Random, SavePoint, and Save arguments.
* Script commands areawarp, warppartner, warpwaitingpc, and areawarp now support Random, SavePoint and Save as destinations.
Thanks to @jezznar!
2017-06-20 19:27:14 -04:00
1176 changed files with 259704 additions and 86876 deletions
1. Make sure you have a [GitHub account](https://github.com/signup/free).
2. Next, you will need to [fork rAthena](https://help.github.com/articles/fork-a-repo/#step-3-configure-git-to-sync-your-fork-with-the-original-spoon-knife-repository) to your account.
2. Next, you will need to [fork rAthena](https://help.github.com/articles/fork-a-repo/#fork-an-example-repository) to your account.
3. Before making changes, make sure you [create a new branch](https://help.github.com/articles/creating-and-deleting-branches-within-your-repository/) for your working tree.
4. After completing your changes, commit and push it to your branch.
5. Now you are ready to [create a Pull Request](https://help.github.com/articles/creating-a-pull-request/) for rAthena!
> rAthena is a collaborative software development project revolving around the creation of a robust massively multiplayer online role playing game (MMORPG) server package. Written in C, the program is very versatile and provides NPCs, warps and modifications. The project is jointly managed by a group of volunteers located around the world as well as a tremendous community providing QA and support. rAthena is a continuation of the eAthena project.
Table of Contents
---------
1. What is rAthena?
2. Prerequisites
3. Installation
4. Troubleshooting
5. Helpful Links
6. More Documentation
7. How to Contribute
[Forum](https://rathena.org/board)|[Discord](https://rathena.org/discord)|[Wiki](https://github.com/rathena/rathena/wiki)|[FluxCP](https://github.com/rathena/FluxCP)|[Crowdfunding](https://rathena.org/board/crowdfunding/)|[Fork and Pull Request Q&A](https://rathena.org/board/topic/86913-pull-request-qa/)
504: Has utilizado %d puntos Kafra y %d puntos de cash. Te quedan %d puntos Kafra y %d puntos de cash.
505: Has obtenido %d puntos de cash. Tienes un total de %d puntos.
506: Has obtenido %d puntos Kafra. Tienes un total de %d puntos.
410: Se han eliminado %d puntos de cash. Quedan %d puntos.
411: Se han eliminado %d puntos Kafra. Quedan %d puntos.
504: Puntos utilizados: Kafra: %d. Cash: %d. Puntos restantes: Kafra: %d. Cash: %d.
505: Puntos de cash obtenidos: %d. Puntos totales: %d.
506: Puntos de Kafra obtenidos %d. Puntos totales: %d.
410: Puntos de cash eliminados: %d. Puntos restantes: %d.
411: Puntos de Kafra eliminados: %d. Puntos restantes: %d.
// Mensajes del sistemade intercambio de objetos
507: Este jugador ha sido expulsado durante %d minuto(s).
508: Este jugador no ha sido expulsado (La opción está desactivada).
//509 vacío
// Bloqueo de personajes
507: Este jugador ha sido bloqueado durante estos minutos: %d.
508: Este jugador no ha sido bloqueado (el bloqueo está desactivado).
509: Comandos de scripts ligados:
// Sistema de correo
//----------------------
510: Tienes un total de %d cartas nuevas(%d sin leer).
510: Correos nuevos: %d(%d sin leer).
//Instancing
515: Tu instancia se ha recargado.
516: Se ha recargado la base de datos de instancias.
// @auction
517: El sistema de subastas está desactivado.
//@itemlist -- continuación
518: Adorno para la boca,
519: Adorno para la cabeza,
520: Adorno para la cabeza y la boca,
521: Adorno para los ojos,
522: Adorno para ojos y boca,
523: Adorno para toda la cara,
524: Ropa decorativa,
525: Suelo decorativo,
526: Armadura,
527: Cuerpo sombrío,
528: Mano derecha sombría,
529: Mano izquierda sombría,
530: Sombra en ambas manos,
531: Zapatos sombríos,
532: Accesorio derecho sombrío,
533: Accesorio izquierdo sombrío,
534: ¡No quedan existencias! Vuelve más tarde.
// Mensajes de detección de bots (sin uso)
535: Se ha detectado un posible bot (99% de probabilidades) o un cliente modificado:'%s' (cuenta: %d, char_id: %d). Este jugador te pregunta el nombre si estás escondido.
536: El personaje '%s' (cuenta: %d) está intentando utilizar un bot (intentando detectar a un jugador falso).
537: El personaje '%s' (cuenta: %d) está intentando utilizar un bot (intentando detectar a un monstruo falso).
// Mensajes del sistemade intercambio de objetos
538: Se ha detectado una irregularidad en el intercambio de objetos del personaje '%s' (cuenta: %d), está intentando intercambiar más de lo que tiene.
539: Ese jugador tiene %d unidades del objeto (id: %hu), pero ha intentado intercambiar %d.
540: Ese jugador ha sido bloqueado.
// Anuncios de consecución de objetos poco comunes y robos de objetos.
541: '%s' ha conseguido de %s un %s (probabilidad: %0.02f%%)
986: Introduce una cifra (Instrucciones @lvup/@blevel/@baselvlup <cantidad deniveles>).
986: Introduce una cifra (instrucciones @lvup/@blevel/@baselvlup <cantidad deniveles>).
// @joblevelup
987: Introduce una cifra (Instrucciones: @joblvup/@jlevel/@joblvlup <cantidad de niveles>).
987: Introduce una cifra (instrucciones: @joblvup/@jlevel/@joblvlup <cantidad de niveles>).
// @help
988: No hay ayuda disponible para %c%s.
@@ -760,22 +907,22 @@
990: Alternativas disponibles:
// @model
991: Introduce al menos un valor (Instrucciones: @model <ID del peinado: %d-%d> <color del peinado: %d-%d> <tinte de ropa: %d-%d>).
991: Introduce al menos un valor (instrucciones: @model <ID del peinado: %d-%d> <color del peinado: %d-%d> <tinte de ropa: %d-%d>).
// @dye
992: Introduce un tinte de ropa (Instrucciones: @dye/@ccolor <tinte de ropa: %d-%d>).
992: Introduce un tinte de ropa (instrucciones: @dye/@ccolor <tinte de ropa: %d-%d>).
// @hairstyle
993: Introduce un tipo de peinado (Instrucciones: @hairstyle/@hstyle <ID del peinado: %d-%d>).
993: Introduce un tipo de peinado (instrucciones: @hairstyle/@hstyle <ID del peinado: %d-%d>).
// @haircolor
994: Introduce un color de peinado (Instrucciones: @haircolor/@hcolor <color del peinado: %d-%d>).
994: Introduce un color de peinado (instrucciones: @haircolor/@hcolor <color del peinado: %d-%d>).
// @go
995: No puedes utilizar @go en este mapa.
// @refine
996: Introduce una pieza de equipo y una cantidad (Instrucciones: @refine <pieza de equipo> <+/- cantidad>).
996: Introduce una pieza de equipo y una cantidad (instrucciones: @refine <pieza de equipo> <+/- cantidad>).
997: %d: Boca
998: %d: Mano derecha
999: %d: Ropaje
@@ -788,89 +935,92 @@
1006: %d: Ojos / Orejas
// @produce
1007: Introduce el nombre/ID de un objeto (Instrucciones: @produce <pieza de equipo/ID> <elemento> <# cantidad de "muy">)
1007: Introduce el nombre/ID de un objeto (instrucciones: @produce <pieza de equipo/ID> <elemento> <# cantidad de "muy">)
// @memo
1008: Introduce una ubicación válida (Instrucciones: @memo <posición_memo:%d-%d>).
1008: Introduce una ubicación válida (instrucciones: @memo <posición_memo:%d-%d>).
// @displaystatus
1009: Introduce un valor válido (Instrucciones: @displaystatus <tipo de estado> <identificador> <punto> {<valor1> {<valor2> {<valor3>}}}).)
1009: Introduce un valor válido (instrucciones: @displaystatus <tipo de estado> <identificador> <punto> {<valor1> {<valor2> {<valor3>}}}).)
// @stpoint
1010: Introduce una cantidad (Instrucciones: @stpoint <cantidad de puntos>)
1010: Introduce una cantidad (instrucciones: @stpoint <cantidad de puntos>)
// @skpoint
1011: Introduce una cantidad (Instrucciones: @skpoint <cantidad de puntos>)
1011: Introduce una cantidad (instrucciones: @skpoint <cantidad de puntos>)
// @zeny
1012: Introduce una cantidad (Instrucciones: @zeny <cantidad>).
1012: Introduce una cantidad (instrucciones: @zeny <cantidad>).
// @param
1013: Introduce una cantidad(Instrucciones: @str/@agi/@vit/@int/@dex/@luk <+/- cantidad>).
1013: Introduce una cantidad(instrucciones: @str/@agi/@vit/@int/@dex/@luk <+/- cantidad>).
// @guildlevelup
1014: Introduce una cantidad (Instrucciones: @guildlvup/@guildlvlup <cantidad de niveles>).
1014: Introduce una cantidad (instrucciones: @guildlvup/@guildlvlup <cantidad de niveles>).
// @makeegg
1015: Introduce el nombre de un monstruo/huevo/ID (Instrucciones: @makeegg <mascota>).
1015: Introduce el nombre de un monstruo/huevo/ID (instrucciones: @makeegg <mascota>).
// @petfriendly
1016: Introduce una cantidad (Instrucciones: @petfriendly <0-1000>).
1016: Introduce una cantidad (instrucciones: @petfriendly <0-1000>).
// @pethungry
1017: Introduce una cantidad (Instrucciones: @pethungry <0-100>).
1017: Introduce una cantidad (instrucciones: @pethungry <0-100>).
// @recall
1018: Introduce el nombre de un jugador (Instrucciones: @recall <nombre/ID>)
1018: Introduce el nombre de un jugador (instrucciones: @recall <nombre/ID>)
1019: No estás autorizado a llevar a nadie a este mapa.
// @recall
1020: No estás autorizado a sacar a ese jugador de su mapa.
// @charblock
1021: Introduce el nombre de un jugador (Instrucciones: @charblock/@block <nombre del personaje>)
// @charblock/@charunblock
1021: Introduce el nombre de un jugador (instrucciones: @charblock/@block <nombre del personaje>)
// @charban
1022: Introducela duracióndel bloqueo y el nombre del jugador que quieres bloquear (Instrucciones: @charban/@ban/@banish/@charbanish <tiempo> <nombre del personaje>).
// @ban/@charban
1022: Introducela duracióndel bloqueo y el nombre del jugador (instrucciones: %s <tiempo> <nombre del personaje>).
1023: No estás autorizado para modificar ningún bloqueo temporal.
// @charunblock
1024: Introduce el nombre de un jugador bloqueado (Instrucciones: @charunblock <nombre del personaje>).
// @rates
1024: Ratio de objetos de MVP: Comunes %.2fx / Curativos %.2fx / Consumibles %.2fx / Equipo %.2fx / Carta %.2fx
// @recall
1025: El personaje está en autotrade y no puede acudir.
// @kick
1026: Introduce el nombre de un personaje (Instrucciones: @kick <nombre del personaje/ID>).
1026: Introduce el nombre de un personaje (instrucciones: @kick <nombre del personaje/ID>).
// @questskill / @lostskill
1027: Introduce la ID de una habilidad de quest.
// @spiritball
1028: Introduce una cantidad (Instrucciones: @spiritball <cantidad: 0-%d>).
1028: Introduce una cantidad (instrucciones: @spiritball <cantidad: 0-%d>).
// @party
1029: Introduce el nombre de un grupo (Instrucciones: @party <nombre del grupo>).
1029: Introduce el nombre de un grupo (instrucciones: @party <nombre del grupo>).
// @guild
1030: Introduce el nombre de un clan (Instrucciones: @guild <nombre del clan>).
1030: Introduce el nombre de un clan (instrucciones: @guild <nombre del clan>).
// @idsearch
1031: Introduce una parte del nombre de un objeto (Instrucciones: @idsearch <parte del nombre>).
1031: Introduce una parte del nombre de un objeto (instrucciones: @idsearch <parte del nombre>).
// @recallall / @guildrecall / @partyrecall
1032: No estás autorizado a traer nadie a este mapa.
1033: Jugadores no convocados: %d(no estás autorizado).
// @guildrecall
1034: Introduceel nombre/ID de unclan (Instrucciones: @guildrecall <nombre/ID del clan>).
1034: Introduceel nombre/ID de unclan (instrucciones: @guildrecall <nombre/ID del clan>).
// @partyrecall
1035: Introduce el nombre/ID de un grupo (Instrucciones: @partyrecall <nombre/ID del grupo>).
1035: Introduce el nombre/ID de un grupo (instrucciones: @partyrecall <nombre/ID del grupo>).
// @reloadatcommand
1036: Ha ocurrido un error al cargar el archivo groups.conf.
1037: Ha ocurrido un error al cargar el archivo atcommand_athena.conf.
//1037 free
// @mapinfo
1038: Introduce un número de la lista (Instrucciones: @mapinfo <0-3> <mapa>).
1038: Introduce un número de la lista (instrucciones: @mapinfo <0-3> <mapa>).
1065: Sin penalización de experiencia: %s | Sin penalización de zeny: %s
1066: Activado
1067: Desactivado
1068: Sin opción de guardado(Vuelves al punto de guardado)
1068: Sin opción de guardado(vuelves al punto de guardado)
1069: Sin opción de guardado, punto de guardado: %s, aleatorio
1070: Sin opción de guardado, punto de guardado: %s,%d,%d
// @mount
1119:Te has montado en tudragón.
1120: Has liberado a tu dragón.
@@ -902,34 +1054,34 @@
// @guildspy
1125: Este comando está desactivado.
1126: Introduce el nombre/ID de un clan (Instrucciones: @guildspy <nombre/ID del clan>).
1126: Introduce el nombre/ID de un clan (instrucciones: @guildspy <nombre/ID del clan>).
// @partyspy
1127: Introduce el nombre/ID de un grupo (Instrucciones: @partyspy <nombre/ID del grupo>).
1127: Introduce el nombre/ID de un grupo (instrucciones: @partyspy <nombre/ID del grupo>).
// @nuke
1128: Introduce el nombre de algún jugador (Instrucciones: @nuke <nombre del personaje>).
1128: Introduce el nombre de algún jugador (instrucciones: @nuke <nombre del personaje>).
// @tonpc
1129: Introduce el nombre de algún NPC (Instrucciones: @tonpc <nombre del NPC>).
1129: Introduce el nombre de algún NPC (instrucciones: @tonpc <nombre del NPC>).
// @enablenpc
1130: Introduce el nombre de un NPC (Instrucciones: @enablenpc <nombre del NPC>).
1130: Introduce el nombre de un NPC (instrucciones: @enablenpc <nombre del NPC>).
// @hidenpc
1131: Introduce el nombre de un NPC (Instrucciones: @hidenpc <nombre del NPC>).
1131: Introduce el nombre de un NPC (instrucciones: @hidenpc <nombre del NPC>).
// @loadnpc
1132: Introduce el nombre de un script (Instrucciones: @loadnpc <ruta del script>)
1132: Introduce el nombre de un script (instrucciones: @loadnpc <ruta del script>)
// @unloadnpc
1133: Introduce el nombre de un NPC (Instrucciones: @unloadnpc <nombre del NPC>).
1133: Introduce el nombre de un NPC (instrucciones: @unloadnpc <nombre del NPC>).
// @jail
1134: Introduce el nombre de algún jugador (Instrucciones: @jail <nombre del personaje>).
1134: Introduce el nombre de algún jugador (instrucciones: @jail <nombre del personaje>).
// @unjail
1135: Introduce el nombre de algún jugador (Instrucciones: @unjail/@discharge <nombre del personaje>).
1135: Introduce el nombre de algún jugador (instrucciones: @unjail/@discharge <nombre del personaje>).
// @jailfor
1136: La duración que has introducido no es válida.
@@ -943,32 +1095,32 @@
1142: Te quedarás
// @disguise
1143:Introduce el nombre/ID de un monstruo/NPC (Instrucciones: @disguise <nombre/ID>).
1143:Introduce el nombre/ID de un monstruo/NPC (instrucciones: @disguise <nombre/ID>).
1144: No puedes disfrazarte en una montura.
// @disguiseall
1145: Introduce el nombre/ID de un monstruo/NPC (Instrucciones: @disguiseall <nombre/ID>).
1145: Introduce el nombre/ID de un monstruo/NPC (instrucciones: @disguiseall <nombre/ID>).
// @disguiseguild
1146: Introduce el nombre/ID de un monstruo, y el nombre/ID de un clan (Instrucciones: @disguiseguild <nombre/ID del monstruo> <nombre/ID del clan>).
1146: Introduce el nombre/ID de un monstruo, y el nombre/ID de un clan (instrucciones: @disguiseguild <nombre/ID del monstruo> <nombre/ID del clan>).
// @undisguiseguild
1147: Introduce el nombre/ID de un clan (Instrucciones: @undisguiseguild <nombre/ID del clan>).
1147: Introduce el nombre/ID de un clan (instrucciones: @undisguiseguild <nombre/ID del clan>).
// @exp
1148: Nivel de base: %d (%.3f%%) | Nivel de oficio: %d (%.3f%%)
// broadcast
1149:Escribe un mensaje (Instrucciones: @broadcast <mensaje>).
1149:Escribe un mensaje (instrucciones: @broadcast <mensaje>).
// localbroadcast
1150: Introduce un mensaje (Instrucciones @localbroadcast <mensaje>).
1150: Introduce un mensaje (instrucciones @localbroadcast <mensaje>).
// @email
1151: Introduce dos correos electrónicos (Instrucciones: @email <actual> <nuevo>)
1151: Introduce dos correos electrónicos (instrucciones: @email <actual> <nuevo>)
// @effect
1152: Introduce el ID de algún efecto (Instrucciones: @effect <ID del efecto>)
1152: Introduce el ID de algún efecto (instrucciones: @effect <ID del efecto>)
// @npcmove
1153: Instrucciones: @npcmove <X> <Y> <nombre del NPC>
@@ -989,7 +1141,7 @@
1162: Has almacenado todos tus objetos.
// @skillid
1163: Introduce el nombre de la habilidad a buscar (Instrucciones: @skillid <nombre de la habilidad>).
1163: Introduce el nombre de la habilidad a buscar (instrucciones: @skillid <nombre de la habilidad>).
1164: habilidad %d: %s (%s)
// @useskill
@@ -1046,8 +1198,8 @@
1193: No estás recogiendo ese objeto.
1194: Has eliminado'%s'/'%s' {%hu} de tu lista de recogida de objetos.
1195: Puedes almacenar %d objetos en tu lista de recogida de objetos.
1196: Para añadir un nuevo objeto a la lista utiliza @alootid <nombre/ID del objeto>. Para eliminar un objeto utiliza @alootid <nombre/ID del objeto>.
1197: @alootid reset reiniciará tu lista de recogida de objetos.
1196: Para añadir un nuevo objeto a la lista utiliza @alootid +<nombre/ID del objeto>. Para eliminar un objeto utiliza @alootid -<nombre/ID del objeto>.
1197: "@alootid reset" reiniciará tu lista de recogida de objetos.
1198: Tu lista de recogida de objetos está vacía.
1199: Lista de objetos para recoger automáticamente:
1200: Has reiniciado tu lista de recogida de objetos.
@@ -1085,10 +1237,10 @@
1216: Ha comenzado el espectáculo de fuegos artificiales.
// @sound
1217: Introduce el nombre de un archivo de sonido (Instrucciones:@sound<archivo>).
1217: Introduce el nombre de un archivo de sonido (instrucciones:@sound<archivo>).
// @mobsearch
1218: Introduce el nombre de un monstruo (Instrucciones: @mobsearch <nombre del monstruo>),
1218: Introduce el nombre de un monstruo (instrucciones: @mobsearch <nombre del monstruo>),
1219: Ese monstruo no existe (%s).
1220: Búsqueda... %s %s
@@ -1096,14 +1248,14 @@
1221: Has eliminado todos los objetos arrojados al suelo.
// @npctalk
1222: Introduce los siguientes parámetros (Instrucciones: @npctalk <nombre del npc> <mensaje>).
1223: Introduce los siguientes parámetros (Instrucciones @npctalk <color> <nombre del npc> <mensaje>).
1222: Introduce los siguientes parámetros (instrucciones: @npctalk <nombre del npc> <mensaje>).
1223: Introduce los siguientes parámetros (instrucciones @npctalk <color> <nombre del npc> <mensaje>).
// @pettalk
1224: Introduce un mensaje (Instrucciones: @pettalk <mensaje>).
1224: Introduce un mensaje (instrucciones: @pettalk <mensaje>).
// @summon
1225: Introduce el nombre de un monstruo (Instrucciones: @summon <nombre del monstruo> {duración}).
1225: Introduce el nombre de un monstruo (instrucciones: @summon <nombre del monstruo> {duración}).
// @adjgroup
1226: Instrucciones @adjgroup <ID del grupo>
@@ -1112,7 +1264,7 @@
1229: Has cambiado de grupo.
// @trade
1230: Introduce el nombre de un jugador (Instrucciones: @trade <nombre del personaje>).
1230: Introduce el nombre de un jugador (instrucciones: @trade <nombre del personaje>).
1284: Introduce el nombre/ID de un objeto (Instrucciones: @whodrops <nombre/ID del objeto>).
1284: Introduce el nombre/ID de un objeto (instrucciones: @whodrops <nombre/ID del objeto>).
1285: Objeto: '%s'[%d] (ID:%d)
1286: - Ningún monstruo tiene ese objeto.
1287: - Estos monstruos tienen ese objeto (sólo se muestran un máximo de %d):
// @whereis
1288: Introduce el nombre/ID de un monstruo (Instrucciones: @whereis <nombre/ID del monstruo>).
1288: Introduce el nombre/ID de un monstruo (instrucciones: @whereis <nombre/ID del monstruo>).
1289: Puedes encontrarun %s en:
1290: Este monstruo no aparece en ninguna parte.
@@ -1223,7 +1375,7 @@
1296: No se puede especificar la versión SVN.
// @mutearea
1297: Introduce la cantidad de minutos (Instrucciones: @mutearea/@stfu <minutos>).
1297: Introduce la cantidad de minutos (instrucciones: @mutearea/@stfu <minutos>).
// @rates
1298:Experiencia: Base %.2fx / Oficio %.2fx
@@ -1232,13 +1384,13 @@
1301: Otros objetos: MvP %.2fx /Cartas %.2fx /Cofres %.2fx
// @me
1302: Introduce un mensaje (Instrucciones: @me <mensaje>).
1302: Introduce un mensaje (instrucciones: @me <mensaje>).
// @size / @sizeall / @sizeguild
1303: Has alterado tu tamaño.
// @sizeguild
1304: Introduce el nombre/ID de un clan (Instrucciones: @sizeguild <tamaño> <nombre/ID del clan>).
1304: Introduce el nombre/ID de un clan (instrucciones: @sizeguild <tamaño> <nombre/ID del clan>).
// @monsterignore
1305: Ahora eres inmune a cualquier ataque.
@@ -1315,7 +1467,7 @@
1354: Objetos encontrados: %den %d %s ranuras.
// @delitem
1355: Introduce el nombre/ID de un objeto, una cantidad, y el nombre de un jugador (Instrucciones: #delitem <jugador> <nombre/ID del objeto> <cantidad>).
1355: Introduce el nombre/ID de un objeto, una cantidad, y el nombre de un jugador (instrucciones: #delitem <jugador> <nombre/ID del objeto> <cantidad>).
// @font
1356: Ahora se utilizará la fuente por defecto.
@@ -1336,21 +1488,23 @@
// @set
1367: Instrucciones: @set <nombre de la variable> <valor>
1368: Instrucciones: ej. @set PoringCharVar 50
1369: Instrucciones: ej. @set PoringCharVarSTR$ Cadena de texto
1370: Instrucciones: ej. @set PoringCharVarSTR$ muestra su valor, Cadena de texto.
1368: Instrucciones: ej. "@set PoringCharVar 50"
1369: Instrucciones: ej. "@set PoringCharVarSTR$ Cadena de texto"
1370: Instrucciones: ej. "@set PoringCharVarSTR$" muestra su valor, cadena de texto.
1371: Las variables de NPC no se pueden editar con @set.
1372: Las variables de instancias no se pueden editar con @set.
1373: El valor %s ahora es:%d
1374: El valor %sahora es:%s
1373: El valor %s ahora es: %lld
1374: El valor %sahora es:%s
1375: %s está vacío
//1376: free
// @cash/@points
1376: Cierra la tienda de cash antes de ejecutar este comando.
// @reloadquestdb
1377: Se ha actualizado la base de datos de las quest con éxito.
// @addperm
1378: Instrucciones %s <permisos>
1378: Instrucciones: %s <permisos>
1379: -- Listado de permisos
1380: '%s' no es un permiso válido.
1381: El jugador '%s' ya tiene el permiso '%s'.
@@ -1364,15 +1518,15 @@
1387: Ese archivo no existe.
// Mensajes de comandos en general
1388: Ha fallado el comando (Instrucciones: %c<comando> <nombre del personaje> <parámetros>).
1388: Ha fallado el comando (instrucciones: %c<comando> <nombre del personaje> <parámetros>).
1389: Ha ocurrido un error con %s. El jugador no existe o no está conectado.
// @cart
1390: Ese carro no existe (Instrucciones: %s <0-%d>).
1390: Ese carro no existe (instrucciones: %s <0-%d>).
1391: No tienes ningún carro.
1392: Ahora tienes un carro.
// atccomand.c::is_atcommand
// atccomand.cpp::is_atcommand
1393: No puedes utilizar ningún comando porque estás muerto.
// @clearstorage
@@ -1387,9 +1541,9 @@
1398: -- Mostrandolos primeros%d resultados:
// @channel
1399: Ese canal no existe (Instrucciones: %s <#nombre del canal>).
1400: El canal '%s' no existe(Instrucciones: %s <#nombre del canal>).
1401: El canal '%s' está protegido con contraseña (Instrucciones: %s <#nombre del canal> <contraseña>).
1399: Ese canal no existe (instrucciones: %s <#nombre del canal>).
1400: El canal '%s' no existe(instrucciones: %s <#nombre del canal>).
1401: El canal '%s' está protegido con contraseña (instrucciones: %s <#nombre del canal> <contraseña>).
1402: No estás en ese canal,escribe '@join <#nombre del canal>'.
1403: Has entrado al canal '%s'.
1404: %s ha fallado.
@@ -1459,15 +1613,62 @@
1468: -- Limpia la lista de accesos prohibidos al canal.
1469: * %s delete <#nombre del canal>
1470: -- Elimina el canal especificado.
1471: * %s list mine
1471: * %s listado propio
1472: -- Muestra una lista de todos los canales en los que estás conectado.
1473: * %s join <#nombre del canal> <contraseña>
1474: -- Te unes al canal especificado.
1475: ---- Mis canales ----
1476: No te has unido a ningún canal.
// @effect
1477: Introduce un efecto válido dentro del rango de ID %d a %d.
// @partysharelvl
1478: Se ha modificado el rango para compartir experiencia en grupos.
1479: No se ha podido actualizar la configuración. El char-server está desconectado.
// @autoloottype
1480: Tipo de objeto no encontrado.
1481: Ya estás autorrecogiendo ese tipo de objeto.
1482: Tu lista de autorrecogida de objetos tiene todos los tipos.Puedes eliminar algunos con @autoloottype -<tipo o ID>.
1483: Autorrecogida de objetos del tipo: '%s' {%d}
1484: No estás autorrecogiendo ese tipo de objeto.
1485: Tipo de objeto: '%s' {%d} eliminado de tu lista de autorrecogida de objetos.
1486: Para añadir un tipo de objetos a la lista, usa "@aloottype +<tipo o ID>". Para eliminarlo, use "@aloottype -<tipo o ID>".
1487: Lista de tipos: curativo = 0, consumible = 2, etc = 3, armadura = 4, arma = 5, carta = 6, huevo de mascota = 7, equipo de mascota = 8, municición = 10
1488: "@aloottype reset" borrará tu lista de autorrecogida de objetos.
1489: Tu lista de autorrecogida de objetos está vacía.
1490: Tipos de objetos presentes en tu lista:
1491: Tu lista de autorrecogida de objetos se ha reseteado.
// @dropall
1492: Instrucciones: @dropall {<tipo>}
1493: Listado de tipos: (por defecto) todos = -1, curativos = 0, consumibles = 2, etc = 3, armadura = 4, arma = 5, carta = 6, huevo de mascota = 7, equipo de mascota = 8, munición = 10
1494: ¡Objetos tirados: %d (omitidos: %d)!
// Banking
1495: ¡No puedes retirar tanto dinero!
1496: El banco está desactivado
// Roulette
1497: La ruleta está desactivada
// @guild
1498: You cannot create a guild because you are in a clan.
1498: No puedes crear un clan porque ya estás en uno.
// @clanspy
1499: Introduce un nombre de de clan o ID (instrucciones: @clanspy <clan o ID>).
1500: Ya no estás espiando al clan %s.
1501: Estás espiando al clan %s.
1502: Nombre o ID de clan no válido.
// PK Mode msgs
1503: Has entrado en una zona PK.
1504: Has entrado en una zona PK (segura hasta el nivel %d).
// @changegm
1513: No puedes delegar el liderazgo del clan durante el horario de WoE
1514: Debes esperar un tiempo antes de poder designar un nuevo líder de clan
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.