Ultima Online en Español
Bienvenido a Ultima Online en Español. Por favor, regístrate o entra con tu cuenta.

Saludos.

El equipo del Foro.
Últimos temas
» Inception busca scripter.
Jue 31 Dic 2015 - 2:20 por Lethal

» Equipo para Servidor
Mar 3 Nov 2015 - 13:39 por Kork

» Busco un buen scripter para proyecto server pvp
Dom 19 Jul 2015 - 3:57 por rastrero

» Ultima Azteca
Lun 29 Jun 2015 - 3:31 por chronoMx

» AYUDA SCRIPT
Mar 3 Mar 2015 - 3:35 por rastrero

» NuevaUO (BUSCA COLABORADORES)
Lun 6 Oct 2014 - 10:46 por pushim

» Ultima Alianza
Sáb 26 Jul 2014 - 14:32 por Jecht

» Versiones de Cliente
Mar 22 Jul 2014 - 2:52 por Lethal

» Insane World
Sáb 19 Jul 2014 - 18:00 por Lethal

Staff
Admin Oupman [Fundador]
Lethal [Administrador] Inferno Networks
Rastrero [Administrador]
Mr.H (Moderador)
Servidores

Iron Beetle

Ver el tema anterior Ver el tema siguiente Ir abajo

Iron Beetle

Mensaje por Admin OuPMaN el Sáb 4 Sep 2010 - 17:38

Hola a todos. Estoy haciendo el script del Iron Beetle (un nuevo npc de la expansión Stigian Abyss). He estado mirando en la UO Guide y dice que cambia de color del minaral que mina y sólo suelta 5 de ore de un mineral concreto. Si a alguien se le ocurre cómo conseguir que adopte ese color, por favor que lo postee. Yo me he quedado en blanco .

_________________



avatar
Admin OuPMaN
Admin

Mensajes : 214
Puntos : 3094
Reputación : 18
Fecha de inscripción : 03/04/2010
Edad : 20
Localización : Linares (España)
Empleo /Ocio : Estudiante, Pianista, Compositor y Diseñador de Webs

Ver perfil de usuario http://ayudasphereserver.forosactivos.net

Volver arriba Ir abajo

Re: Iron Beetle

Mensaje por Lethal el Sáb 4 Sep 2010 - 18:23

Lo unico que se me ocurre por estas horas ( tengo demasiado sueño ), crear un item al estilo ore , hacer uno por cada ore. Con el mismo rate del mineral.
Que este item sea invisible , con decay y al ser dropeado cree un char serca de tu locacion. Esto implica hacer uno por cada mineral ( tanto item como char ).

Si se me ocurre algo distinto lo posteo y mas simple , lo posteo.

_________________
V8 - Lethal

"pensar en grande no cuesta nada"



Te invitamos a nuestra comunidad!.
www.adrenalinegames.com.ar
Comunidad Adrenaline Games
avatar
Lethal
Admin

Mensajes : 623
Puntos : 3298
Reputación : 36
Fecha de inscripción : 03/09/2010
Edad : 32
Localización : Argentina

Ver perfil de usuario http://www.i-networks.com.ar

Volver arriba Ir abajo

Re: Iron Beetle

Mensaje por curlor el Sáb 4 Sep 2010 - 21:38

Según he leído, el Iron Beetle va minando, y el mineral cae al suelo, entonces hay posibilidades de que se lo coma o de que no se lo coma, si se lo come cambia al color del mineral, si es así seria bastante sencillo, por ejemplo

Código:

[EVENTS e_iron_beetle]
ON=@ItemStep
if (<act.type>==t_ore) && (<R3>)
emote eating <act.name>
color=<act.color>
act.bounce
endif

Podria ser una forma, al pasar por encima que se lo coma y adquiera su color, si lo que buscas es que directamente al entrar en una mina empiece a minar por si solo y a coger el color del mineral que trabaja, habría que mirarlo, puesto que podríamos hacerlo con región entry o otra vez con itemstep, o con alguna función inventada.

PD: Nadie se ha dado cuenta de que al poner los tag mediante < - > desaparecen en algunas ocasiones?

curlor
Admin

