Postado Março 28, 2020 5 anos 4 minutos atrás, subhe disse: @Joaovettor então, eu queria que a cada 2 minutos parado em cima do tile treinando.. ele ganhasse 1 minuto de stamina completando os 2 minutos ele ja ganhasse 1 minuto de stamina Não foi testado ainda. Spoiler -- Script by LekoDS // Editado por ~Mathias Kenfi local configuration = { storage = 263696, loltime = 2 * 1000, stamina = 60, interval = 60, -- intervalo de tempo de cura } function addStaminaInPos(cid, stamina, pos, time) if isInArea(getCreaturePos(cid), pos.x, pos.y) then if getPlayerStorageValue(cid, configuration.storage) <= 1 then setPlayerStorageValue(cid,configuration.storage,1) doPlayerSendTextMessage(cid, 22, "Você recuperou um pouco de stamina") end doPlayerAddStamina(cid, stamina) event = addEvent(valid(addStaminaInPos), time*1000, cid, stamina, pos) else setPlayerStorageValue(cid,configuration.storage,0) event = false end return event end function onStepIn(cid, item, position, fromPosition) if not(isPlayer(cid)) then return false end addStaminaInPos(cid, configuration.stamina, position, configuration.interval) end function onStepOut(cid, item, position, fromPosition) return doPlayerSendTextMessage(cid, 22, "Você não está mais regenerando stamina.") end
Postado Março 28, 2020 5 anos Autor @Joaovettor vou testar aqui, jaja edito @Joaovettor da esse erro ao pisar no tile [1:46:16.413] [Error - MoveEvents Interface] [1:46:16.416] data/movements/scripts/treinertile.lua:onStepIn [1:46:16.417] Description: [1:46:16.418] data/lib/032-position.lua:2: attempt to index local 'fromPosition' (a number value) [1:46:16.418] stack traceback: [1:46:16.418] data/lib/032-position.lua:2: in function 'isInArea' [1:46:16.419] data/movements/scripts/treinertile.lua:11: in function 'addStaminaInPos' [1:46:16.420] data/movements/scripts/treinertile.lua:29: in function <data/movements/scripts/treinertile.lua:25>
Postado Março 28, 2020 5 anos Solução eventsId = {} local function rechargeStamina(cid) if not isPlayer(cid) then eventsId[cid] = nil return end doPlayerAddStamina(cid, 1) eventsId[cid] = addEvent(rechargeStamina, 3 * 60 * 1000, cid) end function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) if isPlayer(cid) then eventsId[cid] = addEvent(rechargeStamina, 3 * 60 * 1000, cid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Bem vindo aos trainers VIP's " .. getCreatureName(cid) .."! Você receberá 1 minuto de stamina a cada 3 minutos nos trainers VIP's.") end return true end function onStepOut(cid, item, position, lastPosition, fromPosition, toPosition, actor) if isPlayer(cid) then stopEvent(eventsId[cid]) eventsId[cid] = nil end return true end Onde tem 1 = ganho de stamina. Onde tem 3 = o tempo para ganhar 1 minuto. Somente modificar, testado em otx 8.60. Editado Março 28, 2020 5 anos por ikaroangelo21 (veja o histórico de edições)
Postado Março 28, 2020 5 anos Autor @ikaroangelo21 Tinha dado um erro, mas só foi mudar uma linha, que funcionou, obrigado aos dois REP+ aos dois que me ajudaram
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.