Ir para conteúdo

Featured Replies

Postado

Explicação: Estou querendo uma rod em que só possa utilizar se ela for equipada na mão esquerda do personagem, como segue a imagem.

testando.png?1517407961

Realidade: Está dando esse aviso "!", logo, o personagem não consegue utilizar a rod.

Expectativa: Gostaria que a rod fosse utilizável apenas se o jogador equipasse a mesma na mão esquerda.

 

Segue a script abaixo:

local fishing = {
["Magikarp"] = {skill = 0, level = 1},
["Gyarados"] = {skill = 75, level = 75},
["Staryu"] = {skill = 22, level = 6},
["Starmie"] = {skill = 49, level = 20},
["Tentacool"] = {skill = 20, level = 7},
["Tentacruel"] = {skill = 60, level = 75},
["Goldeen"] = {skill = 17, level = 5},
["Seaking"] = {skill = 28, level = 11},
["Krabby"] = {skill = 14, level = 2},
["Kingler"] = {skill = 35, level = 14},
["Horsea"] = {skill = 16, level = 3},
["Seadra"] = {skill = 41, level = 15},
["Poliwag"] = {skill = 15, level = 2},
["Poliwhirl"] = {skill = 27, level = 9},
["Squirtle"] = {skill = 25, level = 25},
["Wartortle"] = {skill = 45, level = 44},
["Blastoise"] = {skill = 75, level = 75},
["Lapras"] = {skill = 85, level = 85},

}

local storage = 15458
local bonus = 1
local limite = 100


local function doFish(cid, pos, ppos, chance, interval, number)
      if not isCreature(cid) then return false end
      if getThingPos(cid).x ~= ppos.x or getThingPos(cid).y ~= ppos.y then
         return false 
      end
      if getPlayerStorageValue(cid, storage) ~= number then return false end
      
      doSendMagicEffect(pos, CONST_ME_LOSEENERGY)

      local peixe = 0
      local playerpos = getClosestFreeTile(cid, getThingPos(cid))
      local fishes = {}
      local randomfish = ""
      
      if getPlayerSkillLevel(cid, 6) < limite then 
	     doPlayerAddSkillTry(cid, 6, bonus)
      end

      for a, b in pairs (fishing) do
	      if getPlayerSkillLevel(cid, 6) >= b.skill then
		     table.insert(fishes, a)
          end
      end

	  if math.random(1, 100) <= chance then
         if getPlayerSkillLevel(cid, 6) < limite then 
		    doPlayerAddSkillTry(cid, 6, bonus)
         end
		 randomfish = fishes[math.random(#fishes)]
	     peixe = doSummonCreature(randomfish, playerpos)
		 if not isCreature(peixe) then
            addEvent(doFish, interval, cid, pos, ppos, chance, interval, number)
		    return true
		 end

	     doCreatureSetLookDir(cid, getDirectionTo(getThingPos(cid), getThingPos(peixe)))  --alterado ver depois
		 if #getCreatureSummons(cid) >= 1 then
 		    doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173)
			doChallengeCreature(getCreatureSummons(cid)[1], peixe)
  	     else
            doSendMagicEffect(getThingPos(cid), 173)
			doChallengeCreature(cid, peixe)
  	     end
	     return true
      end
      addEvent(doFish, interval, cid, pos, ppos, chance, interval, number)
return true
end

local waters = {4614, 4615, 4616, 4617, 4618, 4619, 4608, 4609, 4610, 4611, 4612, 4613, 7236, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825}

function onUse(cid, item, fromPos, itemEx, toPos)

if getPlayerGroupId(cid) == 11 then
return true
end

local checkPos = toPos
checkPos.stackpos = 0

if getTileThingByPos(checkPos).itemid <= 0 then
   doPlayerSendCancel(cid, '!')
   return true
end

if not isInArray(waters, getTileInfo(toPos).itemid) then
   return true
end

if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then
   doPlayerSendCancel(cid, "You can't fish while surfing/flying.")
   return true
end

if isInArray(waters, getTileInfo(getThingPos(cid)).itemid) then
   doPlayerSendCancel(cid, "You can\'t fish while surfing neither flying above water.")
   return true
end

if getTileInfo(getThingPos(getCreatureSummons(cid)[1] or cid)).protection then
	doPlayerSendCancel(cid, "You can't fish pokémons if you or your pokémon is in protection zone.")
return true
end



setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1)
if getPlayerStorageValue(cid, storage) >= 800 then
   setPlayerStorageValue(cid, storage, 1)
end

local delay = 3500 - getPlayerSkillLevel(cid, 6) * 25
local chance = 40

doFish(cid, toPos, getThingPos(cid), chance, delay, getPlayerStorageValue(cid, storage))

return true
end

Localizado na script, e possíveis problemas:

if getTileThingByPos(checkPos).itemid <= 0 then
   doPlayerSendCancel(cid, '!')
   return true
end

 

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

Resolvido por Crypter

