Tudo que subhe postou
-
(Resolvido)[PEDIDO] Simples Task 3.0 by VodKart
@Vodkart funcionou REP+ teria como botar esse script pra poder pegar 3 tasks ao mesmo tempo ?
-
(Resolvido)[PEDIDO] Simples Task 3.0 by VodKart
Oii, eu queria que o npc da task, ao falar com ele... ele diria o nome dos monstros ex: Hi, tasks, (npc fala o nome de todas as tasks adicionadas) parecido com o global creio que essa mudança seja feita pelo script do npc vou deixar ele aqui em baixo script do npc e qualquer coisa vou deixar o link do sistema aqui tbm
-
(Resolvido)[RESOLVIDO] Perdendo Promotion ao logar
foda que seria 4 baus diferentes na quest uma pra cada promotion Ediiiit: conseguiiii peguei uma linha de cada script que tinha aqui no forum sobre isso e fiz o script do jeitinho que queria kkkkk funcionou muito obrigado a todos que tentaram me ajudar, vou da rep+ a todos
-
(Resolvido)[RESOLVIDO] Perdendo Promotion ao logar
@Platinun e como eu faria dessa forma que vc ta falando ? pode me ajudar ?
-
(Resolvido)[RESOLVIDO] Perdendo Promotion ao logar
@Platinun é que queria colocar pra ganhar essa promotion em uma quest
-
(Resolvido)[RESOLVIDO] Perdendo Promotion ao logar
@Platinun Testei aqui, mesmo dando save no server, ele perde a promotion
-
(Resolvido)[RESOLVIDO] Perdendo Promotion ao logar
@Platinun fiz o que vc falou, funcionou.. ele ganha a promotion, mas agora, quando desloga, ele perde a promotion e não pode pegar novamente kkkk
-
(Resolvido)[RESOLVIDO] Perdendo Promotion ao logar
@LeoTK não funcionou
-
(Resolvido)[RESOLVIDO] Perdendo Promotion ao logar
@LeoTK esqueci de informar isso kkkk siim uso Alissow Server, version 0.4.1 8.60
-
(Resolvido)[RESOLVIDO] Perdendo Promotion ao logar
Eu de novo ?♂️ Estava tentando adicionar 4 novas vocações, que seriam um second promotion deixei certinho no Vocation.xml e adicionei na lib tbm botei pra ganhar essa segunda promotion em uma quest. ao clicar no bau, ele "ganha" o promotion, porem fica dessa forma " 17:01 You see yourself. You are . " OBS: Alissow Server, version 0.4.1 8.60 e aparece esse erro na distro [Warning - Vocations::getVocation] Vocation 4294967295 not found. vou deixar aqui a action que usei pra adicionar a quest local storage = 23232 function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, storage) < 1 then if getPlayerVocation(cid) > 4 then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) doPlayerSendTextMessage(cid, 25, "Parabens, voce foi promovido!") doPlayerSetStorageValue(cid, storage, 1) else doPlayerSendCancel(cid, "Voce precisa ser promovido pra se promover novamente.") end else doPlayerSendCancel(cid, "The chest is empty.") end return true end Vocation.XML lib 031-vocations
-
(Resolvido)[PEDIDO] [MOD] Evento Metin Stone
@Vodkart Agora não da erro nenhum, o comando !metin está funcionando, obrigado teria como deixar ele automático ? ele só ta iniciando por meio de talkaction, mesmo eu botando o dia e hora pro evento acontecer, ele não acontece, só se eu usar o comando e se não for muito incomodo, daria pra por pra cada stone aparecer em um determinado tempo.. pra não aparecer todas ao mesmo tempo Tipo, definir o horário de cada uma ou elas aparecer com algum intervalo de tempo (ex: 20 min) ou até, só aparecer outra, dps que a primeira morrer sla kkkk, o que for mais fácil de fazer ja ganhou REP+ OBS: As stones não estão summonando os monstros, quando chega em x porcentagem de HP @Vodkart ediiit: Precisa mais não, mexi aqui e consegui fazer funcionar muito obrigado pela ajuda mano, se me ajudou muito
-
(Resolvido)[PEDIDO] [MOD] Evento Metin Stone
@Vodkart Deletei as partes que vc pediu, agora não está aparecendo o erro ao summonar os monstros. só aparece esse erro, quando eu tento iniciar o evento por talkaction [01/03/2020 15:11:52] [Error - TalkAction Interface] [01/03/2020 15:11:52] buffer:onSay [01/03/2020 15:11:52] Description: [01/03/2020 15:11:52] attempt to index a nil value [01/03/2020 15:11:52] stack traceback: [01/03/2020 15:11:52] [C]: in function 'doCreateMonster' [01/03/2020 15:11:52] [string "loadBuffer"]:7: in function <[string "loadBuffer"]:2> Sim eu criei o monstro Wind Stone
-
(Resolvido)[PEDIDO] [MOD] Evento Metin Stone
@Vodkart o MOD eu peguei desse link AQUI pq eu queria definir em quais lugares cada stone iria aparecer agora os monstros eu peguei desse link AQUI
-
(Resolvido)[PEDIDO] [MOD] Evento Metin Stone
@Vodkart pode me ajudar ?
-
(Resolvido)[PEDIDO] [MOD] Evento Metin Stone
é kkk eu vi aqui então.. ele não executa o evento agora e não da erro nenhum na distro, porem quando eu summono as stones com o GOD.. Aparece esse erro [Warning - Monster::Monster] Unknown event name - metinStoneCombat e se eu for iniciar por talkaction " !metin " aparece o seguinte erro... [28/02/2020 04:23:47] [Error - TalkAction Interface] [28/02/2020 04:23:47] buffer:onSay [28/02/2020 04:23:47] Description: [28/02/2020 04:23:47] attempt to index a nil value [28/02/2020 04:23:47] stack traceback: [28/02/2020 04:23:47] [C]: in function 'doCreateMonster' [28/02/2020 04:23:47] [string "loadBuffer"]:7: in function <[string "loadBuffer"]:2>
-
(Resolvido)[PEDIDO] [MOD] Evento Metin Stone
Aparece esse erro e o servidor não abre, fica só aparecendo esses erros [27/02/2020 19:08:00] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: database disk image is malformed (SELECT "name" FROM "sqlite_master" WHERE "type" = 'table' AND "name" = 'server_config';) [27/02/2020 19:08:00] > Updating database to version: 1... [27/02/2020 19:08:00] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: database disk image is malformed (CREATE TABLE IF NOT EXISTS "server_config" ("config" VARCHAR(35) NOT NULL DEFAULT '', "value" INTEGER NOT NULL);) [27/02/2020 19:08:00] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: database disk image is malformed (INSERT INTO "server_config" VALUES ('db_version', 1);) [27/02/2020 19:08:00] > SQLite migration from 0.2 support not available, please use latest database! [27/02/2020 19:08:00] > Database has been updated to version: 1.
-
(Resolvido)[PEDIDO] [MOD] Evento Metin Stone
up !
-
(Resolvido)[PEDIDO] [MOD] Evento Metin Stone
up
-
(Resolvido)[PEDIDO] [MOD] Evento Metin Stone
Boa noite, achei esse evento em um site gringo, mas ele está dando alguns erros, alguém poderia me ajudar ? eu tentei mexer nele, mas como sou iniciante nessa área, não sei bem se estraguei mais ou melhorei ? Meu servidor é o Alissow Server, version 0.4.1 8.60 Desde já agradeço Esses são os erros que aparecem na distro [25/02/2020 05:33:24] > Loading [MOD] Evento Metin Stone.xml... [25/02/2020 05:33:24] [Error - CreatureScript Interface] [25/02/2020 05:33:24] buffer [25/02/2020 05:33:24] Description: [25/02/2020 05:33:24] [string "names = {'earth stone', 'icy stone', 'fire stone', 'wind stone'..."]:9: unexpected symbol near '=' [25/02/2020 05:33:24] [Error - TalkAction Interface] [25/02/2020 05:33:24] buffer [25/02/2020 05:33:24] Description: [25/02/2020 05:33:24] [string "names = {'earth stone', 'icy stone', 'fire stone', 'wind stone'..."]:9: unexpected symbol near '=' [25/02/2020 05:33:24] [Error - GlobalEvent Interface] [25/02/2020 05:33:24] buffer [25/02/2020 05:33:24] Description: [25/02/2020 05:33:24] [string "names = {'earth stone', 'icy stone', 'fire stone', 'wind stone'..."]:9: unexpected symbol near '=' [25/02/2020 05:33:24] [Error - GlobalEvent Interface] [25/02/2020 05:33:24] buffer [25/02/2020 05:33:24] Description: [25/02/2020 05:33:24] [string "loadBuffer"]:3: attempt to get length of global 'stones_name' (a nil value) [25/02/2020 05:33:24] [Warning - Event::loadScript] Cannot load script (domodlib("Stones_config") [25/02/2020 05:33:24] local daysOpen = {} [25/02/2020 05:33:24] local monst = stones_name[math.random(1, #stones_name)] [25/02/2020 05:33:24] local poss = pos[math.random(1, #pos)] [25/02/2020 05:33:24] for k, v in pairs(days) do [25/02/2020 05:33:24] table.insert(daysOpen, k) [25/02/2020 05:33:24] end [25/02/2020 05:33:24] function onThink(interval) [25/02/2020 05:33:24] if isInArray(daysOpen, os.date('%A')) then [25/02/2020 05:33:24] if isInArray(days[os.date('%A')], os.date('%X', os.time())) then [25/02/2020 05:33:24] print(monst, poss) [25/02/2020 05:33:24] if not(monst) then return TRUE end [25/02/2020 05:33:24] doCreateMonster(monst.name,poss.pos) [25/02/2020 05:33:24] doBroadcastMessage('[Event Stones]\n '.. monst.name ..' have been spawn. Find and defeat it!', 22) [25/02/2020 05:33:24] end [25/02/2020 05:33:24] end [25/02/2020 05:33:24] return true [25/02/2020 05:33:24] end [25/02/2020 05:33:24] ) Script MOD <?xml version="1.0" encoding="UTF-8"?> <mod name="Stones_Event Items" enabled="yes"> <config name="Stones_config"><![CDATA[ names = {'earth stone', 'icy stone', 'fire stone', 'wind stone'} stones_name = { [1] = {name="Earth Stone"}, [2] = {name="Icy Stone"}, [3] = {name="Fire Stone"}, [4] = {name="Wind Stone"} }, pos = { [1] = {{x=95, y=57, z=7}}, [2] = {{x=103, y=57, z=7}}, [3] = {{x=90, y=58, z=7}}, [4] = {{x=80, y=58, z=7}} }, days = {['Tuesday'] = {'05:29:00'}, ['Sunday'] = {'03:46:20'} }, stones = { ["earth stone"] = { [90] = {m = {'carniphila','earth elemental','bog raider'}, n = {6, 7}}, [80] = {m = {'bog raider','earth elemental'}, n = {6, 7}}, [70] = {m = {'giant spider','bog raider'}, n = {6, 7}}, [60] = {m = {'hydra','lich','giant spider','bog raider'}, n = {6, 7}}, [50] = {m = {'hydra','bog raider','serpent spawn'}, n = {6, 7}}, [40] = {m = {'hydra','defiler','serpent spawn'}, n = {6, 7}}, [30] = {m = {'medusa','hydra','serpent spawn','defiler'}, n = {6, 7}}, [20] = {m = {'medusa','lost soul','hydra','serpent spawn'}, n = {6, 7}}, [10] = {m = {'juggernaut','son of verminor','medusa'}, n = {5, 6}}, [1] = {m = {'medusa','juggernaut'}, n = {5,7}} }, ["icy stone"] = { [90] = {m = {'ice golem','frost dragon'}, n = {6, 7}}, [80] = {m = {'frost dragon','frost dragon hatchling'}, n = {6, 7}}, [70] = {m = {'frost dragon','crystal spider'}, n = {6, 7}}, [60] = {m = {'frost dragon','crystal spider'}, n = {7, 7}}, [50] = {m = {'frost dragon','crystal spider'}, n = {7, 7}}, [40] = {m = {'frost dragon'}, n = {7, 7}}, [30] = {m = {'frost dragon'}, n = {7, 8}}, [20] = {m = {'frost dragon'}, n = {7, 8}}, [10] = {m = {'yeti','frost dragon'}, n = {5, 7}}, [1] = {m = {'yeti'}, n = {2,3}} }, ["fire stone"] = { [90] = {m = {'fire elemental','dragon','dragon lord',' dragon lord hatchling'}, n = {6, 7}}, [80] = {m = {'dragon lord hatchling','dragon lord'}, n = {6, 7}}, [70] = {m = {'dragon lord','diabolic imp'}, n = {6, 7}}, [60] = {m = {'dragon lord','diabolic imp'}, n = {6, 7}}, [50] = {m = {'dragon lord','demodras','diabolic imp'}, n = {6, 7}}, [40] = {m = {'dragon lord','diabolic imp','hellfire fighter'}, n = {5, 7}}, [30] = {m = {'diabolic imp','hellfire fighter','demon'}, n = {6, 7}}, [20] = {m = {'hellfire fighter','demon'}, n = {5, 6}}, [10] = {m = {'demon','hellhound'}, n = {5, 5}}, [1] = {m = {'demon'}, n = {5,5}} }, ["wind stone"] = { [90] = {m = {'gargoyle','stone golem','black knight'}, n = {6, 7}}, [80] = {m = {'black knight','behemoth'}, n = {5, 7}}, [70] = {m = {'black knight','behemoth'}, n = {6, 7}}, [60] = {m = {'behemoth','destroyer'}, n = {6, 7}}, [50] = {m = {'behemoth','destroyer','betrayed wraith'}, n = {6, 7}}, [40] = {m = {'behemoth','destroyer','betrayed wraith'}, n = {6, 7}}, [30] = {m = {'dark torturer','betrayed wraith'}, n = {3, 5}}, [20] = {m = {'dark torturer','grim reaper'}, n = {5, 6}}, [10] = {m = {'blightwalker','undead dragon','grim reaper'}, n = {5, 6}}, [1] = {m = {'undead dragon'}, n = {5,5}} } } function getPercent(number, all) return (number / all) * 100 end function choose(arg) return arg[math.random(#arg)] end ]]></config> <event type="combat" name="Kamulec" event="script"><![CDATA[ domodlib("Stones_config") function onCombat(cid, target) if isMonster(target) then registerCreatureEvent(target, 'Kamulec') end local t = getPercent(getCreatureHealth(target), getCreatureMaxHealth(target)) if isMonster(target) and isInArray(names, getCreatureName(target):lower()) then if t > 90 then doCreatureSetStorage(target, 1000, 91) end for k, v in pairs(stones[getCreatureName(target):lower()]) do if k >= t and getCreatureStorage(target, 1000) > k then local pos = getThingPos(target) for i = 1, math.random(v.n[1], v.n[2]) do local s = {x=pos.x,y=pos.y,z=pos.z} s.x = pos.x + math.random(-2,2) s.y = pos.y + math.random(-2,2) doCreateMonster(choose(v.m), pos, false, false, false) end return doCreatureSetStorage(target, 1000, k) end end end return TRUE end ]]></event> <talkaction log="yes" words="!metin" access="4" event="script"> <![CDATA[ domodlib("Stones_config") function onSay() local monst = stones_name[math.random(1, #stones_name)] local poss = pos[math.random(1, #pos)] print(monst, poss) if not(monst) then return TRUE end doCreateMonster(monst.name,poss.pos) doBroadcastMessage('[Event Stones]\n '.. monst.name ..' have been spawn. Find and defeat it!', 22) return TRUE end ]]> </talkaction> <globalevent name="metinStoneStart" interval="1000" event="script"><![CDATA[ domodlib("Stones_config") local daysOpen = {} local monst = stones_name[math.random(1, #stones_name)] local poss = pos[math.random(1, #pos)] for k, v in pairs(days) do table.insert(daysOpen, k) end function onThink(interval) if isInArray(daysOpen, os.date('%A')) then if isInArray(days[os.date('%A')], os.date('%X', os.time())) then print(monst, poss) if not(monst) then return TRUE end doCreateMonster(monst.name,poss.pos) doBroadcastMessage('[Event Stones]\n '.. monst.name ..' have been spawn. Find and defeat it!', 22) end end return true end ]]></globalevent> <event type="login" name="metinStoneLogin" event="buffer"><![CDATA[ registerCreatureEvent(cid, 'Kamulec') ]]></event> </mod>
-
(Resolvido)[PEDIDO] [MODS] - [8.6] Perfect Zombie System [Automático]
@Vodkart eu entrei com 2 contas, uma delas é a conta do god, porem foi com um char que criei pra test será que pode ser esse o problema ? vou fazer o test agora com 2 contas criadas na hora e testar jaja edito @Vodkart fiz o test com 2 contas criadas agora, dessa vez não apareceu nenhum zombie, pior que não da erro nenhum na distro msg na distro [24/02/2020 18:55:31] >> World Alissow server Online! [24/02/2020 18:55:32] Test one has logged in. [24/02/2020 18:55:35] Test Two has logged in. [24/02/2020 18:56:24] > Broadcasted message: "Zombie event starting in 5 minutes! The teleport will be closed when the event start!". [24/02/2020 18:56:26] > Broadcasted message: "Test Two entered the Zombie event! Currently 1 players have joined!". [24/02/2020 18:56:32] > Broadcasted message: "Test one entered the Zombie event! Currently 2 players have joined!". [24/02/2020 18:57:24] > Broadcasted message: "Zombie event starting in 4 minutes! The teleport will be closed when the event start!". [24/02/2020 18:58:24] > Broadcasted message: "Zombie event starting in 3 minutes! The teleport will be closed when the event start!". [24/02/2020 18:59:24] > Broadcasted message: "Zombie event starting in 2 minutes! The teleport will be closed when the event start!". [24/02/2020 19:00:24] > Broadcasted message: "Zombie event starting in 1 minutes! The teleport will be closed when the event start!". [24/02/2020 19:01:24] > Broadcasted message: "The Zombie event is now full [2 players]! The event will soon start.". Ediiiiit: Consegui kkkk foi um erro meu, as coordenadas do mapa estavam "erradas" vi que as coordenadas tinham que pegar o mapa todo, e eu nao tinha colocado o mapa todo kkkk o script está funcionando agora Parabéns pelo script REPUTADO
-
(Resolvido)[PEDIDO] [MODS] - [8.6] Perfect Zombie System [Automático]
Olá, fiz vários testes com esse evento, se eu colocar pra ser automático ele "funciona" entrega as recompensas, horário de abrir e fechar tp certinhos.. porem só aparece 1 zombie, fiquei 20 minutos na sala e só apareceu 1 se eu fizer o evento manual, ai não aparece o zombie não da erro nenhum na distro, as vezes a msg avisando que "em 30 segundos irá começar os spawn" não aparece tem como alguém me ajudar ? eu só coloquei as coordenadas do mapa e pronto, não mexi em mais nada Uso o Alissow Server, version 0.4.1 (Alissow) Script: <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Perfect Zombie System" version="8.6" author="Vodkart" contact="tibiaking.com" enabled="yes"> <config name="zombie_config"><![CDATA[ zombie_config = { storages = {172100, 172101, 172102}, -- n edite players = {min = 2, max = 30}, -- min, max players no evento rewards = {items ={{2160,10},{2494,1}}, trophy = 5805}, timeToStartEvent = 30, -- segundos para começar o evento CheckTime = 5, -- tempo que o TP fica aberto para os jogadores adrentarem o evento teleport = {{x=83, y=43, z=7}, {x=160 , y=717, z=7}}, -- position do tp onde aparece, position para onde o jogador vai ao entrar no tp arena = {{x=144,y=698,z=7},{x=181,y=744,z=7}}, -- area positions monster_name = "Zombie Event", timeBetweenSpawns = 20, min_Level = 20 } zombie_days = { ["Monday"] = {"13:11","18:00","20:00","22:00"}, ["Tuesday"] = {"13:12","18:00","22:50","22:00"}, ["Wednesday"] = {"21:57","18:00","20:00","23:17"}, ["Thursday"] = {"13:09","18:00","20:00","22:00"}, ["Friday"] = {"13:13","18:00","21:45","22:00"}, ["Saturday"] = {"13:14","18:00","20:00","22:00"}, ["Sunday"] = {"14:05","18:00","20:00","22:00"} } function removeZombieTp() local t = getTileItemById(zombie_config.teleport[1], 1387).uid return t > 0 and doRemoveItem(t) and doSendMagicEffect(zombie_config.teleport[1], CONST_ME_POFF) end function ZerarStoragesZombie() for _, stor in pairs(zombie_config.storages) do setGlobalStorageValue(stor, 0) end end function getPlayersInZombieEvent() local t = {} for _, pid in pairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), zombie_config.arena[1], zombie_config.arena[2]) and getPlayerAccess(pid) < 3 then t[#t+1] = pid end end return t end function getZombieRewards(cid, items) local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID for _, i_i in ipairs(items) do local item, amount = i_i[1],i_i[2] if isItemStackable(item) or amount == 1 then doAddContainerItem(backpack, item, amount) else for i = 1, amount do doAddContainerItem(backpack, item, 1) end end end end function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function HaveCreatureZombie(area, remove) for x = area[1].x - 1, area[2].x + 1 do for y = area[1].y - 1, area[2].y + 1 do local pos = {x=x, y=y, z=area[1].z} local m = getTopCreature(pos).uid if remove ~= false and m ~= 0 and isMonster(m) then doRemoveCreature(m) end end end end function spawnZombie() if #getPlayersInZombieEvent() > 1 then local pos = {x=math.random(zombie_config.arena[1].x, zombie_config.arena[2].x), y=math.random(zombie_config.arena[1].y,zombie_config.arena[2].y), z=zombie_config.arena[1].z} if not isWalkable(pos, false, false, false) then spawnZombie() else doSummonCreature(zombie_config.monster_name, pos) doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA) doSendMagicEffect(pos, CONST_ME_MORTAREA) setGlobalStorageValue(zombie_config.storages[2], getGlobalStorageValue(zombie_config.storages[2]) <= 0 and 1 or getGlobalStorageValue(zombie_config.storages[2])+1) doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(zombie_config.storages[2]) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED) addEvent(spawnZombie, zombie_config.timeBetweenSpawns *1000) end end end function CheckZombieEvent(delay) if getGlobalStorageValue(zombie_config.storages[1]) ~= (zombie_config.players.max+1) then if delay > 0 and getGlobalStorageValue(zombie_config.storages[1]) < zombie_config.players.max then doBroadcastMessage("Zombie event starting in " .. delay .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING) elseif delay == 0 and getGlobalStorageValue(zombie_config.storages[1]) < zombie_config.players.min then for _, cid in pairs(getPlayersInZombieEvent()) do doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) end removeZombieTp() doBroadcastMessage("The Zombie event could not start because of to few players participating.\n At least " .. zombie_config.players.min .. " players is needed!", MESSAGE_STATUS_WARNING) ZerarStoragesZombie() elseif delay == 0 and getGlobalStorageValue(zombie_config.storages[1]) >= zombie_config.players.min then removeZombieTp() doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(zombie_config.storages[1]) .. " players]! The event will soon start.") for _, var in pairs(getPlayersInZombieEvent()) do doPlayerSendTextMessage(var, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. zombie_config.timeToStartEvent .. " seconds! Good luck!") end addEvent(spawnZombie, zombie_config.timeToStartEvent*1000) end addEvent(CheckZombieEvent, 60000, delay-1) end end]]></config> <event type="statschange" name="ZombieStats" event="script"><![CDATA[ domodlib('zombie_config') if isPlayer(cid) and isMonster(attacker) and getCreatureName(attacker) == zombie_config.monster_name then if isInRange(getPlayerPosition(cid), zombie_config.arena[1], zombie_config.arena[2]) then if #getPlayersInZombieEvent() > 1 then doBroadcastMessage(getPlayerName(cid) .. " have been eated by Zombies!", MESSAGE_STATUS_CONSOLE_RED) local corpse = doCreateItem(getPlayerSex(cid) == 1 and 3058 or 6081, 1, getPlayerPosition(cid)) doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) if #getPlayersInZombieEvent() == 1 then local winner = getPlayersInZombieEvent()[1] doBroadcastMessage(getCreatureName(winner)..' has survived at zombie event!') local goblet = doPlayerAddItem(winner, zombie_config.rewards.trophy, 1) doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(winner) .. " for winning the Zombie event.") getZombieRewards(winner, zombie_config.rewards.items) doTeleportThing(winner, getTownTemplePosition(getPlayerTown(winner)), false) doSendMagicEffect(getPlayerPosition(winner), CONST_ME_TELEPORT) doBroadcastMessage(getPlayerName(winner).." won the Zombie event! Congratulations!") HaveCreatureZombie(zombie_config.arena, true) ZerarStoragesZombie() end else doBroadcastMessage("No one survived in the Zombie Event.", MESSAGE_EVENT_ADVANCE) HaveCreatureZombie(zombie_config.arena, true) ZerarStoragesZombie() end return false end end return true]]></event> <globalevent name="Zombie_Start" interval="60" event="script"><![CDATA[ domodlib('zombie_config') function onThink(interval, lastExecution) if zombie_days[os.date("%A")] then local hrs = tostring(os.date("%X")):sub(1, 5) if isInArray(zombie_days[os.date("%A")], hrs) and getGlobalStorageValue(zombie_config.storages[3]) <= 0 then local tp = doCreateItem(1387, 1, zombie_config.teleport[1]) doItemSetAttribute(tp, "aid", 45110) CheckZombieEvent(zombie_config.CheckTime) setGlobalStorageValue(zombie_config.storages[1], 0) setGlobalStorageValue(zombie_config.storages[2], 0) HaveCreatureZombie(zombie_config.arena, true) end end return true end]]></globalevent> <event type="login" name="Zombie_Login" event="script"><![CDATA[ domodlib('zombie_config') function onLogin(cid) registerCreatureEvent(cid, "ZombieBattle") registerCreatureEvent(cid, "ZombieStats") if isInRange(getPlayerPosition(cid), zombie_config.arena[1], zombie_config.arena[2]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end return true end]]></event> <event type="combat" name="ZombieBattle" event="script"><![CDATA[ domodlib('zombie_config') if isPlayer(cid) and isPlayer(target) and isInRange(getPlayerPosition(cid), zombie_config.arena[1], zombie_config.arena[2]) then doPlayerSendCancel(cid, "You may not attack this player.") return false end return true ]]></event> <movevent type="StepIn" actionid ="45110" event="script"><![CDATA[ domodlib('zombie_config') function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerAccess(cid) > 3 then return doTeleportThing(cid, zombie_config.teleport[2]) end if getPlayerLevel(cid) < zombie_config.min_Level then doTeleportThing(cid, fromPosition, true) doPlayerSendCancel(cid, "You need to be at least level " .. zombie_config.min_Level .. ".") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end if getGlobalStorageValue(zombie_config.storages[1]) <= zombie_config.players.max then doTeleportThing(cid, zombie_config.teleport[2]) setGlobalStorageValue(zombie_config.storages[1], getGlobalStorageValue(zombie_config.storages[1])+1) doBroadcastMessage(getPlayerName(cid) .. " entered the Zombie event! Currently " .. getGlobalStorageValue(zombie_config.storages[1]) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED) if getGlobalStorageValue(zombie_config.storages[1]) == zombie_config.players.max then setGlobalStorageValue(zombie_config.storages[1], getGlobalStorageValue(zombie_config.storages[1])+1) removeZombieTp() doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(zombie_config.storages[1])-1 .. " players]! The event will soon start.") for _, var in pairs(getPlayersInZombieEvent()) do doPlayerSendTextMessage(var, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. zombie_config.timeToStartEvent .. " seconds! Good luck!") end addEvent(spawnZombie, zombie_config.timeToStartEvent*1000) end end return true end]]></movevent> <talkaction words="/zombiestart;!zombiestart" access="5" event="buffer"><![CDATA[ domodlib('zombie_config') if getGlobalStorageValue(zombie_config.storages[3]) > 0 then doPlayerSendCancel(cid, "The event is already starting.") return true elseif not param or not tonumber(param) then doPlayerSendCancel(cid, "Use only numbers.") return true end local param = tonumber(param) <= 0 and 1 or tonumber(param) local tp = doCreateItem(1387, 1, zombie_config.teleport[1]) doItemSetAttribute(tp, "aid", 45110) CheckZombieEvent(tonumber(param)) ZerarStoragesZombie() setGlobalStorageValue(zombie_config.storages[3], 1) HaveCreatureZombie(zombie_config.arena, true) ]]></talkaction> <globalevent name="ZombieDebug-Start" type="start" event="buffer"><![CDATA[ domodlib('zombie_config') ZerarStoragesZombie() return true]]></globalevent> </mod> Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
-
[MODS] - [8.6] Perfect Zombie System [Automático] [V1.0]
@Vodkart boa tarde, fiz vários testes com esse evento, se eu colocar pra ser automático ele "funciona" entrega as recompensas, horário de abrir e fechar tp certinhos.. porem só aparece 1 zombie, fiquei 20 minutos na sala e só apareceu 1 se eu fizer o evento manual, ai não aparece o zombie não da erro nenhum na distro, as vezes a msg avisando que "em 30 segundos irá começar os spawn" não aparece tem como me ajudar ? eu só coloquei as coordenadas do mapa e pronto, não mexi em mais nada Uso o Alissow Server, version 0.4.1 (Alissow) Script: <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Perfect Zombie System" version="8.6" author="Vodkart" contact="tibiaking.com" enabled="yes"> <config name="zombie_config"><![CDATA[ zombie_config = { storages = {172100, 172101, 172102}, -- n edite players = {min = 2, max = 30}, -- min, max players no evento rewards = {items ={{2160,10},{2494,1}}, trophy = 5805}, timeToStartEvent = 30, -- segundos para começar o evento CheckTime = 5, -- tempo que o TP fica aberto para os jogadores adrentarem o evento teleport = {{x=83, y=43, z=7}, {x=160 , y=717, z=7}}, -- position do tp onde aparece, position para onde o jogador vai ao entrar no tp arena = {{x=144,y=698,z=7},{x=181,y=744,z=7}}, -- area positions monster_name = "Zombie Event", timeBetweenSpawns = 20, min_Level = 20 } zombie_days = { ["Monday"] = {"13:11","18:00","20:00","22:00"}, ["Tuesday"] = {"13:12","18:00","22:50","22:00"}, ["Wednesday"] = {"21:57","18:00","20:00","23:17"}, ["Thursday"] = {"13:09","18:00","20:00","22:00"}, ["Friday"] = {"13:13","18:00","21:45","22:00"}, ["Saturday"] = {"13:14","18:00","20:00","22:00"}, ["Sunday"] = {"14:05","18:00","20:00","22:00"} } function removeZombieTp() local t = getTileItemById(zombie_config.teleport[1], 1387).uid return t > 0 and doRemoveItem(t) and doSendMagicEffect(zombie_config.teleport[1], CONST_ME_POFF) end function ZerarStoragesZombie() for _, stor in pairs(zombie_config.storages) do setGlobalStorageValue(stor, 0) end end function getPlayersInZombieEvent() local t = {} for _, pid in pairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), zombie_config.arena[1], zombie_config.arena[2]) and getPlayerAccess(pid) < 3 then t[#t+1] = pid end end return t end function getZombieRewards(cid, items) local backpack = doPlayerAddItem(cid, 1999, 1) -- backpackID for _, i_i in ipairs(items) do local item, amount = i_i[1],i_i[2] if isItemStackable(item) or amount == 1 then doAddContainerItem(backpack, item, amount) else for i = 1, amount do doAddContainerItem(backpack, item, 1) end end end end function isWalkable(pos, creature, proj, pz)-- by Nord if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end if getTopCreature(pos).uid > 0 and creature then return false end if getTileInfo(pos).protection and pz then return false, true end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if tile.itemid ~= 0 and not isCreature(tile.uid) then if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then return false end end end return true end function HaveCreatureZombie(area, remove) for x = area[1].x - 1, area[2].x + 1 do for y = area[1].y - 1, area[2].y + 1 do local pos = {x=x, y=y, z=area[1].z} local m = getTopCreature(pos).uid if remove ~= false and m ~= 0 and isMonster(m) then doRemoveCreature(m) end end end end function spawnZombie() if #getPlayersInZombieEvent() > 1 then local pos = {x=math.random(zombie_config.arena[1].x, zombie_config.arena[2].x), y=math.random(zombie_config.arena[1].y,zombie_config.arena[2].y), z=zombie_config.arena[1].z} if not isWalkable(pos, false, false, false) then spawnZombie() else doSummonCreature(zombie_config.monster_name, pos) doSendDistanceShoot({x = pos.x - math.random(4, 6), y = pos.y - 5, z = pos.z}, pos, CONST_ANI_FIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_HITBYFIRE) addEvent(doSendMagicEffect, 150, pos, CONST_ME_FIREAREA) doSendMagicEffect(pos, CONST_ME_MORTAREA) setGlobalStorageValue(zombie_config.storages[2], getGlobalStorageValue(zombie_config.storages[2]) <= 0 and 1 or getGlobalStorageValue(zombie_config.storages[2])+1) doBroadcastMessage("A zombie has spawned! There is currently " .. getGlobalStorageValue(zombie_config.storages[2]) .. " zombies in the zombie event!", MESSAGE_STATUS_CONSOLE_RED) addEvent(spawnZombie, zombie_config.timeBetweenSpawns *1000) end end end function CheckZombieEvent(delay) if getGlobalStorageValue(zombie_config.storages[1]) ~= (zombie_config.players.max+1) then if delay > 0 and getGlobalStorageValue(zombie_config.storages[1]) < zombie_config.players.max then doBroadcastMessage("Zombie event starting in " .. delay .. " minutes! The teleport will be closed when the event start!", MESSAGE_STATUS_WARNING) elseif delay == 0 and getGlobalStorageValue(zombie_config.storages[1]) < zombie_config.players.min then for _, cid in pairs(getPlayersInZombieEvent()) do doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) end removeZombieTp() doBroadcastMessage("The Zombie event could not start because of to few players participating.\n At least " .. zombie_config.players.min .. " players is needed!", MESSAGE_STATUS_WARNING) ZerarStoragesZombie() elseif delay == 0 and getGlobalStorageValue(zombie_config.storages[1]) >= zombie_config.players.min then removeZombieTp() doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(zombie_config.storages[1]) .. " players]! The event will soon start.") for _, var in pairs(getPlayersInZombieEvent()) do doPlayerSendTextMessage(var, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. zombie_config.timeToStartEvent .. " seconds! Good luck!") end addEvent(spawnZombie, zombie_config.timeToStartEvent*1000) end addEvent(CheckZombieEvent, 60000, delay-1) end end]]></config> <event type="statschange" name="ZombieStats" event="script"><![CDATA[ domodlib('zombie_config') if isPlayer(cid) and isMonster(attacker) and getCreatureName(attacker) == zombie_config.monster_name then if isInRange(getPlayerPosition(cid), zombie_config.arena[1], zombie_config.arena[2]) then if #getPlayersInZombieEvent() > 1 then doBroadcastMessage(getPlayerName(cid) .. " have been eated by Zombies!", MESSAGE_STATUS_CONSOLE_RED) local corpse = doCreateItem(getPlayerSex(cid) == 1 and 3058 or 6081, 1, getPlayerPosition(cid)) doItemSetAttribute(corpse, "description", "You recognize " .. getCreatureName(cid) .. ". He was killed by "..(isMonster(attacker) and "a "..string.lower(getCreatureName(attacker)) or isCreature(attacker) and getCreatureName(attacker) or "a field item")..".") doSendMagicEffect(getPlayerPosition(cid), CONST_ME_POFF) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) doSendMagicEffect(getPlayerPosition(cid), CONST_ME_TELEPORT) if #getPlayersInZombieEvent() == 1 then local winner = getPlayersInZombieEvent()[1] doBroadcastMessage(getCreatureName(winner)..' has survived at zombie event!') local goblet = doPlayerAddItem(winner, zombie_config.rewards.trophy, 1) doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(winner) .. " for winning the Zombie event.") getZombieRewards(winner, zombie_config.rewards.items) doTeleportThing(winner, getTownTemplePosition(getPlayerTown(winner)), false) doSendMagicEffect(getPlayerPosition(winner), CONST_ME_TELEPORT) doBroadcastMessage(getPlayerName(winner).." won the Zombie event! Congratulations!") HaveCreatureZombie(zombie_config.arena, true) ZerarStoragesZombie() end else doBroadcastMessage("No one survived in the Zombie Event.", MESSAGE_EVENT_ADVANCE) HaveCreatureZombie(zombie_config.arena, true) ZerarStoragesZombie() end return false end end return true]]></event> <globalevent name="Zombie_Start" interval="60" event="script"><![CDATA[ domodlib('zombie_config') function onThink(interval, lastExecution) if zombie_days[os.date("%A")] then local hrs = tostring(os.date("%X")):sub(1, 5) if isInArray(zombie_days[os.date("%A")], hrs) and getGlobalStorageValue(zombie_config.storages[3]) <= 0 then local tp = doCreateItem(1387, 1, zombie_config.teleport[1]) doItemSetAttribute(tp, "aid", 45110) CheckZombieEvent(zombie_config.CheckTime) setGlobalStorageValue(zombie_config.storages[1], 0) setGlobalStorageValue(zombie_config.storages[2], 0) HaveCreatureZombie(zombie_config.arena, true) end end return true end]]></globalevent> <event type="login" name="Zombie_Login" event="script"><![CDATA[ domodlib('zombie_config') function onLogin(cid) registerCreatureEvent(cid, "ZombieBattle") registerCreatureEvent(cid, "ZombieStats") if isInRange(getPlayerPosition(cid), zombie_config.arena[1], zombie_config.arena[2]) then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) end return true end]]></event> <event type="combat" name="ZombieBattle" event="script"><![CDATA[ domodlib('zombie_config') if isPlayer(cid) and isPlayer(target) and isInRange(getPlayerPosition(cid), zombie_config.arena[1], zombie_config.arena[2]) then doPlayerSendCancel(cid, "You may not attack this player.") return false end return true ]]></event> <movevent type="StepIn" actionid ="45110" event="script"><![CDATA[ domodlib('zombie_config') function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerAccess(cid) > 3 then return doTeleportThing(cid, zombie_config.teleport[2]) end if getPlayerLevel(cid) < zombie_config.min_Level then doTeleportThing(cid, fromPosition, true) doPlayerSendCancel(cid, "You need to be at least level " .. zombie_config.min_Level .. ".") doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) return true end if getGlobalStorageValue(zombie_config.storages[1]) <= zombie_config.players.max then doTeleportThing(cid, zombie_config.teleport[2]) setGlobalStorageValue(zombie_config.storages[1], getGlobalStorageValue(zombie_config.storages[1])+1) doBroadcastMessage(getPlayerName(cid) .. " entered the Zombie event! Currently " .. getGlobalStorageValue(zombie_config.storages[1]) .. " players have joined!", MESSAGE_STATUS_CONSOLE_RED) if getGlobalStorageValue(zombie_config.storages[1]) == zombie_config.players.max then setGlobalStorageValue(zombie_config.storages[1], getGlobalStorageValue(zombie_config.storages[1])+1) removeZombieTp() doBroadcastMessage("The Zombie event is now full [" .. getGlobalStorageValue(zombie_config.storages[1])-1 .. " players]! The event will soon start.") for _, var in pairs(getPlayersInZombieEvent()) do doPlayerSendTextMessage(var, MESSAGE_EVENT_ADVANCE, "The first zombie will spawn in " .. zombie_config.timeToStartEvent .. " seconds! Good luck!") end addEvent(spawnZombie, zombie_config.timeToStartEvent*1000) end end return true end]]></movevent> <talkaction words="/zombiestart;!zombiestart" access="5" event="buffer"><![CDATA[ domodlib('zombie_config') if getGlobalStorageValue(zombie_config.storages[3]) > 0 then doPlayerSendCancel(cid, "The event is already starting.") return true elseif not param or not tonumber(param) then doPlayerSendCancel(cid, "Use only numbers.") return true end local param = tonumber(param) <= 0 and 1 or tonumber(param) local tp = doCreateItem(1387, 1, zombie_config.teleport[1]) doItemSetAttribute(tp, "aid", 45110) CheckZombieEvent(tonumber(param)) ZerarStoragesZombie() setGlobalStorageValue(zombie_config.storages[3], 1) HaveCreatureZombie(zombie_config.arena, true) ]]></talkaction> <globalevent name="ZombieDebug-Start" type="start" event="buffer"><![CDATA[ domodlib('zombie_config') ZerarStoragesZombie() return true]]></globalevent> </mod>
-
(Resolvido)PORTAIS QUE MUDAM COORDENADAS 8.60
Obrigado amigo, funcionou certinho aqui REP++
-
(Resolvido)PORTAIS QUE MUDAM COORDENADAS 8.60
Pessoal, ja tem um tempo que não mexo com OT, então to meio esquecido de tudo. Queria pedir ajuda de vcs pra fazer um script que funcionaria assim.... Ex: São 2 portais... 1 dos portais deverá sair da cave e o outro vc será levado para um bixo mt forte, onde provavelmente vc irá morrer... então, eu queria que esses 2 portais, funcionasse aleatoriamente.. você entrar em um, e ter a chance de sair ou morrer... no caso seria na sorte... tem como fazer algo do tipo ? para servidor 8.60
-
Substituir sprites do tibia por sprites novas
Boa noite pessoal, eu tenho uma duvida, eu estou querendo criar um mapa do zero.. então abri o rme e fui editando e futuramente irei colocar em alguma base de algum servidor.. só que eu tive uma ideia de querer fazer novas sprites pro meu mapa, e eu queria substituir as que tem no cliente original pelas minhas sou novato nisso, mas dei uma pesquisada e pelo que vi, é feito pelo ObjectBuilder, eu mudei algumas lá e compilei pra fazer um teste substitui o que eu editei no cliente e botei no rme tbm... mas quando eu abro o meu mapa, as sprites que botei não aparece alguem me diz se to fazendo errado ou tem algo a mais pra fazer, por favor Pra deixar mais claro... eu quero substituir um item existente no tibia pelo item que eu criei e quero que ele apareça no RME