Welcome to xTibia - Sua comunidade de Otserv e Tibia

Registre-se para utilizar nossas ferramentas e baixar conteúdos. Quando registrado e logado em sua conta, lhe garantimos uma experiência incrível em nossa comunidade!

RafaKimura

Campones
  • Conteúdo

    0
  • Registrado

  • Última visita

Sobre RafaKimura

Informações

  • Forma que conheci o xTibia Outros Sites
  • Sou Programador
  1. Como passar coisas de um poketibia para outro .   Ex : meu order está bugado então gostaria de pegar de outro poketibia e colocar no meu .   Alguem poderia me ajudar ?
  2. Bem , preciso desse servidor com sistema de level então se alguem puder me ajudar a adicionar ificarei grato .
  3. Queria 2 especializações para 2 vocações , a de treinador e a do criador .   O jogador escolhe entre as 2 vocações ao criar a account (criador ou treinador) e ao decorrer do jogo poderá fazer uma especialização de acordo com sua vocação .   Ele vai no npc e vê seu objetivo :   Ex ¹ : Ao escolher treinador , no decorrer do jogo seu objetivo será capturar um determinado número de pokémons , ter 400 pokémons vistos( usar pokedex ) , ganhar dos 8 ginásios .   Ex² : Ao escolher criador , no decorrer do jogo seu objetivo será CRIAR um determinado número de pokémons . Ex → Você deve criar seus pokémons até atingirem a evolução máxima  sendo que 10 deles tem que evoluir por felicidade .   Resumindo seria 1 npc que da especializações ( Mestre pokémon e Super Criador ) ao realizar seus objetivos.
  4. poketibia

    Bem , eu estava pensando outro dia em fazer a elite 4 para meu ot (centurion V8 ) mas ai acordei e descobri que não sei mexer nesses scripts :) então vim pedir a ajuda para vocês manolos .   A elite 4 seria assim , 4 membros sendo eles os mais fortes do OT . ou seja , 4 membros que representarão a força de todo servidor . Gostaria que fossem adicionados por comandos mas se puderem ajudar , qualquer jeito ficará ótimo ! Resumindo , um grupo chamado elite 4 onde eu iria realizar um torneio e decidir os 4 treinadores . Eles não precisam ter nada de novo pois eu irei dar um salário e fazer um esquema depois .   é só pessoal , espero que tenham entendido e qualquer coisa pede q respondo . Valendo rep +
  5. Nn tipo ele anda normal , só buga na hora do order
  6. Boa, Vim mostrar a movimentação dos meus pokémons . Eles não andam , congelam e pulam '-' alguém poderia me ajudar ? rep +   Servidor , Centurion v8 . Print : http://imageshack.com/a/img834/2640/qj5n.png 
  7. poketibia

    Não funcionou não e.e    Aqui está a order do Action .   [spoiler]local skills = specialabilities local surfborders = {4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663}   local txt = { ["rock smash"] = {"Quebre esta pedra!!", "Mova esta pedra!!", "Destrua esta pedra!!", "quebre isso!", "grrrr!", "destrua isso!!"}, ["cut"] = {"Corte isso!"}, ["move"] = {"mova-se!!", "vai ali!", "Fique ai!"}, ["light"] = {"aqui esta meio escuro, vai uma luz ae!!"}, ["dig"] = {"abra isso!"}, ["blink"] = {"teleporte!"}, ["ride"] = {"Ride!!", "Ride!", "deixe-me montar em você!"}, ["fly"] = {"Let's Fly GOGO!"} , ["untransform"] = {"Transforme em você novamente!"}, }   -- NAME OUTFIT SPEED local flys = { ["Moltres"] = {229, 2300}, -- moltres ["Articuno"] = {230, 2100}, -- artic ["Zapdos"] = {224, 2600}, -- zapdos ["Mew"] = {232, 2200}, -- 1000 ["Mewtwo"] = {233, 2200},-- two ["Dragonite"] = {221, 1300},-- nite ["Pidgeot"] = {222, 900}, -- geot ["Fearow"] = {226, 800}, -- fearow ["Aerodactyl"] = {227, 1100}, -- aero ["Charizard"] = {216, 1000}, -- chari ["Porygon"] = {316, 600}, -- porygon }   function onUse(cid, item, frompos, item2, topos)   local checkpos = topos checkpos.stackpos = 0   if getTileThingByPos(checkpos).uid <= 0 then return true end   --------END FLY/RIDE -------- local premium = false   if not isPremium(cid) then doPlayerSendCancel(cid, "Vc nao é premium, Vaza.") return true end if getCreatureCondition(cid, CONDITION_OUTFIT) and (item2.uid == cid or getRecorderPlayer(topos) == cid) and (getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1) then   if isInArray({460, 11675, 11676, 11677}, getTileInfo(getThingPos(cid)).itemid) then         doPlayerSendCancel(cid, "Você não pode parar de voar nesta altura, senão você cai!!")         return true         end   local item = getPlayerSlotItem(cid, 8) local pokemon = getItemAttribute(item.uid, "poke") local x = pokes[pokemon]           if getTileInfo(getThingPos(cid)).itemid >= 4820 and getTileInfo(getThingPos(cid)).itemid <= 4825 then         doPlayerSendCancel(cid, "Você não pode parar de voar sobre a água!")         return true         end   doSummonMonster(cid, pokemon)   local pk = getCreatureSummons(cid)[1]   if not isCreature(pk) then pk = doCreateMonster(pokemon, backupPos) if not isCreature(pk) then doPlayerSendCancel(cid, "Você não pode parar de voar ou montar aqui.") return true end doConvinceCreature(cid, pk) end   doTeleportThing(pk, getThingPos(cid), false) doCreatureSetLookDir(pk, getCreatureLookDir(cid))   adjustStatus(pk, item.uid, true, false, true)   doPlayerSay(cid, ""..getPokeName(getCreatureSummons(cid)[1])..", quero decer!", 1) doChangeSpeed(cid, - getCreatureSpeed(cid)) doChangeSpeed(cid, PlayerSpeed) doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 17000, -1) setPlayerStorageValue(cid, 17001, -1)   return true end -----------------------------   if #getCreatureSummons(cid) == 0 then return doPlayerSendCancel(cid, "Você precisa de um pokemon para usar o order!") end if getCreatureNoMove(getCreatureSummons(cid)[1]) then return true end markLP(getCreatureSummons(cid)[1], -1)   if getMarkedPos(getCreatureSummons(cid)[1]).x == topos.x and getMarkedPos(getCreatureSummons(cid)[1]).y == topos.y then return true end   local unfix = {x = 1, y = 1, z = 1} local thisball = getPlayerSlotItem(cid, 8) local mysum = getCreatureSummons(cid)[1] local sid = mysum or cid local maxMoveDist = getDistanceBetween(getThingPos(sid), topos) * 2 + 1   markPos(mysum, topos) markOwnerPos(mysum, getThingPos(cid))   -------- ROCK SMASH --------- if item2.itemid == 1285 and isInArray(skills["rock smash"], getPokemonName(mysum)) then   doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["rock smash"][math.random(1, #txt["rock smash"])].."", 1) addEvent(goThere, 500, mysum, topos, "rock smash", isCreature(getCreatureTarget(cid)))   return true end -----------------------------     -------- CUT ---------------- if item2.itemid == 2767 and isInArray(skills["cut"], getPokemonName(mysum)) then   doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["cut"][math.random(1, #txt["cut"])].."", 1) addEvent(goThere, 500, mysum, topos, "cut", isCreature(getCreatureTarget(cid)))   return true end -----------------------------   -------- TRANSFORM ---------- if getCreatureName(mysum) == "Ditto" and isMonster(item2.uid) then if item2.uid == mysum then if isTransformed(mysum) then deTransform(mysum, getItemAttribute(thisball.uid, "transTurn")) markPos(mysum, unfix) doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["untransform"][math.random(1, #txt["untransform"])].."", 1) return true end doPlayerSendCancel(cid, "Seu ditto não esta transformado.") markPos(mysum, unfix) return true end   if getCreatureName(item2.uid) == "Ditto" then doPlayerSendCancel(cid, "Seu Ditto não pode se transformar em outro Ditto!") markPos(mysum, unfix) return true end   if getCreatureName(item2.uid) == getPlayerStorageValue(mysum, 1010) then doPlayerSendCancel(cid, "Seu Ditto já esta transformado.") markPos(mysum, unfix) return true end   local cd = getCD(thisball.uid, "trans", 40)   if cd > 0 then doPlayerSendCancel(cid, "Seu Ditto esta muito cançado para realizar esta ação! Cooldown: ("..getStringmytempo(cd)..")") return true end   if getHappiness(mysum) <= 50 then doSendMagicEffect(getThingPos(mysum), happinessRate[1].effect) markPos(mysum, unfix) return true end   local turn = getItemAttribute(thisball.uid, "transTurn")   if not turn or turn > 10 then doItemSetAttribute(thisball.uid, "transTurn", 0) else doItemSetAttribute(thisball.uid, "transTurn",  turn + 1) end   local time = 140 + 2 * getPokemonLevel(mysum)   turn = getItemAttribute(thisball.uid, "transTurn")   markPos(mysum, unfix) setPlayerStorageValue(mysum, 1010, getCreatureName(item2.uid)) doSetCreatureOutfit(mysum, getCreatureOutfit(item2.uid), -1) addEvent(deTransform, time * 1000, mysum, turn) doSendMagicEffect(getThingPos(mysum), 184) doCreatureSay(mysum, "TRANSFORM!", TALKTYPE_MONSTER) local name = getCreatureName(item2.uid) setCD(thisball.uid, "trans", 40) doItemSetAttribute(thisball.uid, "transBegin", os.clock()) doSetItemAttribute(thisball.uid, "transLeft", time) doSetItemAttribute(thisball.uid, "transOutfit", getCreatureOutfit(item2.uid).lookType) doSetItemAttribute(thisball.uid, "transName", getCreatureName(item2.uid)) doFaceCreature(mysum, getThingPos(item2.uid)) doPlayerSay(cid, ""..getPokeName(mysum)..", transforme-se em um "..getArticle(name).." "..name.."!", 1)   if dittoCopiesStatusToo then doSetItemAttribute(thisball.uid, "boffense", dittoBonus * getOffense(item2.uid)) doSetItemAttribute(thisball.uid, "bdefense", dittoBonus * getDefense(item2.uid)) doSetItemAttribute(thisball.uid, "bsattack", dittoBonus * getSpecialAttack(item2.uid)) doSetItemAttribute(thisball.uid, "bagility", dittoBonus * getSpeed(item2.uid)) adjustStatus(mysum, thisball.uid) end   return true end -----------------------------     -------- TRANSFORM ---------- if getCreatureName(mysum) == "Shiny Ditto" and isMonster(item2.uid) then if item2.uid == mysum then if isTransformed(mysum) then deTransform(mysum, getItemAttribute(thisball.uid, "transTurn")) markPos(mysum, unfix) doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["untransform"][math.random(1, #txt["untransform"])].."", 1) return true end doPlayerSendCancel(cid, "Seu Shiny ditto não esta transformado.") markPos(mysum, unfix) return true end   if getCreatureName(item2.uid) == "Shiny Ditto" then doPlayerSendCancel(cid, "Seu Shiny Ditto não pode se transformar em outro Ditto!") markPos(mysum, unfix) return true end   if getCreatureName(item2.uid) == getPlayerStorageValue(mysum, 1010) then doPlayerSendCancel(cid, "Seu Shiny Ditto já esta transformado.") markPos(mysum, unfix) return true end   local cd = getCD(thisball.uid, "trans", 40)   if cd > 0 then doPlayerSendCancel(cid, "Seu Shiny Ditto esta muito cançado para realizar esta ação! Cooldown: ("..getStringmytempo(cd)..")") return true end   if getHappiness(mysum) <= 50 then doSendMagicEffect(getThingPos(mysum), happinessRate[1].effect) markPos(mysum, unfix) return true end   local turn = getItemAttribute(thisball.uid, "transTurn")   if not turn or turn > 10 then doItemSetAttribute(thisball.uid, "transTurn", 0) else doItemSetAttribute(thisball.uid, "transTurn",  turn + 1) end   local time = 140 + 2 * getPokemonLevel(mysum)   turn = getItemAttribute(thisball.uid, "transTurn")   markPos(mysum, unfix) setPlayerStorageValue(mysum, 1010, getCreatureName(item2.uid)) doSetCreatureOutfit(mysum, getCreatureOutfit(item2.uid), -1) addEvent(deTransform, time * 1000, mysum, turn) doSendMagicEffect(getThingPos(mysum), 184) doCreatureSay(mysum, "TRANSFORM!", TALKTYPE_MONSTER) local name = getCreatureName(item2.uid) setCD(thisball.uid, "trans", 40) doItemSetAttribute(thisball.uid, "transBegin", os.clock()) doSetItemAttribute(thisball.uid, "transLeft", time) doSetItemAttribute(thisball.uid, "transOutfit", getCreatureOutfit(item2.uid).lookType) doSetItemAttribute(thisball.uid, "transName", getCreatureName(item2.uid)) doFaceCreature(mysum, getThingPos(item2.uid)) doPlayerSay(cid, ""..getPokeName(mysum)..", transforme-se em um "..getArticle(name).." "..name.."!", 1)   if dittoCopiesStatusToo then doSetItemAttribute(thisball.uid, "boffense", dittoBonus * getOffense(item2.uid)) doSetItemAttribute(thisball.uid, "bdefense", dittoBonus * getDefense(item2.uid)) doSetItemAttribute(thisball.uid, "bsattack", dittoBonus * getSpecialAttack(item2.uid)) doSetItemAttribute(thisball.uid, "bagility", dittoBonus * getSpeed(item2.uid)) adjustStatus(mysum, thisball.uid) end   return true end -----------------------------   -------- LIGHT -------------- if isMonster(item2.uid) and getCreatureMaster(item2.uid) == cid then   markPos(mysum, unfix)   if not isInArray(skills["light"], getPokemonName(item2.uid)) then doPlayerSendCancel(cid, "Seu pokemon não tem a habilidade Flash.") return true end   local cd = getCD(thisball.uid, "light", 30)   if cd > 0 then doPlayerSendCancel(cid, "Seu pokemon esta muito cansado para realizar esta ação novamente. Cooldown: ("..getStringmytempo(cd)..")") return true end   doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["light"][math.random(1, #txt["light"])].."", 1) doCreatureSay(mysum, "FLASH!", TALKTYPE_MONSTER) doSendMagicEffect(getThingPos(mysum), 28)   local size = 5 size = size + math.floor(getSpecialAttack(mysum) / 60) size = size + math.ceil(getPokemonLevel(mysum) / 60)   if size > 11 then size = 11 end   doSetCreatureLight(mysum, size, 215, 600*1000)   local delay = math.floor(30 - getPokemonLevel(mysum) / 4) if delay > 0 then setCD(thisball.uid, "light", delay) end   return true end -----------------------------     -------- DIG ---------------- if isInArray(skills["digholes"], item2.itemid) and isInArray(skills["dig"], getPokemonName(mysum)) then   doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["dig"][math.random(1, #txt["dig"])].."", 1) addEvent(goThere, 500, mysum, topos, "dig", isCreature(getCreatureTarget(cid)))   return true end -----------------------------     -------- BLINK / MOVE ------- if not isCreature(item2.uid) and isInArray(skills["blink"], getPokemonName(mysum)) then   local cd = getCD(thisball.uid, "blink", 170)   if cd > 0 or not canWalkOnPos(topos, false, false, true, true, true) then   doPlayerSendCancel(cid, "Blink cooldown: ("..getStringmytempo(cd)..")") doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["move"][math.random(1, #txt["move"])].."", 1) addEvent(goThere, 500, mysum, topos, "move", isCreature(getCreatureTarget(cid)), maxMoveDist)   return true end   local distance = getDistanceBetween(getThingPos(mysum), topos)   markPos(mysum, unfix) setCD(thisball.uid, "blink", distance * 12) doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["blink"][math.random(1, #txt["blink"])].."", 1) doSendDistanceShoot(getThingPos(mysum), topos, 39) doSendMagicEffect(getThingPos(mysum), 211) doTeleportThing(mysum, topos, false) doSendMagicEffect(topos, 134) doCreatureSay(mysum, "BLINK!", TALKTYPE_MONSTER) goThere(mysum, topos, "move", isCreature(getCreatureTarget(cid)))   return true end -----------------------------     ----START FLYorRIDE --------- if (item2.uid == cid or getRecorderPlayer(topos) == cid) and (isInArray(skills["fly"], getPokemonName(mysum)) or isInArray(skills["ride"], getPokemonName(mysum))) then   --if not isPremium(cid) then --doPlayerSendCancel(cid, "Apenas pessoas premium podem voar ou montar.") --return true --end   local pct = getCreatureHealth(mysum) / getCreatureMaxHealth(mysum) doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", 1 - pct)   if isInArray(skills["fly"], getPokemonName(mysum)) then doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["fly"][math.random(1, #txt["fly"])].."", 1) addEvent(goThere, 500, mysum, topos, "fly", isCreature(getCreatureTarget(cid))) else doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["ride"][math.random(1, #txt["ride"])].."", 1) addEvent(goThere, 500, mysum, topos, "ride", isCreature(getCreatureTarget(cid))) end   return true end -----------------------------     -------- MOVE / END ---------   local onlyWater = false   if isWater(getTileThingByPos(checkpos).itemid) then onlyWater = true for checkwater = 0, 7 do if not isWater(getTileThingByPos(getPosByDir(checkpos, checkwater)).itemid) then onlyWater = false end end end   if onlyWater then doPlayerSendCancel(cid, "") return true end   doPlayerSay(cid, ""..getPokeName(mysum)..", "..txt["move"][math.random(1, #txt["move"])].."", 1) if isCreature(getCreatureTarget(cid)) then goThere(mysum, topos, "move", isCreature(getCreatureTarget(cid)), maxMoveDist) else addEvent(goThere, 500, mysum, topos, "move", isCreature(getCreatureTarget(cid)), maxMoveDist) end return true end -----------------------------[/spoiler]   Assim , a habilidade headbutt não funciona e os pokes só andam travando quando uso move '-' parece que os membros estão congelados
  8. poketibia

    Boa maninhos ,  Minha Order está bugada , primeiro o pokémon fica travado ao andar . O order ao ser usado parece que não reconhece a árvore e fica apenas como ordem de movimento e não para o uso de headbutt (como se não houvesse árvore )    Arquivo Order.lua [spoiler] local dirpref = {   [1] =  {[NORTH] = {[1] = {NORTH}, [2] = {EAST, WEST}, [3] = {NORTHEAST, NORTHWEST}}, [EAST] = {[1] = {EAST}, [2] = {NORTH, SOUTH}, [3] = {NORTHEAST, SOUTHEAST}}, [SOUTH] = {[1] = {SOUTH}, [2] = {EAST, WEST}, [3] = {SOUTHEAST, SOUTHWEST}}, [WEST] = {[1] = {WEST}, [2] = {SOUTH, NORTH}, [3] = {NORTHWEST, SOUTHWEST}}, [NORTHEAST] = {[1] = {NORTH, EAST}, [2] = {NORTHEAST}, [3] = {SOUTH, WEST}}, [SOUTHEAST] = {[1] = {SOUTH, EAST}, [2] = {SOUTHEAST}, [3] = {NORTH, WEST}}, [SOUTHWEST] = {[1] = {SOUTH, WEST}, [2] = {SOUTHWEST}, [3] = {NORTH, EAST}}, [NORTHWEST] = {[1] = {NORTH, WEST}, [2] = {NORTHWEST}, [3] = {EAST, SOUTH}}}, [2] =  {[NORTH] = {[1] = {NORTH}, [2] = {WEST, EAST}, [3] = {NORTHWEST, NORTHEAST}}, [EAST] = {[1] = {EAST}, [2] = {SOUTH, NORTH}, [3] = {SOUTHEAST, NORTHEAST}}, [SOUTH] = {[1] = {SOUTH}, [2] = {WEST, EAST}, [3] = {SOUTHWEST, SOUTHEAST}}, [WEST] = {[1] = {WEST}, [2] = {NORTH, SOUTH}, [3] = {SOUTHWEST, NORTHWEST}}, [NORTHEAST] = {[1] = {EAST, NORTH}, [2] = {NORTHEAST}, [3] = {WEST, SOUTH}}, [SOUTHEAST] = {[1] = {EAST, SOUTH}, [2] = {SOUTHEAST}, [3] = {WEST, NORTH}}, [SOUTHWEST] = {[1] = {WEST, SOUTH}, [2] = {SOUTHWEST}, [3] = {EAST, NORTH}}, [NORTHWEST] = {[1] = {WEST, NORTH}, [2] = {NORTHWEST}, [3] = {SOUTH, EAST}}}, }   function doPushCreature(uid,direction,distance,time)    if isCreature(uid) == TRUE then    local rand = (2*math.random(0,1))-1    local rand2 = math.random(-1,0)  if direction == 0 then  signal = {0,rand,-rand,rand,-rand,0,-1,-1,-1,0,0,0}  elseif direction == 1 then  signal = {1,1,1,0,0,0,0,rand,-rand,rand,-rand,0}  elseif direction == 2 then  signal = {0,rand,-rand,rand,-rand,0,1,1,1,0,0,0}    elseif direction == 3 then    signal = {-1,-1,-1,0,0,0,0,rand,-rand,rand,-rand,0}    elseif direction == 4 then    signal = {-1,rand2,(-rand2)-1,0,1,rand2+1,rand2,0}    elseif direction == 5 then    signal = {1,-rand2,-((-rand2)-1),0,1,rand2+1,rand2,0}    elseif direction == 6 then    signal = {-1,rand2,(-rand2)-1,0,-1,(-rand2)-1,rand2,0}    else    signal = {1,-rand2,-((-rand2)-1),0,-1,(-rand2)-1,rand2,0}    end      local pos = getThingPos(uid)      nsig = #signal      nvar = 0            repeat      nvar = nvar+1      newpos = {x=pos.x+(signal[nvar]),y=pos.y+(signal[(nsig/2)+nvar]),z=pos.z}      newtile = {x=newpos.x,y=newpos.y,z=newpos.z,stackpos=0}      until getTileThingByPos(newtile).uid ~= 0 and hasProperty(getTileThingByPos(newtile).uid,3) == FALSE and queryTileAddThing(uid,newpos) == 1 or nvar == (nsig/2)          if distance == nil or distance == 1 then    doTeleportThing(uid,newpos,TRUE)       else    distance = distance-1    doTeleportThing(uid,newpos,TRUE)   if time ~= nil then   addEvent(doPushCreature,time,uid,direction,distance,time)   else   addEvent(doPushCreature,500,uid,direction,distance,500)   end       end      end     end   function doComparePosition(pos1, pos2) if pos1.x == pos2.x and pos1.y == pos2.y and pos1.z == pos2.z then return true end return false end   function walkTo(cid, direction, finalp, useExtraMoveOrder) if not isCreature(cid) then return true end   doChangeSpeed(cid, 5) local x = getThingPos(cid) local ratedelaywalk = 1 local finalpos = {x = finalp.x, y = finalp.y, z = finalp.z}   if not canWalkOnPos(finalpos, false, false, true, true, true) then finalpos = getClosestFreeTile(cid, finalpos) end   if not finalpos then return false end   local dir = getDirectionToWalk(cid, finalpos, 2, 0, 0, false, true, 300) if dir and tonumber(dir) ~= nil and tonumber(dir) >= 0 and tonumber(dir) <= 7 then if dir >= 4 then ratedelaywalk = 0.4 end doPushCreature(cid, dir, 1, getNextStepDelay(cid, dir) * ratedelaywalk) return getNextStepDelay(cid, dir) * ratedelaywalk elseif useExtraMoveOrder then   local random = math.random(1, 2)   for ta = 1, 3 do for tb = 1, #dirpref[random][direction][ta] do local y = getPosByDir(getThingPos(cid), dirpref[random][direction][ta][tb]) local w = getCreatureLP(cid) local z = getDirectionTo(y, getThingPos(cid)) -- direção q vai marcar local j = getDirectionTo(getThingPos(cid), y) -- direção q ele vai if canWalkOnPos(y, true, false, true, true, true) and w ~= j then if dirpref[random][direction][ta][tb] >= 4 then ratedelaywalk = 0.5 end doPushCreature(cid, dirpref[random][direction][ta][tb], 1, getNextStepDelay(cid, dirpref[random][direction][ta][tb]) * ratedelaywalk) markLP(cid, z) return getNextStepDelay(cid, dirpref[random][direction][ta][tb]) * ratedelaywalk end end end end return false end   function getCreatureLP(cid) return getPlayerStorageValue(cid, 197) end   function markLP(cid, dir) setPlayerStorageValue(cid, 197, dir) end   function markPos(sid, pos) if not isCreature(sid) then return end setPlayerStorageValue(sid, 145, pos.x) setPlayerStorageValue(sid, 146, pos.y) setPlayerStorageValue(sid, 147, pos.z) end   function markFlyingPos(sid, pos) if not isCreature(sid) then return end setPlayerStorageValue(sid, 33145, pos.x) setPlayerStorageValue(sid, 33146, pos.y) setPlayerStorageValue(sid, 33147, pos.z) end   function getFlyingMarkedPos(sid) if not isCreature(sid) then return end local xx = getPlayerStorageValue(sid, 33145) local yy = getPlayerStorageValue(sid, 33146) local zz = getPlayerStorageValue(sid, 33147) return {x = xx, y = yy, z = zz, stackpos = 0} end   function getMarkedPos(sid) if not isCreature(sid) then return end local xx = getPlayerStorageValue(sid, 145) local yy = getPlayerStorageValue(sid, 146) local zz = getPlayerStorageValue(sid, 147) return {x = xx, y = yy, z = zz} end   function getOwnerPos(sid) if not isCreature(sid) then return end local xx = getPlayerStorageValue(sid, 148) local yy = getPlayerStorageValue(sid, 149) local zz = getPlayerStorageValue(sid, 150) return {x = xx, y = yy, z = zz} end   function markOwnerPos(sid, pos) if not isCreature(sid) then return end setPlayerStorageValue(sid, 148, pos.x) setPlayerStorageValue(sid, 149, pos.y) setPlayerStorageValue(sid, 150, pos.z) end   function recheck(sid, skill, pos) if not isCreature(sid) then return end local cid = getCreatureMaster(sid)   if skill == "cut" then   local item = getTileItemById(pos, 2767) doCreatureSay(sid, "CUT!", TALKTYPE_MONSTER) markPos(sid, {x=1,y=1,z=7}) doFaceCreature(sid, pos) doSendMagicEffect(getThingPos(item.uid), 141) doTransformItem(item.uid, 6216) local function growBush() doTransformItem(getTileItemById(pos, 6216).uid, 2767) end addEvent(growBush, intervalToRegrowBushAndStones * 1000)   elseif skill == "rock smash" then   local item = getTileItemById(pos, 1285) doCreatureSay(sid, "ROCK SMASH!", TALKTYPE_MONSTER) markPos(sid, {x=1,y=1,z=7}) doFaceCreature(sid, pos) doSendMagicEffect(getThingPos(item.uid), 118) doTransformItem(item.uid, 3610) local function growRock() doTransformItem(getTileItemById(pos, 3610).uid, 1285) end addEvent(growRock, intervalToRegrowBushAndStones * 1000)   elseif skill == "headbutt" then   local monsters = {"Ekans", "Pidgey", "Caterpie", "Spearow", "Pidgeotto", "Paras", "Weedle", "Taillow", "Illumise", "Nincada", "Volbeat", "Pineco", "Cascoon", "Silcoon", "Anorith", "Yanma"}   doCreateMonster(monsters[math.random(#monsters)], getPlayerPosition(cid)) local item = getTileItemById(pos, 2706) doCreatureSay(sid, "HEADBUTT!", TALKTYPE_MONSTER) markPos(sid, {x=1,y=1,z=7}) doFaceCreature(sid, pos) doSendMagicEffect(getThingPos(item.uid), 119) doTransformItem(item.uid, 2705) local function growHead() doTransformItem(getTileItemById(pos, 2705).uid, 2706) end addEvent(growHead, intervalToRegrowBushAndStones * 5000)   elseif skill == "dig" then   local item = getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}) doCreatureSay(sid, "DIG!", TALKTYPE_MONSTER) markPos(sid, {x=1,y=1,z=7}) doFaceCreature(sid, pos) doSendMagicEffect(getThingPos(item.uid), 3) doTransformItem(item.uid, item.itemid+1) local function closeHole() doTransformItem(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).uid, item.itemid) end addEvent(closeHole, intervalToRegrowBushAndStones * 1000)   elseif skill == "fly" then   local pokemon = flys[getPokemonName(getCreatureSummons(cid)[1])] doPlayerSendTextMessage(cid, 27, "Type \"up\" or \"h1\" to fly higher and \"down\" or \"h2\" to fly lower.") doChangeSpeed(cid, -getCreatureSpeed(cid)) local speed = 500 + PlayerSpeed/5 + getSpeed(sid) * 6 * speedRate doChangeSpeed(cid, speed) setPlayerStorageValue(cid, 54844, speed) doSetCreatureOutfit(cid, {lookType = pokemon[1] + 351}, -1) doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1])) doRemoveCreature(getCreatureSummons(cid)[1]) setPlayerStorageValue(cid, 17000, 1) return true   elseif skill == "ride" then   local pokemon = rides[getPokemonName(getCreatureSummons(cid)[1])] doChangeSpeed(cid, -getCreatureSpeed(cid)) local speed = 150 + PlayerSpeed + getSpeed(sid) * 5 * speedRate doChangeSpeed(cid, speed) setPlayerStorageValue(cid, 54844, speed) doSetCreatureOutfit(cid, {lookType = pokemon[1] + 351}, -1) doItemSetAttribute(getPlayerSlotItem(cid, 8).uid, "hp", getCreatureHealth(getCreatureSummons(cid)[1]) / getCreatureMaxHealth(getCreatureSummons(cid)[1])) doRemoveCreature(getCreatureSummons(cid)[1]) setPlayerStorageValue(cid, 17001, 1)   return true end   if getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y or isCreature(getCreatureTarget(getCreatureMaster(sid))) then doRegainSpeed(sid) markPos(sid, {x=1,y=1,z=7}) return true end   addEvent(recheck, 120, sid) end   function goThere(sid, thepos, skill, target, rept) if not isCreature(sid) then return true end if getCreatureNoMove(sid) or getCreatureHideHealth(sid) or isSleeping(sid) then return true end if thepos.x ~= getMarkedPos(sid).x or thepos.y ~= getMarkedPos(sid).y then return true end if isCreature(getCreatureTarget(getCreatureMaster(sid))) and target == false or (rept and rept <= 0) then doRegainSpeed(sid) markPos(sid, {x=1,y=1,z=7}) return true end   if (skill == "ride" or skill == "fly") and getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 then   local currentPos = getThingPos(getCreatureMaster(sid)) local summonPos = getThingPos(sid) local masterPos = getCreatureLastPosition(sid)   if (getThingPos(sid).x == getThingPos(getCreatureMaster(sid)).x and getThingPos(sid).y == getThingPos(getCreatureMaster(sid)).y) or (currentPos.x == masterPos.x and currentPos.y == masterPos.y) then recheck(sid, skill, thepos) return true end   if currentPos.x == thepos.x and currentPos.y == thepos.y then if getDirectionTo(getThingPos(sid), getThingPos(getCreatureMaster(sid))) <= 3 then doRegainSpeed(sid) local ndelay = getNextStepDelay(sid, 0) doTeleportThing(sid, thepos, true) doChangeSpeed(sid, -getCreatureSpeed(sid)) markPos(sid, getThingPos(getCreatureMaster(sid))) addEvent(goThere, ndelay, sid, getMarkedPos(sid), skill, target) else doChangeSpeed(sid, - getCreatureSpeed(sid)) doRegainSpeed(sid) markPos(sid, getThingPos(getCreatureMaster(sid))) local x = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly") doChangeSpeed(sid, - getCreatureSpeed(sid)) addEvent(goThere, x, sid, getMarkedPos(sid), skill, target) end return true else markPos(sid, getThingPos(getCreatureMaster(sid))) doChangeSpeed(sid, - getCreatureSpeed(sid)) doRegainSpeed(sid) local ndelay = getNextStepDelay(sid, 0) if getDirectionTo(getThingPos(sid), getMarkedPos(sid)) >= 4 then local x = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly") else doTeleportThing(sid, getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid)))) end doChangeSpeed(sid, - getCreatureSpeed(sid)) addEvent(goThere, x and x or ndelay, sid, getMarkedPos(sid), skill, target) return true end   addEvent(recheck, 350, sid, skill, thepos) return true end   if getThingPos(sid).x == getMarkedPos(sid).x and getThingPos(sid).y == getMarkedPos(sid).y then if isCreature(getCreatureTarget(sid)) then doFaceCreature(sid, getThingPos(getCreatureTarget(sid))) end addEvent(recheck, 350, sid, skill, thepos) return true end   if (getOwnerPos(sid).x ~= getThingPos(getCreatureMaster(sid)).x or getOwnerPos(sid).y ~= getThingPos(getCreatureMaster(sid)).y) and isCreature(getCreatureTarget(getCreatureMaster(sid))) == false and skill == "move" then doRegainSpeed(sid) markPos(sid, {x=1,y=1,z=7}) return true end   doRegainSpeed(sid)   local holeid = thepos holeid.stackpos = 0 holeid = getTileThingByPos(holeid).itemid   if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 and (not isWalkable(getPosByDir(getThingPos(sid), getDirectionTo(getThingPos(sid), getMarkedPos(sid))), true, false, false, true) or isInArray(specialabilities["digholes"], holeid)) then if isGhostPokemon(sid) and getPlayerStorageValue(getCreatureMaster(sid), 990) <= 0 then local todir = getDirectionTo(getThingPos(sid), getMarkedPos(sid)) if todir <= 3 then doTeleportThing(sid, getMarkedPos(sid), true) else local gotopos = getPosByDir(getThingPos(sid), dirpref[math.random(1, 2)][todir][1][math.random(1, 2)]) doTeleportThing(sid, gotopos, true) addEvent(goThere, getNextStepDelay(sid, 0), sid, getMarkedPos(sid), skill, target) return true end end doFaceCreature(sid, getMarkedPos(sid)) addEvent(recheck, 180, sid, skill, thepos) doChangeSpeed(sid, - getCreatureSpeed(sid)) return true end   local ret = 0 if getDistanceBetween(getThingPos(sid), getMarkedPos(sid)) <= 1 then ret = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly" or isGhostPokemon(sid)) if not tonumber(ret) then doFaceCreature(sid, getMarkedPos(sid)) addEvent(recheck, 180, sid, skill, thepos) doChangeSpeed(sid, - getCreatureSpeed(sid)) return true end else ret = walkTo(sid, getDirectionTo(getThingPos(sid), getMarkedPos(sid)), getMarkedPos(sid), skill == "ride" or skill == "fly" or not isGhostPokemon(sid))-- and isSightClear(getThingPos(sid), getMarkedPos(sid), false))) end   if not tonumber(ret) then doPlayerSendCancel(getCreatureMaster(sid), "Destination is not reachable.") markPos(sid, {x=1,y=1,z=7}) return true end   doChangeSpeed(sid, - getCreatureSpeed(sid)) addEvent(goThere, tonumber(ret), sid, getMarkedPos(sid), skill, target, rept and rept - 1 or 22) end [/spoiler]
  9. poketibia

    Ola galera , sou novo aqui então antes de qualquer coisa me avisem se postei na área errada ou se já tem tópicos como este . Estou editando meu antigo" poketibia e estou precisando de alguns scripts.   1 - uma quest para eqp rocket e policiais . onde os rockets tem como objetivo capturar pokémons em troca de dinheiro e itens e os policiais matarem os rockets e ganharem exp. ( ambos podem matar uns aos outros )   2 - clãs . como cada clã representa tipos de pokemon e cada um tem um lider . Então eu queria ranks pros clãs . chefe , supervisor , membro revelação e membro , onde os chefes podem moderar o cla (remover , adicionar e promover membros .)   3- equipes , a magma , aquA e magma com os mesmos objetivos da rocket (com o tipo da equipe claro)   se puderem ajudar obg
  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.