Pesquisar na Comunidade
Mostrando resultados para as tags ''killer''.
Encontrado 3 registros
-
action [City War Event] Luta pela sobrevivência
um tópico no fórum postou MarceloHeuheuheu Mods, funções e outros
Fala galerinha linda do XTibia, hoje estou trazendo um evento que andei modificando e otimizando, é o evento City WAR, este evento tem no servidorglobalwar e 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: Quando um GM executar o comando para abrir o evento, abrirá um teleport no lugar configurada onde os membros entraram em uma arena onde não perde level nem skills, o evento terá o tempo de 20 minutos (configurável), caso o player morra poderá voltar novamente pelo teleport que estará localizado no lugar até o termino do evento, a regra é clara produção, quando der os X minutos, o que mais matou levará para a casa backpack o prêmio do evento. 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 end Configuração do arquivo: telpos = {x=32340, y=32213, z=7}, -- POSIÇÃO ONDE NASCE O TP DO EVENTO! topleftPos = {x=32722, y=31336, z=6}, -- AQUI COLOQUE A POSIÇÃO DO CANTO ESQUERDO LA EM CIMA DO MAPA botrightPos = {x=32791, y=31384, z=6}, -- AQUI A POSIÇÃO DO CANTO DIREITO EM BAIXO DO MAPA templepos = {x=32369, y=32241, z=7}, -- POSIÇÃO DO TEMPLO ONDE OS JOGADORES NASCERAM PÓS A MORTE 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}}, -- ATENÇÃO, NO MAPA QUE ESTAREI DISPONIBILIZANDO VISIVELMENTE TERÁ 4 BASES, VOCÊ TERA QUE COLOCAR A POSIÇÃO DAS BASES AÍ NESSES 3 LUGARES. doPlayerAddItem(cid, 6571, 1) -- AQUI VOCÊ COLOCARÁ O PRÊMIO DO GANHADOR, NO CASO QUEIRA ADICIONAR POR EXEMPLO 1kk, COLOQUE 2160,1 - Primeiro ID depois quantia. Segundo passo, crie um arquivo com o nome de citywarCreature.lua e coloque dentro da pasta creaturescripts/scripts com o seguinte conteúdo: function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) if isInRange(getCreaturePosition(cid), configCW.topleftPos, configCW.botrightPos) then setPlayerStorageValue(cid, configCW.death, getPlayerStorageValue(cid, configCW.death) +1) setPlayerStorageValue(lastHitKiller[1], configCW.kill, getPlayerStorageValue(lastHitKiller[1], configCW.kill) +1) end return true end E adicione em creaturescripts.xml a seguinte tag <event type="preparedeath" name="CityWar" event="script" value="citywarCreature.lua"/> Terceiro passo, crie um arquivo em movements/scripts com o nome de citywarMovements.lua com o seguinte conteúdo: function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition) if isPlayer(cid) and getGlobalStorageValue(configCW.stats) == 1 then doTeleportThing(cid, configCW.arenapos[math.random(1, #configCW.arenapos)]) doSendMagicEffect(getPlayerPosition(cid), 28) if not(configCW:isPlayerInEvent(cid)) then setPlayerStorageValue(cid, configCW.stats, getGlobalStorageValue(configCW.ostime) + configCW.evttime*60 + configCW.finaltime) setPlayerStorageValue(cid, configCW.kill, -1) setPlayerStorageValue(cid, configCW.death, -1) end else doTeleportThing(cid, fromPosition) end return true end Em Movements.xml adicione a seguinte linha <movevent type="StepIn" actionid="5540" event="script" value="citywarMovements.lua"/> Quarto e último passo, em talkactions/scripts crie um arquivo com o nome de citywarTalkactions.lua e coloque o seguinte conteúdo: function onSay(cid, words, param) if getGlobalStorageValue(configCW.stats) == -1 then configCW:new() else doPlayerSendCancel(cid, "The event is already running.") end return true end Em talkactions/talkactions.xml adicione a seguinte linha: <talkaction log="yes" words="/citywar" access="3" event="script" value="citywarTalkactions.lua"/> Este mapa é para o evento! Download : http://www.mediafire...ld City War.rar Scan : https://www.virustot...sis/1402539782/ Créditos: Absolute. Collocor.- 9 respostas
-
- city war
- maior matador
- (e 5 mais)
-
Para se upar em conjunto, preferencialmente deve-se ter um Killer, um healler e um Blocker. > Quem pode fazer o papel de Blocker? Apenas a vocação de Elite Knight [E.K] (por possuir a magia exeta res, outras vocações não possuem esta magia; logo não cumprindo o real papel de um blocker) > Quem pode fazer o papel de Healler? 1- Druidas (por possuírem magias de cura direcionada [exura sio / exura gran mas res]. 2- Sorcerer (por ter um grade nível magico, logo uma grande cura ao se tratar na utilização da UH). --> Os druidas sempre serão os melhores heallers, uma vez que as magias citadas tem um maior potencial de cura e é automaticamente direcionada ao player em sua utilização (fora que eles, caso queiram podem utilizar da UH). A UH cura bem se utilizada por um mago, porém são manualmente direcionadas e não curam tanto quanto a magia. > Quem pode fazer o papel de Killer? 1- Paladinos (conseguem um grande skills rapidamente, logo emitem um grande dano. Eles são mais auto suficientes que magos, por possuírem uma quantidade de vida mediana, e uma das melhores magias de auto curas do jogo). 2- Magos (usam magias e runas de grande poder, porém possuem pouca vida necessitando portanto a todo momento do Blocker [nunca é aconselhável a utilização do utamo vita e sim do energy ring]). Bom, uma vez que já localizado o seu papel na caçada continuemos. O loot sempre será do blocker, caso exista mais de um blocker eles devem dividir entre si. Sim, eu sei que os healers e killers geralmente tem um maior gasto (Runas, Potions, Rings, Etc..), mas não se esqueça de quem esta pondo sua cara a tapa, de quem esta entre a vida de seu personagem e a morte.. Claro sempre pode haver um acordo de divisão entre os killers, blockers e heallers. >> Uma boa divisão seria: O loot do primeiro monstro é seu, do segundo é seu, do terceiro é seu e assim suscetivamente. Para ingressar em uma caçada em grupo como fora visto é necessário no mínimo um E.K e um Mage (pois os magos fazem o papel de healler e killer). Como se posicionar em uma caçada em grupo: A posição depende muito do papel ao qual o seu personagem cumpre. Onde falando 'xucramente' o blocker fica na frente da criatura, os paladinos (killers) logo após os blockers e por ultimo os magos (killers/heallers). Nunca saia desta posição, ou seja, se você não é blocker nunca vá na frente, nem que seja para sair do local onde você esta tomando dano.. Ir para linha de frente sem ser blocker significa: Morrer sozinho/ ou lurar muitas criaturas e morrer todo o seu 'time'. Caso você queira leve magic wall ou wild growth rune, elas são de grande auxilio (seja para escapar de um PK ou para ajudar na própria caçada). A posição do seu char vai depender da criatura enfrentada. Caso seja uma criatura de apenas danos meele você deve se posicionar ao lado do blocker e preferencialmente ao lado de uma parede, magic wall, ou algo do genero.. para que quando uma criatura (caso apareça) e comece a bater em você o kina não precise sair de sua posição para dar exeta res. Olhe o exemplo da imagem abaixo: Repare em qualquer posição que o monstro estivesse atacando o healler, o blocker facilmente conseguiria lurar a criatura para si, fazendo com que o healler fique livre de perigos. Agora o segundo tipo de criatura, as de waver.. Bom estas criatura são um pouco mais complicadas de se caçar, o healler sempre deve ficar do lado oposto a criatura, ou seja, o target deve ser as costas da criatura.. Para isto o blocker deve ter a habilidade de lurar a criatura e posicionar a criatura de uma forma que as magias de área dela não atinja o seu healler. Ou seja, o healler deve ficar parado e o blocker quem deve andar, posicionando a criatura de uma forma que as magias de cura do healer o atinja e o healer sempre tenha um espaço para atacar, e eles não devem se afastar muito um do outro, por motivos já citados. Obs: healers, mesmo que vocês estejam tomando dano fiquem parados! Para auxiliar o blocker na hora do exeta res, vocês andando só vão atrapalhar o blocker em te ajudar a se livrar deste incomodo. Sempre que possível em uma caçada em grupo utilize do EXP share. Sobre o Exp. Share:
-
ek [Tutorial] Killer Caiman Hunt
um tópico no fórum postou JustinnoTibianno Exposições de Characters
[Hunt Killer Caiman Zao] Tudo bem moçada? Vim trazer essa hunt que da uma xp absurda para o level mencionado, é equivalente a o que seria os water elementals para os sorcerers, só que o killer são dos knight! Informações da Cave Local: Zao Steppe Respawn: De um em um, porém é possível lurar 2, 3, ou até 4 (mas a gente não vai fazer isso). Confronto: Procure sempre confrontar sempre 1 de cada vez, com 2 você até aguenta, mas vai gasta algumas pots, com 3 não da, fuja ou ache um lugar pra levar porrada só de dois ou um. Exp/hora: Se você estiver sozinho na hunt (díficil pelos bots) irá pegar 120k/hora moleza. Dinheiro/hora: varia um pouco, podendo chegar até 13k/hora. Recomandações e Requerimentos Quests necessárias: Ter feito pelo menos a primeira missão da The New Frontier Quest. Vocação Testada: Elite Knight (creio que não seja interessante as demais vocações pois a cave é fechadinha, ainda mais que os Killers têm Strong Haste). Nível Recomendado: 50 (é um bom nível para caçar, ainda mais que você pode fazer a task de Killer Caiman junto [eu upei do 50 ao 57 em 3 tasks]). ML Requerida: 5, pois a maneira que vou mostrar para vocês é necessário a Fire Bomb Rune. Skills Recomendados: 80/80 (acho que já da pra ir legal assim). 100 Mana Potions: se vai ocupar 1 slot da bp, que seja 100 de uma vez! 20 Strong Mana Potions: emergências. 35~40 Fire Bomb Runes: começe levando mais, quanto mais confiança você vai adquirindo (e level também) você vai levando menos. Porque usar Fire Bomb? (foto de leandro_mb, usuário do TibiaBR) Como vocês podem ver, ele está protegido dos outros dois caimans, provavelmente alguém lurou. Equipamentos Mínimos Royal Helmet Dragon Scale Mail Golden Legs Steel Boots Demon Shield Platinum Amulet Arma do seu Nível Obs: Set mínimo do mínimo, se você confrontar 3 répteis de uma vez, vai leva muita porrada. Spells Úteis Exura Ico: Se você for um EK level 50, você terá 815 de hp, com ml no mínimo 5, cure-se quando seu hp estiver inferior a 600 +/- (com 1 killer, com 2 é sempre bom ficar com full life). Utura: Use direto, não fique 5 segundos sem ela, é muito boa para complementar o healing. Exoris de Target: Se você querer matar mais rápido. Informação da Criatura Killer Caiman: o feroz. HP: 1500 XP: 900 ( 1350 com bônus). Dano: até 200 por turno. Habilidades: Strong Haste (fique atento, as vezes eles ficam tão rapidos que colam em você antes de você usar a fire bomb). Fortes contra físico, isso só resalta o skill que você tem que ter. Loot 0-180 gold coins (eita coisa boa) Giant Shimmering Pearl: 3k nos Npc's Crocodile Boots: 1k nos Npc's (pode achar preço melhor no market). Obsidian Lance: 500gp na Blue Djinn Fortress. 0-5 Small Emerald: Não dropa igual água, mas quando dropa (250gp cada). Piece of Crocodile Leather: Eu não pego, fique a vontade para pegar ou não (15gp cada). Como chegar lá Se você já fez a missão 1 da The New Frontier Quest, você já sabe chegar até Zao Steppe. Veja a distância entre o lugar que você completa a primeira missão da Quest e a cave. Círculo Preto: Aonde você completo a missão 1 da The New Frontier. Losango Preto: A cave. Pronto, você chegou na cave! Circulo Preto: Lugar que você acabou de entrar. Circulo Azul: Entrada para o floor 2 da cave. No segundo floor, as criaturas estão um pouco mais juntas umas às outras, então tome cuidado! Fire Bomb sempre! Triângulo Preto: Lugar que você desceu. Lembre-se, tome cuidado para não chamar mais que um, se tiver um bot na cave, não desista, eu nunca cacei la sozinho e sempre fazia 100k/hora ou mais. Críticas, sugestões são bem vindos!