Jump to content

Recommended Posts

Posted

Hiya all, i read this guide when i wanted to learn about scripting and at that time i knew absolutly nothing about scripting, after reading this guide i knew pretty much all there was to know i think =)

 

hope it will be of use to u all

 

How to make a script:

1. You will need L2Walker

2. You will need notepad and the file extension must be .sec (ie: script.sec)

3. The File must be saved as: unicode (File|Save As| Encoding: Unicode)

4. Read this msg to learn about commands.

 

 

Scripting Rules/Guidelines:

— A script instruction must occupy a line.

— () front is the instructionname(no spaces) between commands and parenthesis. IE: MOVETO(x,y,z)

— () The center is the instruction parameter

— Must save file in Unicode format!

— IDs to obtain Item IDs, just go on this or this page. Enter your wanted item and you get ID of them. IE: Want Sword of Valhalla Blade, enter this to one of pages and result:

-http://lineage.pmfun.com/item/4108/Sword-Of-Valhalla-Blade.html

or

-http://l2db.onlinewelten.com/?d=items&id=4108

— Condition judgment instruction,If judges correct executes the next instruction or under with {}the center instruction,

— Otherwise can jump over to the next instruction under or jumps over continuing on with the script.

 

 

COMMANDS:

 

MOVETO(x,Y,Z)

Moves to x,Y,Z. You can check your posistion by clicking: SETUP | OPTION - Pathing | .Cur

 

NPCSEL(name[iD=x])

Chooses NPC. Can select an NPC within the field of range. Noticed that you can select them even if you don't use ID. IE: NPCSEL(Sovin)

 

NPCDLG(name[iD=x])

With NPC dialogue. Opens up the dialog the NPC has.

 

USESKILL (name [iD=x], SELF|PLAYER|PARTY|NPC|PET, Target)

Example: USESKILL(Battle Heal, PLAYER, SE)

Note: It doesn't require ID's

 

Set(L2WALKER, ENABLE|DISABLE)

How it works: Disables/Enables feaures except the script function within L2Walker. Things like auto buff, auto follow, auto fish would quit working if disabled.

 

Set(RANGETYPE, RAND)

How it works: Your character will aimlessly attack the nearest monster, no matter how far the radii is.

 

Set(RANGETYPE, STARTPOS, radii)

How it works: First monster attacked is the central point. Anything outside the radii would not be attacked. Disables all other kinds of ranges.

 

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

How it works: Pre-sets the central point with radii. Anything outside the radii would not be attacked. Disables all other kinds of ranges.

 

Set(RANGETYPE, DEFRANGE)

How it works: Uses Ranges. Disables all other kinds of ranges.

 

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

How it works: Adds another Range Point to a specific location.

 

Set(DEFRANGE, CLEAR)

How it works: Clears all added Ranges.

 

Set(RANGETYPE, DEFPATH)

How it works: Uses Paths. Disables all other kinds of ranges.

 

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

How it works: Adds another Range Point to a specific location.

 

Set(DEFPATH, CLEAR)

How it works: Clears all added Paths.

 

 

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

How it works: Seems to crash L2Walker everytime its used. It might REQUIRE ID numbers unlike the rest.

 

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

 

DLGSEL(name)

Dialogue choice. Look for certain words in dialog and select.

 

GOHOME()

Return to nearest town on death.

 

SAY(writing)

Speaks generally. Anyone in game can view.

 

MSG(writing)

Outside hangs the prompt, Only you can see.

 

UseItem(name[iD=x])

Uses the stage prop. ID is not required.

 

BuyItem(name [ ID=x ],Quantity)

Purchase goods. ID is required.

 

SellItem(name [ ID=x ],Quantity)

Sell goods. ID is required.

 

SaveItem(name [ ID=x ],Quantity)

No Clue what this is used for.

 

LoadItem(name [ ID=x ],Quantity)

No Clue what this is used for.

 

ChangeWaitType(x)

The character stands or sits down

 

StrInDlg(dialogue writing)

Judges in the NPC dialogue dialog box whether has the writing which assigns

 

StrNotInDlg (dialogue writing)

