Ir para conteúdo
  • Cadastre-se

Sitema/Mod [MODS] - [8.6] Perfect Zombie System [Automático] [V1.0]


Posts Recomendados

[19:46:29.536] > Loading Zombie.xml...[Warning - MoveEvents::addEvent] Duplicate move event found: 45110
[19:46:29.539] [Warning - TalkAction::registerEvent] Duplicate registered talkaction with words: /zombiestart
[19:46:29.539] [Warning - TalkAction::registerEvent] Duplicate registered talkaction with words: !zombiestart

estou com esses erros pode me ajudar?

 

 

image.thumb.png.95220c5a8213fc71e57198148f0494d3.png

Editado por ADM Mayk on BaiakME (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 month later...
  • Respostas 107
  • Created
  • Última resposta

Top Posters In This Topic

Top Posters In This Topic

Popular Posts

Qual dúvida ou erro poste no tópico que estarei respondendo.     Obs: Antes que me falem besteiras, coloquei para os GM'S, CM'S E GOD'S não contarem no evento, então testem apenas com j

pronto

sim, abre a lib(se você usa tudo por lua) do zombie  ou no MODS e procure por essa linha:   doCreateMonster(zombie_config.monster_name, pos, false, false, false)   e troque por essa:

Posted Images

ola eu instalei seu mods no meu servidor mais ta dando esse erro voce poderia me ajudar segue a baixo o erro ..

 

[Error - GlobalEvent Interface]
In a timer event called from:
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:onThink
Description:
(luaDoCreateMonster) Monster with name 'Zombie Event' not found
[Warning - Npc::createNpc] Cannot find npc with name: Zombie Event.

[Error - GlobalEvent Interface]
In a timer event called from:
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:onThink
Description:
(luaDoCreateNpc) Npc with name 'Zombie Event' not found
ThursdayThursday
 

 

Link para o post
Compartilhar em outros sites
  • 3 weeks later...
  Em 13/09/2018 em 19:39, Pro Jota disse:

ola eu instalei seu mods no meu servidor mais ta dando esse erro voce poderia me ajudar segue a baixo o erro ..

 

[Error - GlobalEvent Interface]
In a timer event called from:
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:onThink
Description:
(luaDoCreateMonster) Monster with name 'Zombie Event' not found
[Warning - Npc::createNpc] Cannot find npc with name: Zombie Event.

[Error - GlobalEvent Interface]
In a timer event called from:
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:onThink
Description:
(luaDoCreateNpc) Npc with name 'Zombie Event' not found
ThursdayThursday
 

 

 

Mostrar mais  

 

Instale o monstro que está no tópico no seu OT, diz que não está encontrando ele!

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
  • 1 month later...
  Em 17/02/2017 em 18:52, Vodkart disse:

pronto

 

Mostrar mais  

Maninho, tem como me salvar denovo, eu acho que nesse post aqui que te citei, você tinha salvado minha vida, mas nao sei oque era que você postou, nao ta aparecendo que mudou ou editou algo, tem como ver meu erro novamente? ta na primeira pagina, é esse aqui que vou citar.

 

  Em 17/02/2017 em 18:44, Zzyzx disse:

 

 

 

 

Sim estou usando o seu Monstro, então meu querido, ainda ta o erro da distro, mas estava aqui pensando eu acho que pode ser meu mapa do evento que esta bugando, criei ele aqui rapidinho e acho que o script ta tentando criar o zombie no local que não da pra andar no tile de ID: 100 que esta envolta do mapa, e nóis meu parceiro agora só dar aqueles REP+ de lei né, to procurando esse script faz uns 3 anos, todos que tento nao funciona =s VALLLLLLLLLLLLEEEEEEEEEEUUUUUUUUUU !

 

TQp9PTg.jpg

 

Mostrar mais  

 

       112674.gif

 

 

 

Link para o post
Compartilhar em outros sites

10:55 The Zombie event could not start because of to few players participating.
 At least 2 players is needed!

 

 

PS: eu coloquei 2 players (Como players normal) > 1 <

E ainda da esse erro.

Link para o post
Compartilhar em outros sites
  • 4 weeks later...
  Em 28/12/2018 em 16:49, BilauX disse:

boa tarde, no arquivo pra baixar não tem o mapa, kd o link do mapa ???

 

Mostrar mais  

 

Não tem mapa, aquilo era um exemplo de como adicionar as posição no código.

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
  • 2 weeks later...

@Vodkart o evento no termina e num gana, no da premio players morrem mais evento fica continuo

8/1/2019 15:7:8] > Broadcasted message: "The Zombie event is now full [2 players]! The event will soon start.".
[8/1/2019 15:7:38] > Broadcasted message: "A zombie has spawned! There is currently 1 zombies in the zombie event!".
[8/1/2019 15:7:54] > Broadcasted message: " O Jogador Ivana [Level: 57] Foi morto pelo monstro Zombie Event [1].".

