101Level - Foro

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

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 3 - Items y armamento General)
Realizada por: Miles


[Introducción]

Volvemos con mas funciones de extracción de información.
Esta vez se mostraran las funciones Generales de extracción de información de Items y Armamento.
Ademas de agregar algunas funciones sin categorizar.




getsavepoint(<tipo>)         [Integer/String]

Esta función regresa información sobre el punto de Respawn del jugador.
La función puede regresa un valor string o Integer (dependiendo del tipo escogido).


TipoDescripción
0Nombre del mapa
1Coordenada X
2Coordinada Y

Esta función te puede permitir guardar el save point de un personaje.
Esto te puede permitir que un personaje pueda tener mas de 1 save Point

Codigo guarda en las variables (spawn2$, spawn2x, spawn2y) tu Save Point pasado y crea un nuevo.
Te permite ir a los dos Save Points (el antiguo y el nuevo).

Código: [Seleccionar]
mes "¿Deseas guardar tu Save Point actual y crear un nuevo Save Point?";
if (select("Si:No") == 2) close;
set spawn2$,getsavepoint(0);
set spawn2x,getsavepoint(1);
set spawn2y,getsavepoint(2);
getmapxy(.@map$,.@mapx,.@mapy,0);
savepoint .@map$,.@mapx,.@mapy;
close;

Código: [Seleccionar]
mes "¿Cual Save Point deseas ir?";
next;
if (select("Antiguo Save Point:Nuevo Save Point") == 1) {
warp spawn2$,spawn2x,spawn2y;
end;
}
warp getsavepoint(0),getsavepoint(1),getsavepoint(2);
end;



getequipid(<slot equipamiento>)         [Integer]

Esta función regresa el ID del item en cierto slot equipado de un personaje.
Si no hay nada equipado, la función regresa -1.
Los slots que pueden ser usados por la función son:

slot equipamiento (alternativa)Descripción
EQI_HEAD_TOP (1)Equipo del Top Head
EQI_ARMOR (2)Armadura (Armor)
EQI_HAND_L (3)Mano izquierda (Left Hand)
EQI_HAND_R (4)Mano derecha (Right Hand)
EQI_GARMENT (5)Slot de Garment (Como Mufflers, Hoods, Manteaus)
EQI_SHOES (6)Zapatos
EQI_ACC_L (7)Accesorio Izquierdo (Accessory 1)
EQI_ACC_R (8)Accesorio Derecho (Accessory 2)
EQI_HEAD_MID (9)Equipo del Middle Headgear
EQI_HEAD_LOW (10)Equipo del Lower Headgear


Algunos items puede ocupar mas de 1 slot de equipo a la vez.
Cuando esto sucede, la función regresa el ID de cualquiera de los slots en el cual este el item.
Supongamos que quieres dejar entrar solamente a alguien que no tenga una arma (espada, daga, etc.)

Código: [Seleccionar]
if (getequipid(EQI_HAND_L) || getequipid(EQI_HAND_R) {
mes "Lo siento, pero necesitamos que te quites toda arma que tengas.";
close;
}
mes "Estas desarmado, puedes entrar.";

Usamos el EQI_HAND_L y EQI_HAND_R por que puedes tener una arma tanto en la izquierda como en la derecha (usualmente lo usas unicamente en la derecha).
Otro ejemplo en el cual podriamos usar el getequipid es si queremos saber si tiene alguna armadura especial o accesorio.

Código: [Seleccionar]
if ( (getequipid(EQI_ACC_L) == 2602) || (getequipid(EQI_ACC_R) == 2602) ) {
mes "Tienes un Earring. Es el emblema de reconocimiento. Puedes pasar.";
close2;
warp "mapa",x,y;
end;
}

mes "Lo siento, necesitas tener un Earring para poder pasar.";
close;
}



getequipname(<slot equipamiento>)         [String]

Esta función regresa el nombre del item equipado en el slot selecionado.
Regresara un string basio "" si no se tiene ningun item equipado.
Una función similar seria (aunque aun no lo hemos visto):

Código: [Seleccionar]
getitemname(getequipid())

Ahora, esto puede ser util para hacer que un NPC lea y diga el nombre del item que estas usando:

Código: [Seleccionar]
if (getequipname(EQI_HAND_R) != "") {
mes "Parece que estas usando la arma " + getequipname(EQI_HAND_R) + ", es una arma fina.";
close;
}
mes "No estas usando una arma...";
close;

Tomar como referencia los slots de la función getequipid.



getitemname(<ID del item>)         [String]

Dando como argumento el ID de un item, esta funión regresa el nombre de ese item selecionado.
El nombre del item sera el mismo que se ve en el inventario.
Si se usa como argumento un ID invalido, la función regresa "null".
Esto sirve para presentar un conjunto de ID en forma de nombre (sin tener que hacer otro conjunto de datos con los nombres de los items).

Código: [Seleccionar]
mes "Recuerdo cualquier ID, solo dime un ID y te dire su nombre.";
next;
input .@iteminput;
if (getitemname(.@iteminput) == "null") {
mes "Lo siento, pero esa ID no la conosco, no existe.";
close;
}
mes "El nombre del item es "+getitemname(.@iteminput)+".";
close;



getbrokenid(<numero>)         [Integer]

Esta función regresa el ID de algun item que este roto.
Debido a que un personaje puede tener multiples objetos Rotos, la funcion regresara el item ID dependiendo del argumento.
Donde el argumento 1 es el primer item roto, 2 es el segundo y así.
Si en esa pocisión hay un item, entonces las función regresará el ID del item.
Si no se encuentra ningun item roto, la función regresara 0.

Código: [Seleccionar]
if (getbrokenid(1)==0) {
mes "Parece que no tienes ningun item Roto, tienes suerte.";
close;
}
mes "Hum... parece que tienes un item roto. No te servira de nada.";
next;
mes "Tu item roto es "+getitemname(getbrokenid(1))+ ( (getbrokenid(2)!=0) ? ", pero parece que tienes mas items rotos." : ". La buena noticia es que tienes solo 1 item roto.");
close;

Ese script regresa un mensaje que te dira que tienes un item roto (si tienes un item roto).
Si tienes mas de 1 item roto, regresa un mensaje que dira que tienes mas items rotos. De lo contrario te dirá que solo tienes 1 item roto.



getequipisequiped(<slot equipamiento>)         [Integer]

Esta función determina si tienes algun item equipado en cierto slot del personaje.
La función regresará 1 si se tiene algun item en el slot selecionado, o 0 si no se tiene ningun item en el slot.
Esta función es unicamente de comprobación, y es usada comunmente en NPC que refinen armas.

Código: [Seleccionar]
if (getequipisequiped(EQI_HAND_R) || getequipisequiped(EQI_HAND_L)) {
mes "Vamos, tienes lo necesario para pelear.";
close;
}
mes "No tienes lo necesario para pelear, consigue una arma o un escudo.";
close;

Sirve de manera similar que las funciones de getequipid o getequipname.
De igual manera, puedes tomar como referencia los slots de la función getequipid.



[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 2 - Party)

Iniciado por Miles

Respuestas: 0
Vistas: 1232
Último mensaje 24 de Julio de 2012, 20:32
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 1)

Iniciado por Miles

Respuestas: 0
Vistas: 2042
Último mensaje 24 de Julio de 2012, 20:17
por Miles