Jump to content

Scripting AJUDA - Boosted Monster Diario (0.7.5)


Recommended Posts

.Qual servidor ou website você utiliza como base? 

 

Boa noite, estou precisando de ajuda no meu Monstro Boostado Diario, o monstro aparece no local que coloquei na script, a mensagem do monstro boostado tbm aparece certinho, porem o ponto é que a criatura selecionada para ser boostado nao está ganhando os 5% a mais de XP/LOOT que eram pra ganhar. ajudem por favor REP+

 

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

 

 

data/creatures/scripts

 

loot_bonus = 5
ignoredList = {1987}
function addBonusLoot(position, name)
        for i = 0, 255 do
        position.stackpos = i
        corpse = getTileThingByPos(position)
        if corpse.uid > 0 and isCorpse(corpse.uid) then
            break
        end
    end
        local newRate = (1 + (loot_bonus/100)) * getConfigValue("rateLoot")
        local monsterLoot = getMonsterLootList(name)
        local mainbp = doCreateItemEx(1987, 1)
        for i, loot in pairs(monsterLoot) do
            if math.random(1, 100000) <= newRate * loot.chance then
                if #ignoredList > 0 then
                    if (not isInArray(ignoredList, loot.id)) then
                        doAddContainerItem(mainbp, loot.id, loot.countmax and math.random(1, loot.countmax) or 1)
                    end
                else
                    doAddContainerItem(mainbp, loot.id, loot.countmax and math.random(1, loot.countmax) or 1)
                end
            end
            doAddContainerItemEx(corpse.uid, mainbp) 
        end
end

BOOSTED_MONSTER = 56404
boostedMonstersList = {"rat", "spider", "troll", "orc", "minotaur", "dwarf", "elf", "skeleton", "amazon", "valkirie", "dark apprentice", "ghoul", "cyclops", "dwarf guard", "necromancer", "vampire", "werewolf", "dragon", "dragon lord", "wyrm", "giant spider", "hydra", "warlock", "demon"}
experienceBonus = 5

function onDeath(cid, corpse, deathList)

local master = getCreatureMaster(cid)
  if (master and master ~= cid) then
    return true
  end

  local boostedMonster = boostedMonstersList[getGlobalStorageValue(BOOSTED_MONSTER)]
    if getCreatureName(cid):lower() == boostedMonster then
    
for i = 1, #deathList do
    
-- exp bonus
    local bonusExperience = getMonsterInfo(getCreatureName(cid)).experience/i * getPlayerRates(deathList[i])[SKILL__LEVEL] * experienceBonus/100
    doPlayerAddExperience(deathList[i], bonusExperience)
    doSendAnimatedText(getPlayerPosition(deathList[i]), bonusExperience, 215)
    
-- loot bonus
    addEvent(addBonusLoot, 10, getCreaturePosition(cid), getCreatureName(cid))
    
end
    
    end
    return true
end

 

data/creature/scripts

 