Mensajes : 38
Puntos : 2613
Reputación : 1
Fecha de inscripción : 03/09/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: Iron Beetle

Mensaje por Admin OuPMaN el Sáb 4 Sep 2010 - 22:52

En cuanto a lo de los <> desactivo el html de los post del foro. No creo que se vaya a usar mucho.

_________________



avatar
Admin OuPMaN
Admin

Mensajes : 214
Puntos : 3094
Reputación : 18
Fecha de inscripción : 03/04/2010
Edad : 20
Localización : Linares (España)
Empleo /Ocio : Estudiante, Pianista, Compositor y Diseñador de Webs

Ver perfil de usuario http://ayudasphereserver.forosactivos.net

Volver arriba Ir abajo

Re: Iron Beetle

Mensaje por Admin OuPMaN el Mar 7 Sep 2010 - 21:38



Os presento a los Iron Beetle Beta 0.1

Cosas necesarias para finalizar el script:
-Que minen solitos y tiren el item al suelo

A mí se me ha ocurrido una idea pero no se si vale ni como hacerla, la idea es meterle unos items invisibles con timer para que cuando termine el timer si se encuentra en una region en la que se pueda minar mine y haga el emote Minando. Quizas si le borrara el layer de la cartera lo tiraría al suelo. Bueno quién pueda ayudarme, se lo agradezco.

Código:
[img]file:///C:/DOCUME%7E1/ANAMAR%7E1/CONFIG%7E1/Temp/moz-screenshot-2.png[/img]//Script hecha por OuPMaN (davidcrma)
//Iron Beetle-Basado en la informacion de UO Guide y UO Stratics

[CHARDEF 02ca]
DEFNAME=c_iron_beetle
NAME=Iron Beetle
ICON=i_pet_runebeetle
RESLEVEL=4
RESDISPDNHUE=0410
RESDISPDNID=c_deathwatch_beetle
CAN=mt_equip|mt_walk|mt_run|
DAM=15,20
ARMOR=56
FOODTYPE=45 i_ribs_raw
CATEGORY=New Monsters
SUBSECTION=Stygian Abyss
DESCRIPTION=Iron Beetle

ON=@Create
    NPC=brain_monster
    STR={760 886}
    DEX={66 75}
    INT={36 51}
    MAXHITS={765 880}
    ResFire={20 30}
    ResCold={20 30}
    ResPoison={20 40}
    ResEnergy={45 55}
    WRESTLING={94.0 108.5}
    TACTICS={82.6 97.7}
    MAGICRESISTANCE={120.4 129.6}
    ANATOMY={80.4 89.5}
    TAMING=71.1
    PEACEMAKING=65.6
    DISCORDANCE=65.6
    PROVOCATION=65.6
    KARMA=-8500
    FAME=8500
    EVENTS=+e_iron_beetle
    tag.loyalty=20

   
ON=@NPCRestock
ITEM=loot_iron_beetle

[TEMPLATE loot_iron_beetle]
ITEM=random_jewel,2
ITEM={i_ore_iron 1 i_ore_copper 1 i_ore_gold 1 i_ore_silver 1 i_ore_verite 1 i_ore_valorite 1 i_ore_bronze 1 i_ore_old_copper 1 i_ore_dull_copper 1 i_ore_shadow 1 i_ore_bloodrock 1 i_ore_blackrock 1 i_ore_mytheril 1 i_ore_rusty 1 i_ore_agapite 1 i_ore_rose 1},5
//Undamaged Iron Beetle Scale (Item de Quest) (No creado)


[EVENTS e_iron_beetle]
ON=@ItemStep
if (<act.type>==t_ore) && (<R3>)
color=<act.color>
act.remove
i.emote comiendo <act.name>
endif

La imagen de arriba corresponde a los colores default de los tipos de iron beetle que habría.
La imagen de abajo corresponde a uno transformandose.

PD:Si lo metéis en vuestro sphere quizá os salga error con el enticement, yo lo tengo editado para que en vez de enticement sea discordance. En la de abajo soy yo transformado por eso pone *You*


_________________



avatar
Admin OuPMaN
Admin

