Ir para conteúdo

[Encerrado] Ajuda Com script.


lgan

Posts Recomendados

Dae pessoal... estou com um script aki que esta funcionando certinho. é uma alavanca que teleporta 4 players pra um determinado lugar, soh que eu queria que para teleportar ele verifique se o player tem xxxx storage. segue o script:

 

 

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

if item.uid == 7333 and item.itemid == 1945 then
player1pos = {x=1495, y=1571, z=8, stackpos=253}
player1 = getThingfromPos(player1pos)

player2pos = {x=1495, y=1575, z=8, stackpos=253}
player2 = getThingfromPos(player2pos)

player3pos = {x=1497, y=1573, z=8, stackpos=253}
player3 = getThingfromPos(player3pos)

player4pos = {x=1493, y=1573, z=8, stackpos=253}
player4 = getThingfromPos(player4pos)


if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
queststatus1 = getPlayerStorageValue(player1.uid,7100)
queststatus2 = getPlayerStorageValue(player2.uid,7100)
queststatus3 = getPlayerStorageValue(player3.uid,7100)
queststatus4 = getPlayerStorageValue(player4.uid,7100)

if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then
nplayer1pos = {x=1495, y=1571, z=9}
nplayer2pos = {x=1495, y=1575, z=9}
nplayer3pos = {x=1497, y=1573, z=9}
nplayer4pos = {x=1493, y=1573, z=9}

doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)
doSendMagicEffect(player3pos,2)
doSendMagicEffect(player4pos,2)

doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)
doTeleportThing(player3.uid,nplayer3pos)
doTeleportThing(player4.uid,nplayer4pos)

doSendMagicEffect(nplayer1pos,10)
doSendMagicEffect(nplayer2pos,10)
doSendMagicEffect(nplayer3pos,10)
doSendMagicEffect(nplayer4pos,10)

doTransformItem(item.uid,item.itemid+1)
else
doPlayerSendCancel(cid,"Alguem do seu time ja fez essa quest.")
end
else
doPlayerSendCancel(cid,"voce precisa de mais pessoas para ir nessa quest.")
end

elseif item.uid ==7333 and item.itemid == 1945 then
if getPlayerAccess(cid) > 0 then
doTransformItem(item.uid,item.itemid-1)
else
doPlayerSendCancel(cid,"Sorry, not possible.")
end
else
return 0
end

return 1

end

 

 

as storages são: 181630, 181631, 181632, 181633, 181634, 181635, 181636, 181637, 181638.

 

 

 

 

se alguem puder ajudar....

Link para o comentário
Compartilhar em outros sites

testa..

 

 

local sto = {181630, 181631, 181632, 181633, 181634, 181635, 181636, 181637, 181638}
 
function onUse(cid, item, frompos, item2, topos)
 
if getPlayerStorageValue(cid, sto) == 1 then
  doPlayerSendCancel(cid, "isso não é possivel..")
  return true
end
 
 
if item.uid == 7333 and item.itemid == 1945 then
player1pos = {x=1495, y=1571, z=8, stackpos=253}
player1 = getThingfromPos(player1pos)
 
player2pos = {x=1495, y=1575, z=8, stackpos=253}
player2 = getThingfromPos(player2pos)
 
player3pos = {x=1497, y=1573, z=8, stackpos=253}
player3 = getThingfromPos(player3pos)
 
player4pos = {x=1493, y=1573, z=8, stackpos=253}
player4 = getThingfromPos(player4pos)
 
 
if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
queststatus1 = getPlayerStorageValue(player1.uid,7100)
queststatus2 = getPlayerStorageValue(player2.uid,7100)
queststatus3 = getPlayerStorageValue(player3.uid,7100)
queststatus4 = getPlayerStorageValue(player4.uid,7100)
 
if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then
nplayer1pos = {x=1495, y=1571, z=9}
nplayer2pos = {x=1495, y=1575, z=9}
nplayer3pos = {x=1497, y=1573, z=9}
nplayer4pos = {x=1493, y=1573, z=9}
 
doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)
doSendMagicEffect(player3pos,2)
doSendMagicEffect(player4pos,2)
 
doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)
doTeleportThing(player3.uid,nplayer3pos)
doTeleportThing(player4.uid,nplayer4pos)
 
doSendMagicEffect(nplayer1pos,10)
doSendMagicEffect(nplayer2pos,10)
doSendMagicEffect(nplayer3pos,10)
doSendMagicEffect(nplayer4pos,10)
 