function onLogin(cid)
local BOOSTED_MONSTER = 56404
local boostedMonstersList = {"rat", "spider", "troll", "orc", "minotaur", "dwarf", "elf", "skeleton", "amazon", "valkirie", "dark apprentice", "ghoul", "cyclops", "dwarf guard", "necromancer", "vampire", "werewolf", "dragon", "dragon lord", "wyrm", "giant spider", "hydra", "warlock", "demon"}
local boostedMonster = boostedMonstersList[getGlobalStorageValue(BOOSTED_MONSTER)]
doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "O monstro boostado de hoje e: "..boostedMonster.."!")
return true
end

 

 

 

 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.


  • Similar Content

    • By NetoXdddsedrttg
      .Qual servidor ou website você utiliza como base? 
      Baiak PvP
      Qual o motivo deste tópico? 
      Quero uma Script que quando usar o item 5953 ele fique bebado e saia um efeito de fumaça por 5 segundos e almente as skills tudo em +5, e que quando usar so pode usar denovo em 6 horas e que dure 3hrs.
      e um script pra usar no item 8204 que quando usar saia um efeito e ele ganhe speed +1000 e ganhe skills +10 e que quando usar so pode usar denovo com 12hrs e 2hrs. Obrigado quem poder ajudar.
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • By NetoXdddsedrttg
      .Qual servidor ou website você utiliza como base? 
       
      Qual o motivo deste tópico? 
      se alguém poder me ajudar fico grato.

      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • By lordzetros
      TFS 1.3 - TESTADO EM VERSÃO 10.98
      * Introdução *
       
          Bom, estive navegando no Fórum e vi que o usuário @Cleiton Felipi pediu um script que ao player entrasse no teleport de um X monstro, um Demon por exemplo, listasse qual hunt o jogador queria entrar. Achei interessante, e resolvi desenvolver e postar no TK, já que não tinha ainda, :).
       
       
       
      * Sobre o sistema *
       
           Você utiliza diversas hunts com vários tps criados no mapa no seu servidor do mesmo monstro? Bom, este script será muito útil para você! Pois ele permitirá que você habilite ao jogador em qual hunt ele quer caçar, por exemplo, se tiver Demon 01, Demon 02, Demon 03, Demon X, basta apenas você criar um tp indicando o monstro e que uma janela irá aparecer com a lista de opções de hunts, prático, né? Segue imagens de demonstração:


       
       
      OBS¹.: Você pode colocar TODOS OS MONSTROS neste script, contando que tenha o actionID que ficará no teleporte, não é de uma quantidade limitada, em outras palavras, você pode adicionar as hunts de Demon, Frost Dragon, Dragon, ..., tudo aqui, apenas mudando o actionID (tudo configurável, não se preocupe).
       
      * Instalação *
       
      Em data/movements/scripts/ crie um arquivo chamado mov_janela_hunts.lua e adicione dentro:
      --[[ Script - Lordzetros Fórum Tibia King ]] local config = { titulo = "BEM VINDO(A) A JANELA DE HUNTS!", -- Título da Janela mensagem = "Selecione qual hunt voce deseja ir:", -- Mensagem abaixo do título da janela } CONFIG_TPS_JANELA = { [19090] = { -- ID do action que ficará no portal da hunt {nome = "Demon 01", pos = {x = 98, y = 139, z = 7}}, -- Segue padrão, nome da cave e posição que o player será teleportado {nome = "Demon 02", pos = {x = 93, y = 144, z = 7}}, {nome = "Demon 03", pos = {x = 91, y = 140, z = 7}}, {nome = "Demon 04", pos = {x = 94, y = 138, z = 7}}, {nome = "Demon 05", pos = {x = 95, y = 136, z = 7}}, }, [19091] = { {nome = "Frost 01", pos = {x = 98, y = 140, z = 7}}, {nome = "Frost 02", pos = {x = 93, y = 145, z = 7}}, {nome = "Frost 03", pos = {x = 91, y = 141, z = 7}}, {nome = "Frost 04", pos = {x = 94, y = 139, z = 7}}, {nome = "Frost 05", pos = {x = 95, y = 137, z = 7}}, }, } function onStepIn(creature, item, pos, fromPosition) if ((CONFIG_TPS_JANELA[item:getActionId()]) and creature:isPlayer()) then JANELA_TP_ACTION = item:getActionId() creature:teleportTo(fromPosition, true) creature:registerEvent("janela hunts") local janela = ModalWindow(1000, config.titulo, config.mensagem) for i, v in ipairs(CONFIG_TPS_JANELA[JANELA_TP_ACTION]) do janela:addChoice(i, v.nome) end janela:addButton(100, "Confirmar") janela:addButton(101, "Fechar") janela:setDefaultEnterButton(100) janela:setDefaultEscapeButton(101) janela:sendToPlayer(creature) end return true end  
      Em data/movements/movements.xml adicione o seguinte código abaixo de um semelhante:
      <movevent event="StepIn" itemid="5023" script="mov_janela_hunts.lua" />  
       
      Agora em data/creaturescripts/scripts/ crie um arquivo chamado creature_janela_hunts.lua e adicione dentro:
      function onModalWindow(player, modalWindowId, buttonId, choiceId) player:unregisterEvent("janela hunts") if (modalWindowId == 1000) then if (buttonId == 100) then local tele_pos = CONFIG_TPS_JANELA[JANELA_TP_ACTION][choiceId].pos player:teleportTo(tele_pos) local pos_t = Position(tele_pos) pos_t:sendMagicEffect(CONST_ME_MAGIC_BLUE) end end return true end  
      Em data/creaturescripts/creaturescripts.xml adicione o seguinte código abaixo de um semelhante:
      <event type="ModalWindow" name="janela hunts" script="creature_janela_hunts.lua"/>  
      * Configuração *
          Bom, apesar de que não seja difícil de configurar, é necessário uma explicação, vamos lá...
      1 - 
      [19090] = { -- ID do action que ficará no portal da hunt {nome = "Demon 01", pos = {x = 98, y = 139, z = 7}}, -- Segue padrão, nome da cave e posição que o player será teleportado {nome = "Demon 02", pos = {x = 93, y = 144, z = 7}}, {nome = "Demon 03", pos = {x = 91, y = 140, z = 7}}, {nome = "Demon 04", pos = {x = 94, y = 138, z = 7}}, {nome = "Demon 05", pos = {x = 95, y = 136, z = 7}}, }, Em [19090] este número de dentro é o actionID que ficará no portal. Com ele será identificado de qual monstro se trata, bastando apenas configurar este número e o nome das opções de monstros que você quer aparecendo na janela, em seguida, a posição na qual o jogador será teleportado, seguindo a ordem. Segue imagem de como deve ficar o seu portal:

      OBS²: VOCÊ EDITA O ACTIONID NO SEU EDITOR DE MAPA COLOCANDO NO ID DO ITEM DE TELEPORTE.
      OBS³: PARA ADICIONAR NOVAS HUNTS NO SCRIPT, BASTA SEGUIR O PADRÃO QUE ESTÁ NO CÓDIGO, DO 19090 PARA O 19091.
       
      2 - (por fim)
      Em data/movements/movements.xml
      <movevent event="StepIn" itemid="5023" script="mov_janela_hunts.lua" /> itemID = Id do item que o player andará para abrir a janela de hunt
      Está como 5023 por conta que o magic forcefield é 5023, no qual utilizei para teste, aconselho você deixar da mesma forma (caso seja o mesmo id no seu servidor), ou mude, mas cuidado para não cometer algum erro.
       
       
      Enfim, algo simples, porém não encontrei no TK.
      Abraços.  
       
       
    • By thiagorsouza
      .Qual servidor ou website você utiliza como base? 
      não, tenho nenhum so ajuda do forum
      Qual o motivo deste tópico? 
      Preciso que o reseter a cada reset de um pouco mais de dano para cada reset que o player for fazer, so que so quando ele reseta ele ganha essa porcentagem ou esse dano acrescentado , nao sei direito como explica mais creio que ja deu para entender oque eu quero fazer 
      Está surgindo algum erro? Se sim coloque-o aqui. 
       
      Você tem o código disponível? Se tiver publique-o aqui: 
         
      Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 
       
    • By XGaduX
      Uso esse npc para da recompensa aos player, gostaria de um função que não entregasse para player com mesmo IP. Alguém ajuda ae!!!
      local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) local storage = 5665465 local item = { {name = "caixa", id = 15999, quantidade = 1}, } local effect = 763 --------------------------------- CÓDIGO -------------------------------- if msgcontains(msg, 'box') then if getPlayerStorageValue(cid, storage) <= os.time() then selfSay("Would you like to receive: {" .. item[1].name .. "}? You can come here again to get it", cid) talkState[talkUser] = 1 return true else selfSay("You need to wait days to get new items in the quest.", cid) talkState[talkUser] = 0 return true end elseif msgcontains(msg, string.lower(item[1].name)) and talkState[talkUser] == 1 then doPlayerAddItem(cid, item[1].id, item[1].quantidade) doSendMagicEffect(getThingPos(cid), effect) doPlayerSendTextMessage(cid, 27, "Congratulation, you won " .. item[1].name .. ".") setPlayerStorageValue(cid, storage, os.time() + (dias * 24 * 60 * 60)) talkState[talkUser] = 0 return true elseif (not msgcontains(msg, string.lower(item[1].name))) and talkState[talkUser] == 1 then selfSay("Please write correctly, I don't understand what you said", cid) return true elseif (msgcontains(msg, 'bye') or msgcontains(msg, 'goodbye')) and talkState[talkUser] == 1 then selfSay("Goodbye!", cid) talkState[talkUser] = 0 return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())  
×
×
  • Create New...

Important Information

Confirmação de Termo