Postado Janeiro 12, 2019 6 anos Eu gostaria de adicionar informações do BUFF feito pelo @xWhiteWolf em um script que o @Vodkart disponibilizou para a comunidade, mais ainda continuo sem saber como executar, caso alguém queria me ensinar como fazer ou me ajudar ficarei muito agradecido. As informações do BUFF só iria aparecer se você estiver com alguns dos BUFFS específicos, caso ao contrario nem iria aparecer. Obrigado desde já, rep+ para quem ajudar. Exemplos: Se você estivesse bufado pelo Utevo Sio, somente por ele iria ficar assim Buffs: mana up: tempo de buff Se você foi bufado por mais de dois buffs iria ficar assim Buffs: vida up: tempo de buff skill up: tempo de buff shield up: tempo de buff Se possível adicionar em baixo das informações que mostra quantos critical você tem. Obrigado mais uma vez Script do @Vodkart Spoiler function getPremiumPoints(cid) local query = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid)) return query:getDataInt("premium_points") <= 0 and 0 or query:getDataInt("premium_points") end function doCalcPercent(cid, a, b) return math.floor(b/a*100) end function getExperienceForLevel(lv) lv = lv - 1 return ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3 end local var = { ["fist fighting"] = 0, ["club fighting"] = 1, ["sword fighting"] = 2, ["axe fighting"] = 3, ["distance fighting"] = 4, ["shield fighting"] = 5, ["fishing"] = 6, ["magic"] = 9 } function onSay(cid, words, param, channel) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Premium Points: "..getPremiumPoints(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Dias Premmy: "..getPlayerPremiumDays(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Dodge Level: "..(getPlayerStorageValue(cid, 98798644) <= 0 and 0 or getPlayerStorageValue(cid, 98798644))) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Critical Level: "..(getPlayerStorageValue(cid, 48903) <= 0 and 0 or getPlayerStorageValue(cid, 48903))) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Stamina: "..timeString((getPlayerStamina(cid)*60))) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Cap livre: "..getPlayerFreeCap(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Banco: "..getPlayerBalance(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Experiencia: "..getPlayerExperience(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Informacoes das skills de "..getCreatureName(cid)) local lvl, ln = getPlayerLevel(cid),-(getPlayerExperience(cid) - getExperienceForLevel((getPlayerLevel(cid)+1))) local z = (getExperienceForLevel(getPlayerLevel(cid)) - getExperienceForLevel(getPlayerLevel(cid)+1)) local w = (getExperienceForLevel(getPlayerLevel(cid)) - getPlayerExperience(cid)) local v = math.floor(w/z*100) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"- level: "..lvl.." {"..(v <= 0 and 0 or v).."%}. Faltando "..ln.." pontos de experiencia.") for name, id in pairs(var) do if name == "magic" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"- ".. name .. ": "..getPlayerMagLevel(cid).." {" .. doCalcPercent(cid, getPlayerRequiredMana(cid, getPlayerMagLevel(cid)+1), getPlayerSpentMana(cid)) .. "%}. Faltando "..getPlayerRequiredMana(cid, getPlayerMagLevel(cid)+1) - getPlayerSpentMana(cid).." pontos.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"- ".. name .. ": "..getPlayerSkillLevel(cid, id).." {" .. doCalcPercent(cid, getPlayerRequiredSkillTries(cid, id, getPlayerSkillLevel(cid, id)+1), getPlayerSkillTries(cid, id)) .. "%}. Faltando "..getPlayerRequiredSkillTries(cid, id, getPlayerSkillLevel(cid, id)+1) - getPlayerSkillTries(cid, id).." pontos.") end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"- labia: "..getLabiaLevel(cid).." {" .. doCalcPercent(cid, getLabiaExpTo(getLabiaLevel(cid)+1), getLabiaTries(cid)) .. "%}. Faltando ".. math.floor(getLabiaExpTo(getLabiaLevel(cid)+1) - getLabiaTries(cid)).." pontos.") return true end Script dos BUFF feito pelo @xWhiteWolf Vita Sio - Vida Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 20 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Vita Gran Sio - Vida Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 40 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Vita Gran Mas Sio - Vida. Modificado Pelo @KotZletY Spoiler local config = { tempo = 600, --- tempo que vai durar a spell percent = 40 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent) local config = { baseMana = 120, pvpManaSpent = getConfigValue("addManaSpentInPvPZone") } function onCastSpell(cid, var) local pos, membersList = getCreaturePosition(cid), getPartyMembers(cid) if not membersList then doPlayerSendTextMessage(cid,22,"Voce precisa esta em party para usar esse buff.") doSendMagicEffect(pos, CONST_ME_POFF) return false end if table.maxn(membersList) <= 1 then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local affectedList = {} for _, pid in ipairs(membersList) do if(getDistanceBetween(getCreaturePosition(pid), pos) <= 36) then table.insert(affectedList, pid) end end local tmp = table.maxn(affectedList) if(tmp <= 1) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local mana = math.ceil((0.9 ^ (tmp - 1) * config.baseMana) * tmp) if(getCreatureMana(cid) < mana) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA) doSendMagicEffect(pos, CONST_ME_POFF) return false end doCreatureAddMana(cid, -(mana - config.baseMana), false) if(not getPlayerFlagValue(cid, PlayerFlag_NotGainMana) and (not getTileInfo(getThingPosition(cid)).pvp or config.pvpManaSpent)) then doPlayerAddSpentMana(cid, (mana - config.baseMana)) end for _, pid in ipairs(affectedList) do doAddCondition(pid, condition) end return true end Utevo Sio - Mana Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai ficar recuperando mana (tempo total) mana = 200, -- quanto de mana ganha a cada intervalo intervalo = 5 --- intervalo que leva pra recuperar X de mana, } local condition = createConditionObject(CONDITION_FOOD) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, config.mana) setConditionParam(condition, CONDITION_PARAM_MANATICKS, config.intervalo*1000) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Utevo Gran Sio - Mana Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai ficar recuperando mana (tempo total) mana = 250, -- quanto de mana ganha a cada intervalo intervalo = 3 --- intervalo que leva pra recuperar X de mana, } local condition = createConditionObject(CONDITION_FOOD) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, config.mana) setConditionParam(condition, CONDITION_PARAM_MANATICKS, config.intervalo*1000) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Utevo Gran Mas Sio - Mana. Modificado pelo @KotZletY Spoiler local config = { tempo = 600, --- tempo que vai ficar recuperando mana (tempo total) mana = 350, -- quanto de mana ganha a cada intervalo intervalo = 1 --- intervalo que leva pra recuperar X de mana, } local condition = createConditionObject(CONDITION_FOOD) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_MANAGAIN, config.mana) setConditionParam(condition, CONDITION_PARAM_MANATICKS, config.intervalo*1000) local config = { baseMana = 60, pvpManaSpent = getConfigValue("addManaSpentInPvPZone") } function onCastSpell(cid, var) local pos, membersList = getCreaturePosition(cid), getPartyMembers(cid) if not membersList then doPlayerSendTextMessage(cid,22,"Voce precisa esta em party para usar esse buff.") doSendMagicEffect(pos, CONST_ME_POFF) return false end if table.maxn(membersList) <= 1 then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local affectedList = {} for _, pid in ipairs(membersList) do if(getDistanceBetween(getCreaturePosition(pid), pos) <= 36) then table.insert(affectedList, pid) end end local tmp = table.maxn(affectedList) if(tmp <= 1) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local mana = math.ceil((0.9 ^ (tmp - 1) * config.baseMana) * tmp) if(getCreatureMana(cid) < mana) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA) doSendMagicEffect(pos, CONST_ME_POFF) return false end doCreatureAddMana(cid, -(mana - config.baseMana), false) if(not getPlayerFlagValue(cid, PlayerFlag_NotGainMana) and (not getTileInfo(getThingPosition(cid)).pvp or config.pvpManaSpent)) then doPlayerAddSpentMana(cid, (mana - config.baseMana)) end for _, pid in ipairs(affectedList) do doAddCondition(pid, condition) end return true end Utamo Sio - Shield Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 40 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Utamo Gran Sio - Shield Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 70 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Utamo Gran Mas Sio - Shield. Modificado pelo @KotZletY Spoiler local config = { tempo = 600, --- tempo que vai durar a spell percent = 95 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELDPERCENT, 100+config.percent) local config = { baseMana = 90, pvpManaSpent = getConfigValue("addManaSpentInPvPZone") } function onCastSpell(cid, var) local pos, membersList = getCreaturePosition(cid), getPartyMembers(cid) if not membersList then doPlayerSendTextMessage(cid,22,"Voce precisa esta em party para usar esse buff.") doSendMagicEffect(pos, CONST_ME_POFF) return false end if table.maxn(membersList) <= 1 then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local affectedList = {} for _, pid in ipairs(membersList) do if(getDistanceBetween(getCreaturePosition(pid), pos) <= 36) then table.insert(affectedList, pid) end end local tmp = table.maxn(affectedList) if(tmp <= 1) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local mana = math.ceil((0.9 ^ (tmp - 1) * config.baseMana) * tmp) if(getCreatureMana(cid) < mana) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA) doSendMagicEffect(pos, CONST_ME_POFF) return false end doCreatureAddMana(cid, -(mana - config.baseMana), false) if(not getPlayerFlagValue(cid, PlayerFlag_NotGainMana) and (not getTileInfo(getThingPosition(cid)).pvp or config.pvpManaSpent)) then doPlayerAddSpentMana(cid, (mana - config.baseMana)) end for _, pid in ipairs(affectedList) do doAddCondition(pid, condition) end return true end Utito Mas Sio - Skill Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 120, --- tempo que vai durar a spell percent = 300 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_SKILL_CLUBPERCENT, 100+config.percent) setConditionParam(condition, CONDITION_PARAM_SKILL_SWORDPERCENT, 100+config.percent) setConditionParam(condition, CONDITION_PARAM_SKILL_AXEPERCENT, 100+config.percent) setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCEPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Meu Curso sobre Programação para OTServer Programando OTServer Peça o seu script! Entre agora mesmo no grupo Developing Conteúdos: Spoiler • Cidade [8.60] • Cave de Boss • Widget Gesior • Autoloot 100% • [Old Client] Como Hookar Dll • Configurando VPS Windowns • [Solução] Código Caracteres Especiais Discord: Belmont#7352 Não esqueça do REP+
Postado Janeiro 19, 2019 6 anos Autor @Vodkart Poderia me dizer como eu faço? Por favor Meu Curso sobre Programação para OTServer Programando OTServer Peça o seu script! Entre agora mesmo no grupo Developing Conteúdos: Spoiler • Cidade [8.60] • Cave de Boss • Widget Gesior • Autoloot 100% • [Old Client] Como Hookar Dll • Configurando VPS Windowns • [Solução] Código Caracteres Especiais Discord: Belmont#7352 Não esqueça do REP+
Postado Janeiro 21, 2019 6 anos @Phineasz vou te ensinar como fazer, é meio chato mas vou fazer em 3 script diferentes para você. Presta atenção: Vita Sio - Vida Spoiler eu atribui uma storage nela, no caso eu escolhi a storage 789651, olha como ficou: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 20 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) local store = 789651 -- valor da storage escolhido setPlayerStorageValue(cid, store, os.time()+config.tempo) return doCombat(cid, combat, var) end Vita Gran Sio - Vida Spoiler eu atribui outra storage nela, no caso eu escolhi a storage 789652, olha como ficou: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISPEL, CONDITION_PARALYZE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 39) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local config = { tempo = 600, --- tempo que vai durar a spell percent = 40 -- quanto % vai aumentar } local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent) setCombatCondition(combat, condition) function onCastSpell(cid, var) local store = 789652 -- storage escolhida setPlayerStorageValue(cid, store, os.time()+config.tempo) return doCombat(cid, combat, var) end Vita Gran Mas Sio - Vida. Spoiler Nesse caso é um buff que é dado em party então todos os jogadores que serão bufados devem receber a storage, que no caso foi escolhida a 789653. local config = { tempo = 600, --- tempo que vai durar a spell percent = 40 -- quanto % vai aumentar } local store = 789653 -- aqui valor da storage local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, config.tempo*1000) setConditionParam(condition, CONDITION_PARAM_BUFF, true) setConditionParam(condition, CONDITION_PARAM_STAT_MAXHITPOINTSPERCENT, 100+config.percent) local config = { baseMana = 120, pvpManaSpent = getConfigValue("addManaSpentInPvPZone") } function onCastSpell(cid, var) local pos, membersList = getCreaturePosition(cid), getPartyMembers(cid) if not membersList then doPlayerSendTextMessage(cid,22,"Voce precisa esta em party para usar esse buff.") doSendMagicEffect(pos, CONST_ME_POFF) return false end if table.maxn(membersList) <= 1 then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local affectedList = {} for _, pid in ipairs(membersList) do if(getDistanceBetween(getCreaturePosition(pid), pos) <= 36) then table.insert(affectedList, pid) end end local tmp = table.maxn(affectedList) if(tmp <= 1) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOPARTYMEMBERSINRANGE) doSendMagicEffect(pos, CONST_ME_POFF) return false end local mana = math.ceil((0.9 ^ (tmp - 1) * config.baseMana) * tmp) if(getCreatureMana(cid) < mana) then doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHMANA) doSendMagicEffect(pos, CONST_ME_POFF) return false end doCreatureAddMana(cid, -(mana - config.baseMana), false) if(not getPlayerFlagValue(cid, PlayerFlag_NotGainMana) and (not getTileInfo(getThingPosition(cid)).pvp or config.pvpManaSpent)) then doPlayerAddSpentMana(cid, (mana - config.baseMana)) end for _, pid in ipairs(affectedList) do doAddCondition(pid, condition) setPlayerStorageValue(pid, store, os.time()+config.tempo) -- aqui storage end return true end ---------------------------------------------- agora vou na lib e coloco em qualquer arquivo la no final essa tabela: -- buffs info command_buffs_storages = { [789651] = "Vida up - tempo restante: %s.", [789652] = "Super vida up - tempo restante: %s.", [789653] = "Party Vida Up - tempo restante: %s." } -------------------------------------------------- agora vou no creaturescript e no arquivo do login.lua adiciona antes do último return true: for store, buff in pairs(command_buffs_storages) do setPlayerStorageValue(cid, store, 0) end e o script vc deixa assim a talk: Spoiler function timeString(timeDiff) local dateFormat = { {"day", timeDiff / 60 / 60 / 24}, {"hour", timeDiff / 60 / 60 % 24}, {"minute", timeDiff / 60 % 60}, {"second", timeDiff % 60} } local out = {} for k, t in ipairs(dateFormat) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #dateFormat and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find("second") then local a, b = ret:find(" and ") ret = ret:sub(b+1) end return ret end function getPremiumPoints(cid) local query = db.getResult("SELECT `premium_points` FROM `accounts` WHERE `id` = "..getPlayerAccountId(cid)) return query:getDataInt("premium_points") <= 0 and 0 or query:getDataInt("premium_points") end function doCalcPercent(cid, a, b) return math.floor(b/a*100) end function getExperienceForLevel(lv) lv = lv - 1 return ((50 * lv * lv * lv) - (150 * lv * lv) + (400 * lv)) / 3 end local var = { ["fist fighting"] = 0, ["club fighting"] = 1, ["sword fighting"] = 2, ["axe fighting"] = 3, ["distance fighting"] = 4, ["shield fighting"] = 5, ["fishing"] = 6, ["magic"] = 9 } function ShowMyBuffs(cid) local show = false for store, buff in pairs(command_buffs_storages) do if getPlayerStorageValue(cid, store) >= os.time() then if show == false then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Informações dos Buffs:") show = true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, string.format(buff, timeString(getPlayerStorageValue(cid, store) - os.time()))) end end end function onSay(cid, words, param, channel) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Premium Points: "..getPremiumPoints(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Dias Premmy: "..getPlayerPremiumDays(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Dodge Level: "..(getPlayerStorageValue(cid, 98798644) <= 0 and 0 or getPlayerStorageValue(cid, 98798644))) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Critical Level: "..(getPlayerStorageValue(cid, 48903) <= 0 and 0 or getPlayerStorageValue(cid, 48903))) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Stamina: "..timeString((getPlayerStamina(cid)*60))) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Cap livre: "..getPlayerFreeCap(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Banco: "..getPlayerBalance(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Experiencia: "..getPlayerExperience(cid)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Informacoes das skills de "..getCreatureName(cid)) local lvl, ln = getPlayerLevel(cid),-(getPlayerExperience(cid) - getExperienceForLevel((getPlayerLevel(cid)+1))) local z = (getExperienceForLevel(getPlayerLevel(cid)) - getExperienceForLevel(getPlayerLevel(cid)+1)) local w = (getExperienceForLevel(getPlayerLevel(cid)) - getPlayerExperience(cid)) local v = math.floor(w/z*100) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"- level: "..lvl.." {"..(v <= 0 and 0 or v).."%}. Faltando "..ln.." pontos de experiencia.") for name, id in pairs(var) do if name == "magic" then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"- ".. name .. ": "..getPlayerMagLevel(cid).." {" .. doCalcPercent(cid, getPlayerRequiredMana(cid, getPlayerMagLevel(cid)+1), getPlayerSpentMana(cid)) .. "%}. Faltando "..getPlayerRequiredMana(cid, getPlayerMagLevel(cid)+1) - getPlayerSpentMana(cid).." pontos.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"- ".. name .. ": "..getPlayerSkillLevel(cid, id).." {" .. doCalcPercent(cid, getPlayerRequiredSkillTries(cid, id, getPlayerSkillLevel(cid, id)+1), getPlayerSkillTries(cid, id)) .. "%}. Faltando "..getPlayerRequiredSkillTries(cid, id, getPlayerSkillLevel(cid, id)+1) - getPlayerSkillTries(cid, id).." pontos.") end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"- labia: "..getLabiaLevel(cid).." {" .. doCalcPercent(cid, getLabiaExpTo(getLabiaLevel(cid)+1), getLabiaTries(cid)) .. "%}. Faltando ".. math.floor(getLabiaExpTo(getLabiaLevel(cid)+1) - getLabiaTries(cid)).." pontos.") ShowMyBuffs(cid) return true end [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
Postado Janeiro 21, 2019 6 anos Autor @Vodkart Vou fazer os testes aqui, já te aviso Funcionou obrigado @Vodkart Ahmm, poderia me ajudar só mais em uma coisinha? Poderia mudar a parte da storage que vai para o jogador quando usa a magia? Tipo, o script estar funcionando perfeitamente, mais a storage só vai para o jogador que usou o buff, o que eu estou tentando dizer é, se eu bufar um amigo ou qualquer outro jogador, quem vai ficar com a storage sou eu e não vai aparecer o tempo nas informações de quem recebeu o buff, No script do Vita Gran Mas Sio estar dando este erro Meu Curso sobre Programação para OTServer Programando OTServer Peça o seu script! Entre agora mesmo no grupo Developing Conteúdos: Spoiler • Cidade [8.60] • Cave de Boss • Widget Gesior • Autoloot 100% • [Old Client] Como Hookar Dll • Configurando VPS Windowns • [Solução] Código Caracteres Especiais Discord: Belmont#7352 Não esqueça do REP+
Postado Janeiro 21, 2019 6 anos @Phineasz No Vita Gran Mas Sio tinha duas tabelas com o mesmo nome... ------------------------------ sobre os demais scripts, o buff não é só em si mesmo? tbm dá para colocar no target? em todos eles? [*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*] DISCORD: vodkart#6090
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.