Ir para conteúdo

Battlefield Event!


Vodkart

Posts Recomendados

? LOL

 

tenta usar assim no globalevents

 

function onThink(interval, lastExecution)
local _Lib_Battle_Days = {
	["Monday"] = {
		["16:00"] = {players = 30},
		["21:30"] = {players = 20}	
	},
	["Tuesday"] = {
		["17:02"] = {players = 8}	
	},
	["Thursday"] = {
		["11:26"] = {players = 4},
		["20:30"] = {players = 10}
	}
}
if _Lib_Battle_Days[os.date("%A")] then
local hours = tostring(os.date("%X")):sub(1, 5)	  
local tb = _Lib_Battle_Days[os.date("%A")][hours]
if tb and (tb.players % 2 == 0) then
local tp = doCreateItem(1387, 1, _Lib_Battle_Info.tpPos)
doItemSetAttribute(tp, "aid", 45000)
CheckEvent(_Lib_Battle_Info.limit_Time)
doBroadcastMessage("The event BattleField was opened and We are waiting "..tb.players.." Players! Team divided into "..((tb.players)/2).." VS "..((tb.players)/2))
setGlobalStorageValue(_Lib_Battle_Info.storage_count, tb.players)
return true
end
end
return true
end 

 

continuo com a mesma coisa

 

17:47 O campo de batalha foi aberto e estamos à espera 2 Players! Equipes divididas em 1 VS 1

17:47 Você se juntou à equipe Black Assassins!

17:47 Battlefield vai começar em 2 minutos, crie sua estratégia !

17:49 BattleField vai começar agora!

17:51 [battleField Information] Black Assassins 6 VS 8 Red Barbarians.

Link para o comentário
Compartilhar em outros sites

essa parte na lib troca as storages

 

 

_Lib_Battle_Info = {
Reward = {2160,10},
TeamOne = {name = "Black Assassins", storage = 150220, pos = {x=613,y=802,z=7}},
TeamTwo = {name = "Red Barbarians",storage = 150221,pos = {x=631,y=801,z=7}},
storage_count = 185400,
tpPos = {x=158, y=57, z=7},
limit_Time = 10 -- em minutos
}

Link para o comentário
Compartilhar em outros sites

essa parte na lib troca as storages

 

 

_Lib_Battle_Info = {
Reward = {2160,10},
TeamOne = {name = "Black Assassins", storage = 150220, pos = {x=613,y=802,z=7}},
TeamTwo = {name = "Red Barbarians",storage = 150221,pos = {x=631,y=801,z=7}},
storage_count = 185400,
tpPos = {x=158, y=57, z=7},
limit_Time = 10 -- em minutos
}

 

 

agr sim :D vlw

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...
  • 1 month later...

Eu adicionei tudo certinho... coloquei as coordenadas de onde os players da Assassin e Barbarian team vão aparecer quando entrar no teleport, porém não estão sendo teleportados.

 

O Teleport aparece no templo e quem tenta entrar nele não consegue, fica como se o teleport estivesse sem coordenadas.

 

Alguém me ajuda PLS!

 

BattleLib.lua

 

 


_Lib_Battle_Info = {
Reward = {2160,10},
TeamOne = {name="Black Assassins", storage=140120, pos={x=294,y=93,z=6}},
TeamTwo = {name="Red Barbarians", storage=140121, pos={x=309,y=93,z=6}},
storage_count = 180400,
tpPos = {x=155, y=54, z=7},
limit_Time = 4 -- em minutos
}

function resetBattle()
return setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) and setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0)
end

function OpenWallBattle()
local B = {
{3517,{x=303, y=107, z=6, stackpos = 1}},
{3517,{x=303, y=108, z=6, stackpos = 1}},
{3517,{x=303, y=109, z=6, stackpos = 1}},
{3517,{x=303, y=110, z=6, stackpos = 1}}
}
for i = 1, #B do
if getTileItemById(B[i][2], B[i][1]).uid == 0 then
doCreateItem(B[i][1], 1, B[i][2])
else
doRemoveItem(getThingfromPos(B[i][2]).uid,1)
end
end
end

