Preciso de ajuda com esssa duvida também...
2
2.4k
1 ano depois...
info
Grupo: Campones
Registrado: 24/09/19
Posts: 1
Reputação: 0

25 de junho de 2024 às 18:46
info
Grupo: Campones
Registrado: 24/09/19
Posts: 1
Reputação: 0

Preciso de ajuda com esssa duvida também...
info
Grupo: Campones
Registrado: 03/10/15
Posts: 15
Reputação: 0
salve rapaziada queria saber se tem como aumenta a quantidade de mostro q aparece no map com dust "as poerinha para foge "
n ta aparecendo nada , parece um la de vem em quando .
se poder me ajuda fico muito grato . " VERSAO 12.91 "
Vou deixa 2 arquivo pra verr se ajuda , ver se tem alguma coisa a ver com o que to pedindo .
local createMonster = TalkAction("/m") function createMonster.onSay(player, words, param) if not player:getGroup():getAccess() or player:getAccountType() < ACCOUNT_TYPE_GOD then return true end -- Usage: "/m monstername, fiendish" for create a fiendish monster (/m rat, fiendish) -- Usage: "/m monstername, [1-5]" for create a influenced monster with specific level (/m rat, 2) if param == "" then player:sendCancelMessage("Monster name param required.") Spdlog.error("[createMonster.onSay] - Monster name param not found.") return false end local split = param:split(",") local monsterName = split[1] local monsterForge = nil if split[2] then split[2] = split[2]:gsub("^%s*(.-)$", "%1") --Trim left monsterForge = split[2] end -- Check dust level local setFiendish = false local setInfluenced if type(monsterForge) == "string" and monsterForge == "fiendish" then setFiendish = true end local influencedLevel if not setFiendish then influencedLevel = tonumber(monsterForge) end if influencedLevel and influencedLevel > 0 then if influencedLevel > 5 then player:sendCancelMessage("Invalid influenced level.") return false end setInfluenced = true end local position = player:getPosition() local monster = Game.createMonster(monsterName, position) if monster then monster:getPosition():sendMagicEffect(CONST_ME_TELEPORT) position:sendMagicEffect(CONST_ME_MAGIC_RED) if setFiendish then local monsterType = monster:getType() if monsterType and not monsterType:isForgeCreature() then player:sendCancelMessage("Only allowed monsters can be fiendish.") return false end monster:setFiendish(position, player) end if setInfluenced then local influencedMonster = Monster(ForgeMonster:pickInfluenced()) -- If it's reached the limit, we'll remove one to add the new one. if ForgeMonster:exceededMaxInfluencedMonsters() then if influencedMonster then Game.removeInfluencedMonster(influencedMonster:getId()) end end Game.addInfluencedMonster(monster) monster:setForgeStack(influencedLevel) end else player:sendCancelMessage("There is not enough room.") position:sendMagicEffect(CONST_ME_POFF) end return false end createMonster:separator(" ") createMonster:register()if not ForgeMonster then ForgeMonster = { timeLeftToChangeMonsters = {}, names = { [FORGE_NORMAL_MONSTER] = 'influenced', [FORGE_INFLUENCED_MONSTER] = 'influenced', [FORGE_FIENDISH_MONSTER] = 'fiendish' }, chanceToAppear = { fiendish = 80, influenced = 20 }, maxFiendish = 3, eventName = 'ForgeMonster' } end function getFiendishMinutesLeft(leftTime) local secLeft = leftTime - os.time() local desc = "This monster will stay fiendish for less than" if math.floor(secLeft / 60) >= 1 then desc = desc .. " " .. math.floor(secLeft / 60) .. " minutes and" secLeft = secLeft - math.floor(secLeft / 60) * 60 end if secLeft < 60 then desc = desc .. " " .. secLeft .. " seconds." end return desc end function ForgeMonster:getTimeLeftToChangeMonster(creature) local monster = Monster(creature) if monster then local leftTime = monster:getTimeToChangeFiendish() leftTime = leftTime or 0 return getFiendishMinutesLeft(leftTime) end return 0 end function ForgeMonster:onDeath(creature, corpse, killer, mostDamageKiller, unjustified, mostDamageUnjustified) if not creature then return true end local stack = creature:getForgeStack() if stack > 0 then local party = nil if killer then if killer:isPlayer() then party = killer:getParty() elseif killer:getMaster() and killer:getMaster():isPlayer() then party = killer:getMaster():getParty() end end if party and party:isSharedExperienceEnabled() then local killers = {} local partyMembers = party:getMembers() for pid, _ in pairs(creature:getDamageMap()) do local creatureKiller = Creature(pid) if creatureKiller and creatureKiller:isPlayer() then if not isInArray(killers, creatureKiller) and isInArray(partyMembers, creatureKiller) then table.insert(killers, creatureKiller) end end end for i = 1, #killers do local playerKiller = killers[i] if playerKiller then -- Each stack can multiplied from 1x to 3x -- Example monster with 5 stack and system randomize multiplier 3x, players will receive 15x dusts local amount = math.random(stack, 3 * stack) local totalDusts = playerKiller:getForgeDusts() local limitDusts = playerKiller:getForgeDustLevel() if totalDusts < limitDusts then if totalDusts + amount > limitDusts then playerKiller:addForgeDusts(limitDusts - totalDusts) else playerKiller:addForgeDusts(amount) end local actualTotalDusts = playerKiller:getForgeDusts() playerKiller:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received " .. amount .. " dust" .. " for the Exaltation Forge. You now have " .. actualTotalDusts .. " out of a maximum of " .. limitDusts .. " dusts.") else playerKiller:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You did not receive " .. amount .. " dust" .. " for the Exaltation Forge because you have already reached the maximum of " .. limitDusts .. " dust.") end end end else local playerKiller = nil if killer then if killer:isPlayer() then playerKiller = killer elseif killer:getMaster() and killer:getMaster():isPlayer() then playerKiller = killer:getMaster() end end if playerKiller then -- Each stack can multiplied from 1x to 3x -- Example monster with 5 stack and system randomize multiplier 3x, players will receive 15x dusts local amount = math.random(stack, 3 * stack) local totalDusts = playerKiller:getForgeDusts() local limitDusts = playerKiller:getForgeDustLevel() if totalDusts < limitDusts then if totalDusts + amount > limitDusts then playerKiller:addForgeDusts(limitDusts - totalDusts) else playerKiller:addForgeDusts(amount) end local actualTotalDusts = playerKiller:getForgeDusts() playerKiller:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You received " .. amount .. " dust" .. " for the Exaltation Forge. You now have " .. actualTotalDusts .. " out of a maximum of " .. limitDusts .. " dusts.") else playerKiller:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You did not receive " .. amount .. " dust" .. " for the Exaltation Forge because you have already reached the maximum of " .. limitDusts .. " dust.") end end end end return true end function ForgeMonster:onSpawn(creature) local monster = Monster(creature) if not monster then return false end local monsterType = monster:getType() if not monsterType then return false end local pos = monster:getPosition() local tile = Tile(pos) if tile and tile:hasFlag(TILESTATE_NOLOGOUT) then return false end Game.addInfluencedMonster(monster) end function ForgeMonster:pickFiendish() for _, cid in pairs(Game.getFiendishMonsters()) do if Monster(cid) then return cid end end return 0 end function ForgeMonster:pickInfluenced() for _, cid in pairs(Game.getInfluencedMonsters()) do if Monster(cid) then return cid end end return 0 end function ForgeMonster:pickClosestFiendish(creature) local player = Player(creature) if not player then return 0 end local creatures = {} local playerPosition = player:getPosition() for _, cid in pairs(Game.getFiendishMonsters()) do if (Monster(cid)) then creatures[#creatures + 1] = {cid = cid, distance = Monster(cid):getPosition():getDistance(playerPosition)} end end if (#creatures == 0) then return false end table.sort(creatures, function(a, b) return a.distance < b.distance end) return creatures[1].cid end function ForgeMonster:exceededMaxInfluencedMonsters() local totalMonsters = 0 for _, cid in pairs(Game.getInfluencedMonsters()) do if Monster(cid) then totalMonsters = totalMonsters + 1 end end local configMaxMonsters = configManager.getNumber(configKeys.FORGE_INFLUENCED_CREATURES_LIMIT) if totalMonsters >= configMaxMonsters then return true end return false end