Ir para conteúdo

Mathias Kenfi

Membro
  • Registro em

  • Última visita

Tudo que Mathias Kenfi postou

  1. Compartilhe o resultado para que quando alguém tiver este problema, ela consiga resolvê-lo. REP +
  2. Talvez seja o math.floor, tente colocar player:getEffectiveSkillLevel(SKILL_AXE) em uma variável, ou utilize math.ceil(), ou apenas deixe a função.
  3. 1º Magia 2º Magia 3º Magia: Acredito que esta magia seja apenas colocar isso setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_MANADRAIN) 4º Magia No script da magia Big Regeneration, abaixo de function onCastSpell(cid, var) coloque: if getPlayerStorageValue(cid, 154343232) os.time() >= 1 then return doPlayerSendTextMessage(cid,22,"You are silence") end Agora o script da magia que causa o silenciamento Observação: Estas spells podem ser tanto alvo único, como também podem ser em área
  4. Fiz aqui pra você, amigo
  5. @Karliin Olha o meliante aqui
  6. Só salvar a HP do Pokémon específico em algum valor de storage, aí depois que você sair do RIDE esse valor seja setado na HP do pokemon setPlayerStorageValue(cid, getCreatureHealth(getCreatureSummons(cid)[1])
  7. Para o healing aparecer, você tem que editar no config.lua na linha a seguir showHealthChange = false Coloque true
  8. Os valores fixos foram exemplos de como deve ser feito, afinal da maneira que você estava fazendo não ia funcionar Para não ser valor fixo, basta você fazer da mesma forma que está escrito na função abaixo: function onGetFormulaValues(cid, level, maglevel) local min = (((level/5)+(maglevel*1) +1)) local max = (((level/5)+(maglevel*2) +3)) return min, max end Neste caso é só você criar uma variável GLOBAL da mesma forma que está escrito acima EXEMPLO: local level = getPlayerLevel(cid) local maglevel = getPlayerMagLevel(cid) local min, max = (((level/5)+(maglevel*1) +1)), (((level/5)+(maglevel*2) +3)) Mas deve ser declarado com variável GLOBAL, neste caso você deve declarar ela fora de uma função Porém você vai se deparar com outro problema, que é a variável "cid", porque você precisa de uma função padrão para declarar esta variável. Então para TENTAR resolver este problema tente usar o script dessa forma local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) function onGetFormulaValues(cid, level, maglevel) local min = (((level/5)+(maglevel*1) +1)) local max = (((level/5)+(maglevel*2) +3)) -- Essas variáveis são validas apenas para esta função, pois você fechou o escopo return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local condition = createConditionObject(CONDITION_REGENERATION) function onCastSpell(cid, var) -- Perceba que eu coloquei dentro desta função para definir a variável cid local level = getPlayerLevel(cid) local maglevel = getPlayerMagLevel(cid) local min, max = math.ceil((((level/5)+(maglevel*1) +1))), math.ceil((((level/5)+(maglevel*2) +3))) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_TICKS, 1 * 60 * 1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, math.random(min, max)) -- Agora estão declaradas logo acima setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setCombatCondition(combat, condition) return doCombat(cid, combat, var) end É uma das possibilidades de resolver o problema (existe script melhor pra tal coisa, porém é a mesma coisa)
  9. Você não entendeu nada do que expliquei É claro que você curou, afinal a varíavel min e max estão declaras na função function onGetFormulaValues(cid, level, maglevel) Já aqui, não está declarado o que seria min e max, pois elas não foram decladas. Elas foram declaradas apenas na função citada acima setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, math.random(min, max))
  10. Você declarou as variáveis, min e max, na função abaixo function onGetFormulaValues(cid, level, maglevel) local min = (((level/5)+(maglevel*1) +1)) local max = (((level/5)+(maglevel*2) +3)) return min, max end Você deve declarar essas funções de forma global, como eu mostrei local min, max = 15, 30 -- Isto é um exemplo de uma variável global Desta forma, o valor será global. Só não fechar com end
  11. Não, pois, como citado, elas estão declaradas no escopo de function onGetFormulasValue(cid)
  12. No seu script local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) function onGetFormulaValues(cid, level, maglevel) local min = (((level/5)+(maglevel*1) +1)) local max = (((level/5)+(maglevel*2) +3)) -- Essas variáveis são validas apenas para esta função, pois você fechou o escopo return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_TICKS, 1 * 60 * 1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, math.random(min, max)) -- Você não declarou as variáveis min e max setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end As variáveis min e max não estão declaradas Para declarar um variável global, você deve criar ela fora de um escopo, switch case, função, etc... Ficando assim V local min, max = 15, 30 -- Isto é um exemplo de uma variável global local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) function onGetFormulaValues(cid, level, maglevel) local min = (((level/5)+(maglevel*1) +1)) local max = (((level/5)+(maglevel*2) +3)) return min, max end setCombatCallback(combat, CALLBACK_PARAM_LEVELMAGICVALUE, "onGetFormulaValues") local condition = createConditionObject(CONDITION_REGENERATION) setConditionParam(condition, CONDITION_PARAM_SUBID, 1) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_TICKS, 1 * 60 * 1000) setConditionParam(condition, CONDITION_PARAM_HEALTHGAIN, math.random(min, max)) setConditionParam(condition, CONDITION_PARAM_HEALTHTICKS, 1000) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end
  13. Você não criou uma local global para min, max Elas existem apenas na função onGetFormulaValue
  14. Olá pessoal do TibiaKing. Vejo que muitos estão abrindo servidores com Reset System. Então para facilitar a vida de alguns usuários, eu criei um script de reset tile simplificado Como funciona? Você escolhe um uniqueid (por exemplo: 29000), e pode usá-lo para ser a quantidade de resets Não entendeu ainda? Exemplo: 29000 = 0 resets para passar no tile 29057 = 57 resets para passar no tile Entendeu agora? Segue o tutorial de instalação Vá em data/movements/scripts e crie um arquivo chamado reset.lua Dentro dele coloque o seguinte script Em data/movements/movements.xml Coloque a tag: Lembrando, você deve colocar o mesmo valor de unique que está em tilestr Com isso você não precisa criar um arquivo toda vez que quiser adicionar um novo tile de reset em seu OT, apenas coloque o valor uinque específico Ajudei? REP++
  15. Olá TibiaKing, estou usando o sistema de Dodge do @xWhiteWolf, porém toda vez que adiciono Dodge no item ele fica normal como vemos abaixo: Porém quando eu deslogo e logo, da o seguinte erro na distro: [ItemAttribute::serialize] : Invalid data type. [Warning - IOLoginData::loadItems] Unserialize error for item with id 2472 E ao logar o item aparece dessa maneira: Alguém pode me ajudar a resolver esse erro?
  16. Sim, mas acredito que não precise do .uid, mas pode tentar das 2 formas
  17. Tente usar essa função doSetItemActionId(uid, actionId)
  18. tenta criar 1 local específico para a função local ited = doPlayerAddItem(player,2086,1) ited:setActionId(action)
  19. doPlayerAddItem(player,2086:setActionId(action),1) doPlayerAddItem(player,2086,1:setActionId(action)) Tenta essas variações
  20. Qual versão do TFS? troque as funções creatureGetName(cid) por getCreatureName(cid)
  21. ERROR na linha 27 portal2:remove(1) end, 1*60*1000, 26394, 1, posCorpo) Está apenas faltando um () portal2:remove(1) end, (1*60*1000, 26394, 1, posCorpo)
  22. local combat = Combat() combat:setParameter(COMBAT_PARAM_EFFECT, CONST_ME_MAGIC_BLUE) combat:setArea(createCombatArea(AREA_SQUARE1X1)) function onTargetCreature(creature, target) if target:getMaxHealth() > ((30*target:getMaxHealth())/100) then --- Vai checar se a vida do monstro é maior que 30% return doChallengeCreature(creature, target) end end combat:setCallback(CALLBACK_PARAM_TARGETCREATURE, "onTargetCreature") function onCastSpell(creature, variant) return combat:execute(creature, variant) end Tente assim

Informação Importante

Confirmação de Termo