Ir para conteúdo

Featured Replies

Postado

ALO COM QUEM EU FALO?

 

Gente eu queria um Script de Fishing que faça os player use uma Outfit espeçifica para pescar, caso ele esteje usando ela é mudada para um outra, quando o pokemon for pescado a Outfit especificada volte

 

Arquivo encontrado em: Server\data\actions\scripts\tools

 

fishing.lua

 

local fishing = {
["Magikarp"] = {skill = 0, level = -2},
["Horsea"] = {skill = 2, level = 25},
["Poliwag"] = {skill = 2, level = 25},
["Krabby"] = {skill = 5, level = 25},
["Goldeen"] = {skill = 5, level = 25},
["Tentacool"] = {skill = 5, level = 35},
["Staryu"] = {skill = 10, level = 40},
["Kingler"] = {skill = 15, level = 05},
["Seaking"] = {skill = 15, level = 45},
["Starmie"] = {skill = 20, level = 45},
["Psyduck"] = {skill = 15, level = 20},
["Poliwhirl"] = {skill = 20, level = 60},
["Seadra"] = {skill = 25, level = 60},
["Gyarados"] = {skill = 25, level = 80},
["Tentacruel"] = {skill = 25, level = 80},
["Blastoise"] = {skill = 25, level = 80},
["Shellder"] = {skill = 10, level = 100},
["Seel"] = {skill = 10, level = 100},
["Dewgong"] = {skill = 20, level = 100},
["Cloyster"] = {skill = 20, level = 100},
}

local storage = 15496
local bonus = 1
local limite = 80

local function doFish(cid, pos, ppos, chance, interval, number)
if not isCreature(cid) then return false end
if getPlayerSex(cid) == 1 then
	if getCreatureOutfit(cid).lookType ~= 520 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce precisa botar a roupa de Fisher para poder pescar.")
	return false
	end
else
	if getCreatureOutfit(cid).lookType ~= 521 then
		doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce precisa botar a roupa de Fisher para poder pescar.")
	return false
	end
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 level = 1
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 and math.random(1, 100) <= 30 then --30 = 30% chance de add fishing
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
 doSetMonsterPassive(peixe)
 doWildAttackPlayer(peixe, cid)
  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
  doCreatureSetNoMove(cid, false)
  doRemoveCondition(cid, CONDITION_OUTFIT)
 return true
 end
addEvent(doFish, interval, cid, pos, ppos, chance, interval, number)
doCreatureSetNoMove(cid, true)
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) and not canFishWhileSurfingOrFlying 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

if not tonumber(getPlayerStorageValue(cid, storage)) then
local test = io.open("data/sendtobrun123.txt", "a+")
local read = ""
if test then
read = test:read("*all")
test:close()
end
read = read.."\n[fishing.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, storage)..""
local reopen = io.open("data/sendtobrun123.txt", "w")
reopen:write(read)
reopen:close()
setPlayerStorageValue(cid, storage, 1)
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 = 10 + getPlayerSkillLevel(cid, 6) / 2.5

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

return true
end 

 

Esta parte pode ser usada para fazer com que quando o Player pescar ele começa a usar uma Outfit?

outfit = getCreatureOutfit(cid)
if getPlayerSex(cid) == 0 then
  out = 1467
 else
  out = 1468
end
doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1)

OBRIGADO PELA AJUDA... REP+ E ATÉ LOGO.... :3

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

  • Respostas 5
  • Visualizações 1.7k
  • Created
  • Última resposta

Top Posters In This Topic

Postado

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServAprovação de Tópicos de Conteúdos"

Para: "OTServSuporte OTServSuporte de Servidores Derivados"

Te ajudei?? REP + e ficamos quites... <ahttp://www.tibiaking.com/forum/uploads/emoticons/default_happyy.png' alt=';D'>

Atenciosamente,

Daniel.

Abraços!

