-
-
-
-
Problema Em Spell
obrigado funcionou perfeitamente, consegui enteder tambem mais ou menos por cima de como usar o else pois não sabia que existia elseif! obrigado funcionou perfeitamente! e obrigado por me falar onde estava o erro consegui compreender mais ou menos pois não sabia que existia o elseif!
-
-
-
Problema Em Spell
essa function no caso seria oq? return false?
-
-
Problema Em Spell
.Qual servidor ou website você utiliza como base? tfs 0.3.6 Qual o motivo deste tópico? não sei como finalizar essa spell. Está surgindo algum erro? Se sim coloque-o aqui. Você tem o código disponível? Se tiver publique-o aqui: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_HITCOLOR, COLOR_ORANGE) setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -135.8, 0, -140.9, 0) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_HITCOLOR, COLOR_RED) setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -170.8, 0, -175.9, 0) local combat3 = createCombatObject() setCombatParam(combat3, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatFormula(combat3, COMBAT_FORMULA_LEVELMAGIC, -150.8, 0, -155.9, 0) local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, parameters.combat3, parameters.var) end function yagai1(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 399) end end function yagai2(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+2, y=getThingPosition(getCreatureTarget(cid)).y+2, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 411) end end function yagai3(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 398) end end function yagai4(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+2, y=getThingPosition(getCreatureTarget(cid)).y+2, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 396) end end function yagai5(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+1, y=getThingPosition(getCreatureTarget(cid)).y, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 438) end end function yagai6(cid) if isCreature(cid) and isCreature(getCreatureTarget(cid)) then local position = {x=getThingPosition(getCreatureTarget(cid)).x+2, y=getThingPosition(getCreatureTarget(cid)).y+2, z=getThingPosition(getCreatureTarget(cid)).z} doSendMagicEffect(position, 439) end end function onCastSpell(cid, var) local waittime = 3.0 -- Tempo de exhaustion local storage = 143512 -- não mecha local storage2 = 55512 if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.") return false end local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3} if getPlayerStorageValue(cid, storage2) == 5 then addEvent(onCastSpell2, 650, parameters) addEvent(yagai3, 50, cid) addEvent(yagai4, 650, cid) else if getPlayerStorageValue(cid, storage2) == 4 then addEvent(onCastSpell2, 650, parameters) addEvent(yagai3, 50, cid) addEvent(yagai4, 650, cid) else if getPlayerStorageValue(cid, storage2) == 3 then addEvent(onCastSpell3, 650, parameters) addEvent(yagai5, 50, cid) addEvent(yagai6, 650, cid) else addEvent(onCastSpell1, 650, parameters) addEvent(yagai1, 50, cid) addEvent(yagai2, 650, cid) end end exhaustion.set(cid, storage, waittime) return true end Estou tentando adicionar essa parte na script da spell e não estou tento exito. if getPlayerStorageValue(cid, storage2) == 3 then addEvent(onCastSpell3, 650, parameters) addEvent(yagai5, 50, cid) addEvent(yagai6, 650, cid) else quando adiciono essa parte na script da esse erro na distro: [19/05/2024 15:34:35] [Error - LuaScriptInterface::loadFile] data/spells/scripts/maito gai/yagai.lua:99: 'end' expected (to close 'function' at line 67) near '<eof>' [19/05/2024 15:34:35] [Warning - Event::loadScript] Cannot load script (data/spells/scripts/maito gai/yagai.lua) [19/05/2024 15:34:35] data/spells/scripts/maito gai/yagai.lua:99: 'end' expected (to close 'function' at line 67) near '<eof>' a spell ta pra mudar a cor dos efeitos e o dano quando o player esta transformado, com storage 3, 4 e 5, quando deixo so para a 4 e 5 funciona, quando tento adicionar a 3, não tenho exito, pois creio q não sei como fechar as linhas do else.
-
-
Setar -1 Na Storage Quando O Player Desloga
eu descobri e vou deixar aqui pra quem estiver com a mesma duvida ou problema: em creaturescript vai em login.lua e coloca esse codigo em cima dos registerCreature. if getPlayerStorageValue(cid, 55512) == 1 then setPlayerStorageValue(cid, 55512, -1) end toda vez que o player logar vai setar -1 na storage 55512.
-
Setar -1 Na Storage Quando O Player Desloga
.Qual servidor ou website você utiliza como base? tfs 0.3.6 Qual o motivo deste tópico? spell(buff) com storage temporaria, não estou conseguindo setar a storage 55512 = -1 quando o player desloga no meio das stages Está surgindo algum erro? Se sim coloque-o aqui. os dois codigos que estou deixando abaixo são funcionais, porem o primeiro eu entendo melhor, porem não sei qual é o melhor. 1º function onCastSpell(cid, var) local storage = 55512 -- Storage para controlar a spell local stage = getPlayerStorageValue(cid, storage) or 0 -- Obtém o estágio atual da spell, se não houver nenhum, assume 0 local waittimes = {30, 30, 40, 50, 60} -- Tempos de espera para cada estágio em segundos local storage2 = 55513 local waittime3 = 310 if exhaustion.check(cid, storage2) then doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage2) .. " segundos para usar a spell novamente.") return false end if not isCreature(cid) then return false end if stage > 0 then doPlayerSendCancel(cid, "Você já está sob o efeito da spell.") return false end -- Definir o estágio inicial da spell setPlayerStorageValue(cid, storage, 1) stage = 1 -- Função para avançar para o próximo estágio após o término do atual local function advanceStage() if stage < #waittimes then stage = stage + 1 setPlayerStorageValue(cid, storage, stage) -- Programar o próximo avanço de estágio addEvent(advanceStage, waittimes[stage] * 1000) else -- Resetar a storage quando todos os estágios terminarem setPlayerStorageValue(cid, storage, -1) end end -- Iniciar o avanço de estágio addEvent(advanceStage, waittimes[stage] * 1000) -- Definir a exhaustion e aplicar os efeitos iniciais da spell local waittime = waittimes[1] -- Definir o tempo de exhaustion baseado no primeiro estágio exhaustion.set(cid, storage2, waittime3) OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1) -- Definir a storage de volta para -1 após o término do efeito da spell addEvent(function() setPlayerStorageValue(cid, storage, -1) end, waittime * 1000) -- Convertendo segundos para milissegundos return true end 2º function onCastSpell(cid, var) local waittime = 310 -- Tempo de exaustão local storage = 55512 -- Storage para controlar a spell local storage2 = 55513 -- Storage para controlar a spell local stages = { {time = 0, value = 1}, -- 0 segundos, storage = 1 {time = 30, value = 2}, -- 30 segundos adicionais, storage = 2 {time = 30, value = 3}, -- 30 segundos adicionais, storage = 3 {time = 40, value = 4}, -- 40 segundos adicionais, storage = 4 {time = 50, value = 5} -- 50 segundos adicionais, storage = 5 } if exhaustion.check(cid, storage2) then doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage2) .. " segundos para usar a spell novamente.") return false end if not isCreature(cid) then return false end -- Verificar se o jogador já usou a spell if getPlayerStorageValue(cid, storage) > 5 then return false end -- Definir a exaustão e a storage inicial exhaustion.set(cid, storage2, waittime) setPlayerStorageValue(cid, storage, 1) -- Função para alterar a storage e verificar se o jogador está online local function changeStorage(cidGUID, newValue) local creature = getPlayerByGUID(cidGUID) if creature and isCreature(creature) then setPlayerStorageValue(creature, storage, newValue) if newValue == -1 then end end end -- Obter o GUID do jogador local cidGUID = getPlayerGUID(cid) -- Agendar as mudanças de storage local accumulatedTime = 0 for i, stage in ipairs(stages) do accumulatedTime = accumulatedTime + stage.time addEvent(changeStorage, accumulatedTime * 1000, cidGUID, stage.value) end -- Agendar o reset da storage para o valor -1 após o último estágio accumulatedTime = accumulatedTime + stages[#stages].time addEvent(changeStorage, accumulatedTime * 1000, cidGUID, -1) -- Verificar se o jogador já está transformado if getCreatureCondition(cid, CONDITION_ATTRIBUTES, 50) == false and getCreatureCondition(cid, CONDITION_HASTE, 51) == false and getCreatureCondition(cid, CONDITION_REGENERATION, 52) == false then OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1) return true else doPlayerSendCancel(cid, "Você já está transformado.") return true end end
-
-
Storage Temporaria Em Spell
editei um pouco o codigo pra funcionar estava dando uns erros na distro, mais mesmo assim se deslogar durante o buff e estiver com uma storage, como a 3 por exemplo, (55512 = 3) depois de um tempo o player logar ela n volta pra -1, ele continua com a 3 ai no caso o player n iria conseguir usar o buff mais, não existe um codigo pra colocar no creaturescript pra quando todos os players logarem terem essa storage 55512 = -1?? facilitaria muito mais pois o codigo da spell ja esta funcional aqui.
-
Storage Temporaria Em Spell
funciona os stages de storage mas no caso como é uma spell de buff, o buff é cortado quando desloga ou morre, e o stages continuam, o certo seria os stages serem cortados juntos com os buffs da spell(voltar para -1 a storage caso morra ou deslogue). e no caso cortou o buff e os efeitos, não esta dando os atributos que são: ml,fist,sword,club e axe. vou deixar um codigo aqui pra vcs terem uma noção de como a spell estava funcionando certinho, porem tinha somente esse erro da storage não voltar a -1 quando morresse ou deslogasse, a storage ela continuava no ultimo stage tipo desloguei enquanto tava no stage3, o player continuava com a storage 55512=3. ai no caso tem uma storage pra setar o tempo que o player vai poder usar a spell dnv e outra storage que ira setar os stages.
-
-
Storage Temporaria Em Spell
[13/04/2024 12:53:52] Chaves has logged in. [13/04/2024 12:53:52] [Error - CreatureScript Interface] [13/04/2024 12:53:52] data/creaturescripts/scripts/login.lua:onLogin [13/04/2024 12:53:52] Description: [13/04/2024 12:53:52] data/creaturescripts/scripts/login.lua:58: attempt to compare boolean with number [13/04/2024 12:53:52] stack traceback: [13/04/2024 12:53:52] data/creaturescripts/scripts/login.lua:58: in function <data/creaturescripts/scripts/login.lua:6> [13/04/2024 12:53:52] Chaves has logged out. coloquei as duas tags em login.lua ta certo? o char nem loga e aparece esse erro ai na distro. mano não teria um codigo pra colocar no login.lua que quando logasse tirasse essa storage de todos player? porque so vou usar essa spell pra esse buff de um personagem mesmo e se o cara deslogar e logar ele ja perderia o buff se fosse pra todos que logarem perder essa storage tava de boa porque so uma voc iria conseguir usar essa spell ele teria q esperar o tempo da spell voltar porque estou usando outra storage pra setar o tempo de usar a spell dnv, obrigado por dar uma atenção cara vc é fera! facilitaria bem mais com o codigo de resetar essa storage toda vez que relogasse, morresse, etc. porque a spell ta funcionando perfeitamente do jeito q eu quero aqui o problema é so a storage que fica travado nos stages quando reloga,morre,etc.
-
-
Storage Temporaria Em Spell
[12/04/2024 22:20:31] [Error - Spell Interface] [12/04/2024 22:20:31] In a timer event called from: [12/04/2024 22:20:31] data/spells/scripts/maito gai/hachimon_tonkou.lua:onCastSpell [12/04/2024 22:20:31] Description: [12/04/2024 22:20:31] data/spells/scripts/maito gai/hachimon_tonkou.lua:209: attempt to call global 'isPlayerLoggedIn' (a nil value) [12/04/2024 22:20:31] stack traceback: [12/04/2024 22:20:31] data/spells/scripts/maito gai/hachimon_tonkou.lua:209: in function <data/spells/scripts/maito gai/hachimon_tonkou.lua:208> da esse erro na distro e esta setando somente a primeira storage (1) o resto fica tudo -1 -1 -1 -1
-
-
Storage Temporaria Em Spell
Perfeito mano dei uma ajeitada aqui consegui! Obrigado voce é zika rep+ pra voce até eu n puder mais! Na verdade eu so não consegui uma coisa, quando o player desloga ou morre ele n consegue mais usar a spell pq fica setada em um numero e não volta qnd morre ou desloga se conseguir dar uma força ai agradeço ta me ajudando pra caramba kkkk so tenho a te agradecer! eu deixei assim e ta funcionando perfeitamente aqui, os unicos problemas são o loggout, caso se o player morrer ou deslogar durante a spell(buff), ele fica impossibilitado de usar a spell(buff) tem como dar uma força?
-
-
Storage Temporaria Em Spell
--ultimo edit-- obrigado mano funcionou perfeitamente vc é fera!!! uma pergunta eu consigo usar esse addevent para setar storage em etapas? tipo: storage 55512 = 1 por 20 segundos storage 55512 = 2 por 30 segundos storage 55512 = 3 por 40 segundos no caso seria quando o player usar a spell tipo usei spell susano(buff) ai no momento q eu usei daria 55512 = 1 por 20 segundos ai acabando os 20 segundos: ja iria pra storage 55512 = 2 por 30 segundos e acabando os 30 segundos: 55512 = 3 por 40 segundos
-
L3K0T começou a seguir Gabrielx17
-
-
-
-
Storage Temporaria Em Spell
sobre o script, tipo eu queria q depois q acabasse a spell voltasse pra -1 ou para 0 a storage pode ser qualquer um dos dois 0 ou -1, não sei se teria como. é uma spell de buff. vejo q você sempre esta ajudando aqui no TK inclusive ja me ajudou muito, não vejo ninguem mais ajudando alem de voce. vou deixar meu rep+ pra voce, sempre ta online ajudando a comunidade, vc é minha esperança😄.
-
Storage Temporaria Em Spell
.Qual servidor ou website você utiliza como base? tfs 0.3.6 Qual o motivo deste tópico? tentando colocar storage temporaria de 3 min Está surgindo algum erro? Se sim coloque-o aqui. então rapaziada ja tentei colocar pra setar 1 na storage 55512, eu até consegui mas, eu queria q depois q a spell acabasse voltasse pra 0 ou -1 que é o valor normal de todas storages do meu servidor não sei se teria como, abaixo a function da spell. estou com um problema q a spell ela muda a outfit do player e no caso estou querendo setar uma storage para o player não poder usar a talkaction que muda de roupa, no caso !saga. Você tem o código disponível? Se tiver publique-o aqui: function onCastSpell(cid, var) local waittime = 310 -- Tempo de exhaustion local storage = 55512 -- não mecha if getPlayerStorageValue(cid, storage) > 0 then if exhaustion.check(cid, storage) then doPlayerSendCancel(cid, "Aguarde " .. exhaustion.get(cid, storage) .. " segundos para usar a spell novamente.") end return false end if (not isCreature(cid)) then return false end exhaustion.set(cid, storage, waittime) setPlayerStorageValue(cid,storage,1) if getCreatureCondition(cid, CONDITION_ATTRIBUTES, 50) == false and getCreatureCondition(cid, CONDITION_HASTE, 51) == false and getCreatureCondition(cid, CONDITION_REGENERATION, 52) == false then OpenGate(cid, Select_Stages(getCreatureOutfit(cid).lookType), 1) return true else doPlayerSendCancel(cid, "Você já esta transformado.") end return true end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
-
Duas Weapons Nos Slots
Eae galera do tk, como vocês estão? Entao galera to com um problema no meu server/client não sei ao certo, que esta dando para colocar duas weapons na mão e da o dano só de uma, eu queria saber como retira isso, pois nao acrescenta em nada . Ja tentei colocar em movements.xml o id do item e slot=hands mas não funcionou alguem me ajuda por favor, rep++ pra quem me ajudar.
-
Saga System Ficando Invisivel
Solucionado em verde a linha adicionada.