[8/1/2019 15:7:55] [Error - CreatureScript Interface] 
[8/1/2019 15:7:55] data/creaturescripts/scripts/advancesave.lua:onAdvance
[8/1/2019 15:7:55] Description: 
[8/1/2019 15:7:55] (LuaInterface::luaAddEvent) Callback parameter should be a function

[8/1/2019 15:7:55] [Error - CreatureScript Interface] 
[8/1/2019 15:7:56] data/creaturescripts/scripts/advancesave.lua:onAdvance
[8/1/2019 15:7:56] Description: 
[8/1/2019 15:7:56] (LuaInterface::luaAddEvent) Callback parameter should be a function

Link para o post
Compartilhar em outros sites

@Calidoress o erro é em outro script

 

data/creaturescripts/scripts/advancesave.lua:onAdvance

 

coloca esse script para eu dar uma olhada.

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

Yep is this https://pastebin.com/YLPvAXHr @Vodkart

Editado por Calidoress (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  Em 10/01/2019 em 16:55, Calidoress disse:

Up$ @Vodkart

 

Mostrar mais  

 

Você usa a versão mods? caso a resposta seja sim, troque para a versão de arquivos em LUA, o mesmo se encontra em anexo no tópico... Deve estar gerando conflito entre os arquivos.

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
  • 1 month later...
  Em 30/06/2018 em 20:26, Vodkart disse:

@William Oliveira

qual versão do seu distro e ot?

tenta usar aasim

 

<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)))
			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)))
				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>

 

 

Mostrar mais  

@Vodkart desculpa reviver o tópico, mas eu estou com o mesmo erro

O evento ocorre normalmente, porém quando apenas um player continua vivo, o evento fala como se ninguém tivesse ganhado, e o player fica preso no evento 

Meu servidor é 8.6 

                         0.4

Meu código:

  Mostrar conteúdo oculto

 

Link para o post
Compartilhar em outros sites
  • 2 months later...

@Vodkart
Você poderia me ajudar?
Estou tendo esse erro:

 

[7:1:27.232] [Error - CreatureEvent::configureEvent] No type for creature event.
[7:1:27.232] [Warning - BaseEvents::loadFromXml] Cannot configure an event

 

Instalei usando os arquivos .lua que você disponibilizou.
Obrigado.

Link para o post
Compartilhar em outros sites
  • 5 months later...
  Em 03/03/2017 em 19:59, Vodkart disse:

 

 

sim, abre a lib(se você usa tudo por lua) do zombie  ou no MODS e procure por essa linha:

 

doCreateMonster(zombie_config.monster_name, pos, false, false, false)

 

e troque por essa:

 

doSummonCreature(zombie_config.monster_name, pos)

 

 

Mostrar mais  

Vod, consegui fazer tudo certinho, só que, quando os zombie me mata não acontece nada, ah, e quando um player morre, para de nascer os zombies, testei o evento em um server baiak ice rox

