Postado Março 30, 2020 5 anos Bom dia comunidade do TK, ontem eu estava tentando adequar um script que a função dele é quando o player passar por um tile (SteIn) ele mudaria a outfit do player enquanto ele estivesse neste local que tem as action id, porém o StepOut não quer funcionar, e não aponta nenhum erro na distro dificultando a solução do problema. OBS: As outras funções como por exemplo a da stamina esta funcionando corretamente tanto no SteIn como no StepOut. Vou deixar o Script aqui para aqueles que tem um conhecimento maior sobre o assunto me ajudar. (se possível) Spoiler local maxstamina = 252000 -- quantidade máxima de Stamina (Nao sei se é este valor mesmo) local addStamina = 20 -- quantidade de Stamina é adicionada local tempo = 3 -- em segundos para cada regeneraçao local config = { [674] = 89, -- [Vocation] = 71 = Roupa [2] = 84 -- Naruto } ----------- FIM DAS CONFIGURAÇOES ----------- stamina = {} local function staminadd(cid) if not isPlayer(cid) then stamina[cid] = nil return true end local getsta = getPlayerStamina(cid) if getsta < maxstamina and isPlayer(cid) then doPlayerSendCancel(cid, "Sua stamina está subindo.") doPlayerSetStamina(cid, getPlayerStamina(cid) + addStamina) stamina[cid] = addEvent(staminadd, tempo*1000, cid) else doTeleportThing(cid, fromPosition) doPlayerSendCancel(cid, "Sua stamina já está cheia.") end return true end function onStepIn(cid, item, position, lastPosition, fromPosition) if isPlayer(cid) then stamina[cid] = addEvent(staminadd, tempo*1000, cid) end if (config[getPlayerVocation(cid)]) then doCreatureChangeOutfit(cid, {lookType = config[getPlayerVocation(cid)]}) doSendMagicEffect(getThingPos(cid), 2) doSendAnimatedText(getPlayerPosition(cid),"Que Frio!", math.random(01,255)) end return true end function onStepOut(cid, item, position, lastPosition, fromPosition) if isPlayer(cid) then doSetCreatureOutfit(cid, {lookType = config[getPlayerVocation(cid)]},getCreatureOutfit(cid)) stopEvent(stamina[cid]) stamina[cid] = nil end return true end Movements: Spoiler <movevent type="StepIn" actionid="33125" event="script" value="fontes.lua"/> <movevent type="StepOut" actionid="33125" event="script" value="fontes.lua"/> Para aqueles que me derem uma atenção agradeço de coração por estarem utilizando seu tempo livre para ajudar não só a mim como todos da comunidade. ALTERAÇÕES A SEREM FEITAS: StepOut: Quando o player sair do tile que tem a action, ele voltar para a outfit que ele estava anteriormente conforme a vocation que ele tem. Como eu disse anteriormente, não esta apontando nenhum erro na distro e esta dificultando a solução do problema para mim, já tentei algumas formas de ajustar mas não tive sucesso. Utilizei: doCreatureChangeOutfit na parte do StepOut mas o "erro" não reconhecido pela distro ainda persiste. TFS: 0.3.6 Então é isso, estou precisando de uma ajuda nesta parte que só falta ela para eu terminar meu sistema que estou criando, espero que uma pessoa de um conhecimento maior possa me ajudar nisto ? REP+ Editado Abril 1, 2020 5 anos por Spooky Ghost esqueci de um detalhe (veja o histórico de edições)
Postado Abril 1, 2020 5 anos Solução Para os próximos pedidos, tente deixar o título do seu tópico representativo do pedido. Se entendi bem o que você quis dizer... Spoiler local t = { interval = 3, -- intervalo de tempo em segundos que será adicionada a stamina added_stamina = 2, -- minutos de stamina adicionados a cada "interval" outfits = { [674] = 89, -- [vocação] = lookType [2] = 84, } } local event = {} local function addStamina(cid, position) if not isPlayer(cid) then event[cid] = nil return true end local playerStamina, playerPos = getPlayerStamina(cid), getPlayerPosition(cid) if playerStamina >= 2520 then event[cid] = nil doPlayerSendCancel(cid, "Sua stamina já está cheia!") return true end if (playerPos.x ~= position.x) or (playerPos.y ~= position.y) then event[cid] = nil return true end doPlayerSendCancel(cid, "Sua stamina está subindo...") doPlayerSetStamina(cid, playerStamina + t.added_stamina) event[cid] = addEvent(addStamina, t.interval * 1000, cid, position) end function onStepIn(cid, item, position, lastPosition, fromPosition) if not isPlayer(cid) then return true end if event[cid] then stopEvent(event[cid]) end event[cid] = addEvent(addStamina, t.interval * 1000, cid, position) local voc = t.outfits[getPlayerVocation(cid)] if voc then local out, p = getCreatureOutfit(cid), getPlayerPosition(cid) out.lookType = voc doSetCreatureOutfit(cid, out, -1) doSendMagicEffect(p, 2) doSendAnimatedText(p, "Que frio!", math.random(1,255)) end return true end function onStepOut(cid, item, position, lastPosition, fromPosition) if not isPlayer(cid) then return true end doRemoveCondition(cid, CONDITION_OUTFIT) return true end No movements.xml adicione as tags para o StepIn e para o StepOut referentes ao actionid do piso. Contato: Email: [email protected] Discord: Dwarfer#2715
Postado Abril 1, 2020 5 anos Autor @Dwarfer Muito obrigado, funcionou corretamente! obrigado também, vou deixar meus tópicos mais específicos ?
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.