Ir para conteúdo
  • Cadastre-se

Posts Recomendados

.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)
Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.


  • Conteúdo Similar

    • Por LasseXeterno
      Então, estou tentando adicionar uma nova "race" no meu Ot de base Cyan, tentei seguir 3 tutoriais aqui do tibiaking, um sobre race, porém nos códigos do meu servidor não tem o constant.h e nem o monster.cpp. E o outro tutorial, eu fiz tudo que ele pediu e quando entrei no game para testar, funcionava os golpes e as imunidades, porém não aparecia o número do dano e nem a cor.  Usei esse tutorial como base: 
      Pois ele é derivado. E o outro tutorial que usei foi: 
      Porém nesse, não consegui achar a const.h, e quando fui nos arquivos do creaturescript e adicionei uma cor nova a "COLOR_FAIRY", quando abro o jogo, os pokemons que seriam teoricamente "fada", o que eu usei de teste foi a Clefable. A Clefable tomava IK e dava IK no seu atk do tipo fada. 
      Além de que, o meu erro principal é esse: Warning - Monsters::loadMonster] Unknown race type fairy. (data/monster/pokes/geracao 1/Clefable.xml)
       Pois como eu já disse, não consigo achar onde adicionar uma nova race.

    • Por yuriowns
      Salve rapazes, tranquilo? Preciso de ajuda pra colocar para os npc's que vendem pots verificarem quantos itens possuem no tile em que o player está e se tiver com +80 itens no sqm, o npc avisa e não vende nada até o player ir em um sqm com menos de 80 itens no chão.
       
    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Bom pessoal, a algumas semanas atras eu joguei um servidor que havia sistema de imbuimento sendo 8.60, no servidor se utilizava a spellwand para encantar as armas, os comandos eram dado no canal Imbuiment... Gostaria de saber se alguém teria como disponibilizar algum sistema de imbuimento, já procurei pra caramba aqui no fórum mas tudo que encontro é pra versões acima da que eu uso.
       
    • Por Mateus Robeerto
      Não sei se aqui é a área ou algum local para solicitar a alteração do email antigo... Não lembro mais a senha dele, nem a resposta secreta para acessar. Peço a algum administrador ou moderador para, por favor, alterar o email para o novo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo