Jump to content

Dudas NPC


Badariel

Recommended Posts


  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  6
  • Reputation:   0
  • Joined:  01/27/14
  • Last Seen:  

Buenas tengo unas dudas de algunos commandos a ver si me pueden ayudar

 

 

1.- Como logro hacer que un npc me mande hablar con otro es que quiero crear una quest pero necesito que hablen con distintos npc

 

2.- Como puedo lograr hacer que un npc al llegar al nivel 20 me hable sin importar el lugar donde este y me de algun mensaje

 

3.- Como puedo lograr hacer que el script active algun comando como el de poder clonar algún personaje con el que esta hablando

 

Y tengo otras dudas del server a ve rsi me las pueden responder estas igual porfavor

 

Como puedo crear un item pero que este sea etc. es que solo encontrado guias que enseñan a colocar armas o alas y me enredo xD

 

Bueno eso si me pueden ayudar profavor estaría muy agradecido, y si son tan amables de dejarme algunos ejemplos mucho mejor de verdad muchas gracias

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  15
  • Topics Per Day:  0.00
  • Content Count:  59
  • Reputation:   19
  • Joined:  01/03/13
  • Last Seen:  

Hola Badariel,

 

te voy a responder en orden a tus preguntas y con ejemplos para que lo veas un poco más claro. De todos modos, si después tienes alguna duda avisame.

 

1 - ¿Cómo logro hacer que un npc me mande hablar con otro es que quiero crear una quest pero necesito que hablen con distintos npc?

 

Lo primero es dirigirnos al primer npc con el que debemos hablar y asegurarnos de que nos asigne la quest, ejemplo:

-	script	Quest1	-1,{

set .@nombre$,"[ Quest NPC 1]";

	if (Quest == 1) {
	
		mes .@nombre$;
		mes "¿Qué haces aún por aqui?";
		next;
		mes .@nombre$;
		mes "Ve a buscar al Quest NPC 2.";
		close;
	}

	mes .@nombre$;
	mes "Hola "+strcharinfo(0)+",";
	mes "¿Quieres aceptar mi quest?";
	if(select("Si:No")==2) { end; } else {
	
		mes .@nombre$;
		mes "De acuerdo, para continuar busca al Quest NPC 2.";
		close2;
		set Quest,1;
		end;
	}
}

Si te fijas, al final del script, cuando teminas de hablar con el NPC se asigna la variable "Quest" en 1 al user. Con esto identificamos si el usuario ha hablado ya con el a través del comando if (Quest == 1) {} a través de esos dos comandos vas comprobando si el usuario habla con todos los npc que debería hablar y haces que lleven un orden. Por ejemplo, para el siguiente NPC con el que debería hablar es Quest NPC 2 (no tiene porq llamarse así xD):

-	script	Quest2	-1,{

set .@nombre$,"[ Quest NPC 2 ]";

	if (Quest > 1) { mes .@nombre$; mes "Tu ya has terminado esta quest."; close; }

	if (Quest < 1) { mes .@nombre$; mes "Hola, ¿te has perdido?."; close; }
	
	if (Quest == 1) {
	
		mes .@nombre$;
		mes "Veo que ya has hablado con Quest NPC 1.";
		next;
		mes .@nombre$;
		mes "Doy por terminada la quest, aquí tienes tu recompensa.";
		close2;
		getitem 609,10;
		set Quest,2;
		close;
	}
	end;
}

Espero que con esos dos ejemplos bastante sencillos y simples te haya quedado claro el punto 1. Ahora vamos con el punto 2:

 

2 - ¿Cómo puedo lograr hacer que un npc al llegar al nivel 20 me hable sin importar el lugar donde este y me de algun mensaje?

 

La forma más fácil de conseguir que al subir al nivel 20 un npc te hable, estés donde estés, es a través de la función OnNPCKillEvent, ya que lo más normal es que el usuario suba de nivel matando a un monstruo. Te pongo un ejemplo de lo que deberías poner:

-	script	MensajeNv20	-1,{

OnNPCKillEvent:

	if (BaseLevel >= 20 && MNv20 != 1) {
	
		set .@nombre$,"- Información -";
		mes .@nombre$;
		mes "Enhorabuena, has alcanzado el nivel 20.";
		close2;
		set MNv20,1;
		end;
	} else { end; }
	
}

Ahora vamos con el punto 3:

 

3 - ¿Cómo puedo lograr hacer que el script active algun comando como el de poder clonar algún personaje con el que esta hablando?

 

Para que un script realice un comando de administrador se utiliza el siguiente comando NPC: atcommand "@comando <variable>"

 

Ejemplo, imagina que queremos que el npc haga un clon malvado de la persona que le está hablando a dicho NPC:

-	script	EvilCloneNPC	-1,{

	mes "[ Ejemplo ]";
	mes "Hola, ¿quieres que haga un clon malvado de tí?";
	next;
	if (select("Si:No") == 2) { end; } else {
	
	mes "[ Ejemplo ]";
	mes "Muy bien, ahora mismo crearé a tu clon malvado.";
	close2;
	atcommand "@evilclone "+strcharinfo(0);
	end;
}

Espero que te haya servido de ayuda esta mini-guia, si tienes alguna duda preguntame. Un saludo.

Link to comment
Share on other sites

  • 4 weeks later...

  • Group:  Members
  • Topic Count:  2
  • Topics Per Day:  0.00
  • Content Count:  6
  • Reputation:   0
  • Joined:  01/27/14
  • Last Seen:  

Perdon por la demora en contestar estuve un tiempo sin internet y algunos problemas.

 

Muchas gracias me funcionaron perfectamente solo una duda como puedo hacer que las quest que haga con el primer ejemplo no sean repetibles es en lo unico que ando topando

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  1
  • Topics Per Day:  0.00
  • Content Count:  182
  • Reputation:   36
  • Joined:  01/26/12
  • Last Seen:  

Para eso simplemente añade otra comprobación que mire que no tengas la quest terminada. Igual que con la condición de "if (Quest ==1)" te dice el hombre que vayas a hablar con el NPC 2, puedes copiar esa condición y comprobar si Quest es 2 para que el NPC te dé las gracias por haber hecho su quest.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...