Postado Agosto 21, 2020 4 anos Este é um post popular. Isso aqui eu to postando como uma extensão de um sistema de daily task que postei ontem, você pode ver ele aqui --> LINK É um script simples, q tem como função contar quantos de cada monstro tem no servidor, bem util pra quem vai fazer algum sistema de tasks, afinal, é bem complicado vc escolher quantos monstros alguém vai ter q matar, se vc nao sabe quantos tem, fica dificil mensurar a dificuldade de determinada task, então fiz esse script que cria um arquivo contando exatamente quantos de cada monstro tem xD Vou ensinar colocar ele, focando no meu sistema de daily tasks, mas caso queira usar pra outra finalidade, a vontade :} Como "instalar" o script: 1 - Vá em /data/globalevents/globalevents.xml e adicione a tag: <globalevent name="MonsterCount" type="startup" script="MonsterCount.lua" /> 2 - Em /data/globalevents/scripts crie o arquivo MonsterCount.lua e dentro dele escreva: Spoiler function onStartup() local spawn_xml = 'data/world/morenosv-spawn.xml' -- COLOCA O CAMINHO DO TEU SPAWN.XML local arquivonovo = '/data/lib/task/monster_count.lua' -- O LUGAR ONDE O ARQUIVO VAI SER CRIADO local abrir = io.open(spawn_xml, "r") local escrever = io.open(arquivonovo, "w+") local ler = abrir:read("*all") abrir:close() local monsters = {} for str_match in ler:gmatch('<monster name="(.-)"') do local ret_table = monsters[str_match] if ret_table then monsters[str_match] = ret_table+1 else monsters[str_match] = 1 end end escrever:write('MAX_DAILYMONSTERS = {\n') for monster, count in pairs(monsters) do escrever:write('["'..monster..'"] = '..count..',\n') end print("Contagem de monstros feita, pode encontra-lo em: "..arquivonovo) escrever:write('}') escrever:close() end E pronto! Com isso sempre que vc abrir o server ele vai contar quantos monstros tem, e atualiza-los se for o caso. Não precisa criar o arquivo .lua mas é preciso que o caminho(com as pastas) esteja feito, se quiser, pode mudar o diretorio tb, sem problemas. OBS: Mude o caminho pro seu spawn.xml!! +-+-+-+-+-+-+-+-+-+-+-+-+-+-+ DAQUI PRA BAIXO É SÓ PRA APLICAR NO MEU SISTEMA DE DAILY TASKS +-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Agora vou ensinar como aplicar isso no sistema de tasks que eu disse no inicio(Leia-o primeiro), é bem simples, vamos alterar o esquema, ao invés de escolhermos o numero maximo e minimo de cada task, vamos escolher a % max e minima, ex, as tasks easy que vao de 50 a 300 monstros, vai ficar como 50% e 300% da quantidade do monstro tal, Para entender: Se vc só tem 10 orcs no server, a task pode vir de 5 a 30 orcs, assim como se vc tiver 200, a task vem de 100 a 600 1. Pra colocar: Depois de vc ter colocado os scripts que mandei aí em cima, vc vai em /data/lib/lib.lua, e acrescente a linha: dofile('data/lib/task/monster_count.lua') *** Lembre-se de colocar essa linha ANTES dessa »»» dofile('data/lib/task/dailytask.lua') 2. Depois vá em data/lib/task/dailytask.lua e troque o arquivo por esse: Spoiler -- CONFIGS local easy = { minQTDE = 50, maxQTDE = 300, minEXP = 250000, maxEXP = 750000, prizesID = {22607, 22604}, prizesNAME = {"Boss Key", "Hunt Key"}, minQTDEPremios = 0, maxQTDEPremios = 2, PremioFixoID = 25377, PremioFixoNAME = "Gold Token", PremioFixoQTDE = 1, taskPoints = 1 } local medium = { minQTDE = 100, maxQTDE = 400, minEXP = 500000, maxEXP = 1500000, prizesID = {22607, 22604}, prizesNAME = {"Boss Key", "Hunt Key"}, minQTDEPremios = 1, maxQTDEPremios = 3, PremioFixoID = 25377, PremioFixoNAME = "Gold Token", PremioFixoQTDE = 2, taskPoints = 2 } local hard = { minQTDE = 150, maxQTDE = 500, minEXP = 1000000, maxEXP = 3000000, prizesID = {22607, 22604}, prizesNAME = {"Boss Key", "Hunt Key"}, minQTDEPremios = 2, maxQTDEPremios = 4, PremioFixoID = 25377, PremioFixoNAME = "Gold Token", PremioFixoQTDE = 3, taskPoints = 3 } local expert = { minQTDE = 200, maxQTDE = 600, minEXP = 2000000, maxEXP = 6000000, prizesID = {22607, 22604}, prizesNAME = {"Boss Key", "Hunt Key"}, minQTDEPremios = 3, maxQTDEPremios = 5, PremioFixoID = 25377, PremioFixoNAME = "Gold Token", PremioFixoQTDE = 4, taskPoints = 4 } DT_TasksEasy = {"Minotaur", "Minotaur Guard", "Minotaur Mage", "Minotaur Archer", "Larva", "Scarab", "Wyvern", "Rorc", "Wolf", "War Wolf", "Orc Berserker", "Orc Warrior", "Orc Shaman", "Orc Leader", "Orc", "Cyclops", "Orc Rider", "Slime", "Orc Warlord", "Water Elemental", "Quara Mantassin Scout", "Gargoyle", "Mummy", "Crypt Shambler", "Demon Skeleton", "Ghost", "Zombie", "Rotworm", "Carrion Worm", "Rotworm Queen", "Tortoise", "Thornback Tortoise", "Toad", "Crab", "Blood Crab", "Killer Caiman", "Ghoul", "Scorpion", "Banshee", "Fire Devil", "Amazon", "Valkyrie", "Witch", "Leaf Golem", "Forest Fury", "Troll", "Goblin", "Troll Champion", "Goblin Scavanger", "Goblin Assassin", "Corym Vanguard", "Corym Skirmisher", "Corym Charlatan", "Ghost Wolf", "Gloom Wolf", "Elf", "Elf Arcanist", "Elf Scout", "Firestarter", "Bat", "Swamp Troll", "Stonerefiner", "Tarantula", "Dragon Hatchling", "Nomad", "Scorpion", "Dwarf", "Dwarf Soldier", "Dwarf Guard", "Kongra", "Sibang", "Merlkin", "Gazer", "Bonelord", "Elder Bonelord", "Braindeath"} DT_TasksMedium = {"Vicious Squire", "Vile Grandmaster", "Renegade Knight", "Cult Believer", "Cult Enforcer", "Cult Scholar", "Ghastly Dragon", "Lizard Chosen", "Giant Spider", "Tarantula", "Bog Raider", "Earth Elemental", "Enfeebled Silencer", "Weakened Frazzlemaw", "Noble Lion", "Ancient Scarab", "Roaring Lion", "Souleater", "Mutated Bat", "Mutated Rat", "Mutated Tiger", "Warlock", "Yielothax", "Killer Caiman", "Vampire Bridge", "Vampire Viscount", "Vampire", "Bonebeast", "Necromancer", "Quara Predator", "Quara Constrictor", "Quara Mantassin", "Quara Pincher", "Quara Hydromancer", "Quara Predator Scout", "Quara Constrictor Scout", "Quara Mantassin Scout", "Quara Pincher Scout", "Quara Hydromancer Scout", "Wyrm", "Behemoth", "Nightstalker", "Giant Spider", "Energy Elemental", "Stampor", "Bonebeast", "Orc Cult Inquisitor", "Orc Cult Minion", "Orc Cultist", "Orc Cult Priest", "Orc Cult Fanatic", "Lost Husher", "Lost Basher", "Lost Thrower", "enslaved Dwarf", "Dragon", "Dragon Lord", "Barkless Devotee", "Barkless Fanatic", "Massive Water Elemental", "Minotaur Cult Follower", "Minotaur Cult Prophet", "Minotaur Cult Zealot" } DT_TasksHard = {"Vicious Squire", "Vile Grandmaster", "Renegade Knight", "Hero", "Necromancer", "Lich", "Werebear", "Wereboar", "Werebadger", "Werewolf", "Askarak Demon", "Shaburak Demon", "Wyrm", "Elder Wyrm", "Vampire Viscount", "Blood Priest", "Shadow Pupil", "White Shade", "Vampire", "Putrid Mummy", "Giant Spider", "Fury", "Massive Fire Elemental", "Dragonling", "Hellfire Fighter", "Diabolic Imp", "Hellhound", "Infernalist", "Behemoth", "Dawnfire Asura", "Midnight Asura", "Hellspawn", "Plaguesmith", "Medusa", "Serpent Spawn", "Hydra", "Dark Faun", "Boogy", "Twisted Pooka", "Draken Elite", "Draken Warmaster", "Draken Spellweaver", "Draken Abomination", "Lizard Legionnaire", "Lizard Dragon Priest", "Lizard High Guard", "Lizard Chosen", "Ghastly Dragon"} DT_TasksExpert = {"Guzzlemaw", "Sight of Surrender", "Terrorsleep", "Silencer", "Dark Torturer", "Demon Outcast", "Betrayed Wraith", "Plaguesmith", "Blightwalker", "Nightmare", "Juggernault", "Hellhound", "Crazed Winter Rearguard", "Crazed Winter Vanguard", "Crazed Summer Rearguard", "Crazed Summer Vanguard", "Spiky Carnivor", "Lumbering Carnivor", "Menacing Carnivor", "Vexclaw", "Grimeleech", "Demon", "Hellflayer", "Hellfire Fighter", "Fury", "Undead Dragon", "Phantasm", "Nightmare", "Defiler", "Plaguesmith", "Spectre", "Hand of Cursed Fate", "Undead Elite Gladiator", "Skeleton Elite Warrior", "Grim Reaper", "Gravedigger", "Floating Servant", "Lava Luker Attendant", "Cobra Assassin", "Cobra Vizier", "Cobra Scout", "Dread Intruder", "Reality Reaver", "Sparkion", "Breach Brood", "Choking Fear", "Retching Horror", "Animated Feather", "Biting Book", "Brain Squid", "Burning Book", "Cursed Book", "Energetic Book", "Energuardian of Tales", "Flying Book", "Guardian of Tales", "Icecold Book", "Ink Blob", "Knowledge Elemental", "Rage Squid", "Squid Warden", "Lost Soul", "Falcon Knight", "Falcon Paladin"} -- SCRIPT DT_STORAGES = { PONTOS = 367643975, EXPERT = 367643974, HARD = 367643973, MEDIUM = 367643972, EASY = 367643971, HAVE_STARTED = 367643970, } --RESETAR AS TASKS DO DIA ANTERIOR for i = 1, 6 do db.query('DELETE FROM `player_storage` WHERE `player_storage`.`key` = '.. 367643969+i ..'') end -- EASY (100-) DT_CHOSENTASK_EASY = DT_TasksEasy[math.random(#DT_TasksEasy)] DT_NEEDKILL_EASY = math.ceil(math.random(easy.minQTDE, easy.maxQTDE)*MAX_DAILYMONSTERS[DT_CHOSENTASK_EASY]/100) DT_EXPPRIZE_EASY = math.random(easy.minEXP, easy.maxEXP) DT_PRIZEID_EASY = easy.prizesID DT_PRIZENAME_EASY = easy.prizesNAME DT_PREMIOQTDE_EASY = math.random(easy.minQTDEPremios, easy.maxQTDEPremios) DT_PREMIOFIXO_ID_EASY = easy.PremioFixoID DT_PREMIOFIXO_NAME_EASY = easy.PremioFixoNAME DT_PREMIOFIXO_QTDE_EASY = easy.PremioFixoQTDE DT_TASKPOINTS_EASY = easy.taskPoints -- MEDIUM (150-) DT_CHOSENTASK_MEDIUM = DT_TasksMedium[math.random(#DT_TasksMedium)] DT_NEEDKILL_MEDIUM = math.ceil(math.random(medium.minQTDE, medium.maxQTDE)*MAX_DAILYMONSTERS[DT_CHOSENTASK_MEDIUM]/100) DT_EXPPRIZE_MEDIUM = math.random(medium.minEXP, medium.maxEXP) DT_PRIZEID_MEDIUM = medium.prizesID DT_PRIZENAME_MEDIUM = medium.prizesNAME DT_PREMIOQTDE_MEDIUM = math.random(medium.minQTDEPremios, medium.maxQTDEPremios) DT_PREMIOFIXO_ID_MEDIUM = medium.PremioFixoID DT_PREMIOFIXO_NAME_MEDIUM = medium.PremioFixoNAME DT_PREMIOFIXO_QTDE_MEDIUM = medium.PremioFixoQTDE DT_TASKPOINTS_MEDIUM = medium.taskPoints --HARD (200-) DT_CHOSENTASK_HARD = DT_TasksHard[math.random(#DT_TasksHard)] DT_NEEDKILL_HARD = math.ceil(math.random(hard.minQTDE, hard.maxQTDE)*MAX_DAILYMONSTERS[DT_CHOSENTASK_HARD]/100) DT_EXPPRIZE_HARD = math.random(hard.minEXP, hard.maxEXP) DT_PRIZEID_HARD = hard.prizesID DT_PRIZENAME_HARD = hard.prizesNAME DT_PREMIOQTDE_HARD = math.random(hard.minQTDEPremios, hard.maxQTDEPremios) DT_PREMIOFIXO_ID_HARD = hard.PremioFixoID DT_PREMIOFIXO_NAME_HARD = hard.PremioFixoNAME DT_PREMIOFIXO_QTDE_HARD = hard.PremioFixoQTDE DT_TASKPOINTS_HARD = hard.taskPoints --EXPERT (200+) DT_CHOSENTASK_EXPERT = DT_TasksExpert[math.random(#DT_TasksExpert)] DT_NEEDKILL_EXPERT = math.ceil(math.random(expert.minQTDE, expert.maxQTDE)*MAX_DAILYMONSTERS[DT_CHOSENTASK_EXPERT]/100) DT_EXPPRIZE_EXPERT = math.random(expert.minEXP, expert.maxEXP) DT_PRIZEID_EXPERT = expert.prizesID DT_PRIZENAME_EXPERT = expert.prizesNAME DT_PREMIOQTDE_EXPERT = math.random(expert.minQTDEPremios, expert.maxQTDEPremios) DT_PREMIOFIXO_ID_EXPERT = expert.PremioFixoID DT_PREMIOFIXO_NAME_EXPERT = expert.PremioFixoNAME DT_PREMIOFIXO_QTDE_EXPERT = expert.PremioFixoQTDE DT_TASKPOINTS_EXPERT = expert.taskPoints -- FUNÇÃO PRA PEGAR OS NOMES DOS ITEM function getAllTableText(aa, bb, cc) local tablecheck = aa if not tablecheck then return false end local lang = bb local ponto = "" if not lang then lang = "and" end if cc then ponto = "." end local text = "" for i = 1, #tablecheck do if i == 1 then text = tablecheck[i] elseif i == #tablecheck then text = text .." "..lang.." "..tablecheck[i]..""..ponto.."" else text = text ..", "..tablecheck[i] end end return text end Imagens de amostra: Na distrô: O arquivo criado, (note q ja vem em tabela, prontinho pra usar):
Postado Agosto 24, 2020 4 anos No remeres tem como verificar a quantidade total de monstros e acho que pelo spawns.xml da pra ver usando notepad++, mas é um trabalho manual chatinho. Esse sistema vem a lista completa e organizada, gostei (seria mt útil no Empire @xWhiteWolf), muito obrigado!
Postado Agosto 24, 2020 4 anos Autor 4 horas atrás, Nolis disse: No remeres tem como verificar a quantidade total de monstros e acho que pelo spawns.xml da pra ver usando notepad++, mas é um trabalho manual chatinho. Esse sistema vem a lista completa e organizada, gostei (seria mt útil no Empire @xWhiteWolf), muito obrigado! Então, eu comecei a contar 1 a 1, mas ficava um trabalho inviavel kk ai fiz o sistema de task bem "restrito", poucos monstros, dps q fiz esse sistema, automatizei, e agora TODOS os monstros do server estão no meu sistema de task, e proporcional a quantidade disponiveis no sv xD
Postado Agosto 26, 2020 4 anos On 8/24/2020 at 10:50 AM, Nolis said: Esse sistema vem a lista completa e organizada, gostei (seria mt útil no Empire @xWhiteWolf), muito obrigado! @Nolis Não só ja tem isso no Empire (há alguns anos), mas o script é incrivelmente similar (pra não dizer igual). Na época foi o Breno que (fez/copiou de algum lugar) e eu adaptei ele pra extrair os monstros ordenados por nome crescente: Código (em talkaction) Spoiler local xml_monster_dir = 'data/world/empire-spawn.xml' -- Diretório do arquivo onde contém os monstros. local new_file_name = 'monster_count.txt' function onSay(player, words, param) if not player:getGroup():getAccess() then return true end if player:getAccountType() < ACCOUNT_TYPE_GOD then return false end logCommand(player, words, param) local open_file = io.open(xml_monster_dir, "r") local writing_file = io.open(new_file_name, "w+") local file_read = open_file:read("*all") open_file:close() local monsters = {} for str_match in file_read:gmatch('<monster name="(.-)"') do local ret_table = monsters[str_match] if ret_table then monsters[str_match] = ret_table+1 else monsters[str_match] = 1 end end writing_file:write('--- Total de Monstros no Servidor ---\n') for monster, count in pairsByKeys(monsters) do --print(monster, count) writing_file:write(monster..' - '..count..'\n') end writing_file:close() return false end Lista extraída: Spoiler --- Total de Monstros no Servidor --- Amazon - 112 Amazon Conjurer - 17 Amazon Servant - 54 Ancient Scarab - 17 Asassin - 7 Assassin - 40 Badger - 9 Bandit - 55 Banshee - 31 Barbarian Bloodwalker - 17 Barbarian Brutetamer - 11 Barbarian Headsplitter - 21 Barbarian Skullhunter - 14 Bat - 84 Bear - 32 Behemoth - 63 Beholder - 25 Betrayed Wraith - 12 Black Knight - 24 Blightwalker - 31 Blood Crab - 6 Blue Butterfly - 8 Blue Djinn - 19 Boar - 26 Bog Frog - 6 Bog Raider - 18 Bone Beast - 9 Bonebeast - 20 Bug - 141 Butterfly - 16 Carniphila - 3 Carrion Worm - 136 Cat - 1 Cave Rat - 42 Centipede - 35 Chicken - 27 Clay Guardian - 4 Cobra - 22 Coral Frog - 1 Corym Charlatan - 42 Corym Skirmisher - 9 Corym Vanguard - 5 Crab - 18 Crawler - 11 Crocodile - 32 Crypt Shambler - 135 Crystal Spider - 7 Cyclops - 213 Cyclops Drone - 120 Cyclops Smith - 77 Dark Apprentice - 30 Dark Magician - 40 Dark Monk - 37 Dark Torturer - 31 Death Blob - 27 Deer - 114 Defiler - 17 Demon - 60 Demon (Goblin) - 25 Demon Skeleton - 231 Destroyer - 48 Diabolic Imp - 20 Dog - 5 Dragon - 230 Dragon Hatchling - 112 Dragon Lord - 164 Dragon Lord Hatchling - 50 Dragonling - 9 Draken Abomination - 9 Draken Elite - 18 Draken Spellweaver - 25 Draken Warmaster - 27 Draptor - 3 Drillworm - 13 Dromedary - 13 Dwarf - 56 Dwarf Geomancer - 21 Dwarf Guard - 44 Dwarf Miner - 8 Dwarf Soldier - 49 Dworc Fleshhunter - 11 Dworc Venomsniper - 8 Dworc Voodoomaster - 7 Earth Elemental - 36 Efreet - 7 Elder Beholder - 10 Elder Mummy - 4 Elder Wyrm - 31 Elephant - 10 Elf - 85 Elf Arcanist - 31 Elf Scout - 64 Emerald Damselfly - 44 Energy Elemental - 32 Eye of the Seven - 18 Filth Toad - 4 Fire Devil - 35 Fire Elemental - 160 Flamethrower - 14 Flamingo - 3 Forest Fury - 10 Frost Dragon - 112 Frost Dragon Hatchling - 65 Frost Giant - 20 Frost Giantess - 6 Fury - 19 Gargoyle - 34 Ghastly Dragon - 25 Ghost - 60 Ghoul - 332 Giant Spider - 80 Goblin - 35 Goblin Assassin - 7 Goblin Scavenger - 13 Gozzler - 31 Green Djinn - 17 Grim Reaper - 39 Hand of Cursed Fate - 10 Hellfire Fighter - 54 Hellhound - 7 Hellspawn - 5 Hero - 121 Horse - 4 Horse1 - 4 Hunter - 42 Husky - 2 Hyaena - 29 Hydra - 33 Ice Golem - 3 Ice Witch - 22 Infernalist - 30 Insect Swarm - 27 Insectoid Scout - 4 Insectoid Worker - 9 Island Troll - 15 Juggernaut - 14 Killer Caiman - 2 Kongra - 36 Lady Bug - 19 Lancer Beetle - 25 Larva - 257 Leaf Golem - 16 Lich - 54 Lion - 4 Lizard Chosen - 56 Lizard Dragon Priest - 26 Lizard High Guard - 50 Lizard Legionnaire - 30 Lizard Noble - 2 Lizard Sentinel - 48 Lizard Snakecharmer - 23 Lizard Templar - 38 Lizard Zaogun - 8 Lost Soul - 38 Magicthrower - 14 Mammoth - 2 Marid - 10 Marsh Stalker - 15 Massacre - 1 Massive Earth Elemental - 2 Massive Energy Elemental - 14 Massive Fire Elemental - 34 Medusa - 4 Mercury Blob - 25 Merlkin - 5 Minotaur - 40 Minotaur Archer - 23 Minotaur Guard - 46 Minotaur Mage - 9 Monk - 14 Mummy - 153 Mutated Bat - 9 Mutated Rat - 11 Mutated Tiger - 2 Necromancer - 106 Necropharus - 1 Nightmare - 48 Noble Lion - 8 Nomad - 41 Orc - 101 Orc Berserker - 83 Orc Leader - 40 Orc Rider - 14 Orc Shaman - 48 Orc Spearman - 64 Orc Warlord - 20 Orc Warrior - 63 Orchid Frog - 1 Parrot - 2 Penguin - 8 Phantasm - 15 Pig - 9 Pink Butterfly - 4 Plaguesmith - 54 Poacher - 5 Poison Spider - 110 Polar Bear - 15 Poodle - 1 Priestess - 2 Primitive - 1 Quara Constrictor - 53 Quara Constrictor Scout - 8 Quara Hydromancer - 46 Quara Hydromancer Scout - 1 Quara Mantassin - 47 Quara Mantassin Scout - 7 Quara Pincher - 35 Quara Pincher Scout - 1 Quara Predator - 48 Quara Predator Scout - 3 Rabbit - 81 Rat - 92 Red Butterfly - 43 Roaring Lion - 22 Rotworm - 278 Salamander - 23 Sandcrawler - 118 Scarab - 197 Scorpion - 69 Sea Serpent - 10 Seagull - 15 Serpent Spawn - 30 Sheep - 24 Sibang - 29 Silver Rabbit - 5 Skeleton - 173 Skeleton Warrior - 45 Skunk - 7 Slime - 99 Smuggler - 15 Snake - 271 Son of Verminor - 19 Souleater - 3 Spectre - 26 Spider - 214 Spit Nettle - 10 Squirrel - 9 Stalker - 14 Stampor - 21 Stone Golem - 60 Swamp Troll - 6 Swampling - 2 Tarantula - 50 Terramite - 33 Terror Bird - 8 Thornback Tortoise - 6 Tiger - 14 Tomb Servant - 1 Tortoise - 41 Troll - 69 Undead Dragon - 8 Ushuriel - 1 Valkyrie - 74 Valkyrie Guard - 32 Valkyrie High Guard - 26 Vampire - 139 Vampire Bride - 25 Vampire Viscount - 6 Wailing Widow - 10 War Golem - 9 War wolf - 22 Warlock - 51 Wasp - 116 Waspoid - 4 Water Buffalo - 5 Water Elemental - 12 Werewolf - 24 White Deer - 6 White Shade - 6 Wiggler - 10 Wild Warrior - 73 Wilting Leaf Golem - 6 Winter wolf - 40 Wisp - 20 Witch - 42 Wolf - 273 Worker Golem - 2 Wyrm - 23 Wyvern - 42 Yellow Butterfly - 15 Zombie - 38 Obs: no meu for eu uso a função pairsByKeys para iterar, vc precisa adicionar isso aqui na sua lib: Spoiler function pairsByKeys(t, f) local a = {} for n in pairs(t) do table.insert(a, n) end table.sort(a, f) local i = 0 -- iterator variable local iter = function () -- iterator function i = i + 1 if a[i] == nil then return nil else return a[i], t[a[i]] end end return iter end Quanto ao tópico, interessante a ideia de fazer onStartup mas isso pode acabar fazendo seu servidor levar mais tempo pra abrir que o normal, por talkaction é mais 'controlado' até porque vc nao vai editar a quantia de monstros no jogo em todo startup então não faz tanto sentido ficar atualizando todo dia. Editado Agosto 26, 2020 4 anos por xWhiteWolf (veja o histórico de edições)
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.