Código:
////////////////////////////////////////////////////////////
// Sistema de Arenas de Desafio Individual v-1.3
// Actualmente el sistema tiene 7 Niveles. A menor nivel, mayor cantidad de NPC
// Los NPCs son inmunes a hechizos de area (Meteoritos, Chain Lighting y Terremoto)
// Cuando el jugador derrota al último boss se proclama campeón
// y no se podra volver a usar la arena hasta el siguiente dia
//
// - Ajustar para que no pueda usar libro de runas, ni mapa, ni ninguna forma que pueda abandonar la zona
// la unica manera de abandonar la zona que sea o ganando, muriendo o suicidandose.
//
// Hecho por: Envy 07-09-2011
////////////////////////////////////////////////////////////
//////////////////////////////
// Area de Combate
//////////////////////////////
[itemdef i_area_combate_battle]
Name=Arena de los Heroes
ID=I_blood_pool_large
TYPE=T_MULTI_CUSTOM
CATEGORY=Arenas de Desafio
SUBSECTION=Desafio Individual
DESCRIPTION=Zona de Desafio
//////////////////////////////
// Area de la conquista. Ajustar
//////////////////////////////
MULTIREGION=0,0,0,0
COMPONENT=062,-10, -10, 0
COMPONENT=05F, -9, -10, 0
COMPONENT=05F, -8, -10, 0
COMPONENT=05F, -7, -10, 0
COMPONENT=05F, -6, -10, 0
COMPONENT=05F, -5, -10, 0
COMPONENT=05F, -4, -10, 0
COMPONENT=05F, -3, -10, 0
COMPONENT=05F, -2, -10, 0
COMPONENT=05F, -1, -10, 0
COMPONENT=05F, 0, -10, 0
COMPONENT=05F, 1, -10, 0
COMPONENT=05F, 2, -10, 0
COMPONENT=05F, 3, -10, 0
COMPONENT=05F, 4, -10, 0
COMPONENT=05F, 5, -10, 0
COMPONENT=05F, 6, -10, 0
COMPONENT=05F, 7, -10, 0
COMPONENT=05F, 8, -10, 0
COMPONENT=05F, 9, -10, 0
COMPONENT=05F, 10, -10, 0
COMPONENT=060, 10, -9, 0
COMPONENT=060, 10, -8, 0
COMPONENT=060, 10, -7, 0
COMPONENT=060, 10, -6, 0
COMPONENT=060, 10, -5, 0
COMPONENT=060, 10, -4, 0
COMPONENT=060, 10, -3, 0
COMPONENT=060, 10, -2, 0
COMPONENT=060, 10, -1, 0
COMPONENT=060, 10, 0, 0
COMPONENT=060, 10, 1, 0
COMPONENT=060, 10, 2, 0
COMPONENT=060, 10, 3, 0
COMPONENT=060, 10, 4, 0
COMPONENT=060, 10, 5, 0
COMPONENT=060, 10, 6, 0
COMPONENT=060, 10, 7, 0
COMPONENT=060, 10, 8, 0
COMPONENT=060, 10, 9, 0
COMPONENT=061, 10, 10, 0
COMPONENT=05F, 9, 10, 0
COMPONENT=05F, 8, 10, 0
COMPONENT=05F, 7, 10, 0
COMPONENT=05F, 6, 10, 0
COMPONENT=05F, 5, 10, 0
COMPONENT=05F, 4, 10, 0
COMPONENT=05F, 3, 10, 0
COMPONENT=05F, 2, 10, 0
COMPONENT=05F, 1, 10, 0
COMPONENT=05F, 0, 10, 0
COMPONENT=05F, -1, 10, 0
COMPONENT=05F, -2, 10, 0
COMPONENT=05F, -3, 10, 0
COMPONENT=05F, -4, 10, 0
COMPONENT=05F, -5, 10, 0
COMPONENT=05F, -6, 10, 0
COMPONENT=05F, -7, 10, 0
COMPONENT=05F, -8, 10, 0
COMPONENT=05F, -9, 10, 0
COMPONENT=060, -10, 10, 0
COMPONENT=060, -10, 9, 0
COMPONENT=060, -10, 8, 0
COMPONENT=060, -10, 7, 0
COMPONENT=060, -10, 6, 0
COMPONENT=060, -10, 5, 0
COMPONENT=060, -10, 4, 0
COMPONENT=060, -10, 3, 0
COMPONENT=060, -10, 2, 0
COMPONENT=060, -10, 1, 0
COMPONENT=060, -10, 0, 0
COMPONENT=060, -10, -1, 0
COMPONENT=060, -10, -2, 0
COMPONENT=060, -10, -3, 0
COMPONENT=060, -10, -4, 0
COMPONENT=060, -10, -5, 0
COMPONENT=060, -10, -6, 0
COMPONENT=060, -10, -7, 0
COMPONENT=060, -10, -8, 0
COMPONENT=060, -10, -9, 0
// Decoración
COMPONENT=i_bone_skull, -3, -7, 0
COMPONENT=i_bone_skull, -8, 8, 0
COMPONENT=i_bone_skull, 5, -1, 0
COMPONENT=0277, 6, -2, 0
COMPONENT=0277, 6, -2, 0
COMPONENT=0277, 9, -8, 0
COMPONENT=027c, 8, -8, 0
COMPONENT=027c, 2, -8, 0
COMPONENT=027c, -9, 6, 0
COMPONENT=027c, 2, -7, 0
COMPONENT=027c, -1, 3, 0
COMPONENT=027c, 6, 5, 0
COMPONENT=0279, 6, -1, 0
COMPONENT=0279, -5, -2, 0
COMPONENT=0278, -8,-7, 0
COMPONENT=0278, 2, -2, 0
COMPONENT=0278, -7, 5, 0
COMPONENT=027a, 6, 8, 0
COMPONENT=027a, -7, 7, 0
COMPONENT=0122b, 3, -6, 0
COMPONENT=0122b, -5, 2, 0
COMPONENT=0122d, 1, -8, 0
COMPONENT=0122d, -1, 2, 0
COMPONENT=0122d, 6, 7, 0
COMPONENT=0122c, 7, 3, 0
COMPONENT=I_blood_pool_large, 1, 6, 0
// Fin de Decoración
COMPONENT=i_piedra_arena_battle, 11, 0, 0
REGIONFLAGS=region_flag_underground
[email protected]
Attr=attr_static
////////////////////////////////
// Piedra para Entrar en la Arena
////////////////////////////////
[itemdef i_piedra_arena_battle]
defname=i_piedra_arena_battle
Name=Inscripcion a la Arena
ID=0ed5
TYPE=T_normal
[email protected]
IF (<Region.tag0.Activo> == 1)
SRC.Sysmessage Estan peleando en este momento.
Return 1
ELIF (<Region.tag0.Activo> == 2)
SRC.Sysmessage Ya se ha coronado un campeon de la arena.
Return 1
ELSE
IF !(<SRC.FINDID.i_timer_reto>)
UID.<Region.UID>.More1= <SRC.p.x>
UID.<Region.UID>.More2= <SRC.p.y>
SRC.GO <UID.<REGION.UID>.p>
SRC.Events=+e_control_arena
UID.<REGION.UID>.Link = <SRC.UID>
SRC.Tag0.Torneo = 1
Region.Tag0.activo = 1
f_nivel_boss 0
Return 1
ELSE
SRC.Sysmessage Has sido derrotado recientemente.
Return 1
ENDIF
ENDIF
////////////////////////////////
// Timer Derrotado
////////////////////////////////
[Itemdef i_timer_reto]
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
NAME=Timer Reto
[email protected]
Timer = 10800 // Tiempo 3 horas sin poder volver a entrar
[email protected]
Remove
return 1
////////////////////////////////
// Control Player
////////////////////////////////
[EVENTS e_control_arena]
[email protected]
f_premio <EVAL(<Region.Tag0.Nivel>)>
IF !(<Region.Tag0.Nivel>==7)
newitem = i_timer_reto
src.equip = <new.uid>
ELSE
Serv.b <UID.<Region.UId>.Link.Name> es el nuevo campeon de la <UID.<Region.UId>.Name>
ENDIF
REGION.Tag0.Nivel
SRC.Tag0.Torneo
SRC.Go <Eval(<UID.<Region.UID>.More1>)>, <EVAL(<UID.<Region.UID>.More2>)>
SRC.Hits = <MaxHits>
SRC.Events = -e_control_arena
Return 1
[email protected]
IF (<ARGN1>==32) || (<ARGN1>==45) || (<ARGN1>==52)
Src.Sysmessage No puedes realizar esto aqui.
Return 1
ENDIF
////////////////////////////////
// Control NPC
////////////////////////////////
[EVENTS e_control_arena_NPC]
[email protected]
Region.Tag0.Enemigos -= 1
IF (<Region.Tag0.Enemigos>==0)
Region.Tag0.Nivel += 1
UID.<SRC.Tag0.UIDControl>.Remove
f_nivel_boss <EVAL(<Region.Tag0.Nivel>)>
ENDIF
flags |= statf_conjured // Desaparecen cuando mueren. No aparece el cuerpo.
[email protected]
IF (<ARGN1>==57) || (<ARGN1>==55) || (<ARGN1>==49)
Return 1
ENDIF
////////////////////////////////
// Funcion Timer Boss
////////////////////////////////
[Function f_nivel_boss]
newitem i_timer_nuevo_boss
new.p <UID.<REGION.UID>.P>
new.more1 = <ARGN1>
////////////////////////////////
// Timer para Nuevo Boss
////////////////////////////////
[itemdef i_timer_nuevo_boss]
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
NAME=Timer Control Total Batalla
[email protected]
ATTR=04000
Timer=5 // Tiempo que tarda en aparecer los NPC
[email protected]
IF (<UID.<Region.UID>.Link.ISEVENT.e_control_arena>==1) && (<Region.Tag.Activo>==1) && !(<EVAL(<Region.Tag0.Enemigos>)>)
IF (<EVAL(<MORE1>)> >= 5)
Local.x = 1
ELSE
Local.x = 5 - <EVAL(<MORE1>)>
ENDIF
FOR 1 <EVAL(<Local.x>)>
DOSWITCH <EVAL(<MORE1>)>
newnpc nivel_1
newnpc nivel_2
newnpc nivel_3
newnpc nivel_4
newnpc nivel_5
newnpc nivel_6
newnpc nivel_7
f_terminar_arena
ENDDO
IF !(<EVAL(<MORE1>)>==7)
Tag0.NPC<Tagcount> = <new.uid>
new.GO <p>
new.move <EVAL {-5 5}>,<EVAL {-5 5}>
new.tag0.UIDControl = <uid>
new.events = +e_control_arena_npc
Region.Tag0.Enemigos += 1
ENDIF
ENDFOR
Timer= 240 // Tiempo que tiene para matar todos los NPC
ELSE
FOR 0 <EVAL(<Tagcount>-1)>
UID.<Tag0.NPC<eval(<local._FOR>)>>.Remove
ENDFOR
IF (<UID.<Region.UID>.Link.ISEVENT.e_control_arena>==1)
UID.<Region.UID>.Link.Kill
ENDIF
Region.Tag0.Activo
Region.Tag0.Nivel
Region.Tag0.Enemigos
REMOVE
ENDIF
IF (<EVAL(<MORE1>)>==7)
REMOVE
ENDIF
Return 1
////////////////////////////////
// Funcion Terminar
////////////////////////////////
[Function f_terminar_arena]
IF (<UID.<Region.UID>.Link.ISEVENT.e_control_arena>==1)
UID.<Region.UID>.Link.Kill
ENDIF
newitem i_timer_arena_conquistada
new.p <UID.<REGION.UID>.P>
Region.Tag0.Activo 2
////////////////////////////////
// Timer Arena Conquistada
////////////////////////////////
[itemdef i_timer_arena_conquistada]
ID=i_memory
TYPE=t_eq_script
LAYER=layer_special
NAME=Timer Arena Conquistada
[email protected]
ATTR=04000
Timer=86400 // Tiempo que permanece la arena conquistada
[email protected]
Serv.B La <UID.<Region.UID>.Name> espera un nuevo campeon.
Region.Tag0.Activo
Region.Tag0.Nivel
Remove
Return 1
////////////////////////////////
// Funcion Premio
////////////////////////////////
[Function f_premio]
IF !<EVAL(<ARGN1>==0)>
DOSWITCH <EVAL(<ARGN1>-1)>
newitem TM_Premio_1
newitem TM_Premio_2
newitem TM_Premio_3
newitem TM_Premio_4
newitem TM_Premio_5
newitem TM_Premio_6
newitem TM_Premio_7
ENDDO
new.Bounce
ENDIF
////////////////////////////////
// Niveles Boss
////////////////////////////////
[DEFNAME nivel_bosses]
nivel_1 { c_scorpion_giant 1 c_snake_giant 1 c_spider_giant 1 c_m_silver_serpent 1 c_m_goblin 1 c_m_goblin_mage 1 c_mongbat 1 c_m_ghost 1 c_skeleton 1 c_m_wraith 1 c_zombie 1 }
nivel_2 { c_elem_air 1 c_elem_fire 1 c_elem_water 1 c_m_goblin_lord 1 c_ettin 1 c_lizardman 1 c_harpy 1 c_reaper 1 c_m_orc_captain 1 c_ratman_w_sword 1 c_terathan_drone 1 c_m_mummy 1 c_skeleton_w_sword 1 }
nivel_3 { c_elem_earth 1 c_m_efreet 1 c_m_elem_snow 1 c_m_elem_ice 1 c_ettin_w_axe 1 c_m_frost_ettin 1 c_titan 1 c_troll 1 c_lizardman_spear 1 C_m_stoneharpy 1 c_m_terathan_avenger 1 c_gargoyle 1 c_m_gazer_elder 1 c_gazer 1 }
nivel_4 { c_m_icefiend 1 c_m_gargoyle_stone 1 c_daemon 1 c_m_dragon_greendrake 1 c_m_dragon_bluedrake 1 c_m_elem_poison 1 c_troll_w_mace 1 c_m_ogre_lord 1 c_ophidian_mage 1 c_ophidian_warrior 1 c_liche 1 c_m_wyvern 1 }
nivel_5 { c_m_balron 1 c_dragon_green 1 c_dragon_red 1 c_m_dragon_wyrm 1 c_m_elem_blood 1 c_cyclops 1 c_m_cyclops_king 1 c_ophidian_queen 1 c_m_liche_lord 1 }
nivel_6 { c_serpentine_dragon 1 c_orc_brute 1 c_m_dragon_crystal 1 }
nivel_7 { c_ancient_wyrm 1 c_bog_thing 1 c_reptile_lord c_skeletal_dragon 1 c_arcane_daemon 1 }
////////////////////////////////
// Template Premios
////////////////////////////////
[TEMPLATE TM_Premio_1]
CATEGORY=Premios
SUBSECTION=Premios Arenas
DESCRIPTION=Nivel 1
CONTAINER=I_BAG
ITEM=I_GOLD,1000
[TEMPLATE TM_Premio_2]
CATEGORY=Premios
SUBSECTION=Premios Arenas
DESCRIPTION=Nivel 2
CONTAINER=I_BAG
ITEM=I_GOLD,2000
[TEMPLATE TM_Premio_3]
CATEGORY=Premios
SUBSECTION=Premios Arenas
DESCRIPTION=Nivel 3
CONTAINER=I_BAG
ITEM=I_GOLD,3000
[TEMPLATE TM_Premio_4]
CATEGORY=Premios
SUBSECTION=Premios Arenas
DESCRIPTION=Nivel 4
CONTAINER=I_BAG
ITEM=I_GOLD,4000
[TEMPLATE TM_Premio_5]
CATEGORY=Premios
SUBSECTION=Premios Arenas
DESCRIPTION=Nivel 5
CONTAINER=I_BAG
ITEM=I_GOLD,5000
[TEMPLATE TM_Premio_6]
CATEGORY=Premios
SUBSECTION=Premios Arenas
DESCRIPTION=Nivel 6
CONTAINER=I_BAG
ITEM=I_GOLD,6000
[TEMPLATE TM_Premio_7]
CATEGORY=Premios
SUBSECTION=Premios Arenas
DESCRIPTION=Nivel 7
CONTAINER=I_BAG
ITEM=RANDOM_PLATEMAIL_ARMOR,1
ITEM=RANDOM_AXETYPE_vanq,1
ITEM=I_GOLD,7000
[EOF]