GameServerFunctions
Documentação das Funções do GameServer para Lua
As funções do GameServerFunctions são chamadas automaticamente pelo servidor de jogo em eventos específicos e podem ser "hookadas" em scripts Lua para personalizar comportamentos. Esta documentação explica cada função de forma clara, intuitiva e com exemplos práticos e concisos.
Como Usar as Funções do GameServer
Declaração: Crie uma função Lua que será chamada quando o evento correspondente ocorrer.
Registro: Use
GameServerFunctions.NomeDoEvento(Função)para associar sua função ao evento.Observação:
Cada função é disparada automaticamente pelo servidor em situações específicas (ex.: morte de monstro, level up, etc.).
Use a classe
Userpara obter informações sobre jogadores ou monstros.
Funções do GameServerFunctions
Abaixo está a lista de funções, com descrições simples e exemplos práticos de uso:
1. PlayerDropItem(aIndex, x, y, slot)
Descrição: Chamada quando o jogador solta um item no chão. O
slotpode ser usado com a classeInventorypara identificar o item.Exemplo:
Copy
function OnPlayerDropItem(aIndex, x, y, slot) local player = User.new(aIndex) LogAdd(string.format("[DropItem] - [%s] soltou item no slot %d em (%d, %d)", player:getName(), slot, x, y), 0) end GameServerFunctions.PlayerDropItem(OnPlayerDropItem)
2. CharacterSet(aIndex)
Descrição: Chamada quando o personagem do jogador é atualizado (ex.: atributos como ataque ou defesa).
Exemplo:
Copy
3. MonsterDie(Player, Monster)
Descrição: Chamada quando um monstro morre.
Exemplo:
Copy
4. MonsterDieGiveItem(Player, Monster)
Descrição: Chamada quando um monstro solta um item após morrer.
Exemplo:
Copy
5. PlayerDie(aIndex, TargetIndex)
Descrição: Chamada quando o jogador morre.
Exemplo:
Copy
6. PlayerAttack(aIndex, TargetIndex)
Descrição: Chamada quando o jogador ataca um alvo.
Exemplo:
Copy
7. PlayerSendTrade(aIndex, TargetIndex)
Descrição: Chamada quando o jogador envia uma solicitação de troca (trade).
Exemplo:
Copy
8. PlayerLevelUp(aIndex)
Descrição: Chamada quando o jogador sobe de nível.
Exemplo:
Copy
9. PlayerRingEquiped(aIndex)
Descrição: Chamada quando o jogador equipa um anel.
Exemplo:
Copy
10. PlayerTradeOk(aIndex, TargetIndex)
Descrição: Chamada quando o jogador confirma uma troca (trade) clicando em "OK".
Exemplo:
Copy
11. PlayerLogout(aIndex)
Descrição: Chamada quando o jogador sai do jogo.
Exemplo:
Copy
12. GuildWarProc(GuildName1, GuildPoints1, GuildName2, GuildPoints2)
Descrição: Chamada durante uma guerra de guildas, com os nomes e pontos das guildas.
Exemplo:
Copy
13. EnterCharacter(aIndex)
Descrição: Chamada quando o jogador entra no jogo.
Exemplo:
Copy
14. CharacterMove(aIndex, map, x, y)
Descrição: Chamada quando o jogador teleporta.
Exemplo:
Copy
15. PlayerMove(aIndex, map, x, y, sx, sy)
Descrição: Chamada quando o jogador caminha no mapa.
Exemplo:
Copy
16. RunningSkill(aIndex, TargetIndex, SkillNumber)
Descrição: Chamada quando o jogador usa uma habilidade.
Exemplo:
Copy
17. NpcTalk(NpcIndex, PlayerIndex)
Descrição: Chamada quando o jogador fala com um NPC.
Exemplo:
Copy
18. PlayerSellItem(aIndex, slot)
Descrição: Chamada quando o jogador tenta vender um item.
Exemplo:
Copy
19. PlayerRepairItem(aIndex, slot)
Descrição: Chamada quando o jogador repara um item.
Exemplo:
Copy
20. PlayerCanMove(aIndex)
Descrição: Chamada quando o jogador tenta se mover.
Exemplo:
Copy
21. PlayerMoveItem(aIndex, SourceSlot, TargetSlot, Type)
Descrição: Chamada quando o jogador move um item no inventário.
Exemplo:
Copy
22. PlayerVaultOpen(aIndex)
Descrição: Chamada quando o jogador abre o cofre.
Exemplo:
Copy
23. DeclareWar(aIndex)
Descrição: Chamada quando o jogador declara guerra.
Exemplo:
Copy
24. PlayerUseItem(aIndex, SourceSlot, TargetSlot)
Descrição: Chamada quando o jogador usa um item (clique direito).
Exemplo:
Copy
25. PlayerVaultClose(aIndex)
Descrição: Chamada quando o jogador fecha o cofre.
Exemplo:
Copy
26. PlayerSendTradeX(aIndex, TargetIndex)
Descrição: Chamada quando o jogador envia uma solicitação de TradeX.
Exemplo:
Copy
27. PlayerTradeXOk(aIndex, TargetIndex)
Descrição: Chamada quando o jogador confirma um TradeX clicando em "OK".
Exemplo:
Copy
28. PlayerOpenShop(aIndex)
Descrição: Chamada quando o jogador abre uma loja pessoal.
Exemplo:
Copy
29. PlayerCloseShop(aIndex)
Descrição: Chamada quando o jogador fecha uma loja pessoal.
Exemplo:
Copy
30. PlayerCanEquipItem(aIndex, SourceSlot, TargetSlot)
Descrição: Chamada quando o jogador tenta equipar um item.
Exemplo:
Copy
31. GameServerProtocol(aIndex, Packet, PacketName)
Descrição: Chamada quando o jogador recebe um pacote personalizado do cliente.
Exemplo:
Copy
32. MacAddressPlayer(aIndex, HWID)
Descrição: Chamada para receber o HWID do jogador do cliente.
Exemplo:
Copy
33. PlayerAttackFenrirSkill(aIndex, TargetIndex)
Descrição: Chamada quando o jogador usa a habilidade Fenrir em um alvo.
Exemplo:
Copy
34. RespawnUser(aIndex)
Descrição: Chamada quando o jogador morre e o tipo de respawn é 5.
Exemplo:
Copy
35. MonsterReload()
Descrição: Chamada quando os monstros são recarregados no servidor.
Exemplo:
Copy
Exemplo Prático Completo
Abaixo está um exemplo fictício que combina várias funções do GameServerFunctions em um único script para monitorar ações de um jogador, como entrada no jogo, morte de monstros e level up.
Copy
Resumo
As funções do
GameServerFunctionssão disparadas automaticamente em eventos específicos do servidor, como morte de monstros, level up, ou trocas.Para usá-las, crie uma função Lua e registre-a com
GameServerFunctions.NomeDoEvento(Função).O exemplo prático mostra como monitorar eventos como entrada no jogo, morte de monstros e level up, usando logs com
LogAdd.
Atualizado