Mensajes : 214
Puntos : 3094
Reputación : 18
Fecha de inscripción : 03/04/2010
Edad : 20
Localización : Linares (España)
Empleo /Ocio : Estudiante, Pianista, Compositor y Diseñador de Webs

Ver perfil de usuario http://ayudasphereserver.forosactivos.net

Volver arriba Ir abajo

Re: Iron Beetle

Mensaje por curlor el Miér 8 Sep 2010 - 1:15

Realmente no tendria que minar, sino sumular que mina, a efectos de los jugadores lo mismo es, mira revisa esto que acabo de hacer aver que te parece, es muy simple tu mejorarlo que le faltan muchas cosas.

En el on=@create del npc ejecuta la funcion f_equipar_iron_beetle

Código:

[FUNCTION f_equipar_iron_beetle] //Funcion que debe de haser el npc al crearse
SERV.NEWITEM=i_timer_iron_beetle
EQUIP=<NEW.UID>

[ITEMDEF i_timer_iron_beetle] //Objeto que hara de timer
DEFNAME=i_timer_iron_beetle
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
NAME=Memoria del Iron Beetle

ON=@EQUIP
SRC.F_MINAR_NPC

ON=@TIMER
CONT.F_MINAR_NPC
RETURN 1


[FUNCTION f_minar_npc] //Comprovamos que se puede minar en la zona
if (<serv.map(<p>)type> == t_rock)
    DORAND 6 //Hasemos un rand para elegir el mineral
    LOCAL.MINERAL=i_ore_iron
    LOCAL.MINERAL=i_ore_verite
    LOCAL.MINERAL=i_ore_gold
    LOCAL.MINERAL=i_ore_aku
    LOCAL.MINERAL=i_ore_copper
    LOCAL.MINERAL=i_ore_thanatos
    ENDDO
    emote=Minando <serv.itemdef.<local.mineral>.name> //Emote con el nombre del mineral que esta estrallendo
    TIMERF 2,f_crearore <local.mineral> //lanzamos la funcion que creara el mineral y nos movera
else
FINDID.I_TIMER_IRON_BEETLE.TIMER=60 //Si la zona no es la correcta hasemos un timer alto
endif

[FUNCTION f_crearore]
LOCAL.CANTIDAD=<R2,6> //Al azar la cantidad de mineral entre 2 y 6
SERV.NEWITEM=<args> //creamos el mineral elegido en el dorand de arriba
new.amount=<local.cantidad>
if (<R10>) //Una de 10 veses se come el mineral y adquiere su color
new.bounce
color=<new.color>
emote=Comiendose <new.name>
else //Si no...
new.p=<p> //lo situamos en el suelo
endif
DOSWITCH <dir> //nos movemos en la misma direccion que estamos
 MOVE N
 MOVE NE
 MOVE E
 MOVE SE
 MOVE S
 MOVE SW
 MOVE W
 MOVE NW
ENDDO
FINDID.I_TIMER_IRON_BEETLE.TIMER=4 //lanzamos un timer de 4 segundos porque acabamos de minar.

Yo no soy partidario de usar esta timer en objetos en forma de bucles infinitos, pero he de admitir que probé con el regionenter y no surtió efecto.

Espero que te sirva de base, antes de haserlo 100% funcional tendras que comprobar que el siguiente cuadro al que se mueve el npc no tiene obstaculos ni es zona negra, y mas cosas que tendras que adaptar a tu gusto. un saludo

curlor
Admin

Mensajes : 38
Puntos : 2613
Reputación : 1
Fecha de inscripción : 03/09/2010

Ver perfil de usuario

Volver arriba Ir abajo

Re: Iron Beetle

Mensaje por Admin OuPMaN el Miér 8 Sep 2010 - 15:56

Ya está casi acabado.

Edición:
Le quite el doswitch pa que no se fuera a la zona negra. Hice un sistema simple de probabilidades de que salga el mineral para que sea más realista. Si se sale del tipo de suelo de mina (t_rock) deja de minar. Para que sea más realista que se lo come cuando se lo come hace remove del ore y le sube la food a 10.

Más cosas que hare esta tarde:
-Que cuando esté luchando con un player no mine.
-Que no salga error de posición -1, -1 al crearlo

Lo segundo, la verdad es que pienso que sólo lo puedo hacer con un Timer, pero yo y los timer no nos llevamos bien y nunca los hago bien .

Saludos!

_________________



avatar
Admin OuPMaN
Admin

Mensajes : 214
Puntos : 3094
Reputación : 18
Fecha de inscripción : 03/04/2010
Edad : 20
Localización : Linares (España)
Empleo /Ocio : Estudiante, Pianista, Compositor y Diseñador de Webs

Ver perfil de usuario http://ayudasphereserver.forosactivos.net

Volver arriba Ir abajo

Re: Iron Beetle

Mensaje por Admin OuPMaN el Miér 8 Sep 2010 - 21:26

Y aquí viene el que parece ser el definitivo.

//Revisiones
4-Septiembre-2010
Creado.
5-Septiembre-2010
ITEMSTEP-Cancelado.
8-Septiembre-2010 (Gracias Curlor!!!)
Add:Sistema de Curlor para simular que mina.
Fixed:El Iron Beetle minaba cuando estaba luchando.
Fixed:Error al crear el Iron Beetle por posición -1,-1.
Fixed:Para simular mejor que se lo come le añadí un remove en vez de que se lo guarde en la cartera y que la food se le pone a 10.
Fixed:Doswitch eliminado pa que no se vaya por lo negro.
Fixed:Random con Porcentajes.
Reducción del codigo:Cambiado el if por uno más corto.

SCRIPT TOTALMENTE TESTADA. PARA VER CORRECTAMENTE EL NPC DEBE EDITAR SUS ANIMS O USAR CLIENT 7.0.3 O MAYOR (O EDITE LAS ANIMS).

En esta script puedes comprender.

-Como usar el dorand para hacer randoms.
-Como usar objetos timer.
-Como hacer que un NPC haga algo cuando ve un player, recibe daño o da un golpe.
-Usar el timerf para ejecutar funciones cuando pase X tiempo.
-Que lo importante no es lo que los scripters veamos sino lo que los players vean.

RECUERDE:En esta release definitiva he usado los minerales del AW Reborn, no creo que sea mucha molestia editarlos. Esta script es pública.

Código:
//Script hecha por OuPMaN (davidcrma), con la ayuda de Curlor
//Iron Beetle-Basado en la informacion de UO Guide y UO Stratics

[CHARDEF 02ca]
DEFNAME=c_iron_beetle
NAME=Iron Beetle
ICON=i_pet_runebeetle
RESLEVEL=4
RESDISPDNHUE=0410
RESDISPDNID=c_deathwatch_beetle
CAN=mt_equip|mt_walk|mt_run|
DAM=15,20
ARMOR=56
FOODTYPE=45 i_ribs_raw,
CATEGORY=New Monsters
SUBSECTION=Stygian Abyss
DESCRIPTION=Iron Beetle

ON=@Create
    NPC=brain_monster
    STR={760 886}
    DEX={66 75}
    INT={36 51}
    MAXHITS={765 880}
    ResFire={20 30}
    ResCold={20 30}
    ResPoison={20 40}
    ResEnergy={45 55}
    WRESTLING={94.0 108.5}
    TACTICS={82.6 97.7}
    MAGICRESISTANCE={120.4 129.6}
    ANATOMY={80.4 89.5}
    TAMING=71.1
    PEACEMAKING=65.6
    DISCORDANCE=65.6
    PROVOCATION=65.6
    KARMA=-8500
    FAME=8500
    tag.loyalty=20
    f_antierror

   
ON=@NPCRestock
ITEM=loot_iron_beetle

ON=@NPCSeePlayer
atack
ON=@NPCActFight
findid.i_timer_iron_beetle.timer 60

ON=@Hit
findid.i_timer_iron_beetle.timer 60

ON=@GetHit
findid.i_timer_iron_beetle.timer 60

