Tudo que Nother postou
-
Simple Task 0.4 não funciona
-
Simple Task 0.4 não funciona
Não está não, segui o tutorial e so fiz alteraçõs nos bixos das tasks, no tutorial não tava falando nada a respeito
-
Simple Task 0.4 não funciona
Adicionado!
-
Simple Task 0.4 não funciona
Olá, recentemente adicionei o mod do Simple Task no meu server mas estou com um problema que sempre que falo com o npc e falo task ele não responde mais e aparece na minha distro o seguinte: [2:18:09.636] [Error - NpcScript Interface] [2:18:09.638] data/npc/scripts/task.lua:onCreatureSay [2:18:09.639] Description: [2:18:09.639] data/npc/scripts/task.lua:19: attempt to compare nil with number [2:18:09.640] stack traceback: [2:18:09.640] data/npc/scripts/task.lua:19: in function 'callback' [2:18:09.641] data/npc/lib/npcsystem/npchandler.lua:390: in function 'onCreatureSay' [2:18:09.642] data/npc/scripts/task.lua:8: in function <data/npc/scripts/task.lua:8> Meu TFS é 0.4 e meu tibia é 8.60 Todos os tópicos relacionados a esse problema falam que é por causa de versão mas no caso a minha versão e a mesma que pede para usar esse mod. Script: domodlib('task_func') local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser,msg, str,rst = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid, msg:lower(),"","" local task,daily, hours = getTaskMission(cid),getDailyTaskMission(cid), 24 if isInArray({"task","tasks","missao","mission"}, msg) then if task_sys[task] then if getPlayerStorageValue(cid, task_sys[task].start) <= 0 then if getPlayerLevel(cid) >= task_sys[task].level then setPlayerStorageValue(cid, task_sys[task].start, 1) npcHandler:say("[Task System] Parabéns, agora você está participando da Task do "..task_sys[task].name.." e deverá matar "..task_sys[task].count.." desta lista: "..getMonsterFromList(task_sys[task].monsters_list)..". "..(#task_sys[task].items > 0 and "Ah e por favor me traga "..getItemsFromList(task_sys[task].items).." para mim." or "").."" , cid) else npcHandler:say("Desculpe, Mas você precisa alcançar level "..task_sys[task].level.." para poder participar da Task dos "..task_sys[task].name.."!", cid) end else npcHandler:say("Desculpe, Mas você atualmente está na task "..task_sys[task].name..". Você pode {entregar} caso já tenha terminado.", cid) end else npcHandler:say("Desculpe, Mas por enquanto não tenho mais nenhuma task para você!", cid) end elseif isInArray({"diaria","daili","daily","dayli","diario"}, msg) then if getPlayerStorageValue(cid, task_sys_storages[6]) - os.time() > 0 then npcHandler:say("Desculpe, você deve esperar até "..os.date("%d %B %Y %X ", getPlayerStorageValue(cid,task_sys_storages[6])).." para iniciar uma nova task diaria!", cid) return true elseif daily_task[daily] and getPlayerStorageValue(cid, task_sys_storages[5]) >= daily_task[daily].count then npcHandler:say("Desculpe, você tem task para {entregar} !", cid) return true end local r = doRandomDailyTask(cid) if r == 0 then npcHandler:say("Desculpe, mas você não tem level para completar nenhuma Task diaria.", cid) return true end setPlayerStorageValue(cid, task_sys_storages[4], r) setPlayerStorageValue(cid, task_sys_storages[6], os.time()+hours*3600) setPlayerStorageValue(cid, task_sys_storages[7], 1) setPlayerStorageValue(cid, task_sys_storages[5], 0) local dtask = daily_task[r] npcHandler:say("[Daily Task System] Parabéns, agora você está participando da Task Diaria do "..dtask.name.." e deverá matar "..dtask.count.." monstros desta lista: "..getMonsterFromList(dtask.monsters_list).." até "..os.date("%d %B %Y %X ", getPlayerStorageValue(cid,task_sys_storages[6]))..". Boa sorte!" , cid) elseif isInArray({"receber","reward","recompensa","report","reportar","entregar","entrega"}, msg) then local v, k = task_sys[task], daily_task[daily] if v then -- original task if getPlayerStorageValue(cid, v.start) > 0 then if getPlayerStorageValue(cid,task_sys_storages[3]) >= v.count then if #v.items > 0 and not doRemoveItemsFromList(cid, v.items) then npcHandler:say("Desculpe, Mas você também precisa entregar os itens desta lista: "..getItemsFromList(v.items), cid) return true end if v.exp > 0 then doPlayerAddExp(cid, v.exp) str = str.."".. (str == "" and "" or ", ") .." "..v.exp.." de exp" end if v.points > 0 then setPlayerStorageValue(cid, task_sys_storages[2], (getTaskPoints(cid)+v.points)) str = str.."".. (str == "" and "" or ", ") .." + "..v.points.."task points" end if v.money > 0 then doPlayerAddMoney(cid, v.money) str = str.."".. (str == "" and "" or ", ") ..""..v.money.." gps" end if table.maxn(v.reward) > 0 then GiveRewardsTask(cid, v.reward) str = str.."".. (str == "" and "" or ", ") ..""..getItemsFromList(v.reward) end npcHandler:say("Obrigado pela sua ajuda Recompensas: "..(str == "" and "nenhuma" or ""..str.."").." por ter completado a task do "..v.name, cid) setPlayerStorageValue(cid, task_sys_storages[3], 0) setPlayerStorageValue(cid, task_sys_storages[1], (task+1)) else npcHandler:say("Desculpe, Mas você ainda não terminou a sua task do "..v.name..". Preciso que mate mais "..(getPlayerStorageValue(cid, task_sys_storages[3]) < 0 and v.count or -(getPlayerStorageValue(cid,task_sys_storages[3])-v.count)).." Destes monstros terriveis!", cid) end end end if k then -- daily task if getPlayerStorageValue(cid, task_sys_storages[7]) > 0 then if getPlayerStorageValue(cid, task_sys_storages[5]) >= k.count then if k.exp > 0 then doPlayerAddExp(cid, k.exp) rst = rst.."".. (rst == "" and "" or ", ") .." "..k.exp.." de exp" end if k.points > 0 then setPlayerStorageValue(cid, task_sys_storages[2], (getTaskPoints(cid)+k.points)) rst = rst.."".. (rst == "" and "" or ", ") .." + "..k.points.."task points" end if k.money > 0 then doPlayerAddMoney(cid, k.money) rst = rst.."".. (rst == "" and "" or ", ") ..""..k.money.." gps" end if table.maxn(k.reward) > 0 then GiveRewardsTask(cid, k.reward) rst = rst.."".. (rst == "" and "" or ", ") ..""..getItemsFromList(k.reward) end npcHandler:say("Obrigado pela sua ajuda! Recompensas: "..(rst == "" and "nenhuma" or ""..rst.."").." por ter completado a task do "..k.name, cid) setPlayerStorageValue(cid, task_sys_storages[4], 0) setPlayerStorageValue(cid, task_sys_storages[5], 0) setPlayerStorageValue(cid, task_sys_storages[7], 0) else npcHandler:say("Desculpe, Mas você ainda não terminou a sua task diaria do "..k.name..". Preciso que mate mais "..(getPlayerStorageValue(cid, task_sys_storages[5]) < 0 and k.count or -(getPlayerStorageValue(cid,task_sys_storages[5])-k.count)).." Destes monstros!", cid) end end end elseif msg == "no" then selfSay("Tudo bem então", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
-
Como diminuir o base speed dos players?
Agora deu certinho mano, muito obrigado!
-
Como diminuir o base speed dos players?
Espera so um pouco que ja testo, acabou dando uns problemas na source aqui e vou precisar trocar ela, quando eu terminar se der certo te dou rep+ Fiz essa alteração mas ainda sim continua da mesma forma. Ele upa sobe a speed e so volta ao normal se relogar.
-
Como diminuir o base speed dos players?
De alguma forma agora o speed ficou travado em 668 não sobe e nem desce mesmo que eu transforme ou reverta ou relogue
-
Como diminuir o base speed dos players?
Consegui resolver o reverter, era o mesmo codigo no final, então so peguei o seu e coloquei nele e resolveu, agora so me resta resolver o problema de upar e ganhar speed kkk
-
Como diminuir o base speed dos players?
Funcionou sim kk, mas ainda estou com 2 problemas. 1 e o reverter que tbm precisa alterar, pois caso eu transforme e volte para a vocação anterior a base speed continua dele transformado. e o segundo e que ainda estou upando e subindo de speed mas volta quando eu relogo. talvez seja alguma alteração na source faça parar de subir ao upar.
-
Como diminuir o base speed dos players?
local config = { --[vocation id] = { level, nova voc, looktype, efeito} -- Goku [1] = { 100, 2, 4, 114}, [2] = { 200, 3, 5, 114}, [4] = { 100, 5, 4, 114}, [5] = { 200, 6, 5, 114}, [6] = { 300, 7, 6, 114}, -- Vegeta [11] = { 100, 12, 13, 116}, [12] = { 200, 13, 14, 114}, [14] = { 100, 15, 16, 114}, [15] = { 200, 16, 17, 114}, [16] = { 300, 17, 18, 114}, -- Dende [21] = { 100, 22, 22, 111}, [22] = { 200, 23, 23, 111}, [24] = { 100, 25, 25, 111}, [25] = { 200, 26, 27, 111}, [26] = { 300, 27, 28, 111}, -- Piccolo [31] = { 100, 32, 32, 111}, [32] = { 200, 33, 33, 111}, [34] = { 100, 35, 33, 111}, [35] = { 200, 36, 34, 111}, [36] = { 300, 37, 35, 111}, -- Yamcha [41] = { 100, 42, 42, 116}, [42] = { 200, 43, 43, 116}, [44] = { 100, 45, 44, 116}, [45] = { 200, 46, 45, 116}, [46] = { 300, 47, 46, 116}, -- Freeza [51] = { 100, 52, 52, 116}, [52] = { 200, 53, 53, 116}, [54] = { 100, 55, 53, 116}, [55] = { 200, 56, 54, 116}, [56] = { 300, 57, 55, 116}, -- Bardock [61] = { 100, 62, 63, 116}, [62] = { 200, 63, 64, 116}, [64] = { 100, 65, 64, 116}, [65] = { 200, 66, 65, 114}, [66] = { 300, 67, 66, 114} } function onSay(cid, words, param, channel) local voc = config[getPlayerVocation(cid)] if voc then if getPlayerLevel(cid) >= voc[1] then doPlayerSetVocation(cid, voc[2]) doCreatureSay(cid, "Aaah !!!!", 19) local outfit = {lookType = voc[3]} doCreatureChangeOutfit(cid, outfit) doSendMagicEffect(getCreaturePosition(cid), voc[4]) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Voce precisa estar no level " .. voc[1] .. " para transformar.") end else doPlayerSendCancel(cid, "Nao é possível se transformar.") end return true end transformar o seu script adcionei em creaturescripts chamado de Speed.lua, depois em creaturescripts.xml e depois no login.lua vocation = { [1] = {speed = 200}, -- ## [] = vocation ## -- [2] = {speed = 250}, [3] = {speed = 300}, [4] = {speed = 300}, [5] = {speed = 400}, [6] = {speed = 500}, [7] = {speed = 600} } function onLogin(cid) if vocation[getPlayerVocation(cid)] then doChangeSpeed(cid, -getCreatureSpeed(cid)) doChangeSpeed(cid, vocation[getPlayerVocation(cid)].speed) end return true end Só alterei esse
-
Como diminuir o base speed dos players?
Dragon Ball
-
Como diminuir o base speed dos players?
Então amigo, esse script funciona mas tive 2 problemas. o primeiro e que quando eu mudo a vocation in game o valor da speed continua o mesmo, e só altera quando eu relogar. E o segundo e que caso eu upo de nivel o char continua aumentando o speed dele e só volta ao normal quando eu relogo novamente
-
Como diminuir o base speed dos players?
Olá novamente, estou com uma dúvida e queria saber se podem me ajudar. Meu servidor tem um base speed de 220 normal. Eu estava querendo colocar o speed base por cada vocation. Ou seja nesse caso eu precisaria tirar o ganho de base speed por level e ficar travado o speed naquela vocation independente do level. Ja procurei em quase todos os arquivos da source onde eu poderia fazer isso. Ele atualmente ganha 2 de base speed por level e o limite é 1500. Então no level 750 o player ja esta na velocidade maxima. Mas eu queria que ele ficasse na velocidade maxima apenas quando estivesse na ultima vocation independente do level. Ja alterei a baseSpeed e a MAX_SPEED e quase todos os arquivos com a palavra base speed mas nenhum resultou em nada, sempre da mesma forma. O mais proximo que consegui foi editando o iologindata.cpp ele não ganhava mais base speed quando upava mas apenas não estava mostrando pois quando eu relogava a base speed aumentava novamente. Espero que tenham entendido. Obrigado a todos que tentarem me ajudar.
-
(Temple position is wrong. contact the administrator) Após entender a tela do ot client
Então amigo, é como eu informei, ja tentei arrumar a posição diversas vezes tanto no site, tanto na sample, tanto no config mas sempre acontece isso, se eu ligar o server sem as alterações do client pega normal.
-
Site hospedado na vps não funciona fora dela.
Era isso mesmo mano, obrigado, falta de atenção minha tinha aberto todas menos a porta 80. Obrigado
-
Site hospedado na vps não funciona fora dela.
Olá, gostaria de uma ajuda em um problema que estou enfrentando. Eu fiz as edições do meu servidor e tudo ok. Ontem adquiri uma vps barata, só para testar mesmo. Eu acessei ela, instalei todos os recursos para rodar meu server. Ele até fica online e eu consigo entrar no game pelo meu pc. Na vps o Site funciona normalmente com o ip. Mas no meu pc não está conectando de forma alguma, só mostra "Não é possível acessar esse site" tanto usando o ip direto quanto o subdominio. Alguém sabe oque pode estar acontecendo? Meu site é gesior 2012.
-
Baú de donate
Tem como alterar esse script para entregar os pontos direto para a mão do player mesmo que ele esteja offline? Talvez assim resolva
-
Baú de donate
Entendo, refiz todo o processo parte por parte mas ainda não consegui, sempre que vou no baú retirar os points fala que eu não tenho points
-
Baú de donate
Mas em que parte eu coloco o id das moedas?
-
Baú de donate
Fiz as adições, mas tive um problema, mostra que o player recebeu os points mas quando tento retirar no bau ou falar getpoints fala que ele está zerado. E no meu caso os points não seriam dessa forma. Eles são uma moeda no jogo que pode ser comercializada. E o player só pegaria essas moedas quando fosse no bau entende?
-
Baú de donate
Olá, gostaria de um sistema de baú donate, onde a pessoa faz o donate, e eu como adm entro no game e coloco os pontos(itens) nesse baú, e somente essa pessoa que eu determinei que vai poder retirar esses itens. Esse baú vai funcionar para todos os player mas somente os que eu determinar os itens que poderão retirar. Desde já agradeço Meu tfs é 0.4 Ate disponibilizaria algum código para facilitar mas não faço a menor ideia qual codigo se aproxima mais disso Ja vi esse sistema funcionando no Wodbo Wars
-
Spell em área que puxa agro dos monstros.
Muito obrigado, não conheço as magias do tibia padrão kkk sempre acho que essas magias são tudo a mesma coisa
-
Spell em área que puxa agro dos monstros.
Olá, gostaria de uma speel em área que puxasse o agro dos bixos para que eles parassem de focar outra pessoa e focassem quem agrou eles. A spell pode ser um quadrado de 4 sqm de distancia para todos os lados. Desde já agradeço
-
Fazer o Buff trocar de vocation por 30 min depois voltar ao normal.
Consegui resolver quase os problemas de ficar infinitamente na vocação. Ainda esta com o problema da outfit mas se eu resolver posto aqui tbm. local tempo = 1 * 60 local storage_time = 102053 local storage_voc = 102054 local msg = "Voce precisa aguardar %d segundos." local effect = {80} local effect1 = {80} local outfit = {lookType = 9} local points = 20 local health = 0.05 local new_voc = 11 -- id da voc local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo * 1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, points) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, points) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, points) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, points) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, points) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, points) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, points) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) function doHealthSecond(cid, amount, delay) -- function by vodka if not isCreature(cid) then return LUA_ERROR end doCreatureAddHealth(cid, amount) if delay ~= 1 then addEvent(doHealthSecond, 1000, cid, amount, delay-1) end end local function doMagica(cid, times) if times > 0 and isCreature(cid) then for i=1, #effect do local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} local position1 = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doSendMagicEffect(position, effect[i]) doSendMagicEffect(position1, effect1[i]) end addEvent(doMagica, 1000, cid, times-1) end end local function doOutfitzinha(cid, times) if times > 0 and isCreature(cid) then doRemoveCondition(cid, CONDITION_OUTFIT) addEvent(doOutfitzinha, 1000, cid, times-1) end end local function deTransform(cid) if isCreature(cid) then doPlayerSetVocation(cid, getPlayerStorageValue(cid, storage_voc)) end end function onCastSpell(cid, var) if tempo-(os.time()-getPlayerStorageValue(cid, storage_time)) > 0 then doPlayerSendCancel(cid, string.format(msg, tempo-(os.time()-getPlayerStorageValue(cid, storage_time)))) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end setPlayerStorageValue(cid, storage_time, os.time()) setPlayerStorageValue(cid, storage_voc, getPlayerVocation(cid)) registerCreatureEvent(cid, "stordeath") registerCreatureEvent(cid, "stordeath_off") addEvent(deTransform, tempo * 1000, cid) doPlayerSetVocation(cid, new_voc) doMagica(cid, tempo) doOutfitzinha(cid, tempo) local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doCreatureSay(cid, "KAIOKEEEEEEEN", TALKTYPE_MONSTER) doSendMagicEffect(position, 80) doHealthSecond(cid, -getCreatureMaxHealth(cid) * health, tempo) doSetCreatureOutfit(cid, outfit) return doCombat(cid, combat, var) end Estou utilizando aquele codigo la de cima passado anteriormente. E em creaturescripts/scripts/niwdeath.lua eu alterei para caso a vocação 11 morra ela retorne para a vocação 1. e em vocations.xml alterei a fromvoc da voc 11 para voc 1 caso relogue tbm volte para a vocação 1. Agora so falta eu resolver o bug da outfit que quando eu uso ele se transforma mas logo em seguida a outfit volta para a antiga. local tempo = 1 * 60 local storage_time = 102053 local storage_voc = 102054 local msg = "Voce precisa aguardar %d segundos." local effect = {87} local effect1 = {87} local outfit = {lookType = 9} local points = 20 local mana = 0.01 local new_voc = 11 -- id da voc local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0) local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, tempo * 1000) setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, points) setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, points) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, points) setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, points) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, points) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, points) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, points) setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE) setCombatCondition(combat, condition) function doManaSecond(cid, amount, delay) -- function by vodka if not isCreature(cid) then return LUA_ERROR end doCreatureAddMana(cid, amount) if delay ~= 1 then addEvent(doManaSecond, 1000, cid, amount, delay-1) end end local function doMagica(cid, times) if times > 0 and isCreature(cid) then for i=1, #effect do local position = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} local position1 = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doSendMagicEffect(position, effect[i]) doSendMagicEffect(position1, effect1[i]) end addEvent(doMagica, 1000, cid, times-1) end end local function Outfitzinha(cid) doRemoveCondition(cid, CONDITION_OUTFIT) end local function deTransform(cid) if isCreature(cid) then doPlayerSetVocation(cid, getPlayerStorageValue(cid, storage_voc)) end end function onCastSpell(cid, var) if tempo-(os.time()-getPlayerStorageValue(cid, storage_time)) > 0 then doPlayerSendCancel(cid, string.format(msg, tempo-(os.time()-getPlayerStorageValue(cid, storage_time)))) doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end setPlayerStorageValue(cid, storage_time, os.time()) setPlayerStorageValue(cid, storage_voc, getPlayerVocation(cid)) registerCreatureEvent(cid, "stordeath") registerCreatureEvent(cid, "stordeath_off") addEvent(deTransform, tempo * 1000, cid) doPlayerSetVocation(cid, new_voc) doMagica(cid, tempo) addEvent(Outfitzinha, tempo*1000, cid) local position = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doCreatureSay(cid, "KAIOKEEEEEEEN", TALKTYPE_MONSTER) doSendMagicEffect(position, 121) doManaSecond(cid, -getCreatureMaxMana(cid) * mana, tempo) doSetCreatureOutfit(cid, outfit) return doCombat(cid, combat, var) end BOM ESSE E O CODIGO, DEPOIS DE VARIOS TESTES COM OS CODIGOS DISPONIBILIZADOS AI PARA CIMA FINALMENTE CONSEGUI ARRUMAR OS PROBLEMAS E FA TUDO OK, LEMBRANDO QUE CASO ESTEJAM QUERENDO USAR ESSE CODIGO, PRECISAM FAZER AS ALTERAÇOES QUE INFORMEI AI EM CIMA. OBRIGADO A TODOS QUE ME AJUDARAM
-
Fazer o Buff trocar de vocation por 30 min depois voltar ao normal.
KKK foi mal cara, acho que ja estou enchendo seu saco kkk. Tipo to com 2 problemas, ele troca de vocation certinho agora e retorna, o problema e que ele retorna para a vocation 9 e não a vocation 1 e eu removi a vocation 9 dai ele fala que eu não tenho vocação. tanto se eu morrer e tanto se eu esperar acabar o tempo. e quando eu me transformo aparece uma sprite aleatoria por 1 segundo e depois vai para a sprite correta, so que essa sprite não sai mais do personagem mesmo se ele voltar para a vocação anterior