
TUTORIAL creacion de objetos de poder unico
#1
Posteado 14 April 2005 - 06:45 PM
son aquellos como la piedra de regreso , y obetos unicos, inteligentes etc
con dichos objetos podriamos crear el anillo de sauron, cañas de pescar, y mil cosas mas
los objetos de poder unico son como una nueva frontera para el constructor de modulos ya que si lograsemos hacer un "equilibrio" en el modulo podriamos llegar virtualmente hasta nivel 100 por decir algo
muchos de vosotros sabran construir armas con todos los poderes posibles....pasais horas haciendo el arma o objeto creyendo que nadie os vencera
entrais a cualquier zona de arena y os matan del tiron riendose de vosotros
esto se arregla con los objetos de poder unicos para si
asi podriamos construir por ejemplo 12 runas magicas q tengan poderes especiales
que al ser unidas crearian un objeto de nivel superior , creacion de anillos de invocacion
tal vez podriamos incluso recrear la batalla fantasmal del retorno del rey o la pelea que tienen gandaf y saruman protagonizan en la cominidad del anillo
asi he logrado crear un huevo incubado de gallina que te da una gallina ponedora de huevos no incubados.........tal vez cree al gallo jeje
bueno vamos a ponernos a trabajar...............
#2
Posteado 14 April 2005 - 06:55 PM
EL GUION Y EL OBJETO TIENEN Q LLAMARSE IGUAL
primer paso crear un guion
segundo paso crear un nuevo objeto personalizado (siempre) cuyo nombre sea igual al del guion
esto es muy importante pq al crear el objeto asi la resfef y el tag coinciden....
creamos por ejemplo piedradestino de guion y el objeto igual, pero queda muy feo que el jugador al coger el objeto vea el nombre todo junto
edita el objeto y ponle ya el nombre como quieras (solo el nombre)
despues busca en "lanzar hechizo" poder unico para si, editalo y ponle sin limite de usos al dia (asegurate de haberlo hecho bien ojo)
PASO FINAL
vete a propiedades del modulo y en el guion ONACTIVATEDITEM (o algo asi) añade esta script dnd puedas
void main()
{
ExecuteScript(GetTag(GetItemActivated()),
OBJECT_SELF);
}
es posible q ya uses otro script distinto como por ejemplo es mi caso
bueno entonces solo añade esta linea al script
ExecuteScript(GetTag(GetItemActivated()),
OBJECT_SELF);
comenzemos con los script
#3
Posteado 14 April 2005 - 07:08 PM
void main()
{
object oPC;
object oTarget;
oTarget = oPC;
int nInt;
nInt = GetObjectType(oTarget);
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_NATURES_BALANCE), oTarget);
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_NATURES_BALANCE), GetLocation(oTarget));
oPC = GetItemActivator();
DelayCommand(4.0, FloatingTextStringOnCreature("haces uso de tu piedra del destino para volver a casa", oPC));
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_MEDITATE, 10.0f, 3.0f));
DelayCommand(2.0, FloatingTextStringOnCreature("finalizada la invocacion tu cuerpo comienza a desaparecer", oPC));
oTarget = oPC;
nInt = GetObjectType(oTarget);
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_GATE), oTarget);
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_GATE), GetLocation(oTarget));
location lTarget;
oTarget = GetWaypointByTag("lugardestino");
lTarget = GetLocation(oTarget);
//only do the jump if the location is valid.
//though not flawless, we just check if it is in a valid area.
//the script will stop if the location isn't valid - meaning that
//nothing put after the teleport will fire either.
//the current location won't be stored, either
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;
AssignCommand(oPC, ClearAllActions());
DelayCommand(3.0, AssignCommand(oPC, ActionJumpToLocation(lTarget)));
oTarget = oPC;
//Visual effects can't be applied to waypoints, so if it is a WP
//apply to the WP's location instead
nInt = GetObjectType(oTarget);
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_UNSUMMON), oTarget);
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_UNSUMMON), GetLocation(oTarget));
}
Editado por dragonoscuro, 14 April 2005 - 07:35 PM.
#4
Posteado 14 April 2005 - 07:13 PM

