Jump to content

Ayuda con Script


Eyhra

Recommended Posts


  • Group:  Members
  • Topic Count:  28
  • Topics Per Day:  0.01
  • Content Count:  72
  • Reputation:   7
  • Joined:  04/30/14
  • Last Seen:  

Bueno Tengo un npc para los GM asi no tengo que darles sierto items por semana sino que llevo un registro pero en vez de poner el nombre del personaje para entregar el premio podria ser que se pueda poner como un menu con todos los usuarios conectados en el server y darle click en el personaje para seleccionarlo y entregarle su premio por ultimo les dejo el scrpt gracias 

 

 

Disculpen Mande uno que estube probando les dejo el limpio 

 

 

 

Solucionado solo con el siguiente problema 

 

[Warning]: script:getelementofarray: index out of range (-1) [Debug]: Data: variable name='@nomer$' index=0 [Debug]: Source (NPC): Premiador at prontera (124,171)

premioevent (1).txt

Edited by razmux
Link to comment
Share on other sites

  • 2 weeks later...

  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   4
  • Joined:  01/13/13
  • Last Seen:  

set.@nb$, query_sql("select char_id,name from `player` ORDER BY char_id DESC LIMIT 200", .@namer$, @nomer$); 

estas seleccionando las ids y nombres de los ultimos 200 jugadores, no de los que estan online, y de la tabla `player` (tabla que no existe a menos que me digas cual es)

otro detalle es la variable @nomer$ que esta como temporal de player, yo preferiria dejarla temp. de npc

set.@nb$, query_sql("select char_id,name from `char` WHERE `online`=1 and group ORDER BY name ASC LIMIT 200", .@namer$, .@nomer$); 

buscar y remplazar -> @nomer$ -> .@nomer$

 

con esto seleccionaria los 200 jugadores en orden alfabetico (a -> z) si esque estan conectados

luego ademas, en teoria no deberia retornar nunca nulo si hay un gm usando el npc (ya que el estaria en online)

ademas 

siguiendo con el script te recomendaria validar 

 

linea 27

 input .@reason$;

para evitar algun tipo de inyeccion sql ej validar solo letras y espacio y tambien la cantidad maxima que le hayas puesto en la tabla (ej varchar 30) limita los 30 caracteres

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  28
  • Topics Per Day:  0.01
  • Content Count:  72
  • Reputation:   7
  • Joined:  04/30/14
  • Last Seen:  

Gracias en la linea 127 le dice que si no existe esa tabla sele crea automatica mente es temporal porque al momento de salir un user se borra de la tabla payer otra cosa solo ese error me da al momento de entregar el premio  pero no se que sea la razon

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   4
  • Joined:  01/13/13
  • Last Seen:  

ah ya vi, en esa tabla almacenas los players que se van conectando y van saliendo, de la forma que te lo puse los saca directo de la tabla char en base a si el status es online asi que es practicamente lo mismo.

 

ese mensaje te sale al momento de que se genera la lista de los players?

si es asi, prueba cambiar la linea 16  (con la variable como dije ) por

 

if(!(query_sql("select char_id,name from `char` WHERE `online`=1 and group ORDER BY name ASC LIMIT 200", .@namer$, .@nomer$)>0)){
mes "error, no hay registros";
close;
} 

lo que haria es:
SI NO retorna ningun registro dira error

Link to comment
Share on other sites

  • 3 months later...

  • Group:  Members
  • Topic Count:  28
  • Topics Per Day:  0.01
  • Content Count:  72
  • Reputation:   7
  • Joined:  04/30/14
  • Last Seen:  

gracias y como hago lo de esta linea que me dijo esque es algo que no se bien que hacer la verda me tiene algo molesto xD que no puedo terminar el script xD

 input .@reason$;

GRACIAS

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  4
  • Topics Per Day:  0.00
  • Content Count:  40
  • Reputation:   4
  • Joined:  01/13/13
  • Last Seen:  

Input

For strings min and max specify the minimum and maximum string length. The return value is -1, if the string was too short, 1, if it was too long, otherwise 0.

tu tabla tiene `reason` char(50)
osea

 

input .@reason$,1,50; //el max es del tamaño que permite tu tabla 

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