Ir para conteúdo

Featured Replies

Postado

.Qual servidor ou website você utiliza como base? 

DXP v3 huatson no lv system

Qual o motivo deste tópico? 

Modificar um script

Bom primeiramente Bom dia/tarde ou boa noite!!!

Estou começando agora em .lua quebrei a cabeça um monte já e nada, gostaria de fazer a seguinte alteração no script:

tipo quando o player começar a pescar ter uma chance de puxar um ou dois pokemon com a mesma isca e mesmo após pescar

ter outra chance de continuar pescando no mesmo lugar porém consumindo as iscas... sendo essa continuação podendo gastar apenas

uma isca e/ou ficar de 1 a 60 segundos pescando no mesmo lugar o tempo sendo random...

e quando acabar esse tempo aparecer uma msg "Voce pegou todos pokemon aqui ande 2 sqm e tente novamente."

 

Se alguem souber como me ajudar ficaria muito grato!

 

Você tem o código disponível? Se tiver publique-o aqui: 

local fishing = {
[-1] = { segs = 14, skill = 30, pokes = {{"Magikarp", 4}} },

[3976] = { segs = 10, skill = 180, pokes = {{"Horsea", 3}, {"Remoraid", 3}, {"Goldeen",3}, {"Poliwag", 3}} },  -- pega no client da pxg

[12855] = { segs = 11, skill = 2000, pokes = {{"Tentacool", 3}, {"Staryu", 2}, {"Krabby",3}, {"Shellder", 2} } },

[12854] = { segs = 12, skill = 13000, pokes = {{"Seel",2}, {"Chinchou",2} } },

[12858] = { segs = 15, skill = 320000, pokes = {{"Seaking", 3}, {"Seadra", 2}, {"Poliwhirl", 2}} },

[12857] = { segs = 15, skill = 1000000, pokes = {{"Starmie", 2}, {"Kingler", 3}, {"Corsola", 3}, {"Qwilfish", 2}} },  -- pega no client da pxg

[12860] = { segs = 15, skill = 10000000, pokes = {{"Lanturn", 2}, {"Dewgong", 4}}},

[12859] = { segs = 25, skill = 100000000, pokes = {{"Cloyster", 2}, {"Poliwrath", 2}, {"Politoed", 3}, {"Octillery", 2}} },

[12856] = { segs = 25, skill = 1000000000, pokes = {{"Dratini", 3}, {"Dragonair", 2} }},

[12853] = { segs = 35, skill = 10000000000, pokes = {{"Gyarados", 1}, {"Mantine", 2}, {"Tentacruel", 2}, {"Kingdra", 1}} },
}

local storageP = 154585
local sto_iscas = 5648454 --muda aki pra sto q ta no script da isca
local bonus = 15
local limite = 100
local pescado = 98988

local fightcondition = createConditionObject(CONDITION_INFIGHT)
setConditionParam(fightcondition, CONDITION_PARAM_TICKS, 5 * 1000)

function fightCondic(cid)
	if not isCreature(cid) then return true end
	if not isCreature(getCreatureTarget(cid)) then return true end
	doAddCondition(cid, fightcondition)
addEvent(fightCondic, 1000, cid)
end

local function doFish(cid, pos, ppos, interval)
          if not isCreature(cid) then return false end
          if getThingPos(cid).x ~= ppos.x or getThingPos(cid).y ~= ppos.y then
             return false 
          end
          
          doSendMagicEffect(pos, CONST_ME_LOSEENERGY)
          
          if interval > 0 then
             addEvent(doFish, 1000, cid, pos, ppos, interval-1)
             return true
          end   
    
          local peixe = 0
          local playerpos = getClosestFreeTile(cid, getThingPos(cid))
          local fishes = fishing[getPlayerStorageValue(cid, sto_iscas)]
          local random = {}   
    
          if getPlayerSkillLevel(cid, 6) < limite then 
             doPlayerAddSkillTry(cid, 6, bonus * 5)
          end
         
            --[[if math.random(1, 100) <= chance then
          if getPlayerSkillLevel(cid, 6) < limite then
          doPlayerAddSkillTry(cid, 6, bonus * 5)
          end]]
         
          random = fishes.pokes[math.random(#fishes.pokes)]
         
          for i = 1, math.random(random[2]) do
    
              if #getCreatureSummons(cid) >= 1 
                -- se o jogador tiver sumonado algum pokemon,pegará a posição do pokemon
                    then peixe = doSummonCreature(random[1], getClosestFreeTile(cid, getThingPos(getCreatureSummons(cid)[1])))
                        -- se não pegará a do jogador
                        else peixe = doSummonCreature(random[1],playerpos)
              end

              if not isCreature(peixe) then
                 setPlayerStorageValue(cid, storageP, -1)
                 doRemoveCondition(cid, CONDITION_OUTFIT)
                 return true
              end
              setPokemonPassive(peixe, true)
            doSetPokemonAgressiveToPlayer(peixe, cid)
            setPlayerStorageValue(peixe, storageP, 1)
             if #getCreatureSummons(cid) >= 1 then
                 doSendMagicEffect(getThingPos(getCreatureSummons(cid)[1]), 0)
               doChallengeCreature(getCreatureSummons(cid)[1], peixe)
              else	
                 doSendMagicEffect(getThingPos(cid), 0)
               doChallengeCreature(cid, peixe)
              end
           end
           setPlayerStorageValue(cid, storageP, -1)
           doRemoveCondition(cid, CONDITION_OUTFIT)
    return true
    end

local waters = {11756}

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

if getPlayerStorageValue(cid, pescado) >=1 then
doSendMsg(cid, "Necesitas esperar um pouco para voltar a pescar")
	   return false
	   end
	   

	  
if isWatchingTv(cid) then
return true
end

local checkPos = toPos
checkPos.stackpos = 0

if getTileThingByPos(checkPos).itemid <= 0 then
   return true
end

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

if getPlayerStorageValue(cid, storageP) == 1 then 
	doSendMsg(cid, "Aguarde! Você já está pescando.")
	return true
end

if isRiderOrFlyOrSurf(cid) and not canFishWhileSurfingOrFlying then
   doPlayerSendCancel(cid, "Voce nao pode pescar enquanto usa surfing/flying.")
   return true
end

if getTileInfo(getThingPos(getCreatureSummons(cid)[1] or cid)).protection then
	doPlayerSendCancel(cid, "Voce nao pode pescar em protection zone.")
return true
end

local delay = fishing[getPlayerStorageValue(cid, sto_iscas)].segs

if getPlayerStorageValue(cid, sto_iscas) ~= -1 then
   if getPlayerItemCount(cid, getPlayerStorageValue(cid, sto_iscas)) >= 1 then
      doPlayerRemoveItem(cid, getPlayerStorageValue(cid, sto_iscas), 1)
   else
      setPlayerStorageValue(cid, sto_iscas, -1)
   end
end

local outfit = getCreatureOutfit(cid)
local out = getPlayerSex(cid) == 0 and 1467 or 1468

doSetCreatureOutfit(cid, {lookType = out, lookHead = outfit.lookHead, lookBody = outfit.lookBody, lookLegs = outfit.lookLegs, lookFeet = outfit.lookFeet}, -1)
setPlayerStorageValue(cid, storageP, 1)     --alterei looktype
doCreatureSetNoMove(cid, false)
local pos2 = getThingPos(itemEx.uid)
doCreatureSetLookDir(cid, getLookToFish(getThingPos(cid), pos2))  --alterado ver depois
addEvent(Reducir, (delay-2)*1000, cid)
setPlayerStorageValue(cid, pescado, 1 )
doFish(cid, toPos, getThingPos(cid), math.random(9, delay))

return true
end

function getLookToFish(pos, pos2)
local x1, y1 = pos.x, pos.y
local x2, y2 = pos2.x, pos2.y

if x1-x2 <= 0 and  y1-y2 > 0 then
	return NORTH
elseif x1-x2 < 0 and  y1-y2 == 0 then
	return EAST
elseif x1-x2 < 0 and  y1-y2 < 0 then
	return EAST
elseif x1-x2 > 0 and  y1-y2 < 0 then
	return SOUTH
elseif x1-x2 > 0 and  y1-y2 <= 0 then
	return WEST
elseif x1-x2 > 0 and  y1-y2 >= 0 then
	return WEST
elseif x1-x2 < 0 and  y1-y2 < 0 then
	return EAST
elseif x1-x2 == 0 and  y1-y2 < 0 then
	return SOUTH
end
return WEST
end

function Reducir(cid)
setPlayerStorageValue(cid, pescado, 0 )
end
--[[-- resulatados em linha reta(exatos)
if x1 == x2 then -- virar para norte
	if (y1 - y2) > 0 then -- virar para cima
	    return NORTH
	elseif (y1 - y2) < 0 then -- virar para baixo
		return SOUTH
	end
elseif y1 == y2 then
	if (x1 - x2) > 0 then -- virar para OESTE <<
	    return WEST
	elseif (x1 - x2) < 0 then -- virar para LESTE >>
		return EAST
	end
end
-- resulatados em linha reta(exatos)

if (x1 ~= x2) or (y1 ~= y2) then
	if (x1 - x2) < 0 then
	   return EAST -- virar para LESTE >>
	elseif (x1 - x2) > 0 then
	   return WEST
	end
end]]

 

 

 

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

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