110 Commits

Author SHA1 Message Date
Atemo
73fe0d26b7
Added setquest, erasequest, completequest, checkquest atcommand (#4692)
@ setquest : self explaining
@ erasequest : self explaining
@ completequest : give and complete the quest
@ checkquest : display the quest status HAVEQUEST, HUNTING, PLAYTIME
2020-03-18 19:14:15 +01:00
Aleos
97372ff423
Adds reload attendance database atcommand (#4657)
* 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!
2020-02-23 17:10:17 -05:00
Aleos
dca3797d44
Converted the skill database to YAML (#4531)
* 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>
2020-01-31 14:14:08 -05:00
Lemongrass3110
e72c7360cf
Added int64 support to the script engine (#4522)
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.
2020-01-13 14:44:48 +01:00
Aleos
c52b3b784a
Expanded a couple baby job names (#4500)
* 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.
2020-01-01 22:53:40 -05:00
Lemongrass3110
64b5c3082b
Migrated atcommand aliases and help to YAML (#4487)
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>
2019-12-21 19:19:19 +01:00
Aleos
72338366c9
Corrected atcommand mobinfo for VIP (#4404)
* Fixes #4403.
* The EXP results for atcommand mobinfo return an incorrect adjustment for VIP status.
2019-10-15 10:25:17 -04:00
Lemongrass3110
beb6b579f2
Fixed dropall counter (#4331)
Fixes #4330
2019-09-03 20:32:48 +02:00
Jittapan Pluemsumran
bc15f5ce14
Dropped ragsrvinfo functionality (#4301) 2019-08-15 19:08:22 +07:00
Cydh Ramdh
17f32a1756
Fixed CZ_STANDING_RESURRECTION check (#4242)
* 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
2019-07-22 22:27:35 +07:00
Atemo
9aa5f7d834
Added several warning messages (#4062)
* 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!
2019-04-10 15:59:42 +02:00
Atemo
66b8273221
Corrected block_action behaviour (#4071)
* Corrected block_action behaviour
* reloadscript command doesn't remove PCBLOCK_IMMUNE anymore
* Corrected a typo on MorseCave.txt

Thanks to @CairoLee and @ElinhoPP !
2019-04-02 18:48:46 +02:00
Atemo
7dde174c83
setpcblock script command (#4052)
* 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.
2019-03-31 18:28:55 +02:00
Jittapan Pluemsumran
ac558d7c1e
Initial implementation of pet evolution system + Pet DB conversion to YAML (#3544)
* 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
2019-03-26 22:51:57 +07:00
Atemo
e4b41ef7e0
Revert "Added pcblock and checkpcblock script commands. (#3951)" (#4048)
This reverts commit 3e0d3d2fe6b244099d3987b7a21260d6b070512e.
2019-03-26 16:41:14 +01:00
Atemo
3e0d3d2fe6 Added pcblock and checkpcblock script commands. (#3951)
* 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
2019-03-26 22:18:59 +07:00
Daegaladh
6c1d1a84d2
Fixed points command using negative numbers (#3867) 2019-01-20 22:42:44 +01:00
Lemongrass3110
4706115d5b
Refactored achievement conditions (#3831)
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
2019-01-13 17:26:25 +01:00
Lemongrass3110
8ed8fd1a9d
Added Clothing Effect Removal Service (#3793)
Fixes #3789

Thanks to @Everade and @Balferian
2019-01-05 14:35:27 +01:00
Lemongrass3110
818ff109f3
Initial Release of Equipment Switch (#3548)
Thanks to everyone who contributed to this release in any way, be it donations, information or testing.

Merry Christmas :-)
2018-12-24 14:10:29 +01:00
Lemongrass3110
01f61cfa4f
Added support for 64bit ticks (#3768)
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.
2018-12-21 00:02:19 +01:00
Lemongrass3110
4944491228
Added support for viewpointvalue command (#3754)
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
2018-12-20 19:26:02 +01:00
Lemongrass3110
016d15b79a
Unified infinite tick usage (#3755)
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.
2018-12-18 17:46:56 +01:00
Aleos
a7d8fbae14
Corrected atcommand reloadscript and NPC dialogs (#3643)
* 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!
2018-11-01 16:08:53 -04:00
Jittapan Pluemsumran
84b4f09874 Added skill_duration mapflag. (#2171)
* 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>
2018-10-26 08:52:49 -04:00
Cydh Ramdh
d8e760fa78
Cleanup skill_damage mapflag for skill (#3583)
* Changed from vector to unordered_map with skill_id as key
2018-10-19 08:34:29 +07:00
Cydh Ramdh
fe197bfa12
Renewal Monster Updates (#3541)
* 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
2018-10-13 19:00:14 +07:00
Aleos
926e37cb65
Corrected some GCC 7.1+ compile warnings (#3522)
* Fixes #2787 and fixes #3513.
* Resolved some format-truncation warnings.
* The remaining will be fixed at a later time.
Thanks to @RadianFord and @Lemongrass3110!
2018-09-28 13:57:27 -04:00
keitenai
d7d012c5c1 atcommand identifyall follow up (#3463)
Fixed unreferenced local variable "i"
2018-09-03 10:03:16 +07:00
Atemo
fd4f7ccd5c Suggestion: identifyall script command (#3419)
* Implemented script command identifyall.
Thanks to @secretdataz for suggestions!
2018-08-30 10:03:03 -04:00
Aleos
da83e61738
Corrected some map property issues (#3435)
* 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.
2018-08-27 20:28:18 -04:00
Aleos
48ae1a1e05
Cleaned up map storage type (#3384)
* 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!
2018-08-10 13:52:07 -04:00
Aleos
584fcac43a Cleaned up map data storage (#3347)
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!
2018-07-26 01:06:59 +02:00
Aleos
9313922656
Further cleanup to mapflags (#3332)
* 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!
2018-07-23 13:40:35 -04:00
Aleos
a942853d55
Cleaned up the mapflag system (#2943)
* 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!
2018-07-18 20:00:33 -04:00
Lemongrass3110
b2c026d4b0
Cleaned up Summer 2 code (#3294)
Fixes #3293

Thanks to @Everade for reporting.
2018-07-08 11:58:50 +02:00
Lemongrass3110
91169d7ebc
Fixed a few compiler warnings on clang (#3263)
Mostly pointer-bool-conversion and autological-pointer-compare
2018-07-05 22:53:20 +02:00
Aleos
e13ca63cc8
Added Guild Storage Expansion Skill (#3244)
* 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.
2018-07-03 08:49:34 -04:00
Cydh Ramdh
ce9cbd2e65
Fixed logging of #CASHPOINTS and #KAFRAPOINTS (#3252)
* 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
2018-07-02 13:21:41 +07:00
Lemongrass3110
880e227ea2
Cleaned up some hardcoded variables (#3237) 2018-06-24 22:16:28 +02:00
Aleos
11b42569fc
Synchronized source file headers (#3212)
* 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.
2018-06-20 18:08:30 -04:00
Lemongrass3110
801d3ed942
Moved common, config and mapcache to C++ (#3200)
Dropped BETA_THREAD_TEST and everything around it
Dropped mt19937
Replaced msinttypes with cinttypes
Removed IRC link and updated README name
2018-06-14 21:51:58 +02:00
Lemongrass3110
fc951469e7
Initial support for Star Emperor and Soul Reaper (#3184)
Merges 3CeAM/3CeAM@7df0f57 and 3CeAM/3CeAM@028d2e8
Credits to @Rytech2
2018-06-14 08:16:10 +02:00
Lemongrass3110
d16e7e6160
Added support for changedress command (#3109)
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.
2018-05-19 00:37:41 +02:00
Lemongrass3110
ce324ad13d
Added atcommand for limited sale (#3103)
Removed permission
Added state tracking instead to make sure player can use the atcommand

Thanks to @secretdataz for his idea.
2018-05-08 21:32:52 +02:00
Valacobino
bde3aeb9e8 Fixes a map-server crash when using @showmobs (#2997) 2018-03-18 18:28:51 +01:00
Lemongrass3110
db8234b9ee
Fixed a missing comma in atcommand.cpp
Fixes #2993

Thanks to @arby89
2018-03-18 12:19:52 +01:00
Lemongrass3110
5c9d7a41a9
Added support for the second summer costume (#2942)
Fixed other costumes being able to be removed by Dispell

Fixes #2788

Thanks to @admkakaroto
2018-03-08 00:41:52 +01:00
Yudi Maharlika
a6818eb501 Fixes typo in atcommand.cpp that makes atcommand @accept after duel cannot be used because of limit player reached. (#2778) 2018-01-07 11:30:37 -05:00
Lemongrass3110
fb966a12e0
Turned pet db into a dynamic map (#2727)
Thanks to @Jeybla, @lighta and @aleos89
2018-01-01 22:57:47 +01:00