Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo