Ir para conteúdo
  • advertisement_alt
  • advertisement_alt
  • advertisement_alt

Kav Ra

Membro
  • Registro em

  • Última visita

Tudo que Kav Ra postou

  1. GLORIA A DEUS O SALVADOR DA PATRIA, É TAO SIMPLES MAS PORQUE OS MALANDROS QUE DISPONIBILIZAM O OT DEIXA ISSO DESATIVADO, VOCES QUE TAO LENDO ISSO NAO SABEM QUANTOS ADMINS DE OTSERVER ESTAO PROCURANDO ESSA RESPOSTA.SE ALGUEM CRIAR UM POST DA OS CREDITOS PARA ESSE CARA, ELE MERECE! VALEU AE "luiggiandreatta"
  2. ajudo eu, mas como da rep?
  3. Kav Ra respondeu ao post em um tópico de Skydangerous em Playground (Off-topic)
    deixo meu luto pelas vitimas!
  4. você limpou a lista e adicionou a sua data base, ou seja a do otserver que esta usando? VOCE DEVERIA MOSTRAR QUAL OS PASSOS QUE TOMOU PARA PODERMOS DAR UMA RESPOSTA MELHOR!
  5. Kav Ra respondeu ao post em um tópico de jackfan em Suporte Tibia OTServer
    TENHO UMA IDEIA PARA VOCE, DEVERIA PROCURAR UM OT QUE JA TEM ESSA DLL INJETADA, QUE É O MEU CASO, O OT É MUITO BOM E AGRADEÇO AO POSTER, E CREDITOS PARA QUEM FEZ, CACAIU E BRUN123! FLW!
  6. PODEM FECHAR O TOPICO PROBLEMA RESOLVIDO, PARA QUEM TEM O MESMO PROBLEMA MAS PM QUE AJUDO, VALEU!
  7. COMO USUARIO DESSE OT VENHO A AVISAR QUE A AREA INICIAL QUE TEM OS PARCELS QUE DA POKEMON, TIREM PORQUE ELES PODEM FAZER TRAPAÇA EU TROQUEI POR TELEPORTS! VALEU!
  8. Kav Ra respondeu ao post em um tópico de Kav Ra em Suporte Tibia OTServer
    NAO PRECISA MAIS, DESCULPEM! eu consegui!
  9. Kav Ra postou uma resposta no tópico em Suporte Tibia OTServer
    Ola pessoal, eu ja coloquei um ot online uma vez num modem d-link 500b, so que agora o modem é diferente e to tendo dificuldades devido a varias versoes que eu vi do pessoal falando como liberar portas do modem ZTE ( aquele da oi). Bom li de tudo que deu e fiz assim: Primeiro eu fiz assim, liberando as portas 7171 e 7172 com o meu ip local que peguei do ipconfig( imagem 1 ); Depois fiz conforme li em outro topico que teria que liberar as portas com o ip ( do meuip.com.br), aquele que tu coloca no config.lua, ou seja o atual daquele momento que fiz (imagem2); Agora uns dizem que eu deveria também colocar o ip em DMZ HOST, e la fui eu. (imagem3); E claro, como obvio liberei as portas do PC(windows7) (imagem4); Lembrando que faço o teste com o ip do site ( no-ip.com) que seria pokeserver.servegame.com(imagem5); E no final de tudo aparece isso quando faço o teste final(imagem6); Suplico por ajuda, vai resolve a duvida de mais gente, obrigado!
  10. bah, o erro é nessas pastas, se eu soubesse dessa tabela eu postaria.o problema desses ots de poke é que sao diferente dos de tibia.dai ferra o kara!
  11. opa, gostei muito desse ot to usando e editando ele, só que como vc disse ele vem com uns errinhos no começo e criei posts para me ajudarem, será que vc poderia me ajudar? quem fez esse ot é o cara pq o sistema dele é nota 1000, os caras deviam ta desenvolvendo ainda mais esse ot, ele é muito melhor que os que tem ai pra jogar. agradeço desde ja!
  12. eu tenho um ot de pokemon, com level e ja vi varios sem, proponho baixar um sem esse sistema.
  13. isso poderia ser feito com fotos, ficaria mais explicativo para leigos como eu.
  14. Kav Ra respondeu ao post em um tópico de jackfan em Suporte Tibia OTServer
    cara, eu baixei um ot que veio com essa barra de cooldown, queria modifica-la também, queria ajudar mas to aprendendo.Talvez seja modificando o cliente com algum programa e depois adicionando alguma script.Desculpa nao poder ajudar.
  15. Obrigado por responder, mandei os scripts para ajudar na compreensao. function getPokemonStatus(name, multiplier) local a = pokes[name] local m = 1 if not a then return false end if not a.offense then return false end if multiplier then m = multiplier end local ret = {} ret.off = a.offense * m ret.offense = ret.off ret.def = a.defense * m ret.defense = ret.def ret.agi = a.agility * m ret.agility = ret.agi ret.spatk = a.specialattack * m ret.specialattack = ret.spatk ret.vit = a.vitality * m ret.vitality = ret.vit return ret end function getPokemonXMLOutfit(name) local a = "data/monster/pokes/"..name..".xml" local b = io.open(a, "a+") local c = b:read("*all") b:close() local d, e = c:find('look type="(.-)"') c = string.sub(c, d + 11, e - 1) return tonumber(c) end function doEvolutionOutfit(cid, oldout, outfit) if not isCreature(cid) then return true end if getCreatureOutfit(cid).lookType == oldout then doSetCreatureOutfit(cid, {lookType = outfit}, -1) else doSetCreatureOutfit(cid, {lookType = oldout}, -1) end end function doStartEvolution(cid, evolution, seconds) if not isCreature(cid) then return true end local a = getPlayerStorageValue(cid, 1007) local b = getCreatureHealth(cid) / getCreatureMaxHealth(cid) local d = getThingPos(cid) local e = getCreatureMaster(cid) if getHappinessRate(cid) < 1 then return true end local f = getCreatureOutfit(cid).lookType local g = getItemAttribute(getPlayerSlotItem(e, 8).uid, "nick") or getCreatureName(cid) local h = getPokemonXMLOutfit(evolution) doItemSetAttribute(getPlayerSlotItem(e, 8).uid, "hp", b) doCreatureSay(e, "What? My "..g.." is evolving!", TALKTYPE_SAY) doSummonMonster(e, "Evolution") doReturnPokemon(e, cid, getPlayerSlotItem(e, 8), 0, true) local evo = getCreatureSummons(e)[1] doEvolutionOutfit(evo, h, f) doCreatureSetHideHealth(evo, true) doCreatureSetLookDir(evo, 2) setPlayerStorageValue(evo, 1007, g) doTeleportThing(evo, d, false) addEvent(sendSSJEffect, 250, evo) doSendAnimatedText(getThingPos(evo), "EVOLUTION", COLOR_GRASS) doSendEvolutionEffect(evo, getThingPos(evo), evolution, 20, false, false, f, h) end function doSendEvolutionEffect(cid, pos, evolution, turn, ssj, evolve, f, h) if not isCreature(cid) then doSendAnimatedText(pos, "CANCEL", 215) return true end if evolve then doEvolvePokemon(getCreatureMaster(cid), {uid = cid}, evolution, 0, 0) return true end doSendMagicEffect(pos, 18) if ssj then sendSSJEffect(evo) end doEvolutionOutfit(cid, f, h) addEvent(doSendEvolutionEffect, math.pow(1900, turn/20), cid, getThingPos(cid), evolution, turn - 1, turn == 19, turn == 2, f, h) end function sendSSJEffect(cid) if not isCreature(cid) then return true end local pos1 = getThingPos(cid) local pos2 = getThingPos(cid) pos2.x = pos2.x + math.random(-1, 1) pos2.y = pos2.y - math.random(1, 2) doSendDistanceShoot(pos1, pos2, 37) addEvent(sendSSJEffect, 45, cid) end function sendFinishEvolutionEffect(cid, alternate) if not isCreature(cid) then return true end local pos1 = getThingPos(cid) if alternate then local pos = { [1] = {-2, 0}, [2] = {-1, -1}, [3] = {0, -2}, [4] = {1, -1}, [5] = {2, 0}, [6] = {1, 1}, [7] = {0, 2}, [8] = {-1, 1}} for a = 1, 8 do local pos2 = getThingPos(cid) pos2.x = pos2.x + pos[a][1] pos2.y = pos2.y + pos[a][2] local pos = getThingPos(cid) doSendDistanceShoot(pos2, pos, 37) addEvent(doSendDistanceShoot, 300, pos, pos2, 37) end else for a = 0, 3 do doSendDistanceShoot(pos1, getPosByDir(pos1, a), 37) end for a = 4, 7 do addEvent(doSendDistanceShoot, 600, pos1, getPosByDir(pos1, a), 37) end end end function doEvolvePokemon(cid, item2, theevo, stone1, stone2) if not isCreature(cid) then return true end if not pokes[theevo] or not pokes[theevo].offense then doReturnPokemon(cid, item2.uid, getPlayerSlotItem(cid, 8), pokeballs[getPokeballType(getPlayerSlotItem(cid, 8).itemid)].effect, false, true) return true end local owner = getCreatureMaster(item2.uid) local pokeball = getPlayerSlotItem(cid, 8) local description = "Contains a "..theevo.."." local pct = getCreatureHealth(item2.uid) / getCreatureMaxHealth(item2.uid) doItemSetAttribute(pokeball.uid, "hp", pct) doItemSetAttribute(pokeball.uid, "poke", theevo) doItemSetAttribute(pokeball.uid, "description", "Contains a "..theevo..".") doPlayerSendTextMessage(cid, 27, "Congratulations! Your "..getPokeName(item2.uid).." evolved into a "..theevo.."!") doSendMagicEffect(getThingPos(item2.uid), 18) doTransformItem(getPlayerSlotItem(cid, 7).uid, fotos[theevo]) doSendMagicEffect(getThingPos(cid), 173) local oldpos = getThingPos(item2.uid) local oldlod = getCreatureLookDir(item2.uid) local oldlvl = getPokemonLevel(item2.uid) doRemoveCreature(item2.uid) doSummonMonster(cid, theevo) local pk = getCreatureSummons(cid)[1] doTeleportThing(pk, oldpos, false) doCreatureSetLookDir(pk, oldlod) sendFinishEvolutionEffect(pk, true) addEvent(sendFinishEvolutionEffect, 550, pk, true) addEvent(sendFinishEvolutionEffect, 1050, pk) doPlayerRemoveItem(cid, stone1, 1) doPlayerRemoveItem(cid, stone2, 1) doAddPokemonInOwnList(cid, theevo) local status = getPokemonStatus(getCreatureName(pk)) local off = status.off * 7.5 local def = status.def * 7.5 local agi = status.agi * 7.5 local spatk = status.spatk * 7.5 local vit = status.vit * 7 doItemSetAttribute(pokeball.uid, "offense", getItemAttribute(pokeball.uid, "offense") + off) doItemSetAttribute(pokeball.uid, "defense", getItemAttribute(pokeball.uid, "defense") + def) doItemSetAttribute(pokeball.uid, "speed", getItemAttribute(pokeball.uid, "speed") + agi) doItemSetAttribute(pokeball.uid, "specialattack", getItemAttribute(pokeball.uid, "specialattack") + spatk) doItemSetAttribute(pokeball.uid, "vitality", getItemAttribute(pokeball.uid, "vitality") + vit) doPlayerSendTextMessage(cid, 27, "Evolution bonus: • Offense: +"..doMathDecimal(off).." • Defense: +"..doMathDecimal(def).." • Spc. Atk: +"..doMathDecimal(spatk).." • Agility: +"..doMathDecimal(agi).." • Vitality: +"..doMathDecimal(vit).."") local happy = getItemAttribute(pokeball.uid, "happy") doItemSetAttribute(pokeball.uid, "happy", happy + happyGainedOnEvolution) if happy + happyGainedOnEvolution > 255 then doItemSetAttribute(pokeball.uid, "happy", 255) end adjustStatus(pk, pokeball.uid, true, false) if useKpdoDlls then doUpdateMoves(cid) end end function givePokemonExp(cid, item, expe, pct, rarecandy) if expe <= 0 or not isCreature(cid) then return true end local leveltable = getPokemonExperienceTable(getPokeballName(item.uid, true)) if getItemAttribute(item.uid, "exp") + expe > leveltable[100] then givePokemonExp(cid, item, leveltable[100] - getItemAttribute(item.uid, "exp")) return true end doItemSetAttribute(item.uid, "exp", getItemAttribute(item.uid, "exp") + expe) doItemSetAttribute(item.uid, "happy", getItemAttribute(item.uid, "happy") + 1) doItemSetAttribute(item.uid, "nextlevelexp", getItemAttribute(item.uid, "nextlevelexp") - expe) if pct then doPlayerSendTextMessage(cid, 27, "Your "..getPokeballName(item.uid).." has received "..expe.." experience points ("..pct.."%).") else if getItemAttribute(item.uid, "nextlevelexp") > 0 then doPlayerSendTextMessage(cid, 27, "Your "..getPokeballName(item.uid).." ["..getItemAttribute(item.uid, "level").."] has received "..expe.." experience points ("..getItemAttribute(item.uid, "nextlevelexp").." to next level).") else doPlayerSendTextMessage(cid, 27, "Your "..getPokeballName(item.uid).." ["..getItemAttribute(item.uid, "level").."] has received "..expe.." experience points and has leveled up!") end end if isBeingUsed(item.itemid) then doSendAnimatedText(getThingPos(getCreatureSummons(cid)[1]), expe, 215) end if getItemAttribute(item.uid, "nextlevelexp") <= 0 then local summon = getCreatureSummons(cid)[1] if not isCreature(summon) then return true end doSendFlareEffect(getThingPos(summon)) doSendAnimatedText(getThingPos(summon), "Level up!", 215) adjustPokemonLevel(item.uid, cid, item.itemid) end end function givePokemonExpInBp(cid, item, expe, ballid, pct, hidemessage) if expe <= 0 or not isCreature(cid) then return true end local leveltable = getPokemonExperienceTable(getPokeballName(item, true)) if getItemAttribute(item, "exp") + expe > leveltable[100] then givePokemonExpInBp(cid, item, leveltable[100] - getItemAttribute(item, "exp"), ballid) return true end doItemSetAttribute(item, "exp", getItemAttribute(item, "exp") + expe) doItemSetAttribute(item, "happy", getItemAttribute(item, "happy") + 1) doItemSetAttribute(item, "nextlevelexp", getItemAttribute(item, "nextlevelexp") - expe) if not hidemessage then if pct then doPlayerSendTextMessage(cid, 27, "Your "..getPokeballName(item).." has received "..expe.." experience points ("..pct.."%).") else if getItemAttribute(item, "nextlevelexp") > 0 then doPlayerSendTextMessage(cid, 27, "Your "..getPokeballName(item).." ["..getItemAttribute(item, "level").."] has received "..expe.." experience points inside his pokeball ("..getItemAttribute(item, "nextlevelexp").." to next level).") else doPlayerSendTextMessage(cid, 27, "Your "..getPokeballName(item).." ["..getItemAttribute(item, "level").."] has received "..expe.." experience points and has leveled up inside his pokeball.") adjustPokemonLevel(item, cid, ballid) end end end end function doMathDecimal(number, casas) if math.floor(number) == number then return number end local c = casas and casas + 1 or 3 for a = 0, 10 do if math.floor(number) < math.pow(10, a) then local str = string.sub(""..number.."", 1, a + c) return tonumber(str) end end return number end function adjustPokemonLevel(item, cid, id, rarecandy) if not isCreature(cid) then return true end local exp = getItemAttribute(item, "exp") local level = getItemAttribute(item, "level") local leveltable = getPokemonExperienceTable(getPokeballName(item, true)) local newlevel = 1 for x = 1, 100 do if exp >= leveltable[x] and exp < leveltable[x+1] then newlevel = x end end if newlevel <= 1 then return true end local levelsup = (newlevel - level) local pokemon = getItemAttribute(item, "poke") local happy = getItemAttribute(item, "happy") local rate = happy / 100 local newhappiness = happy if happy >= 250 then newhappiness = 255 elseif happy >= 230 then newhappiness = happy + 4 elseif happy >= 210 then newhappiness = happy + 6 elseif happy >= 180 then newhappiness = happy + 8 elseif happy >= 140 then newhappiness = happy + 10 elseif happy >= 110 then newhappiness = happy + 12 else newhappiness = happy + 15 end local status = getPokemonStatus(pokemon) local off = status.off * rate * levelsup local def = status.def * rate * levelsup local agi = status.agi * rate * levelsup local spatk = status.spatk * rate * levelsup local vit = status.vit * rate * levelsup doItemSetAttribute(item, "level", newlevel) if not rarecandy then doItemSetAttribute(item, "happy", newhappiness) end local nextexp = leveltable[newlevel + 1] - exp doItemSetAttribute(item, "nextlevelexp", nextexp) doItemSetAttribute(item, "offense", getItemAttribute(item, "offense") + off) doItemSetAttribute(item, "defense", getItemAttribute(item, "defense") + def) doItemSetAttribute(item, "speed", getItemAttribute(item, "speed") + agi) doItemSetAttribute(item, "specialattack", getItemAttribute(item, "specialattack") + spatk) doItemSetAttribute(item, "vitality", getItemAttribute(item, "vitality") + vit) if newlevel > getPlayerLevel(cid) + pokemonMaxLevelAbovePlayer then addEvent(doPlayerSendTextMessage, 30, cid, 18, "Warning: Your "..getPokeballName(item).."'s ["..newlevel.."] level is much higher than yours, so you will not be able to call him to battles.") end if isCreature(cid) and id >= 1 and isBeingUsed(id) then adjustStatus(getCreatureSummons(cid)[1], item, false, true) doPlayerSendTextMessage(cid, 27, "• Level: "..newlevel.." (+"..levelsup..") • Offense: +"..doMathDecimal(off).." • Defense: +"..doMathDecimal(def).." • Spc. Atk: +"..doMathDecimal(spatk).." • Agility: +"..doMathDecimal(agi).." • Vitality: +"..doMathDecimal(vit).."") if happy < minHappyToEvolve then return true end if pokemonsCanEvolveByLevel then local summon = getCreatureSummons(cid)[1] local reqlevel = poevo[getCreatureName(summon)] and poevo[getCreatureName(summon)].level or -1 local level = getItemAttribute(item, "level") local evolution = "none" local name = getCreatureName(summon) if name == "Tyrogue" and level >= 20 then if getOffense(summon) == getDefense(summon) then evolution = "Hitmontop" elseif getOffense(summon) > getDefense(summon) then evolution = "Hitmonlee" else evolution = "Hitmonchan" end elseif name == "Eevee" then if happy >= maxHappyToEvolve then if isDay() then evolution = "Espeon" else evolution = "Umbreon" end end elseif name == "Slowpoke" and level >= 28 then evolution = "Slowbro" elseif name == "Poliwhirl" and level >= 36 then evolution = "Poliwrath" elseif reqlevel > 4 and level >= reqlevel then evolution = poevo[getCreatureName(summon)].evolution elseif reqlevel == 2 and happy >= maxHappyToEvolve then evolution = poevo[getCreatureName(summon)] and poevo[getCreatureName(summon)].evolution or "none" end if evolution ~= "none" then doStartEvolution(summon, evolution, 4) end end end end function adjustStatus(pk, item, health, vite, conditions) if not isCreature(pk) then return true end local bonusoffense = getItemAttribute(item, boffense) or 0 local bonusdefense = getItemAttribute(item, bdefense) or 0 local bonusagility = getItemAttribute(item, bagility) or 0 local bonussattack = getItemAttribute(item, bsattack) or 0 setPlayerStorageValue(pk, 1000, getItemAttribute(item, "level")) setPlayerStorageValue(pk, 1001, getItemAttribute(item, "offense") + bonusoffense) setPlayerStorageValue(pk, 1002, getItemAttribute(item, "defense") + bonusdefense) setPlayerStorageValue(pk, 1003, getItemAttribute(item, "speed") + bonusagility) setPlayerStorageValue(pk, 1005, getItemAttribute(item, "specialattack") + bonussattack) local gender = getItemAttribute(item, "gender") and getItemAttribute(item, "gender") or 0 doCreatureSetSkullType(pk, gender) if vite == true then local pct = getCreatureHealth(pk) / getCreatureMaxHealth(pk) local vit = getItemAttribute(item, "vitality") - getPlayerStorageValue(pk, 1004) setCreatureMaxHealth(pk, getCreatureMaxHealth(pk) + ( vit * HPperVIT )) doCreatureAddHealth(pk, pct * vit * HPperVIT) end setPlayerStorageValue(pk, 1004, getItemAttribute(item, "vitality")) doRegainSpeed(pk) local nick = getItemAttribute(item, "poke") if getItemAttribute(item, "nick") then nick = getItemAttribute(item, "nick") end setPlayerStorageValue(pk, 1007, nick) local boostlevel = getItemAttribute(item, "boost") or 0 local boostshow = hideBoost and "]" or " + "..boostlevel.."]" local lvlstr = "" if showBoostSeparated then boostshow = hideBoost and "]" or "] [+"..boostlevel.."]" end if hideSummonsLevel then if not hideBoost then nick = nick.." [+"..boostlevel.."]" end else nick = nick.." ["..getItemAttribute(item, "level")..""..boostshow.."" end doCreatureSetNick(pk, nick) if not getItemAttribute(item, "happy") then doItemSetAttribute(item, "happy", 120) end if not getItemAttribute(item, "hunger") then doItemSetAttribute(item, "hunger", 5) end local happy = getItemAttribute(item, "happy") if happy < 0 then happy = 0 end setPlayerStorageValue(pk, 1008, happy) local hunger = getItemAttribute(item, "hunger") setPlayerStorageValue(pk, 1009, hunger) if health == true then local mh = getCreatureMaxHealth(pk) + HPperVIT * getVitality(pk) local rd = 1 - (tonumber(getItemAttribute(item, "hp"))) setCreatureMaxHealth(pk, mh) doCreatureAddHealth(pk, getCreatureMaxHealth(pk)) doCreatureAddHealth(pk, -(getCreatureMaxHealth(pk) * rd)) end if isSummon(pk) and conditions then local burn = getItemAttribute(item, "burn") if burn and burn >= 0 then addEvent(doAdvancedBurn, 5000, pk, pk, getItemAttribute(item, "burndmg"), burn - 1) end local poison = getItemAttribute(item, "poison") if poison and poison >= 0 then addEvent(doAdvancedPoison, 2500, pk, pk, getItemAttribute(item, "poisondmg"), poison - 1) end if getItemAttribute(item, "confuse") and getItemAttribute(item, "confuse") >= 1 then addEvent(doAdvancedConfuse, 1200, pk, getItemAttribute(item, "confuse"), getPlayerStorageValue(pk, 3891)) end if getItemAttribute(item, "blind") and getItemAttribute(item, "blind") >= 1 then addEvent(doBlind, 300, pk, getItemAttribute(item, "blind"), getItemAttribute(item, "blindef")) end if getItemAttribute(item, "sleep") and getItemAttribute(item, "sleep") >= 1 then doSleep(pk, getItemAttribute(item, "sleep")) end end return true end function setWildPokemonLevel(cid, optionalLevel, optionalStatus, optionalNick, optionalExtraExp) if not isCreature(cid) then return true end local levelRange = 0 local off = 0 local def = 0 local agi = 0 local spatk = 0 local vit = 0 local this = getCreatureName(cid) local ee = 1 if optionalExtraExp then ee = optionalExtraExp end if optionalLevel and tonumber(optionalLevel) >= 1 then if optionalLevel <= 100 then levelRange = optionalLevel else levelRange = 100 end elseif getCreatureOutfit(cid).lookHead and getCreatureOutfit(cid).lookBody and getCreatureOutfit(cid).lookHead <= getCreatureOutfit(cid).lookBody then levelRange = math.random(getCreatureOutfit(cid).lookHead, getCreatureOutfit(cid).lookBody) else levelRange = math.random(20, 30) end local status = getPokemonStatus(this) if status then off = status.off def = status.def agi = status.agi vit = status.vit spatk = status.spatk end setPlayerStorageValue(cid, 1000, levelRange) if optionalStatus and optionalStatus.off then setPlayerStorageValue(cid, 1001, optionalStatus.offense) setPlayerStorageValue(cid, 1002, optionalStatus.defense) setPlayerStorageValue(cid, 1003, optionalStatus.agility) setPlayerStorageValue(cid, 1004, optionalStatus.vitality) setPlayerStorageValue(cid, 1005, optionalStatus.specialattack) setPlayerStorageValue(cid, 1011, optionalStatus.offense) setPlayerStorageValue(cid, 1012, optionalStatus.defense) setPlayerStorageValue(cid, 1013, optionalStatus.agility) setPlayerStorageValue(cid, 1014, optionalStatus.vitality) setPlayerStorageValue(cid, 1015, optionalStatus.specialattack) else setPlayerStorageValue(cid, 1001, 5 + math.random(off * levelRange * 0.9, off * levelRange * 1.8)) setPlayerStorageValue(cid, 1002, 5 + math.random(def * levelRange * 0.9, def * levelRange * 1.8)) setPlayerStorageValue(cid, 1003, math.random(agi * levelRange * 0.9, agi * levelRange * 1.8)) setPlayerStorageValue(cid, 1004, math.random(vit * levelRange * 0.9, vit * levelRange * 1.8)) setPlayerStorageValue(cid, 1005, 5 + math.random(spatk * levelRange * 0.9, spatk * levelRange * 1.8)) setPlayerStorageValue(cid, 1011, getPlayerStorageValue(cid, 1001)) setPlayerStorageValue(cid, 1012, getPlayerStorageValue(cid, 1002)) setPlayerStorageValue(cid, 1013, getPlayerStorageValue(cid, 1003)) setPlayerStorageValue(cid, 1014, getPlayerStorageValue(cid, 1004)) setPlayerStorageValue(cid, 1015, getPlayerStorageValue(cid, 1005)) end doRegainSpeed(cid) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid) + getPlayerStorageValue(cid, 1004) * HPperVIT * vitReductionForWild) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) if pokes[getCreatureName(cid)].exp then --getMonsterInfo(getCreatureName(cid)).experience local exp = (50 + pokes[getCreatureName(cid)].exp) * baseExpRate + pokes[getCreatureName(cid)].vitality * levelRange * pokemonExpPerLevelRate setPlayerStorageValue(cid, 1006, exp * generalExpRate * ee) end local wildshow = wildBeforeNames and "Wild " or "" if optionalNick then if hideWildsLevel then doCreatureSetNick(cid, optionalNick) else doCreatureSetNick(cid, optionalNick.." ["..getWildPokemonLevel(cid).."]") end else if hideWildsLevel then doCreatureSetNick(cid, ""..wildshow..""..getCreatureName(cid).."") else doCreatureSetNick(cid, ""..wildshow..""..getCreatureName(cid).." ["..getWildPokemonLevel(cid).."]") end end end function getOffense(cid) if not isCreature(cid) then return 0 end if getPlayerStorageValue(cid, 3894) >= 1 then return tonumber(getPlayerStorageValue(cid, 1001)) / 2 end return tonumber(getPlayerStorageValue(cid, 1001)) end function getDefense(cid) if not isCreature(cid) then return 0 end if getPlayerStorageValue(cid, 3894) >= 1 then return tonumber(getPlayerStorageValue(cid, 1002)) / 2 end return tonumber(getPlayerStorageValue(cid, 1002)) end function getSpeed(cid) if not isCreature(cid) then return 0 end return tonumber(getPlayerStorageValue(cid, 1003)) end function getVitality(cid) if not isCreature(cid) then return 0 end return tonumber(getPlayerStorageValue(cid, 1004)) end function getSpecialAttack(cid) if not isCreature(cid) then return 0 end return tonumber(getPlayerStorageValue(cid, 1005)) end function getHappiness(cid) if not isCreature(cid) then return 0 end return tonumber(getPlayerStorageValue(cid, 1008)) end function getSpecialDefense(cid) if not isCreature(cid) then return 0 end return getSpecialAttack(cid) * 0.85 + getDefense(cid) * 0.2 end function getWildPokemonExp(cid) return getPlayerStorageValue(cid, 1006) end function getWildPokemonLevel(cid) return getPlayerStorageValue(cid, 1000) end function getLevel(cid) if isSummon(cid) then return getItemAttribute(getPlayerSlotItem(getCreatureMaster(cid), 8).uid, "level") end return getPlayerStorageValue(cid, 1000) end function getPokeName(cid) if not isSummon(cid) then return getCreatureName(cid) end if getCreatureName(cid) == "Evolution" then return getPlayerStorageValue(cid, 1007) end local item = getPlayerSlotItem(getCreatureMaster(cid), 8) if getItemAttribute(item.uid, "nick") then return getItemAttribute(item.uid, "nick") end return getCreatureName(cid) end function getPokeballName(item, truename) if not truename and getItemAttribute(item, "nick") then return getItemAttribute(item, "nick") end return getItemAttribute(item, "poke") end function getPokemonName(cid) return getCreatureName(cid) end function getPokemonLevel(cid) if not isCreature(cid) then return 0 end return getPlayerStorageValue(cid, 1000) end function getPokemonGender(cid) return getCreatureSkullType(cid) end local shinys = { "Bulbasaur", "Ivysaur", "Venusaur", "Charmander", "Charmeleon", "Charizard", "Squirtle", "Wartortle", "Blastoise", "Caterpie", "Metapod", "Butterfree", "Weedle", "Kakuna", "Beedrill", "Pidgey", "Pidgeotto", "Pidgeot", "Rattata", "Raticate", "Spearow", "Fearow", "Ekans", "Arbok", "Pikachu", "Raichu", "Sandshrew", "Sandslash", "Nidoran Female", "Nidorina", "Nidoqueen", "Nidoran Male", "Nidorino", "Nidoking", "Clefairy", "Clefable", "Vulpix", "Ninetales", "Jigglytuff", "Wigglytuff", "Zubat", "Golbat", "Odish", "Gloom", "Vileplume", "Paras", "Parasect", "Venonat", "Venomoth", "Diglett", "Dugtrio", "Mewoth", "Persian", "Psyduck", "Golduck", "Mankey", "Primeape", "Growlithe", "Arcanine", "Poliwag", "Poliwhirl", "Poliwrath", "Abra", "Kadabra", "Alakazam", "Machop", "Machoke", "Machamp", "Bellsprout", "Weepinbell", "Victreebel", "Tentacool", "Tentacruel", "Geodude", "Graveler", "Golem", "Ponyta", "Rapidash", "Slowpoke", "Slowbro", "Magnamite", "Magneton", "Farfetch'd", "Doduo", "Dodrio", "Seel", "Dewgong", "Grimer", "Muk", "Shellder", "Cloyster", "Gastly", "Haunter", "Gengar", "Onix", "Drowzee", "Hypno", "Krabby", "Kingler", "Voltorb", "Electrode", "Exeggcute", "Exeggutor", "Cubone", "Marowak", "Hitmonlee", "Hitmonchan", "Lickitung", "Koffing", "Weezing", "Rhyhorn", "Rhydon", "Chansey", "Tangela", "Kangaskhan", "Horsea", "Seadra", "Goldeen", "Seaking", "Staryu", "Starmie", "Mr. Mime", "Scyther", "Jynx", "Electabuzz", "Magmar", "Pinsir", "Tauros", "Magikarp", "Gyarados", "Lapras", "Ditto", "Eevee", "Vaporeon", "Jolteon", "Flareon", "Porygon", "Omanyte", "Omastar", "Kabuto", "Kabutops", "Snorlax", "Porygo Z", "Dragonair", "Dratini", "Absol", "Altaria", "Baltoy", "Claydol", "Buneary", "Beldum", "Metang", "Metagross", "Camerupt", "Carnivine", "Carvanha", "Sharpedo", "Croagunk", "Toxicroak", "Buizel", "Floatzel", "Gabite", "Gible", "Gliscor", "Honchkrow", "Luxray", "Mamoswine", "Pachirisu", "Plusle", "Minun", "Probopass", "Purugly", "Froslass", "Glalie", "Snorunt", "Lunatone", "Solrock", "Staraptor", "Tropius", "Yanmega", "Zangoose", "Rhyperior", "Gastrodon", "Typhlosion", "Quilava", "Cyndaquil", "Chikorita", "Meganium", "Bayleef", "Totodile", "Croconaw", "Feraligatr" } local raros = {"Articuno", "Zapdos", "Moltreas", "Mew", "Mewtwo", "Dragonite", "Aerodactyl"} local function doPokemonRegisterLevel(cid) if not isCreature(cid) then return true end if getWildPokemonLevel(cid) == -1 then setWildPokemonLevel(cid) end end local function doSetRandomGender(cid) if not isCreature(cid) then return true end local gender = 0 local name = getCreatureName(cid) if not newpokedex[name] then return true end local rate = newpokedex[name].gender if rate == 0 then gender = 3 elseif rate == 1000 then gender = 4 elseif rate == -1 then gender = 0 elseif math.random(1, 1000) <= rate then gender = 4 else gender = 3 end doCreatureSetSkullType(cid, gender) end local function doShiny(cid) if isCreature(cid) then if isSummon(cid) then return true end if getPlayerStorageValue(cid, 74469) >= 1 then return true end if isInArray(shinys, getCreatureName(cid)) then transform = math.random(1, 100) --10% chance elseif isInArray(raros, getCreatureName(cid)) then transform = math.random(1, 1000) --100% chance elseif not isInArray(raros, getCreatureName(cid)) and not isInArray(shinys, getCreatureName(cid)) then return true end if transform == 1 then doSendMagicEffect(getThingPos(cid), 18) local shi = doCreateMonster("Shiny ".. getCreatureName(cid) .."", getThingPos(cid)) setPlayerStorageValue(shi, 74469, 1) setPlayerStorageValue(cid, 74469, 1) doRemoveCreature(cid) else setPlayerStorageValue(cid, 74469, 1) end else return true end end function onSpawn(cid) registerCreatureEvent(cid, "GeneralConfiguration") registerCreatureEvent(cid, "DirectionSystem") registerCreatureEvent(cid, "CastSystem") if isSummon(cid) then registerCreatureEvent(cid, "SummonDeath") return true end registerCreatureEvent(cid, "Experience") addEvent(doPokemonRegisterLevel, 5, cid) addEvent(doSetRandomGender, 5, cid) addEvent(doShiny, 10, cid) return true end
  16. [19/01/2013 10:44:50] [Error - CreatureScript Interface] [19/01/2013 10:44:50] In a timer event called from: [19/01/2013 10:44:50] data/creaturescripts/scripts/spawn.lua:onSpawn [19/01/2013 10:44:50] Description: [19/01/2013 10:44:50] data/lib/level system.lua:590: attempt to index field '?' (a nil value) [19/01/2013 10:44:50] stack traceback: [19/01/2013 10:44:50] data/lib/level system.lua:590: in function 'setWildPokemonLevel' [19/01/2013 10:44:50] data/creaturescripts/scripts/spawn.lua:22: in function <data/creaturescripts/scripts/spawn.lua:19> Olá pessoal, to começando um otserver de pokemon agora, e consegui um ot muito bom mesmo.Eu até sei um pouco de programação, mas como é pouco to precisando da ajuda de voces para intender esse erro que dá ao abrir o ot. eu consigo entender o local que ta dando erro, mas como arruma-lo, ou melhor entender o que esta acontencendo... seria estar dando erro em alguma função no arquivo system.lua na função setWildPokemonLevel o que seria aquele numero que aparece no texto acima ( 590) ou (22) ou (19)? Bom, agradeço desde ja!
  17. seria possivel ensinar isso na linguagem de um leigo, eu tenho linux mas nao tenho nem ideia de como colocar esses codigos, e gostaria de aprender.
  • advertisement_alt
  • advertisement_alt
  • advertisement_alt

Informação Importante

Confirmação de Termo