Commit Graph

1324 Commits

Author SHA1 Message Date
Lemongrass3110
b51617cb73 Added support for 2017's guild leader change 2017-06-03 17:03:56 +02:00
Aleos
f450538f4c Implemented Clan Instance support (#2178)
* Allows instances to be created specifically for clans.
* Added script command instance_check_clan.
Thanks to @Lemongrass3110 for the idea and testing!
2017-06-01 10:48:34 -04:00
Aleos
ce4ebbe5bc Updated leftover pet variables to 64k support (#2129)
* Small follow up to 7cd82d0.
* Fixes #2121.
* Updated pet egg and pet equips to support 64k values.
Thanks to @TrueNoir!
2017-05-16 22:28:17 +02:00
aleos89
a3282c1730 Corrected a compile error
* Follow up to 900548f.
2017-05-04 13:28:06 -04:00
aleos89
900548f34b Corrected a compile warning
* Follow up to a15661e.
2017-05-04 13:20:17 -04:00
Cydh Ramdh
a15661ecfa RE:Initial release script commands for Item Random Options (#2066)
* Added script commands getitem3, getitembound3, makeitem3, rentitem3, countitem3, and delitem3.
2017-05-04 12:11:43 -04:00
Aleos
10b512b859 Updated Giant Fly Wing behavior (#2098)
* 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.
2017-05-02 20:51:26 -04:00
Lemongrass3110
cac27fc3d5 Refactored script_rid2sd (#2062)
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.
2017-05-03 00:17:46 +02:00
Cydh Ramdh
e59cdfff90 RE:Initial release item random option for monster drop (#2065)
* 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
2017-04-28 00:43:09 +02:00
Lemongrass3110
5923633ad7 Added deprecation functionality to script engine (#2064)
This commit adds support to deprecate script commands or constants.

Based on the following two commits by @MishimaHaruna
HerculesWS/Hercules@ce85609
HerculesWS/Hercules@6ae9045
2017-04-25 23:43:29 +02:00
Cydh Ramdh
c87dba5a52 Channel System is Expanded! (#1933)
* 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.
2017-04-19 14:12:00 -04:00
Lemongrass3110
384917b83f Added current_equip_item_index check
getrefine and getequipweaponlv(-1) should only be useable within item scripts.
2017-04-14 00:17:23 +02:00
aleos
0c2ccc77c7 Added script command getfreecell
* 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!
2017-04-10 10:45:33 -04:00
aleos
4b9ade33ee Fixed sleep timers getting freed twice
* Fixes #2042.
Thanks to @Encon21!
2017-04-06 21:01:08 -04:00
aleos
d6594eefda Re-link monster drop data with item data
* 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!
2017-04-06 18:42:27 -04:00
Jeybla
72fe4cd515 Adds chatmes (scriptcommand). (#1924)
* Adds chatmes script command.
* chatmes writes a given message to the waitingroom of the NPC.
2017-04-06 17:55:58 -04:00
Matheus Macabu
4a2964f763 Fixed some misc. stuff (#1974)
* 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
2017-02-23 10:14:21 -05:00
Aleos
afa880ebd6 Remove sleep timers when a script is unloaded (#1956)
* 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!
2017-02-14 13:13:53 -05:00
aleos
0c20c596e0 Expanded script command setbattleflag
* 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.
2017-02-11 20:55:35 -05:00
Lemongrass3110
7377f0f674 bindatcmd now supports the new event name length 2017-02-04 00:03:40 +01:00
Jeybla
929384cead Fixes AgitEnd2 Scriptcommand. (#1936)
OnAgitEnd2 events were not triggered by using the AgitEnd2 script command.

Follow up to 2043c95
2017-02-03 08:38:15 +01:00
aleos
706345f56f Revamped script command setunitdata (fixes #1903)
* 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!
2017-01-25 20:48:24 -05:00
Atemo
c6470ff4ff Clean-up permanent monster spawn: (#1831)
* 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
2017-01-22 19:03:08 +01:00
aleos
d8768e4cae Cleaned up the colored messages (fixes #1855)
* 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.
2017-01-18 17:20:25 -05:00
aleos89
2c4cd07af0 Corrected script command atcommand (fixes #1894)
* Resolves the map ID being stored instead of the map index when a dummy player is used.
Thanks to @Tokeiburu!
2017-01-18 10:06:37 -05:00
Atemo
c6ab72207e Horror toy factory (#1813)
* Initial release of Horror Toy Factory instance.
Thanks to @aleos89, @secretdataz, @Lemongrass3110
Took some part from 52f6420abc
Credit @exneval

Todo : implement NPC_HELLBURNING skill
2017-01-18 03:25:12 +01:00
Lemongrass3110
a73814eeee Fixed some compile warnings
Fixes #1861
Thanks to @rubie123
2017-01-11 10:21:47 +01:00
Lemongrass3110
2043c95e66 Refactored hardcoded npc event names (#1767)
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.
2017-01-10 22:58:04 +01:00
Lemongrass3110
88aaa9be98 Added a parameter to map_nick2sd for partial name (#1852)
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.
2017-01-07 00:19:04 +01:00
Lemongrass3110
55459f30f2 Added a script command for instance information (#1815)
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.
2017-01-07 00:08:11 +01:00
Lemongrass3110
12457d342f Fixed sleep2 and awake functions for non-players (#1849)
Fixes #1837
2017-01-06 23:41:18 +01:00
Lemongrass3110
eb47d74f08 Added a config for maprespawnguildid's behaviour (#1836) 2017-01-06 23:29:49 +01:00
Cydh Ramdh
2896d894d1 Official Random Coordinates for Savepoint (#1756)
* 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
2016-12-20 17:16:42 +07:00
Locien
fb29b18b52 Consistency changes for script unit commands (#1801)
* 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.
2016-12-20 02:08:35 +01:00
Lemongrass3110
1b634c8f42 Fixed showdigit's start values (#1807)
Fixed #1769
2016-12-20 01:37:40 +01:00
Lemongrass3110
7df9962a72 Follow up to 9333921
Thanks to @Playtester's friend Ash for reporting this.
2016-12-13 09:10:07 +01:00
Lemongrass3110
93339212bc Fixed #1772 (#1773)
* Fixed #1772

Added support for char_id to readparam
Added a check and error message if get_var is used on a parameter instead of a variable
2016-12-11 16:00:44 +01:00
Lemongrass3110
d13acf3886 Fixed a bug with getarraysize
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.
2016-12-11 14:57:18 +01:00
Lemongrass3110
b9a8ab722e Added an additional parameter to instance_enter (#1720)
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
2016-12-10 12:38:57 +01:00
Cydh Ramdh
342443bf61 Added new mapflag hidemobhpbar (#1537)
* 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>
2016-12-04 10:52:14 +07:00
Lemongrass3110
ac2ba09415 Fixed areawarp cell check
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.
2016-12-01 13:06:54 +01:00
Lemongrass3110
c88ca4432d Definition cleanup
Removed a few ghost definitions
Adjusted some definitions to use the same types

Related to #1738
2016-11-26 20:34:55 +01:00
aleos89
9910478ce2 Resolved some compile warnings
* Resolved two unreachable code warnings.
* Resolved two potentially uninitialized local variable warnings.
2016-11-16 13:07:19 -05:00
Lemongrass3110
ecc8cf9f0b Initial release of the clan system
Thanks to @cydh, @RagnarokNova and @aleos89 for their help.
2016-11-16 15:36:08 +01:00
aleos89
cb279a7243 Resolved an uninitialized variable (fixes #1717)
* Follow up to ade1b17.
* Corrects the countitem script command having an uninitialized variable warning during compile.
Thanks to @hnomkeng!
2016-11-15 21:54:44 -05:00
aleos89
5aa53e4738 Merge branch 'master' into cleanup/storages_optimization 2016-11-11 14:54:43 -05:00
Lemongrass3110
418d8203e6 Refactored clif functions for unit names (#1664)
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
2016-11-02 11:13:52 +01:00
Cydh Ramdh
46b1de7d50 Initial release 'premium' storage
* 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>
2016-11-01 09:08:55 +07:00
Akkarinage
d20cbcae48 Removed use of petheal command from pet_db.txt in both PRE and RE modes. (#1648)
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>
2016-10-21 15:25:32 -04:00
Lemongrass3110
e443f846c6 Increased EVENT_NAME_LENGTH and some more cleanups
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
2016-10-14 09:13:53 +02:00