function doBroadCastBattle(type,msg)
local players = {}
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 or getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 then
table.insert(players, cid)
end
end
for i = 1, #players do
doPlayerSendTextMessage(players[i],type,msg)
end
end

function removeBattleTp()
local t = getTileItemById(_Lib_Battle_Info.tpPos, 1387).uid
return t > 0 and doRemoveItem(t) and doSendMagicEffect(_Lib_Battle_Info.tpPos, CONST_ME_POFF)
end

function getWinnersBattle(storage)
local players,str = {},""
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, storage) == 1 then
table.insert(players, cid)
end
end
str = str .. ""..#players.." Player"..(#players > 1 and "s" or "").." from team "..(getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 and _Lib_Battle_Info.TeamTwo.name or _Lib_Battle_Info.TeamOne.name).." won the event battlefield, they received a ".._Lib_Battle_Info.Reward[2].." "..getItemNameById(_Lib_Battle_Info.Reward[1]).."!"
for i = 1, #players do
doPlayerAddItem(players[i], _Lib_Battle_Info.Reward[1], _Lib_Battle_Info.Reward[2])
doRemoveCondition(players[i], CONDITION_OUTFIT)
doTeleportThing(players[i], getTownTemplePosition(getPlayerTown(players[i])))
setPlayerStorageValue(players[i], storage, -1)
end
resetBattle()
OpenWallBattle()
return doBroadcastMessage(str)
end

function CheckEvent(delay)
if delay > 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
doBroadcastMessage("[battleField Event] We are waiting "..getGlobalStorageValue(_Lib_Battle_Info.storage_count).." players to Battlefield starts")
elseif delay == 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
local players = {}
for _, cid in pairs(getPlayersOnline()) do
if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 or getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 then
table.insert(players, cid)
end
end
for i = 1, #players do
doRemoveCondition(players[i], CONDITION_OUTFIT)
doTeleportThing(players[i], getTownTemplePosition(getPlayerTown(players[i])))
setPlayerStorageValue(players[i], getPlayerStorageValue(players[i], _Lib_Battle_Info.TeamOne.storage) == 1 and _Lib_Battle_Info.TeamOne.storage or _Lib_Battle_Info.TeamTwo.storage, -1)
end
doBroadcastMessage("The event cannot be started because not had enough players.")
setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0)
resetBattle()
removeBattleTp()
end
addEvent(CheckEvent, 60000, delay-1)
end

 

Editado por juliok80
Link para o comentário
Compartilhar em outros sites

Eu estou com o msm problema o teleporte aparece mas não estão sendo teleportados.

Quem ajuda rep+

 

 

_Lib_Battle_Info = {

Reward = {2160,10},

TeamOne = {name = "Akatsuki", storage = 140120, pos = {x=794,y=706,z=7}},

TeamTwo = {name = "Naçaos",storage = 140121,pos = {x=795,y=775,z=7}},

storage_count = 180400,

tpPos = {x=1000, y=925, z=7},

limit_Time = 10 -- em minutos

}

function resetBattle()

return setGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage, 0) and setGlobalStorageValue(_Lib_Battle_Info.TeamTwo.storage, 0)

end

function OpenWallBattle()

local B = {

{8476,{x=794, y=714, z=7, stackpos = 1}},

{8476,{x=793, y=714, z=7, stackpos = 1}},

{8476,{x=792, y=714, z=7, stackpos = 1}},

{8476,{x=791, y=714, z=7, stackpos = 1}},

{8476,{x=785, y=707, z=7, stackpos = 1}},

{8476,{x=785, y=706, z=7, stackpos = 1}},

{8476,{x=801, y=706, z=7, stackpos = 1}},

{8476,{x=801, y=705, z=7, stackpos = 1}},

{8476,{x=795, y=766, z=7, stackpos = 1}},

{8476,{x=794, y=766, z=7, stackpos = 1}},

{8476,{x=793, y=766, z=7, stackpos = 1}},

{8476,{x=786, y=773, z=7, stackpos = 1}},

{8476,{x=786, y=774, z=7, stackpos = 1}},

{8476,{x=802, y=773, z=7, stackpos = 1}},

{8476,{x=802, y=774, z=7, stackpos = 1}}

}

