Postado Julho 1, 2023 1 ano Galera, to usando esse monsterboost, porem ele nao esta dando a % do loot, a exp ele da certinha ! ja a parte do loot ele nao dá !. So esta dando 1 tem de cada loot q cair. Ex: dropa 100 gps do monstro, o script botou pra da 30% do loot, era para o bonus dá 30gps, pois so esta dando 1gps no bonus, alguem pode ajudar a solucionar esse error porfavor ! Citar local BOOST_SYSTEM_MONSTER_NAME_STORAGE = 12380 local BOOST_SYSTEM_LOOT_BONUS_STORAGE = 12381 local BOOST_SYSTEM_EXP_BONUS_STORAGE = 12382 local function addBonusLoot(cid, position, name) local check = false local corpse = nil for i = 0, 255 do position.stackpos = i corpse = getTileThingByPos(position) if corpse.uid > 0 and isCorpse(corpse.uid) then check = true break end end if not check then return end local newRate = (1 + (getStorage(BOOST_SYSTEM_LOOT_BONUS_STORAGE) / 100)) * getConfigValue("rateLoot") local mainbp = doCreateItemEx(5949, 1) local monsterLoot = getMonsterLootList(name) local bonusString = "" for i, loot in pairs(monsterLoot) do if math.random(1, 100000) <= newRate * loot.chance then local count = loot.countmax and math.random(1, loot.countmax) or 1 doAddContainerItem(mainbp, loot.id, count) bonusString = bonusString .. count .. " " .. getItemInfo(loot.id).name .. ", " end end if bonusString ~= "" then if bonusString:sub(bonusString:len(), bonusString:len()) == "," then bonusString = bonusString:sub(1, bonusString:len() - 1) .. "." end doAddContainerItemEx(corpse.uid, mainbp) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Loot bonus (" .. name .. "): ".. bonusString ..".") end end function onKill(cid, target, lastHit) if not isMonster(target) then return true end local bonusMonster = getStorage(BOOST_SYSTEM_MONSTER_NAME_STORAGE) local targetName = getCreatureName(target) if not targetName:lower():find(bonusMonster) then return true end local monsterExp = getMonsterInfo(targetName).experience local rate = getExperienceStage(getPlayerLevel(cid)) local expBonus = getStorage(BOOST_SYSTEM_EXP_BONUS_STORAGE) local exp = math.ceil((monsterExp * rate) * (expBonus / 100)) doPlayerAddExperience(cid, exp) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Você recebeu " .. exp .. " a mais de exp de bônus por matar um " .. targetName .. " .") addEvent(addBonusLoot, 100, cid, getThingPos(target), targetName) addEvent(doSendAnimatedText, 100, getThingPos(cid), "+" .. exp .. " exp", 19) return true end function onLogin(cid) registerCreatureEvent(cid, "monsterBoostKill") return true end Citar local monsterPosition = {x = 134, y = 60, z = 7} local lootBoostPosition = {x = 133, y = 60, z = 7} local expBoostPosition = {x = 135, y = 60, z = 7} local BOOST_SYSTEM_MONSTER_NAME_STORAGE = 12380 local BOOST_SYSTEM_LOOT_BONUS_STORAGE = 12381 local BOOST_SYSTEM_EXP_BONUS_STORAGE = 12382 string.upperAllFirst = string.upperAllFirst or function (str) return string.gsub(' ' .. str, '%W%l', string.upper):sub(2) end local days = { ["Sunday"] = {"Dawnfire Asura", "Draken Abomination", "Behemoth", "Midnight Asura", "Serpent Spawn", "Medusa", "Draken Elite", "Skeleton Elite Warrior", "Hellhound", "Undead Dragon", "Ghastly Dragon", "Grim Reaper", "Demon", "Dragon Lord", "Hydra", "Frost Dragon", "Fury", "Warlock"}, -- Domingo ["Monday"] = {"Dawnfire Asura", "Draken Abomination", "Behemoth", "Midnight Asura", "Serpent Spawn", "Medusa", "Draken Elite", "Skeleton Elite Warrior", "Hellhound", "Undead Dragon", "Ghastly Dragon", "Grim Reaper", "Demon", "Dragon Lord", "Hydra", "Frost Dragon", "Fury", "Warlock"}, -- Segunda-feira ["Tuesday"] = {"Dawnfire Asura", "Draken Abomination", "Behemoth", "Midnight Asura", "Serpent Spawn", "Medusa", "Draken Elite", "Skeleton Elite Warrior", "Hellhound", "Undead Dragon", "Ghastly Dragon", "Grim Reaper", "Demon", "Dragon Lord", "Hydra", "Frost Dragon", "Fury", "Warlock"}, -- Terça-feira ["Wednesday"] = {"Dawnfire Asura", "Draken Abomination", "Behemoth", "Midnight Asura", "Serpent Spawn", "Medusa", "Draken Elite", "Skeleton Elite Warrior", "Hellhound", "Undead Dragon", "Ghastly Dragon", "Grim Reaper", "Demon", "Dragon Lord", "Hydra", "Frost Dragon", "Fury", "Warlock"}, -- Quarta-feira ["Thursday"] = {"Dawnfire Asura", "Draken Abomination", "Behemoth", "Midnight Asura", "Serpent Spawn", "Medusa", "Draken Elite", "Skeleton Elite Warrior", "Hellhound", "Undead Dragon", "Ghastly Dragon", "Grim Reaper", "Demon", "Dragon Lord", "Hydra", "Frost Dragon", "Fury", "Warlock"}, -- Quinta-feira ["Friday"] = {"Dawnfire Asura", "Draken Abomination", "Behemoth", "Midnight Asura", "Serpent Spawn", "Medusa", "Draken Elite", "Skeleton Elite Warrior", "Hellhound", "Undead Dragon", "Ghastly Dragon", "Grim Reaper", "Demon", "Dragon Lord", "Hydra", "Frost Dragon", "Fury", "Warlock"}, -- Sexta-feira ["Saturday"] = {"Dawnfire Asura", "Draken Abomination", "Behemoth", "Midnight Asura", "Serpent Spawn", "Medusa", "Draken Elite", "Skeleton Elite Warrior", "Hellhound", "Undead Dragon", "Ghastly Dragon", "Grim Reaper", "Demon", "Dragon Lord", "Hydra", "Frost Dragon", "Fury", "Warlock"} -- Sábado } function onStartup() local monsters = days[os.date("%A")] if not monsters then return true end local func = db.query or db.executeQuery local monster = monsters[math.random(1, #monsters)] print(monster) doSetStorage(BOOST_SYSTEM_MONSTER_NAME_STORAGE, monster:lower()) doSetStorage(BOOST_SYSTEM_LOOT_BONUS_STORAGE, math.random(30, 50)) doSetStorage(BOOST_SYSTEM_EXP_BONUS_STORAGE, math.random(30, 50)) doCreateMonster(monster, monsterPosition, false, true) func("INSERT INTO monster_boost (monster, loot, exp) VALUES ('"..monster.."', '"..getStorage(BOOST_SYSTEM_LOOT_BONUS_STORAGE).."', '"..getStorage(BOOST_SYSTEM_EXP_BONUS_STORAGE).."')") return true end function onThink() local monsterName = getStorage(BOOST_SYSTEM_MONSTER_NAME_STORAGE) if monsterName == EMPTY_STORAGE then return true end local creature = getTopCreature(monsterPosition) if not creature or creature.uid == 0 then doCreateMonster(monsterName, monsterPosition, false, true) elseif getCreatureName(creature.uid):lower() ~= monsterName then doRemoveCreature(creature.uid) doCreateMonster(monsterName, monsterPosition, false, true) end --doSendAnimatedText(monsterPosition, string.upperAllFirst(monsterName), COLOR_LIGHTBLUE) doSendAnimatedText(lootBoostPosition, "Loot +" .. getStorage(BOOST_SYSTEM_LOOT_BONUS_STORAGE) .. "%", 194) doSendAnimatedText(expBoostPosition, "Exp +" .. getStorage(BOOST_SYSTEM_EXP_BONUS_STORAGE) .. "%", 194) return true end
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.