Postado
local fishing = {
["Magikarp"] = {skill = 0, level = -2},
["Feebas"] = {skill = 15, level = 15},
["Poliwag"] = {skill = 17, level = 20},
["Azurill"] = {skill = 18, level = 23},
["Horsea"] = {skill = 19, level = 25},
["Goldeen"] = {skill = 19, level = 25},
["Remoraid"] = {skill = 19, level = 27},
["Krabby"] = {skill = 19, level = 28},
["Chinchou"] = {skill = 19, level = 30},
["Mantyke"] = {skill = 20, level = 35},
["Tentacool"] = {skill = 20, level = 35},
["Marill"] = {skill = 20, level = 35},
["Qwilfish"] = {skill = 20, level = 40},
["Poliwhirl"] = {skill = 20, level = 40},
["Seaking"] = {skill = 20, level = 40},
["Mudkip"] = {skill = 20, level = 45},
["Spheal"] = {skill = 21, level = 50},
["Kingler"] = {skill = 21, level = 50},
["Seadra"] = {skill = 21, level = 55},
["Wailmer"] = {skill = 21, level = 60},
["Corsola"] = {skill = 22, level = 55},
["Octillery"] = {skill = 22, level = 60},
["Marshtomp"] = {skill = 22, level = 70},
["Lanturn"] = {skill = 22, level = 75},
["Sealeo"] = {skill = 23, level = 70},
["Crawdaunt"] = {skill = 23, level = 70},
["Azumarill"] = {skill = 23, level = 70},
["Mantine"] = {skill = 23, level = 75},
["Politoed"] = {skill = 23, level = 80},
["Poliwrath"] = {skill = 23, level = 80},
["Vaporeon"] = {skill = 23, level = 80},
["Kingdra"] = {skill = 24, level = 85},
["Dratini"] = {skill = 24, level = 90},
["Gyarados"] = {skill = 25, level = 95},
["Milotic"] = {skill = 25, level = 95},
["Wailord"] = {skill = 25, level = 95},
["Swampert"] = {skill = 25, level = 95},
["Walrein"] = {skill = 25, level = 95},
["Tentacruel"] = {skill = 25, level = 95},
}
 
local storage = 15496
local bonus = 40
local limite = 80
 
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 = ""
 
                                                                  --alterado!!
 if getPlayerSkillLevel(cid, 6) < limite then
 doPlayerAddSkillTry(cid, 6, 100)--- 100
 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
  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
  doCreatureSetNoMove(cid, false)
  doRemoveCondition(cid, CONDITION_OUTFIT)
 return true
 end
addEvent(doFish, interval, cid, pos, ppos, chance, interval, number)
doCreatureSetNoMove(cid, true)
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) and not canFishWhileSurfingOrFlying 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
 
 
 
if not tonumber(getPlayerStorageValue(cid, storage)) then
 local test = io.open("data/sendtobrun123.txt", "a+")
 local read = ""
 if test then
  read = test:read("*all")
  test:close()
 end
 read = read.."\n[fishing.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, storage)..""
 local reopen = io.open("data/sendtobrun123.txt", "w")
 reopen:write(read)
 reopen:close()
 setPlayerStorageValue(cid, storage, 1)
end
 
setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1)
 if getPlayerStorageValue(cid, storage) >= 800 then
  setPlayerStorageValue(cid, storage, 1)
 end
 
local delay = 1500 - getPlayerSkillLevel(cid, 6) * 50
local chance = 7 + getPlayerSkillLevel(cid, 6) / 6.5
outfit = getCreatureOutfit(cid)
if getPlayerSex(cid) == 0 then
 out = 1467
else
 out = 1468
end
doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1)
doFish(cid, toPos, getThingPos(cid), chance, delay, getPlayerStorageValue(cid, storage))
 
return true
end
 
em out = vc muda as Outfit que vc que q apareça male e female
Postado
  • Autor

local fishing = {
["Magikarp"] = {skill = 0, level = -2},
["Feebas"] = {skill = 15, level = 15},
["Poliwag"] = {skill = 17, level = 20},
["Azurill"] = {skill = 18, level = 23},
["Horsea"] = {skill = 19, level = 25},
["Goldeen"] = {skill = 19, level = 25},
["Remoraid"] = {skill = 19, level = 27},
["Krabby"] = {skill = 19, level = 28},
["Chinchou"] = {skill = 19, level = 30},
["Mantyke"] = {skill = 20, level = 35},
["Tentacool"] = {skill = 20, level = 35},
["Marill"] = {skill = 20, level = 35},
["Qwilfish"] = {skill = 20, level = 40},
["Poliwhirl"] = {skill = 20, level = 40},
["Seaking"] = {skill = 20, level = 40},
["Mudkip"] = {skill = 20, level = 45},
["Spheal"] = {skill = 21, level = 50},
["Kingler"] = {skill = 21, level = 50},
["Seadra"] = {skill = 21, level = 55},
["Wailmer"] = {skill = 21, level = 60},
["Corsola"] = {skill = 22, level = 55},
["Octillery"] = {skill = 22, level = 60},
["Marshtomp"] = {skill = 22, level = 70},
["Lanturn"] = {skill = 22, level = 75},
["Sealeo"] = {skill = 23, level = 70},
["Crawdaunt"] = {skill = 23, level = 70},
["Azumarill"] = {skill = 23, level = 70},
["Mantine"] = {skill = 23, level = 75},
["Politoed"] = {skill = 23, level = 80},
["Poliwrath"] = {skill = 23, level = 80},
["Vaporeon"] = {skill = 23, level = 80},
["Kingdra"] = {skill = 24, level = 85},
["Dratini"] = {skill = 24, level = 90},
["Gyarados"] = {skill = 25, level = 95},
["Milotic"] = {skill = 25, level = 95},
["Wailord"] = {skill = 25, level = 95},
["Swampert"] = {skill = 25, level = 95},
["Walrein"] = {skill = 25, level = 95},
["Tentacruel"] = {skill = 25, level = 95},
}
 
