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.
Un SaludoCó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]
Envy


Citar




