Ir para conteúdo
  • Cadastre-se

(Resolvido){alavanca que teleporta 4x4 players}


Ir para solução Resolvido por luanluciano93,

Posts Recomendados

Quero uma alavanca que se tiver 4x4 players encima dos respectivos tiles, eles são teleportados para uma AREA X. E que esse script tenha um exhausted de 5 minutos! Eu sei que é possivel, mas nao manjo tanto, não é tão dificil acredito eu, quem puder me ajudar, REP +++

 

OBS: SE POSSIVEL VERIFICAR SE OS 4 PLAYERS SÃO DA MESMA GUILD... E os outros 4 SÃO DA MESMA GUILD TAMBÉM, pois é GUILD X GUILD

 

2aaadfs.png

 

Tentei fazer algo com isso:

local cfg = {
    positions = {
        {{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
        {{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
        {{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
        {{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
    },
    positions2 = {
        {{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
        {{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
        {{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
        {{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
    },
    not_enough_players = xxx,      --Efeito que aparecerá quando não tiver jogadores o suficiente.
    tp_effect = xxx,               --Efeito que vai aparecer nos jogadores ao serem teleportados.
}
function onUse(cid, item, fromPosition, item2, toPosition)
    for i = 1, #cfg.positions do
        if not isPlayer(getTopCreature(cfg.positions[i][1]).uid) then
    for i = 1, #cfg.positions2 do
        if not isPlayer(getTopCreature(cfg.positions2[i][1]).uid) then
            return doPlayerSendCancel(cid, "Not enough players.") and doSendMagicEffect(getThingPos(cid), cfg.not_enough_players)
        end
    end         
    for i = 1, #cfg.positions do
        local creature = getTopCreature(cfg.positions[i][1]).uid
        doTeleportThing(creature, cfg.positions[i][2])
        local creature = getTopCreature(cfg.positions2[i][1]).uid
        doTeleportThing(creature, cfg.positions2[i][2])
        doPlayerSendTextMessage(creature, 27, "You started the quest.")
        doSendMagicEffect(getThingPos(creature), cfg.tp_effect)
    end
    return true
end
Editado por Baned (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Não testei. 

local config = {
	
	positions = {
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
	},

	positions2 = {
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
	},
}

function onUse(cid, item, fromPosition, item2, toPosition)

	-- Checando posições 1
	for i = 1, #config.positions do
		if not isPlayer(getTopCreature(config.positions[i][1]).uid) then
			return doPlayerSendCancel(cid, "Nao existe players em todas as posicoes.") and doSendMagicEffect(getThingPos(cid), 2)
		end

		local guild1 = getPlayerGuildId(cid)
		if getPlayerGuildId(getTopCreature(config.positions[i][1]).uid) ~= guild1 then
			return doPlayerSendCancel(cid, "Alguem player nao e da guild correta.") and doSendMagicEffect(getThingPos(cid), 2)
		end
	end

	-- Checando posições 2
	for i = 1, #config.positions2 do
		if not isPlayer(getTopCreature(config.positions2[i][1]).uid) then
			return doPlayerSendCancel(cid, "Not enough players.") and doSendMagicEffect(getThingPos(cid), 2)
		end

		local guild2 = getPlayerGuildId(getTopCreature(config.positions2[1][1]).uid)
		if getPlayerGuildId(getTopCreature(config.positions2[i][1]).uid) ~= guild2 then
			return doPlayerSendCancel(cid, "Alguem player nao e da guild correta.") and doSendMagicEffect(getThingPos(cid), 2)
		end
	end

	-- Teleportando posições 1
	for i = 1, #config.positions do
		local creature = getTopCreature(config.positions[i][1]).uid
		doTeleportThing(creature, config.positions[i][2])
		doPlayerSendTextMessage(creature, 27, "You started the quest.")
		doSendMagicEffect(getThingPos(creature), 33)
	end

	-- Teleportando posições 1
	for i = 1, #config.positions2 do
		local creature = getTopCreature(config.positions2[i][1]).uid
		doTeleportThing(creature, config.positions2[i][2])
		doPlayerSendTextMessage(creature, 27, "You started the quest.")
		doSendMagicEffect(getThingPos(creature), 33)
	end

	return true
end
Link para o post
Compartilhar em outros sites

Luan, ainda não testei, mas tem como por um storage para o time 1 e outro storage pro time 2?

 

Pro time da posição 1 colocar storage 10045 e pro time 2 colocar storage 10046?

 

E se possivel pegar o nome da guild dos dois e mandar um BROADCAST do tipo,

 

Iniciou uma batalha entre GUILDX VS GUILDX?

 

E se possivel também, remover 500k de cada player, obrigaaaaaado, só se der!

Editado por Baned (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Acho que o luan vai arrumar uma forma melhor de fazer isso  :hum: (quase certeza)

mais enfim, acho que ficaria assim:

local config = {


positions = {
{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
},


positions2 = {
{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
},
}


function onUse(cid, item, fromPosition, item2, toPosition)


-- Checando posições 1
for i = 1, #config.positions do
if not isPlayer(getTopCreature(config.positions[i][1]).uid) then
return doPlayerSendCancel(cid, "Nao existe players em todas as posicoes.") and doSendMagicEffect(getThingPos(cid), 2)
end


local guild1 = getPlayerGuildId(cid)
if getPlayerGuildId(getTopCreature(config.positions[i][1]).uid) ~= guild1 then
return doPlayerSendCancel(cid, "Algum player nao e da guild correta.") and doSendMagicEffect(getThingPos(cid), 2)
end
end


-- Checando posições 2
for i = 1, #config.positions2 do
if not isPlayer(getTopCreature(config.positions2[i][1]).uid) then
return doPlayerSendCancel(cid, "Not enough players.") and doSendMagicEffect(getThingPos(cid), 2)
end


local guild2 = getPlayerGuildId(getTopCreature(config.positions2[1][1]).uid)
if getPlayerGuildId(getTopCreature(config.positions2[i][1]).uid) ~= guild2 then
return doPlayerSendCancel(cid, "Alguem player nao e da guild correta.") and doSendMagicEffect(getThingPos(cid), 2)
end
end


-- Teleportando posições 1
for i = 1, #config.positions do
local creature = getTopCreature(config.positions[i][1]).uid
local storage1 = 10045
doTeleportThing(creature, config.positions[i][2])
setPlayerStorageValue(creature, storage1, 1)
doPlayerSendTextMessage(creature, 27, "You started the quest.")
doSendMagicEffect(getThingPos(creature), 33)
end


-- Teleportando posições 1
for i = 1, #config.positions2 do
local creature = getTopCreature(config.positions2[i][1]).uid
local storage2 = 10046
local guilda1 = getPlayerGuildName(getTopCreature(config.positions[i][1]).uid)
local guilda2 = getPlayerGuildName(getTopCreature(config.positions2[i][1]).uid
doTeleportThing(creature, config.positions2[i][2])
setPlayerStorageValue(creature, storage2, 1)
doBroadcastMessage("Começou uma batalha entre ".. guilda1 .." e ".. guilda2 ..".")
doPlayerSendTextMessage(creature, 27, "You started the quest.")
doSendMagicEffect(getThingPos(creature), 33)
end
return true
end

Ando devagar, porque já tive pressa. E levo esse sorriso, porque já chorei demais...

________________________________________________________________________________

Minhas Sprites:

Mega Metagross

Mega Abomasnow

Pack de Shinys

[Posso atualizá-lo com novos shinys a qualquer momento]

Tutoriais:

[Completo] Criando e adicionando um novo Pokémon

[Actions] Criando quest no RME

Editores Lua/Xml/Sync Entre outros:

Editores Win/Mac/Linux

Link para o post
Compartilhar em outros sites
  • Solução

Não testei .. 

local config = {
	
	positions = {
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
	},

	positions2 = {
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
		{{x=535, y=1597, z=4}, {x=535, y=2000, z=4}},
	},
	
	storageTime1 = 10045,
	storageTime2 = 10046,
	money = 500,-- em k
}

function onUse(cid, item, fromPosition, item2, toPosition)

	-- Checando posições 1
	for i = 1, #config.positions do
		local creature = getTopCreature(config.positions[i][1]).uid
		
		if not isPlayer(creature) then
			return doPlayerSendCancel(cid, "Nao existe players em todas as posicoes.") and doSendMagicEffect(getThingPos(cid), 2)
		end

		local guild1 = getPlayerGuildId(getTopCreature(config.positions[1][1]).uid)
		if getPlayerGuildId(creature) ~= guild1 then
			return doPlayerSendCancel(cid, "Algum player nao e da guild correta.") and doSendMagicEffect(getThingPos(cid), 2)
		end
		
		if getPlayerMoney(creature) < (config.money * 1000) then
			return doPlayerSendCancel(cid, "Algum player nao tem "..config.money.."k.") and doSendMagicEffect(getThingPos(cid), 2)
		end
	end

	-- Checando posições 2
	for i = 1, #config.positions2 do
		local creature = getTopCreature(config.positions2[i][1]).uid
		
		if not isPlayer(creature) then
			return doPlayerSendCancel(cid, "Not enough players.") and doSendMagicEffect(getThingPos(cid), 2)
		end

		local guild2 = getPlayerGuildId(getTopCreature(config.positions2[1][1]).uid)
		if getPlayerGuildId(creature) ~= guild2 then
			return doPlayerSendCancel(cid, "Algum player nao e da guild correta.") and doSendMagicEffect(getThingPos(cid), 2)
		end
		
		if getPlayerMoney(creature) < (config.money * 1000) then
			return doPlayerSendCancel(cid, "Algum player nao tem "..config.money.."k.") and doSendMagicEffect(getThingPos(cid), 2)
		end
	end

	doBroadcastMessage("Começou uma batalha entre ".. getPlayerGuildName(getTopCreature(config.positions[1][1].uid) .." e ".. getPlayerGuildName(getTopCreature(config.positions2[1][1]).uid) ..".")

	-- Teleportando posições 1
	for i = 1, #config.positions do
		local creature = getTopCreature(config.positions[i][1]).uid
		doTeleportThing(creature, config.positions[i][2])
		doPlayerSendTextMessage(creature, 27, "You started the quest.")
		doSendMagicEffect(getThingPos(creature), 33)
		doPlayerRemoveMoney(creature, (config.money * 1000))
		setPlayerStorageValue(creature, config.storageTime1, 1)
	end

	-- Teleportando posições 2
	for i = 1, #config.positions2 do
		local creature = getTopCreature(config.positions2[i][1]).uid
		doTeleportThing(creature, config.positions2[i][2])
		doPlayerSendTextMessage(creature, 27, "You started the quest.")
		doSendMagicEffect(getThingPos(creature), 33)
		doPlayerRemoveMoney(creature, (config.money * 1000))
		setPlayerStorageValue(creature, config.storageTime2, 1)
	end

	return true
end
Link para o post
Compartilhar em outros sites

^ luanluciano93 pode ocorrer um problema com seu script nessa linha aqui :

local guild1 = getPlayerGuildId(cid)

supomos que o cid, esteja na :

config.positions2[1][1])

dbu_bRK_W.png

 

logo toda config,position = guild 1, seria verificado com o id da guild 2.

 

e aqui tb :

doBroadcastMessage("Começou uma batalha entre ".. getPlayerGuildName(cid) .." e ".. getPlayerGuildName(getTopCreature(config.positions2[1][1]).uid) ..".")

dependendo se o cid for da guild 2 :

 

vai enviar : "guild 2 x guild 2".

 

teria que ser :

		local guild1 = getPlayerGuildId(getTopCreature(config.positions[1][1]).uid)
	        doBroadcastMessage("Começou uma batalha entre ".. getPlayerGuildName(getTopCreature(config.positions[1][1]).uid) .." e ".. getPlayerGuildName(getTopCreature(config.positions2[1][1]).uid) ..".", MESSAGE_STATUS_WARNING)

Vinicius Xxgamexx  o broadcast tem que estar fora do for se não ele vai enviar a mensagem em toda vez que rodar o teleport das posições.

 doBroadcastMessage("Começou uma batalha entre ".. getPlayerGuildName(getTopCreature(config.positions[1][1]).uid) .." e ".. getPlayerGuildName(getTopCreature(config.positions2[1][1]).uid) ..".", MESSAGE_STATUS_WARNING)

-- Teleportando posições 1
	for i = 1, #config.positions2 do
		local creature = getTopCreature(config.positions2[i][1]).uid
		local storage2 = 10046
		local guilda1 = getPlayerGuildName(getTopCreature(config.positions[i][1]).uid)
		local guilda2 = getPlayerGuildName(getTopCreature(config.positions2[i][1]).uid
		doTeleportThing(creature, config.positions2[i][2])
		setPlayerStorageValue(creature, storage2, 1)
		doBroadcastMessage("Começou uma batalha entre ".. guilda1 .." e ".. guilda2 ..".")
		doPlayerSendTextMessage(creature, 27, "You started the quest.")
		doSendMagicEffect(getThingPos(creature), 33)
	end
	return true
end
Editado por Stinger (veja o histórico de edições)

I must not fear. Fear is the mind killer.

Link para o post
Compartilhar em outros sites

^ Tb teria que colocar o broadcast antes de começar a teleportar os players, pois o getTopCreature() retornaria nil por não ter ninguém no local.

      doBroadcastMessage("Começou uma batalha entre ".. getPlayerGuildName(getTopCreature(config.positions[1][1]).uid) .." e ".. getPlayerGuildName(getTopCreature(config.positions2[1][1]).uid) ..".", MESSAGE_STATUS_WARNING)

  -- Teleportando posições 1
Editado por Stinger (veja o histórico de edições)

I must not fear. Fear is the mind killer.

Link para o post
Compartilhar em outros sites

Não entendi qual está correto, o do luan ou tenho que ajeitar o do cara no do luan?

 

E GOSTARIA DE POR pra só poder iniciar a WAR se a outra guild tiver terminado a WAR....

 

É a ultima coisa... JURO!!! SEUS LINDOS!

 

 

________________________________________________________________________________________________

 

 

 

- EDITADO: bom acredito que consegui, gostaria muito de outro script, que é a continuação desse, se alguem puder me ajudar, segue o link!

 

http://www.tibiaking.com/forum/topic/57285-continua%C3%A7%C3%A3o-de-script/

Editado por Baned (veja o histórico de edições)
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