Documentação › Lua
Player
O módulo Player lê os dados do seu personagem: vida, mana, level, skills, estados, equipamento e party. Os valores vêm dos pacotes que o servidor manda; antes do primeiro pacote, a maioria devolve 0.
Identidade#
Player.getId()#
Player.getId() → número
Seu id de criatura. Retorna 0 fora do jogo.
print(Player.getId())Player.getName()#
Player.getName() → texto ou nil
Nome do personagem. Retorna nil fora do jogo.
print("Logado como " .. (Player.getName() or "?"))Player.getVocation()#
Player.getVocation() → número (extra)
Vocação, como em Enums.Vocations. Retorna 0 até o servidor mandar os dados básicos do personagem.
if Player.getVocation() == Enums.Vocations.ELITE_KNIGHT then print("EK") endPlayer.isPremium()#
Player.isPremium() → booleano
Se a conta é premium. Retorna false até chegarem os dados básicos.
print(Player.isPremium())Player.hasReceivedBasicData()#
Player.hasReceivedBasicData() → booleano
Se o servidor já mandou os dados básicos (vocação, premium). Use antes de ler getVocation e isPremium.
if Player.hasReceivedBasicData() then print(Player.getVocation()) endVida, mana e status#
Player.getHealth() e Player.getMaxHealth()#
Player.getHealth() → número · Player.getMaxHealth() → número (extra)
Vida atual e máxima.
print(Player.getHealth() .. "/" .. Player.getMaxHealth())Player.getMana() e Player.getMaxMana()#
Player.getMana() → número · Player.getMaxMana() → número (extra)
Mana atual e máxima.
print(Player.getMana() .. "/" .. Player.getMaxMana())Player.getHealthPercent() e Player.getManaPercent()#
Player.getHealthPercent() → número · Player.getManaPercent() → número
Vida e mana em porcentagem (0 a 100).
if Player.getHealthPercent() < 40 then Game.talk("exura vita") endPlayer.getMagicShield() e Player.getMaxMagicShield()#
Player.getMagicShield() → número · Player.getMaxMagicShield() → número
Pontos atuais e máximos do escudo mágico (utamo vita e magic shield potion).
print(Player.getMagicShield())Player.getCapacity()#
Player.getCapacity() → número
Cap livre como o servidor manda, em centésimos de oz. Divida por 100 para ter oz.
local oz = Player.getCapacity() / 100
if oz < 100 then Client.showMessage("Cap baixa: " .. oz .. " oz") endPlayer.getSoulPoints()#
Player.getSoulPoints() → número
Soul points.
print(Player.getSoulPoints())Player.getStamina()#
Player.getStamina() → número
Stamina como o servidor manda (em minutos). 0 até chegar o pacote de status.
if Player.getStamina() < 14 * 60 then print("stamina laranja") endPlayer.isHungry()#
Player.isHungry() → booleano
true quando a regeneração de comida acabou.
if Player.isHungry() then Game.useItem(3725) end -- 3725 = brown mushroomPlayer.getSpeed()#
Player.getSpeed() → número (extra)
Velocidade atual.
print(Player.getSpeed())Level e experiência#
Player.getLevel()#
Player.getLevel() → número
Level atual.
print(Player.getLevel())Player.getLevelPercent()#
Player.getLevelPercent() → número
Porcentagem até o próximo level.
print(Player.getLevelPercent() .. "%")Player.getExperience()#
Player.getExperience() → número
Experiência total.
print(Player.getExperience())Player.getXpBoostTime()#
Player.getXpBoostTime() → número
Segundos restantes de XP boost da store.
print(math.floor(Player.getXpBoostTime() / 60) .. " min de boost")Skills#
Player.getSkills()#
Player.getSkills() → tabela
Skills, magic level e bônus. Cada skill vem com o level e a porcentagem (<skill>Percent).
| Campo | Descrição |
|---|---|
fist, club, sword, axe, distance, shield, fishing | Level da skill (e fistPercent, clubPercent...) |
magic, magicPercent | Magic level e porcentagem |
criticalChance, criticalDamage | Crítico, em porcentagem |
lifeLeechDamage, manaLeechDamage | Leech, em porcentagem |
lifeLeechChance, manaLeechChance | 100 quando você tem leech, senão 0 |
onslaught | Onslaught, em porcentagem |
local s = Player.getSkills()
print("ML " .. s.magic .. " (" .. s.magicPercent .. "%)")Posição e estado#
Player.getPosition()#
Player.getPosition() → {x, y, z} (extra)
Sua posição.
local p = Player.getPosition()
print(p.x, p.y, p.z)Player.isInPz()#
Player.isInPz() → booleano (extra)
Se você está numa protection zone.
if Player.isInPz() then print("em PZ") endPlayer.isInCombat()#
Player.isInCombat() → booleano (extra)
Se você está em combate.
if not Player.isInCombat() then Game.talk("utani hur") endPlayer.getState(estado)#
Player.getState(estado) → booleano ou nil
Se você está com um estado (ícone de condição).
| Parâmetro | Tipo | Descrição |
|---|---|---|
| estado | número | Um valor de Enums.States (0 a 27) |
Retorna true ou false, ou nil para um número fora de 0 a 27.
if Player.getState(Enums.States.STATE_PARALYZE) then Game.talk("exura ico") endPlayer.getTargetId()#
Player.getTargetId() → número
Id da criatura que você está atacando. Retorna 0 sem alvo.
local id = Player.getTargetId()
if id ~= 0 then print(Creature.new(id):getName()) endPlayer.getFollowId()#
Player.getFollowId() → número
Id da última criatura que o cliente mandou seguir (0 = nenhuma).
print(Player.getFollowId())Equipamento e containers#
Player.getInventorySlot(slot)#
Player.getInventorySlot(slot) → tabela ou nil
O item num slot de equipamento.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| slot | número | Enums.InventorySlot (1 a 10) |
Retorna {id, count, tier, holdingCount} ou nil com o slot vazio. tier é sempre 0. holdingCount é quantos desse item você tem no total (equipamento e containers abertos).
local ammo = Player.getInventorySlot(Enums.InventorySlot.CONST_SLOT_AMMO)
if ammo then print("flechas: " .. ammo.count) endPlayer.getContainers()#
Player.getContainers() → lista ou nil
Índices dos containers abertos, em ordem. Retorna nil sem nenhum aberto.
for _, i in ipairs(Player.getContainers() or {}) do
print(i, Container.new(i):getName())
endProteção e skull#
Player.getBlessingState()#
Player.getBlessingState() → número
Estado das blessings, como em Enums.BlessingState: -1 desconhecido, 0 nenhuma, 1 algumas, 2 todas (7 ou mais).
if Player.getBlessingState() ~= Enums.BlessingState.FULL then print("sem bless!") endPlayer.getUnjustifiedData()#
Player.getUnjustifiedData() → tabela
Frags injustificados: dayProgress, dayLeft, weekProgress, weekLeft, monthProgress, monthLeft e skullDuration. Tudo 0 até o servidor mandar.
print("frags hoje: " .. Player.getUnjustifiedData().dayProgress)Moedas e pontos#
Saldos#
Todos devolvem um número, 0 até o servidor mandar o valor.
| Função | O que devolve |
|---|---|
Player.getTotalGoldBalance() | Gold total que o servidor informa |
Player.getDusts() / Player.getDustsMaximum() | Dust da forge e o limite |
Player.getHuntingPoints() | Pontos de hunting task |
Player.getPreyWildcards() | Prey wildcards |
Player.getBountyPoints() | Pontos do task board |
Player.getSoulSeals() | Soul seals |
print("gold: " .. Player.getTotalGoldBalance())Player.getHuntingTaskPrices()#
Player.getHuntingTaskPrices() → tabela
Preços da hunting task: rerollPrice, cancelPrice, selectionListPrice, rewardRerollPrice. Em servidores 15.20 ou mais novos esses preços vêm com o task board e aqui ficam 0.
print(Player.getHuntingTaskPrices().rerollPrice)Monk#
Player.getHarmony(), Player.isSerene() e Player.getMonkPassiveType()#
Player.getHarmony() → número · Player.isSerene() → booleano · Player.getMonkPassiveType() → número
Harmony, estado serene e virtude passiva (Enums.MonkPassiveType) do monk. 0/false até o servidor mandar.
print("harmony: " .. Player.getHarmony())Player.getStances()#
Player.getStances() → lista
Stances ativas. Hoje sempre devolve uma lista vazia.
print(#Player.getStances())Party#
Player.inviteParty(id), Player.joinParty(id) e Player.passLeadershipParty(id)#
Player.inviteParty(playerId) · Player.joinParty(playerId) · Player.passLeadershipParty(playerId)
Convida um player, aceita o convite de um líder e passa a liderança.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| playerId | número | Id da criatura do player |
local amigo = Map.getPlayerOnScreen("Nome do Amigo")
if amigo then Player.inviteParty(amigo:getId()) endPlayer.enableSharedExpParty(ligar)#
Player.enableSharedExpParty(ligar)
Liga (true) ou desliga (false) o shared experience da party.
Player.enableSharedExpParty(true)Player.leaveParty()#
Player.leaveParty()
Sai da party.
Player.leaveParty()
Comentários
para comentar.