for i = 1, #B do

if getTileItemById(B[2], B[1]).uid == 0 then

doCreateItem(B[1], 1, B[2])

else

doRemoveItem(getThingfromPos(B[2]).uid,1)

end

end

end

function doBroadCastBattle(type,msg)

local players = {}

for _, cid in pairs(getPlayersOnline()) do

if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 or getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 then

table.insert(players, cid)

end

end

for i = 1, #players do

doPlayerSendTextMessage(players,type,msg)

end

end

function removeBattleTp()

local t = getTileItemById(_Lib_Battle_Info.tpPos, 1387).uid

return t > 0 and doRemoveItem(t) and doSendMagicEffect(_Lib_Battle_Info.tpPos, CONST_ME_POFF)

end

function getWinnersBattle(storage)

local players,str = {},""

for _, cid in pairs(getPlayersOnline()) do

if getPlayerStorageValue(cid, storage) == 1 then

table.insert(players, cid)

end

end

str = str .. ""..#players.." Player"..(#players > 1 and "s" or "").." from team "..(getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 and _Lib_Battle_Info.TeamTwo.name or _Lib_Battle_Info.TeamOne.name).." won the event battlefield, they received a ".._Lib_Battle_Info.Reward[2].." "..getItemNameById(_Lib_Battle_Info.Reward[1]).."!"

for i = 1, #players do

doPlayerAddItem(players, _Lib_Battle_Info.Reward[1], _Lib_Battle_Info.Reward[2])

doRemoveCondition(players, CONDITION_OUTFIT)

doTeleportThing(players, getTownTemplePosition(getPlayerTown(players)))

setPlayerStorageValue(players, storage, -1)

end

resetBattle()

OpenWallBattle()

return doBroadcastMessage(str)

end

function CheckEvent(delay)

if delay > 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then

doBroadcastMessage("[battleField Event] We are waiting "..getGlobalStorageValue(_Lib_Battle_Info.storage_count).." players to Battlefield starts")

elseif delay == 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then

local players = {}

for _, cid in pairs(getPlayersOnline()) do

if getPlayerStorageValue(cid, _Lib_Battle_Info.TeamOne.storage) == 1 or getPlayerStorageValue(cid, _Lib_Battle_Info.TeamTwo.storage) == 1 then

table.insert(players, cid)

end

end

for i = 1, #players do

doRemoveCondition(players, CONDITION_OUTFIT)

doTeleportThing(players, getTownTemplePosition(getPlayerTown(players)))

setPlayerStorageValue(players, getPlayerStorageValue(players, _Lib_Battle_Info.TeamOne.storage) == 1 and _Lib_Battle_Info.TeamOne.storage or _Lib_Battle_Info.TeamTwo.storage, -1)

end

doBroadcastMessage("The event cannot be started because not had enough players.")

setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0)

resetBattle()

removeBattleTp()

end

addEvent(CheckEvent, 60000, delay-1)

end

Editado por Raiat
Link para o comentário
Compartilhar em outros sites

Como faço pra somente level 150+ poder entrar no evento?

 

se possivel ficaria legal, colocar um level em cada dia marcado pra iniciar o evento

tipo no evento de quarta feira somente level 300+

no de domingo uma noobwar de somente até level 50

 

mais preciso de vdd de um level minimo pra poder entrar no evento, se nao level 8 entra e perde a graça

 

