Difference between revisions of "References"

From OpenKore Wiki
Jump to navigation Jump to search
m (Added checkSelfConditions)
Line 417: Line 417:
  
 
=== Attribute definitions ===
 
=== Attribute definitions ===
; aggressives [<[[References#Range Operators|range]]>]
+
{|
: If this option is set, the block will only be used if the number of monsters who has hit or missed you is within the specified range.
+
|
 +
* [[aggressives]]
  
; partyAggressives [<[[References#Range Operators|range]]>]
+
* [[defendMonsters]]
: If this option is set, the block will only be used if the number of monsters who has hit or missed you and your party members is within the specified range.
 
  
 +
* [[disabled]]
  
----
+
* [[hp]]
  
 +
* [[inCart]]
  
; disabled [<boolean flag>]
+
* [[inInventory]]
: Set this option to '''1''' to temporarily disable the block completely.
 
  
 +
* [[inLockOnly]]
  
----
+
* [[inMap]]
 +
||
 +
* [[monsters]]
  
 +
* [[notInTown]]
  
; sp [<[[References#Range Operators|range]]> [%]]
+
* [[notMonsters]]
  
{| class="wikitable" border="1"
+
* [[notOnAction]]
!Syntax
 
!Description
 
|-
 
|align=center|sp <range>
 
|If this option is set, the block will only be used if the absolute amount of SP is within the specified range.
 
|-
 
|align=center|sp <range> %
 
|If this option is set, the block will only be used if the percent SP is within the specified range.
 
|-
 
|}
 
  
 +
* [[notInMap]]
  
; hp [<[[References#Range Operators|range]]> [%]]
+
* [[notWhileSitting]]
 
 
{| class="wikitable" border="1"
 
!Syntax
 
!Description
 
|-
 
|align=center|hp <range>
 
|If this option is set, the block will only be used if the absolute amount of HP is within the specified range.
 
|-
 
|align=center|hp <range> %
 
|If this option is set, the block will only be used if the percent HP is within the specified range.
 
|-
 
|}
 
 
 
 
 
 
 
Example:
 
If you have 4000 maximum HP and you want to use the block if you have less than 800 HP left, use the setting:
 
 
 
hp < 800
 
 
 
Alternatively, the following example will have the same effect, because 800 HP is 20% of 4000 HP:
 
 
 
hp < 20%
 
 
 
 
 
----
 
 
 
 
 
; inCart [<[[References#Item Names|item name]]> <[[References#Range Operators|range]]>]
 
: If this option is set, the block will only be used if the amount of each of the specified list of items in cart are within the corresponding specified ranges. The value could be a comma-separated list of (<item name> <range>) pairs:
 
 
 
Syntax:
 
<item> <range>[,<item1> <range1>[, ...]]
 
 
 
 
 
; inInventory [<[[References#Item Names|item name]]> <[[References#Range Operators|range]]>]
 
: If this option is set, the block will only be used if the amount of each of the specified list of items in inventory are within the corresponding specified ranges. The value could be a comma-separated list of (<item name> <range>) pairs:
 
 
 
Syntax:
 
<item> <range>[,<item1> <range1>[, ...]]
 
 
 
 
 
The following example will allow you to create Holy Water using the Aqua Benedicta skill if you are currently standing on water and you have Empty Bottles in your inventory.
 
 
 
useSelf_skill Aqua Benedicta {
 
lvl 1
 
notWhileSitting 1
 
inInventory Empty Bottle > 0
 
}
 
 
 
 
 
----
 
 
 
 
 
; inLockOnly [<boolean flag>]
 
: Set this option to '''1''' if you want to use the block only when Kore is inside the specified [[lockMap]].
 
 
 
 
 
----
 
 
 
 
 
; notInTown [<boolean flag>]
 
: Set this option to '''1''' if you don't want to use the block while in town.
 
 
 
 
 
----
 
 
 
 
 
; inMap [<[[References#Map Names|map names]]>]
 
: If this option is set, the block will only be used if you are inside one of the specified comma-separated list of maps.
 
 
 
 
 
; notInMap [<[[References#Map Names|map names]]>]
 
: If this option is set, the block will never be used if you are inside one of the specified comma-separated list of maps.
 
  
 +
* [[onAction]]
  
----
+
* [[partyAggressives]]
 +
||
 +
* [[sp]]
  
 +
* [[spirit]]
  
; monsters [<[[References#Monster Names|monster names]]>]
+
* [[stopWhenHit]]
: If this option is set in an [[attackSkillSlot]] or [[attackComboSlot]] block, the block will only be used if you are attacking any one of the specified comma-separated list of monsters.
 
  
 +
* [[timeout]]
  
; notMonsters [<[[References#Monster Names|monster names]]>]
+
* [[whenFlag]]
: If this option is set in an [[attackSkillSlot]] or [[attackComboSlot]] block, the block will not be used if you are attacking any one of the specified comma-separated list of monsters.
 
  
: If this option is set on other blocks, the block will not be used if any one of the specified comma-separated list of monsters is attacking you.
+
* [[whenFollowing]]
  
 +
* [[whenGround]]
  
----
+
* [[whenIdle]]
 +
||
 +
* [[whenNotFlag]]
  
 +
* [[whenNotGround]]
  
; defendMonsters [<[[References#Monster Names|monsters names]]>]
+
* [[whenNotPermitSkill]]
: If this option is set, the block will only be used if you are the current target of the attacks of any of the specified comma-separated list of monsters.
 
  
 +
* [[whenPermitSkill]]
  
----
+
* [[whenStatusActive]]
  
 +
* [[whenStatusInactive]]
  
; notWhileSitting [<boolean flag>]
+
* [[whenWater]]
: Set this option to '''1''' if you don't want to use the block while sitting.
 
 
 
 
 
----
 
 
 
 
 
; onAction [<AI sequences>]
 
: If this option is set, the block will only be used if at least one of the specified comma-separated list of AI sequences is curently active. See below for a list of AI Sequences.
 
 
 
 
 
; notOnAction [<AI sequences>]
 
: If this option is set, the block will only be used if none of the specified comma-separated list of AI sequences is curently active.
 
 
 
There are around 29 known AI sequences, but the following are the only ones you can use in this option:
 
{| class="wikitable" border="1"
 
!AI Sequence
 
!Block Options Supported
 
|-
 
|align=center|attack
 
|attackComboSlot, attackSkillSlot, useSelf_item, useSelf_skill, partySkill, monsterSkill, equipAuto
 
|-
 
|align=center|follow
 
|buyAuto, useSelf_item, useSelf_skill, partySkill, monsterSkill, equipAuto
 
|-
 
|align=center|items_gather
 
|useSelf_item, useSelf_skill, partySkill, monsterSkill, equipAuto
 
|-
 
|align=center|items_take
 
|useSelf_item, useSelf_skill, partySkill, monsterSkill, equipAuto
 
|-
 
|align=center|mapRoute
 
|useSelf_item, useSelf_skill, partySkill, monsterSkill, equipAuto
 
|-
 
|align=center|move
 
|partySkill, monsterSkill
 
|-
 
|align=center|route
 
|buyAuto, useSelf_item, useSelf_skill, partySkill, monsterSkill, equipAuto
 
|-
 
|align=center|sitAuto
 
|useSelf_item, useSelf_skill, partySkill, monsterSkill, equipAuto
 
|-
 
|align=center|skill_use
 
|useSelf_item, useSelf_skill, equipAuto
 
|-
 
|align=center|take
 
|useSelf_item, useSelf_skill, partySkill, monsterSkill, equipAuto
 
|-
 
 
|}
 
|}
 
 
----
 
 
 
; spirit [<[[References#Range Operators|range]]>]
 
: If this option is set, the block will only be used if the number of summoned spirit spheres is within the specified range.
 
 
 
----
 
 
 
; stopWhenHit [<boolean flag>]
 
: Set this option to '''1''' if you don't want to use the block when you are the target of monster's attacks.
 
 
 
----
 
 
 
; timeout [<seconds>]
 
: If this option is set, wait for the specified number of seconds before using the block again.
 
 
 
----
 
 
 
; whenEquipped [<[[References#Equipment Names|equipment names]]>]
 
: If this option is set, the block will only be used if the specified equipment is currently equipped.
 
 
 
; whenNotEquipped [<[[References#Equipment Names|equipment names]]>]
 
: If this option is set, the block will only be used if the specified equipment is currently not equipped.
 
 
 
----
 
 
 
; whenFlag [<name>]
 
: If this option is set, the block will only be used if a member of the %flags hash with the specified name is set. This is useful to enable or disable a group of block options easily.
 
 
; whenNotFlag [<name>]
 
: If this option is set, the block will only be used if a member of the %flags hash with the specified name is not set. This is useful to enable or disable a group of block options easily.
 
 
'''Note.''' Currently, only plugins or the eval console command could change %flags so this is only useful to developers.
 
 
 
----
 
 
 
; whenFollowing [<boolean flag>]
 
: Set this option to '''1''' if you want to use the block only when Kore is following someone.
 
 
 
----
 
 
 
; whenGround [<[[References#Ground Spell Names|ground spell names]]>]
 
: If this option is set, the block will only be used when any one of the specified comma-separated list of spells is currently active on the ground you're standing on.
 
 
 
; whenNotGround [<[[References#Ground Spell Names|ground spell names]]>]
 
: If this option is set, the block will only be used when none of the specified comma-separated list of spells is currently active on the ground you're standing on.
 
 
'''Note.''' Ground types can be found by using the console command spells while certain spells are active on the ground. You can also look for them in the tables folder, in the file spells.txt.
 
 
 
----
 
 
 
; whenIdle [<boolean flag>]
 
: Set this option to '''1''' if you want to use the block only when Kore is doing nothing.
 
 
 
----
 
 
 
; whenPermitSkill [<[References#Skill Names|skill names]]>]
 
: If this option is set, the block will only be used when you have been granted use of the specified temporary skill.
 
 
 
; whenNotPermitSkill [<[[References#Skill Names|skill names]]>]
 
: If this option is set, the block will only be used when you have not been granted use of the specified temporary skill.
 
 
 
----
 
 
 
; whenStatusActive [<[[References#Status Names|status names]]>]
 
: If this option is set, the block will only be used if at least one of the specified comma-separated list of status names is currently active.
 
 
 
; whenStatusInactive [<[[References#Status Names|status names]]>]
 
: If this option is set, the block will only be used if none of the specified comma-separated list of status names is currently active.
 
 
'''Note.''' Statuses can be found by typing s in the console while the status is active. You can also look for them in the tables folder, in the files skillsailments.txt, skillslooks.txt, skillsstate.txt, and skillsstatus.txt.
 

Revision as of 20:14, 29 November 2009

Syntax Legends

This section describes the syntax formatting used in declarations of configuration options and commands.

Symbol Description
Bold Kore will not reply to repeating messages from the same player.
< > Information that the user must specify.
( ) Required parameters.
[ ] Optional parameters.
| OR. This separates choices from which the user must choose only one.


Basic Value and Parameter Types

This section describes the basic types that may appear in a configuration option's value or a command parameter.

Type Description
flag A number with special meaning on its current context. The list of meaningful values are always given.
boolean flag A type of flag with only two meaningful values: 1 to enable (turn on) or 0 to disable (turn off).
number Any number. This can be a fractional value (distance) or whole counting numbers (amount, damage, level) depending on the current context.
percent A number from 0 to 100 that corresponds to a percent. Don't append a percent sign (%) unless otherwise specified.
seconds The time specified in seconds. This can be a fractional value (e.g. 0.5).
string Any text string (alias name, password, callsign). See also Names (Text).


Equipment Slots

Kore can now efficiently equip items on specific equipment slots. You can automatically equip an item on certain conditions (equipAuto), when you attack with your weapon (attackEquip), on teleport (teleportAuto_equip), and when using skills (shared skill block attribute equip).

The following is a list of equipment slots.

Name Description
topHead Specifies the top head gear to equip.
midHead Specifies the middle head gear to equip.
lowHead Specifies the lower head gear to equip.
rightHand Specifies the weapon to equip on the right hand.
leftHand Specifies the weapon or shield to equip on the left hand.
rightAcessory Specifies the accessory to equip on the right accessory slot.
leftAcessory Specifies the accessory to equip on the left accessory slot.
armor Specifies the armor to equip.
robe Specifies the garment to equip.
shoes Specifies the footwear to equip.
arrow Specifies the arrows to equip when using a bow-type weapon.


Message Domains

Message domains are names used to classify messages printed in the console.

If you want to find out the domain of certain messages that you see in your console, set the option showDomain in config.txt to 1. Doing so will make Openkore display domains along with messages in the console.

The following is a list of known message domains:

Name Description
ai_attack Attack messages
ai_npcTalk Sequential conversation with NPC (talknpc)
attacked Monster attacks you
attackedMiss Monster attacks you but misses
attackMon You attack monster
attackMonMiss You attack monster but misses
connection Connection messages
console Default domain for messages that have no defined message group. (Note. You can't use this with verboseDomains and squelchDomains.
deal Deal messages
drop Monster drop related
emotion Emoticon
exp Experience gained
equip Equipment switching
follow Follow messages
guildchat Guild chat message
guildnotice Guild notice message
info View info that's requested by the user (status, guild info, etc.)
input Waiting for user input
inventory Inventory related messages
list List of information (monster list, player list, item list, etc.)
load Loading config files
looter Attacking looter
map_event PvP/GvG mode messages
emotion NPC messages
parseMsg_statuslook Looks (skill status or ailments, muted, summoned spirit, equipment changes, sit, stand)
parseMsg/hairColor Hair color change
parseMsg/job Job change
parseMsg/upgrade Item upgrading
party Party/follow related
partychat Party chat messages
pet Pet related messages
plugins Messages about plugin handling
pm Private chat message
pm/sent Private chat message sent by you
portals Portal exists
portalRecord Recording of portals
publicchat Public chat message
refine Weapon refining
route Routing/pathfinding messages
route_teleport Route teleport messages
schat GM broadcast messages
selfSkill Skills used by yourself
skill Skill use unrelated to attack
sold Item sold while vending.
startup Messages that are printed during startup.
storage Storage item added/removed
success An operation succeeded
syntax Syntax check files
syntax Syntax check files
teleport Teleporting
useItem You used item
useTeleport Attemp to use teleport
waypoint Waypoint messages
xkore X-Kore system messages


The following is a list of debug domains.

  • ai
  • ai_attack
  • ai_autoCart
  • ai_makeItem
  • ai_move
  • ai_npcTalk
  • attackMonMiss
  • autoBreakTime
  • connection
  • d_sendPacket
  • debug
  • drop
  • equipAuto
  • guild
  • ipc
  • Item
  • monsterSkill
  • npc
  • packetParser
  • parseInput
  • parseMsg
  • parseMsg_comboDelay
  • parseMsg_damage
  • parseMsg_move
  • parseMsg_presence
  • parseMsg_presence/name
  • parseMsg_presence/player
  • parseMsg_presence/remote
  • parseMsg_statuslook
  • parseSendMsg
  • pet
  • route
  • route_teleport
  • sendPacket
  • sitAuto
  • skill
  • storage
  • useTeleport
  • vending


Names

This section describes the names used as values in configuration options.

Equipment Names

For equipments, it is best to use the console commands to get the exact name of your items (see Item Names). However, this is only applicable if you already have that certain item in your inventory, cart or storage. If you want to specify an equipment that you don't currently possess, use the following syntax as a guide when writing down equipment names:

# for normal equipments:
[BROKEN] [+<upgrade level>] (<item name>) [[<card name>[*<number>]] [<number of slots>]]

# for elemental weapons
[BROKEN][+<upgrade level>][VS|VVS|VVVS][Fire|Earth|Wind|Water](<item name>) 

Notes:

  • If the equipment is not "broken", omit the BROKEN part.
  • If the equipment is not upgraded, omit the +<upgrade level> part.
  • Use only the monster name for the card name (omit the "Card" part), e.g. use Hydra for the Hydra Card.
  • If there is only one card of a certain type slotted on the equipment, omit the *<number> part.
  • If there are more than one type of cards compounded on the equipment, the <card name>*<number> pair can be a colon-separated list. The list should be sorted alphabetically.
  • If the equipment is not slotted, omit the [<number of slots>] part.

Example:
If you want to use a +4 Cranial Mirror Shield, a Hard Padded Armor, a 3-slotted +5 Double Flammable Boned Saber, and a +6 Very Very Strong Wind Tsurugi, use:

+7 Mirror Shield [Thara Frog] [1]
Padded Armor [Pupa] [1]
+5 Saber [Skel Worker,Vadon*2] [3]
+6 VVS Wind Tsurugi

In v.1.9.x, the 3-slotted +5 Double Flammable Boned Saber described above would have to be written like the following (note the change in the card separator from comma to colon):

(V.1.9.x) +5 Saber [Skel Worker:Vadon*2] [3]

Note. So far configuration options using item names are not strict with case-sensitivity.


Item Names

The correct item names can be found by using the console commands i (inventory items), cart (cart items), and storage (storage items). You can also use store (buy list from NPC) or vender (vender shop list). Use the names as they are displayed in the lists.

You can also find the simple item names in the file tables\items.txt. For example:

2107#Mirror_Shield#

The string that appears after the first number sign (#) on each line is the item name used by Openkore. Replace the underscores (_) with space. In this case, the item name is Mirror Shield.

Note. So far configuration options using item names are not strict with case-sensitivity.


Ground Spell Names

Ground spell names can be found by using the console command spells while certain spells are active on the ground.

You can also find them in the file tables\spells.txt. For example:

126 Safety Wall

The string that appears after the first number on each line is the ground spell name used by Openkore. In this case, the ground spell name is Safety Wall.

Note. These are case-sensitive.


Map Names

Map names can be found by using the console command where.

You can also find them in the file tables\maps.txt. For example:

prontera.rsw#Prontera City#

The first word that appears on each line excluding the .rsw file extension is the map name used by Openkore. In this case, the map name is prontera.

Note. These are case-sensitive.


Monster Names

Monster names can be found by using the console command ml while certain monters are on screen.

You can also find them in the file tables\monsters.txt. For example:

1001 Scorpion

The string that appears after the first number on each line is the monster name used by Openkore. In this case, the monster name is Scorpion.

Note. These are case-sensitive.


Player Names

Player names can be found by using the console command pl while certain players are on screen.

Note. These are case-sensitive.


Skill Names

The correct skill names can be found by using the console command skills to list available skills for your character.

You can also find them in the file tables\skills.txt. For example:

NV_BASIC#Basic_Skill#

The string that appears after the first number sign (#) on each line is the skill name used by Openkore. Replace the underscores (_) with space. In this case, the skill name is Basic Skill.

Note. These are case-sensitive.


Status Names

Status names can be found by using the console command s while certain status are active on you character.

You can also find them in the files tables\skillsailments.txt, tables\skillslooks.txt, tables\skillsstate.txt, tables\skillsstatus.txt. For example:

1 Poisoned

The string that appears after the first number on each line is the status name used by Openkore. In this case, the status name is Poisoned.

Note. These are case-sensitive.


NPC Conversation Codes

These codes are used for specifying NPC talk sequences or steps when using the console command talknpc or the config.txt option storageAuto_npc_steps.

The following is a list of known NPC talk codes.

Code Description
c Continue talking to the NPC. This is the same as pressing the next when you talk to an NPC in the RO Client.
r(<response #>) Send response. The response number is the index of the response in the displayed response list (the first response has the index 0). This is the same as selecting a response when you talk to an NPC in the RO Client.
w(<seconds>) Wait for the specified number of seconds before continuing to talk to the NPC using the next talk code.
d(<number>) Send a number to the NPC. Use this if the NPC asks you to enter an amount.
t=(<string>) Send a string or text to the NPC. Use this if the NPC asks you to enter some text.
s Get sell list. This is the same as pressing the sell button when you talk to a buy/sell NPC in the RO Client.
b Get the store list. This is the same as pressing the buy button when you talk to a buy/sell NPC in the RO Client.
b(<store item #>),(<amount>) Buy an item from the NPC. See similar buy. Note that the amount is not optional.
n Immediately end or cancel conversation with the NPC. This is the same as pressing the close or cancel button when talking to an NPC in the RO Client.
e Wait until the NPC says "Done talking". Use this after the s or b talk code when talking to a buy/sell NPC.


When specifying NPC talk codes, separate each code with whitespace. For example, by using the following command, you will be able to refine a weapon with the Blacksmith NPC inside Prontera, assuming you are inside the BlackSmith shop in Prontera and the NPC stands on the coordinates (63, 60).

talknpc 63 60 c r3 c r0 c c r0 c n


Range Operators

Range operators provide flexibility in specifying values for some config.txt options by specifying ranges instead of exact values. The following defines the syntax for specifying ranges.

Symbol Description
X Value is exactly equal to X
X..Y Includes all numbers from X to Y
X-Y Includes all numbers from X to Y
> X Value is greater than X
>= X Value is greater than or equal to X
< X Value is less than X
<= X Value is less than or equal to X


The following example will change config to config_2.txt if you are a Novice whose job level is exacly equal to 10.

autoConfChange control/config_2.txt {
       isJob Novice 
       joblvl 10 
} 


The following example will use level 1 FireBolt on a Geographer if the current SP is greater than 5 percent and the monster's deltaHp is from -8070 to -7890.

attackSkillSlot Fire Bolt {
       lvl 1 
       dist 9 
       sp > 5% 
       monsters Geographer 
       target_deltaHp -8070..-7890 
}


The following example will use Heal on self if the current HP is less than 50 percent and the current SP is greater than or equal to 20 percent.

useSelf_skill Heal {
       lvl 10 
       hp < 50% 
       sp >= 20% 
}


Self Conditions

These condition options are shared between the attackComboSlot, attackSkillSlot, buyAuto, equipAuto, monsterSkill, partySkill, useSelf_item, and useSelf_skill configuration blocks.


Attribute definitions