Ir para conteúdo
  • 0

Alguem Que Entenda De Script Ajuda Ake!


749676

Pergunta

Então estou aki para ver se tem como aperfeiçoar esse script aki:

 

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

 

local pos = {x=1226, y=236, z=4}

local pos2 = getThingPos(item.uid)

local id = getThingFromPos(pos).itemid

 

if item.itemid == 1945 then

doCreateItem(1284, pos)

doTransformItem(item.uid, 1946)

addEvent(doChangeAll, 15*1000, pos, pos2, id)

doCreatureSay(cid, "Você tem 15 segundos para atravessar a ponte !", TALKTYPE_ORANGE_1)

else

doPlayerSendCancel(cid, "The rock did not desapear so far.")

end

 

return TRUE

end

 

function doChangeAll(posi, posi2, id)

 

for i = 0, 255 do

local itemposition = {x=posi.x, y=posi.y, z=posi.z, stackpos=i}

if getThingFromPos(posi).itemid == 1284 then

stack = i

break

end

end

local posa = {x=posi.x, y=posi.y, z=posi.z, stackpos=stack}

doTransformItem(getThingFromPos(posi2).uid, 1945)

doRemoveItem(getThingFromPos(posa).uid, 1)

doCreateItem(id, posa)

end

 

 

O unico problema dele é o seguinte, esse script ele cria uma ponte e depois de 15 segundos a ponte some... mais tem veses q a ponte some com um player encima dela, ai o coitado fica travado na agua, gostaria de saber se tem como fazer a ponte so ser removida se n tiver ninguem encima dela...

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0

Não tenho certeza se funcionará, mas tente:

 

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

local pos = {x=1226, y=236, z=4}
local pos2 = getThingPos(item.uid)
local id = getThingFromPos(pos).itemid

if item.itemid == 1945 then
	doCreateItem(1284, pos)
	doTransformItem(item.uid, 1946)
	addEvent(doChangeAll, 15*1000, pos, pos2, id) 
	doCreatureSay(cid, "Você tem 15 segundos para atravessar a ponte !", TALKTYPE_ORANGE_1)
else
	doPlayerSendCancel(cid, "The rock did not desapear so far.")
end

return true
end

function doChangeAll(posi, posi2, id)

for i = 0, 255 do
	local itemposition = {x=posi.x, y=posi.y, z=posi.z, stackpos=i}
	if getThingFromPos(posi).itemid == 1284 then
		stack = i
		break
	end
end

local posa = {x=posi.x, y=posi.y, z=posi.z, stackpos=stack}

if not isPlayer(getThingFromPos(posa).uid) then
	doTransformItem(getThingFromPos(posi2).uid, 1945)
	doRemoveItem(getThingFromPos(posa).uid, 1)
	doCreateItem(id, posa)
else
	addEvent(doChangeAll, 15*1000, posi, posi2, id)
end
return true
end

 

 

flw

Link para o comentário
Compartilhar em outros sites

  • 0

Se precisar aperfeiçoar este script me mande por pm que eu ajudo, mas me diga uma coisa, você quer que teleporte o jogador pra 1 X a mais ou para 1 Y a mais?

 

OBS: Creio que o problema do que o apoca fez foi o stackpos, o dele funcionária se fosse assim:

 

 

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

local pos = {x=1226, y=236, z=4}
local pos2 = getThingPos(item.uid)
local id = getThingFromPos(pos).itemid

       if item.itemid == 1945 then
               doCreateItem(1284, pos)
               doTransformItem(item.uid, 1946)
               addEvent(doChangeAll, 15*1000, pos, pos2, id) 
               doCreatureSay(cid, "Você tem 15 segundos para atravessar a ponte !", TALKTYPE_ORANGE_1)
       else
               doPlayerSendCancel(cid, "The rock did not desapear so far.")
       end

return true
end

function doChangeAll(posi, posi2, id)

       for i = 0, 255 do
               local itemposition = {x=posi.x, y=posi.y, z=posi.z, stackpos=i}
               if getThingFromPos(posi).itemid == 1284 then
                       stack = i
                       break
               end
       end

local posa = {x=posi.x, y=posi.y, z=posi.z, stackpos=stack}

       if not isPlayer(getThingFromPos({x=posi.x, y=posi.y, z=posi.z, stackpos=253}).uid) then
               doTransformItem(getThingFromPos(posi2).uid, 1945)
               doRemoveItem(getThingFromPos(posa).uid, 1)
               doCreateItem(id, posa)
       else
               addEvent(doChangeAll, 15*1000, posi, posi2, id)
       end
return true
end

 

 

Não tenho certeza. Só que o dele simplesmente faz executar de novo a checagem, acho que o que tu quer é que teleporte o jogador né?

Editado por Demonbholder
Link para o comentário
Compartilhar em outros sites

  • 0

então oq eu quiria é q se passasse os 15 seg e o o player estivesse na ponte a ponte n sumisse.

 

