Ir para conteúdo

Quest do Fishing up


Posts Recomendados

Reward:

• Fishing 20 (Recompensa:40 dolares)

• Fishing 40 (Recompensa:80 dolares)

• Fishing 60 (Recompensa:120 dolares)

• Fishing 80 (Recompensa:160 dolares)


Level:

Fishing 20+


Quest:

°É só falar: Hi, Help, Yes, Bye. Toda vez que alcançar os skills citados.

Falas do Npc:

Player: Hi
Npc: Fishing is a great support, practice it regularl
y!
Player: Help

Npc: Every time you move the fishing I have come here a prize
Player: yes
Npc: Oh receive the reward




Valendo Rep ++

Link para o comentário
Compartilhar em outros sites

 

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
 
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
msg = string.lower(msg)
---------
local rewards = {
--      fish necessario,  id  ....quantidade
      {fish = 20, id = 2152, qt = 40},   -- fishing 20
      {fish = 40, id = 2152, qt = 80},   -- fishing 40
 {fish = 60, id = 2152, qt = 120},   -- fishing 60
 {fish = 80, id = 2152, qt = 160},   -- fishing 80
            {
        --
local playerLVL = 20
local sto = 73829
--//
      if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') then 
 if getPlayerStorageValue(cid, sto) == 1 then
 selfSay("you are complete my mission!", cid)
end
           if getPlayerLevel(cid) < 20 then
selfSay("you need level 20 to complete this mission!", cid)
return true
end
 selfSay("Every time you move the fishing I have come here a prize!", cid)
 talkState[talkUser] = 2
return true
      elseif msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and talkState[talkUser] == 2 then            
local fishing = iscas.rewards[1].fish
            if getPlayerSkillLevel(cid, 6) < rewards.rewads[i].fish then
                 return sendMsgToPlayer(cid, 20, "you need fishing "..fishing.." to you reward.")
end 
           for i = 1, #rewards do
           doPlayerAddItem(cid, rewards[i].id, rewards[i].qt)
           end
 setPlayerStorageValue(cid, sto, 1)  
      selfSay("Oh receive the reward!", cid)
      talkState[talkUser] = 0 
return true
end
return true
end    
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())            

Link para o comentário
Compartilhar em outros sites

huum. O xml pareçe esta tudo normal, eu achei 1 erro no meu script

talvez não seja o erro que esta causando no seu executavel.

mais testa ae, estarei aguardando a resposta

 

 

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
 
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
msg = string.lower(msg)
---------
local rewards = {
--      fish necessario,  id  ....quantidade
      {fish = 20, id = 2152, qt = 40},   -- fishing 20
      {fish = 40, id = 2152, qt = 80},   -- fishing 40
 {fish = 60, id = 2152, qt = 120},   -- fishing 60
 {fish = 80, id = 2152, qt = 160},   -- fishing 80
            {
        --
local playerLVL = 20
local sto = 73829
--//
      if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') then 
 if getPlayerStorageValue(cid, sto) == 1 then
 selfSay("you are complete my mission!", cid)
return true
end
           if getPlayerLevel(cid) < 20 then
selfSay("you need level 20 to complete this mission!", cid)
return true
end
 selfSay("Every time you move the fishing I have come here a prize!", cid)
 talkState[talkUser] = 2
return true
      elseif msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and talkState[talkUser] == 2 then            
local fishing = iscas.rewards[1].fish
            if getPlayerSkillLevel(cid, 6) < rewards.rewads[i].fish then
                 return sendMsgToPlayer(cid, 20, "you need fishing "..fishing.." to you reward.")
end 
           for i = 1, #rewards do
           doPlayerAddItem(cid, rewards[i].id, rewards[i].qt)
           end
 setPlayerStorageValue(cid, sto, 1)  
      selfSay("Oh receive the reward!", cid)
      talkState[talkUser] = 0 
return true
end
return true
end    
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())            

Link para o comentário
Compartilhar em outros sites

Isso não faz sentido.

 

Eu simplesmente coloquei o "level necessarío" em uma variavel ficando assim

 

local playerLVL = 20

 

Mais agora eu percebi que não esta sendo usada para nada.

intão tire isso do seu SCRIPT.

 

local playerLVL = 20

 

Lembra-se, de dar /reload NPC

Link para o comentário
Compartilhar em outros sites

posta erro né cara.

se quer q eu arrumo algo sendo que você não posto o erro? U,U

 

@Edit

testa ae, creditos pro slicer ;x

 

 

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end
 
function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
return false
end
 
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
msg = string.lower(msg)
---------
local rewards = {
   --{fish necessario, id, quantidade}
   {fish = 20, id = 2152, qt = 40},   -- fishing 20
   {fish = 40, id = 2152, qt = 80},   -- fishing 40
   {fish = 60, id = 2152, qt = 120},   -- fishing 60
   {fish = 80, id = 2152, qt = 160},   -- fishing 80
}
local playerLVL = 20
local sto = 73829
---------
if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') then
   if getPlayerStorageValue(cid, sto) < 1 then setPlayerStorageValue(cid, sto, 1) end 
   
   if getPlayerStorageValue(cid, sto) > #rewards then
      selfSay("You already got all my rewards!", cid)
      talkState[talkUser] = 0 
      return true
   elseif getPlayerLevel(cid) < playerLVL then
      selfSay("You need atleast level "..playerLVL.." to talk to me!", cid)
      talkState[talkUser] = 0 
      return true
   end
   selfSay("Every time you move the fishing I have come here a prize!", cid)
   talkState[talkUser] = 2
   return true
elseif msgcontains(msg, 'yes') or msgcontains(msg, 'sim') and talkState[talkUser] == 2 then            
   local TABLE = rewards[getPlayerStorageValue(cid, sto)]
   if getPlayerSkillLevel(cid, 6) < TABLE.fish then
      selfSay("You need fishing "..TABLE.fish.." to get your reward.", cid)
      talkState[talkUser] = 0
      return true
   end 
   doPlayerAddItem(cid, TABLE.id, TABLE.qt)
   setPlayerStorageValue(cid, sto, getPlayerStorageValue(cid, sto)+1)  
   selfSay("Oh receive the reward!", cid)
   talkState[talkUser] = 0 
   return true
elseif msgcontains(msg, "no") or msgcontains(msg, "nao") then
   selfSay("Ok then, bye!", cid)
   talkState[talkUser] = 0 
   return true
end
return true
end    
 
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())            

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

 

 

local fishing = {
["Magikarp"] = {skill = 0, level = -2},
["Qwilfish"] = {skill = 18, level = 3},
["Remoraid"] = {skill = 16, level = 2},
["Staryu"] = {skill = 22, level = 6},
["Tentacool"] = {skill = 20, level = 7},
["Goldeen"] = {skill = 17, level = 5},
["Krabby"] = {skill = 14, level = 2},
["Horsea"] = {skill = 16, level = 3},
["Poliwag"] = {skill = 15, level = 2},
["Marill"] = {skill = 21, level = 3},
["Azumarill"] = {skill = 37, level = 16},
["Kingler"] = {skill = 35, level = 14},
["Seaking"] = {skill = 28, level = 11},
["Starmie"] = {skill = 49, level = 20},
["Chinchou"] = {skill = 23, level = 6},
["Poliwhirl"] = {skill = 27, level = 9},
["Seadra"] = {skill = 41, level = 15},
["Lanturn"] = {skill = 38, level = 14},
["Octillery"] = {skill = 30, level = 9},
["Corsola"] = {skill = 46, level = 16},
}
 
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
    doSetMonsterPassive(peixe)
    doWildAttackPlayer(peixe, cid)
    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) 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

 

 

 

ah e sobre não passar do 28 de fishing vai em

 

data/XML/vocations.xml

e procure algo tipo..

 

fishing = 3.0

ai tu decha

 

fishing = 1.0

lembra-se de alterar em TODAS vocation.

 

~ quanto menor o valor mais facil de pescar ~

e não vai funcionar se você colokar 0.5 etc.

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

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...