Ir para conteúdo
  • Cadastre-se

(Resolvido)Fechem por favor.


Ir para solução Resolvido por Storm,

Posts Recomendados

@Camilo Salvadori Pra não ter que ir rastreando parte por parte do código, eu recomendo você colocar um print depois de cada IF para descobrir em qual a script está parando, e aí sim corrigir o que está errado.

Link para o post
Compartilhar em outros sites

Valeu! @Storm e @Underewar!

 

Então... eu consegui arrumar algumas coisas, mas não tem jeito de eu conseguir colocar o AddEvent() 

 

O script ficou assim: (funcionável... funcionou de boassa)

function onStepOut(cid, item, position, fromPosition)
	local tile = Item(item.uid)
	local player = Player(cid)
	if not tile or not player then
		return true
	end
	local uniqueid = tile:getUniqueId()
		if player:getStorageValue(uniqueid) == -1 or player:getStorageValue(uniqueid) == 0 then	
		local creatures_pool = {}
		for var = 1, #AMBUSH_TABLE[uniqueid].monsters do
			local ambush = AMBUSH_TABLE[uniqueid].monsters[var]
			for i = 1, #ambush do
				table.insert(creatures_pool, ambush[i]) 	
			end	
		end	
		for k = 1, #creatures_pool do
			local pos = player:getPosition()
			local radius = 2
			Game.createMonster(creatures_pool[k], Position(math.random(pos.x-radius, pos.x+radius), math.random(pos.y-radius, pos.y+radius), pos.z))
		end
	player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Você sofreu uma emboscada!")	
		-- player:setStorageValue(uniqueid, 1)
		end
end

 

Porém fazendo uma nova function pra rolar o AddEvent() ficou assim: (está errado)

 

local function emboscada(cid, position)
	local tile = Item(item.uid)
	local player = Player(cid)
	if not tile or not player then
		return true
	end
	local creatures_pool = {}
	for var = 1, #AMBUSH_TABLE[uniqueid].monsters do
		local ambush = AMBUSH_TABLE[uniqueid].monsters[var]
		for i = 1, #ambush do
			table.insert(creatures_pool, ambush[i]) 	
		end	
	end		
		for k = 1, #creatures_pool do
			local pos = player:getPosition()
			local radius = 2
			Game.createMonster(creatures_pool[k], Position(math.random(pos.x-radius, pos.x+radius), math.random(pos.y-radius, pos.y+radius), pos.z))
		end
	player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Você sofreu uma emboscada!")	
end

function onStepOut(cid, item, position, fromPosition)
	local tile = Item(item.uid)
	local player = Player(cid)
	if not tile or not player then
		return true
	end
	local uniqueid = tile:getUniqueId()
		if player:getStorageValue(uniqueid) == -1 or player:getStorageValue(uniqueid) == 0 then	
			addEvent(emboscada, 3000, cid.uid, position)
			-- player:setStorageValue(uniqueid, 1)
		end
end

O problema é que aqui a função nova não sabe o que é TILE, pq o TILE tá registrado no STEPOUT...

 

que que eu faço?

Editado por Camilo Salvadori (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • Solução

@Camilo Salvadori É só passar o tile como um parâmetro da function emboscada, ficando assim:

addEvent(emboscada, 3000, cid.uid, position, tile)
local function emboscada(cid, position, tile)

 

Com isso você pode remover essa linha da função emboscada

local tile = Item(item.uid)

 

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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo