Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

Caso tu não declaraste no login.lua storage 52310 = 0, utilize o script abaixo:

Obs: Winner ganha 3, loosers ganha 1.

_Lib_Battle_Info = {
	Reward = {9971,10},
	TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=1262,y=1150,z=6}},
	TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=1275,y=1150,z=6}},
	storage_count = 180400,
	tpPos = {x=161, y=44, 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 = {
		{3517,{x=1270, y=1161, z=6, stackpos = 1}},
		{3517,{x=1270, y=1162, z=6, stackpos = 1}},
		{3517,{x=1270, y=1163, z=6, stackpos = 1}},
		{3517,{x=1270, y=1164, 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 "").." do time "..(getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 and _Lib_Battle_Info.TeamTwo.name or _Lib_Battle_Info.TeamOne.name).." venceu o evento Battlefield, todos do time vencedor ganharam ".._Lib_Battle_Info.Reward[2].." "..getItemNameById(_Lib_Battle_Info.Reward[1]).."!"
	for i = 1, #players do
		doRemoveCondition(players[i], CONDITION_OUTFIT)
		doTeleportThing(players[i], getTownTemplePosition(getPlayerTown(players[i])))
		setPlayerStorageValue(players[i], storage, -1)
		if getPlayerStorageValue(player[i], 52310) < 0 then
			setPlayerStorageValue(player[i], 52310, 0)
		end
		setPlayerStorageValue(player[i], 52310, getPlayerStorageValue(cid, 52310) + 3)
	end
	resetBattle()
	OpenWallBattle()
	return doBroadcastMessage(str)
end

function CheckEvent(delay)
	if delay > 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
		doBroadcastMessage("[BattleField Evento] Esta esperando "..getGlobalStorageValue(_Lib_Battle_Info.storage_count).." players para o evento Battlefield começar.")
		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)
			if getPlayerStorageValue(player[i], 52310) < 0 then
				setPlayerStorageValue(player[i], 52310, 0)
			end
			setPlayerStorageValue(player[i], 52310, getPlayerStorageValue(cid, 52310) + 1)
			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("Evento não pode ser iniciado por falta de jogadores.")
		setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0)
		resetBattle()
		removeBattleTp()
	end
	addEvent(CheckEvent, 60000, delay-1)
end

Editado por runeraserver (veja o histórico de edições)

Precisa de ajuda? Poste a versão de seu TFS.

*************************************************************************************************************

 

Servidores? Eu indico:

logo2.png

Use o cupom TIBIAKING e receba 50% de desconto na primeira mensalidade!

Pague menos de R$ 19,00 no primeiro mês!

 

protecaoddos.jpg afiliados.jpg

  • Respostas 31
  • Visualizações 821
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • runeraserver
    runeraserver

    Recompensa basta tu adicionar essa linha ao código na parte da recompensa, no exemplo estou usando a storage 52310. if getPlayerStorageValue(cid, 52310) < 1 then setPlayerStorageValue(cid,

  • runeraserver
    runeraserver

    Em recompensas: if getPlayerStorageValue(cid, 52310) < 1 then setPlayerStorageValue(cid, 52310, 1) else setPlayerStorageValue(cid, 52310, getPlayerStorageValue(cid, 52310) + 1) end

  • Adiciona isso em login.lua, antes do ultimo return true: if getPlayerStorageValue(cid, 52310) < 0 then setPlayerStorageValue(cid, 52310, 0) end Deve resolver o problema da storage.

Posted Images

Postado

Funciona das 2 maneiras porém, com uma ideia diferente, como eu falei, banco de dados tem como padrão o value -1 quando nada foi declarado à ele.

Levando isso em conta, o script reconhece que o storage está -1 e seta ele pra 0.

Editado por runeraserver (veja o histórico de edições)

Precisa de ajuda? Poste a versão de seu TFS.

*************************************************************************************************************

 

Servidores? Eu indico:

logo2.png

Use o cupom TIBIAKING e receba 50% de desconto na primeira mensalidade!

Pague menos de R$ 19,00 no primeiro mês!

 

protecaoddos.jpg afiliados.jpg

Postado

Usa esse fera:

_Lib_Battle_Info = {
	Reward = {9971,10},
	TeamOne = {name = "Black Assassins", storage = 140120, pos = {x=1262,y=1150,z=6}},
	TeamTwo = {name = "Red Barbarians",storage = 140121,pos = {x=1275,y=1150,z=6}},
	storage_count = 180400,
	tpPos = {x=161, y=44, 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 = {
		{3517,{x=1270, y=1161, z=6, stackpos = 1}},
		{3517,{x=1270, y=1162, z=6, stackpos = 1}},
		{3517,{x=1270, y=1163, z=6, stackpos = 1}},
		{3517,{x=1270, y=1164, 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 "").." do time "..(getGlobalStorageValue(_Lib_Battle_Info.TeamOne.storage) == 0 and _Lib_Battle_Info.TeamTwo.name or _Lib_Battle_Info.TeamOne.name).." venceu o evento Battlefield, todos do time vencedor ganharam ".._Lib_Battle_Info.Reward[2].." "..getItemNameById(_Lib_Battle_Info.Reward[1]).."!"
	for i = 1, #players do
		doRemoveCondition(players[i], CONDITION_OUTFIT)
		doTeleportThing(players[i], getTownTemplePosition(getPlayerTown(players[i])))
		setPlayerStorageValue(players[i], storage, -1)
		setPlayerStorageValue(player[i], 52310, getPlayerStorageValue(cid, 52310) + 3)
	end
	resetBattle()
	OpenWallBattle()
	return doBroadcastMessage(str)
end
 
function CheckEvent(delay)
	if delay > 0 and getGlobalStorageValue(_Lib_Battle_Info.storage_count) > 0 then
		doBroadcastMessage("[BattleField Evento] Esta esperando "..getGlobalStorageValue(_Lib_Battle_Info.storage_count).." players para o evento Battlefield começar.")
		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)
			setPlayerStorageValue(player[i], 52310, getPlayerStorageValue(cid, 52310) + 1)
			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("Evento não pode ser iniciado por falta de jogadores.")
		setGlobalStorageValue(_Lib_Battle_Info.storage_count, 0)
		resetBattle()
		removeBattleTp()
	end
	addEvent(CheckEvent, 60000, delay-1)
end

e no creaturescript/scripts/login.lua

if getPlayerStorageValue(cid, 52310) < 0 then
     setPlayerStorageValue(cid, 52310, 0)
end

Precisa de ajuda? Poste a versão de seu TFS.

*************************************************************************************************************

 

Servidores? Eu indico:

logo2.png

Use o cupom TIBIAKING e receba 50% de desconto na primeira mensalidade!

Pague menos de R$ 19,00 no primeiro mês!

 

protecaoddos.jpg afiliados.jpg

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

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo