Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 07/17/20 em todas áreas

  1. Exato, mas esqueci de mencionar uma coisa. Caso queira aleatório assim, vai ter que mover a tabela das potions para dentro da função onUse, pois, se deixar fora, a primeira vez que usar a potion vai pegar um valor aleatório (de acordo com cada item e o valor gerado aleatório para ele), porém nas próximas vezes vai ficar sempre aquele valor, pois como as pastas são carregadas em memória, então fora do onUse ele armazena aquele valor em memória e nunca é alterado. Por exemplo, vamos supor que você tem 2 potion na tabela e a de uma o random deu 35 e a outra 38, se deixar a tabela fora da função onUse vai ficar sempre curando 35 uma e a outra 38 até reiniciar o servidor ou atualizar a pasta Actions. Então o certo é mover a tabela dentro da função onUse, para que a cada uso, gere um novo valor: --------------- POTION QUE CURA BASEADO NA PORCENTAGEM DA VIDA MÁXIMA BY YAN18 --------------- ----- FUNÇÃO PARA CURAR O PLAYER ----- function doHealPlayer(cid, porcentagem_hp, effect, message_heal) local porcentagem = math.abs(porcentagem_hp / 100) -- PEGA O VALOR INTEIRO PASSADO DO PARÂMETRO DESEJADO COMO A PORCENTAGEM E DIVIDE POR 100 PARAR GERAR A PORCENTAGEM local life_recovered = math.floor(getCreatureMaxHealth(cid) * porcentagem) -- QUANTIDADE DE HP QUE VAI RECUPERAR doSendMagicEffect(getThingPos(cid), effect) doCreatureAddHealth(cid, life_recovered) -- CONDICIONAL PARA EXIBIR MENSAGEM EM CIMA DO PLAYER AO CURAR -- if message_heal then doCreatureSay(cid, "Life recovered...") end doPlayerSendCancel(cid, "Life recovered...") -- MENSAGEM BRANCE EM CIMA DO CONSOLE doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You recovered " ..life_recovered.. " of your maximum life.") end ---------------------------------------- CÓDIGO ---------------------------------------- function onUse(cid, item, fromPosition, itemEx, toPosition) --------- TABELA COM O ID, PORCENTAGEM E EFEITO DAS POTIONS --------- local potions = { [12344] = {porcentagem = math.floor(math.random(30, 40)), effect = 14}, -- ID, PORCENTAGEM E EFEITO DA POTION [12345] = {porcentagem = math.floor(math.random(30, 40)), effect = 14}, -- ID, PORCENTAGEM E EFEITO DA POTION [12346] = {porcentagem = math.floor(math.random(30, 40)), effect = 12}, -- ID, PORCENTAGEM E EFEITO DA POTION [12347] = {porcentagem = math.floor(math.random(30, 40)), effect = 13}, -- ID, PORCENTAGEM E EFEITO DA POTION [12348] = {porcentagem = math.floor(math.random(30, 40)), effect = 13}, -- ID, PORCENTAGEM E EFEITO DA POTION } local verificar_batalha = true -- VARIÁVEL QUE VERIFICA SE ESTÁ EM BATALHA PARA USAR A POTION if not isCreature(cid) or not getCreatureMaster(cid) then return doPlayerSendCancel(cid, "You only can use this potion in you.") end if getCreatureHealth(cid) == getCreatureMaxHealth(cid) then return doPlayerSendCancel(cid, "You are already with full health.") end -- VERIFICA SE ESTÁ EM BATALHA -- if verificar_batalha then if getCreatureCondition(cid, CONDITION_INFIGHT) then doPlayerSendCancel(cid, "You can't use this potion during a battle.") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You can't use this potion during a battle.") return true end end doRemoveItem(item.uid, 1) doHealPlayer(cid, potions[item.itemid].porcentagem, potions[item.itemid].effect, true) return true end
    1 ponto
  2. Yan Oliveira

    (BUG) NPC Hunter

    O erro está nessa linha: if #getCreatureSummfighting = falseons(_target) > 0 then Não tem sentido algum a expressão no if. Mude para : if #getCreatureSummons(_target) > 0 then Estou me baseando no seu outro próprio post: Então a função vai ficar: function selfAttackCreature() if #getCreatureSummons(getNpcCid()) > 0 and not isCreature(getCreatureTarget(getCreatureSummons(getNpcCid())[1])) then local list = getSpectators(getCreaturePosition(getNpcCid()), 7, 7, false) for i=0, table.getn(list) do local _target = list if(_target ~= 0) then if isPlayer(_target) and not getTileInfo(getThingPos(_target)).protection then if #getCreatureSummons(_target) > 0 then doMonsterSetTarget(getCreatureSummons(getNpcCid())[1], getCreatureSummons(_target)[1]) setPlayerStorageValue(getCreatureSummons(getNpcCid())[1], 99856201, getNpcCid()) else fighting = false end target = _target break end end end end end Só substituir no Some Functions.lua onde coloquei para você, ou apenas trocar a linha acima. A linha alterada foi o que o Nociam te respondeu no seu outro post, ai tem que testar para ver se funciona. Mas, como ele recomendou nesse post recente: Deve ter funcionado. Teste e avise se der problema.
    1 ponto
  3. Hyaki

    Dungeon Finder

    @KaboFlow Seu erro é o mais simples de todo, se soubesse interpretar o mesmo teria resolvido e não ficaria floodando (4 posts seguidos) no tópico! Mas resolvendo o erro em luascript.h procure por: static int32_t luaDoRemoveItem(lua_State* L); E adicione embaixo: static int32_t luaDoPlayerInviteToParty(lua_State* L);
    1 ponto
  4. Vodkart

    Trade Logs

    Explicação: Vocês sabem que os comandos que o GOD usa ficam salvos em um arquivo.txt certo? Esse sistema é parecido, só que quando o jogador for trocar items pelo trade vão ficar salvo os IDS dos items que foram trocados e os nomes dos players. 1° Versão é feita pelo Banco de dados: 2° Versão é salvo em um arquivo.txt em data/logs
    1 ponto
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...