Jump to content

[Duda] Comprobar datos de las party


Nanashi

Recommended Posts


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

Hola a todos,

 

estoy tratando de desarrollar un script que te manda a una sala donde hay un mvp. El caso es que quiero hacer que sólo puedas acceder a esa sala si estas en una party formada por 4 usuarios (deben estar online) y que cada uno tenga un nivel base 40 o mayor.

 

¿Alguien sabe cuáles son los comandos para que un npc compruebe esas dos características?

 

Gracias de antemano, un saludo.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  27
  • Reputation:   6
  • Joined:  08/01/12
  • Last Seen:  

getpartymember getcharid(1);
set @partymembercount,$@partymembercount;
copyarray @partymembername$[0],$@partymembername$[0],@partymembercount;
set $@partymembercount,0;
deletearray $@partymembername$[0],getarraysize($@partymembername$);
if(@partymembercount == 4) {
    // Comprobaciones de si están ONLINE y lo que tu quieras.
} else {
    mes "La party debe estar formada por 4 personas.";
    close;
}
 

Puedes probar con eso, es algo hecho de forma rápida y quizá se pueda optimizar, pero bueno, servirte te puede servir para utilizarlo u orientarte.

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:  

Tucsus, en tu script solo se comprueba que la party esté conformada por 4 integrantes. Te ha faltado la parte "difícil" que es comprobar los requisitos que pide Nanashi y requiere un poco de ciencia, que es lo que creo que realmente se le está dificultando a Nanashi.

 

Este trozo de código, que no he probado ni tengo por el momento medio alguno para validarlo (por lo que puede tener errores), te puede solucionar el problema:

 

set .@fail, 0;
getpartymember getcharid(1),0;
getpartymember getcharid(1),1;
getpartymember getcharid(1),2;
if ($@partymembercount == 4) {
	for (set .@i = 0; .@i < $@partymembercount; set .@i, .@i + 1){
		if (!isloggedin($@partymemberaid[.@i], $@partymembercid[.@i]) || readparam(BaseLevel,$@partymembername$[.@i]) < 40) {
			set .@fail, 1;
			break;
		}
	}
	if (!.@fail) {
		// Aquí tu código una vez la party ha superado con éxito la comprobación.
		// Procura terminar el script al final de este bloque, también.
	}
}
// Aquí el código relativo al fracaso del cumplimiento de los requisitos en la comprobación de la party.

En el ejemplo 2 de la descripción del comando getpartymember casi tenías la solución ya hecha /no1 .

 

P.D.: Las malas costumbres, he escrito y redactado todo en inglés hasta que me he dado cuenta de que aquí puedo hablar en español /heh .

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...