diff options
Diffstat (limited to 'server')
-rw-r--r-- | server/items/item_db.txt | 3 | ||||
-rw-r--r-- | server/scripts/constants.md | 35 | ||||
-rw-r--r-- | server/scripts/script_commands.txt | 92 |
3 files changed, 117 insertions, 13 deletions
diff --git a/server/items/item_db.txt b/server/items/item_db.txt index 19ed126..22492a1 100644 --- a/server/items/item_db.txt +++ b/server/items/item_db.txt @@ -40,6 +40,7 @@ item_db: ( BuyingStore: true/false (boolean, defaults to false) Delay: Delay to use item (int, defaults to 0) KeepAfterUse: true/false (boolean, defaults to false) + DropAnnounce: true/false (boolean, defaults to false) FloorLifeTime: Delay to remove item from ground (int, default flooritem_lifetime) AllowPickup: true/false (boolean, defaults to true) Charm: true/false (boolean, defaults to false) @@ -285,6 +286,8 @@ ForceSerial: Whether the item will be given new unique id or not. When the item BuyingStore: Whether the item can be sold via buyingstore, one must also edit data\buyingstoreitemlist.txt for client to accept item. +DropAnnounce: Enables global announcement of the selected item when dropped by monster. + Delay: Delay for an item to be used again. Value is in milliseconds. There is a max concurrent number of entries modifiable in src/map/itemdb.h as MAX_ITEMDELAYS. diff --git a/server/scripts/constants.md b/server/scripts/constants.md index 22521a6..0ecb527 100644 --- a/server/scripts/constants.md +++ b/server/scripts/constants.md @@ -1316,6 +1316,7 @@ - `SC_TUNAPARTY`: 649 - `SC_SHRIMP`: 650 - `SC_FRESHSHRIMP`: 651 +- `SC_DRESS_UP`: 652 ### Emotes @@ -3797,6 +3798,7 @@ - `MAX_CART`: 100 - `MAX_INVENTORY`: 100 - `MAX_ZENY`: 2147483647 +- `MAX_BANK_ZENY`: 2147483647 - `MAX_BG_MEMBERS`: 30 - `MAX_CHAT_USERS`: 20 - `MAX_REFINE`: 20 @@ -3827,11 +3829,12 @@ - `Option_Dragon5`: 67108864 - `Option_Hanbok`: 134217728 - `Option_Oktoberfest`: 268435456 +- `Option_Summer2`: 536870912 ### status option compounds - `Option_Dragon`: 126353408 -- `Option_Costume`: 402984960 +- `Option_Costume`: 939855872 ### send_target @@ -3945,6 +3948,35 @@ - `BL_CHAR`: 539 - `BL_ALL`: 4095 +### Player permissions + +- `PERM_TRADE`: 1 +- `PERM_PARTY`: 2 +- `PERM_ALL_SKILL`: 4 +- `PERM_USE_ALL_EQUIPMENT`: 8 +- `PERM_SKILL_UNCONDITIONAL`: 16 +- `PERM_JOIN_ALL_CHAT`: 32 +- `PERM_NO_CHAT_KICK`: 64 +- `PERM_HIDE_SESSION`: 128 +- `PERM_RECEIVE_HACK_INFO`: 512 +- `PERM_WARP_ANYWHERE`: 1024 +- `PERM_VIEW_HPMETER`: 2048 +- `PERM_VIEW_EQUIPMENT`: 4096 +- `PERM_USE_CHECK`: 8192 +- `PERM_USE_CHANGEMAPTYPE`: 16384 +- `PERM_USE_ALL_COMMANDS`: 32768 +- `PERM_RECEIVE_REQUESTS`: 65536 +- `PERM_SHOW_BOSS`: 131072 +- `PERM_DISABLE_PVM`: 262144 +- `PERM_DISABLE_PVP`: 524288 +- `PERM_DISABLE_CMD_DEAD`: 1048576 +- `PERM_HCHSYS_ADMIN`: 2097152 +- `PERM_TRADE_BOUND`: 4194304 +- `PERM_DISABLE_PICK_UP`: 8388608 +- `PERM_DISABLE_STORE`: 16777216 +- `PERM_DISABLE_EXP`: 33554432 +- `PERM_DISABLE_SKILL_USAGE`: 67108864 + ### Renewal - `RENEWAL`: 1 @@ -3974,6 +4006,7 @@ - `SkillPoint`: [param] - `Class`: [param] - `Zeny`: [param] +- `BankVault`: [param] - `Sex`: [param] - `NextBaseExp`: [param] - `NextJobExp`: [param] diff --git a/server/scripts/script_commands.txt b/server/scripts/script_commands.txt index e4df770..5ba0aaa 100644 --- a/server/scripts/script_commands.txt +++ b/server/scripts/script_commands.txt @@ -540,7 +540,8 @@ allows you to replace lots of numbered arguments for many commands with easier to read text. The special variables most commonly used are all permanent character-based variables: -Zeny - Amount of Zeny. +Zeny - Amount of Zeny in the inventory. +BankVault - Amount of Zeny in the bank. Hp - Current amount of hit points. MaxHp - Maximum amount of hit points. Sp - Current spell points. @@ -707,7 +708,8 @@ MAX_STORAGE - Maximum storage items MAX_GUILD_STORAGE - Maximum guild storage items MAX_CART - Maximum cart items MAX_INVENTORY - Maximum inventory items -MAX_ZENY - Maximum Zeny +MAX_ZENY - Maximum Zeny in the inventory +MAX_BANK_ZENY - Maximum Zeny in the bank MAX_BG_MEMBERS - Maximum BattleGround members MAX_CHAT_USERS - Maximum Chat users MAX_REFINE - Maximum Refine level @@ -2687,7 +2689,7 @@ Example 2: check party count (with a next() pause), before warping to event } // Finally, it's safe to start the event! - warpparty("event_map", 0, 0, getcharid(CHAR_ID_PARTY)); + warpparty("event_map", 0, 0, getcharid(CHAR_ID_PARTY), true); --------------------------------------- @@ -3950,17 +3952,18 @@ things might in some cases be required. --------------------------------------- -*checkoption(<option number>) -*checkoption1(<option number>) -*checkoption2(<option number>) -*setoption(<option number>{, <flag>}); +*checkoption(<option number>{, <account id>}) +*checkoption1(<option number>{, <account id>}) +*checkoption2(<option number>{, <account id>}) +*setoption(<option number>{, <flag>{, <account id>}}); The setoption() series of functions check for a so-called option that is set on the invoking character. 'Options' are used to store status conditions and a lot of other non-permanent character data of the yes-no kind. For most common cases, it is better to use checkcart(), checkfalcon(), checkmount() and other similar functions, but there are -some options which you cannot get at this way. +some options which you cannot get at this way. If <account id> is given, +this player will be used instead of the invoking character. Option numbers valid for the first (option) version of this command are: @@ -4289,8 +4292,9 @@ if <color> field is left out. *showscript("<message>"{, <GID>}) -Makes attached player or GID says a message like shouting a skill name, the message -will be seen to everyone around but not in chat window. +Makes the attached player or GID, display a message similiar to a chat, +this will be seen by everyone near the invoking character but will not +be displayed in the chat window. --------------------------------------- @@ -4355,7 +4359,7 @@ See also warp(). --------------------------------------- -*warpparty("<to_mapname>", <x>, <y>, <party_id>, {"<from_mapname>"}) +*warpparty("<to_mapname>", <x>, <y>, <party_id>, "<from_mapname>", <include_leader>) Warps a party to specified map and coordinate given the party ID, which you can get with getcharid(CHAR_ID_PARTY). You can also request another party id given @@ -4375,13 +4379,15 @@ Leader: All party members are warped to the leader's position. The If you specify a from_mapname, warpparty() will only affect those on that map. +You can exclude Party leader from warping, by keeping include_leader option as false. + Example: mes("[Party Warper]"); mes("Here you go!"); close2(); .@id = getcharid(CHAR_ID_PARTY); - warpparty("prontera", 150, 100, .@id); + warpparty("prontera", 150, 100, .@id, true); close(); --------------------------------------- @@ -7760,6 +7766,68 @@ scripts-atcommands this way. --------------------------------------- +*can_use_command("<command>"{, <account id>}) + +Checks if the attached or specified player can use the specified +atcommand and returns true or false accordingly. + +--------------------------------------- + +*has_permission(<permission>{, <account id>}) +*has_permission("<permission>"{, <account id>}) + +Check if the attached or specified player has the specified permission +and returns true or false accordingly. See doc/permissions.txt for +details about permissions. + +Valid <permission> are: + + PERM_TRADE + PERM_PARTY + PERM_ALL_SKILL + PERM_USE_ALL_EQUIPMENT + PERM_SKILL_UNCONDITIONAL + PERM_JOIN_ALL_CHAT + PERM_NO_CHAT_KICK + PERM_HIDE_SESSION + PERM_WHO_DISPLAY_AID + PERM_RECEIVE_HACK_INFO + PERM_WARP_ANYWHERE + PERM_VIEW_HPMETER + PERM_VIEW_EQUIPMENT + PERM_USE_CHECK + PERM_USE_CHANGEMAPTYPE + PERM_USE_ALL_COMMANDS + PERM_RECEIVE_REQUESTS + PERM_SHOW_BOSS + PERM_DISABLE_PVM + PERM_DISABLE_PVP + PERM_DISABLE_CMD_DEAD + PERM_HCHSYS_ADMIN + PERM_TRADE_BOUND + PERM_DISABLE_PICK_UP + PERM_DISABLE_STORE + PERM_DISABLE_EXP + PERM_DISABLE_SKILL_USAGE + +Example: + + if (has_permission(PERM_WARP_ANYWHERE)) { + //do something + } + +It is also possible to pass a string for plugin permissions: + + if (has_permission("show_version")) { + //do something + } + +** Passing a string is slower than passing a constant because + the engine has to loop through the array to find the permission. + In most cases you should use the PERM_ constants. + +--------------------------------------- + *unitskilluseid(<GID>, <skill id>, <skill lvl>{, <target id>}) *unitskilluseid(<GID>, "<skill name>", <skill lvl>{, <target id>}) *unitskillusepos(<GID>, <skill id>, <skill lvl>, <x>, <y>) |