Referência da API do Cliente¶
Disponibilidade
Lua no cliente está disponível apenas no S21.1-2. Outras versões não possuem suporte a Lua no cliente.
A API Lua do cliente roda dentro do módulo Main.dll e permite customizar a UI do cliente do jogo, controlar input, acessar a memória do jogo e se comunicar com o servidor via pacotes customizados.
Variáveis Globais¶
| Variável | Tipo | Descrição |
|---|---|---|
Hero |
table | Dados do personagem atual do jogador (posição, atributos, estado) |
CharacterAttribute |
table | Atributos e estatísticas do jogador (STR, AGI, VIT, ENE, CMD) |
Mouse |
table | Posição do mouse (Mouse.X, Mouse.Y) e estado dos botões |
Funções de Renderização¶
LoadInterface(filePath, imageId, startX, startY, width, height)¶
Carrega uma textura/imagem para renderização na tela.
RenderImage(imageId, x, y, width, height)¶
Desenha uma imagem previamente carregada na tela na posição especificada.
Renderização de Texto¶
| Função | Descrição |
|---|---|
UIRenderText_Left(x, y, text, r, g, b) |
Renderiza texto alinhado à esquerda |
UIRenderText_Center(x, y, text, r, g, b) |
Renderiza texto centralizado |
UIRenderText_Right(x, y, text, r, g, b) |
Renderiza texto alinhado à direita |
Alpha Blending¶
| Função | Descrição |
|---|---|
EnableAlphaBlend() |
Ativa alpha blending para renderização transparente |
DisableAlphaBlend() |
Desativa alpha blending |
Funções de Input¶
| Função | Descrição |
|---|---|
SEASON3B_IsPress(key) |
Verifica se a tecla está pressionada no momento |
SEASON3B_IsRelease(key) |
Verifica se a tecla acabou de ser solta |
SEASON3B_IsRepeat(key) |
Verifica se a tecla está mantida pressionada (repetição) |
GetMouseX() |
Retorna a posição X atual do mouse |
GetMouseY() |
Retorna a posição Y atual do mouse |
IsWriteInterfaceOpen() |
Retorna true se um campo de texto está ativo |
if SEASON3B_IsPress(0x54) then -- 'T' key
UIRenderText_Center(320, 240, "T is pressed!", 0, 255, 0)
end
Funções de Rede (Pacotes)¶
Envia e recebe pacotes customizados entre cliente e servidor.
Leitura de Pacotes¶
| Função | Descrição |
|---|---|
PacketGetByte(packet, offset) |
Lê um BYTE (1 byte) do pacote |
PacketGetWord(packet, offset) |
Lê um WORD (2 bytes) do pacote |
PacketGetDword(packet, offset) |
Lê um DWORD (4 bytes) do pacote |
PacketGetFloat(packet, offset) |
Lê um float (4 bytes) do pacote |
PacketGetDouble(packet, offset) |
Lê um double (8 bytes) do pacote |
Envio de Pacotes¶
| Função | Descrição |
|---|---|
PacketSend(packetFormat) |
Envia um pacote formatado para o servidor |
Funções de Memória¶
Avançado
Funções de memória fornecem acesso direto à memória do cliente do jogo. Uso incorreto pode causar crash no cliente.
Funções de Escrita¶
| Função | Descrição |
|---|---|
SetByte(offset, value) |
Escreve um BYTE na memória |
SetWord(offset, value) |
Escreve um WORD (2 bytes) na memória |
SetDword(offset, value) |
Escreve um DWORD (4 bytes) na memória |
SetFloat(offset, value) |
Escreve um float na memória |
SetDouble(offset, value) |
Escreve um double na memória |
Funções de Leitura¶
| Função | Descrição |
|---|---|
GetByte(offset) |
Lê um BYTE da memória |
GetWord(offset) |
Lê um WORD da memória |
GetDword(offset) |
Lê um DWORD da memória |
GetFloat(offset) |
Lê um float da memória |
GetDouble(offset) |
Lê um double da memória |
Operações em Lote¶
| Função | Descrição |
|---|---|
MemoryCpy(offset, hexString) |
Copia dados hex para a memória |
MemorySet(offset, byteValue, size) |
Preenche região de memória com um valor |
-- Read a value from memory
local value = GetDword(0x12345678)
-- Fill a memory region
MemorySet(0x12345678, 0x90, 5)
Registro de Eventos¶
Registre funções Lua para serem chamadas em eventos específicos do 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