doTransformItem(item.uid,item.itemid+1)
else
doPlayerSendCancel(cid,"Alguem do seu time ja fez essa quest.")
end
else
doPlayerSendCancel(cid,"voce precisa de mais pessoas para ir nessa quest.")
end
 
elseif item.uid ==7333 and item.itemid == 1945 then
if getPlayerAccess(cid) > 0 then
doTransformItem(item.uid,item.itemid-1)
else
doPlayerSendCancel(cid,"Sorry, not possible.")
end
else
return 0
end
 
return 1
end

Link para o comentário
Compartilhar em outros sites

stylo ainda não funcionou...

 

 

testa..

 

 

local sto = {181630, 181631, 181632, 181633, 181634, 181635, 181636, 181637, 181638}
 
function onUse(cid, item, frompos, item2, topos)
 
if getPlayerStorageValue(cid, sto) == 1 then
  doPlayerSendCancel(cid, "isso não é possivel..")
  return true
end
 
 
if item.uid == 7333 and item.itemid == 1945 then
player1pos = {x=1495, y=1571, z=8, stackpos=253}
player1 = getThingfromPos(player1pos)
 
player2pos = {x=1495, y=1575, z=8, stackpos=253}
player2 = getThingfromPos(player2pos)
 
player3pos = {x=1497, y=1573, z=8, stackpos=253}
player3 = getThingfromPos(player3pos)
 
player4pos = {x=1493, y=1573, z=8, stackpos=253}
player4 = getThingfromPos(player4pos)
 
 
if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
queststatus1 = getPlayerStorageValue(player1.uid,7100)
queststatus2 = getPlayerStorageValue(player2.uid,7100)
queststatus3 = getPlayerStorageValue(player3.uid,7100)
queststatus4 = getPlayerStorageValue(player4.uid,7100)
 
if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then
nplayer1pos = {x=1495, y=1571, z=9}
nplayer2pos = {x=1495, y=1575, z=9}
nplayer3pos = {x=1497, y=1573, z=9}
nplayer4pos = {x=1493, y=1573, z=9}
 
doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)
doSendMagicEffect(player3pos,2)
doSendMagicEffect(player4pos,2)
 
doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)
doTeleportThing(player3.uid,nplayer3pos)
doTeleportThing(player4.uid,nplayer4pos)
 
doSendMagicEffect(nplayer1pos,10)
doSendMagicEffect(nplayer2pos,10)
doSendMagicEffect(nplayer3pos,10)
doSendMagicEffect(nplayer4pos,10)
 
doTransformItem(item.uid,item.itemid+1)
else
doPlayerSendCancel(cid,"Alguem do seu time ja fez essa quest.")
end
else
doPlayerSendCancel(cid,"voce precisa de mais pessoas para ir nessa quest.")
end
 
elseif item.uid ==7333 and item.itemid == 1945 then
if getPlayerAccess(cid) > 0 then
doTransformItem(item.uid,item.itemid-1)
else
doPlayerSendCancel(cid,"Sorry, not possible.")
end
else
return 0
end
 
return 1
end

 

 

Ainda não funcionou...

Link para o comentário
Compartilhar em outros sites

troca isso..

 

if getPlayerStorageValue(cid, sto) == 1 then
  doPlayerSendCancel(cid, "isso não é possivel..")
  return true
end

por isso..

 

 for i = 1, #sto do
         if getPlayerStorageValue(cid, sto) == 1 then
return true
  end
end
Link para o comentário
Compartilhar em outros sites

 

troca isso..

if getPlayerStorageValue(cid, sto) == 1 then
  doPlayerSendCancel(cid, "isso não é possivel..")
  return true
end

por isso..

 for i = 1, #sto do
         if getPlayerStorageValue(cid, sto) == 1 then
return true
  end
end

No lugar de cid, deve colocar para pegar os 4 players...

Link para o comentário
Compartilhar em outros sites

Testa ai brother.

 

 local test = {
positions =
{
{x=1495, y=1571, z=9},
{x=1495, y=1575, z=9},
{x=1497, y=1573, z=9},
{x=1493, y=1573, z=9}
},
storages = {181630, 181631, 181632, 181633, 181634, 181635, 181636, 181637, 181638}
}
 
 
function onUse(cid, item, frompos, item2, topos)
 
if item.uid == 7333 and item.itemid == 1945 then
player1pos = {x=1495, y=1571, z=8, stackpos=253}
player1 = getThingfromPos(player1pos)
 
player2pos = {x=1495, y=1575, z=8, stackpos=253}
player2 = getThingfromPos(player2pos)
 
player3pos = {x=1497, y=1573, z=8, stackpos=253}
player3 = getThingfromPos(player3pos)
 
