Wallack
Pornorroleador en sequía
- Registrado
- 13/12/08
- Mensajes
- 569
- Edad
- 40
¿Cansado de que tu arma luzca como un sable láser?
¿Te gustaría que lujese como un palo en llamas?
¿O tal vez eres maloso y ese brillo amarillo te hace parecer un ordenado?
¿Quieres que tu arma luzca roja?
¡Yo tengo la solución! ¡Efectos visuales para todos!
La idea es un objeto que usado sobre un arma añada la propiedad "efecto visual" deseada. Esto puede ser para que tu super paladin lleve una espada que haga juego con su armadura o tu maloso una espada rojiza o quizás tu mago elementalista quieres que lleve su bastón en llamas.
Solo sería una parte más de la personalización y para evitar que se usara nada más empezar y todo el mundo fuese con espadas con luces (a partir de nivel 5 prácticamente ya todos van con sus espadas luciérnagas) podría ponérsele un nivel mínimo de uso, que se haga por oficios, que se compre en tiendas a mucho precio, que tenga un uso por objeto ... como se quiera.
Para implementarlo es muy fácil. Solo hay que crear un objeto que se llame como queráis pero que tenga la etiqueta "efectovisual". Después crear un script llamado "efectovisual" que contenga el siguiente texto:
Y la parte más importante. El objeto con la etiqueta "efectovisual" debe tener un "Poder único" para poder lanzarlo sobre una espada (por ejemplo) y además debe tener una variable.
La variable debe ser de tipo "int" y llamarse "efecto" y contener un número de la siguiente tabla:
0 Ácido
1 Frio
2 Eléctrico
3 Fuego
4 Sónico
5 Sagrado
6 Maligno
15 Ninguno
De esta manera podemos añadir efectos o incluso tener un arma mágica sin ningún efecto visual, ya sea porque no nos gusta o ... llámalo X.
Notas a tener en cuenta:
Esperar unos segundos nada más se coje el objeto hasta usarlo, por precaución. Lo más que puede pasar es que lo uses y no haga nada, pero si el objeto es de un uso (y se destruye automáticamente) puede ser una putada.
Adjunto un módulo con varios efectos y unas pruebas. El efecto usado sobre el arma es permanente, no añade precio y es prioritario sobre los demás efectos. Es decir, tendrá prioridad sobre los efectos del arma e incluso sobre los de los conjuros (solo he probado arma flamígera) por lo que si usamos el objeto Efecto Visual - Ninguno (probad el módulo) aún lanzando hechizos no crearemos efecto visual!
Esta es mi sugerencia, ya que muchas veces encuentras un arma que visualmente no te gusta y no hay forma de personalizarla. Además evita un poco el "metajuego" al no saber si ese efecto es de daño, visual, o si esconde secretos!!
¿Te gustaría que lujese como un palo en llamas?
¿O tal vez eres maloso y ese brillo amarillo te hace parecer un ordenado?
¿Quieres que tu arma luzca roja?
¡Yo tengo la solución! ¡Efectos visuales para todos!
La idea es un objeto que usado sobre un arma añada la propiedad "efecto visual" deseada. Esto puede ser para que tu super paladin lleve una espada que haga juego con su armadura o tu maloso una espada rojiza o quizás tu mago elementalista quieres que lleve su bastón en llamas.
Solo sería una parte más de la personalización y para evitar que se usara nada más empezar y todo el mundo fuese con espadas con luces (a partir de nivel 5 prácticamente ya todos van con sus espadas luciérnagas) podría ponérsele un nivel mínimo de uso, que se haga por oficios, que se compre en tiendas a mucho precio, que tenga un uso por objeto ... como se quiera.
Para implementarlo es muy fácil. Solo hay que crear un objeto que se llame como queráis pero que tenga la etiqueta "efectovisual". Después crear un script llamado "efectovisual" que contenga el siguiente texto:
#include "x2_inc_switches"
/****************************************************
ESTE SCRIPT ANADE UNA PROPIEDAD DE EFECTO VISUAL A UN OBJETO (ARMA CUERPO A CUERPO).
PARA HACERLO Y QUE SE VEA, ELIMINA LAS PROPIEDADES DEL OBJETO, ANADE EL EFECTO VISUAL Y LUEGO ANADE LAS PROPIEDADES
DE ESTA MANERA EL EFECTO VISUAL ESTA SIEMPRE EN PRIMER LUGAR DE LA LISTA DE PROPIEDADES DEL OBJETO Y TIENE PREFERENCIA
****************************************************/
void main()
{
if(GetUserDefinedItemEventNumber() == X2_ITEM_EVENT_ACTIVATE)
{
object oJugador = GetItemActivator();
object oArma = GetItemActivatedTarget();
//COPIAMOS EL OBJETO PARA TRABAJAR CON SUS PROPIEDADES
object oArmaCopia = CopyObject(oArma, GetLocation(oJugador), oJugador);
//ELIMINAMOS LAS PROPIEDADES DEL OBJETO ORIGINAL
itemproperty ipOrig = GetFirstItemProperty(oArma);
while(GetIsItemPropertyValid(ipOrig) == TRUE)
{
RemoveItemProperty(oArma, ipOrig);
ipOrig = GetNextItemProperty(oArma);
}
//AHORA ANADIMOS LA PROPIEDAD DEL EFECTO VISUAL
itemproperty ipVisual = ItemPropertyVisualEffect(GetLocalInt(GetItemActivated(), "efecto"));
AddItemProperty(DURATION_TYPE_PERMANENT, ipVisual, oArma);
//RECORREMOS LAS PROPIEDADES DE LA COPIA Y LAS ANADIMOS A LA ORIGINAL
ipOrig = GetFirstItemProperty(oArmaCopia);
while(GetIsItemPropertyValid(ipOrig) == TRUE)
{
//SOLO ANADIMOS PROPIEDADES QUE NO SEAN EFECTOS VISUALES
if(GetItemPropertyType(ipOrig) != ITEM_PROPERTY_VISUALEFFECT)
{
AddItemProperty(GetItemPropertyDurationType(ipOrig), ipOrig, oArma);
}
ipOrig = GetNextItemProperty(oArmaCopia);
}
//ELIMINAMOS LA COPIA
DestroyObject(oArmaCopia);
}
}
/****************************************************
ESTE SCRIPT ANADE UNA PROPIEDAD DE EFECTO VISUAL A UN OBJETO (ARMA CUERPO A CUERPO).
PARA HACERLO Y QUE SE VEA, ELIMINA LAS PROPIEDADES DEL OBJETO, ANADE EL EFECTO VISUAL Y LUEGO ANADE LAS PROPIEDADES
DE ESTA MANERA EL EFECTO VISUAL ESTA SIEMPRE EN PRIMER LUGAR DE LA LISTA DE PROPIEDADES DEL OBJETO Y TIENE PREFERENCIA
****************************************************/
void main()
{
if(GetUserDefinedItemEventNumber() == X2_ITEM_EVENT_ACTIVATE)
{
object oJugador = GetItemActivator();
object oArma = GetItemActivatedTarget();
//COPIAMOS EL OBJETO PARA TRABAJAR CON SUS PROPIEDADES
object oArmaCopia = CopyObject(oArma, GetLocation(oJugador), oJugador);
//ELIMINAMOS LAS PROPIEDADES DEL OBJETO ORIGINAL
itemproperty ipOrig = GetFirstItemProperty(oArma);
while(GetIsItemPropertyValid(ipOrig) == TRUE)
{
RemoveItemProperty(oArma, ipOrig);
ipOrig = GetNextItemProperty(oArma);
}
//AHORA ANADIMOS LA PROPIEDAD DEL EFECTO VISUAL
itemproperty ipVisual = ItemPropertyVisualEffect(GetLocalInt(GetItemActivated(), "efecto"));
AddItemProperty(DURATION_TYPE_PERMANENT, ipVisual, oArma);
//RECORREMOS LAS PROPIEDADES DE LA COPIA Y LAS ANADIMOS A LA ORIGINAL
ipOrig = GetFirstItemProperty(oArmaCopia);
while(GetIsItemPropertyValid(ipOrig) == TRUE)
{
//SOLO ANADIMOS PROPIEDADES QUE NO SEAN EFECTOS VISUALES
if(GetItemPropertyType(ipOrig) != ITEM_PROPERTY_VISUALEFFECT)
{
AddItemProperty(GetItemPropertyDurationType(ipOrig), ipOrig, oArma);
}
ipOrig = GetNextItemProperty(oArmaCopia);
}
//ELIMINAMOS LA COPIA
DestroyObject(oArmaCopia);
}
}
Y la parte más importante. El objeto con la etiqueta "efectovisual" debe tener un "Poder único" para poder lanzarlo sobre una espada (por ejemplo) y además debe tener una variable.
La variable debe ser de tipo "int" y llamarse "efecto" y contener un número de la siguiente tabla:
0 Ácido
1 Frio
2 Eléctrico
3 Fuego
4 Sónico
5 Sagrado
6 Maligno
15 Ninguno
De esta manera podemos añadir efectos o incluso tener un arma mágica sin ningún efecto visual, ya sea porque no nos gusta o ... llámalo X.
Notas a tener en cuenta:
Esperar unos segundos nada más se coje el objeto hasta usarlo, por precaución. Lo más que puede pasar es que lo uses y no haga nada, pero si el objeto es de un uso (y se destruye automáticamente) puede ser una putada.
Adjunto un módulo con varios efectos y unas pruebas. El efecto usado sobre el arma es permanente, no añade precio y es prioritario sobre los demás efectos. Es decir, tendrá prioridad sobre los efectos del arma e incluso sobre los de los conjuros (solo he probado arma flamígera) por lo que si usamos el objeto Efecto Visual - Ninguno (probad el módulo) aún lanzando hechizos no crearemos efecto visual!
Esta es mi sugerencia, ya que muchas veces encuentras un arma que visualmente no te gusta y no hay forma de personalizarla. Además evita un poco el "metajuego" al no saber si ese efecto es de daño, visual, o si esconde secretos!!