Check the new version here

Popular channels

Comp hacer Script para L2

Intento de guia apestosa sobre Scripts en l2walker (x Z|rÔ.o -tantantantan-)...

Contenidos:
-Introduccion
-GO!
-Comandos
-Nuestro primer script!
-Ejemplos
-En el tintero
-Para terminar





Introduccion:

Para empesar vamos a dejar las kosas klaras:
Esta guia no a orientada a los megawannabis, esta escrita para gente q sabe usar el walker,
q sabe como acer q atake, pille items, etc.

Q es un script¿? Ô.o
Weno, un script es ni mas ni menos q un programa interpretado (no compilado), en este kaso
un programa interpretado x el l2walker, aunq tambien ai scripts de muchas otras kosas.
Utilizaremos un script a la ora de realizar acciones no tan tipikas, como puede ser
vender, comprar, pedir auras, movernos a determinada posicion, atakar, dejar de acerlo...
en fin, muchas kosas q el walker, sin los script, no podria realizar tan facilmente.

Para seguir, sabiendo q esto es un lenguaje de programacion (reducido y escaso si, pero un
lenguage al fin) se explikaran conceptos q kiza a algunos puedan parecerle abstractos o
complejos. Sin duda sera mas facil leer esta guia si tienes conocimientos de programacion
pero intentare expresarme de una manera simple (auq algo xapusera) para q nos entendamos.




GO!:

Los script de l2walker son escritos simplemente en formato texto, asiq para escribirlos
podemos limitarnos a usar el bloc de notas o el wordpad o lo q sea para escribir en texto
plano. Los archivos resultantes los guardaremos en formato .SEC (zizi, en mayuskulas pliz)
Entonces, cada script se guardara en un dokumento de texto... algo asi como podria ser un
.bat o algo parecido.
Aunq podemos usar kualkier editor de texto plano, personalmente rekomendaria usar el maker
de l2walker, ya q ademas de permitirnos escribir, nos permite grabar algunas acciones y esto
facilita un poko l trabajo. Para acceder al maker nos vamos a las opciones del walker, donde
dice run script... pues abajo donde dice make script XD.





Comandos:
Como en la mayoria de lenguajes de programacion (declarativa nooo x dioozz!!!) tendremos
una serie de comandos q aran una serie de kosas.
Los komandos y una breve descripcion (la descripcion la pongo tras "//" como en muchos otros
lenguajes):

MAINSCRIPTS:

GOHOME()
//Vuelve a la ciudad tras palmarla

SAY(Message)
//decir... para decir algo vamos. No lo rekomiendo, como wenos bot nuestra intencion es
pasar inadvertidos

JMP(TEXT)
//Salta a una etiketa

CALL(TEXT)
//Salta (o llama ?) a una etiketa

LABEL(TEXT)
//Etiketa

DELAY(x)
//espera x milisegundos

Pause(x)
//Pausa x milisegundos. Con solo Pause se pausara indefinidamente (asta q lo "despauses" XD)

EXIT()
//Salimos del script

ITEMS:

