Tudo que Mathias Kenfi postou
-
[Pedido] Aquele "brilho" que nao deixa pegar os itens no chão .. alguem sabe como por ele no RME?
- (Resolvido)(Ajuda) Items e Movements
Compartilhe o resultado para que quando alguém tiver este problema, ela consiga resolvê-lo. REP +- [Pedido] Aquele "brilho" que nao deixa pegar os itens no chão .. alguem sabe como por ele no RME?
Vá em RAW PALLETE/others e procure pelo item de ID 8047- Bleeding Effect SCRIPT
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.- (Resolvido)Auxilio com scripts de spells
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- (Resolvido).
Fiz aqui pra você, amigo- Cuidado!! vai te passar a perna
@Karliin Olha o meliante aqui- (Resolvido)[Resolvido]
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])- (Resolvido)Healando por segundo usando ML
Para o healing aparecer, você tem que editar no config.lua na linha a seguir showHealthChange = false Coloque true- (Resolvido)Healando por segundo usando ML
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)- (Resolvido)Healando por segundo usando ML
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))- (Resolvido)Healando por segundo usando ML
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- (Resolvido)Healando por segundo usando ML
Não, pois, como citado, elas estão declaradas no escopo de function onGetFormulasValue(cid)- (Resolvido)Healando por segundo usando ML
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- (Resolvido)Healando por segundo usando ML
Você não criou uma local global para min, max Elas existem apenas na função onGetFormulaValue- Tile Reset System [SIMPLIFICADO]
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++- Erro Dodge System
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?- [TFS 1.2] Setar action id com a função addItem
Sim, mas acredito que não precise do .uid, mas pode tentar das 2 formas- [TFS 1.2] Setar action id com a função addItem
A uid é o doPlayerADDItem- [TFS 1.2] Setar action id com a função addItem
Tente usar essa função doSetItemActionId(uid, actionId)- [TFS 1.2] Setar action id com a função addItem
tenta criar 1 local específico para a função local ited = doPlayerAddItem(player,2086,1) ited:setActionId(action)- [TFS 1.2] Setar action id com a função addItem
doPlayerAddItem(player,2086:setActionId(action),1) doPlayerAddItem(player,2086,1:setActionId(action)) Tenta essas variações- Meu NPC barco não conversa
Qual versão do TFS? troque as funções creatureGetName(cid) por getCreatureName(cid)- (Resolvido)[TFS1.2] Vortex Cults De Carlin
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)- (Resolvido)[TFS1.2] Novo exeta res
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 - (Resolvido)(Ajuda) Items e Movements
Informação Importante
Confirmação de Termo