player4pos = {x=1493, y=1573, z=8, stackpos=253}
player4 = getThingfromPos(player4pos)
 
 local pid = getTopCreature(test.positions).uid
if(pid == 0 or not isPlayer(pid) or getCreatureStorage(pid, test.storages) > 0 then
doPlayerSendCancel(cid, "Há algo errado ai hein...")
return true
end
 
if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
queststatus1 = getPlayerStorageValue(player1.uid,7100)
queststatus2 = getPlayerStorageValue(player2.uid,7100)
queststatus3 = getPlayerStorageValue(player3.uid,7100)
queststatus4 = getPlayerStorageValue(player4.uid,7100)
 
if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then
nplayer1pos = {x=1495, y=1571, z=9}
nplayer2pos = {x=1495, y=1575, z=9}
nplayer3pos = {x=1497, y=1573, z=9}
nplayer4pos = {x=1493, y=1573, z=9}
 
doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)
doSendMagicEffect(player3pos,2)
doSendMagicEffect(player4pos,2)
 
doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)
doTeleportThing(player3.uid,nplayer3pos)
doTeleportThing(player4.uid,nplayer4pos)
 
doSendMagicEffect(nplayer1pos,10)
doSendMagicEffect(nplayer2pos,10)
doSendMagicEffect(nplayer3pos,10)
doSendMagicEffect(nplayer4pos,10)
 
doTransformItem(item.uid,item.itemid+1)
else
doPlayerSendCancel(cid,"Alguem do seu time ja fez essa quest.")
end
else
doPlayerSendCancel(cid,"voce precisa de mais pessoas para ir nessa quest.")
end
 
elseif item.uid ==7333 and item.itemid == 1945 then
if getPlayerAccess(cid) > 0 then
doTransformItem(item.uid,item.itemid-1)
else
doPlayerSendCancel(cid,"Sorry, not possible.")
end
else
return 0
end
 
return 1
end

 



Spoiler me trollo u.u

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

Testa ai brother.

 

 

 local test = {
positions =
{
{x=1495, y=1571, z=9},
{x=1495, y=1575, z=9},
{x=1497, y=1573, z=9},
{x=1493, y=1573, z=9}
},
storages = {181630, 181631, 181632, 181633, 181634, 181635, 181636, 181637, 181638}
}
 
 
function onUse(cid, item, frompos, item2, topos)
 
if item.uid == 7333 and item.itemid == 1945 then
player1pos = {x=1495, y=1571, z=8, stackpos=253}
player1 = getThingfromPos(player1pos)
 
player2pos = {x=1495, y=1575, z=8, stackpos=253}
player2 = getThingfromPos(player2pos)
 
player3pos = {x=1497, y=1573, z=8, stackpos=253}
player3 = getThingfromPos(player3pos)
 
player4pos = {x=1493, y=1573, z=8, stackpos=253}
player4 = getThingfromPos(player4pos)
 
 local pid = getTopCreature(test.positions).uid
