Jump to content

Olá Tibiano! Notamos que você está com um adblocker ligado... 

Nós promovemos servidores dentro da comunidade, para que eles tenham visibilidade.

Por favor, nos ajude a continuar promovendo esses servidores. Adicione nosso domínio na whitelist de seu adblocker, ok? :)

  • 0
wenderotpoke

Golden/Survival Arena

Question

6 answers to this question

Recommended Posts

  • 0

Acho melhor passar o StartSurvival para dentro do SurvivalArena:

Novo SurvivalArena:

function onTimer()
	setGlobalStorageValue(254600, 1)
	setGlobalStorageValue(254601, 1)
	addEvent(setGlobalStorageValue, 3 * 60 * 1000, 254601, -1)
	doBroadcastMessage("[Survival Arena]: O evento irá começar em 3 minutos, você é forte o suficiente para participar?")            
	addEvent(doBroadcastMessage, 1 * 60 * 1000, "[Survival Arena]: A Entrada irá fechar em 2 minutos, você é forte o suficiente para participar?")
	addEvent(doBroadcastMessage, 2 * 60 * 1000, "[Survival Arena]: A Entrada irá fechar em 1 minutos, você é forte o suficiente para participar?")
	addEvent(doBroadcastMessage, 3 * 60 * 1000, "[Survival Arena]: A Entrada fechou.... Boa Sorte a todos.")
	addEvent(startGolden, 3*60*1000)
	return true    
end

 

E na função setMonsterWave no lib troque por:

