Postado Janeiro 16, 2019 6 anos @Tomarasdaf kk tenta trocar esse 10000 que coloquei e coloca so uns 500 pra ver, não conheço mto a função sacas? local add = 10000 -- 10 segundos tenta colocar por exemplo local add = 500 -- ou tenta colocar local add = 50 -- e vai testando [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Janeiro 16, 2019 6 anos 8 horas atrás, Vodkart disse: sera que fazendo pelo onThink nao é melhor? exemplo no creaturescript: staminareco.lua local storage = 323274 local store,exausted = 156892,30 function onLogin(cid) registerCreatureEvent(cid, "StaminaThink") setPlayerStorageValue(cid, store,0) setPlayerStorageValue(cid, storage, 0) return true end function onThink(cid, interval) if not isPlayer(cid) or not isCreature(cid) then return true end if getTilePzInfo(getCreaturePosition(cid)) and getPlayerStorageValue(cid, storage) <= 0 then setPlayerStorageValue(cid, storage, 1) if getPlayerStorageValue(cid, store) - os.time() <= 0 then doPlayerSendTextMessage(cid, 20, "{Stamina Recovery} Sua stamina começou a se recuperar, o fator de recuperação é de 30 segundos de stamina a cada 5 segundos dentro da zona de proteção em relação as condições normais.") setPlayerStorageValue(cid, store, os.time()+exausted) end elseif not getTilePzInfo(getCreaturePosition(cid)) and getPlayerStorageValue(cid, storage) > 0 then setPlayerStorageValue(cid, storage, 0) end return true end TAG <event type="login" name="StaminareLogin" event="script" value="staminareco.lua"/> <event type="think" name="StaminaThink" event="script" value="staminareco.lua"/> e no globalevents: staminareco.lua function onThink(pid, interval, lastExecution, thinkInterval) local refuel = 42 * 60 * 1000 -- full local add = 30000 -- 30 segundos for _, pid in ipairs(getPlayersOnline()) do if getTilePzInfo(getCreaturePosition(pid)) and getPlayerStamina(pid) < refuel then doPlayerSetStamina(pid, getPlayerStamina(pid) + add) end end return true end TAG <globalevent name="StaminaRegen" interval="5" script="staminareco.lua"/> obs: se o seu servidor for em milesegundos trocar o "5" por "5000" @Vodkart Daria muito trabalho para fazer esse script funcionar em um tile com uma storage especifica ou uma área determinada? porque só de entrar em um local com protectzone já aparece a mensagem que esta healando a stamina Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas. discord.gg/phJZeHa2k4 Projeto ATS (Naruto) Informações Abaixo Facebook Youtube Discord Tutoriais / Conteúdos Clique Aqui
Postado Janeiro 16, 2019 6 anos Autor @Vodkart olha como que ta subindo os scripts estao assim Citar function onThink(pid, interval, lastExecution, thinkInterval) local refuel = 42 * 60 * 1000 -- full local add = 30 -- 10 segundos for _, pid in ipairs(getPlayersOnline()) do if getTilePzInfo(getCreaturePosition(pid)) and getPlayerStamina(pid) < refuel then doPlayerSetStamina(pid, getPlayerStamina(pid) + add) end end return true end Citar local storage = 323274 local store,exausted = 156892,30 function onLogin(cid) registerCreatureEvent(cid, "StaminaThink") setPlayerStorageValue(cid, store,0) setPlayerStorageValue(cid, storage, 0) return true end function onThink(cid, interval) if not isPlayer(cid) or not isCreature(cid) then return true end if getTilePzInfo(getCreaturePosition(cid)) and getPlayerStorageValue(cid, storage) <= 0 then setPlayerStorageValue(cid, storage, 1) if getPlayerStorageValue(cid, store) - os.time() <= 0 then doPlayerSendTextMessage(cid, 20, "{Stamina Recovery} Sua stamina comecou a se recuperar, o fator de recuperacao eh de 10.5s em relacao as condicoes normais.") setPlayerStorageValue(cid, store, os.time()+exausted) end elseif not getTilePzInfo(getCreaturePosition(cid)) and getPlayerStorageValue(cid, storage) > 0 then setPlayerStorageValue(cid, storage, 0) end return true end Citar <globalevent name="StaminaRegen" interval="5" script="Staminareco.lua"/> 20190116_183814.mp4
Postado Janeiro 16, 2019 6 anos 1 hora atrás, Tomarasdaf disse: @Vodkart olha como que ta subindo os scripts estao assim 20190116_183814.mp4 Troque: <globalevent name="StaminaRegen" interval="5" script="Staminareco.lua"/> Por: <globalevent name="StaminaRegen" interval="5000" script="Staminareco.lua"/> ╔══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ══════════════════════════╗ Te Ajudei? Rep + e ficamos Quits Precisando de ajuda? Discord: Yan Liima #3702 Programador Júnior de LUA, PHP e JavaScript Juntos somos lendas, separados somos Mitos! ╚══════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ═════════════════════════════╝
Postado Janeiro 16, 2019 6 anos Em 15/01/2019 em 17:42, Yan Liima disse: Utilizei o script que eu ja tinha feito, apenas editei. Bom não entendi aquele 0.5, mas vamos la... em movements/scripts/ crie um arquivo.lua e cole isso dentro: local config = { addStamina = 1, -- quantos de stamina irá adicionar delay = 1, -- tempo para adicionar a stamina em minutos msg = 0.5, -- Só pra exibição de valor mesmo... } stamina = {} local function staminadd(cid) if not isPlayer(cid) then stamina[cid] = nil return true end doPlayerSetStamina(cid, getPlayerStamina(cid) + config.addStamina) stamina[cid] = addEvent(staminadd, config.delay*60*1000, cid) end function onStepIn(cid) if isPlayer(cid) then if getTileInfo(getThingPos(cid)).protection then if getPlayerStorageValue(cid, sta) < os.time() then doPlayerSendTextMessage(cid, 20, "{Stamina Recovery} Sua stamina começou a se recuperar, o fator de recuperação é de "..config.msg.." em relação as condições normais.") setPlayerStorageValue(cid, sta, os.time() + 300) end stamina[cid] = addEvent(staminadd, config.delay*60*1000, cid) end end return true end function onStepOut(cid) if isPlayer(cid) then stopEvent(stamina[cid]) stamina[cid] = nil end return true end No seu movements.xml coloque isso: <movevent type="StepIn" itemid="7351" event="script" value="arquivo.lua"/> <movevent type="StepOut" itemid="7351" event="script" value="arquivo.lua"/> Troque: 7351 pelo ID do seu tile(piso). Caso em outras zonas protegida o piso seja diferente só por assim, Ex: 7351-7352... O delay da mensagem está setado para 5 minutos. Aki funcionou perfeitamente. O unico problema é q tem que por os ids do chao, mas e dboa. O bom q é muito facil de instalar
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.