Postado Outubro 22, 2022 2 anos .Qual servidor ou website você utiliza como base? 8.60 Estava fazendo uma "quest final" em meu servidor, e o intuito dessa quest final é entregar um item editado aleatoriamente para o player que terminar (pode pegar de 1 em 1 semana) Estava até pensando em utilizar o sistema que o @Imperius fez, neste tópico: Só que não precisaria ser tão complexo não, ali ele fez um tanto de coisa específica, queria mesmo tipo, clicou no baú, ganhou 1 dessas 3 armas: NGO Kunai (id: 12624) NGO Shield (id: 12625) NGO Sword (id: 12626) só que editadas, por exemplo: Se vier a NGO Kunai, pode vir com attack de +600 até +1200 e Distance de +10 até +50 Se vier o NGO Shield, pode vir com def de +100 até +600 e Protection all de +1 até +15 Se vier a NGO Sword, pode vir com attack de +600 até +1200 e Sword Fighting de +10 até +50 Alguém poderia me ajudar?
Postado Outubro 22, 2022 2 anos 3 horas atrás, katumblo disse: .Qual servidor ou website você utiliza como base? 8.60 Estava fazendo uma "quest final" em meu servidor, e o intuito dessa quest final é entregar um item editado aleatoriamente para o player que terminar (pode pegar de 1 em 1 semana) Estava até pensando em utilizar o sistema que o @Imperius fez, neste tópico: Só que não precisaria ser tão complexo não, ali ele fez um tanto de coisa específica, queria mesmo tipo, clicou no baú, ganhou 1 dessas 3 armas: NGO Kunai (id: 12624) NGO Shield (id: 12625) NGO Sword (id: 12626) só que editadas, por exemplo: Se vier a NGO Kunai, pode vir com attack de +600 até +1200 e Distance de +10 até +50 Se vier o NGO Shield, pode vir com def de +100 até +600 e Protection all de +1 até +15 Se vier a NGO Sword, pode vir com attack de +600 até +1200 e Sword Fighting de +10 até +50 Alguém poderia me ajudar? Tipo isso? Spoiler videoDemo2.mp4 em data > actions > actions.xml: <!-- Baú Recompensa --> <action uniqueid="6600" script="bauRecompensa.lua" /> actions > scripts> bauRecompensa.lua: function onUse(cid, item, fromPosition, itemEx, toPosition) local storage = 555000 local cooldown = 7 -- tempo em (dias). local recompensasID = {12624, 12625, 12626} local randomRecompensa = recompensasID[math.random(1, #recompensasID)] -- function de tempo by FeeTads. local function getTimeString(self) local format = { {'dia', self / 60 / 60 / 24}, {'hora', self / 60 / 60 % 24}, {'minuto', self / 60 % 60}, {'segundo', self % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' e ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('segundo') then local a, b = ret:find(' e ') ret = ret:sub(b+1) end return ret end if getPlayerStorageValue(cid, storage) - os.time() >= 1 then doPlayerSendCancel(cid, "Voce precisa aguardar "..getTimeString((getPlayerStorageValue(cid, storage)-os.time())).." para usar o bau.") return true end local item = doPlayerAddItem(cid, randomRecompensa, 1) doSendMagicEffect(getThingPos(cid), 30) if randomRecompensa == 12624 then -- NGO Kunai -- local attack = math.random(600, 1200) doItemSetAttribute(item, "attack", attack) doPlayerSendTextMessage(cid, 22, "Congratulations! You received a "..getItemNameById(randomRecompensa).. " with attack "..attack.."") elseif randomRecompensa == 12625 then -- NGO Shield -- local defense = math.random(100, 600) doItemSetAttribute(item, "defense", defense) doPlayerSendTextMessage(cid, 22, "Congratulations! You received a "..getItemNameById(randomRecompensa).. " with defense "..defense.."") elseif randomRecompensa == 12626 then -- NGO Sword -- local attack = math.random(600, 1200) doItemSetAttribute(item, "attack", attack) doPlayerSendTextMessage(cid, 22, "Congratulations! You received a "..getItemNameById(randomRecompensa).. " with attack "..attack.."") end setPlayerStorageValue(cid, storage, os.time() + (cooldown)*86400) -- Seta o Cooldown em (dias). return true end Só consegui fazer para setar alguns atributos, pelo que vi (não tenho certeza) os demais atributos não vem configurados, então você terá que mexer na source se quiser adiciona-los dessa forma.
Postado Outubro 22, 2022 2 anos Autor 1 hora atrás, Imperius disse: Tipo isso? Ocultar conteúdo videoDemo2.mp4 9 MB · 0 downloads em data > actions > actions.xml: <!-- Baú Recompensa --> <action uniqueid="6600" script="bauRecompensa.lua" /> actions > scripts> bauRecompensa.lua: function onUse(cid, item, fromPosition, itemEx, toPosition) local storage = 555000 local cooldown = 7 -- tempo em (dias). local recompensasID = {12624, 12625, 12626} local randomRecompensa = recompensasID[math.random(1, #recompensasID)] -- function de tempo by FeeTads. local function getTimeString(self) local format = { {'dia', self / 60 / 60 / 24}, {'hora', self / 60 / 60 % 24}, {'minuto', self / 60 % 60}, {'segundo', self % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' e ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('segundo') then local a, b = ret:find(' e ') ret = ret:sub(b+1) end return ret end if getPlayerStorageValue(cid, storage) - os.time() >= 1 then doPlayerSendCancel(cid, "Voce precisa aguardar "..getTimeString((getPlayerStorageValue(cid, storage)-os.time())).." para usar o bau.") return true end local item = doPlayerAddItem(cid, randomRecompensa, 1) doSendMagicEffect(getThingPos(cid), 30) if randomRecompensa == 12624 then -- NGO Kunai -- local attack = math.random(600, 1200) doItemSetAttribute(item, "attack", attack) doPlayerSendTextMessage(cid, 22, "Congratulations! You received a "..getItemNameById(randomRecompensa).. " with attack "..attack.."") elseif randomRecompensa == 12625 then -- NGO Shield -- local defense = math.random(100, 600) doItemSetAttribute(item, "defense", defense) doPlayerSendTextMessage(cid, 22, "Congratulations! You received a "..getItemNameById(randomRecompensa).. " with defense "..defense.."") elseif randomRecompensa == 12626 then -- NGO Sword -- local attack = math.random(600, 1200) doItemSetAttribute(item, "attack", attack) doPlayerSendTextMessage(cid, 22, "Congratulations! You received a "..getItemNameById(randomRecompensa).. " with attack "..attack.."") end setPlayerStorageValue(cid, storage, os.time() + (cooldown)*86400) -- Seta o Cooldown em (dias). return true end Só consegui fazer para setar alguns atributos, pelo que vi (não tenho certeza) os demais atributos não vem configurados, então você terá que mexer na source se quiser adiciona-los dessa forma. PERFEITO !!!!! Mas eu realmente gostaria muuuuuuuuuuito de adicionar os outros atributos, sabe se teria como fazer isso com alguma outra função ou algo do tipo? nem que seja alguma coisa diferente, tipo, adicionar mais HP ou MANA, pq tipo, como é um item de "end game" gostaira mt que ele tivesse mais atributos que o normal @Imperius Eu pensei numa maneira pra "burlar" essa função, sabe me dizer se funciona? A maneira que pensei é o seguinte, se o item tiver entre 600 a 800 de atk, ele da +3 de dist (ou sword, dependendo o item) se tiver entre 800 a 1000 ele da +5 de dist (ou sword) se tiver entre 1000 a 1200 ele da +10 de dist (ou sword) Aí com isso, daria pra fazer algum script de "Equip/DeEquip" no movements.xml?
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.