Subir

Resultados 1 al 13 de 13

Tema: Desarrollo de Scripts.

  1. #1
    Avatar de Shawe
    Fecha de ingreso
    August-2008
    Facción
    Neutral
    Nacimiento
    Haven
    Mensajes
    240
    Reputacion: 23
    Poder de reputación
    15

    Desarrollo de Scripts.

    Buenas,

    como parte del trabajo de colaborador estoy empezando a aprender scripting en Sphereserver con la supervisión de los GMs. Iré posteando aquí las versiones de lo que vaya saliendo, pre y post revisadas por gente que sepa más que yo, por si os vale como ejemplo y guía para aprender.

    Como se que hay más de una persona competente programando en este foro, agradecería cualquier corrección que me hicierais.

    Sin más os presento a Obsidius 1.0 (basado en uno de los NPCs ideados por Gosnio en una sugerencia que se aceptó):

    Código:
    [CHARDEF 03b]
    DEFNAME = c_dragon_obsidian_final
    NAME = Dragon Obsidiana Definitivo
    ICON = i_pet_dragon
    SOUND = snd_monster_dragon1
    CAN = MT_WALK|MT_FLY|MT_NONHUM
    DAM = 66
    ARMOR = 55
    DESIRES= t_coin,t_gold
    FOODTYPE=80 t_meat_raw
    BLOODCOLOR=colors_blood
    MOVERATE=100
    CATEGORY=Monsters
    SUBSECTION=Dragonkind
    ON=@Create
       NAME=Dragon Obsidiana Definitivo
       TITLE=el dragon
       NPC=brain_dragon
       COLOR=04e7
       FAME={9500 10000}
       KARMA=-15000
       STR={795 825}
       MAXHITS={1000 1065}
       DEX={85 105}
       MAXSTAM={85 105}
       INT={435 475}
       MAXMANA={435 475}    
       MAGICRESISTANCE={100.0 120.0}
       TACTICS={98.0 100.0}
       WRESTLING={100.0 120.0}
       MODAR={0 10}
       RESCOLD={30 40}
       RESENERGY={35 45}
       RESFIRE={60 70}
       RESPOISON={85 95}
    ON=@NPCRestock
       ITEM = loot_dragon
       ITEM = i_ore_shadow,{2,5} //Este drop es ore de obsidium.
       
    [CHARDEF C_H_FIGHTER]
    DEFNAME = c_obsidius
    NAME = Obsidius
    ICON = i_pet_man
    SOUND = snd_human_moomph01
    CAN = MT_WALK|MT_NONHUM
    DAM = 66
    ARMOR = 55
    DESIRES= t_coin,t_gold
    FOODTYPE=80 t_meat_raw
    BLOODCOLOR=colors_blood
    MOVERATE=100
    CATEGORY=Monsters
    SUBSECTION=Dragonkind
    ON=@Create
       NAME=Obsidius
       TITLE=el dragon
       NPC=brain_dragon
       FAME={9500 10000}
       KARMA=-15000
       
       STR={795 825}
       MAXHITS={500 575}
       DEX={85 105}
       MAXSTAM={85 105}
       INT={435 475}
       MAXMANA={435 475}
       
       ITEMNEWBIE=random_male_hair
        COLOR=colors_hair
       ITEMNEWBIE=random_facial_hair
        COLOR=match_hair
       
       ITEMNEWBIE=i_platemail_chest
          COLOR=04e7
       ITEMNEWBIE=i_platemail_leggings
          COLOR=04e7
       ITEMNEWBIE=i_platemail_arms
          COLOR=04e7
       ITEMNEWBIE=i_platemail_gloves
          COLOR=04e7       
               
       MAGICRESISTANCE={99.0 100.0}
       TACTICS={97.0 100.0}
       WRESTLING={95.0 100.0}
       MODAR={0 10}
       RESCOLD={30 40}
       RESENERGY={35 45}
       RESFIRE={60 70}
       RESPOISON={75 95}
    
    ON=@GetHit
     IF (!(<R20>))
          DORAND 4
            SAY @04e7 Deberias medirte con alguien de tu talla!
            SAY @04e7 Arg! Sufriras por esto!
            SAY @04e7 Acabare contigo!
            SAY @04e7 Como te atreves a desafiarme?
          ENDDO
       ENDIF
    //Cuando muere Obsidius, se transforma en su verdadera forma, que es la que dará el lot:
    ON=@DeathCorpse
     LOCAL.NEW=<NEW>
       SERV.NEWNPC c_dragon_obsidian_final
       NEW.GO <P>
       NEW.SAY @04e7 Ahora conoceras mi verdadera forma!
       REF1=<NEW>
          NEW.GO <P>
          NEW.FACE <REF1.UID>      
       NEW=<LOCAL.NEW>
       ARGO.REMOVE

    Tras el vistazo inicial de Drunk, el código va quedando así:

    Código:
    [CHARDEF c_dragon_obsidian_final]
    DEFNAME = c_dragon_obsidian_final
    ID = c_dragon_red
    NAME = Dragon Obsidiana Definitivo
    ICON = i_pet_dragon
    SOUND = snd_monster_dragon1
    CAN = MT_WALK|MT_FLY|MT_NONHUM
    DAM = 66
    ARMOR = 55
    DESIRES= t_coin,t_gold
    FOODTYPE=80 t_meat_raw
    BLOODCOLOR=colors_blood
    MOVERATE=100
    CATEGORY=Monsters
    SUBSECTION=Dragonkind
    ON=@Create
       NAME=Dragon Obsidiana Definitivo
       TITLE=el dragon
       NPC=brain_dragon
       COLOR=04e7
       FAME={9500 10000}
       KARMA=-15000
       STR={795 825}
       MAXHITS={1000 1065}
       DEX={85 105}
       MAXSTAM={85 105}
       INT={435 475}
       MAXMANA={435 475}    
       MAGICRESISTANCE={100.0 120.0}
       TACTICS={98.0 100.0}
       WRESTLING={100.0 120.0}
       MODAR={0 10}
       RESCOLD={30 40}
       RESENERGY={35 45}
       RESFIRE={60 70}
       RESPOISON={85 95}
    ON=@NPCRestock
       ITEM = loot_dragon
       ITEM = i_ore_shadow,{2,5} //Este drop es ore de obsidium.
       
    [CHARDEF c_obsidius]
    DEFNAME = c_obsidius
    ID = c_man
    NAME = Obsidius
    ICON = i_pet_man
    SOUND = snd_human_moomph01
    CAN = MT_WALK|MT_NONHUM
    DAM = 66
    ARMOR = 55
    DESIRES= t_coin,t_gold
    FOODTYPE=80 t_meat_raw
    BLOODCOLOR=colors_blood
    MOVERATE=100
    CATEGORY=Monsters
    SUBSECTION=Dragonkind
    
    ON=@Create
       NAME=Obsidius
       TITLE=el dragon
       NPC=brain_dragon
       FAME={9500 10000}
       KARMA=-15000
       
       STR={795 825}
       MAXHITS={500 575}
       DEX={85 105}
       MAXSTAM={85 105}
       INT={435 475}
       MAXMANA={435 475}
       
       ITEMNEWBIE=random_male_hair
        COLOR=colors_hair
       ITEMNEWBIE=random_facial_hair
        COLOR=match_hair
       
       ITEMNEWBIE=i_platemail_chest
          COLOR=04e7
       ITEMNEWBIE=i_platemail_leggings
          COLOR=04e7
       ITEMNEWBIE=i_platemail_arms
          COLOR=04e7
       ITEMNEWBIE=i_platemail_gloves
          COLOR=04e7       
               
       MAGICRESISTANCE={99.0 100.0}
       TACTICS={97.0 100.0}
       WRESTLING={95.0 100.0}
       MODAR={0 10}
       RESCOLD={30 40}
       RESENERGY={35 45}
       RESFIRE={60 70}
       RESPOISON={75 95}
    
    ON=@GetHit
     IF (!(<R20>))
          DORAND 4
            SAY @04e7 Deberias medirte con alguien de tu talla!
            SAY @04e7 Arg! Sufriras por esto!
            SAY @04e7 Acabare contigo!
            SAY @04e7 Como te atreves a desafiarme?
          ENDDO
       ENDIF
    //Cuando muere Obsidius, se transforma en su verdadera forma, que es la que dará el lot:
    ON=@DeathCorpse
     LOCAL.NEW=<NEW>
       SERV.NEWNPC c_dragon_obsidian_final
       NEW.GO <P>
       NEW.SAY @04e7 Ahora conoceras mi verdadera forma!
       REF1=<NEW>
          NEW.GO <P>
          NEW.FACE <REF1.UID>      
       NEW=<LOCAL.NEW>
       ARGO.REMOVE
    Un saludo!
    Última edición por Shawe; 04-Sep-2015 a las 02:39

  2. #2
    Staff Ultima Alianza Avatar de Sir Drunk
    Fecha de ingreso
    December-2006
    Ubicación
    La isla
    Clan
    Hijos del Viento
    Facción
    Neutral
    Nacimiento
    Otros - Extranjero
    Mensajes
    6.263
    Reputacion: 137
    Poder de reputación
    15

    Re: Desarrollo de Scripts.

    Los defname

    Si fuese la primera vez que scripteas el npc.. debes usar el hexadecimal correspondiente en los muls. Ejemplo del ogro, su hexadecimal es 01. También le asignas un defname que es como lo invocaras en el juego y como te referirás en adelante :

    [CHARDEF 01]
    DEFNAME=c_ogre
    NAME=#NAMES_ORC Ogro
    SOUND=snd_MONSTER_OGRE1
    ICON=i_pet_OGRE
    ANIM=078c7f
    CAN=MT_WALK|MT_USEHANDS
    DAM=5,15
    ARMOR=16
    RESOURCES=6 i_ribs_raw
    FOODTYPE=15 t_meat_raw
    DESIRES=c_ogre, t_arock


    Si luego fueras a hacer un ogro mas fuerte que vas a llamar Ogro elite... ya no usas el hexadecimal, por que ese CUERPO de npc ya lo tienes scripteado. Simplemente pones una referencia al npc. Si por alguna razon se te olvida poner en tu nuevo npc algun parametro, lo tomaria del referido. Por eso yo lo llamo herencia de npcs jejeje SI se te olvida ponerle el ICON al nuevo o algo.. lo cogeria del c_ogre

    [CHARDEF c_ogro_elite]
    DEFNAME=c_ogre_elite
    ID=c_ogre

    NAME=#NAMES_ORC Ogro
    SOUND=snd_MONSTER_OGRE1
    ICON=i_pet_OGRE
    ANIM=078c7f
    ...
    Sir Drunk [Hijos del Viento]
    Email Corporativo: [email protected]
    Email Gmail: [email protected]

  3. #3
    Staff Ultima Alianza Avatar de Sir Drunk
    Fecha de ingreso
    December-2006
    Ubicación
    La isla
    Clan
    Hijos del Viento
    Facción
    Neutral
    Nacimiento
    Otros - Extranjero
    Mensajes
    6.263
    Reputacion: 137
    Poder de reputación
    15

    Re: Desarrollo de Scripts.

    Código:
    [CHARDEF c_dragon_obsidian_final]
    DEFNAME = c_dragon_obsidian_final
    NAME = Dragon Obsidiana Definitivo
    ICON = i_pet_dragon
    SOUND = snd_monster_dragon1
    CAN = MT_WALK|MT_FLY|MT_NONHUM
    DAM = 66 // el scp de pvm de UA ignora este atributo. PEro viene bien tenerlo por si algun dia cambiamos eso jajaja
    ARMOR = 55
    DESIRES= t_coin,t_gold
    FOODTYPE=80 t_meat_raw
    BLOODCOLOR=colors_blood //siendo un dragon de obsidiana molaria poner aqui ke su sangre fuera de color obsidiana jejejeje 
    MOVERATE=100 // por defecto tienen el 100. Asi que mejor no ponerlo :D 
    CATEGORY=Monsters
    SUBSECTION=Dragonkind
    ON=@Create
       NAME=Dragon Obsidiana Definitivo // Si ya le has puesto NAME antes... aqui sobra. 
       TITLE=el dragon
       NPC=brain_dragon
       COLOR=04e7
       FAME={9500 10000}
       KARMA=-15000
       STR={795 825} // EN UA, la fuerza de un npc determina el danio que hace... este npc haria 79,82 de danio por gole sin contar la armadura del oponente. A esto hay que
       DEX={85 105} sumarle un +5 de golpe critico que puede dar cualkier npc. 
       MAXSTAM={85 105} // si vas a poner maxstam o maxalgo, lo mismo ke DEX o el algo que sea ten en cuenta que no hace falta, es como esta por defecto. 
       INT={435 475}
       MAXMANA={435 475} // lo dicho con maxstam   
       MAGICRESISTANCE={100.0 120.0}
       TACTICS={98.0 100.0}
       WRESTLING={100.0 120.0}
       MODAR={0 10} 
       RESCOLD={30 40}
       RESENERGY={35 45}
       RESFIRE={60 70}
       RESPOISON={85 95}
    ON=@NPCRestock  // EN UA NO PONEMOS EL LOOT DEL BICHO AQUI, SINO CUANDO MUERE, en el DEATH. Asi evitamos que si alguien doma el bicho o con alguna magia de control.. le diga al npc ALL DROP y suelte el loot.  
       ITEM = loot_dragon
       ITEM = i_ore_shadow,{2,5} //Este drop es ore de obsidium.
       
    [CHARDEF c_obsidius]
    DEFNAME = c_obsidius
    NAME = Obsidius
    ICON = i_pet_man
    SOUND = snd_human_moomph01
    CAN = MT_WALK|MT_NONHUM
    DAM = 66
    ARMOR = 55
    DESIRES= t_coin,t_gold
    FOODTYPE=80 t_meat_raw
    BLOODCOLOR=colors_blood
    MOVERATE=100
    CATEGORY=Monsters
    SUBSECTION=Dragonkind
    ON=@Create
       NAME=Obsidius
       TITLE=el dragon
       NPC=brain_dragon
       FAME={9500 10000}
       KARMA=-15000
       
       STR={795 825}
       MAXHITS={500 575}
       DEX={85 105}
       MAXSTAM={85 105}
       INT={435 475}
       MAXMANA={435 475}
       
       ITEMNEWBIE=random_male_hair
        COLOR=colors_hair
       ITEMNEWBIE=random_facial_hair
        COLOR=match_hair
       
       ITEMNEWBIE=i_platemail_chest
          COLOR=04e7
       ITEMNEWBIE=i_platemail_leggings
          COLOR=04e7
       ITEMNEWBIE=i_platemail_arms
          COLOR=04e7
       ITEMNEWBIE=i_platemail_gloves
          COLOR=04e7       
               
       MAGICRESISTANCE={99.0 100.0}
       TACTICS={97.0 100.0}
       WRESTLING={95.0 100.0}
       MODAR={0 10}
       RESCOLD={30 40}
       RESENERGY={35 45}
       RESFIRE={60 70}
       RESPOISON={75 95}
    
    ON=@GetHit
     IF (!(<R20>)) //por ke niegas esto?? jejeje para que salte mas veces?
          DORAND 4
            SAY @04e7 Deberias medirte con alguien de tu talla!
            SAY @04e7 Arg! Sufriras por esto!
            SAY @04e7 Acabare contigo!
            SAY @04e7 Como te atreves a desafiarme?
          ENDDO
       ENDIF
    //Cuando muere Obsidius, se transforma en su verdadera forma, que es la que dará el lot:
    ON=@DeathCorpse
     LOCAL.NEW=<NEW> //esta linea sobra CREO
       SERV.NEWNPC c_dragon_obsidian_final
       NEW.GO <P>
       NEW.SAY @04e7 Ahora conoceras mi verdadera forma!
       REF1=<NEW> //esta linea sobra CREO
       NEW.GO <P> //esta linea sobra CREO
       NEW.FACE <REF1.UID>  //tienes que buscar donedse guarda el atacante, el que causo la muerte.. pero esta linea.. tb sobra por que.. para que queires que se gire??? en todoc aso pondria un ATTACK para que le atacara :D   
       NEW=<LOCAL.NEW> //esta linea sobra CREO
       ARGO.REMOVE
    Sir Drunk [Hijos del Viento]
    Email Corporativo: [email protected]
    Email Gmail: [email protected]

  4. #4
    Avatar de Shawe
    Fecha de ingreso
    August-2008
    Facción
    Neutral
    Nacimiento
    Haven
    Mensajes
    240
    Reputacion: 23
    Poder de reputación
    15

    Re: Desarrollo de Scripts.

    Corregido (con posibles gazapos, que he estado trabajando con tres ficheros diferentes del mismo código mientras probaba cambios y puede habérseme pasado algo):

    Código:
    [CHARDEF c_dragon_obsidian_final]
    DEFNAME = c_dragon_obsidian_final
    ID = c_dragon_red
    NAME = Dragon Obsidiana Definitivo
    ICON = i_pet_dragon
    SOUND = snd_monster_dragon1
    CAN = MT_WALK|MT_FLY|MT_NONHUM
    DAM = 66
    ARMOR = 55
    DESIRES= t_coin,t_gold
    FOODTYPE=80 t_meat_raw
    BLOODCOLOR=04e7 //Color obsidiana
    CATEGORY=Monsters
    SUBSECTION=Dragonkind
    ON=@Create
       TITLE=el dragon
       NPC=brain_dragon
       COLOR=04e7
       FAME={9500 10000}
       KARMA=-15000
       STR={795 825}
       DEX={85 105}
       INT={435 475}  
       MAGICRESISTANCE={100.0 120.0}
       TACTICS={98.0 100.0}
       WRESTLING={100.0 120.0}
       MODAR={0 10}
       RESCOLD={30 40}
       RESENERGY={35 45}
       RESFIRE={60 70}
       RESPOISON={85 95}
    ON=@death
        NEWITEM = i_ore_shadow,{2 5}  //Este drop es ore de obsidium.
        act.bounce
        
    [CHARDEF c_obsidius]
    DEFNAME = c_obsidius
    ID = c_man
    NAME = Obsidius
    ICON = i_pet_man
    SOUND = snd_human_moomph01
    CAN = MT_WALK|MT_NONHUM
    DAM = 66
    ARMOR = 55
    DESIRES= t_coin,t_gold
    FOODTYPE=80 t_meat_raw
    BLOODCOLOR=04e7 //Color obsidiana
    CATEGORY=Monsters
    SUBSECTION=Dragonkind
    
    ON=@Create
       TITLE=el dragon
       NPC=brain_dragon
       FAME={9500 10000}
       KARMA=-15000
       
       STR={795 825}
       DEX={85 105}
       INT={435 475}
       
       ITEMNEWBIE=random_male_hair
        COLOR=colors_hair
       ITEMNEWBIE=random_facial_hair
        COLOR=match_hair
       
       ITEMNEWBIE=i_platemail_chest
          COLOR=04e7
       ITEMNEWBIE=i_platemail_leggings
          COLOR=04e7
       ITEMNEWBIE=i_platemail_arms
          COLOR=04e7
       ITEMNEWBIE=i_platemail_gloves
          COLOR=04e7       
               
       MAGICRESISTANCE={99.0 100.0}
       TACTICS={97.0 100.0}
       WRESTLING={95.0 100.0}
       MODAR={0 10}
       RESCOLD={30 40}
       RESENERGY={35 45}
       RESFIRE={60 70}
       RESPOISON={75 95}
    
    ON=@GetHit
     IF (!(<R20>))
          DORAND 4
            SAY @04e7 Deberias medirte con alguien de tu talla!
            SAY @04e7 Arg! Sufriras por esto!
            SAY @04e7 Acabare contigo!
            SAY @04e7 Como te atreves a desafiarme?
          ENDDO
       ENDIF
    //Cuando muere Obsidius, se transforma en su verdadera forma, que es la que dará el lot:
    ON=@DeathCorpse
       SERV.NEWNPC c_dragon_obsidian_final
       NEW.GO <P>
       NEW.SAY @04e7 Ahora conoceras mi verdadera forma!
       ARGO.REMOVE
    Última edición por Shawe; 04-Sep-2015 a las 04:01

  5. #5
    Avatar de Shawe
    Fecha de ingreso
    August-2008
    Facción
    Neutral
    Nacimiento
    Haven
    Mensajes
    240
    Reputacion: 23
    Poder de reputación
    15

    Re: Desarrollo de Scripts.

    He añadido esta función a la forma final de Obsidius:

    Código:
    ON=@SpellEffect
        IF ((<DISTANCE> > 2) && (RAND(2)==0))
          SAY @04e7 No puedes escapar de mi...
          SRC.GO <P>
          ATTACK <SRC.P>
       ENDIF
    Lo que hace es teletransportar a veces a los magos que estén pegando desde lejos hasta el NPC, y cambiar el target para pegarles.

    Otros códigos simplitos de NPCs que van saliendo:

    Drake de Suboscuridad:

    Código:
    [CHARDEF c_drake_suboscuridad]
    ID=c_drake
    DEFNAME=c_drake_suboscuridad
    NAME=Drake de Suboscuridad
    ICON=i_pet_dragon
    SOUND=snd_monster_dragon1
    CAN=MT_WALK|MT_FLY|MT_NONHUM
    DAM=30,46
    ARMOR=45
    DESIRES=r_mountains,r_dungeon,t_coin,t_gold,t_gem
    AVERSIONS=t_trap,r_civilization
    FOODTYPE=60 t_meat_raw
    RESOURCES=10 i_ribs_raw,20 i_hide_horned,4 i_reag_dragon_blood,2 i_scale_red
    BLOODCOLOR=07b5
    CATEGORY=Monsters
    SUBSECTION=Dragonkind
    
    ON=@Create
       TITLE=the drake
       COLOR=07b5
       NPC=brain_dragon
       FAME=5500
       KARMA=-5500
      
       //Las stats están por modificar
       STR={401 430}
       DEX={133 152}
       INT={101 140}
       
       MAXHITS={723 744} //Fuerza que tenga una vida en este rango (tres veces la de un drake).
    
       MAGICRESISTANCE={65.0 80.0}
       TACTICS={65.0 90.0}
       TAMING={80.0 85.0}
       WRESTLING={65.0 80.0}
       MODAR={0 5}
       RESCOLD={40 50}
       RESENERGY={30 40}
       RESFIRE={50 60}
       RESPOISON={20 30}
    ON=@Death
        NEWITEM = i_ore_shadow //Este drop es un ore de suboscuridad.
        act.bounce
    Elemental de Sangre Divina:

    Código:
    [CHARDEF c_elemental_sangre_divina]
    ID=c_elemental_water_summoned //Lo pongo invocado porque por alguna razón al reiniciar el server se me jode el gráfico del NPC si lo pongo normal.
    DEFNAME=c_elemental_sangre_divina
    NAME=Elemental de Sangre Divina
    ICON=i_pet_elem_water
    SOUND=snd_elementl_watrel1
    CAN=MT_WALK|MT_SWIM|MT_NONHUM
    DAM=35,45
    ARMOR=50
    BLOODCOLOR=2600
    CATEGORY=Monsters
    SUBSECTION=Elementals
    
    ON=@Create
       NPC=brain_monster
       COLOR=2600
       FAME={600 3300}
       KARMA=-6500
       
       //Las stats básicas están tal cual, pendientes de cambiar.
       STR={195 205}
       DEX={65 75}
       INT={95 105}
       //Vida asignada según el post original de Gosnio (2 veces la de un elemental de sangre):
       MAXHITS={632 738}
    
       EVALUATINGINTEL={75.0 85.0}
       MAGERY={75.0 85.0}
       MAGICRESISTANCE={70.0 80.0}
       MEDITATION={85.0 95.0}
       TACTICS={95.0 105.0}
       WRESTLING={80.0 90.0}
       MODAR={0 10}
       RESCOLD={70 80}
       RESENERGY={40 50}
       RESFIRE={20 30}
       RESPOISON={45 55}
     
    ON=@NPCRestock //No tiene backpack así que utilizo éste trigger para que caiga el loot al suelo al morir.
       ITEM = i_ore_shadow,{4,6} //El item es sangre de no muerto.

    Tienen esta pinta por ahora:

    NPCs.jpg


    Un saludo, y se siguen agradeciendo correcciones!

  6. #6
    Staff Ultima Alianza Avatar de Sir Drunk
    Fecha de ingreso
    December-2006
    Ubicación
    La isla
    Clan
    Hijos del Viento
    Facción
    Neutral
    Nacimiento
    Otros - Extranjero
    Mensajes
    6.263
    Reputacion: 137
    Poder de reputación
    15

    Re: Desarrollo de Scripts.

    Cita Iniciado por Shawe Ver mensaje
    He añadido esta función a la forma final de Obsidius:

    Código:
    ON=@SpellEffect
        IF ((<DISTANCE> > 2) && (RAND(2)==0))
          SAY @04e7 No puedes escapar de mi...
          SRC.GO <P>
          ATTACK <SRC.P>
       ENDIF
    Esto no distingue si el que lanza la magia es un npc o un player. Asi pues, si un npc lanza un masivo, tu función se puede activar e ir a por ese npc. Y ya sabes que hay muchos npcs que les gusta lanzar masivos... Tampoco distingue de magias buenas de malas... si un npc lanza proteccion masivo, curar veneno masivo o algo de ese palo.. tb le atacaria. Incluso, si hay un npc que cure otros npcs usando el in vas mani... tb le atacaria.
    Sir Drunk [Hijos del Viento]
    Email Corporativo: [email protected]
    Email Gmail: [email protected]

  7. #7
    Staff Ultima Alianza Avatar de Sir Drunk
    Fecha de ingreso
    December-2006
    Ubicación
    La isla
    Clan
    Hijos del Viento
    Facción
    Neutral
    Nacimiento
    Otros - Extranjero
    Mensajes
    6.263
    Reputacion: 137
    Poder de reputación
    15

    Re: Desarrollo de Scripts.

    Cita Iniciado por Shawe Ver mensaje

    Otros códigos simplitos de NPCs que van saliendo:

    Drake de Suboscuridad:

    Código:
    [CHARDEF c_drake_suboscuridad]
    ID=c_drake
    DEFNAME=c_drake_suboscuridad
    NAME=Drake de Suboscuridad
    ICON=i_pet_dragon
    SOUND=snd_monster_dragon1
    CAN=MT_WALK|MT_FLY|MT_NONHUM
    DAM=30,46
    ARMOR=45
    DESIRES=r_mountains,r_dungeon,t_coin,t_gold,t_gem
    AVERSIONS=t_trap,r_civilization
    FOODTYPE=60 t_meat_raw
    RESOURCES=10 i_ribs_raw,20 i_hide_horned,4 i_reag_dragon_blood,2 i_scale_red
    BLOODCOLOR=07b5
    CATEGORY=Monsters
    SUBSECTION=Dragonkind
    
    ON=@Create
       TITLE=the drake
       COLOR=07b5
       NPC=brain_dragon
       FAME=5500
       KARMA=-5500
      
       //Las stats están por modificar
       STR={401 430}
       DEX={133 152}
       INT={101 140}
       
       MAXHITS={723 744} //Fuerza que tenga una vida en este rango (tres veces la de un drake).
    
       MAGICRESISTANCE={65.0 80.0}
       TACTICS={65.0 90.0}
       TAMING={80.0 85.0}
       WRESTLING={65.0 80.0}
       MODAR={0 5}
       RESCOLD={40 50}
       RESENERGY={30 40}
       RESFIRE={50 60}
       RESPOISON={20 30}
    ON=@Death
        NEWITEM = i_ore_shadow //Este drop es un ore de suboscuridad.
        act.bounce
    El title lo puedes poner donde el name.
    Sir Drunk [Hijos del Viento]
    Email Corporativo: [email protected]
    Email Gmail: [email protected]

  8. #8
    Staff Ultima Alianza Avatar de Sir Drunk
    Fecha de ingreso
    December-2006
    Ubicación
    La isla
    Clan
    Hijos del Viento
    Facción
    Neutral
    Nacimiento
    Otros - Extranjero
    Mensajes
    6.263
    Reputacion: 137
    Poder de reputación
    15

    Re: Desarrollo de Scripts.

    Cita Iniciado por Shawe Ver mensaje
    Código:
    [CHARDEF c_elemental_sangre_divina]
    .
    .
    .
    ON=@NPCRestock //No tiene backpack así que utilizo éste trigger para que caiga el loot al suelo al morir.
       ITEM = i_ore_shadow,{4,6} //El item es sangre de no muerto.
    Death... no restock jeje
    En general muy buen trabajo
    Sir Drunk [Hijos del Viento]
    Email Corporativo: [email protected]
    Email Gmail: [email protected]

  9. #9
    Avatar de Shawe
    Fecha de ingreso
    August-2008
    Facción
    Neutral
    Nacimiento
    Haven
    Mensajes
    240
    Reputacion: 23
    Poder de reputación
    15

    Re: Desarrollo de Scripts.

    Cita Iniciado por Sir Drunk Ver mensaje
    Esto no distingue si el que lanza la magia es un npc o un player. Asi pues, si un npc lanza un masivo, tu función se puede activar e ir a por ese npc. Y ya sabes que hay muchos npcs que les gusta lanzar masivos... Tampoco distingue de magias buenas de malas... si un npc lanza proteccion masivo, curar veneno masivo o algo de ese palo.. tb le atacaria. Incluso, si hay un npc que cure otros npcs usando el in vas mani... tb le atacaria.
    Cierto! Gracias.

    Arreglado:

    Código:
    ON=@SpellEffect
        IF ((<DISTANCE> > 2) && (RAND(2)==0) && (SRC.isplayer))
          SAY @04e7 No puedes escapar de mi...
          SRC.GO <P>
          ATTACK <SRC.P>
       ENDIF
    Última edición por Shawe; 07-Sep-2015 a las 13:38

  10. #10
    Avatar de Shawe
    Fecha de ingreso
    August-2008
    Facción
    Neutral
    Nacimiento
    Haven
    Mensajes
    240
    Reputacion: 23
    Poder de reputación
    15

    Re: Desarrollo de Scripts.

    De la sugerencia de Harry el Sucio:

    2- Bichos que hagan dispel a TODAS las invocaciones.

    Estas criaturas no podrían ser tanqueadas por ninguna invocación. Así, además de los elfos, se pasarían por la piedra zoostrichs, espectros, momias, espíritus aullantes... todas las invocaciones tanto de mago puro, como de nigromante.

    Código:
    ON=@GetHit
    	if(<src.flags>&statf_conjured)
    		 //src.kill  //Este hace la animación del .kill de GM, que me parece muy épico.
    		 src.hits=0 //Este se lo carga sin más fiestas
    	endif

  11. #11
    Avatar de Shamino
    Fecha de ingreso
    May-2007
    Ubicación
    Valencia
    Clan
    Asesinos
    Facción
    Guardia Negra
    Nacimiento
    Ocllo
    Mensajes
    1.659
    Reputacion: 65
    Poder de reputación
    15

    Re: Desarrollo de Scripts.

    A los dispels yo le haria esto:
    SAY @0 An Ort
    SRC.SPELLEFFECT s_dispel 1000

    Luego el ATTACK <SRC.P> esta mal, le sobra el .P, no se puede atacar a una location jeje.

    Enviado desde mi Moto G2 mediante Tapatalk.

    "Mi mundo es el infierno de los infieles. Mi sangre el placer de los inmortales"


  12. #12
    Avatar de Shawe
    Fecha de ingreso
    August-2008
    Facción
    Neutral
    Nacimiento
    Haven
    Mensajes
    240
    Reputacion: 23
    Poder de reputación
    15

    Re: Desarrollo de Scripts.

    Cita Iniciado por Shamino Ver mensaje
    A los dispels yo le haria esto:
    SAY @0 An Ort
    SRC.SPELLEFFECT s_dispel 1000

    Luego el ATTACK <SRC.P> esta mal, le sobra el .P, no se puede atacar a una location jeje.

    Enviado desde mi Moto G2 mediante Tapatalk.
    Gracias Sham, cuando modifique resubo Puse lo del hitpoints porque pensaba añadirle familiares y golems también a la misma función, solo que no sabía como identificarlos.

  13. #13
    Avatar de Shawe
    Fecha de ingreso
    August-2008
    Facción
    Neutral
    Nacimiento
    Haven
    Mensajes
    240
    Reputacion: 23
    Poder de reputación
    15

    Re: Desarrollo de Scripts.

    Del post de Gosnio:

    Cuervo Infectado (un cuervo)

    STR: 2 veces la de un dragón
    DEX: igual a la de un dragón
    INT: igual a la de un dragón
    Velocidad: +2
    Vida: +4 a la de un dragón
    Loot extra: viales de sangre de no muerto de 100 a 150
    Ias: pociones de vida mejorada
    Acciones: compartir dolor, capacidad para tele portarse a cualquier otro sitio del mapa (isennar)
    Código:
    [CHARDEF c_cuervo_infectado]
    DEFNAME = c_cuervo_infectado
    ID = c_phoenix
    NAME = Cuervo Infectado
    ICON=i_pet_phoenix_red
    SOUND=snd_monster_harpy1
    CAN=MT_WALK|MT_FLY|MT_NONHUM
    DAM=77,92
    ARMOR=45
    DESIRES=r_mountains,t_coin,t_gold,t_gem,t_wand,t_potion,t_scroll,t_reagent
    AVERSIONS=t_trap,r_civilization
    FOODTYPE=t_meat_raw
    MAXFOOD=55
    RESOURCES=1 i_bird_raw,36 i_feather
    BLOODCOLOR=colors_blood
    CATEGORY=Monsters
    SUBSECTION=Miscellaneous
    
    ON=@Create
       COLOR=4012
       NPC=brain_monster
       FAME={5000 5499}
       KARMA={-5000 -5499}
       STR={500 700}
       MAXHITS={340 390}
       DEX={200 300}
       INT={500 700}
       
       MAGICRESISTANCE={85.0 135.0}
       TACTICS={80.0 90.0}
       WRESTLING={90.0 100.0}
       
       MODAR={0 10}
       RESCOLD={0 5}
       RESENERGY={40 50}
       RESFIRE={60 70}
       RESPOISON={25 35}
       
    ON=@GetHit
        IF(<src.isplayer>)
            LOCAL.TEST=<R99>
            //NPC y player teleportados a otro lugar:
            IF (!(<tag0.once>) && !(<R30>))        
                SAY @0 Tu perdicion llega!
                src.go 5206,1254,0
                go 5206,1254,0
                tag.once=1    
            ENDIF
            //Compartir dolor:
            IF (!(<R15>))
                src.hits = <src.hits> - <argn1>
                src.SYSMESSAGE Sientes un dolor de <argn1> producido en tu propio cuerpo.            
            ENDIF
        ENDIF
    cuervo.jpg

    Se que tiene un color raro, pero es que no me funciona la paleta de colores del Axis y me conformé con ese xD Si alguno tiene otra preferencia, se aceptan!


    Pd: OJO con no poner un espacio entre el IF y la condición, que os puede hacer perder un tiempo considerable xD.

Temas similares

  1. Scripts en general
    Por _Skorpio en el foro Scripts
    Respuestas: 0
    Último mensaje: 20-Feb-2014, 17:10
  2. Pruebas de Scripts
    Por Envy en el foro Scripts
    Respuestas: 1
    Último mensaje: 07-Sep-2011, 03:35
  3. Servicios de desarrollo de Macros para easyUO
    Por ferguson en el foro Macros
    Respuestas: 1
    Último mensaje: 14-Dec-2010, 14:22
  4. Desarrollo de macros profesionales.
    Por Kirtash en el foro Macros
    Respuestas: 3
    Último mensaje: 25-Nov-2010, 14:27
  5. Consulta de scripts
    Por kur1979 en el foro Scripts
    Respuestas: 1
    Último mensaje: 20-Jun-2009, 16:29

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