Hmm, quem fez esse evento foi o @demonbholder ... ele é brasileiro. Fez pro globalwar. Se não
me engano já vi esse script aqui. Mas mandou bem em postar se não tiver =)
Por MarceloHeuheuheu, 26 de mai. de 2015 em Mods, funções e outros
info
Grupo: Campones
Registrado: 27/04/15
Posts: 53
Reputação: +22

Hmm, quem fez esse evento foi o @demonbholder ... ele é brasileiro. Fez pro globalwar. Se não
me engano já vi esse script aqui. Mas mandou bem em postar se não tiver =)
Canto esquerdo superior ? e o direito ?
na parte onde o tele ira nascer ou na mapa da city ?
info
Grupo: Grão-Duque
Registrado: 02/10/06
Posts: 3.3k
Reputação: +151
Gênero: Masculino

Canto esquerdo superior ? e o direito ?
na parte onde o tele ira nascer ou na mapa da city ?
Da arena, para definir o local dela. O canto superior e do outro lado o inferior.
#Topic
Muito bom esse script, já usei ele com algumas modificações, foi muito bem pensado.
Obrigado por compartilhar conosco.
Da arena, para definir o local dela. O canto superior e do outro lado o inferior.
#Topic
Muito bom esse script, já usei ele com algumas modificações, foi muito bem pensado.
Obrigado por compartilhar conosco.
mais aonde acontecera o evento não tem so 1 andar.. são 3 , como eu iria definir para os 3 anderes serem a sala do evento?
info
Grupo: Grão-Duque
Registrado: 02/10/06
Posts: 3.3k
Reputação: +151
Gênero: Masculino

Pega o canto superior esquerdo do andar mais alto até o campo inferior direito do andar mais baixo.
aqui fala que o evento ja está rolando... oque fazer?
info
Grupo: Campones
Registrado: 05/07/15
Posts: 80
Reputação: +1