ITEMCOUNT(ItemName[ID=#],<,1)
{
}
//si el item en kuestion satisface la condicion (<,>,=) realizamos lo q este entre corchetes

USEITEM(ITEMNAME[ID=#])
//usar un item

BuyItem(ITEMNAME[ID=#],#)
//comprar un item
BuyItem(ITEMNAME[ID=#],x;ITEMNAME[ID=#],x)
//comprar mas de un item x ves, separamos x ; cada item a komprar y ponemos en # el id y en
x la kantidad

SavelItem(ITEMNAME[ID=#],#)
//Para guardar en WH
SavelItem(ITEMNAME[ID=#],#;ITEMNAME[ID=#],#)
//para guardar mas de uno en WH

LoadItem(ITEMNAME[ID=#],#)
//sakar del WH
LoadItem(ITEMNAME[ID=#],#;ITEMNAME[ID=#],#)
//sakar mas de uno del WH

NPC's:

NPCSEL(NPCNAME[ID=#])
//selecciona un npc (segun dice no se necesita la id, pero la pongo = xD)

NPCDLG(NPCNAME[ID=#])
//Activamos el dialogo con el npc (lo mizmo de la id...)

DLGSEL(Diologue)
//Seleccionamos una opcion de dialogo (x ejemplo DLGSEL(Buy))

StrInDlg(Diologue)
{
}
//Buska una determinada kadena en la respuesta del npc. si la ai, ejekuta lo q ai entre "{}"

Toon Status:

ChangeWaitType(x)
//levantarse o sentarse... x=0 sentado, x=1 de pie.

CharStatus([CHP|CMP|HP|MP|WEIGHT|LV|SP|RACE|STAND],[>=|>|==|!=|<|<=],num)
{
}
//CHP = Characters HP
//CMP = guess
//HP = HP (%)
//MP = MP (%)
//WEIGHT = duhh (%)
//LV = Level (only Guessing)
//SP = I wonder
//RACE = this is getting difficult
//STAND = checks if your sitting or standing
//...,==,0) Sit
//...,==,1) Stand (i think...unless i got the 0s and 1s mixed up)
//este es uno de los "if" mas interesantes, si se kumple la kondicion, ace lo q sea...

PosInRange(x,y,z,range)
{
}
//si estas dentro del rango determinado, ejekuta los {}

PosOutRange(x,y,z,range)
{
}
//como el anterior, pero si estas fuera...

SET(FIGHTSTART)
//Empiesa a endiñar!!!

SET(FIGHTSTOP)
//Para de endiñar!!

O_O o_O ó_O Ô_o O_ó o_Ö PERO Q KOÑO ME STAS CONTANDO¿?¿?¿??¿¿??¿¿??¿¿??¿?

Pasiensia ombre!, no se me estresennn

Weno, esa lista de comandos asi tal kual esta y sin sabr q kño acer con ella... pues q no
nos sirbe para absolutamente nada :S. Pero trankilos, en un ratito nos serbira, y muxo .

Tambien tengo q decir q la la info de descripcion (asi como ejemplos posteriores q veremos)
la e tomado de: http://www.mpcforum.com/archive/index.php/t-83737.html
y solo ago esta guia x los mankos q no saben ingles XD.



Nuestro primer script!:
Weno, a llegado la ora!, tras mucho komernos el tarro con mis tonterias!, tras no enterarse
de absolutamente nada!, tras buskar y buskar (o no), llego la ora de acer nuestro primer
script! weee!!! XDDD
Bien primero q nada iremos a nuestro editor de texto, preferiblemente el del walker.
Como veremos aki no solo tenemos el editor sino tambien algunas otras opciones q usaremos
mas adelante.

Vamos a acer un script simple, q aga q nuestro pj se mueva un poko y diga algo...
para eso utilizaremos la opcion de REC, q aparece al lado del open save de abajo.

Llevemos nuestro pj a un sitio alejado (sin muchos obstakulos y q no alla nadie en lo
posible), kitamos la opcion de atakar (en basik options) y le damos aora al boton de rec
(no den klik en la pantalla!!!)

Weno, aora el kreador de macros de l2walker esta "viendo" lo q acemos, y grabandolo.
x supuesto este kreador de macros automatiko no puede grabar todo lo q agamos y pensemos
sino los pobres infelices como yo nos kedariaos sin trabajo

Sigamos, agamos click en un sitio cercano a nuestro pj de tal manera q este se mueva
(agan un solo click!)
veran q en el procesador de texto del walker a aparecido una linea...
agan kuando el pj alcance su destino agan otro clik.
repitan el proceso unas 3 o 4 veces, y veran como se an ido agregando lineas en el
procesador de texto.
Aora denle al StopREC.

bien, si todo a ido como deberia, nuestro espectakular script tiene q aber kedad como algo
asi:

MOVETO(115544,-178532,-963)
MOVETO(115200,-179596,-906)
MOVETO(115088,-179661,-906)
MOVETO(114884,-179670,-898)
MOVETO(114848,-179559,-898)

(los numeros entre parentesis no seran los mizmos logikamente )

Weno, aora pongamos un nombre a nuestra macro en la casilla de texto q se enkuentra al lado
del boton de save... algo como script1.SEC, y le damos a save (ai q guardarlo en la carpeta
de scripts).

SIII!! NUESTRO PRIMER SCRIPT, Q EMOCION!!... en fin, es una mierda, lo se, aver si rula.

Nos vamos aora a "Run script" y seleccionamos el nuestro de la lista q alla (si no aparece
le damos a refreskar), una ves seleccionado le damos a run, y no tokamos nada mas.
Si vemos el mapa, veremos q nuestro espectakular imbecil (donde digo imbecil lease pj) se
esta moviendo x donde nosotros nos movimos antes.... impresionante! vale vale, no impresiona
pero al menos es algo :S

Volvamos al editor, vamos al final del todo y le agregamos a nuestro script la siguiente
linea:

SAY(Soi imbecil!!!)

debe kedar asi:

MOVETO(115544,-178532,-963)
MOVETO(115200,-179596,-906)
MOVETO(115088,-179661,-906)
MOVETO(114884,-179670,-898)
MOVETO(114848,-179559,-898)
SAY(Soi imbecil!!!)

(sisi, los numeritos kambian >.<)

La guardamos, le damos a run y.........
ace el rekorido y al parar dice: Soi imbecil!!!
tachannn!!.
Al q alla entendido lo q a pasado, felicitaciones, estas en el largo camino al buen boteo
ermano mio.
El q no alla entendido una papa (weno, y el q alla entendido tambien joder! XD), ya puede
empesar a leer la guia otra ves desde el principio.
A la decima ves q lean esto, ya stan kapacitados para pasar de esta linea jejej.



Ejemplos:
Sisi, ya me e tokado ls kojones, llevo media ora escribiendo esta mierda de guia y ya me e
cansado, espero q allan aprendido algo. sino ya preguntaran mil tonterias :S
En kualkier kaso, vamos a ver unos ejemplos para terminar, no son ejemplos mios, son tomados
de x ai, pero da=, basikamente lo q importa es q sean kapaces de ver como funcionan y asi
mas adelante podran acer los propios.

Vamos a analizar este pedazo de ejemplo.

INSIDE DWARFT TOWN SCRIPT:

Label(Check)
//este label sirbe para acer un bukle eterno, al llegar al final saltara nuevamente aki
//para asi rekomensar (do)

DELAY(100)
POSINRANGE(116788,-181923,-1376,2000)//Vemos en q parte de la ciudad estamos
{
Call(InTownNorth) //si stamos en el norte, ejekutamos lo korrespondiente
}

DELAY(100)
POSINRANGE(115577,-178595,-1376,1500)//Vemos en q parte de la ciudad estamos
{
Call(InTownSouth) //si stamos en el sur... pues eso
}

DELAY(100)
ITEMCOUNT(Lesser Healing Potion[ID=1060],<,5)
{
Call(ToTown) //si tenemos menos de 5 pociones, ejekutamos ToTown
}

DELAY(5000)
Call(Check)
//tras 5 segundos, si no se ejekuto nada de lo anterior, rekomensamos l script (while)


///////////////////////////////////////////////////////////////////////
// //
// Go To Town //
// //
// //


Label(ToTown) //aki saltariamos si tubiesemos menos de 5 pociones
CharStatus(HP,=,100) //si stamos full....
{
SET(FIGHTSTOP) //paramos de pelear
UseItem(Scroll of Escape[ID=736]) //usamos un scroll para volver a la ciudad
DELAY(20000) //esperamos al scroll
DELAY(100) //esperramos a q kargue
POSOUTRANGE(116600,-180014,-1376,4000)//vemos si stamos en la ciudad
{
Call(ToTown) //si no tamos, vamos de nuevo arriba
}
Call(BuyItems) //si estamoss en la ciudad, nos vamos a komprar los items
}
SET(FIGHTSTART)
Call(ToTown)

Label(BuyItems) //aki vamos a parar si se ejekuta el call(BuyItems) de arriba

PosOutRange(115898,-177401,-896,4000)
{
Call(ToTown) //si despues de q se ejekuto el BuyItems, tabamos fuera de la ciudad, volvemos
// a la ciudad... (todas estas llamadas son para evitar errores, paranoia del programador)
}


//////////////////////////////IN/////////////////////////////////////////
//este rollo es para centrarnos en la ciudad, dependiendo de en q parte akabamos
//con el scroll
LABEL(InTownNorth)
POSINRANGE(116788,-181923,-1376,2000)//Checks if in Town (North Part)
{
MOVETO(116788,-180190,-1214)//Start
MOVETO(116276,-179596,-1129)
MOVETO(115896,-179223,-1033)
MOVETO(115574,-178870,-991)
MOVETO(115515,-178736,-978)
}

LABEL(InTownSouth)
POSINRANGE(115506,-178585,-963,1500)//Checks if in Town (South Part)
{
MOVETO(115506,-178585,-963)
}

MOVETO(115506,-178585,-963)//Center
//////////////////////////////Out///////////////////////////////////////



///////////////////////////////////////////////////////////////////////
// //
// Enter Warehouse //
// //
// //

//comprobamos nuestros items, y si tenemos algo para guardar, iremos a guardarlo.


ITEMCOUNT(Stem[ID=1864],>,0)
{
CALL(GoToWH)
}

ITEMCOUNT(Varnish[ID=1865],>,0)
{
CALL(GoToWH)
}

ITEMCOUNT(Suade[ID=1866],>,0)
{
CALL(GoToWH)
}

ITEMCOUNT(Animal Skin[ID=1867],>,0)
{
CALL(GoToWH)
}

ITEMCOUNT(Thread[ID=1868],>,0)
{
CALL(GoToWH)
}

ITEMCOUNT(Iron Ore[ID=1869],>,0)
{
CALL(GoToWH)
}

ITEMCOUNT(Coal[ID=1870],>,0)
{
CALL(GoToWH)
}

ITEMCOUNT(Charcoal[ID=1871],>,0)
{
CALL(GoToWH)
}

ITEMCOUNT(Animal Bone[ID=1872],>,0)
{
CALL(GoToWH)
}

ITEMCOUNT(Silver Nugget[ID=1873],>,0)
{
CALL(GoToWH)
}


CALL(DontGoToWH) //si llegamos asta aki es q no tenemos nada q guardar, asiq salteamos lo de
// GoToWH

Label(GoToWH)
////////////////////////////In//////////////////////////////////////////
//vamos asta el WH
MOVETO(115544,-178532,-963)//Center: To WH keeper Airy
MOVETO(115200,-179596,-906)
MOVETO(115088,-179661,-906)
MOVETO(114884,-179670,-898)
MOVETO(114848,-179559,-898)//Beside WH Keeper Airy
////////////////////////////Out/////////////////////////////////////////

POSINRANGE(114815,-179660,-872,10)//comprobamos q estemos donde debemos
{
NPCSEL(Airy)//seleccionamos el npc
DELAY(1000)//le damos tiempo a pensarselo XD (x si ai lagg o algun retardo)

Label(Itemdeposit) //mientras nos keden items, seguiremos aki depositandolos
NPCDLG(Airy) //iniciamos el dialogo con el npc Airy
DELAY (1000)
DLGSEL(Deposit Item) //le decimos q keremos depocitar items
DELAY(1000)
}

//de aki para abajo comprobamos los items q tenemos y depositamos lo q sea
ITEMCOUNT(Stem[ID=1864],>,0)
{
SaveItem(Stem[ID=1864],9999)
CALL(Itemdeposit)
MSG(Deposited Stem)
}

ITEMCOUNT(Varnish[ID=1865],>,0)
{
SaveItem(Varnish[ID=1865],9999)
CALL(Itemdeposit)
MSG(Deposited Varnish)
}

ITEMCOUNT(Suade[ID=1866],>,0)
{
SaveItem(Suade[ID=1866],9999)
CALL(Itemdeposit)
MSG(Deposited Suade)
}

ITEMCOUNT(Animal Skin[ID=1867],>,0)
{
SaveItem(Animal Skin[ID=1867],9999)
CALL(Itemdeposit)
MSG(Deposited Animal Skin)
}

ITEMCOUNT(Thread[ID=1868],>,0)
{
SaveItem(Thread[ID=1868],9999)
CALL(Itemdeposit)
MSG(Deposited Thread)
}

ITEMCOUNT(Iron Ore[ID=1869],>,0)
{
SaveItem(Iron Ore[ID=1869],9999)
CALL(Itemdeposit)
MSG(Deposited Iron Ore)
}

ITEMCOUNT(Coal[ID=1870],>,0)
{
SaveItem(Coal[ID=1870],9999)
CALL(Itemdeposit)
MSG(Deposited Coal)
}

ITEMCOUNT(Charcoal[ID=1871],>,0)
{
SaveItem(Charcoal[ID=1871],9999)
CALL(Itemdeposit)
MSG(Deposited Charcoal)
}

ITEMCOUNT(Animal Bone[ID=1872],>,0)
{
SaveItem(Animal Bone[ID=1872],9999)
CALL(Itemdeposit)
MSG(Deposited Animal Bone)
}

ITEMCOUNT(Recipe: Compound Braid[ID=2144],>,0)
{
SaveItem(Recipe: Compound Braid[ID=2144],9999)
CALL(Itemdeposit)
MSG(Deposited Recipe: Compound Braid[ID=2144])
}

ITEMCOUNT(Recipe: Synthesis Cokes[ID=2143],>,0)
{
SaveItem(Recipe: Synthesis Cokes[ID=2143],9999)
CALL(Itemdeposit)
MSG(Deposited Recipe: Synthesis Cokes[ID=2143])
}


/////////////////////////////IN//////////////////////////////////////////
MOVETO(114897,-179671,-898)
MOVETO(115115,-179681,-906)
MOVETO(115568,-178639,-970)//Center
/////////////////////////////Out////////////////////////////////////////

Label(DontGoToWH)

//tras ir o no al WH segun alla o no exo falta, acemos un rekorrido x las tiendas,
//en plan "amonos de shopping!!"

// //
// Exit Warehouse //
///////////////////////////////////////////////////////////////////////


///////////////////////////////////////////////////////////////////////
// //
// Elders Hut //
// //
// //

//MOVETO(115828,-178531,-980)
//MOVETO(115991,-178519,-976)
//MOVETO(116075,-178518,-976)//Elders House Center
//MOVETO(115505,-178528,-960)//Center

// //
// Exit Elders Hut //
///////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////
// //
// Magic Shop //
// //
// //

//veremos si tenemos scroll, potions y soulshot y si no tenemos, los kompramos
//(los soulshot estan comentados, asiq no se ejekutara, si keremos q se ejekute, logikamente
//kitamos los "//")

ITEMCOUNT(Scroll of Escape[ID=736],<,10)
{
Call(GoToMagicShop)
}
ITEMCOUNT(Lesser Healing Potion[ID=1060],<,50)
{
Call(GoToMagicShop)
}
/ITEMCOUNT(Soulshot: No Grade[ID=1835],<,2000)
/{
/Call(GoToMagicShop)
/}




ITEMCOUNT(Recipe: Necklace of Wisdom[ID=1803],>,0)
{
Call(GoToMagicShop)
}
ITEMCOUNT(Recipe: Hard Leather Shirt[ID=2173],>,0)
{
Call(GoToMagicShop)
}
ITEMCOUNT(Recipe: Boots[ID=2175],>,0)
{
Call(GoToMagicShop)
}

ITEMCOUNT(Recipe: Leather Shoes[ID=1795],>,0)
{
Call(GoToMagicShop)
}
ITEMCOUNT(Recipe: Hard Leather Shirt[ID=2173],>,0)
{
Call(GoToMagicShop)
}
ITEMCOUNT(Recipe: Leather Stockings[ID=1797],>,0)
{
Call(GoToMagicShop)
}
Call(GoBack)



LABEL(GoToMagicShop)

//si dadas las condiciones anteriores decidimos ir al magicshop, aora vendemos y kompramos
//lo q ace falta.
/////////////////////////////IN//////////////////////////////////////////
MOVETO(115674,-177941,-926)
MOVETO(115756,-177606,-920)
MOVETO(115778,-177480,-911)
MOVETO(115858,-177362,-911)//Trader Garita
/////////////////////////////Out////////////////////////////////////////
POSINRANGE(115898,-177401,z,10)
{
/////////////////////////////Buy/////////////////////////////////////

Label(BuyMagicShop)
NPCSEL(Garita)
DELAY(1000)
NPCDLG(Garita)
DELAY (1000)
DLGSEL(Buy)
DELAY(1000)

//SOE
ITEMCOUNT(Scroll of Escape[ID=736],<,10)
{
BuyItem(Scroll of Escape[ID=736],1)
MSG(Bought SOE)
CALL(BuyMagicShop)
}

//Lesser Healing Pots
ITEMCOUNT(Lesser Healing Potion[ID=1060],<,50)
{
BuyItem(Lesser Healing Potion[ID=1060],5)
MSG(Bought Lesser Healing Potion)
CALL(BuyMagicShop)
}



/////////////////////////////Sell/////////////////////////////////////


Label(SellMagicShop)
NPCSEL(Garita)
DELAY(100)
NPCDLG(Garita)
DELAY (100)
DLGSEL(Sell)
DELAY(100)


//Selling Recipe: Necklace of Wisdom
ITEMCOUNT(Recipe: Necklace of Wisdom[ID=1803],>,0)
{
SellItem(Recipe: Necklace of Wisdom[ID=1803],1)
MSG(Sold Recipe: Necklace of Wisdom)
CALL(SellMagicShop)
}

//Recipe: Boots
ITEMCOUNT(Recipe: Hard Leather Shirt[ID=2173],>,0)
{
SellItem(Recipe: Hard Leather Shirt[ID=2173],1)
MSG(Sold Recipe: Hard Leather Shirt)
CALL(SellMagicShop)
}

//SellingRecipe: Hard Leather Shirt
ITEMCOUNT(Recipe: Boots[ID=2175],>,0)
{
SellItem(Recipe: Boots[ID=2175],>,0)
MSG(Sold Recipe: Boots[ID=2175])
CALL(SellMagicShop)
}

//Apprentice's Earring[ID=112]
ITEMCOUNT(Apprentice's Earring[ID=112],>,0)
{
SELLItem(Apprentice's Earring[ID=112],1)
MSG(Sold Apprentice's Earring[ID=112])
CALL(SellMagicShop)
}

//Recipe: Leather Shoes[ID=1795]
ITEMCOUNT(Recipe: Leather Shoes[ID=1795],>,0)
{
SELLItem(Recipe: Leather Shoes[ID=1795],1)
MSG(Sold Recipe: Leather Shoes[ID=1795])
CALL(SellMagicShop)
}

//Recipe: Hard Leather Shirt[ID=2173]
ITEMCOUNT(Recipe: Hard Leather Shirt[ID=2173],>,0)
{
SELLItem(Recipe: Hard Leather Shirt[ID=2173],1)
MSG(Sold Recipe: Hard Leather Shirt[ID=2173])
CALL(SellMagicShop)
}

//Recipe: Leather Stockings[ID=1797]
ITEMCOUNT(Recipe: Leather Stockings[ID=1797],>,0)
{
SELLItem(Recipe: Leather Stockings[ID=1797],1)
MSG(Sold Recipe: Leather Stockings[ID=1797])
CALL(SellMagicShop)
}

//Recipe: Compound Braid[ID=2144]
ITEMCOUNT(Recipe: Compound Braid[ID=2144],>,0)
{
SELLItem(Recipe: Compound Braid[ID=2144],1)
MSG(Sold Recipe: Compound Braid[ID=2144])
CALL(SellMagicShop)
}

//Recipe: Synthesis Cokes[ID=2143]
ITEMCOUNT(Recipe: Synthesis Cokes[ID=2143],>,0)
{
SELLItem(Recipe: Synthesis Cokes[ID=2143],1)
MSG(Sold Recipe: Synthesis Cokes[ID=2143])
CALL(SellMagicShop)
}



////////////////////////////////IN///////////////////////////////////////
MOVETO(115791,-177493,-911)
MOVETO(115733,-177745,-920)
MOVETO(115544,-178532,-963)//Center
////////////////////////////////Out/////////////////////////////////////
}

// //
// Exit Magic Shop //
///////////////////////////////////////////////////////////////////////

//nos salimos de la tienda y nos vamos A PELEARRR!!!
///////////////////////////////////////////////////////////////////////
// //
// Back To Fight //
// //


Label(GoBack)

////////////////////////////////IN///////////////////////////////////////
MOVETO(115104,-178216,-919)//Beside GK
////////////////////////////////Out/////////////////////////////////////
}
POSINRANGE(115084,-178194,z,10)
{
NPCSEL(Wirphy)
DELAY(1000)
NPCDLG(Wirphy)
DELAY (1000)
DLGSEL(Quest)
DELAY(1000)
StrNotInDlg(Say you will help)
{
Call(WirpyPort)
}

DELAY (1000)
DLGSEL(Say you will help)
DELAY (1000)

Label(WirpyPort)
NPCDLG(Wirphy)
DELAY (1000)
DLGSEL(Go to another village)
DELAY(1000)
DLGSEL(The Northeast Coast)
DELAY(20000)

DELAY(100)
POSINRANGE(116788,-181923,-1376,2000)//Checks if in Town (North Part)
{
Call(InTownNorth)
}

DELAY(100)
POSINRANGE(115577,-178595,-1376,1500)//Checks if in Town (South Part)
{
Call(InTownSouth)
}

/////////////////////////////////IN////////////////////////////////////
//START PATH BACK TO FIGHT SCENE

//////////////////////////////////Out//////////////////////////////////
SET(FIGHTSTART)

Call(Check) //salto al inicio otra ves...


Weno, vale, no me kurre mucho la explikacion, es un ejemplo muy largo, pero mas o menos
supongo q a kedado klaro, sino a kedado klaro, ya preguntan lo q sea.
X FAVOR, NO PREGUNTEN SI NO AN LEIDO TODO MUCHAS VECES Y SE AN ARTADO DE EXPERIMENTAR
Y BUSKAR X VOSOTROS MIZMOS.



En el tintero:
Antes de terminar con este intento de guia keda decir un par de kosas.
Primero, si nuestro imbeecil muere, la script mas simple es la de volver al punto de pelea,
para krear este tipo de scripts nos vasta kon la orden SET(FIGHTSTOP), MOVETO(x,y,z) y
SET(FIGHTSTART).

Para este tipo de scripts simples es de mucha utilidad el REC y la opcion disponible entre
las basic, q premite ejekutar un script tras morir.

Tambien keda agregar q entre las opciones del editor de scripts del walker se enkuentra
la de ver los id y nombres de los npc cerkanos y mas opciones, q facilitaran acer scripts
no tan sencillos



Para terminar:
Para finalizar este tutorial o komo prefieran llamarlo, keda decir q aunq este posteado en
darkcheats, en ningun kaso pretendo q les pertenece ni nada de eso, y q no me molesta en
lo mas minimo q rule x donde sea, a la gente de darkcheats no les debo nada, y si escribo
un tuto es para q las personas aprendan, asiq si para q mas personas aprendan, alguna otra
page kiere agarrar este tutorial y reproducirlo, no tego ningun problema, aunq me gustaria
q mantubiesen mi firma como autor material. (a pesar de q logikamente no estoi inventando
nada, solo reproduzko kosas q otras personas ya an escrito, y aporto mi granito de arena)

Mas kosas, yo escribo komo me sale del nabo, y me parece q es perfectamente legible,
si no te gusta como escribo, o me ayudas a simplifikar el lenguaje para q deje de ser la
kk antikuada q es, kon su asko de real akademia, o pasas de mi y no lees la guia, a mi me
importa una mierda

Y ya si terminando, sin ninguna duda kedan kosas inconklusas, mal explikadas, sin terminar,
para eso esta el foro y todos vosotros, y me gustaria q me marquen todos los errores q vean,
de tal manera q esto se valla editando y mejorando constantemente, y q aporten vuestros
ejemplos.

Guia sacada de http://www.darkcheats.org/foros/showthread.php?t=1840&highlight=script+walker+l2+guia
0
1
0
1
1Comment

Sabes si hay un comando para usar de script de ... target un char y de "Evaluate" Rec, q de restart y entre de nuevo el mismo char..

0