Jump to content

[SHARE] Scypts for l2 Walker


SoulReaver

Recommended Posts

SET (L2WALKER, ENABLE|DISABLE) // stops outside the start hanging the function

Explained: Outside the establishment stops hanging outside the function or the start hangs the function

Example: SET (L2WALKER, ENABLE) outside // start hangs the function

Outside SET (L2WALKER, DISABLE) // stops hanging the function

 

USESKILL (name [ ID=x ], SELF|PLAYER|PARTY|NPC|PET, TargetName)

Explained: Use skill

SELF // own

PLAYER // plays the family

PARTY // troop members

NPC // did not explain

PET // pet

TargetName// goal name

Example: USESKILL (the attack strengthens [ ID=104 ], SELF)

USESKILL (ultimate cures the technique [ ID=XXX ], PLAYER, only suitablly roams about)

 

 

 

Establishment instruction:

SET ([ FIGHTSTART|FIGHTSTOP ])

Explained: The establishment commencing of action or stops fighting

:SET (FIGHTSTART) // starts to fight

SET (FIGHTSTOP) // stops fighting

 

SET (RANGETYPE, RAND)

Explained: Establishes stochastically looks strangely

 

SET (RANGETYPE, STARTPOS, radii)

Explained: The establishment starts to fight looks strangely for the central point

Example: SET (RANGETYPE, STARTPOS,1,500) // starts to fight is the central point, the radius 1,500

 

SET (RANGETYPE, DEFPOS, x, y, z, radii)

Explained: The establishment looks strangely from the definition central point

Example: SET (RANGETYPE, DEFPOS,43950,51153, -3022,2000;) / Take 43950,51153, -3022 as the central point, the radius 2,000

 

SET (RANGETYPE, DEFRANGE)

Explained: The establishment looks strangely from the definition scope

 

SET (RANGETYPE, DEFPATH)

Explained: The establishment looks strangely from the definition way

 

SET (DEFRANGE, CLEAR)

Explained: The elimination eliminates from the definition scope

 

SET (DEFRANGE, ADD, x, y, z)

Explained: Increase from definition scope spot

Example: SET (DEFRANGE, ADD,43950,51153, -3022;)

 

SET (DEFPATH, CLEAR)

Explained: Elimination from definition way

 

SET (DEFPATH, ADD, x, y, z, radii)

Explained: Increase from definition way spot

Example: SET (DEFPATH, ADD,43950,51153, -3022,1000;) / Take 43950,51153, -3022 as from definition way spot, radius 1,000

 

SET (MON, ATTACK|NOATTACK|ATTACK ONE, Name [ ID=n ]; Name1 [ ID=n ]; |*)

Explained: The establishment attack monster or does not attack the monster

ATTACK// is the attack

NOATTACK// is does not attack

ATTACKONE// is the attack completes the order form

 

 

SET (ITEM, PICK|NOPICK|SAVE, Name [ ID=n ]; Name1 [ ID=n ]; |*)

Explained: Establishes the stage prop to pick takes; Does not pick takes; Preservation

PICK// is picks takes

NOPICK// is does not pick takes

SAVE// is the preservation

 

 

Movement instruction:

MOVETO (x, y, z)

Explained: Moves to x, y, z

 

NPCSEL (name [ ID=x ])

Explained: Chooses NPC

 

NPCDLG (name [ ID=x ])

Explained: With NPC dialogue

 

DLGSEL (name)

Explained: Dialogue choice

 

GOHOME ()

Explained: Died the city

 

SAY (writing)

Explained: Generally speaks

 

MSG (writing)

Explained: Outside hangs the prompt blind, the others

 

UseItem (name [ ID=x ])

Explained: Uses the stage prop

 

BUYSEED (name [ ID=x ], quantity)

Explained: Purchase seed

Example: BUYSEED (air conditioning tan oak cypress seed [ ID=5046 ],2,000;)

 

SELLSEED (name [ ID=x ], quantity)

Explained: Special product settlement

Example: SELLSEED (red tan oak tower [ ID=5068 ],3,000;)

 

BuyItem (name [ ID=x ], quantity)

Explained: Purchase goods

Example 1:BuyItem (returns to the reel [ ID=736 ],2)

Example 2:BuyItem (returns to the reel [ ID=736 ],2; Reactivating reel [ ID=737 ],3)

 

SellItem (name [ ID=x ], quantity)

Example 1:SellItem (returns to the reel [ ID=736 ],2)

Example 2:SellItem (returns to the reel [ ID=736 ],2; Reactivating reel [ ID=737 ],3)

Example 3:SellItem (*) sells in the stage prop hypothesis to suppose is "sells" the complete goods

 

SaveItem (name [ ID=x ], quantity)

Example 1:SavelItem (returns to the reel [ ID=736 ],2)

Example 2:SavelItem (returns to the reel [ ID=736 ],2; Reactivating reel [ ID=737 ],3)

Example 3:SavelItem (*) preserves in the stage prop hypothesis to suppose is "saves" the complete goods

 

LoadItem (name [ ID=x ], quantity)

Example 1:LoadlItem (returns to the reel [ ID=736 ],2)

Example 2:LoadlItem (returns to the reel [ ID=736 ],2; Reactivating reel [ ID=737 ],3)

 

ChangeWaitType (x)

The character stands or sits down

X = 0 seats

X = 1 station

 

 

Conditional order:

StrInDlg (dialogue writing)

Explained: Uses for to judge and in the NPC dialogue dialog box whether has the writing which assigns

Example:

NPCSEL (gram Pu [ ID=1007534 ])

NPCDLG (gram Pu [ ID=1007534 ])

DLGSEL (duty)

STRINDLG (complies to entrust)

{

DLGSEL (complies to entrust)

JMP (duty meets)

}

JMP (duty already received)

 

StrNotInDlg (dialogue writing)

Explained: Uses for to judge and in the NPC dialogue dialog box hasn't assigned whether writing

Example:

NPCSEL (gram Pu [ ID=1007534 ])

NPCDLG (gram Pu [ ID=1007534 ])

DLGSEL (duty)

STRNOTINDLG (complies to entrust)

{

MSG (already received duty)

JMP (has met duty)

}

DLGSEL (complies to entrust)

 

 

CharStatus ([ CHP|CMP|HP|MP|WEIGHT|LV|SP|RACE|STAND ], [ >=|>|==|! =|<|<= ], num)

Explained: The character condition judgement, HP.MP.WEIGHT is a percentage

CHP, CMP manner current actual value

WEIGHT is carries a heavy load the percentage

LV manner rank

RACE manner race (human =0, demon =1, dark demon =2, half beastly person =3, dwarf =4)

 

PosInRange (x, y, z, range)

Explained: Examines the character current coordinates whether in take x, y, z as central point range is in the radius center of a circle

 

 

PosOutRange (x, y, z, range)

Explained: Examines the character current coordinates whether in take x, y, z as central point range is outside the radius center of a circle

Example: Joins in the script opening

PosOutRange (100,100,100,500)

{

MSG (please stand nearby xxx starts)

EXIT ()

}

 

 

ItemCount (name [ ID=x ], [ >=|>|==|! =|<|<= ], count)

Explained: Assigns the name or the ID stage prop quantity compared with the character body on whether does satisfy the condition

 

 

Flow control instruction:

CALL (LABEL name)

Explained: Transfers the LABEL marking the label address execution, carries out returns, must have to have the RETURN instruction

Example:

CALL (next step)

The transfer completes can continue the execution next step

...

EXIT ()

LABEL (next step)

...

RETURN

 

 

JMP (LABEL name)

Explained: Jumps changes to the LABEL marking the label address execution

 

RETURN ()

Explained: When CALL transfer must use this to return

 

EXIT ()

Explained: Conclusion script movement

 

DELAY (x)

Explained: Retards x millisecond

 

PAUSE ()

Explained: The suspension script execution, prompts the information for to play the family, lets play the family to control continues to carry out

 

LABEL (sign signs)

Explained: The definition sign signature, uses for JMP or CALL

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Control:

Call(Text)

Call goes to a label, then upon the command Return() it returns back to where the call was placed. Take a look at this code for example:

Code:

 

Call(Test1)

Delay(1000)//1

Call(Test1)

Delay(1000)//2

Call(Test1)

Delay(1000)//3

Call(Test1)

Delay(1000)//4

 

EXIT()

 

Label(Test1)

Delay(2000)//Call1

Return()

 

The first Call(Test1) will jump to the LABEL(Test1), carry out the codes following it then return back to the first Call(Test1) once it hits Return(). It will then perform the Delay(1000)//1 function and continue to the second Call(Test1). The second Call(Test1) will also jump to the Label(Test1) and perform the functions following but this time, upon the Return() code, it will not return to the first Call(Test1) but to the second Call(Test1) and then perform the Delay(1000)//2 function. This will continue to happen for each Call(Test1) and will return to that specific Call(Test1) upon the command Return()