Editado por Eduardo1534
faltou info (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 month later...

Conteudo bom, porem no meu servidor tfs 0.4 e 8.6 não funciona..

ja tentei de tudo. Acabei desistindo. Nem o mods nem o .lua...

 

Editado por alexpaimel (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 month later...

@Vodkart

Se puder ajudar agradeço, TFS 0.4

To com um seguinte erro na distro do creaturescript:

 

[Error - CreatureScript Interface]
data/creaturescripts/scripts/zombie_creature.lua:onStatsChange
Description:
(luaDoPlayerAddItem) Item not found

[Error - CreatureScript Interface]
data/creaturescripts/scripts/zombie_creature.lua:onStatsChange
Description:
(luaDoItemSetAttribute) Item not found

 

Meu zombie_creature.lua :

function onStatsChange(cid, attacker, type, combat, value) 
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
end
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
function onCombat(cid, target)
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
end

 

Link para o post
Compartilhar em outros sites

@DouGlaS Mapper Estranho, não está entregando o troféu... configurou o ID do trofeu ali? o resto da premiação ainda está dando?

 

tenta remover essas 2 linhas:

 

				local goblet = doPlayerAddItem(winner, zombie_config.rewards.trophy, 1)
				doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(winner) .. " for winning the Zombie event.")

 

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites
  Em 24/01/2020 em 18:57, Vodkart disse:

@DouGlaS Mapper Estranho, não está entregando o troféu... configurou o ID do trofeu ali? o resto da premiação ainda está dando?

 

tenta remover essas 2 linhas:

 

				local goblet = doPlayerAddItem(winner, zombie_config.rewards.trophy, 1)
				doItemSetAttribute(goblet, "description", "Awarded to " .. getPlayerName(winner) .. " for winning the Zombie event.")

Funcionou perfeitamente, sem nem um erro, muito obrigado mestre ^^

Percebi que não ta spawnando mais do que 7 zombies tem algum lugar que configura pra spawnar mais?

 

Expand   Mostrar mais  

 

Link para o post
Compartilhar em outros sites

@DouGlaS Mapper só 7 no máximo? eu acabei de testar aqui e spammo antes de terminar (testei com 2 players), ficaram 25 zombies no mapa.

 

e na outra tentativa, ficaram 13.

 

que server tais usando?

vodkart_logo.png

[*Ninguém será digno do sucesso se não usar suas derrotas para conquistá-lo.*]

 

DISCORDvodkart#6090

 

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por Absolute
      Olá amigos, membros, visitantes, papagaios, enfim...

      Depois de muito me pedirem o evento SNOWBAL WAR EVENT, trago ele 100% pra vocês.

      Como funciona?
      Os jogadores irão se divertir em uma emocionante partida de guerra de bolas de neve. O objetivo principal do evento é derrubar o número máximo de jogadores durante uma partida - atirando bolas de neve contra seus inimigos. O jogador que mais pontos fizer até o termino do evento será o vencedor (recompensa pode ser configurada).

      Sem delongas, vamos ao que interessa...
       
       
       
       

      Em data/actions abra o seu actions.xml e insira a seguinte linha:
       
       
      <action actionid="7900" event="script" value="snowballaction.lua" />

      Em data/actions/scripts crie um arquivo com o nome de snowballaction.lua e insira o seguinte conteúdo:
      function onUse(cid, item, frompos, item2, topos) if item.actionid == 7900 then if(SBW_AMMOINFI) then doPlayerSendTextMessage(cid, 27, "as bolas de neve sao infinitas, nao ha necessidade que voce compre-as.") else if (getPlayerStorageValue(cid, SBW_SCORE) > 0) and (getPlayerStorageValue(cid, SBW_AMMO) < 30) then doPlayerSetStorageValue(cid, SBW_SCORE, getPlayerStorageValue(cid, SBW_SCORE)-1) doPlayerSetStorageValue(cid, SBW_AMMO, getPlayerStorageValue(cid, SBW_AMMO)+SBW_AMMOBUY) doPlayerSendTextMessage(cid, 27, "Voce trocou " .. SBW_AMMOBUY .. "x bolas de neve por 1 ponto de placar.") doSendMagicEffect(getCreaturePosition(cid),4) else doPlayerSendTextMessage(cid, 27, "Voce nao possui pontos de jogo o suficiente ou ja esta carregando muitas bolas de neve.") end end end end  
       
       
       

      Em data/talkactions abra o seu talkactions.xml e insira a seguinte linha:
       
      <talkaction words="!snowball" event="script" value="snowballtalk.lua"/>

      Em data/talkactions/scripts crie um arquivo com o nome de snowballtalk.lua e insira o seguinte conteúdo:
      function onSay(cid, words, param, channel) local k = string.explode(param, ",") if(k[1] ~= nil) then if(string.upper(k[1]) == 'INFO') then local score = {} local output = "Voce tem " .. getPlayerStorageValue(cid, SBW_SCORE) .. " pontos.\nVoce tem "..getPlayerStorageValue(cid, SBW_AMMO).."x municoes.\n------------------\nO maior matador:\n" for _, pid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(pid, SBW_INEVENT) then table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)}) end end local lx = table.getn(score) if(lx > 3) then lx = 3 end table.sort(score, function(a, b) return a[2] > b[2] end) for k = 1,lx do output = output .. k..". "..score[k][1] .." [".. score[k][2] .."].\n" end doPlayerPopupFYI(cid, output) end if (string.upper(k[1]) == 'ATIRAR') then if(getPlayerStorageValue(cid, SBW_INEVENT) == 1) and not getTileInfo(getThingPos(cid)).protection then if getPlayerStorageValue(cid, SBW_EXAUSTHED) <= 1 then if(getPlayerStorageValue(cid, SBW_AMMO) > 0) then if SBW_STATUS == 'on' then if(SBW_AMMOINFI == false) then doPlayerSetStorageValue(cid, SBW_AMMO, getPlayerStorageValue(cid, SBW_AMMO)-1) end doPlayerSetStorageValue(cid, SBW_EXAUSTHED, 2) lineAnimation(getPlayerLookDirection(cid),getCreaturePosition(cid),12,cid,1,0,1,0,0,0,1,0) addEvent(doPlayerSetStorageValue, SBW_SHOOTEXAUSTHED, cid, SBW_EXAUSTHED, 1) if (getPlayerStorageValue(cid, SBW_AMMO) ~= 1) then doPlayerSendTextMessage(cid, 27, "Restam "..getPlayerStorageValue(cid, SBW_AMMO).."x bolas de neve.") else doPlayerSendTextMessage(cid, 27, "Usando sua ultima bola de neve, recarregue.") end end else doPlayerSendCancel(cid, "Voce esta sem bolas de neve, recarregue no centro do campo ou mate um inimigo.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end else doPlayerPopupFYI(cid, "Acalme-se voce deve esperar para atirar novamente.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) return false end else doPlayerPopupFYI(cid, "Voce precisa estar dentro evento ou fora da pz.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_POFF) end end end return true end function lineAnimation(lookDir,playerPos,effect,cid,fvar,fpos,ffound,fposV,fcheck,fvcid,floopCounter,fvpid, name) local var = fvar local pos = fpos local found = ffound local posV = fposV local check = fcheck local vcid = fvcid local loopCounter = floopCounter local vpid = fvpid local storage = SBW_EXAUSTHED if var < 2 then vcid = cid end pos = playerPos if not isInWallArray(convert(lookDir,pos)) then--isInWallArray({x=convert(lookDir,pos).x, y=convert(lookDir,pos).y,z=convert(lookDir,pos).z}) then --isInArray(t.onShoot.misc.walls_id, getThingfromPos({x=convert(lookDir,pos).x, y=convert(lookDir,pos).y,z=convert(lookDir,pos).z, stackpos=0}).itemid) then doSendDistanceShoot(pos, convert(lookDir,pos),effect) pos = convert(lookDir,pos) var=var+1 posV = convertV(lookDir,playerPos) for _, pid in ipairs(getPlayersOnline()) do if (getCreaturePosition(pid).x == pos.x and getCreaturePosition(pid).y == pos.y and getCreaturePosition(pid).z == pos.z) then --if loopCounter > 2 then vpid = pid --end if (vpid ~= vcid) then if var > 2 then if (getCreaturePosition(pid).x == posV.x and getCreaturePosition(pid).y == posV.y and getCreaturePosition(pid).z == posV.z) then killPlayer(pid,pos,getCreatureName(vcid)) if (lookDir == 0) or (lookDir == 2) then var = 6 else var = 8 end end end killPlayer(pid,pos,vcid) if (lookDir == 0) or (lookDir == 2) then var = 6 else var = 8 end end end loopCounter = loopCounter +1 end if (lookDir == 0) or (lookDir == 2) then if var ~= 6 then addEvent(lineAnimation, SBW_BALLSPEED, lookDir,pos,effect,nil,var,pos,found,posV,check,vcid,loopCounter,vpid) else var = 1 end else if var ~= 8 then addEvent(lineAnimation, SBW_BALLSPEED, lookDir,pos,effect,nil,var,pos,found,posV,check,vcid,loopCounter,vpid) else var = 1 end end else doSendMagicEffect(convert(lookDir,pos),2) var = 1 end end local ret = {} function convert(lookDir,pos) local positions = { [0] = {x = pos.x, y = pos.y-1, z = pos.z}, [1] = {x = pos.x+1, y = pos.y, z = pos.z}, [2] = {x = pos.x, y = pos.y+1, z = pos.z}, [3] = {x = pos.x-1, y = pos.y, z = pos.z} } ret = positions[lookDir] return ret end local ret = {} function convertV(lookDir,pos) local positions = { [0] = {x = pos.x, y = pos.y+1, z = pos.z}, [1] = {x = pos.x-1, y = pos.y, z = pos.z}, [2] = {x = pos.x, y = pos.y-1, z = pos.z}, [3] = {x = pos.x+1, y = pos.y, z = pos.z} } ret = positions[lookDir] return ret end function isInWallArray(pos) for k = 0, table.getn(SBW_WALLSID) do if getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k] then --this doesn't even make sense but tried other ways and it gave errors, so meh 2lazy2search return true end end return false end function killPlayer(cid, pos, killer) local t_l = SBW_AREA[1] local b_r = SBW_AREA[2] local posti = {} local isPossibleToTeleportPlayer = false while (isPossibleToTeleportPlayer == FALSE) do posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7) if isInWallArray(posti) == FALSE then isPossibleToTeleportPlayer = TRUE end end doTeleportThing(cid, posti) doSendMagicEffect(pos,2) doSendMagicEffect(posti,6) doSendAnimatedText(pos, ""..getCreatureName(killer).." ", 55) doPlayerSendTextMessage(cid, 27, "Voce morreu para "..getCreatureName(killer)..".") doPlayerSetStorageValue(killer, SBW_SCORE, getPlayerStorageValue(killer, SBW_SCORE)+SBW_POINTSKILL) doPlayerSendTextMessage(killer, 27, "You've killed "..getCreatureName(cid)..".") if SBW_LOSTSCORE then doPlayerSetStorageValue(cid, SBW_SCORE, getPlayerStorageValue(cid, SBW_SCORE)-1) end if SBW_RESETAMMO then doPlayerSetStorageValue(cid, SBW_AMMO, SBW_MINAMMO) end end  
       
       
       
       
      Em data/globalevents abra o seu globalevents.xml e insira a seguinte linha:
      <globalevent name="StartSBW" time="19:00" event="script" value="events/snowballglobalevent.lua"/>
      Em data/globalevents/scripts crie um arquivo com o nome de snowballglobalevent.lua e insira o seguinte conteúdo:
      function onTime() function isInWallArray(pos) for k = 0, table.getn(SBW_WALLSID) do if (getTileItemById(pos, SBW_WALLSID[k]).itemid == SBW_WALLSID[k]) then return true end end return false end function endsnowball() local score = {} if not SBW_USEWAIT then doRemoveItem(getTileItemById(SBW_TP, 1387).uid) end for _, pid in ipairs(getPlayersOnline()) do if getPlayerStorageValue(pid, SBW_INEVENT) > 0 then table.insert(score, {getCreatureName(pid), getPlayerStorageValue(pid, SBW_SCORE)}) doPlayerSetStorageValue(pid, SBW_INEVENT, 0) doPlayerSetStorageValue(pid, SBW_SCORE, 0) doPlayerSetStorageValue(pid, SBW_AMMO, 0) doTeleportThing(pid, SBW_TPEND) end end table.sort(score, function(a, b) return a[2] > b[2] end) --local random_item = SBW_REWARDS[math.random(1, #SBW_REWARDS)] local hora = os.date("%X") local data = os.date("%x") if table.getn(score) > 0 then if SBW_ADDREWARD then for _, pid in ipairs(getPlayersOnline()) do if getCreatureName(pid) == score[1][1] then for op,ad in pairs(SBW_REWARDS) do doPlayerAddItem(pid, ad[1], ad[2]) end break end end end db.query("INSERT INTO `snowballwar` VALUES ('', ".. db.escapeString(score[1][1]) .. ",".. score[1][2] ..", ".. db.escapeString(data) ..", ".. db.escapeString(hora) ..");") db.query("UPDATE `players` SET `sbw_points`=`sbw_points`+".. score[1][2] .." WHERE `name` = " .. db.escapeString(score[1][1]) .. ";") doBroadcastMessage("[SNOWBALL EVENT] encerrou-se, parabens ao jogador "..score[1][1].." que venceu o SnowBall Event com "..score[1][2].." pontos.") end return true end local t_l = SBW_AREA[1] local b_r = SBW_AREA[2] function moveToEvent() for _, pid in ipairs(getPlayersOnline()) do if isInRange(getCreaturePosition(pid), SBW_WAITROOM[1], SBW_WAITROOM[2]) then local posti = {} local isPossibleToTeleportPlayer = false while (isPossibleToTeleportPlayer == FALSE) do posti = Position(math.random(t_l.x,b_r.x), math.random(t_l.y, b_r.y), 7) if (isInWallArray(posti) == FALSE) then isPossibleToTeleportPlayer = TRUE end end doTeleportThing(pid, posti) doPlayerSetStorageValue(pid, SBW_INEVENT, 1) doPlayerSetStorageValue(pid, SBW_AMMO, SBW_MINAMMO) doPlayerSetStorageValue(pid, SBW_SCORE, 0) doPlayerSendTextMessage(pid, 27, "[SNOWBALL WAR] Seja bem vindo, aqui estao os comandos que voce vai usar durante o evento\n!snowball atirar --Atirar uma bola de neve.\n!snowball info --Isso mostra seus pontos de jogos e a quantia de bolas de neve que voce tem. Tambem mostra o ranking de pontos do evento.\n Recarregue suas bolas de neve clicando em frente ao gerador no centro do campo.\nAltamente recomendado adicionar estes comandos a sua hotkeys.") end end doRemoveItem(getTileItemById(SBW_TP, 1387).uid) addEvent(endsnowball, SBW_DURATION*1000*60) doBroadcastMessage(SBW_MSGSTART) end local time = os.date("*t") local timeopen1 = math.ceil(SBW_TIMEWAIT / 4) local timeopen2 = math.ceil(SBW_TIMEWAIT / 2) if (SBW_STARTAUTO) and (isInArray(SBW_DAYS,time.wday)) then doBroadcastMessage(SBW_MSGWARNING) if SBW_USEWAIT then addEvent(doBroadcastMessage, timeopen1*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen2 .." minuto(s) para iniciar o evento!") if (timeopen2 ~= timeopen1) then addEvent(doBroadcastMessage, timeopen2*1000*60, "[SNOWBALL WAR] - Resta(m) ".. timeopen1 .." minuto(s) para iniciar o evento!") end addEvent(moveToEvent, SBW_TIMEWAIT*1000*60) doCreateTeleport(1387, SBW_TPGO, SBW_TP) else if SBW_TFS == "0.3" then doItemSetAttribute(doCreateItem(1387, SBW_TP), "aid", 2880) else doSetItemActionId(doCreateItem(1387, SBW_TP), 2880) end if(SBW_DURATION > 0) then addEvent(endsnowball, SBW_DURATION*1000*60) end end end return true end  
       
       
       
       
      Em data/movements abra o seu movements.xml e insira a seguinte linha:
      <movevent type="StepIn" actionid ="2880" event="script" value="snowballmovement.lua"/>  
      Em data/movements/scripts crie um arquivo com o nome de snowballglobalmovement.lua e insira o seguinte conteúdo:
      function onStepIn(cid, item, pos) doTeleportThing(cid, SBW_TPGO) doBroadcastMessage("[SNOWBALL WAR] O " ..getCreatureName(cid).. " player esta participando do evento snowball.", MESSAGE_STATUS_CONSOLE_ORANGE) doPlayerSetStorageValue(cid, SBW_INEVENT, 1) doPlayerSetStorageValue(cid, SBW_AMMO, SBW_MINAMMO) doPlayerSetStorageValue(cid, SBW_SCORE, 0) end  
       
       
       
       
      Já estamos quase terminando!
      Agora em data/lib crie um arquivo com o nome de SBW.lua com o seguinte conteúdo:
       
      -- This script is part of Snow Ball War Event Tibiaking Absolute -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see <http://www.gnu.org/licenses/>. -- // -- POSIÇÕES IMPORTANTES SBW_AREA = {{x = 1214, y = 1205, z = 7}, {x = 1251, y = 1242, z = 7}}-- AREA DO EVENTO | Canto superior esquerdo / inferior direito SBW_WAITROOM = {{x = 1229, y = 1220, z = 6}, {x = 1235, y = 1226, z = 6}} -- AREA DE ESPERA | Canto superior esquerdo / inferior direito SBW_TP = {x = 165, y = 45, z = 7} -- local onde teleport sera criado (entrada de jogadores) SBW_TPGO = {x = 1232, y = 1223, z = 6} -- local onde teleport vai levar (saida de jogadores) SBW_TPEND = {x = 155, y = 54, z = 7} -- local onde serao teleport ao final do evento SBW_GERADOR = {x = 1232, y = 1223, z = 7} -- local onde gerador vai ficar -- CONFIGURAÇÕES DO EVENTO SBW_DAYS = {1,2,3,4,5,6,7} -- dias de semana que vai abrir SBW_DURATION = 10 -- duração do evento em minutos SBW_POINTSKILL = 1 -- pontos de jogo por morte SBW_AMMOBUY = 20 -- quantia de munições compradas por cada ponto SBW_MINAMMO = 50 -- munição inicial dos jogadores SBW_TIMEWAIT = 3 -- tempo na sala de espera em minutos SBW_AMMOINFI = false SBW_LOSTSCORE = true SBW_RANDOMIZE = true SBW_RESETAMMO = true SBW_STARTAUTO = true SBW_USEWAIT = true --PREMIO DO EVENTO SBW_ADDREWARD = true SBW_REWARDS = { {6527,500}, {2345,1} } -- // Não mexa daqui para baixo SBW_TFS = "0.4" -- STORAGES SBW_EXAUSTHED = 2455 SBW_INEVENT = 2460 SBW_SCORE = 2465 SBW_AMMO = 2400 SBW_WALLSID = {5324,7003,7021,6712,7023,7002,6713,6714,6869,6822,6823,6824,6825,6826,6827,6828,6829,6830,6831,6832,6833,6707,6708,6709,6710,6711,2698,2697,7020,6719,6720,6721,6722,6723,6724,6725,6726,6727,6761,6762,6768,6769,4608,4609,4610,4611,4612,4613,4614,4615,4616,4617,4618,4619,4620,4621,4622,4623,4624,4625,4664,4665,4666,7008,7009,7010,7011,8239,7004,7005,7006,7007,6627,6628,6629,6630,6631,6632,6633,6634,6635,6636,6637,6638,7022} SBW_BALLSPEED = 150 SBW_SHOOTEXAUSTHED = 1000 SBW_SHOOTDIR = 0 SBW_STATUS = 'on' -- MENSAGENS SBW_MSGWARNING = "[SNOWBALL WAR] Abriu o teleport de ingresso para o evento, para participar se dirija ate o templo do servidor." SBW_MSGSTART = "[SNOWBALL WAR] O teleport foi removido e o evento foi iniciado, boa sorte a todos participantes." A frente das configuração solicitadas explica onde devem ser modificados.
       
       
       
       
       
      E por fim, vá até o seu banco de dados (phpmyadmin) e insira a seguinte query:
      CREATE TABLE IF NOT EXISTS `snowballwar` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `score` int(11) NOT NULL, `data` varchar(255) NOT NULL, `hora` varchar(255) NOT NULL, PRIMARY KEY (`id`), KEY `id` (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;  
      Ainda no phpmyadmin execute:
      ALTER TABLE `players` ADD `sbw_points` int(11);  
       
      Importe o arquivo SNOWBALL.otbm em seu mapa!
      Imagem do mapa:


      Download do mapa: https://www.sendspace.com/file/mae37z
      Scan do mapa: https://www.virustotal.com/pt/file/94a507c71ef4cc241e415f2a8290441f7fa77809d804e24be18e9581a85c4740/analysis/1479161634/
       
       


      É importante lembrar que peguei o script de um autor e realizei as modificações o tornando público para a comunidade exclusiva do TIBIAKING.

      Espero que façam um ótimo proveito.

      See you later.
  • Estatísticas dos Fóruns

    96824
    Tópicos
    519567
    Posts



×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo