*******************************************
* *
* Walker Script Specification *
* Last Modified On 2009-05-07 *
* *
* Official Website:

*
* *
*******************************************
1. Each line in the script contains one script command at most. The command name is before "()", and the parameters are in the "()".if you write a wrong command, you will get a message: No ins.The message does not send to game server.
2. The script command is case-insensitive.
3. Judgement-command(condition-command):
if the condition in the judgment-command is true,
Walker will execute next command or the commands in "{ }",
otherwise Walker will skip next command or the commands in "{ }".
For example:
ItemCount(Scroll of Escape[Id=736],<,1)
{
Msg(No scroll)
Jmp(Return town by foot)
}
UseItem(Scroll of Escape)
Delay(5000)
Or
ItemCount(Scroll of Escape[Id=736],>=,1)
Jmp(Return town by scroll)
Msg(No scroll, return town by foot)
Note:
1. In the following specification, "mytom" is a virtual player name.
*******************************************
* *
* Script Command List *
* *
*******************************************
The format is like this: Command: Command Parameters, command description, explanation of the paramaters, examples, other specifications of this command.
===========================================
UseSkill(SkillName[ID=x],SELF|PLAYER|PARTY|NPC|PET,TargetName)
For example: UseSkill(Shield[Id=1040],PLAYER,mytom) use Shield on player mytom
UseItem: UseItem(ITEMName[ID=x],SELF|PLAYER|PARTY|NPC|PET,TargetName)
For example: UseItem(Scroll of Escape[Id=736],SELF,mytom).
BuyItem: BuyItem(Item Name[Id=XXX],Count)
For example1: BuyItem(Scroll of Escape[Id=736],2)
For example2: BuyItem(Scroll of Escape[Id=736],2;Scroll of Resurrection[Id=737],2);
SellItem: SellItem(Item Name[Id=XXX],Count)
For example1: SellItem(Scroll of Escape[Id=736],2);
For example2: SellItem(Scroll of Escape[Id=736],2;Scroll of Resurrection[Id=737],3)
For example3: SellItem(*) is sell all items which setting as "Sell" in current config
SaveItem: SaveItem(Item Name[Id=XXX],Count)
Deposit Items in the warehouse
For example1: SaveItem(Scroll of Escape[Id=736],2),
For example2: SaveItem(Scroll of Escape[Id=736],2;Scroll of Resurrection[Id=737],3)
For example3: SaveItem(*) is deposit all items which setting as "Warehouse" in current config
LoadItem: LoadItem(Item Name[Id=XXX],Count)
Withdraw items from warehouse
For example1: LoadItem(Scroll of Escape[Id=736],2)
For eaxmple2: LoadItem(Scroll of Escape[Id=736],2;Scroll of Resurrection[Id=737],3)
MSG: MSG(Info),
Prompt Info, only can see by yourself,the info does not send to game server.
For example: MSG(return town after dead!)
SET([FIGHTSTART|FIGHTSTOP])
Explanation:Start or stop Fight
For eaxmple:SET(FIGHTSTART) //Start Fight
SET(FIGHTSTOP) //Stop Fight
SET(FIGHT,START|STOP)
SET(L2WALKER,ENABLE|DISABLE) // ENABLE or DISABLE L2walker
Delay: Delay(N), the script execution pause for N ms, for example: Delay(5000) , Pause 5 seconds
Label: Label(XXX),
XXX is label name, JMP and Call will use this
for example: LABEL(detect range), there are match case some commands after label.
Jmp: Jmp(XXX),
jump to the command with the certain label,
for example Jmp(detect range), use it to control the scripts execute flow
Call: Call(XXX), XXX is the label name,
for example: Call(begin attack),
the difference between "Jmp" and "Call" is that: you must use RETURN() to return From block of commands
"Call" will return to execute the next command after execute the block of commands with the certain label.
RETURN():
MoveTo(X,Y,Z): MoveTo(X,Y,Z), make the character MoveTo the location(X,Y,Z)
NpcSel: NpcSel(NPC Name[Id=XXX]),
Select the NPC, for example NpcSel(Jackson[Id=7002])
NpcDlg: NpcDlg(NPC Name[Id=XXX]),
chat with this NPC, for example: NpcDlg(Jackson[Id=7002])
DlgSel: DlgSel(str)
select "str" in the dialog, for example: DlgSel(Sell Item)
CharStatus([CHP|CMP|HP|MP|WEIGHT|LV|SP|RACE|STAND],[>=|>|==|!=|<|<=],num)
Condition command, detect the status of character,
CHP(current hp value), CMP(current mp value)
HP(hp percent), MP(mp percent),WEIGHT(load percent),
LV(Level), SP, RACE(Human:0, Elf:1, Dark Elf:2, Orc:3, Dwarf:4)
For example: CharStatus(Weight,>=,45), detect whether weight is over 45% or not
PosOutRange: PosOutRange(X, Y, Z, Radius)
Condition command,detect whether char is out of rangeor not,
For example: PosOutRange(-96716,255766,-3443,3000) dectect wether char is out of the circle which center is (-96716,255766,-3443) and the radius is 3000.
like this:
PosOutRange(100,100,100,500)
{
MSG(Please Stand near by XXX to start)
EXIT()
}
PosInRange: PosInRange(X, Y, Z, Radius)
Condition command, detect whether char is in the range or not,
for example: PosInRange(-96716,255766,-3443,3000)
GoHome: GoHome() return town after dead
Say: Say(XXX), say XXX in normal channel
Exit: Exit(), exit the execution of the scrpt
Pause: Pause(), pause the execution of the script
StrInDlg: StrInDlg(XXX)
Condition command, detect whether XXX is in the NPC dialog or not
For example: StrInDlg(Accetp)
StrNotInDlg: StrNotInDlg(XXX)
Condition command, detect whether XXX is not in the NPC dialog
For example: StrNotInDlg(Accetp)
ChangeWaitType: ChangeWaitType(X)
X=0:sit down, X=1 stand up
ForceAttack: ForceAttack(NPC Name[Id=XXX]), Attack NPC
SET(RANGETYPE,RAND) //Set combat range to random(no limit range)
SET(RANGETYPE,STARTPOS,radii) //make the current pos as center of combat range and radius is radii
SET(RANGETYPE,DEFPOS,x,y,z,radii) //make the (x,y,z) as center of combat range and radius is radii
SET(RANGETYPE,DEFRANGE) //set combat range to custom polygon range
SET(RANGETYPE,DEFPATH) //set combat range to certain path.
SET(DEFRANGE,CLEAR) //clear the pos of the polygon.
SET(DEFRANGE,ADD,x,y,z) //add the pos (x,y,z) to polygon
SET(DEFPATH,CLEAR) //clear the pos of default path,Set(DefPath,Clear)
SET(DEFPATH,ADD,x,y,z,radii) //add the pos(x,y,z) to default path
SET(MON,ATTACK|NOATTACK|ATTACKONE,Name[ID=n];Name1[ID=n];|*)
SET(ITEM,PICK|NOPICK|SAVE|NOSAVE|SELL|NOSELL|TRADE |NOTRADE,Name[ID=n];Name1[ID=n];|*)
IsMember: IsMember(Player Name)
Condition command, detect whether mytom is party member
Fox example: IsMember(mytom)
!IsMember: !IsMember(Player Name)
Condition command, detect whether mytom is not party member
Fox example: !IsMember(mytom)
RequestJoinParty: RequestJoinParty(PlayerName,type)
Request Player to join party,
Type: Item-Distribution-Method, 0 certain, 1 random, 2 rand include swap, 3 as party member sequence, 4: sequence include swap
for example: RequestJoinParty(mytom,0)
RequestOutParty: RequestOutParty(PlayerName)
drive object out of party,
for example: RequestOutParty(mytom)
QuitParty: QuitParty()
quit party
MemberStatus: MemberStatus(object name,status name[Id=XXX])
condition command, detect whether object has certain status,
for example: MemberStatus(mytom,Shield[Id=1040])
!MemberStatus: !MemberStatus(object name,status name[Id=XXX])
condition command, detect whether object doesn't have certain status
for example: !MemberStatus(jack,Shield[Id=1040])
CharBuffs(Shield[Id=1040])
Check yourself if you have status Shield or not
!CharBuffs(Shield[Id=1040])
ItemCount: ItemCount(ItemName[Id=XXX],cond, Count)
Condition command,
cond: >=, >, ==, !=, <, <=
ItemCount(ItemName[ID=x],[>=|>|==|!=|<|<=],count)