Ir para conteúdo

Featured Replies

Postado
  • Autor
13 minutos atrás, antharaz disse:

A bp que some e a que aparece tem o mesmo id?

Sim, por exemplo: coloca uma azul vazia no coal basin ali e aparece uma azul na table ali na frente do jogador com a recompensa dentro.

  • Respostas 14
  • Visualizações 1.8k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • luanluciano93
    luanluciano93

    Coloquei no meu github, se quiser testar ... https://github.com/luanluciano93/ESTUDOS/tree/master/LUA/BP_EVENT_860

Posted Images

Postado

@dimmebag 

 

Mas ae o player pode pegar a nova bag, tirar o premio, depois colocar ela vazia denovo e fazer isso 1000x... mas vou dar um jeito de não colocar a mesma bag toda hora. Você mencionou que o npc é fácil para qlqr um, então fazer o globalevents com o teleport também será, postarei só o action da alavanca:

 

Spoiler

local config = {
				pos = {
						bp_vazia = {x=125,y=377,z=7,stackpos = 255}, --POS que o player deixará a bp vazia
						bp_com_premio = {x=126,y=377,z=7} --POS que o player receberá a bp ao puxar a alavanca
				},
				ids = {1988,2245,5467},
				premio = {
							{id = 2152, minimo = 1, maximo = 10},
							{id = 2229, minimo = 1, maximo = 20}
				}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local bp = getThingFromPos(config.pos.bp_vazia)
	local usada = getItemAttribute(bp.uid, 'usada')
	if usada or not isInArray(config.ids,bp.itemid) then
		doSendMagicEffect(getThingPos(cid),2)
		return false
	end
	doItemSetAttribute(bp.uid, 'usada', 1)
	doTeleportThing(bp.uid,config.pos.bp_com_premio)
	for _,t in pairs(config.premio) do
		doAddContainerItem(bp.uid,t.id,math.random(t.minimo,t.maximo))
	end
	return true
end

 

 

Postado
  • Autor

@antharaz Não tinha pensado nisso. Mas no caso do globalevent, pra quem não entende nada fica complicado... Pois envolve criar o TP no lugar exato, mandar o broadcast e também tem a parte do tempo de duração do evento e de kickar os jogadores pra fora do lugar do evento após o tempo.

Postado

@dimmebag 

 

 

Action:

 

Spoiler

local config = {
				pos = {
						bp_vazia = {x=125,y=377,z=7,stackpos = 255}, --POS que o player deixará a bp vazia
						bp_com_premio = {x=126,y=377,z=7} --POS que o player receberá a bp ao puxar a alavanca
				},
				ids = {1988,2245,5467},
				premio = {
							{id = 2152, minimo = 1, maximo = 10},
							{id = 2229, minimo = 1, maximo = 20}
				}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local bp = getThingFromPos(config.pos.bp_vazia)
	local usada = getItemAttribute(bp.uid, 'usada')
	if usada or not isInArray(config.ids,bp.itemid) then
		doSendMagicEffect(getThingPos(cid),2)
		return false
	end
	doItemSetAttribute(bp.uid, 'usada', 1)
	doTeleportThing(bp.uid,config.pos.bp_com_premio)
	for _,t in pairs(config.premio) do
		doAddContainerItem(bp.uid,t.id,math.random(t.minimo,t.maximo))
	end
	return true
end

 

 

 

 

Globalevent:

 

Spoiler


local config = {
					pos = {
							teleport = {x=128,y=374,z=8}, --POS AONDE O TELEPORT APARECERÁ
							teleporta_para = {x=131,y=374,z=8}, --POS PARA AONDE OS PLAYERS SERAO TELEPORTADOS
							superior_esquerdo = {x=125,y=372,z=8}, -- CANTO SUPERIOR ESQUERDO DA ÁREA ONDE O PLAYER É TELEPORTADO
							inferior_direito = {x=133,y=377,z=8}-- CANTO INFERIOR DIREITO DA ÁREA ONDE O PLAYER É TELEPORTADO
					},
					id_tp = 1387, --id do teleport
					msg = {
							comecou = "Começou o evento negada.", --MENSAGEM QND COMEÇA
							acabou = "Terminou o evento negada." --MENSAGEM QND TERMINA
					},
					tempo = 20 --tempo de duração em minutos
}


function onThink(interval)
	doBroadcastMessage(config.msg.comecou)
	local teste = doCreateTeleport(config.id_tp, config.pos.teleporta_para, config.pos.teleport)
	addEvent(function()
		doRemoveItem(getTileItemById(config.pos.teleport, config.id_tp).uid)
		doBroadcastMessage(config.msg.acabou)
		for _,player in pairs(getOnlinePlayers()) do
			if isInArea(getThingPos(cid),config.pos.superior_esquerdo,config.pos.inferior_direito) then
				doTeleportThing(cid, getPlayerMasterPos(cid))
			end
		end
	end, config.tempo*60000)
	return true
end

 

 

 

As pos do canto superior esquerdo e inferior direito tem que formar uma área aonde os players estarão e terão que ser seleportados, ex:

 

Screenshot_1.thumb.png.73e31de219fb54e0026dd0482e18ba8d.png

Postado
  • Autor

@antharaz Vou configurar e testar aqui.

38 minutos atrás, antharaz disse:

@dimmebag 

 

 

Action:

 

  Ocultar conteúdo


local config = {
				pos = {
						bp_vazia = {x=125,y=377,z=7,stackpos = 255}, --POS que o player deixará a bp vazia
						bp_com_premio = {x=126,y=377,z=7} --POS que o player receberá a bp ao puxar a alavanca
				},
				ids = {1988,2245,5467},
				premio = {
							{id = 2152, minimo = 1, maximo = 10},
							{id = 2229, minimo = 1, maximo = 20}
				}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
	local bp = getThingFromPos(config.pos.bp_vazia)
	local usada = getItemAttribute(bp.uid, 'usada')
	if usada or not isInArray(config.ids,bp.itemid) then
		doSendMagicEffect(getThingPos(cid),2)
		return false
	end
	doItemSetAttribute(bp.uid, 'usada', 1)
	doTeleportThing(bp.uid,config.pos.bp_com_premio)
	for _,t in pairs(config.premio) do
		doAddContainerItem(bp.uid,t.id,math.random(t.minimo,t.maximo))
	end
	return true
end

 

 

 

 

Globalevent:

 

  Ocultar conteúdo



local config = {
					pos = {
							teleport = {x=128,y=374,z=8}, --POS AONDE O TELEPORT APARECERÁ
							teleporta_para = {x=131,y=374,z=8}, --POS PARA AONDE OS PLAYERS SERAO TELEPORTADOS
							superior_esquerdo = {x=125,y=372,z=8}, -- CANTO SUPERIOR ESQUERDO DA ÁREA ONDE O PLAYER É TELEPORTADO
							inferior_direito = {x=133,y=377,z=8}-- CANTO INFERIOR DIREITO DA ÁREA ONDE O PLAYER É TELEPORTADO
					},
					id_tp = 1387, --id do teleport
					msg = {
							comecou = "Começou o evento negada.", --MENSAGEM QND COMEÇA
							acabou = "Terminou o evento negada." --MENSAGEM QND TERMINA
					},
					tempo = 20 --tempo de duração em minutos
}


function onThink(interval)
	doBroadcastMessage(config.msg.comecou)
	local teste = doCreateTeleport(config.id_tp, config.pos.teleporta_para, config.pos.teleport)
	addEvent(function()
		doRemoveItem(getTileItemById(config.pos.teleport, config.id_tp).uid)
		doBroadcastMessage(config.msg.acabou)
		for _,player in pairs(getOnlinePlayers()) do
			if isInArea(getThingPos(cid),config.pos.superior_esquerdo,config.pos.inferior_direito) then
				doTeleportThing(cid, getPlayerMasterPos(cid))
			end
		end
	end, config.tempo*60000)
	return true
end

 

 

 

As pos do canto superior esquerdo e inferior direito tem que formar uma área aonde os players estarão e terão que ser seleportados, ex:

 

Screenshot_1.thumb.png.73e31de219fb54e0026dd0482e18ba8d.png


Nessa parte aqui, tem a config ali onde o tp aparece, para onde leva mas não teria que ter ali tambem uma posição pra levar quando encerrar? 
E tem também o fator de configuração dos horarios pra aparecer o tp que no caso são dois (ex: 14h e 21h)...
 

teleport = {x=128,y=374,z=8}, --POS AONDE O TELEPORT APARECERÁ
							teleporta_para = {x=131,y=374,z=8}, --POS PARA AONDE OS PLAYERS SERAO TELEPORTADOS
							superior_esquerdo = {x=125,y=372,z=8}, -- CANTO SUPERIOR ESQUERDO DA ÁREA ONDE O PLAYER É TELEPORTADO
							inferior_direito = {x=133,y=377,z=8}-- CANTO INFERIOR DIREITO DA ÁREA ONDE O PLAYER É TELEPORTADO

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

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