Postado Agosto 26, 2020 4 anos Autor 2 horas atrás, xWhiteWolf disse: @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) Ocultar conteúdo 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: Mostrar conteúdo oculto --- 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: Mostrar conteúdo oculto 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. Eu "adaptei" de uma talkaction, q provavelmente foi copiada desse ai, pq é MUITO parecido kk Quanto a essa questao de fazer levar mais tempo pra abrir, eu nao tinha parado pra pensar nisso, tipo, meu map é pequeno, tem 12k de respawn, entao n pesa muito, ñ consigo ver diferente, mas um bom ponto, vou avaliar e mudar ? MEUS POSTS: [Source] Sistema Anti-PVP ~~ PvP on/off por comando [CreatureScript] Sugestão de balanceamento ~~ Uma pequena sugestão de balanceamento das vocations ? [NPC] Daily Task ~~ Daily Task com 4 opções diarias Contador de Monstros ~~Sistema pra contar quantos monstros tem no sv, e uma melhoria pro sistema de Daily Tasks Calma, por enquanto é só, e em breve mais coisas ;} SE AJUDEI, DÁ O REP+, ESQUECE NÃO, VLW BB
Postado Agosto 26, 2020 4 anos @xWhiteWolf interessante, obrigado por compartilhar, agrega conteúdo ao tópico ? Ot Design: https://discord.gg/VgtVRNmCD7
Postado Setembro 22, 2020 4 anos @Mor3nao [Error - GlobalEvent Interface] data/globalevents/scripts/PH/MonsterCount.lua:onStartup Description: data/globalevents/scripts/PH/MonsterCount.lua:21: attempt to index local 'escrever' (a nil value) stack traceback: data/globalevents/scripts/PH/MonsterCount.lua:21: in function <data/globalevents/scripts/PH/MonsterCount.lua:1>
Postado Setembro 22, 2020 4 anos Autor 4 minutos atrás, diarmaint disse: @Mor3nao [Error - GlobalEvent Interface] data/globalevents/scripts/PH/MonsterCount.lua:onStartup Description: data/globalevents/scripts/PH/MonsterCount.lua:21: attempt to index local 'escrever' (a nil value) stack traceback: data/globalevents/scripts/PH/MonsterCount.lua:21: in function <data/globalevents/scripts/PH/MonsterCount.lua:1> Existe a pasta lib/task? MEUS POSTS: [Source] Sistema Anti-PVP ~~ PvP on/off por comando [CreatureScript] Sugestão de balanceamento ~~ Uma pequena sugestão de balanceamento das vocations ? [NPC] Daily Task ~~ Daily Task com 4 opções diarias Contador de Monstros ~~Sistema pra contar quantos monstros tem no sv, e uma melhoria pro sistema de Daily Tasks Calma, por enquanto é só, e em breve mais coisas ;} SE AJUDEI, DÁ O REP+, ESQUECE NÃO, VLW BB
Postado Setembro 22, 2020 4 anos 1 hora atrás, Mor3nao disse: Existe a pasta lib/task? Humm, vou começar pelo outro post então, iniciei nesse. volto depois pra dar o feedback!
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.