WoW Slayers
Este foro no es el foro oficial de WoW Slayers Server, es usado únicamente como un modelo, por lo que el ingreso y acceso al mismo no se considera válido.
La página web y foro verdaderos se establecerán en las redes sociales de WoW Slayers Server.
Saludos.
Atte.: MJ Aslazor
Administrador General de WoW Slayers Server
WoW Slayers
Este foro no es el foro oficial de WoW Slayers Server, es usado únicamente como un modelo, por lo que el ingreso y acceso al mismo no se considera válido.
La página web y foro verdaderos se establecerán en las redes sociales de WoW Slayers Server.
Saludos.
Atte.: MJ Aslazor
Administrador General de WoW Slayers Server
WoW Slayers
¿Quieres reaccionar a este mensaje? Regístrate en el foro con unos pocos clics o inicia sesión para continuar.

WoW Slayers

Bienvenidos al foro de WoW Slayers Server, esperamos tengan una buena estadía en él.
 
ÍndicePortalGaleríaBuscarÚltimas imágenesRegistrarseConectarse
El Staff del WoW Slayers Server, te da la cordial bienvenida a este tu foro, puedes participar de ellos por medio de tus aportes y concejos o ayuda para quienes lo necesiten. Esperamos tu estancia en el foro al igual que el servidor, sea grata para ti como para nosotros.
Te recomendamos visitar nuestro panel de reglas, para que así puedas evitar recibir una sanción momentánea o permanente en el foro y/o servidor.
El sistema de donaciones, está abierto, para todos los que deseen colaborar con el servidor con lo que puedan. Agradecemos anticipadamente por la ayuda que nos brindan.
La Administración General les informa de que el servidor se encuentra no disponible debido a que se están haciendo los arreglos del mismo. Se harán las invitaciones correspondientes vía email a todos los usuarios de este foro y facebook.

 

 [Tutorial] Macros & Scripts WoW

Ir abajo 
2 participantes
AutorMensaje
Zarom
Maestro de Juego
Maestro de Juego
Zarom


Mensajes : 3
Fecha de inscripción : 26/07/2012

[Tutorial] Macros & Scripts WoW Empty
MensajeTema: [Tutorial] Macros & Scripts WoW   [Tutorial] Macros & Scripts WoW Icon_minitimeMiér Ago 15, 2012 10:53 pm


Buenas, se que esto sera muy interesante para los que quieran crecer en el juego, espero les guste.

Ventana de Macros

Para acceder a la ventana de Macros conozco tres formas distintas. La primera consiste en salir al menú del juego pulsando Esc y haciendo click sobre el botón "Macros". La segunda es escribir /macro en el chat del juego. La tercera es pulsando el boton con forma de ordenador que está junto a la barra del lag, que nos llevará al menú del juego y podremos hacer click sobre el botón "Macros".

Una vez dentro, crearemos una nueva macro pulsando el boton "New". Debemos elegir un nombre y un Icono antes de dar por finalizada la creación del slot de macro. Al pulsar el botón fin (se activa al poner nombre y poner icono) tendreis una macro vacía donde empezar.

Empezamos a trabajar
Algunos comandos para hacer macros son los emotes que todos usamos, como /beg (implorar), /salute (saludo marcial), /cry (llorar), /s ó /say (decir)... Otros son un poco distintos:

[Tutorial] Macros & Scripts WoW Worldofwarcraftcommandlistof8

Comandos de Macro y Script

Antes de empezar, decir que esto no es más que un lenguaje más de programación y sigue las reglas básicas lógicas que otros lenguajes. Se pueden usar tags y se pueden definir alias para los comandos. Los alias son abreviaturas que les damos a los comandos para que sean más cortos y reconocibles, por ejemplo:

/Script Pilla=PickupInventoryItem();

Así­ cada vez que tengamos que utilizar el comando ese, nos bastará con poner Pilla(x,y) para "pillar" el objeto que haya en el saco X slot Y.