If i had used JMP instead of call, the return would be ineffective, and the code would not return back to the jmp upon the Return() code. It would, rather, continue on with the scrip. In the case of the above script, it would end after the Delay(2000)//Call1 as there are no more effective codes following it.

I hope this explains it.

Try this script to see what i mean...then try replacing all the calls with JMP and see what happens.

 

Delay(Milliseconds)

This will stop the script for the defined ammount of time. For example, Delay(20000) will stop the script for 20 seconds. 1000 milliseconds is 1 second.

 

Exit(Text)

This will terminate the script

 

GoHome(Text)

This function goes to town if you are dead. Does nothing if you are alive

 

Jmp(Text)

Refer to the Call(Text) function found above

 

Label(Text)

Refer to the Call(Text) function found above

 

Pause(Text)

This will pause the script indefinately. Press Continue on the script panel to continue to the script

 

Return()

Refer to the Call(Text) function found above

 

Say(Message)

This will display the message inside the brackets to the L2walker chat area. Other players cannot see this message

 

 

 

Items:

BuyItem(ITEMNAME [iD=#],#Wink

Buys Item. Must have the buy window open with the desired npc

 

BuySeed(SEEDNAME[iD=#],#Wink

Buys seed. Must have the buy seed window open with the desired npc

 

ItemCount(ITEMNAME[iD=#],[>=|>|==|!=|<|<=],1)

This code is to be followed with inclusion brackets ({}). Make sure both the open and close bracket is on a seperate line. This code Checks wether or not you have a certain ammount of items in your inventory (including what you're wearing) and then if it satisfies the conditions it will perform the script within the inclusion brackets. Here is an example:

Code:

 

ITEMCOUNT(Wooden Arrow[iD=17],<=,20)

{

DELAY(1000)

Call(ToTown)

}

 

 

LoadItem(ITEMNAME [iD=#],#Wink

takes out the desired item from the warehouse. Withdraw window must be opened. Use semicolon (Wink to add other items. Here is an example:

Code:

 

LoadItem(Stem[iD=1864],50;Varnish[iD=1865],50)

 

This code will remove 50 stems from the warehouse

 

SaveItem(ITEMNAME [iD=#],#Wink

similar to the above, except that it will put items into the warehouse instead of take them out. Here is an example:

Code:

 

LABEL(Itemdeposit)

NPCSEL(Airy[iD=7522])

DELAY(1000)

NPCDLG(Airy[iD=7522])

DELAY(1000)

DLGSEL(Deposit Item (Private Warehouse))

DELAY(1000)

ITEMCOUNT(Stem[iD=1864],>,0)

{

SaveItem(Stem[iD=1864],9999)

CALL(Itemdeposit)

Delay(2000)

}

 

 

SellItem(ITEMNAME [iD=#],#Wink

Similar to the BuyItem(ITEMNAME [iD=#],#Wink function, except that the buy window must be open with the NPC and this will buy the desired items instead of sell the undesired ones

 

SellSeed(SEEDNAME [iD=#],#Wink

Similar to the BuySeed function, but it buys seeds instead

 

UseItem(ITEMNAME [iD=#]Wink

Uses a desired item or items

 

NPCs

Here is an example of NPC Commands:

Code:

 

LABEL(Wirphy)

NPCSEL(Wirphy)

DELAY(1000)

NPCDLG(Wirphy)

DELAY(1000)

DLGSEL(Quest)

DELAY(1000)

StrInDlg(Say you will help)

{

DLGSEL(Say you will help)

JMP(Wirphy)

}

StrNotInDlg(Say you will help)

{

DELAY(1000)

NPCDLG(Wirphy)

DELAY(1000)

DLGSEL(Go to another village)

DLGSEL(Go to another village)

DLGSEL(The Northeast Coast - 700 ??)

DELAY (30000)

}

 

 

DlgSel(Diologue)

Selects the defined dilogue in a diologue window

 

NPCDlg(NPCNAME[iD=#])

Enables diologue with the defined NPC

 

NPCSel(NPCNAME[iD=#])

Selects an NPC

 

StrInDlg(Diologue)

Looks for a certain strin in the dilogue and if it exists performs functions in inclusion brackets. Inclusion brackets must follow the script.

 

StrNotInDlg(Diologue)

Looks for a certain strin in the dilogue and if it does not exists, the script will performs functions in inclusion brackets. Inclusion brackets must follow the script.

 

Character:

ChangeWaitType(0|1)

Sets the character to either sit or stand. 0 = sit, 1 = stand.

 

CharStatus(CHP,[>=|>|==|!=|<|<=],#)

CharStatus(CMP,[>=|>|==|!=|<|<=],#)

CharStatus(HP,[>=|>|==|!=|<|<=],#)

CharStatus(LV,[>=|>|==|!=|<|<=],#)

CharStatus(MP,[>=|>|==|!=|<|<=],#)

CharStatus(RACE,[>=|>|==|!=|<|<=],#)

CharStatus(SP,[>=|>|==|!=|<|<=],#)

CharStatus(STAND,[>=|>|==|!=|<|<=],0|1)

CharStatus(WEIGHT,[>=|>|==|!=|<|<=],#)

PosInRange(x,y,z,radii)

PosOutRange(x,y,z,radii)

UseSkill(NAME[iD=#],NPC,TARGETNAME)

UseSkill(NAME[iD=#],Party,TARGETNAME)

UseSkill(NAME[iD=#],Pet,TARGETNAME)

UseSkill(NAME[iD=#],Player,TARGETNAME)

UseSkill(NAME[iD=#],Self,TARGETNAME)

 

Set:

Set(DefPath,Add,x,y,z,radii)

Set(DefPath,Clear)

Set(DefRange,Add,x,y,z)

Set(DefRange,CLEAR)

Set(FIGHTSTART)

Set(FIGHTSTOP)

Set(Item,NoPick,NAME[iD=#])

Set(Item,Pick,NAME[iD=#])

Set(Item,Save,NAME[iD=#])

Set(L2Walker,Disable)

Set(L2Walker,Enable)

Set(Mon,Attack,NAME [iD=#])

Set(Mon,AttackOne,NAME [iD=#])

Set(Mon,NoAttack,NAME [iD=#])

Set(RangeType,Defpath)

Set(RangeType,DefPos,x,y,z,radii)

Set(RangeType,DefRange)

Set(RangeType,RAnd)

Set(RangeType,StartPos,radii)

 

Conditions:

Bracket Enclosure ({})

Equal To (==)

Greater Than (>)

Greater Than or Equal To (>=)

Less Than (<)

Less Than or Equal To (<=)

Not Equal To (!=)

Link to comment
Share on other sites

Control:

Call(Text)

Call goes to a label, then upon the command Return() it returns back to where the call was placed. Take a look at this code for example:

Code:

 

Call(Test1)

Delay(1000)//1

Call(Test1)

Delay(1000)//2

Call(Test1)

Delay(1000)//3

Call(Test1)

Delay(1000)//4

 

EXIT()

 

Label(Test1)

Delay(2000)//Call1

Return()

 

The first Call(Test1) will jump to the LABEL(Test1), carry out the codes following it then return back to the first Call(Test1) once it hits Return(). It will then perform the Delay(1000)//1 function and continue to the second Call(Test1). The second Call(Test1) will also jump to the Label(Test1) and perform the functions following but this time, upon the Return() code, it will not return to the first Call(Test1) but to the second Call(Test1) and then perform the Delay(1000)//2 function. This will continue to happen for each Call(Test1) and will return to that specific Call(Test1) upon the command Return()

If i had used JMP instead of call, the return would be ineffective, and the code would not return back to the jmp upon the Return() code. It would, rather, continue on with the scrip. In the case of the above script, it would end after the Delay(2000)//Call1 as there are no more effective codes following it.

I hope this explains it.

 

is this part right? i thought that JMP jump back not CALL

Link to comment
Share on other sites

You don't need call.

Return command return to last call.

Example:

 

LABEL(1)

SAY(HELLO!)

CALL(waittime)

LABEL(2)

SAY(This)

CALL(waittime)

LABEL(3)

SAY(is)

CALL(waittime)

LABEL(4)

SAY(a)

CALL(waittime)

LABEL(5)

SAY(test!)

CALL(waittime)

LABEL(6)

SAY(for return!)

CALL(waittime)

 

LABEL(waittime)

DELAY(5000)

 


Result:

HELLO! [5 sec]

This [5 sec]

is [5 sec]

a [5 sec]

test! [5 sec]

for return! [5 sec]

 

 

Link to comment
Share on other sites

  • 2 weeks later...
  • 2 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.




×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock