101Level - Foro

[Guía] Funciones de extración de información (Parte 1)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Miles

  • *
  • 1.826
  • 46
  • Actividad:
    0%
  • Sexo: Masculino
[Guía] Funciones de extración de información (Parte 1)
« en: 24 de Julio de 2012, 20:17 »
[Guía] Funciones de extración de información (Parte 1)
Realizada por: Miles


[Introducción]

Esta guía esta enfocada a describir aquellos comandos que se encargan de extraer la información de usuarios/NPC dentro del servidor.
Son multi-propósitos, y se que le servira a varias personas.
Esta guía abarca solamente algunos de ellos.


strcharinfo(<tipo>)   [String]

Esta función regresa una String como resultado. Si quieres almacenar la información tienes que hacer mediante una variable String, o lo puedes imprimir directamente a un dialogo.
Existen 4 tipos de datos que pueden ser extraidos por la función strcharinfo, los cuales son:

TipoDescripción
0
Nombre del personaje
1
Nombre de la Party (si esta en alguna) del personaje
2
Nombre de la Guild (si esta en alguna) del personaje
3
El nombre del mapa sobre el cual esta el personaje.

Donde tendrás que cambiar el Tipo por el numero que representa un resultado diferente.
Por ejemplo:

FunciónDescripción
strcharinfo(0)
Regresara como resultado el nombre del personaje que invoca la función
strcharinfo(1)
Regresara como resultado el nombre de la party del personaje.
strcharinfo(2)
Regresara como resultado el nombre de la guild del personaje.
strcharinfo(3)
Regresara como resultado el nombre del mapa sobre el cual esta el personaje.


Ahora, basicamente podemos usar esos comandos para crear un NPC que nos reconosca por nuestro nombre:

Código: [Seleccionar]
mes "Hola " + strcharinfo(0);

De igual forma, podemos almacenar el nombre en una variable, de forma en que solo usemos esa variable en vez de la función.

Código: [Seleccionar]
set .@char$,strcharinfo(0);
mes "Hola " + .@char$;
mes "¿Como estas " + .@char$ + "?";

(Esta parte es basada en el comentario realizado por Celsius en un post pasado, creditos de esta parte van a ella).
Otra forma en la cual podemos usar esta función de forma util es el utilizarlo para extraer el mapa sobre el cual el personaje se encuentra.
Esto puede ser usado si se quiere comprobar la localización de mapa (sin coordenadas) del personaje.

Código: [Seleccionar]
if (strcharinfo(3) == "prontera") {
mes "Actualmente estas en Prontera.";
}
else {
mes "No estas en prontera.";
}



strnpcinfo(<tipo>)      [String]

Esto es similar que la función pasada, solamente que funciona para con un NPC.
Basicamente extrae información, pero como un NPC no puede tener una party o una guild, esta función extrae los nombres ocultos y unicos del NPC.

TipoDescripción
0
Nombre completo del NPC, visible y oculta (visible#oculta)
1
La parte visible del NPC.
2
La parte oculta.
3
El nombre unico del NPC (::nombre).

 
El nombre único del NPC sirve para reconocer a un NPC (en caso de haber duplicados).
La parte oculta del nombre de un NPC sirve para tambien identificarlo, de forma en que podemos enumerar a nuestros NPC, y usar esos datos para cualquier cosa que querramos.

Código: [Seleccionar]
mes "Hola, mi nombre es " + strnpcinfo(1);

De igual manera que con un personaje, podemos guardar estos datos en una variable:

Código: [Seleccionar]
set .@char$,strnpcinfo(1);
mes "Hola mi nombre es " + .@char$;



getarraysize(<nombre array>)      [Integer]

Esta función da como resultado el tamaño de cualquier array.
Cualquier dato dentro de nuestra array sera contado, cualquier conjunto vacio no sera tomado en cuenta.
Podemos usarlo para determinar el tamaño de una array.

Código: [Seleccionar]
setarray .@array[0], 1, 2, 3, 4, 5, 6;
set .@size, getarraysize(.@array);

mes "El tamaño de la array es de: " + .@size;

Posteriormente, este comando es muy usado para secuencias for, de forma en que se puede tomar el tamaño de la array como una parte de la condición de continuidad del For.
En pocas palabras, si se modifica el array, se modifica el for, y solamente lee los datos que tiene el array, no mas no menos.

Código: [Seleccionar]
setarray .@array[0], 1, 2, 3, 4, 5, 6;
for (set .@a,0; .@a < getarraysize(.@array); set .@a,.@a+1)
set .@linea$,.@linea$+.@array[0];

mes .@linea$;

El script de arriba solamente mostrara una linea de numeros: 123456
Basicamente el getarraysize se puede usar para ello, tambien para otro tipo de cosas, depende de lo que este almacenado en la array.



getelementofarray(nombre array>,<indice>)      [String/Integer]

Esta función puede ser obsoleta, de forma en que ahora se puede obtener datos de un array sin la necesidad de una función, colocando solamente el indice del elemento deseado en corchetes "[]".
Basicamente regresaria o una variable String o Integer (dependiendo del tipo de array que tengamos). Esto puede llegar a ser confunso, si no se conoce bien el arreglo.
Un ejemplo de esta función:

Código: [Seleccionar]
setarray .@array[0], 1, 2, 3, 4, 5, 6;
mes getelementofarray(.@array,1);

Imprime como resultado un 2.



getcharid(<tipo>{,"<nombre personanje>"})      [Integer]

Esta función  trabajo de forma similar al strcharinfo, solamente que en vez de regresa un valor string, regresa los posibles ID del personaje.
Esto son los tipos de datos que pueden ser extraidos:

TipoDescripción
0
ID del personaje.
1
ID de la party del personaje.
2
ID de la Guild del personaje.
3
ID de cuenta del personaje.

 
Podemos usarlo para identificar personajes, mediante su ID.
Estos comandos son mas usados para la obtención de la ID de party o de Guild.

Código: [Seleccionar]
mes "Yo conosco tu ID. Es "+getcharid(0);



getchildid()         [Integer]
getmotherid()
getfatherid()


Esas funciones regresa unicamete el ID (sea del hijo, del padre y de la madre, si es que son familia en RO).
La función regresa 0 si no estas casado, o si no tienes hijo.

Código: [Seleccionar]
if (!getchildid()) mes "No tienes un Hijo. Puedes adoptar uno.";
   
Código: [Seleccionar]
if (getmotherid()) mes "Yo conosco el ID de tu mujer: "+getmotherid();



ispartneron()         [Integer]

Esta función regresa 1 o 0, dependiedo de si tu compañero (marido o mujer) se encuentra conectado o no.
Ademas, si no tienes un compañero/a, la función siempre regresara 0.
Esta función no es util para determinar si estas casado o no, ya que si estas casado, aun puede regresar 0 la función.



getpartnerid()         [Integer]

Regresa como resultado la función el ID de tu compañero/a.
Si no estas casado, regresa 0.
Este es una forma de verificar si estas casado o no.

Código: [Seleccionar]
if (getpartnerid()) mes "Lo siento, ya estas casado.";
if (!getpartnerid()) mes "Perfecto, no estas casado.";


[FAQ]

-La función no me regresa ningún resultado.
~ Es posible que no regrese ningún valor, en el caso de las función que regresa String regresan un "" que es un conjunto vació y no puede ser usado.

-He colocado la función en mi script, pero no veo nada.
~ La función regresa un valor, ese valor puedes almacenarlo o imprimirlo. No puede ser modificado el valor de la función (al menos que sea almacenado en una variable).

-He almacenado el valor de la función en una variable, pero no guarda nada.
~ Si la función regresa como resultado una string ($), pero las estas guardando en una variable integer no podrás ver nada, de igual manera viceversa (si guardas un integer a una string). Solamente guarda correctamente los tipos de datos.
No importa el tiempo gastado, un talento es un talento

Servicio a la Comunidad [Links Patrocinados]:
[Guía] Uploader de Archivos (Haizu)          [Guía] Diseño de Pagina Web en HTML & CSS (Haizu)


 

[Guía] Funciones de extración de información (Parte 3 - Items y armamento)

Iniciado por Miles

Respuestas: 0
Vistas: 1275
Último mensaje 29 de Julio de 2012, 15:35
por Miles
[Guía] Funciones de extración de información (Parte 4 - Refinamiento y armas)

Iniciado por Miles

Respuestas: 0
Vistas: 1609
Último mensaje 29 de Julio de 2012, 15:44
por Miles
[Guía] Funciones de extración de información (Parte 2 - Party)

Iniciado por Miles

Respuestas: 0
Vistas: 1232
Último mensaje 24 de Julio de 2012, 20:32
por Miles