function setMonsterWave(arenaName, wave, count, multi)
    if #getPlayersInArea(b.ArenaPlayers) < 1 then 
        doBroadcastMessage("[Survival Arena]: Todos jogadores foram derrotados.")
        --limpar arena
        return true
    end
	local this_wave = arena[arenaName].pokemon[wave]

	if not arena[arenaName] then	
		return false
	end
	
	if not this_wave then
		return false
	end
	
	for i = 1, count, 1 do
		EX = math.random(arena[arenaName].TopLeft.x,arena[arenaName].BottomRight.x)
		EY = math.random(arena[arenaName].TopLeft.y,arena[arenaName].BottomRight.y)
	
		local position = {x = EX, y = EY, z = arena[arenaName].z}

		if isWalkable(position) and getTopCreature(position).uid == 0 then		
			local monster = doCreateMonster(this_wave[math.random(1,#this_wave)], position)
			setBonusWild(monster, multi)
		else
			for l = 0, 0, 0 do
				position.x = math.random(arena[arenaName].TopLeft.x,arena[arenaName].BottomRight.x)
				position.y = math.random(arena[arenaName].TopLeft.y,arena[arenaName].BottomRight.y)
				if isWalkable(position) and getTopCreature(position).uid == 0 then		
					local monster = doCreateMonster(this_wave[math.random(1,#this_wave)], position)
					setBonusWild(monster, multi)
					break
				end
			end
		end
	end
    wave = wave+1
    setGlobalStorage(214689, wave)
	addEvent(setMonsterWave, 1 * 60 * 1000, "Golden", wave, 25 + math.floor(wave * 2), 1 + (wave * 0.10))
end
			


Se necessário, nessa função troque "--limpar arena" pela função que remove os monstros que sobraram da arena.

 

Edited by Scizorgame

Share this post


Link to post
Share on other sites
  • 0
6 horas atrás, Scizorgame disse:

Acho melhor passar o StartSurvival para dentro do SurvivalArena:

Novo SurvivalArena:

function onTimer()
	setGlobalStorageValue(254600, 1)
	setGlobalStorageValue(254601, 1)
	addEvent(setGlobalStorageValue, 3 * 60 * 1000, 254601, -1)
	doBroadcastMessage("[Survival Arena]: O evento irá começar em 3 minutos, você é forte o suficiente para participar?")            
	addEvent(doBroadcastMessage, 1 * 60 * 1000, "[Survival Arena]: A Entrada irá fechar em 2 minutos, você é forte o suficiente para participar?")
	addEvent(doBroadcastMessage, 2 * 60 * 1000, "[Survival Arena]: A Entrada irá fechar em 1 minutos, você é forte o suficiente para participar?")
	addEvent(doBroadcastMessage, 3 * 60 * 1000, "[Survival Arena]: A Entrada fechou.... Boa Sorte a todos.")
	addEvent(startGolden, 3*60*1000)
	return true    
end

 

E na função setMonsterWave no lib troque por:

function setMonsterWave(arenaName, wave, count, multi)
    if #getPlayersInArea(b.ArenaPlayers) < 1 then 
        doBroadcastMessage("[Survival Arena]: Todos jogadores foram derrotados.")
        --limpar arena
        return true
    end
	local this_wave = arena[arenaName].pokemon[wave]

	if not arena[arenaName] then	
		return false
	end
	
	if not this_wave then
		return false
	end
	
	for i = 1, count, 1 do
		EX = math.random(arena[arenaName].TopLeft.x,arena[arenaName].BottomRight.x)
		EY = math.random(arena[arenaName].TopLeft.y,arena[arenaName].BottomRight.y)
	
		local position = {x = EX, y = EY, z = arena[arenaName].z}

		if isWalkable(position) and getTopCreature(position).uid == 0 then		
			local monster = doCreateMonster(this_wave[math.random(1,#this_wave)], position)
			setBonusWild(monster, multi)
		else
			for l = 0, 0, 0 do
				position.x = math.random(arena[arenaName].TopLeft.x,arena[arenaName].BottomRight.x)
				position.y = math.random(arena[arenaName].TopLeft.y,arena[arenaName].BottomRight.y)
				if isWalkable(position) and getTopCreature(position).uid == 0 then		
					local monster = doCreateMonster(this_wave[math.random(1,#this_wave)], position)
					setBonusWild(monster, multi)
					break
				end
			end
		end
	end
    wave = wave+1
    setGlobalStorage(214689, wave)
	addEvent(setMonsterWave, 1 * 60 * 1000, "Golden", wave, 25 + math.floor(wave * 2), 1 + (wave * 0.10))
end
			


Se necessário, nessa função troque "--limpar arena" pela função que remove os monstros que sobraram da arena.

 

Beleza manoooo vou testar aqui

 

Manooooooooo funfouuuu perfeitamente VLW MANIN
REPZÃO NA MÃO ^^

 

Aaaaah deu esse erro aqui....

[Error - GlobalEvent Interface]
In a timer event called from:
data/globalevents/scripts/survivalArena.lua:onTimer
Description:
data/lib/036-golden arena.lua:294: attempt to index global 'b' (a nil value)
stack traceback:
        data/lib/036-golden arena.lua:294: in function <data/lib/036-golden arena.lua:293>


o Evento ta com as configurações pegando mas não está spamando os mobs

 

Share this post


Link to post
Share on other sites
  • 0

Qual essa linha 294 ?

Na função setMonsterWave troque:

for l = 0, 0, 0 do

 

Por:

for l = 0, 0 do

 

Na tabela arena["Golden"] troque:

ArenaPlayers = {fromx = 1262, fromy = 1639, fromz = 6, tox = 1341, toy = 1686, toz= 6}, -- área onde será checado se tem players

 

Por:

ArenaPlayers = {["from"] = {x = 1262, y = 1639, z = 6}, ["to"] = {x = 1341, y = 1686, z= 6}, -- área onde será checado se tem players

 

Troque a função startGolden() por essa:

function startGolden()
	if getGlobalStorageValue(254600) >= 1 then
		local aG = arena["Golden"]
		if #getPlayersInArea(aG.ArenaPlayers["from"], aG.ArenaPlayers["to"]) >= 1 then
			local wave = getGlobalStorageValue(214689) <= 1 and 1 or getGlobalStorageValue(214689)
			setGlobalStorageValue(214689, wave + 1)
			doBroadcastMessage("[Survival Arena]:A ["..wave.."] irá surgir em 3 minutos")
			addEvent(setMonsterWave, 3 * 60 * 1000, "Golden", wave, 25 + math.floor(wave * 2), 1 + (wave * 0.10))
		else
			setGlobalStorageValue(254600, 0)
			setGlobalStorageValue(214689, 0)
			creatureInSurvival(aG.ArenaUpper, aG.ArenaLower, true, true)
			doBroadcastMessage("[Survival Arena]: Evento finalizado até a próxima!")
		end
	end
end

 

Edited by Scizorgame

Share this post


Link to post
Share on other sites
  • 0
1 hora atrás, Scizorgame disse:

Qual essa linha 294 ?

Na função setMonsterWave troque:

for l = 0, 0, 0 do

 

Por:

for l = 0, 0 do

 

Na tabela arena["Golden"] troque:

ArenaPlayers = {fromx = 1262, fromy = 1639, fromz = 6, tox = 1341, toy = 1686, toz= 6}, -- área onde será checado se tem players

 

Por:

ArenaPlayers = {["from"] = {x = 1262, y = 1639, z = 6}, ["to"] = {x = 1341, y = 1686, z= 6}, -- área onde será checado se tem players

 

Troque a função startGolden() por essa:

function startGolden()
	if getGlobalStorageValue(254600) >= 1 then
		local aG = arena["Golden"]
		if #getPlayersInArea(aG.ArenaPlayers["from"], aG.ArenaPlayers["to"]) >= 1 then
			local wave = getGlobalStorageValue(214689) <= 1 and 1 or getGlobalStorageValue(214689)
			setGlobalStorageValue(214689, wave + 1)
			doBroadcastMessage("[Survival Arena]:A ["..wave.."] irá surgir em 3 minutos")
			addEvent(setMonsterWave, 3 * 60 * 1000, "Golden", wave, 25 + math.floor(wave * 2), 1 + (wave * 0.10))
		else
			setGlobalStorageValue(254600, 0)
			setGlobalStorageValue(214689, 0)
			creatureInSurvival(aG.ArenaUpper, aG.ArenaLower, true, true)
			doBroadcastMessage("[Survival Arena]: Evento finalizado até a próxima!")
		end
	end
end

 

Vish agora nem da mais start

 

Please login or register to see this spoiler.

Manooo eu deixei ela assim ela começa mas não continua... tipo vem a primeira Wave e depois não vem mais nada

Voltando aqui sobre o Erro lá na linha

 

[Error - GlobalEvent Interface]
In a timer event called from:
data/globalevents/scripts/survivalArena.lua:onTimer
Description:
data/lib/036-golden arena.lua:294: attempt to index global 'b' (a nil value)
stack traceback:
        data/lib/036-golden arena.lua:294: in function <data/lib/036-golden arena.lua:293>

 

 

o Erro ta nessa parte onde destaquei



 

function setMonsterWave(arenaName, wave, count, multi)
    if #getPlayersInArea(b.ArenaPlayers) < 1 then 
        doBroadcastMessage("[Survival Arena]: Todos jogadores foram derrotados.")
        --limpar arena
        return true
    end
    local this_wave = arena[arenaName].pokemon[wave]

    if not arena[arenaName] then    
        return false
    end
    
    if not this_wave then
        return false
    end
    
    for i = 1, count, 1 do
        EX = math.random(arena[arenaName].TopLeft.x,arena[arenaName].BottomRight.x)
        EY = math.random(arena[arenaName].TopLeft.y,arena[arenaName].BottomRight.y)
    
        local position = {x = EX, y = EY, z = arena[arenaName].z}

        if isWalkable(position) and getTopCreature(position).uid == 0 then        
            local monster = doCreateMonster(this_wave[math.random(1,#this_wave)], position)
            setBonusWild(monster, multi)
        else
            for l = 0, 0, 0 do
                position.x = math.random(arena[arenaName].TopLeft.x,arena[arenaName].BottomRight.x)
                position.y = math.random(arena[arenaName].TopLeft.y,arena[arenaName].BottomRight.y)
                if isWalkable(position) and getTopCreature(position).uid == 0 then        
                    local monster = doCreateMonster(this_wave[math.random(1,#this_wave)], position)
                    setBonusWild(monster, multi)
                    break
                end
            end
        end
    end
    wave = wave+1
    setGlobalStorage(214689, wave)
    addEvent(setMonsterWave, 1 * 60 * 1000, "Golden", wave, 25 + math.floor(wave * 2), 1 + (wave * 0.10))
end

Share this post


Link to post
Share on other sites
  • 0
Em 21/02/2020 em 00:21, Scizorgame disse:

Troque ela por:

if #getPlayersInArea(arena["Golden"].ArenaPlayers["from"], arena["Golden"].ArenaPlayers["to"]) < 1 then

 

Mano nada
ele ta dando erro no começo tambem

 

 

ta nessa linha 
 

ArenaPlayers = {["from"] = {x = 1262, y = 1639, z = 6}, ["to"] = {x = 1341, y = 1686, z= 6},

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...