if(pid == 0 or not isPlayer(pid) or getCreatureStorage(pid, test.storages) > 0 then
doPlayerSendCancel(cid, "Há algo errado ai hein...")
return true
end
 
if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then
queststatus1 = getPlayerStorageValue(player1.uid,7100)
queststatus2 = getPlayerStorageValue(player2.uid,7100)
queststatus3 = getPlayerStorageValue(player3.uid,7100)
queststatus4 = getPlayerStorageValue(player4.uid,7100)
 
if queststatus1 == -1 and queststatus2 == -1 and queststatus3 == -1 and queststatus4 == -1 then
nplayer1pos = {x=1495, y=1571, z=9}
nplayer2pos = {x=1495, y=1575, z=9}
nplayer3pos = {x=1497, y=1573, z=9}
nplayer4pos = {x=1493, y=1573, z=9}
 
doSendMagicEffect(player1pos,2)
doSendMagicEffect(player2pos,2)
doSendMagicEffect(player3pos,2)
doSendMagicEffect(player4pos,2)
 
doTeleportThing(player1.uid,nplayer1pos)
doTeleportThing(player2.uid,nplayer2pos)
doTeleportThing(player3.uid,nplayer3pos)
doTeleportThing(player4.uid,nplayer4pos)
 
doSendMagicEffect(nplayer1pos,10)
doSendMagicEffect(nplayer2pos,10)
doSendMagicEffect(nplayer3pos,10)
doSendMagicEffect(nplayer4pos,10)
 
doTransformItem(item.uid,item.itemid+1)
else
doPlayerSendCancel(cid,"Alguem do seu time ja fez essa quest.")
end
else
doPlayerSendCancel(cid,"voce precisa de mais pessoas para ir nessa quest.")
end
 
elseif item.uid ==7333 and item.itemid == 1945 then
if getPlayerAccess(cid) > 0 then
doTransformItem(item.uid,item.itemid-1)
else
doPlayerSendCancel(cid,"Sorry, not possible.")
end
else
return 0
end
 
return 1
end

 

 

 

Spoiler me trollo u.u

apresentou o seguinte erro no console....

[Error - LuaScriptInterface::loadFile] data/actions/scripts/Outland/inicio.lua:29: ')' expected near 'then'
[Warning - Event::loadScript] Cannot load script (data/actions/scripts/Outland/inicio.lua)
data/actions/scripts/Outland/inicio.lua:29: ')' expected near 'then
Link para o comentário
Compartilhar em outros sites

quem foi q fez esse script ae heim PUTA Q PARIU...

 

 

 

local posis = {      --pos inicial dos players
   { {x=1495, y=1571, z=8} },
   { {x=1495, y=1575, z=8} },
   { {x=1497, y=1573, z=8} },
   { {x=1493, y=1573, z=8} },
}

local TOPOS = {      --pos pra onde os players seram levados
   { {x=1495, y=1571, z=9} },
   { {x=1495, y=1575, z=9} },
   { {x=1497, y=1573, z=9} },
   { {x=1493, y=1573, z=9} },
}

local stos = {181630, 181631, 181632, 181633, 181634, 181635, 181636, 181637, 181638}

function onUse(cid, item, frompos, item2, topos)
   local players = {}
   
   if item.uid == 7333 and item.itemid == 1945 then
      for i = 1, #posis do
         local pid = getTopCreature(posis[i][1])
         if pid and isPlayer(pid.uid) and getPlayerStorageValue(pid.uid, 71000) == -1 then
            for a = 1, #stos do
                if getPlayerStorageValue(pid.uid, stos[a]) < 1 then
                   doPlayerSendTextMessage(cid, 27, "msg aki")--caso algum dos players n tenha uma das storages q tu queria
                   return true
                end
            end
            table.insert(players, pid.uid)
         else
            doPlayerSendTextMessage(cid, 27, "É preciso pelo menos ".. #posis .." players para fazer essa quest ou alguem do seu time ja fez essa quest!")
            return true
         end
      end  
      for i = 1, #players do
         doSendMagicEffect(posis[i], 2)
         doTeleportThing(players[i], TOPOS[i])
         doSendMagicEffect(TOPOS[i], 10)  
      end
      doTransformItem(item.uid, item.itemid+1)
   elseif item.uid == 7333 and item.itemid == 1946 then  --achu q teu script estava errado aki... no teu ta 1945, mas acredito q seja 1946 ms...
      if getPlayerAccess(cid) > 0 then
         doTransformItem(item.uid, item.itemid-1)
      else
         doPlayerSendCancel(cid, "Sorry, not possible.")
      end  
   end
return true
end

Link para o comentário
Compartilhar em outros sites

 

quem foi q fez esse script ae heim PUTA Q PARIU...

 

 

 

local posis = {      --pos inicial dos players
   { {x=1495, y=1571, z=8} },
   { {x=1495, y=1575, z=8} },
   { {x=1497, y=1573, z=8} },
   { {x=1493, y=1573, z=8} },
}

local TOPOS = {      --pos pra onde os players seram levados
   { {x=1495, y=1571, z=9} },
   { {x=1495, y=1575, z=9} },
   { {x=1497, y=1573, z=9} },
   { {x=1493, y=1573, z=9} },
}

local stos = {181630, 181631, 181632, 181633, 181634, 181635, 181636, 181637, 181638}

function onUse(cid, item, frompos, item2, topos)
   local players = {}
   
   if item.uid == 7333 and item.itemid == 1945 then
      for i = 1, #posis do
         local pid = getTopCreature(posis[i][1])
         if pid and isPlayer(pid.uid) and getPlayerStorageValue(pid.uid, 71000) == -1 then
            for a = 1, #stos do
                if getPlayerStorageValue(pid.uid, stos[a]) < 1 then
                   doPlayerSendTextMessage(cid, 27, "msg aki")--caso algum dos players n tenha uma das storages q tu queria
                   return true
                end
            end
            table.insert(players, pid.uid)
         else
            doPlayerSendTextMessage(cid, 27, "É preciso pelo menos ".. #posis .." players para fazer essa quest ou alguem do seu time ja fez essa quest!")
            return true
         end
      end  
      for i = 1, #players do
         doSendMagicEffect(posis[i], 2)
         doTeleportThing(players[i], TOPOS[i])
         doSendMagicEffect(TOPOS[i], 10)  
      end
      doTransformItem(item.uid, item.itemid+1)
   elseif item.uid == 7333 and item.itemid == 1946 then  --achu q teu script estava errado aki... no teu ta 1945, mas acredito q seja 1946 ms...
      if getPlayerAccess(cid) > 0 then
         doTransformItem(item.uid, item.itemid-1)
      else
         doPlayerSendCancel(cid, "Sorry, not possible.")
      end  
   end
return true
end

 

pow @slicer não funcioou. tipo...ele vira a alavanca, mas n teleporta os players...

 

e tem um pequeno detalhe... ( que eu confesso, que foi burrice minha....) na verdade, o que eu preciso eh: se o player tem xxxx storage, ele não pode mais ser teleportado por esse script.

 

de maneira mais simples ainda... Essa eh uma Entrada da Outland main, e eu n quero que o player complete ela 2x, porém caso ele morra sem completar, ele pode entrar novamente. então as storages que eu coloquei na lista, são as sto das outfits master, ouseja se o player chegar no final da sala... ele vai pegar a recompensa, e não pode mais entrar na quest.

 

 

e novamente desculpa aew .... por não ter explicado direito ja no começo...

desde ja agradeço a ajuda de todos...

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

Ó amigo, testa ai

 

 

local posis = {      --pos inicial dos players
   { {x=1495, y=1571, z=8} },
   { {x=1495, y=1575, z=8} },
   { {x=1497, y=1573, z=8} },
   { {x=1493, y=1573, z=8} },
}
 
local TOPOS = {      --pos pra onde os players seram levados
   { {x=1495, y=1571, z=9} },
   { {x=1495, y=1575, z=9} },
   { {x=1497, y=1573, z=9} },
   { {x=1493, y=1573, z=9} },
}
 
local stos = {181630, 181631, 181632, 181633, 181634, 181635, 181636, 181637, 181638}
 
function onUse(cid, item, frompos, item2, topos)
   local players = {}
   
   if item.uid == 7333 and item.itemid == 1945 then
      for i = 1, #posis do
         local pid = getTopCreature(posis[i][1])
         if pid and isPlayer(pid.uid) and getPlayerStorageValue(pid.uid, 71000) == -1 then
            for a = 1, #stos do
                if getPlayerStorageValue(pid.uid, stos[a]) > 1 then
                   doPlayerSendTextMessage(cid, 27, "msg aki")--caso algum dos players n tenha uma das storages q tu queria
                   return true
                end
            end
            table.insert(players, pid.uid)
         else
            doPlayerSendTextMessage(cid, 27, "É preciso pelo menos ".. #posis .." players para fazer essa quest ou alguem do seu time ja fez essa quest!")
            return true
         end
      end  
      for i = 1, #players do
         doSendMagicEffect(posis[i], 2)
         doTeleportThing(players[i], TOPOS[i])
         doSendMagicEffect(TOPOS[i], 10)  
      end
      doTransformItem(item.uid, item.itemid+1)
   elseif item.uid == 7333 and item.itemid == 1946 then  --achu q teu script estava errado aki... no teu ta 1945, mas acredito q seja 1946 ms...
      if getPlayerAccess(cid) > 0 then
         doTransformItem(item.uid, item.itemid-1)
      else
         doPlayerSendCancel(cid, "Sorry, not possible.")
      end  
   end
return true
end
Link para o comentário
Compartilhar em outros sites

Eu só mudei os sinal lá,

 local stos = {181630, 181631, 181632, 181633, 181634, 181635, 181636, 181637, 181638}

if getPlayerStorageValue(pid.uid, stos[a]) > 1 then -- mudei aqui.estava < .... entao se o player tiver já a storage acima ele nao TELA...
                   doPlayerSendTextMessage(cid, 27, "msg aki")--caso algum dos players n tenha uma das storages q tu queria
                   return true
                end

 

Mas tenta trocar por isso:
if getPlayerStorageValue(pid.uid, stos[a]) >= 1 then
Link para o comentário
Compartilhar em outros sites

é assim: se 1 dos players (ou 2 ou3 ou 4) tem a storage (ou seja ja completou essa quest) ele diz que alguem ja fez a quest. >> até aki td certo.

 

agora se nenhum dos players tem nenhuma das storages.( ou seja, ninguem fez a quest ainda). ele vira a alavanca ( item 1495 >> 1496) porém não manda os players para o destino configurado.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...