aqui fala que o evento ja está rolando... oque fazer?
Aqui também!
info
Grupo: Campones
Registrado: 13/01/14
Posts: 23
Reputação: +16
Fala galerinha linda do XTibia, hoje estou trazendo um evento que andei modificando e otimizando, é o evento City WAR, este evento tem no
servidorglobalware outros.A autoria vem de um membro da otland, portante havia o mesmo aqui em um datapack e decidi otimizar este evento para vocês do XTibia.
Observação: É um pouco parecido com o evento do meu amigo e scripter
DuH, porém com mais funções e regras, mas o objetivo é praticamente o mesmo.Como funciona:
Vamos lá;
Primeiramente, em sua pasta data/lib crie um arquivo com o nome de city war.lua e dentro do mesmo coloque:
configCW = {timetostart = 500, -- tempo para iniciar o evento em segundos telpos = {x=32340, y=32213, z=7}, -- onde aparecerá o teleport stats = 201201201701, kill = 201201201702, death = 201201201703, ostime = 201201201704, evttime = 20, -- quanto tempo irá rolar o evento topleftPos = {x=32722, y=31336, z=6}, -- canto esquerdo superior botrightPos = {x=32791, y=31384, z=6}, -- canto direito inferior templepos = {x=32369, y=32241, z=7}, -- posição do templo principal arenapos = {{x=32722, y=31340, z=6}, {x=32786, y=31336, z=6}, {x=32722, y=31380, z=6}, {x=32783, y=31374, z=6}}, -- posição dos 4 tronos times = 8, -- não precisa mexer finaltime = 300 -- não precisa mexer } function configCW:new() local newevt = {} setmetatable(newevt, self) self.__index = self doBroadcastMessage("The City War will be open in " .. self.timetostart .. " seconds.") setGlobalStorageValue(self.stats, 0) addEvent(function () newevt:start() end, self.timetostart*1000) end function configCW:start() if getGlobalStorageValue(self.stats) == 0 then setGlobalStorageValue(self.ostime, os.time()) local teleport = doCreateItem(1387, self.telpos) doItemSetAttribute(teleport, "aid", 5540) setGlobalStorageValue(self.stats, 1) doBroadcastMessage("The City War is starting...") for _, posi in pairs(self.arenapos) do local item = getTileItemById(posi, 1387) if(item.uid ~= 0) then doRemoveItem(item.uid) end end addEvent(function () self:preclose() end, self.evttime*1000*60) addEvent(function () self:announce(0) end, (self.evttime/self.times)*1000*60) end end function configCW:announce(times) if times < self.times then if #self:getTopFrags(true) >= 1 then doBroadcastMessage("Top City War fraggers: " .. self:getTopFrags()) end addEvent(function () self:announce(times+1) end, (self.evttime/self.times)*1000*60) end end function configCW:preclose() if getGlobalStorageValue(self.stats) == 1 then setGlobalStorageValue(self.stats, 2) doBroadcastMessage("The City War will end in " .. self.finaltime .. " seconds.") addEvent(function () self:close() end, self.finaltime*1000) local item = getTileItemById(self.telpos, 1387) if(item.uid ~= 0) then doRemoveItem(item.uid) end end end function configCW:close() if getGlobalStorageValue(self.stats) == 2 then if #self:getTopFrags(true) >= 1 then doBroadcastMessage("The City War has ended. The winners are: " .. self:getTopFrags()) else doBroadcastMessage("The City War has ended. There were no winners.") end doRemovePlayersFromArea(self.topleftPos, self.botrightPos, self.templepos) for _, posi in pairs(self.arenapos) do doCreateTeleport(1387, self.templepos, posi) end for place, info in ipairs(self:getTopFrags(true)) do if place > 5 then break end local cid = getPlayerByName(info) doPlayerSendTextMessage(cid, 4, "Congratulations, you were the " .. place .. "º place in the City War.") doPlayerAddItem(cid, 6571, 1) end setGlobalStorageValue(self.stats, -1) end end function configCW:isPlayerInEvent(cid) if getPlayerStorageValue(cid, self.stats) == -1 or getPlayerStorageValue(cid, self.stats) - os.time() <= -5 or getGlobalStorageValue(self.stats) < 1 then return false end return true end function configCW:getTopFrags(tab) local frag = {} for _, pid in pairs(getPlayersOnline()) do if (getPlayerStorageValue(pid, self.kill) ~= -1 or getPlayerStorageValue(pid, self.death) ~= -1) and self:isPlayerInEvent(pid) then local kill = getPlayerStorageValue(pid, self.kill)+1 local death = getPlayerStorageValue(pid, self.death)+1 print(getCreatureName(pid), kill-death) table.insert(frag, {getCreatureName(pid), kill-death}) end end print(#frag) local frag, str, n = doOrderTab(frag, 0), nil, 5 print(#frag) if tab then return frag else if #frag < 5 then n = #frag end for i = 1, n do local cid = getPlayerByName(frag[i]) local kill = getPlayerStorageValue(cid, self.kill)+1 local death = getPlayerStorageValue(cid, self.death)+1 str = str and str .. ", " .. frag[i] .. "[" .. kill .. "/" .. death .. "]" or frag[i] .. "[" .. kill .. "/" .. death .. "]" end end return str end function doOrderTab(tabela, value) local max, index = {}, nil for i = 1, #tabela do valor = value for a, b in ipairs(tabela) do if b[2] > valor then valor = b[2] valor2 = b[1] index = a end end table.remove(tabela, index) if valor ~= value then table.insert(max, valor2) end end return max endConfiguração do arquivo:
telpos = {x=32340, y=32213, z=7}, -- POSIÇÃO ONDE NASCE O TP DO EVENTO!
E adicione em creaturescripts.xml a seguinte tag
Terceiro passo, crie um arquivo em movements/scripts com o nome de citywarMovements.lua com o seguinte conteúdo:
Em Movements.xml adicione a seguinte linha
Quarto e último passo, em talkactions/scripts crie um arquivo com o nome de citywarTalkactions.lua e coloque o seguinte conteúdo:
Em talkactions/talkactions.xml adicione a seguinte linha:
Este mapa é para o evento!
Download : http://www.mediafire...ld City War.rar
Scan : https://www.virustot...sis/1402539782/
Créditos:
Absolute..Collocor