Ir para conteúdo

Featured Replies

Postado

Fala ai galera, tudo tranquilo?

Então, eu sou novato por aqui não sei se estou pedindo na área correta ou não, mas tudo bem.

 

Eu queria pedir um movement que quando o player pisar nele ele será teleportado para tal lugar e quando outro player pisar ele será teleportado para outro lugar, para dividir os players..

Exemplo:

 

Eu entro na sala, e lá tem um tile quando eu piso nele eu sou teleportado para o lado esquerdo com outfit vermelha e é adicionado dois storages (123321 e 123325)

 

Quando outro player pisa no tile ele vai para o lado direito com outfit azul e é adicionado dois storages também (123322 e 123326

 

Bão, acho que é isso..

Aguardo respostas e já agradeço a todos!  :P

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

  • Respostas 11
  • Visualizações 1.4k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • caricatura do script: local pos1 = {x=XXX, y=YYY, z= ZZ} local pos 2 = {x=XXX, y=YYY, z= ZZ} local outfit1 = {lookType = 152, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0,

  • luanluciano93
    luanluciano93

    Acho que assim faz tudo que tu pediu ...    -- <movevent type="StepIn" actionid="XXXX" event="script" value="separar_times.lua"/> function onStepIn(cid, item, position, fromPosition) loc

Postado

caricatura do script:

local pos1 = {x=XXX, y=YYY, z= ZZ}
local pos 2 = {x=XXX, y=YYY, z= ZZ}
local outfit1 = {lookType = 152, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}
local outfit2 = {lookType = 152, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}
local storage = {123321, 123325, 123322, 123326}

function onStepIn(cid, item, position, fromPosition)
c = math.random(1,100)
if c > 50 then
setPlayerStorageValue (storage[1], 1)
setPlayerStorageValue (storage[2], 1)
doTeleportThing(cid, pos1, TRUE)
doSetCreatureOutfit(cid, outfit1, -1)
else
setPlayerStorageValue (storage[3], 1)
setPlayerStorageValue (storage[4], 1)
doTeleportThing(cid, pos2, TRUE)
doSetCreatureOutfit(cid, outfit2, -1)
end
return true
end

agora se vc quiser que separe os times de uma maneira mais balanceada (e menos randômica) salve dois globalstorage e chame ele a cada pisada de player, o time que o player for será o global storage +1 e ele checa se o globalstorage 1 é maior que o 2.

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Postado

Acho que assim faz tudo que tu pediu ... 

 

-- <movevent type="StepIn" actionid="XXXX" event="script" value="separar_times.lua"/>

function onStepIn(cid, item, position, fromPosition)
	
	local conditionBlack = 
		createConditionObject(CONDITION_OUTFIT)
		setConditionParam(conditionBlack, CONDITION_PARAM_TICKS, -1)
		addOutfitCondition(conditionBlack, {lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114})
		
	local conditionRed = createConditionObject(CONDITION_OUTFIT)
		setConditionParam(conditionRed, CONDITION_PARAM_TICKS, -1)
		addOutfitCondition(conditionRed, {lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94})
	
	local storage_global = 50000
	
	local team =
	{
		one = 
		{
			name = "Black Team", -- nome time 1 
			storage = 140120, -- storage time 1
			storage1 = 123322,
			storage2 = 123326,
			pos = {x=456, y=17, z=7} -- posição para onde eles vão ao passar pela tile (cada time tem o seu)
		},
		
		two = 
		{
			name = "Red Team", -- nome time 2
			storage = 140121, -- storage time 2
			storage1 = 123321,
			storage2 = 123325,
			pos = {x=505, y=17, z=7} -- posição para onde eles vão ao passar pela tile (cada time tem o seu)
		},
	}
	
	if getPlayerAccess(cid) > 3 then
		doTeleportThing(cid, team.one.pos) return false
	elseif getGlobalStorageValue(storage_global) > 0 then
		setGlobalStorageValue(storage_global, getGlobalStorageValue(storage_global)-1)
	end

	if getGlobalStorageValue(storage_global) >= 0 then
		if getGlobalStorageValue(team.one.storage) < getGlobalStorageValue(team.two.storage) then
			setPlayerStorageValue(cid, team.one.storage, 1)
			doAddCondition(cid, conditionBlack)
			setGlobalStorageValue(team.one.storage, getGlobalStorageValue(team.one.storage)+1)
			setPlayerStorageValue(cid,team.one.storage1,1)
			setPlayerStorageValue(cid,team.one.storage2,1)
			doTeleportThing(cid, team.one.pos)
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. team.one.name .. "!")
		else
			setPlayerStorageValue(cid, team.two.storage, 1)
			doAddCondition(cid, conditionRed)
			setGlobalStorageValue(team.two.storage, getGlobalStorageValue(team.two.storage)+1)
			setPlayerStorageValue(cid,team.two.storage1,1)
			setPlayerStorageValue(cid,team.two.storage2,1)
			doTeleportThing(cid, team.two.pos)
			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. team.two.name .. "!")
		end
	end

	return true
end

Para configurar são essas linhas ... 

 

one = 
{
	name = "Black Team", -- nome time 1 
	storage = 140120, -- storage time 1
	storage1 = 123322,
	storage2 = 123326,
	pos = {x=456, y=17, z=7} -- posição para onde eles vão ao entrar no tp (cada time tem o seu)
},
		
two = 
{
	name = "Red Team", -- nome time 2
	storage = 140121, -- storage time 2
	storage1 = 123321,
	storage2 = 123325,
	pos = {x=505, y=17, z=7} -- posição para onde eles vão ao entrar no tp (cada time tem o seu)
},

