Pesquisar na Comunidade
Mostrando resultados para as tags ''monster''.
Encontrado 92 registros
-
Olá, preciso de ajuda para criar um monstro. Ele seria um monstro que dropa gold no chão toda vez que toma um hit ao invés de sangrar. 99% de dropar 0-10 gold coin 01% de dropar 0-5 platinum coin Por exemplo um goblin, toda vez que ele apanhar, vai "sangrar" gold no chão e além disso ele droparia outros loots se morrer. Muito obrigado ------------------------ English ------------------------------------- Hello, I need help creating a monster. He would be a monster that drops gold on the ground every time he takes a hit instead of bleeding. 99% chance to drop 0-10 gold coin 01% chance to drop 0-5 platinum coin For example a goblin, every time he gets hit, he will "bleed" gold on the ground and in addition he would drop other loots if he dies. Thanks.
-
Get Monsters Ferramenta simples para pegar monstros do servidor e adicionar no RME. DOWNLOAD GetMonsters.rar SOURCES GetMonsters-master.zip Créditos: https://github.com/ottools/GetMonsters GetMonsters.rar GetMonsters-master.zip
-
Opa boa tarde galera, hoje venho trazer a vocês o sistema de evento igual ao do OtPokemon, no qual se define um horario, e sorteia um pokemon para voce matar, quem matar mais pokemons ganha o evento. OBS: Pokemons na tabela podem ser alterados, e os premios também, vamos la. Vá em data/globalevents e crie um arquivo lua com nome Monster Hunter.lua/ depois disso copie o código abaixo e cole no arquivo e salve. local monsters = { "Rattata","Caterpie","Metapod","Raticate","Charmander","Charmeleon","Butterfree","Beautifly","Squirtle","Wartortle","Poliwag","Cubone","Marowak","Diglett","Dugtrio","Sandshrew","Mareep","Beedril","Magnemite","Pikachu","Voltorb","Electrode","Elekid","Gastly","Haunter","Geodude","Machoke","Graveler","Pidgey","Pidgeotto","Weepinbell","Oddish","Gloom","Golbat","Zubat","Drowzee","Abra","Machop","Spearow","Nidoran Female","Nidoran Male","Nidorino","Nidorina","Bulbasaur","Ivysaur","Weedle","Kakuna","Eevee"} -- Monstros que podem ser sorteados local time_min, max = 10, 30 -- Em minutos local premios, gold = {{9020, 1}, {2152, 25}}, 10000 -- {id do item, quantidade} que o jogador ganha e quantia de gold function winMonsterEvent() local max_sto, winner = 0, 0 local monster = getGlobalStorageValue(90904488) for _, pid in pairs(getPlayersOnline()) do local sto = getPlayerStorageValue(pid, 90904487) if sto > max_sto then max_sto = sto winner = pid end end if isPlayer(winner) then local artigo = getPlayerSex(winner) == 0 and "[Derrote o Pokémon]: A jogadora" or "[Derrote o Pokémon]: O jogador" doBroadcastMessage(artigo.." "..getCreatureName(winner).." derrotou "..getPlayerStorageValue(winner, 90904487).." "..monster.."s e venceu o evento. Parabéns!",25) for _, prize in pairs(premios) do doPlayerAddItem(winner, prize[1], prize[2]) end doPlayerAddMoney(winner, gold) else doBroadcastMessage("[Derrote o Pokémon]: O evento terminou e não houve nenhum vencedor.") end setGlobalStorageValue(90904488, 0) end function onTimer() local random = math.random(1, #monsters) local time = math.random(time_min, max) for _, pid in pairs(getPlayersOnline()) do doPlayerSetStorageValue(pid, 90904487, 0) end setGlobalStorageValue(90904488, monsters[random]) doBroadcastMessage("[Derrote o Pokémon]: O evento começou e durará "..time.." minutos. O pokémon sorteado foi "..monsters[random].."! Quem conseguir derrotar mais "..monsters[random].."'s até o fim será o vencedor!",25) addEvent(winMonsterEvent, time*1000*60) return true end Feito isso vá em globalevents.xml e adicione essa tag. <globalevent name="Monster Hunter Event1" time="10:00" event="script" value="Monster Hunter.lua"/> Beleza, feito isso salve e de reload em seu servidor, que ja estara funcionando. Perguntas: "Ah se eu quiser por mais horarios? simples vá na tag copie ela e cole de novo, onde está "Monster Hunter Event1" time="10:00" mude para "Monster Hunter Event2" time="12:00"...lembrando sempre que voce adicionar 1 novo evento o horario também deve mudar. É isso obrigado a todos e até mais. Créditos: PokeZRing (de onde foi retirado) OTP (criador, me corrija caso esteja errado) Eu ( por disponibilizar)
-
Olá senhores, espero estar na área certa. Existe a possibilidade de criar um script para monstros que sigam Waypoints tipo players usando bot? Por exemplo, um monstro que ande de Thais até Carlin, utilizando comandos de Waypoints, subindo e descendo escadas, holes etc...
-
Galera, alguem tem uma ideia de uma função ser executada quando o monstro perder o target? pensei em colocar onCombat if getCreatureName(target) ~= nil thenprint ("tem target")elseif getCreatureName(target) == nil thenprint ("nao tem target")end tentei colocar desse jeito acima... quando o monstro tem target ele printa certinho "tem target", mas quando o monstro perde o target ele não printa nada.. alguem sabe como posso fazer?
-
galera, é uma função da source, queria saber adicionar mais monstros nela, como faço? if (getName() == "Rat" && player && ( !(player->getStorage(100,value)) || check != value ) ) return false; queria adicionar mais monster por exemplo: if (getName() == "Rat" && player && ( !(player->getStorage(100,value)) || check != value ) ) or (getName() == "Cave Rat" && player && ( !(player->getStorage(100,value)) || check != value ) ) return false; mas da erro dessa forma, qual é o jeito certo?
-
Queria recitar algo, eu coloquei mega abosol e mega steelix no meu poketibia e quando digito o comando para pegar eles (/cb nome do poke) paraçere so que quando usa a ball para que eles saiam ele não sai ficam travados alguém sabe o que e? pois pesquei em e não deu em nada
-
monster Funções e Utilidades para Monsters
um tópico no fórum postou SamueLGuedes NPCs, monsters e raids
Mostrarei aqui, Utilidades e funções para Monsters de Tibia. Exemplo de Script para Monster Looktypes Utilizaveis Efeitos de Spells que podem ser utilizados Shoots para Ataques em Distancias Flags para Monsters Cores para Monsters Loots Loots em Bags Loots com UniqueID e ActionID -
Informações Bruce The Fighter é um NPC, mas também pode lutar contra outros jogadores, servindo como um ótimo boss de quests; A luta é inicada com um diálogo; Ele tem duas formas: normal e evoluída, mudando da primeira pra segunda quando chegar a uma porcentagem de vida configurável; Quando ele é derrotado, adiciona um storage (para ser usado como você quiser), itens, dinheiro e experiência; Também pode ser configurado se ele irá lutar novamente com o mesmo jogador, tendo também uma opção de exhaust; Quase totalmente configurável; São vários arquivos, então acompanhe atentamente o passo-a-passo da configuração/instalação. Códigos creaturescripts/scripts/monster1.lua creaturescripts/scripts/monster2.lua npcs/Bruce The Fighter.xml npcs/scripts/challenger.lua monsters/challenger.xml monsters/challenger_evolved.xml TAGs creaturescripts.xml <event type="statschange" name="Monster1" event="script" value="monster1.lua"/> <event type="statschange" name="Monster2" event="script" value="monster2.lua"/> monsters/monsters.xml <monster name="Bruce The Fighter" file="Meus Monstros/challenger.xml"/> <monster name="Bruce The Fighter_evolved" file="Meus Monstros/challenger_evolved.xml"/> Configuração/Instalação Na parte dos códigos, está indicado o lugar e o nome que o arquivo deverá ter. Não troque; No arquivo monsters1.lua, você pode decidir a porcentagem da vida na qual o Bruce trocará para a forma evoluída. A forma evoluída virá com essa mesma porcentagem de vida; No arquivo monsters2.lua, configure a experiência (exp), o dinheiro (money), o item e a quantidade (count) desse item que o jogador ganhará quando derrotar o Bruce. Também deve-se configurar o tempo de exhaust, como indicado no arquivo; Em Bruce The Fighter.xml, você pode definir as falas, o nome e a aparência inicial do Bruce (se mudar, não esqueça de trocar nos monstros também); No arquivo challenger.lua, escolha se o Bruce irá duelar novamente com o mesmo jogador; Nos arquivos challenger.xml e challenger_evolved.xml você definirá a força, vida e muitas outras coisas do Bruce (se tiver mudado a aparência ou o nome, deve mudar aqui também). Caso não saiba mexer nos monstros, procure um tutorial na seção de tutoriais de scripting; Ao mudar algo do Bruce, verifique o padrão e preste bastante atenção para não esquecer nenhuma parte; O storage que será mudado ao derrotá-lo é 69507, tendo valor inicial -1 (não derrotou nenhuma vez) e aumentando +1 para cada vez que o Bruce é derrotado (0, 1, 2, ...). Recomendo que o Bruce esteja em uma sala onde somente um jogador de cada vez possa entrar.
- 6 respostas
-
- creaturescript
- monster
-
(e 2 mais)
Tags:
-
Eai galera tudo bem? Gostaria de sanar uma pequena dúvida, já procurei aqui no fórum e na net e não encontrei. Pois bem a pergunta é. Como faço para mudar o effect de Race, por exemplo a raça blood está com sangue vermelho, a raça venom está com o sangue verde. Gostaria de saber onde eu troco os effects. Porque quando se bate em um monster venom aparece uma effect que não deveria aparecer. Desde já obrigado!!!
-
Coral Frog Vida: 60 Exp: 20/30 Habilidades: Corpo a corpo (0-24). Dano Estimado: 24 hp / turno Neutro Contra: Físico Sagrado Morte Energia Terra Fraco Contra: Fogo História Os sapos aparecem em diferentes formas, cores e tamanhos. O mais comum, é o verde, que pode ser encontrado em quase todos os lagos ou qualquer outro pedaço de água contanto que o clima não seja muito frio. Enquanto o verde é inofensivo e só ameaça moscas e outros insetos, a flora e a fauna agressiva no sul criou várias subespécies de sapos. Distinguíveis por cores chamativas que usam para alertar seus oponentes, eles possuem uma saliva suave mas irritantemente venenosa. Geralmente são inofensivos mesmo se aparecerem em grandes números, mas aventureiros feridos que ficam sem recursos enfrentarão uma verdadeira ameaça quando encontrarem um local cheio de pequenos anfíbios. Download Data/Monster/Frogs/ <?xml version="1.0" encoding="utf-8"?><monster name="Coral Frog" namedescription="a coral frog" race="blood" experience="20" speed="200" manacost="305"> <health now="60" max="60" /> <look type="226" head="114" body="98" legs="97" feet="114" corpse="6079" /> <targetchange interval="4000" chance="0" /> <flags> <flag summonable="1" /> <flag attackable="1" /> <flag hostile="1" /> <flag illusionable="0" /> <flag convinceable="0" /> <flag pushable="1" /> <flag canpushitems="0" /> <flag canpushcreatures="0" /> <flag staticattack="90" /> <flag targetdistance="1" /> <flag runonhealth="0" /> </flags> <attacks> <attack name="melee" interval="2000" skill="10" attack="24" /> </attacks> <defenses armor="5" defense="5" /> <voices interval="5000" chance="10"> <voice sentence="Ribbit!" /> <voice sentence="Ribbit! Ribbit!" /> </voices> <elements> <element icePercent="10" /> <element firePercent="-10" /> </elements> <loot> <item id="2148" countmax="10" chance="76780" /><!-- gold coin --> <item id="3976" chance="13510" /><!-- worm --> </loot></monster> Data/Monster/Monsters.xml <monster name="Coral Frog" file="Frogs/coral frog.xml" /> Ou, baixe o arquivo: coral frog.xml coral frog.xml
-
Bog Frog Vida: 25 Exp: 0/0 Habilidades: Nenhuma Dano Estimado: 0 hp / turno Neutro Contra: Físico Sagrado Morte Energia Terra Fogo Gelo História Os Bog Frogs surgiram com a ascensão do templo de Bog em Shadowthorn. Anteriormente, animais normais, essas pequenas criaturas ferozes se transformaram em uma abominação do pântano. Eles são rápidos e feios, mas não deve representar uma ameaça muito maior do que as rãs normais. Geralmente aparecem em grupos nas imediações de pântanos e lagos. Download Data/Monster/Frogs/ <?xml version="1.0" encoding="utf-8"?><monster name="Bog Frog" namedescription="a bog frog" race="blood" experience="0" speed="200" manacost="305"> <health now="25" max="25" /> <look type="412" corpse="6079" /> <targetchange interval="4000" chance="0" /> <flags> <flag summonable="0" /> <flag attackable="1" /> <flag hostile="1" /> <flag illusionable="0" /> <flag convinceable="0" /> <flag pushable="0" /> <flag canpushitems="0" /> <flag canpushcreatures="0" /> <flag staticattack="90" /> <flag targetdistance="1" /> <flag runonhealth="25" /> </flags></monster> Data/Monster/Monsters.xml <monster name="Bog Frog" file="Frogs/bog frog.xml" /> Ou, baixe o arquivo: bog frog.xml bog frog.xml
-
Azure Frog Vida: 60 Exp: 20/30 Habilidades: Corpo a corpo (0-24) Dano Estimado: 24 hp por turno Forte Contra: Gelo Neutro Contra: Físico Sagrado Morte Energia Terra Fraco Contra: Fogo História Os sapos aparecem em diferentes formas, cores e tamanhos. O mais comum, é o verde, que pode ser encontrado em quase todos os lagos ou qualquer outro pedaço de água contanto que o clima não seja muito frio. Enquanto o verde é inofensivo e só ameaça moscas e outros insetos, a flora e a fauna agressiva no sul criou várias subespécies de sapos. Distinguíveis por cores chamativas que usam para alertar seus oponentes, eles possuem uma saliva suave mas irritantemente venenosa. Geralmente são inofensivos mesmo se aparecerem em grandes números, mas aventureiros feridos que ficam sem recursos enfrentarão uma verdadeira ameaça quando encontrarem um local cheio de pequenos anfíbios. Download Data/Monster/Frogs/ <?xml version="1.0" encoding="utf-8"?><monster name="Azure Frog" namedescription="an azure frog" race="blood" experience="20" speed="320" manacost="305"> <health now="60" max="60"/> <look type="226" head="87" body="85" legs="85" feet="87" addons="0" corpse="6079"/> <targetchange interval="2000" chance="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="1"/> <flag pushable="1"/> <flag canpushitems="0"/> <flag canpushcreatures="0"/> <flag staticattack="90"/> <flag targetdistance="1"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" skill="10" attack="24"/> </attacks> <defenses armor="6" defense="7"/> <elements> <element icePercent="15"/> <element firePercent="-10"/> </elements> <voices interval="2000" chance="5"> <voice sentence="Ribbit! Ribbit!"/> <voice sentence="Ribbit!"/> </voices> <loot> <item id="2148" countmax="10" chance="71230"/><!-- gold coin --> <item id="3976" chance="8889"/><!-- worm --> </loot></monster> Data/Monster/Monsters.xml <monster name="Azure Frog" file="Frogs/azure frog.xml" /> Ou, baixe o arquivo: azure frog.xml azure frog.xml
-
Como faço pra as magias dos monstros não pegarem nos outros? todos estão assim
-
ola! criei um pokemon novo com icon tudo como no tutorial mais quando tento invocar o icone o poke nao sai. porem se relogo o char o icone vira uma ball e ae o poke sai normal soque perde o icone. como arrumar isso?
-
Primeiramente, obrigado por se interessar em me ajudar. Bom, esse é o tal erro no Distro: Esse é o arquivo do Monster que esta renomeado como "master vip medusa.xml" dentro de uma pasta chamada master no diretório data/monster Ai vai: E esse é o arquivo monsters.xml dentro do diretorio data/monster Ai vai: Fiz alguns testes mas nada com sucesso. Gostaria muito da ajuda de vocês, agradecendo com um REP+.
-
Gente tenho uma duvida que atrapalha desenvolvimento de 1 script.... Essa função já tentei varias vezes e dar errado em Cantos de mapa...e água.... mais como o mapa que pretendo teria isso preciso disso resolvido... A quem conhece o jogo e bem conhecido atualmente... League of legend e o jogo Meus Fracos foi em tentar criar a função para os Minions.... exemplo o Minion sai de 1 lugar e anda ate a base inimiga...... no meio do caminho ao ver obstáculos inimigos ele para e ataca e volta ao seu percurso natural a base inimiga precisamente o Nexus..... os obstáculos são Torres,Players e ate Summon dos player em Caso do Inimigo ser 1 Annie e seu ursinho lindo ahauaha.. já fiz e já usei varias função de Posinicial e Posfinal e etc.. e sempre os cantos e águas ... ou aquelas lindas andadas como Robo , pulando de lugar em lugar em vês de dar passos normais..... Queria saber se alguém tem ou saberia ensinar ou apresentar algo se possa funcionar ou ate mesmo 1 Dica mais experiente.
-
:XTibia_smile: BOM DIA GALERA DO XTIBIA :XTibia_smile: Queria saber se tem algum tópico ou site ou algu que eu possa acessar e achar ataques dos pokemons, porque não conheço ataques dos pokemons e o meu serv que estou editando ele esta tudo errado os ataques dos pokemons. Se alguém souber algum lugar que tem pra download os arquivos dos pokemons posta ai nos comentários, agradeço. :smile_positivo:
-
Não sei se esse foi um bug que passou despercebido por todos que usam OTC, mas como vocês podem ver, no OTC os monstros não tem sua luz que é dada no Tibia.DAT, já no client da Cipsoft ela funciona e no OTC a iluminação do monstro (Outfit ou Looktype) não aparece, queria saber como resolver isso, agradeço a todos pela atenção, muito obrigado e fico no aguardo <3 :biggrin: . Versão: 8.6
-
- luminosidade
- luz
- (e 6 mais)
-
Hello, how to add poke skills? because wild pokemon don't use skills ;/ and how change pokemon lvl? Przepraszam, że nie mówią brazylijski Moltres don't use skills my pokemon is zapdos
-
Bom, eu precisava de algum sistema que o monstro se multiplicasse quando tivesse x de vida, por exemplo o demon ta com 500 de vida, criasse outro demon com 500 de vida. Desde já obrigado.
-
monster monstro quando invocado se atacado da erro
um tópico no fórum postou clebao666 Lixeira Pública
ola!! gostaria de ajuda nao sei se alguem ja passou por esse erro ja fiz e refiz o monstro e continua apenas com 2 tamed mewtwo e mega banette. quando invoca eles ficam normais, mais quando algum pokemon bate neles, comeca a dar erros nas magias do pokemon que esta atacando e nao para o erro mostra a magia do pokemon seja de player ou em resp .. desde ja agradeço a quem puder ajudar. vlww -
Uso o TFS 1.0 e tudo o que eu sabia de programação foi por água a baixo kkkk, na verdade estou com uma dificuldade enorme em aprender esse novo OO da linguagem, mas sem "arrudeios" como dizem. Quero um script de creaturescripts que ao matar o War Wolf, ele verifica se eu tenho o item 5884 e se eu tenho a storage 12070 com o valor 5 function onKill(cid, target, damage, flags) local player = Player(cid) if(isMonster(target)) then if (player:getStorageValue(12070) == 5) then if(string.lower(getCreatureName(target)) == "war wolf") then player:addMount(84) end end end return true end esse foi o script que eu tentei desenvolver (só faltou incluir o and no if e verificar se eu tenho o item 5884, mas não sei usar esse item:getcount() estou muito perdido
-
FAÇA BACKUP DA PASTA MONSTERS E CREATURESCRIPTS ANTES DE UTILIZAR! Funciona para todas as versões TFS 0.3.6+ ate TFS 1.2 (Provavelmente funciona para outras tambem mas não me dei o trabalho de testar) Introdução: Bem, como o titulo mesmo diz, o script vai criar e modificar todos os monstros para terem scripts default (Caso o monstro não tenha script) e tambem pode adicionar creaturescripts default, exemplo o onDeath. Code: monsterevent.lua local dir = "./data/monster/" local csdir = "./data/creaturescripts/" local monstersXML = "monsters.xml" local csXML = "creaturescripts.xml" local csTag = '\n <event type="%t" name="%n" script="%s"/>' -- Tag format on creaturescripts.xml (%t = type, %n = name, %s = script) local defaultText = [[function onCreatureAppear(self, creature) return false end function onCreatureDisappear(self, creature) return false end function onCreatureMove(self, creature, oldPosition, newPosition) return false end function onCreatureSay(self, creature, type, message) return false end function onThink(self, interval) return false end]] local events = { ["monsterdeath"] = {type = "death", file="monsterdeath.lua", defaultText=[[ function onDeath(cid, corpse, lasthitkiller, mostdamagekiller, lasthitunjustified, mostdamageunjustified) return true end]]}, } ------- Não edite a partir dessa linha se nao souber o que esta fazendo. function parseXML(file) local ret = {["monster"] = {}, ["event"] = {}} local data = "" for line in file:lines() do data = data .. line .. "\n" line = line:match("<(.-)/>") if line then local element = line:match("^%s*(.-)%s") if element == "monster" or element == "event" then local t = {} for i, x in line:gmatch('%s+(.-)="(.-)"') do t[i] = x end table.insert(ret[element], t) end end end return ret, data:sub(1, #data-1) end function init() ----- Parsing monsters.xml ----- local monstersfile = io.open(dir .. monstersXML, "r") print("Parsing XML " .. dir .. monstersXML .. "...") local xmltable = parseXML(monstersfile) monstersfile:close() -------------------------------- -- Creating scripts directory -- local testfile = io.open(dir .. "scripts/test", "w") if not testfile then os.execute("mkdir data\\monster\\scripts") print("Directory " .. dir .. "scripts has been created.") else testfile:close() end os.remove(dir .. "scripts/test") --------------------------------- ------ Creating default.lua ------- local defaultlua = io.open(dir .. "scripts/default.lua", "w") defaultlua:write(defaultText) defaultlua:close() print("File " .. dir .. "scripts/default.lua has been created.") --------------------------------- ---- Modify all monsters XML! ---- local modified = 0 for i, contents in ipairs(xmltable["monster"]) do local monsterxml = io.open(dir .. contents.file, "r") if monsterxml then local xmldata = monsterxml:read("*a") local _mod = false local s, f, content = xmldata:find("<monster%s(.-)>") local r, p, cs = content:find('script="(.-)"') monsterxml:close() newc = content if not cs then xmldata = xmldata:gsub(content, newc .. ' script="default.lua"') _mod = true elseif cs ~= "default.lua" then print('Warning: The file "' .. contents.file .. '" already has a script.') end local s, f, content = xmldata:find("<monster%s(.-)>") local x, q, scriptcontent = xmldata:find("<script>(.-)</script>") local readyevents = {} local addevents = "" if scriptcontent then for line in scriptcontent:gmatch("(.-)\n") do local event = line:match('<event%s-name="(.-)"') if event then readyevents[event] = true end end end for event, _c in pairs(events) do if not readyevents[event] then addevents = addevents .. '<event name="' .. event .. '"/>\n' end end if addevents ~= "" then _mod = true if scriptcontent and scriptcontent:find("event") then xmldata = xmldata:gsub(scriptcontent, scriptcontent .. addevents) elseif x and q then xmldata = xmldata:sub(1, x-1) .. xmldata:sub(q+1) xmldata = xmldata:sub(1, f) .. "\n<script>\n" .. addevents .. "\n</script>" .. xmldata:sub(f+1) else xmldata = xmldata:sub(1, f) .. "\n<script>\n" .. addevents .. "\n</script>" .. xmldata:sub(f+1) end end if xmldata then if _mod then modified = modified+1 end local monsterxmlwrite = io.open(dir .. contents.file, "w") monsterxmlwrite:write(xmldata) monsterxmlwrite:close() else print("Error in: " .. contents.name) end else print("Warning: Error opening file " .. contents.file) end end print("Total monsters XML modified: " .. modified) ---------------------------------- --- Parsing creaturescripts.xml -- local csfile = io.open(csdir .. csXML, "r") print("Parsing XML " .. csdir .. csXML .. "...") local csxmltable, xmldata = parseXML(csfile) csfile:close() ---------------------------------- --- Modify creaturescripts.xml --- local _mod = false local readytags = {} for i, contents in ipairs(csxmltable["event"]) do if events[contents.name] then readytags[contents.name] = true end end for event, contents in pairs(events) do if not readytags[event] then _mod = true local currenttag = csTag currenttag = currenttag:gsub("%%t", contents.type) currenttag = currenttag:gsub("%%n", event) currenttag = currenttag:gsub("%%s", contents.file) local r, w = xmldata:find("<creaturescripts>") xmldata = xmldata:sub(1, w) .. currenttag .. xmldata:sub(w+1) end end if _mod then local csfilewrite = io.open(csdir .. csXML, "w") csfilewrite:write(xmldata) csfilewrite:close() print("Modified " .. csdir .. csXML) end ---------------------------------- ----- Creating event scripts ----- print("Creating lua creaturescripts...") for event, contents in pairs(events) do local luafile = io.open(csdir .. "scripts/" .. contents.file, "w") luafile:write(contents.defaultText) luafile:close() end ---------------------------------- print("All the modifications were done.") return true end local check = io.open("meventsinstall.lua", "r") if not check then local ret = init() if ret then local file = io.open("meventsinstall.lua", "w") file:write("true") file:close() end else check:close() end Explicando o que o code realmente faz: O code vai ser executado somente uma vez e vai editar todos os monstros do seu OTServer presentes no monsters.xml adicionando um script default, que seria o defaultText presente no inicio do code (So funciona em TFS 1.0+) e tambem ira adicionar eventos ao XML do monstro sem remover os que ja existem (se existirem). Depois disso ele ira editar o creaturescripts.xml para criar a tag do evento e tambem criar o script que esta na tabela events. Como instalar: TFS 0.3.6: Só botar ele na pasta lib do seu OT que ele ja vai executar quando voce abrir o executavel. TFS 1.x: Bote o code na pasta "lib\core" e edite o core.lua nessa pasta adicionando essa linha: dofile('data/lib/core/monstersevent.lua') Se voce fizer tudo certo deve aparecer isso quando voce abrir o server: Você pode rodar o script novamente deletando o arquivo "meventsinstall.lua" que sera criado na pasta do server, ele soh ira adicionar algo se voce mudar alguma coisa no code. Porque usar esse code: Não usar funçoes como onAttack, onSpawn entre outras para registrar eventos em monstros. Usar as funçoes onCreatureAppear, onCreatureDisappear, onCreatureMove, onCreatureSay e onThink em todos os monstros do server (TFS 1.0+)
-
Fala galera, estou com um "bug" no meu servidor que começou depois que adicionei a função doCreateMonsterNick do caotic, bom basicamente quando tento criar um monstro pelo comando /m do servidor ele esta vindo com o nome que esta no arquivo monster.xml e não o que esta no arquivo .xml do mesmo! Foto: E tipo como podem ver os monstro que nascem por spawn estão normal! Gostaria da ajuda de vocês para tentar resolver esse problema