Enviar respuesta 
 
Calificación:
  • 0 votos - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
[Tutorial de Ayuda] Crear grupos de Subs/Functions
22-05-2011, 12:37 PM
Mensaje: #1
[Tutorial de Ayuda] Crear grupos de Subs/Functions

Bueno, hace ya tiempo que no me paso, no comento ni aporto nada, así que, como me sentía "inútil" a la comunidad, decidí crear este MiniTuto destinado a las personas que ya saben de Scripting para ayudarlos a que sus scripts sean más fáciles de usar por aquellos a los que van destinados.

El tutorial se va a basar en agrupar las subrutinas que creamos (Subs y Functions) y darlas a conocer únicamente sabiendo los parámetros que tienen que pasar y que va a hacer o que va a devolver la subrutina.

El tutorial lo voy a hacer basándome en las Functions que hice hace tiempo, con la ayuda de 6dragon6, que devuelven el nº de ítem que tiene equipado el jugador en cualquiera de las casillas.

Bien, comenzamos:

·Primer Paso: Idear un nombre para el grupo

Este paso es bastante importante, ya que tiene que ser una palabra que defina el contenido de el grupo para poder identificarlo claramente a la hora de acceder a él para saber como usarlo.
Por ejemplo, el nombre de mi grupo va a llamarse : equipo.


·Segundo Paso: Crear las Subrutinas

Esta parte no la toco, ya que depende del programador (o scripter, como prefirais llamarlo), las subrutinas que creará para que lo que pretende hacer funcione correctamente.

Las Subrutinas que yo utilizaré en el tutorial serán estas:
[spoiler]
Código:
Function GetPlayerWeapon(Index)
weaponslot = GetPlayerWeaponSlot(Index)
weaponid = GetPlayerInvItemNum(Index,weaponslot)
GetPlayerWeapon = weaponid
End Function

Function GetPlayerArmor(Index)
armorslot = GetPlayerArmorSlot(Index)
armorid = GetPlayerInvItemNum(Index,armorslot)
GetPlayerArmor= armorid
End Function

Function GetPlayerLegs(Index)
legsslot= GetPlayerLegsSlot(Index)
legsid = GetPlayerInvItemNum(Index,legsslot)
GetPlayerLegs= legsid
End Function

Function GetPlayerHelmet(Index)
helmetslot = GetPlayerHelmetSlot(Index)
helmetid = GetPlayerInvItemNum(Index,helmetslot)
GetPlayerHelmet= helmetid
End Function

Function GetPlayerRing(Index)
ringslot = GetPlayerRingSlot(Index)
ringid = GetPlayerInvItemNum(Index,ringslot)
GetPlayerRing= ringid
End Function

Function GetPlayerNecklace(Index)
necklaceslot = GetPlayerRingSlot(Index)
necklaceid = GetPlayerInvItemNum(Index,necklaceslot)
GetPlayerNecklace= necklaceid
End Function

Function GetPlayerShield(Index)
shieldslot = GetPlayerShieldSlot(Index)
shieldid = GetPlayerInvItemNum(Index,shieldslot)
GetPlayerShield= shieldid
End Function
[/spoiler]


·Tercer Paso: Crear una "Interface"

Se le llama así, aunque realmente no sea otra cosa que exponer en una cabecera y pocas lineas lo que hay que pasarle a la subrutina y lo que hace.
Los tipos de parámetro que se le pueden pasar a una rutina son:

Cita:String: Un texto.
Long: Un numero.
Byte: Una constante de Color.
Boolean: Como un valor Booleano [0,1].

Ahora se trata de crear la interface. Para ello necesitamos las cabeceras de nuestras subrutinas, y pondremos al lado de cada uno de los parámetros, que tipo de variable hay que pasarle. Hay que poner al final de la cabecera, solo si es una funcion, que tipo de variable devuelve, para luego saber en que podemos utilizarla.
Debajo de la variable, hay que poner 3 datos:
·Parámetros: En cada parámetro que se pide: nivel del jugador, clan, etc.
·Que hace la subrutina: En caso de ser una Sub, que es lo que hace: modifica el nivel del jugador, su clan, etc.
·Que devuelve: En caso de ser una Function, que es lo que se obtiene al llamarla: nivel del jugador, clan, etc.