Não testei, acho que dá certo.

Postado

caricatura do script:

local pos1 = {x=XXX, y=YYY, z= ZZ}local pos 2 = {x=XXX, y=YYY, z= ZZ}local outfit1 = {lookType = 152, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}local outfit2 = {lookType = 152, lookHead = 0, lookBody = 0, lookLegs = 0, lookFeet = 0, lookTypeEx = 0, lookAddons = 3}local storage = {123321, 123325, 123322, 123326}function onStepIn(cid, item, position, fromPosition)c = math.random(1,100)if c > 50 thensetPlayerStorageValue (storage[1], 1)setPlayerStorageValue (storage[2], 1)doTeleportThing(cid, pos1, TRUE)doSetCreatureOutfit(cid, outfit1, -1)elsesetPlayerStorageValue (storage[3], 1)setPlayerStorageValue (storage[4], 1)doTeleportThing(cid, pos2, TRUE)doSetCreatureOutfit(cid, outfit2, -1)endreturn trueend
agora se vc quiser que separe os times de uma maneira mais balanceada (e menos randômica) salve dois globalstorage e chame ele a cada pisada de player, o time que o player for será o global storage +1 e ele checa se o globalstorage 1 é maior que o 2.

Obrigadasso pelo script brother, só que tem um problema, que nem você falou ele está separando de um forma randômica, se eu pisar e logo outro player pisar, eles vão para o mesmo lugar assim desbalanceando o time, ai podendo ficar time com mais jogadores do que no time adversário. Será que você poderia balancea-lo para mim? não manjo muito de scripts UHSAEUHAS, mas em relação ao script em si , funcionou perfeitamente, ele apenas não balanceia.

Acho que assim faz tudo que tu pediu ...

-- <movevent type="StepIn" actionid="XXXX" event="script" value="separar_times.lua"/>function onStepIn(cid, item, position, fromPosition)		local conditionBlack = 		createConditionObject(CONDITION_OUTFIT)		setConditionParam(conditionBlack, CONDITION_PARAM_TICKS, -1)		addOutfitCondition(conditionBlack, {lookType = 134, lookHead = 114, lookBody = 114, lookLegs = 114, lookFeet = 114})			local conditionRed = createConditionObject(CONDITION_OUTFIT)		setConditionParam(conditionRed, CONDITION_PARAM_TICKS, -1)		addOutfitCondition(conditionRed, {lookType = 143, lookHead = 94, lookBody = 94, lookLegs = 94, lookFeet = 94})		local storage_global = 50000		local team =	{		one = 		{			name = "Black Team", -- nome time 1 			storage = 140120, -- storage time 1			storage1 = 123322,			storage2 = 123326,			pos = {x=456, y=17, z=7} -- posição para onde eles vão ao passar pela tile (cada time tem o seu)		},				two = 		{			name = "Red Team", -- nome time 2			storage = 140121, -- storage time 2			storage1 = 123321,			storage2 = 123325,			pos = {x=505, y=17, z=7} -- posição para onde eles vão ao passar pela tile (cada time tem o seu)		},	}		if getPlayerAccess(cid) > 3 then		doTeleportThing(cid, team.one.pos) return false	elseif getGlobalStorageValue(storage_global) > 0 then		setGlobalStorageValue(storage_global, getGlobalStorageValue(storage_global)-1)	end	if getGlobalStorageValue(storage_global) >= 0 then		if getGlobalStorageValue(team.one.storage) < getGlobalStorageValue(team.two.storage) then			setPlayerStorageValue(cid, team.one.storage, 1)			doAddCondition(cid, conditionBlack)			setGlobalStorageValue(team.one.storage, getGlobalStorageValue(team.one.storage)+1)			setPlayerStorageValue(cid,team.one.storage1,1)			setPlayerStorageValue(cid,team.one.storage2,1)			doTeleportThing(cid, team.one.pos)			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. team.one.name .. "!")		else			setPlayerStorageValue(cid, team.two.storage, 1)			doAddCondition(cid, conditionRed)			setGlobalStorageValue(team.two.storage, getGlobalStorageValue(team.two.storage)+1)			setPlayerStorageValue(cid,team.two.storage1,1)			setPlayerStorageValue(cid,team.two.storage2,1)			doTeleportThing(cid, team.two.pos)			doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You will join the team " .. team.two.name .. "!")		end	end	return trueend
Para configurar são essas linhas ...

one = {	name = "Black Team", -- nome time 1 	storage = 140120, -- storage time 1	storage1 = 123322,	storage2 = 123326,	pos = {x=456, y=17, z=7} -- posição para onde eles vão ao entrar no tp (cada time tem o seu)},		two = {	name = "Red Team", -- nome time 2	storage = 140121, -- storage time 2	storage1 = 123321,	storage2 = 123325,	pos = {x=505, y=17, z=7} -- posição para onde eles vão ao entrar no tp (cada time tem o seu)},
Não testei, acho que dá certo.

Pelo que eu entendo de script, seu script também esta perfeito, impecável.. Era bem o que eu queria mesmo, além de separar manda a mensagem para qual time foi, obrigadão também irmão, mas ele não funciona, eu fiz o teste e quando o player pisa não acontece nada.. teria como arrumar?

Obrigado aos dois membros que me ajudaram, realmente Tibia King é o melhor site *-* HUAEAHUHSAUHSA

Abraços :rock:

Editado por eusouobozo1 (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