Postado Maio 24, 2022 2 anos Autor 17 horas atrás, Vodkart disse: na lib tenta deixar assim: monsters_boosteds = { -- Configuracao dos monstros que irão ter exp e loot aumentados [1] = {monster_name = "Dwarf", exp = 0.05, loot = 7}, [2] = {monster_name = "Goblin", exp = 0.05, loot = 5}, [3] = {monster_name = "Orc", exp = 0.25, loot = 15}, [4] = {monster_name = "Dwarf Soldier", exp = 0.35, loot = 10}, --[5] = {monster_name = "NOME DO MONSTRO", exp = "PORCENTAGEM DE EXP", loot = "PORCENTAGEM DO LOOT"}, } o onKill function onKill(cid, target, damage, flags) if not (isMonster(target)) then return true end if (string.lower(getCreatureName(target)) == string.lower(getGlobalStorageValue(monster_name_backup))) then local percent = tonumber(getGlobalStorageValue(74813)) local exp = getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier) local amount = math.floor(((getMonsterInfo(string.lower(getCreatureName(target))).experience*exp)*percent)) doPlayerAddExperience(cid, amount) addLoot(getCreaturePosition(target), getCreatureName(target), {}) end return true end function addLoot(position, name, ignoredList) local check = false 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 check == true then local newRate = (1 + (getGlobalStorageValue(monster_loot_backup)/100)) * getConfigValue("rateLoot") local mainbp = doCreateItemEx(1987, 1) local monsterLoot = getMonsterLootList(name) 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 end doAddContainerItemEx(corpse.uid, mainbp) end end OBS: O EVENTO TEM QUE SER COMEÇADO DE NOVO PARA ATUALIZAR A EXP NA STORAGE, ou seja, testa só depois que dar o boost exp cara, em partes, deu certo... porém, ta me dando o bonus conforme o valor total de exp do monstro, que é o que ta me retornando, porém meu server é por rates... Então o valor do bonus ta me dando muito além do que o valor que eu realmente estou ganhando... Ali onde retorna o valor de exp que o monstro deu, tem algum meio de retornar não o valor total de exp que ele da, e sim o valor que o player está ganhando conforme os rates dele? @Vodkart Retornando para dizer como foi resolvido... Usei as funções que voce ensinou, e fiz algumas config locais a mais para eu conseguir chegar no resultado que eu queria, que era apenas o bonus de 30% em cima do valor de EXP que o monstro me daria sem rate extra algum, nem o bonus stamina, nem bonus vip, nem bonus castle... Apenas o valor ganho conforme o rate do player, somando 30% a mais... Provavelmente você saberia fazer de uma forma mais simples mas fiz assim alterando as informações que você me deu... function onKill(cid, target, damage, flags) if not (isMonster(target)) then return true end if (string.lower(getCreatureName(target)) == string.lower(getGlobalStorageValue(monster_name_backup))) then local percent = tonumber(getGlobalStorageValue(74813)) local rate = tonumber(getExperienceStage(getPlayerLevel(cid), getVocationInfo(getPlayerVocation(cid)).experienceMultiplier)) local amount = math.floor((getMonsterInfo(string.lower(getCreatureName(target))).experience)) local bonus = tonumber((amount / 100 * rate)*100) local final = math.floor(bonus / 100 * percent) doPlayerAddExpEx(cid, final) addLoot(getCreaturePosition(target), getCreatureName(target), {}) end return true end PS: Usando a função doPlayerAddExperience não estava recebendo nada de bonus, mas como a função que eu queria usar ja era a AddExpEx, assim fiz, e então ficou como eu queria, só o que vou tentar agora, mas vou tentar estudar para fazer solo e assim aprender, é colocar para que todos os monstros da mesma raça dêem o Bonus, ( Frost Dragon, Castle Frost Dragon, Donate Frost, etc.. ), inclusive vou usar as informações do seu mod Simple Task, que eu tambem uso, para pegar as funções e configs necessárias... Por hora me ajudou 500% ! Tu é o melhor cara, rep+ e topico encerrado já com a solução que eu usei somada a sua ajuda.
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.