Referencia de la API del Cliente¶
Disponibilidad
Lua del lado del cliente solo está disponible en S21.1-2. Otras versiones no tienen soporte de Lua del cliente.
La API Lua del lado del cliente se ejecuta dentro del módulo Main.dll y permite personalizar la UI del cliente del juego, manejar entrada, acceder a la memoria del juego y comunicarse con el servidor mediante paquetes personalizados.
Variables Globales¶
| Variable | Tipo | Descripción |
|---|---|---|
Hero |
table | Datos del personaje actual del jugador (posición, estadísticas, estado) |
CharacterAttribute |
table | Estadísticas y atributos del jugador (STR, AGI, VIT, ENE, CMD) |
Mouse |
table | Posición del mouse (Mouse.X, Mouse.Y) y estado de botones |
Funciones de Renderizado¶
LoadInterface(filePath, imageId, startX, startY, width, height)¶
Carga una textura/imagen para renderizar en pantalla.
RenderImage(imageId, x, y, width, height)¶
Dibuja una imagen previamente cargada en pantalla en la posición especificada.
Renderizado de Texto¶
| Función | Descripción |
|---|---|
UIRenderText_Left(x, y, text, r, g, b) |
Renderizar texto alineado a la izquierda |
UIRenderText_Center(x, y, text, r, g, b) |
Renderizar texto centrado |
UIRenderText_Right(x, y, text, r, g, b) |
Renderizar texto alineado a la derecha |
Mezcla Alfa¶
| Función | Descripción |
|---|---|
EnableAlphaBlend() |
Habilitar mezcla alfa para renderizado transparente |
DisableAlphaBlend() |
Deshabilitar mezcla alfa |
Funciones de Entrada¶
| Función | Descripción |
|---|---|
SEASON3B_IsPress(key) |
Verificar si una tecla está presionada actualmente |
SEASON3B_IsRelease(key) |
Verificar si una tecla acaba de ser soltada |
SEASON3B_IsRepeat(key) |
Verificar si una tecla está mantenida (repetición) |
GetMouseX() |
Retorna la posición X actual del mouse |
GetMouseY() |
Retorna la posición Y actual del mouse |
IsWriteInterfaceOpen() |
Retorna true si un campo de texto está activo |
if SEASON3B_IsPress(0x54) then -- 'T' key
UIRenderText_Center(320, 240, "T is pressed!", 0, 255, 0)
end
Funciones de Red (Paquetes)¶
Enviar y recibir paquetes personalizados entre cliente y servidor.
Lectura de Paquetes¶
| Función | Descripción |
|---|---|
PacketGetByte(packet, offset) |
Leer un BYTE (1 byte) del paquete |
PacketGetWord(packet, offset) |
Leer un WORD (2 bytes) del paquete |
PacketGetDword(packet, offset) |
Leer un DWORD (4 bytes) del paquete |
PacketGetFloat(packet, offset) |
Leer un float (4 bytes) del paquete |
PacketGetDouble(packet, offset) |
Leer un double (8 bytes) del paquete |
Envio de Paquetes¶
| Función | Descripción |
|---|---|
PacketSend(packetFormat) |
Envía un paquete formateado al servidor |
Funciones de Memoria¶
Avanzado
Las funciones de memoria proporcionan acceso directo a la memoria del cliente del juego. Un uso incorrecto puede causar que el cliente se cierre inesperadamente.
Funciones de Escritura¶
| Función | Descripción |
|---|---|
SetByte(offset, value) |
Escribir un BYTE en memoria |
SetWord(offset, value) |
Escribir un WORD (2 bytes) en memoria |
SetDword(offset, value) |
Escribir un DWORD (4 bytes) en memoria |
SetFloat(offset, value) |
Escribir un float en memoria |
SetDouble(offset, value) |
Escribir un double en memoria |
Funciones de Lectura¶
| Función | Descripción |
|---|---|
GetByte(offset) |
Leer un BYTE de memoria |
GetWord(offset) |
Leer un WORD de memoria |
GetDword(offset) |
Leer un DWORD de memoria |
GetFloat(offset) |
Leer un float de memoria |
GetDouble(offset) |
Leer un double de memoria |
Operaciones Masivas¶
| Función | Descripción |
|---|---|
MemoryCpy(offset, hexString) |
Copiar datos hexadecimales a memoria |
MemorySet(offset, byteValue, size) |
Llenar una región de memoria con un valor |
-- Read a value from memory
local value = GetDword(0x12345678)
-- Fill a memory region
MemorySet(0x12345678, 0x90, 5)
Registro de Eventos¶
Registra funciones Lua para ser llamadas en eventos específicos del cliente:
LuaEventAttach("OnRender", function()
UIRenderText_Left(10, 10, "Custom UI Text", 255, 255, 255)
end)
LuaEventAttach("OnKeyPress", function(key)
if key == 0x74 then -- F5
PacketSend("\xC1\x04\xF3\x01")
end
end)
Help