edit: otra coisa, o evento só inicia com o numero de players ja colocados la, teria como faze iniciar msm com menos players?

tipo ta 30 players 15x15, mais se entra só 8x8 ele inicia assim msm..

Editado por öKTöBëR
Link para o comentário
Compartilhar em outros sites

Vodkart, porquê o meu sistema não está entregando vários prémios que coloquei no reward, só entrega o primeiro prémio, no caso coloquei reward = {8931,1, 9994,1} fui colocando vários, mais só entrega o primeiro prémio no caso no exemplo que dei ali só entrega o 8931.

Se o evento só entrega 1 prémio, tem como você fazer pra ele entregar vários , assim não todos de uma vez, mais aleatório cada hora um prémio.

Estou usando scripts, globalevents, Ok.

Obrigado.

Link para o comentário
Compartilhar em outros sites

Vodkart, porquê o meu sistema não está entregando vários prémios que coloquei no reward, só entrega o primeiro prémio, no caso coloquei reward = {8931,1, 9994,1} fui colocando vários, mais só entrega o primeiro prémio no caso no exemplo que dei ali só entrega o 8931.

Se o evento só entrega 1 prémio, tem como você fazer pra ele entregar vários , assim não todos de uma vez, mais aleatório cada hora um prémio.

Estou usando scripts, globalevents, Ok.

Obrigado.

 

tava com a msm duvida que vc, intao fiz uma "gambiara" pra ter premiação variada e aleatoria

fiz uma surprice bag com os items de premiação, e puis ela como recompensa. intao o player recebe ela, da use e recebe um dos items que vc colocar na bag, randomicamente..

se nao souber como fazer a surprice bag, fale que eu posto ela aki

Editado por öKTöBëR
Link para o comentário
Compartilhar em outros sites

Vodkart, porquê o meu sistema não está entregando vários prémios que coloquei no reward, só entrega o primeiro prémio, no caso coloquei reward = {8931,1, 9994,1} fui colocando vários, mais só entrega o primeiro prémio no caso no exemplo que dei ali só entrega o 8931.

Se o evento só entrega 1 prémio, tem como você fazer pra ele entregar vários , assim não todos de uma vez, mais aleatório cada hora um prémio.

Estou usando scripts, globalevents, Ok.

Obrigado.

 

tava com a msm duvida que vc, intao fiz uma "gambiara" pra ter premiação variada e aleatoria

fiz uma surprice bag com os items de premiação, e puis ela como recompensa. intao o player recebe ela, da use e recebe um dos items que vc colocar na bag, randomicamente..

se nao souber como fazer a surprice bag, fale que eu posto ela aki

Faz favor, mande pra mim! agradeço.

Link para o comentário
Compartilhar em outros sites

local PRESENT_BLUE = {2160, 2160}

local PRESENT_RED = {2160, 2160}

 

function onUse(cid, item, fromPosition, itemEx, toPosition)

local count = 1

if(item.itemid == 6570) then

local randomChance = math.random(1, #PRESENT_BLUE)

if(randomChance == 1) then

count = 10

elseif(randomChance == 2) then

count = 3

end

doPlayerAddItem(cid, PRESENT_BLUE[randomChance], count)

elseif(item.itemid == 6571) then

local randomChance = math.random(1, #PRESENT_RED)

if randomChance > 0 and randomChance < 4 then

count = 10

end

doPlayerAddItem(cid, PRESENT_RED[randomChance], count)

end

 

doSendMagicEffect(fromPosition, CONST_ME_GIFT_WRAPS)

doRemoveItem(item.uid, 1)

return true

end

 

<action fromid="6570" toid="6571" event="script" value="NOMESCRIPT.lua"/>

 

Bom, lendo o script ja da pra entende como ele funciona, destaquei as partes pra vc mudar ao seu gosto..

Link para o comentário
Compartilhar em outros sites

  • 2 months later...
  • 3 weeks later...
  • 3 weeks later...
×
×
  • Criar Novo...