Subir

Resultados 1 al 2 de 2

Tema: Pruebas de Scripts

  1. #1
    Avatar de Envy
    Fecha de ingreso
    August-2009
    Ubicación
    En un Zulo
    Clan
    PureStyle
    Facción
    Corsario
    Nacimiento
    Otros - Extranjero
    Mensajes
    1.027
    Reputacion: 48
    Poder de reputación
    15

    Pruebas de Scripts

    Buenas.

    Hace un par de dias le quite el polvo al antiguo Sphere que tenia del servidor SIOP (antiguo servidor de Valencia que algunos de UA recordaran), me puse a trastear un poco y refrescarme un poco en esto de script de Sphere. Despues de retocar el Resisting Spell que tenia, configurarlo, etc (aún queda por retocarlo) pense en intentar "copiar" algunos script de UA.

    Dije como haran lo de las canciones de Música... y la reputación orca... pense en hacer una mezcla de reputación de orcos con musica y aqui os pongo como llevo la cosa.

    Por ahora tengo el area de la canción, con un problema no se hacer para que si estas cerca de una casa no lo haga (tengo que no pueda hacerlo dentro de la casa), 4 tipos diferentes de canción y el sistema de canción diferente al habitual de UA.
    Esta vez se invocara un NPC con un tambor en la localización del personaje, este NPC sera el que este tocando la canción si es herido o muere la canción desaparecera.

    A los que esteis más frescos en este tema, que cosas cambiariais, como solucionariais algunos problemas como el de que no pueda hacerlo cerca de una casa, alguna idea/reto para darle más caña.


    Añado el codigo, también tengo otros con Objetos de reputación orca y sus npcs, nada del otro mundo.

    Código:
    ////////////////////////////////////////
    //Tipos Canciones
    ////////////////////////////////////////
    
    /////////////
    //// Canción Fuerza Orca. 
    //// Agilidad Orca. Otorga Fuerza. 	
    /////////////
    
    [regiontype r_cancion_orca_1]
    Defname = r_cancion_orca_1
    
    On=@Enter
    SRC.STR = <SRC.STR> + 25
    Src.SYSMESSAGE El sonido del tambor orco te hace mas fuerte...
    
    On=@EXIT
    SRC.STR= <SRC.STR> - 25
    SRC.SYSMESSAGE Pierdes fuerza...
    
    /////////////
    //// Canción Agilidad Orca. 
    //// Agilidad Orca. Otorga Agilidad	
    /////////////
    
    [regiontype r_cancion_orca_2]
    Defname = r_cancion_orca_2
    
    On=@Enter
    SRC.DEX = <SRC.DEX> + 20
    Src.SYSMESSAGE El sonido del tambor orco te hace mas agil...
    
    On=@EXIT
    SRC.DEX= <SRC.DEX> - 20
    SRC.SYSMESSAGE Pierdes agilidad...
    
    
    /////////////
    //// Canción preparación mágica. 
    //// Cada 30 segundos tira Proteccion, Ar.Reactiva y Escudo en la zona de la canción	
    /////////////
    
    [regiontype r_cancion_orca_3]
    Defname = r_cancion_orca_3
    
    On=@CliPeriodic
    SRC.SPELLEFFECT s_reactive_armor 1000
    SRC.SPELLEFFECT s_protection 1000
    SRC.SPELLEFFECT s_magic_reflection 1000
    SRC.Emote envuelto por el poder mágico de la cancion.
    
    /////////////
    //// Canción stuneadora. 
    //// 20% de Aturdir al Entrar en el Area	
    //// 60% de Permaneciendo en el area (cada 30 Segundos)	
    /////////////
    
    [regiontype r_cancion_orca_4]
    Defname = r_cancion_orca_4
    
    // Arreglar, Variar según reputación orca. Mayor Reputación, Menos %.
    
    On=@Enter
    IF (RAND(10)<2)
    	SRC.f_aturdir_cancion
    ENDIF
    
    On=@CliPeriodic
    IF (RAND(10)<6)
    	SRC.f_aturdir_cancion
    ENDIF
    
    ////////////////////////////////////////
    //Funcion Aturdir
    ////////////////////////////////////////
    
    [function f_aturdir_cancion]
    src.newitem = i_timer_aturdir_cancion
    src.equip = <src.act.uid>
    src.act.timer = 2 //// 2 Segundos
    
    [itemdef i_timer_aturdir_cancion]
    ID=i_memory
    TYPE=t_eq_script
    LAYER=layer_special
    NAME=Timer Aturdir Cancion
    
    On=@Equip
    SRC.Emote aturdido por el sonido
    SRC.ANIM 20
    SRC.Flags = <SRC.Flags> | statf_freeze
    
    On=@UNequip
    SRC.Flags = <src.flags> & ~statf_freeze 
    
    On=@tTimer
    Remove
    Return 1
    
    ////////////////////////////////////////
    // Area canción (Multi)
    ////////////////////////////////////////
    
    [itemdef i_area_cancion_orca]
    Name=Cancion Orca
    ID=i_drum
    TYPE=T_MULTI
    
    CATEGORY=Reputacion Orca
    SUBSECTION=Canción
    DESCRIPTION=Area Canción
    
    MULTIREGION=0,0,0,0
    COMPONENT=0,-4, -4, 0
    COMPONENT=0, 4, 4, 0
    COMPONENT=0,-4, 4, 0
    COMPONENT=0, 4, -4, 0
    REGIONFLAGS=00
    
    ////////////////////////////////////////
    //Funciones de Cancion
    ////////////////////////////////////////
    [function f_cancion]
    SRC.newitem = i_area_cancion_orca
    	var.uid = <src.act.uid>
    	src.act.p = <p>
    	src.act.z = <z>+5  // Altura de cintura
    	src.act.color = colors_green
    	src.act.name = Tambores de guerra
    	src.act.region.events = +r_cancion_orca_<ARGN1>
    SRC.newitem = i_timer_stand
    	src.act.timer = <EVAL(((<SRC.Musicianship>*60)/1000) + ((<SRC.Enticement>)*60)/1000)>
    	var.UIDTimer = <src.act.uid>
    	src.act.link = <var.uid>
    SRC.newnpc = c_orco_tambor
    	src.act.go = <p>
    	src.act.equip <SRC.var.UIDTimer>
    	src.p=<p>
    sfx 57
    
    ////////////////////////////////////////
    // Funcion canción. Retocar para no tocar cerca de casas.
    ////////////////////////////////////////
    
    [function cancion_orca]
    IF (<EVAL((<SRC.Musicianship>/20) + (<SRC.Enticement>/20))> < 95)
    	SRC.Sysmessage Tus conocimientos de musica no son suficientes.
    ELIF (<SRC.isevent.e_cancion_inter>)
    	SRC.Sysmessage No puedes realizar otro.
    ELIF (<REGION.FLAGS>==017980)
    	SRC.Sysmessage Ya hay otra cancion en este area.
    ELIF (<REGION.FLAGS>==0180) || (<REGION.FLAGS>==04180) || (<REGION.FLAGS>>02000)
    	SRC.Sysmessage No puedes hacerlo en esta zona.
    ELIF (<REGION.FLAGS>==01092)
    	SRC.Sysmessage No puedes hacerlo dentro de una casa.
    ELSE
    	src.newitem = i_timer_pre_cancion
    	src.equip = <src.act.uid>
    	src.act.timer = 3  // Tiempo de Precast 3 Segundos
    	src.act.MORE1 = <ARGN1>
    ENDIF
    
    
    ////////////////////////////////////////
    // Precast Canción
    ////////////////////////////////////////
    [itemdef i_timer_pre_cancion]
    ID=i_memory
    TYPE=t_eq_script
    LAYER=layer_special
    NAME=Timer Pre Canción
    
    On=@CREATE
    MORE1=0
    
    On=@Equip
    SRC.FLAGS = <src.flags> |  statf_freeze
    If (<SRC.isevent.e_cancion_inter>)
    	src.sysmessage Ya estas tocando una cancion.
    endif
    SRC.EVENTS +e_cancion_inter
    
    On=@UNEquip
    SRC.FLAGS = <src.flags> & ~ statf_freeze
    IF (<SRC.isevent.e_cancion_inter>)
    	SRC.EVENTS -e_cancion_inter
    	SRC.f_cancion <MORE1>
    ENDIF
    
    On=@Timer
    Remove
    return 1
    
    ////////////////////////////////////////
    // Si es golpado no termina de realizarlo
    ////////////////////////////////////////
    
    [events e_cancion_inter]
    ON=@GETHIT
    IF (<FLAGS>&04) && (<FINDID.i_timer_pre_cancion>)
    	FLAGS=<FLAGS>&~04
    	EVENTS -e_cancion_inter
    	FINDID(i_timer_pre_cancion).remove
    	SYSMESSAGE No consigues lograrlo...
    ENDIF
    
    ////////////////////////////////////////
    // Timer canción (Item)
    ////////////////////////////////////////
    
    [itemdef i_timer_stand]
    ID=i_memory
    TYPE=t_eq_script
    LAYER=layer_special
    NAME=Timer Cancion
    
    on=@Create
    More1=<TIMER>
    Timer=1
    
    On=@Equip
    SRC.Emote Toca con fuerza el tambor
    SRC.ANIM 5
    More1=<TIMER>
    TIMER=1
    
    On=@UNequip
    link.remove
    src.remove
    
    On=@timer
    IF (<MORE1>)
    	IF (rand(100) < 5)
    		CONT.Emote Toca con fuerza el tambor
    		CONT.ANIM 5
    		sfx 57
        	ENDIF
    	MORE1=<MORE1> - 1
    	TIMER=1
    ELSE
    	link.remove
    	remove
    ENDIF
    RETURN 1
    
    ////////////////////////////////////////
    // Orco que toca el tambor. (En la canción)
    ////////////////////////////////////////
    [CHARDEF c_orco_tambor]
    DEFNAME=c_orco_tambor
    NAME=#NAMES_ORC
    ID=c_ORC
    ARMOR=15
    CAN=MT_NONMOVER
    
    CATEGORY=Reputacion Orca
    SUBSECTION=NPC
    DESCRIPTION=Orco Canción
    
    ON=@Create
    BRAIN=brain_none
    NAME=<NAME>, Sangrefria
    COLOR=colors_green
    STR={35 50}
    DEX={25 35}
    INT={10 15}
    PARRYING={60.0 85.0}
    MAGERY={70.0 95.0}
    MAGICRESISTANCE={70.0 85.0}
    
    on=@GETHIT
    IF (<HITS> < <ARGN1>)
    	Say Maldito...
    ELIF (<ARGN1> > 30)  // Si el golpe es muy fuerte, huye
    	Emote huyendo...
    	GO 1,1 // Para crear el efecto humo
    	remove
    	return 1
    ELSE
    	IF (rand(4)==1)
    		SRC.SAY Mi abuela pega más fuerte...
    	ENDIF
    ENDIF
    
    
    ON=@NPCActFight
    return 1 
    
    [EOF]
    Un Saludo
    Envy
    Última edición por Envy; 22-Aug-2011 a las 23:05
    Yo soy ese que hace que Drunk se enamore.

  2. #2
    Avatar de Envy
    Fecha de ingreso
    August-2009
    Ubicación
    En un Zulo
    Clan
    PureStyle
    Facción
    Corsario
    Nacimiento
    Otros - Extranjero
    Mensajes
    1.027
    Reputacion: 48
    Poder de reputación
    15

    Respuesta: Pruebas de Scripts

    Le seguimos dando caña con la IA de Guerra entre Orcos y Trolls.

    Actualmente la IA no esta muy avanzada y a falta de MUCHOS retoques.

    El Orco que creamos atacara a todo Troll que vea.

    Código:
    ////////////////////////////////////////
    // Guerrero Sangrefria
    ////////////////////////////////////////
    
    [CHARDEF c_orco_guerrero_blood]
    DEFNAME=c_orco_guerrero_blood
    NAME=#NAMES_ORC
    ID=c_orc_lord
    DAM=12,35
    ARMOR=25
    TSPEECH=spk_orc
    
    CATEGORY=Reputacion Orca
    SUBSECTION=NPC
    DESCRIPTION=Orco guerrero
    
    ON=@Create
    EVENTS=+e_guerra_troll
    BRAIN=11
    NAME=<NAME>, guerrero Sangrefria
    COLOR=colors_green
    STR={220 320}
    DEX={80 90}
    INT={10 25}
    SWORDSMANSHIP={70.0 85.0}
    PARRYING={70.0 95.0}
    MAGICRESISTANCE={70.0 85.0}
    TACTICS={85.0 100.0}
    FAME={100 2000}
    KARMA=0
    
    ////////////////////////////////////////
    // Eventos de Guerra Orcos Vs Trolls
    ////////////////////////////////////////
    
    ////////////////////////////////////////
    // Evento guerra Trolls
    ////////////////////////////////////////
    
    [EVENTS e_guerra_troll]
    ON=@Attack
    IF (<SRC.ID>==C_Troll)
    	ATTACK
    ELSE
    	return 1
    ENDIF
    
    ON=@Hit
    IF !(<SRC.ID>==C_Troll)
    	return 1
    ENDIF
    
    
    ////////////////////////////////////////
    // Evento guerra Orcos
    ////////////////////////////////////////
    [EVENTS e_guerra_orco]
    ON=@Attack
    IF (<SRC.ID>==C_Orc) || (<SRC.ID>==C_Orc_Lord)
    	ATTACK
    ELSE
    	return 1
    ENDIF
    
    ON=@Hit
    IF !(<SRC.ID>==C_Orc) || !(<SRC.ID>==C_Orc_Lord)
    	return 1
    ENDIF
    
    
    [EOF]
    Yo soy ese que hace que Drunk se enamore.

Temas similares

  1. Respuestas: 1
    Último mensaje: 29-Mar-2010, 19:15
  2. Fallos de scripts
    Por El Dementor en el foro Scripts
    Respuestas: 13
    Último mensaje: 28-Nov-2007, 16:14

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
YoutubeFbChat IRCTwit