local storage = 15496
local bonus = 40
local limite = 80
 
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 = ""
 
                                                                  --alterado!!
 if getPlayerSkillLevel(cid, 6) < limite then
 doPlayerAddSkillTry(cid, 6, 100)--- 100
 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
  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
  doCreatureSetNoMove(cid, false)
  doRemoveCondition(cid, CONDITION_OUTFIT)
 return true
 end
addEvent(doFish, interval, cid, pos, ppos, chance, interval, number)
doCreatureSetNoMove(cid, true)
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) and not canFishWhileSurfingOrFlying 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
 
 
 
if not tonumber(getPlayerStorageValue(cid, storage)) then
 local test = io.open("data/sendtobrun123.txt", "a+")
 local read = ""
 if test then
  read = test:read("*all")
  test:close()
 end
 read = read.."\n[fishing.lua] "..getCreatureName(cid).." - "..getPlayerStorageValue(cid, storage)..""
 local reopen = io.open("data/sendtobrun123.txt", "w")
 reopen:write(read)
 reopen:close()
 setPlayerStorageValue(cid, storage, 1)
end
 
setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1)
 if getPlayerStorageValue(cid, storage) >= 800 then
  setPlayerStorageValue(cid, storage, 1)
 end
 
local delay = 1500 - getPlayerSkillLevel(cid, 6) * 50
local chance = 7 + getPlayerSkillLevel(cid, 6) / 6.5
outfit = getCreatureOutfit(cid)
if getPlayerSex(cid) == 0 then
 out = 1467
else
 out = 1468
end
doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1)
doFish(cid, toPos, getThingPos(cid), chance, delay, getPlayerStorageValue(cid, storage))
 
return true
end
 
em out = vc muda as Outfit que vc que q apareça male e female

Cara vc pode me ajudar a entender-lo? um explicação pf...

@edit

 

Cara eu queria um script assim:

1)jogador precisa de um a roupa especifica para pescar

2)quando estiver usando e for estiver pescando, a roupa dele troca para uma outra

3)quando apareçer o pokemon pescado a roupa dele volta para a roupa especificada (roupa do nº 1)

 

APAREÇE UM ERRO NO CONSOLE: 

[05/04/2015 22:24:44] [Error - CreatureScript Interface] 
[05/04/2015 22:24:44] In a timer event called from: 
[05/04/2015 22:24:44] data/creaturescripts/scripts/spawn.lua:onSpawn
[05/04/2015 22:24:44] Description: 
[05/04/2015 22:24:44] data/lib/level system.lua:630: bad argument #1 to 'random' (number expected, got nil)
[05/04/2015 22:24:44] stack traceback:
[05/04/2015 22:24:44] [C]: in function 'random'
[05/04/2015 22:24:44] data/lib/level system.lua:630: in function 'setWildPokemonLevel'
[05/04/2015 22:24:44] data/creaturescripts/scripts/spawn.lua:26: in function <data/creaturescripts/scripts/spawn.lua:23>

 

Desculpa pela minha má explicação.... teria como fazer um script assim? vlw

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

Meus Contatos!

 

Minhas Funções:

 

               Skype: TsplayerT

         Facebook: TakaFukushii

          YouTube: ADoseDupla

           Twitter: @_Splayer_

 

 

 

 

 

 

 

                             Mapper:▓▓▓▓▓▓▓▓▓▓ 97%

     Programmer:▓▓▓▓▓▒▒▒▒▒ 45%

             Scripter:▓▓▓▓▓▓▓▓▓▒ 83%

              Spriter:▓▓▓▓▓▓▒▒▒▒ 57%

    Gamemaster:▓▓▓▓▓▓▓▓▓▓ 99%

        Ot Creator:▓▓▓▓▓▓▓▒▒▒71%

Ot Client Maker:▓▓▓▓▓▓▓▒▒▒74%

 

Postado

O tópico foi movido para a área correta, preste mais atenção da próxima vez!

Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680

Este tópico foi movido:

De: "OTServSuporte OTServSuporte de Servidores Derivados"

Para: "OTServSuporte OTServSuporte de Scripts"

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

Informação Importante

Confirmação de Termo