[TEMPLATE loot_iron_beetle]
ITEM=random_jewel,2
ITEM={i_ore_iron 1 i_ore_copper 1 i_ore_gold 1 i_ore_silver 1 i_ore_verite 1 i_ore_valorite 1 i_ore_bronze 1 i_ore_old_copper 1 i_ore_dull_copper 1 i_ore_shadow 1 i_ore_bloodrock 1 i_ore_blackrock 1 i_ore_mytheril 1 i_ore_rusty 1 i_ore_agapite 1 i_ore_rose 1},5
//Undamaged Iron Beetle Scale (Item de Quest) (No creado)

[FUNCTION f_equipar_iron_beetle] //Funcion para iniciar secuencia mining
SERV.NEWITEM=i_timer_iron_beetle
EQUIP=<NEW.UID>

[FUNCTION f_antierror]
TIMERF 5,f_equipar_iron_beetle

[ITEMDEF i_timer_iron_beetle] //Objeto que hara de timer
DEFNAME=i_timer_iron_beetle
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
NAME=Memoria del Iron Beetle

ON=@EQUIP
SRC.f_minar_npc

ON=@TIMER
CONT.f_minar_npc
RETURN 1


[FUNCTION f_minar_npc] //Comprovamos que se puede minar en la zona
if (<p.type> == t_rock)
    DORAND 25 //Hasemos un rand para elegir el mineral
    LOCAL.MINERAL=i_ore_iron
    LOCAL.MINERAL=i_ore_iron
    LOCAL.MINERAL=i_ore_iron
    LOCAL.MINERAL=i_ore_iron
    LOCAL.MINERAL=i_ore_iron
    LOCAL.MINERAL=i_ore_iron
    LOCAL.MINERAL=i_ore_iron
    LOCAL.MINERAL=i_ore_verite
    LOCAL.MINERAL=i_ore_verite
    LOCAL.MINERAL=i_ore_verite
    LOCAL.MINERAL=i_ore_verite
    LOCAL.MINERAL=i_ore_verite
    LOCAL.MINERAL=i_ore_gold
    LOCAL.MINERAL=i_ore_gold
    LOCAL.MINERAL=i_ore_gold
    LOCAL.MINERAL=i_ore_gold
    LOCAL.MINERAL=i_ore_aku
    LOCAL.MINERAL=i_ore_aku
    LOCAL.MINERAL=i_ore_aku
    LOCAL.MINERAL=i_ore_copper
    LOCAL.MINERAL=i_ore_copper
    LOCAL.MINERAL=i_ore_copper
    LOCAL.MINERAL=i_ore_copper
    LOCAL.MINERAL=i_ore_thanatos
    LOCAL.MINERAL=i_ore_thanatos
    ENDDO
    emote=Minando <serv.itemdef.<local.mineral>.name> //Emote con el nombre del mineral que esta estrallendo
    TIMERF 2,f_crearore <local.mineral> //lanzamos la funcion que creara el mineral y nos movera
else
FINDID.I_TIMER_IRON_BEETLE.TIMER=60 //Si la zona no es la correcta hasemos un timer alto
endif

[FUNCTION f_crearore]
LOCAL.CANTIDAD=<R2,6> //Al azar la cantidad de mineral entre 2 y 6
SERV.NEWITEM=<args> //creamos el mineral elegido en el dorand de arriba
new.amount=<local.cantidad>
if (<R10>) //Una de 10 veses se come el mineral y adquiere su color
new.bounce
color=<new.color>
emote=Comiendose <new.name>
new.remove
src.food 10
else //Si no...
new.p=<p> //lo situamos en el suelo
endif
FINDID.I_TIMER_IRON_BEETLE.TIMER=4 //lanzamos un timer de 4 segundos porque acabamos de minar.

w

_________________



avatar
Admin OuPMaN
Admin

Mensajes : 214
Puntos : 3094
Reputación : 18
Fecha de inscripción : 03/04/2010
Edad : 20
Localización : Linares (España)
Empleo /Ocio : Estudiante, Pianista, Compositor y Diseñador de Webs

Ver perfil de usuario http://ayudasphereserver.forosactivos.net

Volver arriba Ir abajo

Re: Iron Beetle

Mensaje por Contenido patrocinado


Contenido patrocinado


Volver arriba Ir abajo

Ver el tema anterior Ver el tema siguiente Volver arriba

- Temas similares

 
Permisos de este foro:
No puedes responder a temas en este foro.