Ir para solução
  • Respostas 12
  • Visualizações 753
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • local fishing = { ["Magikarp"] = {skill = 0, level = 1}, ["Gyarados"] = {skill = 75, level = 75}, ["Staryu"] = {skill = 22, level = 6}, ["Starmie"] = {skill = 49, level = 20}, ["Tentacool"]

  • Abre o client com o object builder e marca a opção multi use no  item

Postado
local fishing = {
["Magikarp"] = {skill = 0, level = 1},
["Gyarados"] = {skill = 75, level = 75},
["Staryu"] = {skill = 22, level = 6},
["Starmie"] = {skill = 49, level = 20},
["Tentacool"] = {skill = 20, level = 7},
["Tentacruel"] = {skill = 60, level = 75},
["Goldeen"] = {skill = 17, level = 5},
["Seaking"] = {skill = 28, level = 11},
["Krabby"] = {skill = 14, level = 2},
["Kingler"] = {skill = 35, level = 14},
["Horsea"] = {skill = 16, level = 3},
["Seadra"] = {skill = 41, level = 15},
["Poliwag"] = {skill = 15, level = 2},
["Poliwhirl"] = {skill = 27, level = 9},
["Squirtle"] = {skill = 25, level = 25},
["Wartortle"] = {skill = 45, level = 44},
["Blastoise"] = {skill = 75, level = 75},
["Lapras"] = {skill = 85, level = 85},

}

local storage = 15458
local bonus = 1
local limite = 100


local function doFish(cid, pos, ppos, chance, interval, number)
      if not isCreature(cid) then return false end
      if getThingPos(cid).x ~= ppos.x or getThingPos(cid).y ~= ppos.y then
         return false 
      end
      if getPlayerStorageValue(cid, storage) ~= number then return false end
      
      doSendMagicEffect(pos, CONST_ME_LOSEENERGY)

      local peixe = 0
      local playerpos = getClosestFreeTile(cid, getThingPos(cid))
      local fishes = {}
      local randomfish = ""
      
      if getPlayerSkillLevel(cid, 6) < limite then 
	     doPlayerAddSkillTry(cid, 6, bonus)
      end

      for a, b in pairs (fishing) do
	      if getPlayerSkillLevel(cid, 6) >= b.skill then
		     table.insert(fishes, a)
          end
      end

	  if math.random(1, 100) <= chance then
         if getPlayerSkillLevel(cid, 6) < limite then 
		    doPlayerAddSkillTry(cid, 6, bonus)
         end
		 randomfish = fishes[math.random(#fishes)]
	     peixe = doSummonCreature(randomfish, playerpos)
		 if not isCreature(peixe) then
            addEvent(doFish, interval, cid, pos, ppos, chance, interval, number)
		    return true
		 end

	     doCreatureSetLookDir(cid, getDirectionTo(getThingPos(cid), getThingPos(peixe)))  --alterado ver depois
		 if #getCreatureSummons(cid) >= 1 then
 		    doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173)
			doChallengeCreature(getCreatureSummons(cid)[1], peixe)
  	     else
            doSendMagicEffect(getThingPos(cid), 173)
			doChallengeCreature(cid, peixe)
  	     end
	     return true
      end
      addEvent(doFish, interval, cid, pos, ppos, chance, interval, number)
return true
end

local waters = {4614, 4615, 4616, 4617, 4618, 4619, 4608, 4609, 4610, 4611, 4612, 4613, 7236, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825}

function onUse(cid, item, fromPos, itemEx, toPos)

if getPlayerGroupId(cid) == 11 then
return true
end

if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid then
	doPlayerSendCancel(cid, "Put the fishing rod in the correct place!")
	return TRUE
end  
  
local checkPos = toPos
checkPos.stackpos = 1

if not isInArray(waters, getTileInfo(toPos).itemid) then
   return true
end

if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then
   doPlayerSendCancel(cid, "You can't fish while surfing/flying.")
   return true
end

if isInArray(waters, getTileInfo(getThingPos(cid)).itemid) then
   doPlayerSendCancel(cid, "You can\'t fish while surfing neither flying above water.")
   return true
end

if getTileInfo(getThingPos(getCreatureSummons(cid)[1] or cid)).protection then
	doPlayerSendCancel(cid, "You can't fish pokémons if you or your pokémon is in protection zone.")
return true
end

 

 

Te ajudei ?? Que tal fazer uma contribuição ?

Doar

Postado
  • Autor

Puts, tá dando erro :(

 

[06/02/2018 18:00:49] [Error - LuaScriptInterface::loadFile] data/actions/scripts/tools/old rod.lua:110: 'end' expected (to close 'function' at line 79) near '<eof>'
[06/02/2018 18:00:49] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/tools/old rod.lua)
[06/02/2018 18:00:49] data/actions/scripts/tools/old rod.lua:110: 'end' expected (to close 'function' at line 79) near '<eof>'

 

Postado
local fishing = {
  ["Magikarp"] = {skill = 0, level = 1},
  ["Gyarados"] = {skill = 75, level = 75},
  ["Staryu"] = {skill = 22, level = 6},
  ["Starmie"] = {skill = 49, level = 20},
  ["Tentacool"] = {skill = 20, level = 7},
  ["Tentacruel"] = {skill = 60, level = 75},
  ["Goldeen"] = {skill = 17, level = 5},
  ["Seaking"] = {skill = 28, level = 11},
  ["Krabby"] = {skill = 14, level = 2},
  ["Kingler"] = {skill = 35, level = 14},
  ["Horsea"] = {skill = 16, level = 3},
  ["Seadra"] = {skill = 41, level = 15},
  ["Poliwag"] = {skill = 15, level = 2},
  ["Poliwhirl"] = {skill = 27, level = 9},
  ["Squirtle"] = {skill = 25, level = 25},
  ["Wartortle"] = {skill = 45, level = 44},
  ["Blastoise"] = {skill = 75, level = 75},
  ["Lapras"] = {skill = 85, level = 85},

}

local storage = 15458
local bonus = 1
local limite = 100


local function doFish(cid, pos, ppos, chance, interval, number)
      if not isCreature(cid) then return false end
      if getThingPos(cid).x ~= ppos.x or getThingPos(cid).y ~= ppos.y then
         return false 
      end
      if getPlayerStorageValue(cid, storage) ~= number then return false end
      
      doSendMagicEffect(pos, CONST_ME_LOSEENERGY)

      local peixe = 0
      local playerpos = getClosestFreeTile(cid, getThingPos(cid))
      local fishes = {}
      local randomfish = ""
      
      if getPlayerSkillLevel(cid, 6) < limite then 
	     doPlayerAddSkillTry(cid, 6, bonus)
      end

      for a, b in pairs (fishing) do
	      if getPlayerSkillLevel(cid, 6) >= b.skill then
		     table.insert(fishes, a)
          end
      end

	  if math.random(1, 100) <= chance then
         if getPlayerSkillLevel(cid, 6) < limite then 
		    doPlayerAddSkillTry(cid, 6, bonus)
         end
		 randomfish = fishes[math.random(#fishes)]
	     peixe = doSummonCreature(randomfish, playerpos)
		 if not isCreature(peixe) then
            addEvent(doFish, interval, cid, pos, ppos, chance, interval, number)
		    return true
		 end

	     doCreatureSetLookDir(cid, getDirectionTo(getThingPos(cid), getThingPos(peixe)))  --alterado ver depois
		 if #getCreatureSummons(cid) >= 1 then
 		    doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 173)
			doChallengeCreature(getCreatureSummons(cid)[1], peixe)
  	     else
            doSendMagicEffect(getThingPos(cid), 173)
			doChallengeCreature(cid, peixe)
  	     end
	     return true
      end
      addEvent(doFish, interval, cid, pos, ppos, chance, interval, number)
return true
end

local waters = {4614, 4615, 4616, 4617, 4618, 4619, 4608, 4609, 4610, 4611, 4612, 4613, 7236, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4665, 4666, 4820, 4821, 4822, 4823, 4824, 4825}

function onUse(cid, item, fromPos, itemEx, toPos)

if getPlayerGroupId(cid) == 11 then
return true
end

if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_LEFT).uid then
	doPlayerSendCancel(cid, "Put the fishing rod in the correct place!")
	return true
end  
  
local checkPos = toPos
checkPos.stackpos = 1

if not isInArray(waters, getTileInfo(toPos).itemid) then
   return true
end

if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then
   doPlayerSendCancel(cid, "You can't fish while surfing/flying.")
   return true
end

if isInArray(waters, getTileInfo(getThingPos(cid)).itemid) then
   doPlayerSendCancel(cid, "You can\'t fish while surfing neither flying above water.")
   return true
end

if getTileInfo(getThingPos(getCreatureSummons(cid)[1] or cid)).protection then
	doPlayerSendCancel(cid, "You can't fish pokémons if you or your pokémon is in protection zone.")
return true
end

setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1)
if getPlayerStorageValue(cid, storage) >= 800 then
   setPlayerStorageValue(cid, storage, 1)
end

local delay = 3500 - getPlayerSkillLevel(cid, 6) * 25
local chance = 40

doFish(cid, toPos, getThingPos(cid), chance, delay, getPlayerStorageValue(cid, storage))

return true
end

 

 

Te ajudei ?? Que tal fazer uma contribuição ?

Doar

Postado
  • Autor

Melhorou!, porém tá acusando esse erro:

[06/02/2018 18:25:19] [Error - Action Interface] 
[06/02/2018 18:25:19] data/actions/scripts/tools/old rod.lua:onUse
[06/02/2018 18:25:19] Description: 
[06/02/2018 18:25:19] data/actions/scripts/tools/old rod.lua:93: attempt to index a boolean value
[06/02/2018 18:25:19] stack traceback:
[06/02/2018 18:25:19] 	data/actions/scripts/tools/old rod.lua:93: in function <data/actions/scripts/tools/old rod.lua:79>

 

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.8k

Informação Importante

Confirmação de Termo