diff options
Diffstat (limited to 'doc/script_commands.txt')
-rw-r--r-- | doc/script_commands.txt | 150 |
1 files changed, 109 insertions, 41 deletions
diff --git a/doc/script_commands.txt b/doc/script_commands.txt index a5624b82f..10b4e5653 100644 --- a/doc/script_commands.txt +++ b/doc/script_commands.txt @@ -2472,6 +2472,7 @@ arrays: --------------------------------------- *readparam(<parameter number>{, "<player name>"}) +*readparam(<parameter number>{, <account id>}) This function will return the basic stats of an invoking character, referred to by the parameter number. Instead of a number, you can use a @@ -2510,6 +2511,21 @@ Example 3: --------------------------------------- +*setparam(<parameter number>, <value>{, "<player name>"}) +*setparam(<parameter number>, <value>{, <account id>}) + +Sets a parameter on the given player. See readparam() for more info about +parameters. Keep in mind that not all read-able parameters are also set-able. + +Parameters that can be modified include: + +StatusPoint, BaseLevel, SkillPoint, Zeny, Sex, Weight, MaxWeight, JobLevel, +BaseExp, JobExp, Hp, MaxHp, Sp, MaxSp, Karma, Manner, Fame, bVit, bDex, bAgi, +bStr, bInt, bLuk + + +--------------------------------------- + *getcharid(<type>{, "<character name>"}) This function will return a unique ID number of the invoking character, @@ -2755,7 +2771,9 @@ save points. Available information types are: --------------------------------------- -*getcharip({"<character name>"|<account id>|<char id>}) +*getcharip({"<character name>"}) +*getcharip({<account id>}) +*getcharip({<character id>}) This function will return the IP address of the invoking character, or, if a player is specified, of that character. A blank string is returned if no @@ -3412,7 +3430,8 @@ behave specially when talked to by GMs. --------------------------------------- -*setgroupid(<new group id>{, "<character name>"|<account id>}) +*setgroupid(<new group id>{, "<character name>"}) +*setgroupid(<new group id>{, <account id>}) This function will temporary adjust the id of player group the account to which the player specified if the new group id is available. @@ -4371,7 +4390,7 @@ offline in the mean time, attachrid() returns false, otherwise true. --------------------------------------- -*rid2name(<rid>) +*rid2name(<account id>) Converts rid to name. Note: The player/monster/NPC must be online/enabled. Good for PCKillEvent where you can convert 'killedrid' to the name of the @@ -4615,13 +4634,12 @@ effects. --------------------------------------- -*recovery() -*recovery(<account id>) +*recovery({<account id>}) *recovery("<map name>"{, <x1>, <y1>, <x2>, <y2>}) -In its first form, this command will revive and restore full HP and SP to all -characters currently connected to the server. In its second form, it will only -affect the target player. In its third form it will affect a whole map or area. +This command will revive and restore full HP and SP to all characters currently +connected to the server. If an account id is supplied, it will instead only +affect this character. If a map is supplied it will affect a whole map or area. --------------------------------------- @@ -5137,8 +5155,10 @@ Example: close(); --------------------------------------- -*getnameditem(<item id>, <character name|character ID>) -*getnameditem("<item name>", <character name|character ID>) +*getnameditem(<item id>, "<character name>") +*getnameditem(<item id>, <character ID>) +*getnameditem("<item name>", "<character name>") +*getnameditem("<item name>", <character ID>) Create an item signed with the given character's name. @@ -5302,7 +5322,7 @@ Check getitem2() to understand the arguments of the function. --------------------------------------- -*groupranditem(<item_id/constant>) +*groupranditem(<item id>) Returns the item_id of a random item picked from the item container specified. There are different item containers and they are specified in 'db/(pre-)re/item_group.conf'. @@ -5312,7 +5332,7 @@ Example: --------------------------------------- -*getrandgroupitem(<item_id/constant>, <quantity>) +*getrandgroupitem(<item id>, <quantity>) Similar to the above example, this command allows players to obtain the specified quantity of a random item from the container. The different containers @@ -6194,7 +6214,7 @@ Examples: @ /!\ This command is deprecated @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ -Prevents the player from moving when the option != 0, and 0 enables the +Prevents the player from moving when the option != 0, and 0 enables the player to move again. The player has to be the account ID of a character, and will run for the attached player if zero is supplied. @@ -6610,18 +6630,49 @@ Examples: *unitwarp(<GID>, <Mapname>, <x>, <y>) *unitattack(<GID>, <Target ID>) *unitstop(<GID>) -*unittalk(<GID>, <Text>) +*unittalk(<GID>, <Text>{, show_name{, <send_target>{, <target_id>}}}) *unitemote(<GID>, <Emote>) Okay, these commands should be fairly self explaining. For the emotions, you can look in 'doc/constants.md' under 'Emotes' PS: unitwarp() supports a <GID> of zero, which causes the executor of the +PS: unittalk() can receive 3 extra parameters: + show_name: + true: Shows Unit name like "UnitName : Message" (default) + false: Hides Unit name + send_target: + AREA_CHAT_WOC: sends the message to everyone in view range including the attached unit (default) + SELF: sends the message to the given unit gid only + target_id: + if send_target is set to SELF, the message will be shown by the given gid, + target_id allows changing the unit that will see the message. script to be affected. This can be used with OnTouchNPC to warp monsters: OnTouchNPC: unitwarp(0, "this", -1, -1); + // hide the npc name from the text + unittalk(getnpcid(0), "foobar", false); + + // display by npc to everyone + unittalk(getnpcid(0), "foobar", true); + + // display by npc to npc + unittalk(getnpcid(0), "foobar", true, SELF); + + // display the text by the npc to the attached player only + unittalk(getnpcid(0), "foobar", true, SELF, playerattached()); + + // display by player to everyone + unittalk(playerattached(), "foobar", true); + + // display by player to himself only + unittalk(playerattached(), "foobar", true, SELF); + + // display the text by the 1st player to the attached player only + unittalk(getcharid(CHAR_ID_ACCOUNT, "Name"), "foobar", true, SELF, playerattached()); + --------------------------------------- *disablenpc("<NPC object name>") @@ -6729,12 +6780,16 @@ A debug message also shows on the console when no events are triggered. --------------------------------------- -*npctalk("<message>"{, "<npc name>"}) +*npctalk("<message>"{, "<npc name>"{, <show_name>}}) + +show_npcname values: + true: shows npc name (default) + false: hide npc name This command will display a message to the surrounding area as if the NPC object running it was a player talking - that is, above their head and in -the chat window. The display name of the NPC will get appended in front of -the message to complete the effect. +the chat window. If show_npcname is true the name of the NPC will get appended in front of +the message, otherwise the npc name will not be shown. // This will make everyone in the area see the NPC greet the character // who just invoked it. @@ -6822,12 +6877,12 @@ valid <type> for gettimer() are: --------------------------------------- -*initnpctimer({ "<NPC name>" {, <Attach Flag>} } | - { "<NPC name>" | <Attach Flag> }) -*stopnpctimer({ "<NPC name>" {, <Detach Flag>} } | - { "<NPC name>" | <Detach Flag> }) -*startnpctimer({ "<NPC name>" {, <Attach Flag>} } | - { "<NPC name>" | <Attach Flag> }) +*initnpctimer({"<NPC name>"{, <Attach Flag>}}) +*initnpctimer({<Attach Flag>}) +*stopnpctimer({"<NPC name>"{, <Detach Flag>}}) +*stopnpctimer({<Detach Flag>}}) +*startnpctimer({"<NPC name>"{, <Attach Flag>}}) +*startnpctimer({<Attach Flag>}) *setnpctimer(<tick>{, "<NPC name>"}) *getnpctimer(<type of information>{, "<NPC name>"}) *attachnpctimer({"<character name>"}) @@ -9281,12 +9336,10 @@ that fails, the command returns an empty string instead. //===================================== --------------------------------------- -*questinfo(<Quest ID>, <Icon> {, <Map Mark Color>{, <Job Class>}}) - -This is esentially a combination of questprogress() and showevent(). Use this only -in an OnInit label. For the Quest ID, specify the quest ID that you want -checked if it has been started yet. +*questinfo(<Icon> {, <Map Mark Color>}) +This is esentially a showevent() that supports different conditions that can be set using setquestinfo(). +Use this only in an OnInit label. For Icon, use one of the following: No Icon : QTYPE_NONE @@ -9317,8 +9370,6 @@ the available color values are: When a user shows up on a map, each NPC is checked for questinfo that has been set. If questinfo is present, it will check if the quest has been started, if it has not, the bubble will appear. -Optionally, you can also specify a Job Class if the quest bubble should only appear for a certain class. - Example izlude,100,100,4 script Test 844,{ mes("[Test]"); @@ -9326,12 +9377,29 @@ Example close(); OnInit: - questinfo(1001, QTYPE_QUEST, 0, Job_Novice); + questinfo(QTYPE_QUEST); end; } --------------------------------------- +*setquestinfo(<Type> {, <Values...>}) + +Use this command ONLY after a questinfo() +it allows you to set multiple required conditions for the quest bubble to show up. + +supported types: values + QINFO_JOB: job_id + QINFO_SEX: sex + QINFO_BASE_LEVEL: min, max + QINFO_JOB_LEVEL: min, max + QINFO_ITEM: item_id, amount // append to the items list on each use + QINFO_HOMUN_LEVEL: min + QINFO_HOMUN_TYPE: homunculus_type (0 - regular, 1 - evolved, 2 - S) + QINFO_QUEST: quest_id, state // append to the quests list on each use + +--------------------------------------- + *setquest(<ID>{, <Time Limit>}) Place quest of <ID> in the users quest log, the state of which is "active". @@ -9368,19 +9436,19 @@ Add quest of the <ID2> to the the quest log, and the state is "active". --------------------------------------- -*questprogress(<ID>{, PLAYTIME|HUNTING}) +*questprogress(<ID>{, <type>}) If no additional argument supplied, return the state of the quest: 0 = Quest not started (not in quest log) 1 = Quest has been given 2 = Quest completed -If parameter PLAYTIME is supplied: +If <type> PLAYTIME is supplied: 0 = Quest not started (not in quest log) 1 = The time limit has not yet been reached 2 = The time limit has been reached -If parameter HUNTING is supplied: +If <type> HUNTING is supplied: 0 = Quest not started (not in quest log) 1 = Player hasn't killed all of the target monsters 2 = Player has killed all of the target monsters @@ -9733,11 +9801,11 @@ true otherwise. --------------------------------------- -*queueopt(<queue_id>, <optionType>, {Optional <option val>}) +*queueopt(<queue_id>, <optionType>{, <event label}) -Modifies <queue_id>'s <optionType>. When <option val> is not present -<optionType> is removed from <queue_id>. When present it modifies -<queue_id>'s <optionType> with the new <option val> value. +Modifies <queue_id>'s <optionType>. When <event label> is not present +<optionType> is removed from <queue_id>. When present it will execute the +<event label> when the <queue_id>'s <optionType> condition is met. Returns true on success, false on failure. @@ -10022,7 +10090,7 @@ returns 1 on success, 0 on failure. //===================================== --------------------------------------- -*join_clan(<ClanID>{,<RID>}) +*join_clan(<ClanID>{, <account id>}) Joins a player into the given clan. If no RID is given, will run with the current attached player. @@ -10031,7 +10099,7 @@ returns true on success, false on failure. --------------------------------------- -*clan_leave({<RID>}) +*clan_leave({<account id>}) Removes a player from its clan. If no RID is given, will run with the current attached player. @@ -10067,4 +10135,4 @@ the available flags are: Opens the styling shop on client ----------------------------------------
\ No newline at end of file +--------------------------------------- |