#5
Posteado 14 April 2005 - 07:43 PM
#6
Posteado 16 April 2005 - 02:18 AM
Más o menos es eso, pero no lo has dicho del todo bién.QUE SON LOS OBJETOS DE PODER UNICO PARA SI:
son aquellos como la piedra de regreso , y obetos unicos, inteligentes etc
con dichos objetos podriamos crear el anillo de sauron, cañas de pescar, y mil cosas mas
los objetos de poder unico son como una nueva frontera para el constructor de modulos ya que si lograsemos hacer un "equilibrio" en el modulo podriamos llegar virtualmente hasta nivel 100 por decir algo
muchos de vosotros sabran construir armas con todos los poderes posibles....pasais horas haciendo el arma o objeto creyendo que nadie os vencera
entrais a cualquier zona de arena y os matan del tiron riendose de vosotros
esto se arregla con los objetos de poder unicos para si
asi podriamos construir por ejemplo 12 runas magicas q tengan poderes especiales
que al ser unidas crearian un objeto de nivel superior , creacion de anillos de invocacion
tal vez podriamos incluso recrear la batalla fantasmal del retorno del rey o la pelea que tienen gandaf y saruman protagonizan en la cominidad del anillo
asi he logrado crear un huevo incubado de gallina que te da una gallina ponedora de huevos no incubados.........tal vez cree al gallo jeje
bueno vamos a ponernos a trabajar...............
Los objetos, tienen muchas posibles propiedades, entre otras unas que se llaman:
- Poder Unico
- Poder Unico para Sí.
Estas dos, a primera vista no hacen "nada". Lo que hacen es activar el evento OnActivatedItem del modulo ( http://www.clandlan....=0 )
A partir de ahi lo que hagamos es cosa nuestra, ya que esto nos da opcion de crear nuestro objetos propios personalizados, sin tener que limitarnos a las propiedades que nos da el juego.
La diferencia entre Poder Unico y Poder Unico para si, es que el primer al activar directamente se activa el objeto (dandote a ti como "objetivo"). En el segundo te da para elegir un objetivo,y este lo podras comprobar despues dentro del script, con las funciones GetItemActivatedTarget(); || GetItemActivatedTargetLocation();
#7
Posteado 16 April 2005 - 03:10 PM
#8
Posteado 17 April 2005 - 09:16 PM
#9
Posteado 17 April 2005 - 09:49 PM
#10
Posteado 17 April 2005 - 10:43 PM
La cosa es que hace tiempo, cuando aun no habia salido el SoU, alguien tubo la "genialidad" de inventarse ese codigo tan simple de OnActivateItem
void main() { ExecuteScript(GetTag(GetItemActivated()), OBJECT_SELF); }
Bioware, al sacar la x2 (la segunda expansión) hizo una versión mejorada de este script, bueno la verdad hizo un sistema de script llamado TagBased (basado en las etiquetas).
Lo que hace es en cualquier evento de modulo relacionado con un Item, se activa un script que es igual que su tag (etiqueta). El ResRef es indiferente.
I direis i como diferencia si ese script se activo desde un OnActivated o un Acquired, vereis teneis un script que los de bioware nos dieron de ejemplo llamado x2_it_example. Donde hay cabida para cualquier evento, con eso con un script podeis hacer uso de cualquier evento del modulo.
Si abris el script que os dije antes, vereis en la linea 49, este trozo:
// * This code runs when the Unique Power property of the item is used // * Note that this event fires PCs only else if (nEvent == X2_ITEM_EVENT_ACTIVATE) { oPC = GetItemActivator(); oItem = GetItemActivated(); }
Justo debajo del "oItem = GetIt..." ahi iria vuestro codigo al activar un objeto.
Pues lo dicho teneis el x2_it_example en cualquier modulo (simplemente abris un script con ese nombre i marcais 'todos los recursos') y listos. De esta manera NO se tiene que tocar nada de los eventos de modulo, ya que viene este sistema por defecto
#11
Posteado 19 November 2007 - 11:48 AM
Sin que nadie se ofenda por que yo postee..
La cosa es que hace tiempo, cuando aun no habia salido el SoU, alguien tubo la "genialidad" de inventarse ese codigo tan simple de OnActivateItemvoid main() { ExecuteScript(GetTag(GetItemActivated()), OBJECT_SELF); }
Bioware, al sacar la x2 (la segunda expansión) hizo una versión mejorada de este script, bueno la verdad hizo un sistema de script llamado TagBased (basado en las etiquetas).
Lo que hace es en cualquier evento de modulo relacionado con un Item, se activa un script que es igual que su tag (etiqueta). El ResRef es indiferente.
I direis i como diferencia si ese script se activo desde un OnActivated o un Acquired, vereis teneis un script que los de bioware nos dieron de ejemplo llamado x2_it_example. Donde hay cabida para cualquier evento, con eso con un script podeis hacer uso de cualquier evento del modulo.
Si abris el script que os dije antes, vereis en la linea 49, este trozo:// * This code runs when the Unique Power property of the item is used // * Note that this event fires PCs only else if (nEvent == X2_ITEM_EVENT_ACTIVATE) { oPC = GetItemActivator(); oItem = GetItemActivated(); }
Justo debajo del "oItem = GetIt..." ahi iria vuestro codigo al activar un objeto.
Pues lo dicho teneis el x2_it_example en cualquier modulo (simplemente abris un script con ese nombre i marcais 'todos los recursos') y listos. De esta manera NO se tiene que tocar nada de los eventos de modulo, ya que viene este sistema por defecto
¿Puedes hacer que cueste dinero activar la piedra? Si es así, te rogaría que explicases como lo haces (para sí ya saber como quitar dinero del PJ si quiere hacer otra cosa con otro objeto único)
Gracias !


#12
Posteado 13 August 2008 - 09:47 AM
location lTarget; oTarget = GetWaypointByTag("lugardestino"); lTarget = GetLocation(oTarget);
esto me hace suponer que enviará al PJ al área que le marques. Pero si quiero que vaya a un lugar concreto de la misma área (donde haga clic el propio jugador), qué deberia poner?