Judges in the NPC dialogue dialog box whether it doesn't have assigned writing

 

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

Character condition judgment.

HP,MP,WEIGHT: is a percentage

CHP,CMP: Health current actual value

WEIGHT: is carries a heavy load the percentage

LV: Your Level

RACE: manner race (human=0, Demon=1,Dark Elf=2, Elf=3, Dwarf=4)

STAND:STAND==1 is standing and STAND==0 is sitting

 

PosInRange(x,Y,Z,Range)

Examines the character current coordinates whether by x,Y,Z is central point range is in the radius center of a circle

 

PosOutRange(x,Y,Z,Range)

Examines the character current coordinates whether by x,Y,Z is central point range is outside the radius center of a circle

 

ItemCount(name[iD=x],* ,Count)

>= Greater than or equal to

> Greater than

== Equal to

!= Does not equal

< Less than

<= Less than or equal to

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

 

CALL(LABEL name)

Transfers the LABEL marking the label address execution,Carries out returns, Must have to have the RETURN instruction

 

useskill (name[iD=x]) —> Something isn't working here.

 

JMP(LABEL name)

Jumps changes to the LABEL marking the label address execution

 

RETURN()

When CALL transfer must use this to return

 

EXIT()

Conclusion script movement

 

DELAY(x)

Retards x millisecond

 

PAUSE()

Pause the Script

 

LABEL(Zone)

Definition Zone,Uses for JMP or CALL

 

SET([ FIGHTSTART|FIGHTSTOP ])

The establishment commencing of action or stops fighting

 

 

Well, this is pretty much it, I can give you some of my scripts I found the most useful on other servers (C3/C4 without auto SSx/BSSx)

 

LABEL(BSSC)

USEITEM(Blessed Spiritshot: C Grade[iD=3949])

CALL(USE)

JMP(BSSC)

———————————–

LABEL(SSC)

USEITEM(Soulshot: C-grade[iD=1464])

CALL(USE)

JMP(SSC)

———————————–

LABEL(BSSB)

USEITEM(Blessed Spiritshot: B Grade[iD=3950])

CALL(USE)

JMP(BSSB)

———————————–

LABEL(SSB)

USEITEM(Soulshot: B-grade[iD=1465])

CALL(USE)

JMP(SSB)

———————————–

LABEL(BSSA)

USEITEM(Blessed Spiritshot: A Grade[iD=3951])

CALL(USE)

JMP(BSSA)

———————————–

LABEL(SSA)

USEITEM(Soulshot: A-grade[iD=1466])

CALL(USE)

JMP(SSA)

———————————–

LABEL(BSSS)

USEITEM(Blessed Spiritshot: S Grade[iD=3952])

CALL(USE)

JMP(BSSS)

———————————–

LABEL(SSS)

USEITEM(Soulshot: S-grade[iD=1467])

CALL(USE)

JMP(SSS)

 

 

And then for example you need both SSC and BSSC auto use:

 

LABEL(SSC)

USEITEM(Soulshot: C-grade[iD=1464])

CALL(USE)

JMP(BSSC)

LABEL(BSSC)

USEITEM(Blessed Spiritshot: C Grade[iD=3949])

CALL(USE)

JMP(SSC)

 

 

If u need any help with a specfic script write here and i might be able to help u

Posted

zanderico that's not possible to do in scripts

 

and monkiiz no, your re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-re-repost of walker script commands is useless.

Posted

couldn't you just loop something until the weapon dissapears....

 

True though.... thats a repost :|

 

label(weapon2)
ItemCount(name[iD=x],* ,Count)
{
UseItem(name[iD=x])
delay(10000)
JMP(weapon1)
}
delay(1000)
JMP(weapon2)

label(weapon1)
ItemCount(name[iD=x],* ,Count)
{
UseItem(name[iD=x])
delay(10000)
JMP(weapon0)
}
delay(1000)
JMP(weapon1)

LABEL(weapon0)
EXIT()

 

I'll let you figure things out from there.... good luck. If you need help with the bot, post in the help section.

 

Topic locked.

Guest
This topic is now closed to further replies.


×
×
  • Create New...