Saltar al contenido

Más en DLAN: Nuestras Traducciones | Otras Traducciones | Mods y modding | Revisiones y Guías | Videojuegos | Arte | Literatura | Rol y Rol por foro e IRC | Mapa de la web
Foto

Limpiar area de enemigos


4 respuestas al tema

#1 Komanche

Komanche

    Humano

  • Miembro
  • Pip
  • 82 posts

Posteado 25 February 2020 - 08:21 AM

¿Cómo hacéis la típica misión de " Vete y limpia esa zona de enemigos"?

 

 

 



#2 Obsidiana

Obsidiana

    Humano

  • Miembro
  • Pip
  • 49 posts

Posteado 25 February 2020 - 12:10 PM

Yo pondría encuentros que diesen un número fijo de criaturas siempre, por ejemplo 10. Y a esas criaturas le pondría una etiqueta especial.

 

En el ondeath de la criatura, pondría un script personalizado, donde cada vez que muere, suma +1 a una variable. Y cuando haya matado a todos los encuentros (que serían 10 criaturas) con un if (getlocalint (oAsesino, "asesinatos") == 10), que te lance la misión del diario x. Habría que adaptar esto para que oAsesino pues fuese parte del grupo del jugador, o algún convocado... pero bueno eso es poner una aclaración de quien es oAsesino y si es valido pues ale.

 

Se puede hacer otra opción, que es en el onenter del area, poner un script que te cree las criaturas en x puntos de ruta. Y en en el heathbeart del area cuando vea que no hay criaturas, salte... pero yo creo que es un embrollo.


Editado por Obsidiana, 25 February 2020 - 12:14 PM.


#3 Zoraga

Zoraga

    Neonato

  • Miembro
  • PipPip
  • 246 posts

Posteado 27 February 2020 - 09:16 AM

Como dice Obsidiana, hacelo con variables, ahorita me puse a hacer algo así, no lo he probado pero puede ser útil (ahí le cambias las variables y recompensa según tu necesidad, le puse para cuando mate 10 bichos o mas):

 



En OnDeath de la criatura:

 

void main()
{

 

ExecuteScript("nw_c2_default7", OBJECT_SELF);


object oPC = GetLastKiller();

while (GetIsObjectValid(GetMaster(oPC)))
   {
   oPC=GetMaster(oPC);
   }

if (!GetIsPC(oPC)) return;

if (GetLocalInt(oPC, "mision1_activa")!= 1)
   return;

int nInt;
nInt = GetLocalInt(oPC, "bichos_asesinados");

nInt += 1;

SetLocalInt(oPC, "bichos_asesinados", nInt);

}

 

 



En la conversación del NPC:

Cuando te da la misión (Acciones emprendidas):
-Acepto la misión.
 

void main()
{

object oPC = GetPCSpeaker();

SetLocalInt(oPC, "mision1_activa", 1);

}

 

 

Cuando entregas la misión (El texto aparece cuando):
-He terminado de limpiar la zona.
 

int StartingConditional()
{
object oPC = GetPCSpeaker();

if (GetLocalInt(oPC, "bichos_asesinados") <= 9) return FALSE;

return TRUE;
}

 

 

Cuando terminas la misión (Acciones emprendidas):
-Gracias por la recompensa, adios.
 

#include "nw_i0_tool"
void main()
{

object oPC = GetPCSpeaker();

SetLocalInt(oPC, "mision1_activa", 0);

SetLocalInt(oPC, "bichos_asesinados", 0);

RewardPartyXP(500, oPC, FALSE);

RewardPartyGP(1000, oPC, FALSE);

}

 


Colaborando en:



Nombre servidor: ES) Rebelión del Submundo
Tipo de servidor: rol/acción/jvj
Jugadores: 1-25
Niveles: 1-30
Base literaria: Reinos Olvidados
IP (conectar directamente): sombrasdefaerun.no-ip.org
Foro: http://usn-rol.foroes.org/



 


#4 lavafuego

lavafuego

    Ancillae

  • Miembro
  • PipPipPip
  • 408 posts

Posteado 08 March 2020 - 10:48 PM

O simplemente pon un objeto en el inventario de las criaturas (desprendible) y en la conversación cuando tenga X de esos objetos le de por concedida la quest (cada uno representa uno de esos bichos muertos)

http://tierrasdenemar.mi-foro.es/  (abierto para test 79.109.30.79:5121 )


#5 lavafuego

lavafuego

    Ancillae

  • Miembro
  • PipPipPip
  • 408 posts

Posteado 08 March 2020 - 10:48 PM

O simplemente pon un objeto en el inventario de las criaturas (desprendible) y en la conversación cuando tenga X de esos objetos le de por concedida la quest (cada uno representa uno de esos bichos muertos)

http://tierrasdenemar.mi-foro.es/  (abierto para test 79.109.30.79:5121 )




Responder



  


A Bragol. Tus amigos te echan de menos.