Postado Maio 23, 2023 1 ano Autor 2 horas atrás, Mask Ghoul disse: local potions = { [6542] = {needLevel = 1500, rate = 1.2, duration = 1800}, [6543] = {needLevel = 2000, rate = 1.4, duration = 1800}, [6544] = {needLevel = 2500, rate = 1.6, duration = 1800}, [6545] = {needLevel = 3000, rate = 1.8, duration = 1800}, [2328] = {needLevel = 4500, rate = 2.4, duration = 1800}, } if not expPotions then expPotions = {playerData = {}} end function getTimeString(duration) local seconds = duration % 60 local minutes = math.floor((duration / 60) % 60) local hours = math.floor((duration / 3600) % 24) local days = math.floor(duration / 86400) local timeString = "" if days > 0 then timeString = timeString .. days .. " dia(s) " end if hours > 0 then timeString = timeString .. hours .. " hora(s) " end if minutes > 0 then timeString = timeString .. minutes .. " minuto(s) " end timeString = timeString .. seconds .. " segundo(s)" return timeString end function expPotions:onUse(cid, item, fromPosition, itemEx, toPosition) local itemId = item.itemid local potion = potions[itemId] if not potion then return false end if getPlayerLevel(cid) < potion.needLevel then doPlayerSendCancel(cid, ('Você precisa ser level %d+ para usar este Egg.'):format(potion.needLevel)) return true end local guid = getPlayerGUID(cid) self.playerData[guid] = self.playerData[guid] or {} local expData = self.playerData[guid][itemId] if not expData then self.playerData[guid][itemId] = {rate = 0, duration = 0} expData = self.playerData[guid][itemId] end local now = os.time() if expData.duration > now then doCreatureSay(cid, 'Aguarde o bônus atual acabar para usar novamente.', TALKTYPE_ORANGE_1, false, cid) return true end expData.rate = expData.rate + potion.rate expData.duration = potion.duration + now doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_GREEN) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, ('Agora você tem +%d%% de experiência por %s.'):format( potion.rate * 100, getTimeString(potion.duration) )) doRemoveItem(item.uid, 1) return true end function expPotions:onLogin(cid) local guid = getPlayerGUID(cid) self.playerData[guid] = self.playerData[guid] or {} for itemId in pairs(potions) do self.playerData[guid][itemId] = self.playerData[guid][itemId] or {rate = 0, duration = 0} end return true end function expPotions:getCombo(cid) local playerData = self.playerData[getPlayerGUID(cid)] local potionsCombo = 1 if playerData then for itemId, expData in pairs(playerData) do potionsCombo = potionsCombo + expData.rate end end return potionsCombo end function expPotions:onSay(cid, words, param) local str = 'Experience Eggs Combos:\n' local playerData = self.playerData[getPlayerGUID(cid)] if playerData then for itemId, expData in pairs(playerData) do str = str .. ('\n%s - %d%%'):format(getItemInfo(itemId).name, expData.rate * 100) end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str) return true end Muuuitooo obrigado guerreiro, o error citado desapareceu, porem a exp nao esta sendo adiconada, nao adiciona o bonus de EXP. Teria como ajudar nisso ? Editado Maio 23, 2023 1 ano por Doidodepeda (veja o histórico de edições)
Postado Maio 24, 2023 1 ano 8 horas atrás, Doidodepeda disse: Muuuitooo obrigado guerreiro, o error citado desapareceu, porem a exp nao esta sendo adiconada, nao adiciona o bonus de EXP. Teria como ajudar nisso ? agora vc precisa add o action dos pot ;
Postado Maio 24, 2023 1 ano Autor 7 horas atrás, dgx disse: agora vc precisa add o action dos pot ; Ja esta meu amigo, o sistema ja esta todo instalado, porem nao esta funcionando o ganho de EXP, como citei acima ! Eu uso a potion normalmente mas nao ganha o bonus de EXP. Aguardando pra ve se alguem ajuda !
Postado Maio 24, 2023 1 ano Solução 8 horas atrás, Doidodepeda disse: Ja esta meu amigo, o sistema ja esta todo instalado, porem nao esta funcionando o ganho de EXP, como citei acima ! Eu uso a potion normalmente mas nao ganha o bonus de EXP. Aguardando pra ve se alguem ajuda ! local potions = { [6542] = {needLevel = 100, rate = 2.0, duration = 1800}, [6543] = {needLevel = 100, rate = 3.0, duration = 1800}, [6544] = {needLevel = 100, rate = 4.0, duration = 1800}, [6545] = {needLevel = 100, rate = 5.0, duration = 1800}, [2328] = {needLevel = 100, rate = 6.0, duration = 1800} } if not expPotions then expPotions = {playerData = {}} end function getTimeString(duration) local seconds = duration % 60 local minutes = math.floor((duration / 60) % 60) local hours = math.floor((duration / 3600) % 24) local days = math.floor(duration / 86400) local timeString = "" if days > 0 then timeString = timeString .. days .. " dia(s) " end if hours > 0 then timeString = timeString .. hours .. " hora(s) " end if minutes > 0 then timeString = timeString .. minutes .. " minuto(s) " end timeString = timeString .. seconds .. " segundo(s)" return timeString end function expPotions:onUse(cid, item, fromPosition, itemEx, toPosition) local itemId = item.itemid local potion = potions[itemId] if not potion then return false end if getPlayerLevel(cid) < potion.needLevel then doPlayerSendCancel(cid, ('Você precisa ser level %d+ para usar este Egg.'):format(potion.needLevel)) return true end local guid = getPlayerGUID(cid) self.playerData[guid] = self.playerData[guid] or {} local expData = self.playerData[guid][itemId] if not expData then self.playerData[guid][itemId] = {rate = 0, duration = 0} expData = self.playerData[guid][itemId] end local now = os.time() if expData.duration > now then doCreatureSay(cid, 'Aguarde o bônus atual acabar para usar novamente.', TALKTYPE_ORANGE_1, false, cid) return true end expData.rate = potion.rate expData.duration = potion.duration + now doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_GREEN) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, ('[Egg Exp (Combo)] Agora você tem +%d%% de experiência por %s.'):format( potion.rate * 100, getTimeString(potion.duration) )) doPlayerSetRate(cid, SKILL__LEVEL, expData.rate) -- Aplica o bônus de experiência doRemoveItem(item.uid, 1) return true end function expPotions:onLogin(cid) local guid = getPlayerGUID(cid) self.playerData[guid] = self.playerData[guid] or {} for itemId in pairs(potions) do self.playerData[guid][itemId] = self.playerData[guid][itemId] or {rate = 0, duration = 0} end return true end function expPotions:onLogout(cid) local guid = getPlayerGUID(cid) local playerData = self.playerData[guid] if playerData then for itemId, expData in pairs(playerData) do doPlayerSetRate(cid, SKILL__LEVEL, 1) -- o bônus de experiência para 1 end end return true end function expPotions:getCombo(cid) local playerData = self.playerData[getPlayerGUID(cid)] local potionsCombo = 1 if playerData then for itemId, expData in pairs(playerData) do potionsCombo = potionsCombo + expData.rate end end return potionsCombo end function expPotions:onSay(cid, words, param) local str = 'Combos de Eggs de Experiência:\n' local playerData = self.playerData[getPlayerGUID(cid)] if playerData then for itemId, expData in pairs(playerData) do local itemName = getItemNameById(itemId) str = str .. ('\n%s - %d%%'):format(itemName, expData.rate * 100) end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str) return true end Resolvido 😛
Postado Maio 24, 2023 1 ano Autor 2 minutos atrás, Mask Ghoul disse: local potions = { [6542] = {needLevel = 100, rate = 2.0, duration = 1800}, [6543] = {needLevel = 100, rate = 3.0, duration = 1800}, [6544] = {needLevel = 100, rate = 4.0, duration = 1800}, [6545] = {needLevel = 100, rate = 5.0, duration = 1800}, [2328] = {needLevel = 100, rate = 6.0, duration = 1800} } if not expPotions then expPotions = {playerData = {}} end function getTimeString(duration) local seconds = duration % 60 local minutes = math.floor((duration / 60) % 60) local hours = math.floor((duration / 3600) % 24) local days = math.floor(duration / 86400) local timeString = "" if days > 0 then timeString = timeString .. days .. " dia(s) " end if hours > 0 then timeString = timeString .. hours .. " hora(s) " end if minutes > 0 then timeString = timeString .. minutes .. " minuto(s) " end timeString = timeString .. seconds .. " segundo(s)" return timeString end function expPotions:onUse(cid, item, fromPosition, itemEx, toPosition) local itemId = item.itemid local potion = potions[itemId] if not potion then return false end if getPlayerLevel(cid) < potion.needLevel then doPlayerSendCancel(cid, ('Você precisa ser level %d+ para usar este Egg.'):format(potion.needLevel)) return true end local guid = getPlayerGUID(cid) self.playerData[guid] = self.playerData[guid] or {} local expData = self.playerData[guid][itemId] if not expData then self.playerData[guid][itemId] = {rate = 0, duration = 0} expData = self.playerData[guid][itemId] end local now = os.time() if expData.duration > now then doCreatureSay(cid, 'Aguarde o bônus atual acabar para usar novamente.', TALKTYPE_ORANGE_1, false, cid) return true end expData.rate = potion.rate expData.duration = potion.duration + now doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_GREEN) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, ('[Egg Exp (Combo)] Agora você tem +%d%% de experiência por %s.'):format( potion.rate * 100, getTimeString(potion.duration) )) doPlayerSetRate(cid, SKILL__LEVEL, expData.rate) -- Aplica o bônus de experiência doRemoveItem(item.uid, 1) return true end function expPotions:onLogin(cid) local guid = getPlayerGUID(cid) self.playerData[guid] = self.playerData[guid] or {} for itemId in pairs(potions) do self.playerData[guid][itemId] = self.playerData[guid][itemId] or {rate = 0, duration = 0} end return true end function expPotions:onLogout(cid) local guid = getPlayerGUID(cid) local playerData = self.playerData[guid] if playerData then for itemId, expData in pairs(playerData) do doPlayerSetRate(cid, SKILL__LEVEL, 1) -- o bônus de experiência para 1 end end return true end function expPotions:getCombo(cid) local playerData = self.playerData[getPlayerGUID(cid)] local potionsCombo = 1 if playerData then for itemId, expData in pairs(playerData) do potionsCombo = potionsCombo + expData.rate end end return potionsCombo end function expPotions:onSay(cid, words, param) local str = 'Combos de Eggs de Experiência:\n' local playerData = self.playerData[getPlayerGUID(cid)] if playerData then for itemId, expData in pairs(playerData) do local itemName = getItemNameById(itemId) str = str .. ('\n%s - %d%%'):format(itemName, expData.rate * 100) end end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, str) return true end Trabalho perfeito ! muito obrigado mano !
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.