* Allows instances to be created specifically for clans.
* Added script command instance_check_clan.
Thanks to @Lemongrass3110 for the idea and testing!
* Party members should be recalled to their own positions in a 3x3 area around the party leader.
* Added two missing client messages.
* Adjusted script command warpparty to support range values.
* Adjusted script command warpparty to not warp the party leader if "Leader" is passed as the map.
It now matches the other script_***2sd or script_***2bl functions.
Also added script_mapid2sd for mapid to map session lookups.
Cleaned up the order of some of the checks in the script functions that used script_rid2sd and sometimes checked the validity of the retrieved session to late or even never at all.
* Initial release item random option for monster drop
* To add item for monster with random option group, see 'db/[pre-]re/mob_drop.txt'
* To add item random option group with random option group, see 'db/[pre-]re/mob_item_randomopt_group.txt'
* Default entries for random options are follow iRO Crimson/Scarlet Weapon based on
* "[Renewal] Episode 15.2 Crimson Weapon System", see http://www.playragnarok.com/news/updatedetail.aspx?id=280&p=1.
* File uploaded by Oda (iRO's CM) on https://forums.warpportal.com/index.php?/topic/168763-fansitedb-information-distribution-and-request-station/?p=2495922
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Follow up 3b7db36288
* Moved `RDMOPTG_Crimson_Weapon` from const.txt to `enum Random_Option_Group` in `itemdb.h`.
* Removed `RDMOPT_WEAPON_ATTR_POISON`, `RDMOPT_WEAPON_ATTR_TELEKINESIS`, and `RDMOPT_WEAPON_ATTR_UNDEAD` from Crimson Weapon random group (`RDMOPTG_Crimson_Weapon`), thanks to @atemo
* Added db header for impot-tmpl files, thanks to @secretdataz
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Follow up ac0cdd8dc8
* Fixed type on steal checking
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
* Cleared some drop slot for crimson weapon
* Many changes on conf/channel.conf!
- Now capable of setting default values for channels through the config such as the channel name, channel password, member capacity, chat color, chat delay, and more.
* Many new channel script commands!
- Added script commands channel_create, channel_setopt channel_setcolor, channel_setpass, channel_setgroup, channel_chat, channel_ban, channel_unban, channel_kick, and channel_delete.
* The command can randomly find a free cell on the given map and store the references to the found cell in the given variables.
* Check out the script commands documentation for more information.
Thanks to @Tokeiburu!
* Fixes script commands addmonsterdrop and delmonsterdrop to update the monster drop data that is stored within the item data struct.
* This refreshes atcommand whodrops and other functions that use this data.
Thanks to @technoken!
* Empty string checking
* Unsigned/signed variables changed to fit their context
* Assignment order within if clause
* hom_is_active already checks for sd->hd
* Fixed SC_MDEFSET being set by the wrong condition
* channel_ajoin inner for has same iter variable as outer
* Fixes#1791 and fixes#1792.
* Removes sleep timers that are active when a script is unloaded from memory.
* Make sure duplicate NPC are properly removed.
Thanks to @exneval and @Tokeiburu!
* Fixes#1945.
* Adds an optional flag to reload the monster database for specific map flags that are EXP/drop related.
* This resolves having to add atcommand reloadmobdb after setting the battle configs.
* Adjusted atcommand setbattleflag to also have the optional parameter.
* The reload should only have to be called on the final setbattleflag use.
* Resolved mobs having certain stats getting reset to their database value when the mob's status is recalculated.
* Resolved some monster, homunculus, mercenary, and elemental stats not properly recalculating when setting the unit data.
Thanks to @technoken and @Tokeiburu!
* Clean-up permanent monster spawn:
- <delay1>,<delay2>,<event> are actually optionnal field
- <event> value 0 and 1 are meaningless (actually event name with length < 4 are skipped)
* Exported monster AI constants
* Updated docs for monster size constants (already exported)
Notes:
- the default size for monster script cmd was small not medium
- monster script cmd now display a warning for size above SZ_BIG (previously SZ_ALL)
* - Fixed an issue to make <xs> and <ys> optionnals
- Updated npcs scripts
* Leftover in the docs for permanent monster spawn
* Corrected english docs. Credit to @aleos89
Added additionnal warning for xs / ys negative input. Credit @Lemongrass3110
Thanks to @cydh for the idea
* Removed redundant clif_colormes and clif_messagecolor2 functions.
* Changed all clif_disp_onlyself to clif_messagecolor.
* Resolves several places around source using the 0x17F packet which now has a display toggle for Guild Chat resulting in these messages not related to Guild Chat not displaying.
* Added COLOR_LIGHT_GREEN to imitate the Guild Chat color.
* Initial release of Horror Toy Factory instance.
Thanks to @aleos89, @secretdataz, @Lemongrass3110
Took some part from 52f6420abc
Credit @exneval
Todo : implement NPC_HELLBURNING skill
While refactoring those events the following other changes were made:
Introducing OnInstanceDestroy event. This event can be used to hook script code right in front of the instance destruction. This can be useful if you have any stored references to an instance id for example.
The script command cmdothernpc will now check if the target event exists and report failures. Therefore it now returns true or false.
All agit(FE,SE,TE) start and end commands from atcommand and script commands have been merged in their respective guild function which now returns a bool value of true for successful actions and false if it did not succeed(if the specific WoE was [not] running).
All global triggered events with mapserver status output now call the same function and therefore have the same mapserver output(including their respective event name of course).
Renamed a few events in the script configuration to match the other names
Added constants for months and weekdays
Additionally added constants for gettime types to make it easier to read.
Replaced all existing usages I found with their proper new syntax or better fitting functions.
With this parameter the caller can decide if he wants to enable or disable partial name scan support.
Generally it was disabled in a lot of functions(clif,channel,script commands).
It is still available for some "non-critical" atcommands as well as for all charcommands.
With this script command you can look up information about a specific instance. This way you do not have to hardcode values specified in the database in the script if you need it.
Thanks to @aleos89 for the script documentation.
* Added parameters for `savepoint are range for `x` and `y` for random savepoint coordinates.
* Added documentation for new savepoint params. Credits to @aleos89
* Updated savepoint on script to follow official behaviour (random save in 3x3). All credits to @Atemo
* Consistency changes for script unit commands
Made it so that all unit commands(except for unitexists) take 0 as the
unit ID argument which will reference the activator of the script.
Unitwarp has since previously had this functionality and it's very
useful. Example use: When a monster walks over an npc script with the
OnTouchNPC label unitkill 0; will kill the monster.
* Clean up and fixes to unit script commands self referencing with ID 0
Added a script_rid2bl function that will return the block list beloning
to an RID specified or the activator of the script if 0 is specified as
RID.
When the attached rid of the script was actually not a player, but a monster or something else the script was terminated. A good example for this was to use getarraysize on a OnTouchNPC event.
Thanks to MasterOfMuppets(@Locien) for reporting this.
Added an additional parameter to instance_enter
This allows easier usage for instances in IM_NONE, where a player will never be attached to the instance.
All you have to do is remember the created instance id and supply this command with it. That way you do not have to use any workaround like the following anymore:
warp instance_mapname( <mapname>, <instance id> ), <hardcoded enter x coordinate>, <hardcoded enter y coordinate>;
Added usage of the new constants in the existing scripts
Fixed default checks and null pointer output
Thanks to @Atemo
* Added new mapflag `hidemobhpbar` to hides monster's HP bar on a map.
* Added maps for this mapflag, credits to @Atemo and @Lemongrass3110
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
The script command areawarp has been checking the wrong target map for ages. It has been checking the mapindex rather than the mapid and therefore returned a wrong result.
Refactored clif functions for unit names
Renamed clif_charnameack to clif_name and added additional parameters to follow other clif functions.
Removed clif_charnameupdate completely since it was just a copy of the BL_PC code in clif_charnameack and replaced all calls with clif_name_area.
Fixed guild position display
Fixes#1662
Thanks to @ghul3 for reporting it.
Removed useless params for some guild functions
* Adapting official multiple storages.
* Added config to defines storages. See conf/import-tmpl/inter_server.conf.
* Added packet IZ `0x388c` for sending storage definitions.
* Added script command `openstorage2` to open premium storages.
* Removed `sd->storage_size`, replaced by `sd->storage.max_amount`. The value is defined in inter_server.conf in storage entries.
Signed-off-by: Cydh Ramdh <cydh@pservero.com>
Removed use of petheal command from pet_db.txt in both PRE and RE modes.
* Changed documentation to show deprecation more prominently.
* Closes#1576.
* Removed script command petheal.
Signed-off-by: Akkarinage <akkarin@rathena.org>
Fixed an invalid reference in clif.c(follow up to 008be23)
Moved the OnWhisperGlobal name definition to the other special event name declarations
Increased EVENT_NAME_LENGTH from 51 to 77 characters because it uses NPCs exname which can be up to 50 characters now
Added a warning when an NPCs exname is too long for an OnWhisperEvent