Para este ejemplo utilizaré 3 subrutinas que ya vienen con el engine, y luego pondré las que utilizo para el tutorial:
GetPlayerGuild escribió:Function GetPlayerGuild(Index As Long) As String
·Parámetros:
->Index: Índice del jugador (Long)
·Descripción: Obtiene el clan del jugador pasado por parámetro.
·Devuelve: El nombre del clan del jugador como String.
SetPlayerHP escribió:Sub SetPlayerHP(Index As Long, HP As Long)
·Parámetros:
->Index: Índice del jugador (Long)
->HP: Vida del jugador (Long)
·Descripción: Modifica el valor de la vida restante del jugador.
·Devuelve: Nada.
GetPlayerInvItemNum escribió:Function GetPlayerInvItemNum(Index As Long, InvSlot As Long) As Long
·Parámetros:
->Index: Índice del jugador (Long)
->InvSlot: Hueco del inventario (Long)
·Descripción: Obtiene el nº de objeto del hueco pasado por parámetro.
·Devuelve: Nº de objeto del hueco como Long.

·Último Paso: Creación del Grupo

Ahora solo queda crear un archivo .txt llamado como el nombre del grupo, en mi caso equipo.txt, con esta estructura:
Código:
'{*} INTERFACE
'Colocamos aquí lo que hemos creado como interface.
'No olvideis comentar cada linea como estoy haciendo yo, ya que esta
'parte es solo para los usuarios, no la tiene que leer el Engine.

'{*} IMPLEMENTACIÓN
'Aquí colocamos todas las subrutinas tal y como las meteríamos en el
'Main.txt.
'Aquí no habría que comentar nada, solo la linea de '{*} IMPLEMENTACIÓN.

Así de fácil. Lo único que resta es colocar en el Main.txt, al principio de todo, el comando para poder acceder a estas subrutinas:
Código:
#include <nombre del archivo>

El archivo debe estar en la misma carpeta que el main para que este pueda acceder al archivo.

Con esto llegamos al final del Tutorial, espero que os sirva. Dejo subido mi Grupo de Funciones para que veais un Grupo ya hecho para que no os queden dudas.

Saludos Wink


Archivo(s) adjuntos
.txt  equipo.txt (Tamaño: 2.86 KB / Descargas: 3)

Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
22-05-2011, 02:35 PM (Este mensaje fue modificado por última vez en: 22-05-2011 02:35 PM por 6Dragon6.)
Mensaje: #2
RE: [Tutorial de Ayuda] Crear grupos de Subs/Functions

Buena Totolin, a ver si esta vez te quedas que se te echa de menos XD.

Por cierto, el #include la primera y única vez que lo intenté utilizar no me funcionó, de hecho ni siquiera le veo el sentido en VB6, tal y como está en el tutorial es como se utiliza en aplicaciones escritas en C para incluir las librerías que contienen los comandos que se van a utilizar en dicha aplicación. Ni siquiera puedes hacer un printf sin ese comando al principio del programa XD.

Igualmente tendré que ponerme a hacer pruebas de nuevo.

Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Visita su sitio web Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
22-05-2011, 03:07 PM
Mensaje: #3
RE: [Tutorial de Ayuda] Crear grupos de Subs/Functions

Jaja, gracias dragon, pues si, a ver si esta vez me quedo y actualizo el juego que lo tengo un poco abandonado.
Pues yo la vez que lo usé si me funcionó, pero el nombre tiene que ser exactamente igual (minúsculas y mayúsculas, y es recomendable no poner tildes) al del archivo.

Los invitados no pueden ver los enlaces. Por favor registrate AQUI para ver los enlaces.
Encuentra todos sus mensajes
Cita este mensaje en tu respuesta
Enviar respuesta 


Posibles temas similares...
Tema: Autor Respuestas: Vistas: Último mensaje
  Tutorial de Script 3 : Main [Ae] hbkdx1 6 591 02-11-2011 01:25 AM
Último mensaje: Augusto
  Tutorial de Script 2 : Manejar un poco [Ae] hbkdx1 13 1,134 28-08-2011 03:50 AM
Último mensaje: judoka
  [Tutorial]- Crear una pocion de % de vida explicado nickitolas 1 362 27-07-2011 02:42 AM
Último mensaje: jolmoz
  Ayuda con SadScripting Bumblebee 1 305 23-02-2011 01:29 AM
Último mensaje: LuisYare
  ayuda para poner este script dreck28 1 336 18-02-2011 03:15 AM
Último mensaje: Mr. Jeshuem

Salto de foro:


Usuario(s) navegando en este tema: 1 invitado(s)
ContáctanosAlterEngineVolver arribaVolver al contenidoArchivo (Modo simple)Sindicación RSS