se alguem ai conseguir arrumar esse script... vou agradecer :D

Link para o comentário
Compartilhar em outros sites

  • 0
function onUse(cid, item, fromPosition, itemEx, toPosition) 

local pos = {x=1226, y=236, z=4}
local pos2 = getThingPos(item.uid)
local id = getThingFromPos(pos).itemid

       if item.itemid == 1945 then
               doCreateItem(1284, pos)
               doTransformItem(item.uid, 1946)
               addEvent(doChangeAll, 15*1000, pos, pos2, id) 
               doCreatureSay(cid, "Você tem 15 segundos para atravessar a ponte !", TALKTYPE_ORANGE_1)
       else
               doPlayerSendCancel(cid, "The rock did not desapear so far.")
       end

return true
end

function doChangeAll(posi, posi2, id)

       for i = 0, 255 do
               local itemposition = {x=posi.x, y=posi.y, z=posi.z, stackpos=i}
               local lalaka = getThingFromPos({x=posi.x, y=posi.y, z=posi.z, stackpos=stack})
               if isCreature(lalaka.uid) then
               elseif getThingFromPos(posi).itemid == 1284 then
                       stack = i
                       break
               end
       end

local posa = {x=posi.x, y=posi.y, z=posi.z, stackpos=stack}

       if not isPlayer(getThingFromPos({x=posi.x, y=posi.y, z=posi.z, stackpos=253}).uid) then
               doTransformItem(getThingFromPos(posi2).uid, 1945)
               doRemoveItem(getThingFromPos(posa).uid, 1)
               doCreateItem(id, posa)
       else
               addEvent(doChangeAll, 15*1000, posi, posi2, id)
       end
return true
end

Editado por MaXwEllDeN
Link para o comentário
Compartilhar em outros sites

  • 0

Testa ai:

function removeAll(configs, leverpos, tp, water, leveroff, leveron)
   for i,x in pairs(configs) do
       for s, t in pairs(x) do
           for l = 0,255 do
               if isPlayer(getThingFromPos({x=t.x, y=t.y, z=t.z, stackpos = l}).uid)  then
                   player = {x=t.x, y=t.y, z=t.z, stackpos = l}
                   break
               end
           end
       end
   end
   if player then
       doTeleportThing(getThingFromPos(player).uid, tp)
   end
   for i,x in pairs(configs) do
       for s, t in pairs(x) do
           for l = 0,255 do
               t.stackpos = l
               if getThingFromPos(t).itemid == i then
                   if l == 0 then
                       doTransformItem(getThingFromPos(t).uid, water)
                   else
                       doRemoveItem(getThingFromPos(t).uid)
                   end
               end
           end
       end
   end
   for l = 0,255 do
       leverpos.stackpos = l
       if getThingFromPos(leverpos).itemid == leveron then
           doTransformItem(getThingFromPos(leverpos).uid, leveroff)
           break
       end
   end
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
   local configs = {
   [1284] = {{x=56, y=60, z=7},{x=56, y=61, z=7},{x=56, y=62, z=7},{x=56, y=63, z=7},{x=56, y=64, z=7},{x=56, y=65, z=7},{x=56, y=66, z=7},{x=55, y=60, z=7},{x=55, y=61, z=7},{x=55, y=62, z=7},{x=55, y=63, z=7},{x=55, y=64, z=7},{x=55, y=65, z=7},{x=55, y=66, z=7},{x=54, y=60, z=7},{x=54, y=61, z=7},{x=54, y=62, z=7},{x=54, y=63, z=7},{x=54, y=64, z=7},{x=54, y=65, z=7},{x=54, y=66, z=7}},
   [2742] = {{x=55, y=62, z=7}},
   [1543] = {{x=54, y=60, z=7},{x=54, y=61, z=7},{x=54, y=62, z=7},{x=54, y=63, z=7},{x=54, y=64, z=7},{x=54, y=65, z=7},{x=54, y=66, z=7},{x=56, y=60, z=7},{x=56, y=61, z=7},{x=56, y=62, z=7},{x=56, y=63, z=7},{x=56, y=64, z=7},{x=56, y=65, z=7},{x=56, y=66, z=7}} 
   }
   local firstpos = {x=56,y=67,z=7} -- Posiçao do lado inicial da ponte
   local waterid = 4612 -- Item ID da agua.
   local time = 15 -- Em segundos
   local leveroff, leveron = 1945, 1946

   if item.itemid == leveroff then
       for i,x in pairs(configs) do
           for s, t in pairs(x) do
               doCreateItem(i, t)
               doTransformItem(item.uid, leveron)
           end
       end
       addEvent(removeAll, time*1000, configs, getThingPos(item.uid), firstpos, waterid, leveroff, leveron)
   end
return TRUE
end

 

Nao se esqueça de configurar essa linha:

local firstpos = {x=000,y=000,z=000} -- Posiçao do lado inicial da ponte

 

Testei aqui e funcionou perfeitamente.

Editado por MatheusMkalo
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...