SH
pedido

Teleport Alavancha

Por Shoguns, 08 de fev. de 2014 em Scripts

alavancha
teleport
piso
aleatorio
resolvido
script
8
1.5k
08 de fevereiro de 2014 às 13:51

Bom, eu queria um Script assim, um Player pisaria em um Piso e puxaria a alavancha e Iria para 2 destinos aleatórios, se os 2 estivesses ocupados, apareceria a Mensagem que esta Ocupado, e se tivesse uma pessoa em um dos destino, quem puxa-se a alavancha fosse pro outro destino



MasterDinoM
08 de fevereiro de 2014 às 14:45

Ta meio gambiarra mas deve funcionar:

function onUse(cid, item, frompos, item2, topos)


local config = {
[1] = {x=XX, y=XX, z=XX}, -- os lugares aletorios
[2] = {x=XX, y=XX, z=XX}
}

local playerpos = {x=XX, y=XX, z=XX} -- lugar que o player prescisa estar
local level = X -- level que o player ira necessitar


if item.itemid == 1945 then

if isPlayer(getTopCreature(playerpos).uid) then
if getPlayerLevel(getTopCreature(playerpos).uid) >= level then
if getTopCreature(config[1]).uid > 0 and getTopCreature(config[2]).uid > 0 then
doPlayerSendCancel(cid,"O lugar de destino esta oculpado.")
return true
end
while true do
local random = config[math.random(#config)]
if getTopCreature(random).uid < 1 then
doTeleportThing(getTopCreature(playerpos).uid,random)
doTransformItem(item.uid,1946)
break
end
end
else
doPlayerSendCancel(cid,"Voce prescisa ser level "..level.." ou maior.")
end
return true
end

elseif item.itemid == 1946 then
doTransformItem(item.uid,1945)
end
return true
end
08 de fevereiro de 2014 às 15:00

Funcionou perfeitamente, REP+

 

Agora outra dúvida, um script de Teleport por level,que funcionaria assim:

Se um Player pisa-se no Teleport e não tivesse level, so apare-se a Mensagem tipo: Você precisa do level 600

 

 

Valendo rep+ essa tmb.

MasterDinoM
08 de fevereiro de 2014 às 15:08

Se for o propio teleport, voce nao poderia colocar as position nele pelo map editor, seria tudo por script em movements. quer mesmo assim?

08 de fevereiro de 2014 às 15:18

Sim, e por movements mesmo que quero.

 

 

-------EDIT------

 

Também pode ser com tile.

Editado Fevereiro 8 por Shoguns

MasterDinoM
08 de fevereiro de 2014 às 15:26

Em movements/scripts crie qualquer arquivo .lua e cole isso dentro:

function onStepIn(cid, item, position, fromPosition)

local destiny = {x=XX, y=XX, z=XX} -- local de destino
local level = X -- level necessario

if getPlayerLevel(cid) >= level then
doTeleportThing(cid, destiny)
else
doTeleportThing(cid, fromPosition)
doPlayerSendTextMessage(cid, 27,"Voce prescisa ser level "..level.." ou maior.")
end
return true
end

agora em movements.xml coloque essa tag:

<movevent type="StepIn" actionid="ID" event="script" value="NOME DO ARQUIVO.lua"/>

agora é so ir no map editor, ir no tile ou teleport que voce quer que funcione e colocar a mesma action id do movements.

08 de fevereiro de 2014 às 15:59

Não funcionou, mas conseguir fazer um que funcionou perfeitamente.

 

Você já atingiu seu limite de reputações positivas para hoje

 

Ta ai o Script pra quem tiver a mesma dúvida:

 

So precisar editar os XXX

function onStepIn(cid, item, position, fromPosition)
if getPlayerLevel(cid) >= XXX then
local teleport = {x=XXX, y=XXX, z=XXX}
doTeleportThing(cid, teleport)
doSendMagicEffect(getPlayerPosition(cid), CONST_ME_MAGIC_RED)
else
doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "voce precisa do level XXX")
 
return true
end

Editado Fevereiro 8 por Shoguns

zipter98Z
08 de fevereiro de 2014 às 16:07

Tópico movido para a seção de dúvidas e pedidos resolvidos.