Bueno, ahora que sabeis un poco más, vamos al meollo:
/in X Este comando se usa para temporizar las acciones. Por lo que he podido comprobar, sólo funciona acompañado de los comandos de chat (/s, /w, /r, /g) y no con las habilidades o hechizos (/cast).[/li][/*]
Ejemplo:
/salute
/in 3 /say Hola, %t. Es un placer verte de nuevo.

¿Qué hace esta macro simple? En primer lugar, hace el saludo marcial y a los tres segundos dice por el normal "Hola, NOMBREDEPJSELECCIONADO. Es un placer verte de nuevo"

%t es un tag que significa Target... se utiliza para no tener que escribir los nombres de cada pj o de cada pnj.

PickupInventoryItem(z) Este es un comando de script. Coge el objeto que lleva el pj en el slot z. Si ya tiene un objeto cogido, lo cambia por el seleccionado manteniendo el recien cogido "en el aire".[/li][/*]
Ejemplo:
/Script PickupInventoryItem(1);

¿Qué hace este script? Coje el casco y lo mantiene "en el aire" igual que si lo hubiéramos cogido con el ratón y no lo hubiéramos posado.

PickupContainerItem(x,z) Este comando de script coge el objeto ubicado en el saco x, hueco z. Si ya tiene un objeto cogido, lo cambia por el seleccionado manteniendo el recien cogido "en el aire".[/li][/*]
Ejemplo:
/Script PickupContainerItem(0,1);

¿Qué hace este script? Coge el objeto que se encuentra Backpack, slot superior derecho y lo mantiene "en el aire" igual que si lo hubiéramos cogido con el ratón y no lo hubiéramos posado.

UseInventoryItem(z[,y]) Este comando de script utiliza el objeto que lleva puesto el pj en el slot z. El valor booleano (verdadero=1 y falso=0) "y" nos indica si el uso del objeto en cuestión tiene por objetivo el lanzador.[/li][/*]
Ejemplo 1:
/Script UseInventoryItem(10, 1);

¿Que hace este script? Utiliza, por ejemplo, los Gauntlets of the Sea que lleva puesto el pj, curandole a él.

Ejemplo 2:
/Script UseInventoryItem(10);

¿Que hace este script? Utiliza, por ejemplo, los Gauntlets of the Sea que lleva puesto el pj, curando a quien tenga seleccionado.

UseContainerItem(x,z[,y]) Este comando de script utiliza el objeto ubicado en el saco x, slot z. y representa un valor booleano (verdadero o falso) que indica si el uso recae en el lanzador y que no es necesario usar normalmene. Si el objeto es fungible se gastará uno cada vez que se ejecute la lí­nea.[/li][/*]
Ejemplo:
/Script UseContainerItem(0,16);

¿Que hace este script? Utiliza, por ejemplo, una mana potion que está en el backpack, en la esquina inferior derecha.

CastSpellByName("Habilidad(Rango)"[, y]) Este comando de script se utiliza para usar una habilidad de X rango. El valor booleano "y" no es necesario ponerlo, a menos que se desee que el efecto del cast recaiga en el lanzador.[/li][/*]
Ejemplo 1:
/script CastSpellByName("Sunder Armor(rank 2)");

¿Qué hace este script? Lanza el Sunder Armor de nivel 2, siempre y cuando se cumplan las condiciones para ello (que haya un enemigo seleccionado, en este caso). Si la habilidad no tiene rango, simplemente se dejan los parentesis en cuestión (CastSpellByName("Battle Stance()") por ejemplo...

/script CastSpellByName("Sunder Armor(rank 2)", 1);

¿Qué hace este script? Lanza el Sunder Armor de nivel 2 sobre el propio lanzador, lo cual es una tonterí­a... Suele estar bien para otro tipo de hechizos como de curación o mejora de atributos o resistencias.
/cast Este comando de macro
hace lo mismo que el comando anterior, pero se usa en macro y no en script.[/li][/*]
Ejemplo:
/cast ("Battle Stance()")

/target Este comando de macro se usa para seleccionar un objetivo.[/li][/*]
Ejemplo 1:
/target NearestEnemy()
/rude
/in 3 /s Desparramar tus intestinos, mendrugo...

¿Qué hace esta macro? Selecciona al enemigo mas cercano, le hace un gesto obsceno y, a los tres segundos, le dice la frasecita.

Ejemplo 2:
/target NearestFriend()
/bow
/in 3 /s Lok'tar %t

¿Qué hace esta macro? A estas alturas, creo que ya os haceis una idea...
/logout: Comando macro. Salir de la sesión.[/li]

[li]/Quit: Comando macro. Salir del juego.[/li]

[li]GetBindLocation(): Devuelve el nombre de donde esta vinculada la piedra.[/li][/*]
Ejemplo:
/Script SendChatMessage("Suelo Hospedarme en " GetBindLocation() ". Ven a verme.", Say, "Darnassian");

DoEmote("emote"[, "target"]): Hace un emote, que puede ir dirigido o no.[/li][/*]
Ejemplo:
/Script DoEmote("Le saca la lengua a", "Target");

CastShapeshiftForm(x): Cambia el estado del Pj tal y como se detalla a continuación.[/li][/*]

Druida:


    1 = Forma Oso[/li]

    2 = Forma Acuática[/li]
    [/*]
    3 = Forma Gato[/li]
    [/*]
    4 = Forma Viaje[/li]
    [/*]
    5 = Forma Moonkin[/li][/*]

    Rogue


    1 = Sigilo[/li][/*]

    Warrior


    1 = Batalla[/li]
    [/*]
    2 = Defensivo[/li]
    [/*]
    3 = Beserker[/li][/*]

    Ejemplo:
    /Script CastShapeshiftForm(1);

    (Si es un Druida se convertirá en oso, si es Rogue pasará al modo sigilo y si es warro se pondrá en posición de batalla. Con las demás clases no hace nada)


    Más comandos:
    AttackTarget() - Atacar la unidad seleccionada.[/li][/*]
    ClearTarget() - Liberar la selección.[/li][/*]
    TargetLastEnemy() - Volver a seleccionar al Último enemigo.[/li][/*]
    TargetLastTarget() - Volver a seleccionar al la Última unidad seleccionada (puede ser amigo o enemigo).[/li][/*]
    TargetNearestEnemy() - Seleccionar al enemigo más cercano.[/li][/*]
    TargetNearestFriend() - Seleccionar al amigo más cercano.[/li][/*]
    TargetNearestPartyMember() - Seleccionar al miembro de la party más cercano.[/li][/*]
    TargetUnit("unit") - Seleccionar unidad.[/li][/*]
    UnitHealth("unit") - Vida de la unidad.[/li][/*]
    UnitHealthMax("unit") - Vida máxima de la unidad.[/li][/*]
    UnitMana("unit") - Maná (o rage, energí­a,..) de la unidad.[/li][/*]
    UnitManaMax("unit") - Maná máximo(o rage, energí­a,..) de la unidad.[/li][/*]

    La condicionalidad en las macros:
    Ya sabemos algo de lo que se puede hacer, pero ahora podemos necesitar hacer una u otra cosa según nos convenga... Por ejemplo:
    Juan se ha hecho pupa en un dedo.[/li][/*]
    Si el dedo está dolorido(1), su mami se lo soplará.[/li][/*]
    Si el dedo está sangrando(2), su mami le pondrá una tirita.[/li][/*]
    Si el dedo está colgando(3), su mami gritará mientras corren a Urgencias.[/li][/*]

    ¿Cómo decimos esto, pero en script?:

    /script d=dedo; m=mami; If d=1 Then m(soplar(d)) Else If d=2 Then m(tirita(d)) Else m(gritaycorrecon(d)); End; End; End;

    No, no... no estoy loco.. ahora os lo explico. Las condicionales se construyen igual que en el castellano:

    If...Then...Else...End=Si....Entonces...Sinoesloanterior...Fin

    Así podemos hacer cosas como decir cosas distintas según la vida que le quede a un mob, usar la curación oportuna dependiendo de la vida, lanzar un hechizo u otro según el maná que nos quede, lanzar un Heroe Strike o un Mortal Strike según la vida del mob...

    Para empezar, algo sencillito... quiero que mi pj diga "Vaya peazo mula que está hecho este...!!" si el objetivo seleccionado tiene mas de 20K de vida:


    /Script If UnitHealthMax("Target")>=20000 Then SendChatMessage("Vaya peazo mula que está hecho este...!!", Say, "Darnassian"); End;

    Destripado dice:

    /Script Si laVidaMaximadelaUnidad("Unidadseleccionada") es mayor o igual que veintemil Entonces MandaunMensajeChat("Conestemensaje", Porestecanal, "Enesteidioma"); Findecondición;



    Probemos con otro ejemplo sencillo... quiero que pj, que tiene 2K puntos de vida, tome una Greater Healing Potion si tiene hasta 1600, pero quiero que se tome una Superior Healing Potion si tiene hasta 1200, pero una Major Healing Potion si la cosa baja más (guardará las pociones en el saco x1, de la mas pequeña a la más grande desde la esquina superior izquierda...) ¿Cómo ponerlo en un sólo botón?

    Veamos... ahora hagámoslo al revés... destripemos el script antes de hacerlo... dirí­a algo así:

    /Script Cuando digo Vida Es igual que decir MiralosPuntosdeVidadelaUnidad("MiPj");

    /Script Vida=UnitHealth("Player");

    Si Vida Es mayor de 1599

    If Vida>1599

    Entonces CogeyUsadelSaco(x1,1)

    Then UseContainerItem(x1,1)

    Sinoesasíentonces Si Vida Es mayor de 1199

    Else If Vida>1199

    Entonces CogeyUsadelSaco(x1,2)

    Then UseContainerItem(x1,2)

    Sinoesasí­entonces CogeyUsadelSaco(x1,3);

    Else UseContainerItem(x1,3);

    Findecondicional;

    End;

    Findecondicional;

    End;

    En fin de cuentas, el resultado serí­a una larga y Única lí­nea que dirá:

    /Script Vida=UnitHealth("Player"); If Vida>1599 Then UseContainerItem(x1,1) Else If Vida>1199 Then UseContainerItem(x1,2) Else UseContainerItem(x1,3); End; End;

    Como os abreis fijado, cada condicional que se abre hay que cerrarla. A cada If le corresponde un End. Otra cosa en la que os fijaréis es que acabamos de meter unas condicionales dentro de otras... A eso se le llama condicionales anidadas. Cuando anideis condicionales recordad que debeis cerrar todas las que hayais abierto. Un método para asegurarse de que siemrpe se cierran es contar los If y poner el mismo número de End al final, pero otros prefieren escribir el End según escriben el If... cada cual tiene su método. Buscad el vuestro.
    Otro método es que cada vez que escribais un If inmediatamente escribais el End correspondiente, y escribir entre el If y el End y es inprobable que os falten End's

    Información importante sobre contenedores, bolsas, sacos y otros berengenales


    Esta lista indica en qué slot va qué cosa en un personaje.

    1 - Head
    2 - Neck
    3 - Shoulders
    4 - Shirt
    5 - Chest
    6 - Waist
    7 - Legs
    8 - Feet
    9 - Wrist
    10 - Hands
    11 - Finger (superior)
    12 - Finger (inferior)
    13 - Trinket(Superior)
    14 - Trinket(inferior)
    15 - Back
    16 - Main Hand
    17 - Off Hand
    18 - Ranged
    19 - Tabard
    20 a 23 - Bag (la 20 es la mas cercana al Backpack. Esto se usa para coger los sacos y cambiarlos o cosas por el estilo)

    [Tutorial] Macros & Scripts WoW Slotsjk3


    Los sacos:

    BagPack - 0
    Hacia la izda aumenta el número hasta el 4, que es el saco pegado a la barra del lag.

    [Tutorial] Macros & Scripts WoW Sacosmo3

    Dentro de un saco:

    Los Slots se numeran comenzando por el 1, de izda. a dcha. y de arriba a abajo, igual que si leyéramos.

    [Tutorial] Macros & Scripts WoW Bolsaok6 [Tutorial] Macros & Scripts WoW Backpackml0

    Algunos ejemplos de macro de uso habitual:
    Para llamar a la montura:

    /script UseContainerItem(4, 4);
    /in 3 /s *Pepito Grillo emite un gorjeo extraño y aparece su gallina mecánica, sobre la que monta como un rayo*

    Destripado:

    /script UseContainerItem(4 [este es el saco de la izda del todo], 4 [este hueco corresponde al superior derecha de un saco de 12 slots]);
    /in 3 [en ese tiempo] /s [digo esto] *Pepito Grillo emite un gorjeo extraño y aparece su gallina mecánica, sobre la que monta como un rayo*
    [/*]
    Para cambiarse un Revenant Girdle por un Gem-Studded Leather Belt y usarlo(dos clicks):

    /script UseInventoryItem(6); PickupInventoryItem(6); PickupContainerItem(4,9);

    Destripado:

    /script UseInventoryItem(6)[Usa un objeto del inventario del pj, el slot 6: el cinto puesto.]; PickupInventoryItem(6)[Cojo el cinto puesto]; PickupContainerItem(4,9)[Al coger el cinto que esta en (4,9) y tener el otro cogido, sustituye uno por otro];


    Este script funciona en dos tiempos... Primer tiempo, usa y cambia. Si no puede usar, simplemente cambia. Segundo tiempo, usa y cambia. Como este sí lo puede usar, lanza el hechizo de curación y después lo cambia por el anterior.[/*]


    Algunas macros mias:

    Aqui­ expongo varias macros con el nombre que les tengo puesto, pero sin comentar. Las he hecho a petición de varios jugadores y yo mismo las uso (salvo las de magia Very Happy ).

    "Curación dos objetos" :
    /script TargetUnit("Player"); a=PickupInventoryItem; c=UseInventoryItem; b=PickupContainerItem; c(6); c(10); a(6); b(4,9); a(10); b(4,5); TargetLastEnemy();[/li]
    [/*]
    "Poción según daño":
    /script vida=UnitHealth("Player"); vidamax=UnitHealthMax("Player"); (vida/vidamax)*100=V; UnitTarget("Player"); If V>65 Then UseContainerItem(4,1) Else UseContainerItem(4,2); End; TargetLastEnemy();[/li]
    [/*]
    "Autohealth según daño":
    /script v=UnitHealth("Player"); vmax=UnitHealthMax("Player"); H=CastSpellByName(); (v/vmax)*100=R; UnitTarget("Player"); If R>85 Then H(Healing Wave(Rank 2)) Else If R>75 Then H(Healing Wave(Rank 3)) Else R(Healing Wave(Rank 4)); End; End; End; TargetLastEnemy();[/li][/*]
    (Recordad que están escritos en una línea)

    Aleatoriedad:

    "Azar"
    /script a=GetTime(); b=strsub(a, -2); c=ceil((b+1)/X);[/li][/*]


    Explicación:

    Con el comando GetTime() adquiero la hara del server en segundos y la pongo en a.[/li][/*]
    Ahora, con la función strsub(a, -2) elijo y guardo los dos últimos números (son milisegundos) que contiene a y los guardo en b.[/*]
    Finalmente, divido b+1(si no lo máximo serán 99) entre el número que quiera (X en este caso) para obtener el máximo que quiera (por ejemplo entre 5 para obtener como número máximo 20) y aplico la función ceil para coger la parte entera del número obtenido... quedando el resultado final en c.[/*]

    Esta línea es sólo el sistema de azar... el resto lo teneis que poner vosotros de vuestra propia cosecha, pero como para muestra vale un botín:

    /script a=GetTime(); b=strsub(a, -2); c=ceil((b+1)/33); decir=SendChatmessage(); If c<2 Then decir("Hola radiola", Say, "Orcish")Else If c=2 then decir("Hola Caracola", Say, "Orcish") Else Then decir("Passa tio", Say, "Darnassian"); end; end;[/*]



Cosas a tener en cuenta:
Los comandos se ejecutan todos al mismo tiempo, no son secuenciales y, por eso, se utiliza el temporizador /in X.[/*]
Sólo se puede castear (lanzar una habilidad en macro o en script) una vez por macro. Si hay más de una, sólo funcionará la primera.[/*]
Al finalizar una linea de comando, siempre siempre siempre se le pone un punto y coma ";", incluso en la última línea.[/*]
Se pueden declarar variables. Por ejemplo:

/Script a=PickupInventoryItem; b=PickupContainerItem; c=UseInventoryItem; a(1); b(0,1); c(1):
[/*]
"Player" Siempre será el propio Pj.[/*]
%t equivale al Pj o Pnj seleccionado.[/*]


Más contenido:
En inglés -> http://www.wowwiki.com/Macros

Volver arriba Ir abajo
nakatsu
Recluta
Recluta
nakatsu


Mensajes : 4
Fecha de inscripción : 29/10/2012

[Tutorial] Macros & Scripts WoW Empty
MensajeTema: Re: [Tutorial] Macros & Scripts WoW   [Tutorial] Macros & Scripts WoW Icon_minitimeMiér Oct 31, 2012 10:14 pm

Muy buen guia Very Happy
Volver arriba Ir abajo
 
[Tutorial] Macros & Scripts WoW
Volver arriba 
Página 1 de 1.
 Temas similares
-
» Tutorial De macros (warrior)

Permisos de este foro:No puedes responder a temas en este foro.
WoW Slayers :: General :: Guías - World of Warcraft :: Otras guías-
Cambiar a: