🚦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

  1. Declaração: Crie uma função Lua que será chamada quando o evento correspondente ocorrer.

  2. Registro: Use GameServerFunctions.NomeDoEvento(Função) para associar sua função ao evento.

  3. Observação:

    • Cada função é disparada automaticamente pelo servidor em situações específicas (ex.: morte de monstro, level up, etc.).

    • Use a classe User para 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 slot pode ser usado com a classe Inventory para identificar o item.

  • Exemplo:

    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:

3. MonsterDie(Player, Monster)

  • Descrição: Chamada quando um monstro morre.

  • Exemplo:

4. MonsterDieGiveItem(Player, Monster)

  • Descrição: Chamada quando um monstro solta um item após morrer.

  • Exemplo:

5. PlayerDie(aIndex, TargetIndex)

  • Descrição: Chamada quando o jogador morre.

  • Exemplo:

6. PlayerAttack(aIndex, TargetIndex)

  • Descrição: Chamada quando o jogador ataca um alvo.

  • Exemplo:

7. PlayerSendTrade(aIndex, TargetIndex)

  • Descrição: Chamada quando o jogador envia uma solicitação de troca (trade).

  • Exemplo:

8. PlayerLevelUp(aIndex)

  • Descrição: Chamada quando o jogador sobe de nível.

  • Exemplo:

9. PlayerRingEquiped(aIndex)

  • Descrição: Chamada quando o jogador equipa um anel.

  • Exemplo:

10. PlayerTradeOk(aIndex, TargetIndex)

  • Descrição: Chamada quando o jogador confirma uma troca (trade) clicando em "OK".

  • Exemplo:

11. PlayerLogout(aIndex)

  • Descrição: Chamada quando o jogador sai do jogo.

  • Exemplo:

12. GuildWarProc(GuildName1, GuildPoints1, GuildName2, GuildPoints2)

  • Descrição: Chamada durante uma guerra de guildas, com os nomes e pontos das guildas.

  • Exemplo:

13. EnterCharacter(aIndex)

  • Descrição: Chamada quando o jogador entra no jogo.

  • Exemplo:

14. CharacterMove(aIndex, map, x, y)

  • Descrição: Chamada quando o jogador teleporta.

  • Exemplo:

15. PlayerMove(aIndex, map, x, y, sx, sy)

  • Descrição: Chamada quando o jogador caminha no mapa.

  • Exemplo:

16. RunningSkill(aIndex, TargetIndex, SkillNumber)

  • Descrição: Chamada quando o jogador usa uma habilidade.

  • Exemplo:

17. NpcTalk(NpcIndex, PlayerIndex)

  • Descrição: Chamada quando o jogador fala com um NPC.

  • Exemplo:

18. PlayerSellItem(aIndex, slot)

  • Descrição: Chamada quando o jogador tenta vender um item.

  • Exemplo:

19. PlayerRepairItem(aIndex, slot)

  • Descrição: Chamada quando o jogador repara um item.

  • Exemplo:

20. PlayerCanMove(aIndex)

  • Descrição: Chamada quando o jogador tenta se mover.

  • Exemplo:

21. PlayerMoveItem(aIndex, SourceSlot, TargetSlot, Type)

  • Descrição: Chamada quando o jogador move um item no inventário.

  • Exemplo:

22. PlayerVaultOpen(aIndex)

  • Descrição: Chamada quando o jogador abre o cofre.

  • Exemplo:

23. DeclareWar(aIndex)

  • Descrição: Chamada quando o jogador declara guerra.

  • Exemplo:

24. PlayerUseItem(aIndex, SourceSlot, TargetSlot)

  • Descrição: Chamada quando o jogador usa um item (clique direito).

  • Exemplo:

25. PlayerVaultClose(aIndex)

  • Descrição: Chamada quando o jogador fecha o cofre.

  • Exemplo:

26. PlayerSendTradeX(aIndex, TargetIndex)

  • Descrição: Chamada quando o jogador envia uma solicitação de TradeX.

  • Exemplo:

27. PlayerTradeXOk(aIndex, TargetIndex)

  • Descrição: Chamada quando o jogador confirma um TradeX clicando em "OK".

  • Exemplo:

28. PlayerOpenShop(aIndex)

  • Descrição: Chamada quando o jogador abre uma loja pessoal.

  • Exemplo:

29. PlayerCloseShop(aIndex)

  • Descrição: Chamada quando o jogador fecha uma loja pessoal.

  • Exemplo:

30. PlayerCanEquipItem(aIndex, SourceSlot, TargetSlot)

  • Descrição: Chamada quando o jogador tenta equipar um item.

  • Exemplo:

31. GameServerProtocol(aIndex, Packet, PacketName)

  • Descrição: Chamada quando o jogador recebe um pacote personalizado do cliente.

  • Exemplo:

32. MacAddressPlayer(aIndex, HWID)

  • Descrição: Chamada para receber o HWID do jogador do cliente.

  • Exemplo:

33. PlayerAttackFenrirSkill(aIndex, TargetIndex)

  • Descrição: Chamada quando o jogador usa a habilidade Fenrir em um alvo.

  • Exemplo:

34. RespawnUser(aIndex)

  • Descrição: Chamada quando o jogador morre e o tipo de respawn é 5.

  • Exemplo:

35. MonsterReload()

  • Descrição: Chamada quando os monstros são recarregados no servidor.

  • Exemplo:


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.


Resumo

  • As funções do GameServerFunctions sã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.

Last updated