Ir para conteúdo

beddy

Visconde
  • Total de itens

    355
  • Registro em

  • Última visita

  • Dias Ganhos

    6

Tudo que beddy postou

  1. Bem , por muito tempo joguei ragnarok.. e o seguinte.. existe um meio de fazer um CONTROL PAINEL para TIBIA? Isso nao seria uma grande evolução? Por exemplo, consegui colocar o Neoncube do ragnarok, para funcionar com tibia, como um patch, agora estava querendo um control painel... http://cerescp.sourceforge.net/ Nao conheco nada de php e talz, por isso nao tento modificar para tibia.. Mas ai vai minha duvida e minha sugestão
  2. Sim, e acho que não é apenas o smartbox que anda fazendo isto. Caotic, ja vai mais avisos para voce.. Desculpe-me pelo flood.
  3. beddy

    ot sem comandos

    Teria que dar até acess 5, entao é bug do ot, melhor baixar outro... Baixa outro 9.1 com um distro confiavel, tipo forgotten e talz, e joga o mapa neste novo 9.1 sem bugs..
  4. beddy

    ot sem comandos

    Voce mudou o acesso do GOD por acaso? Voce mudou o acesso dos comandos na pasta talkactions?
  5. Muito obrigado ONESHOT, e obrigado por ter organizado o script. Tem uma fan bar nao? KKKKK Valeu, quando der pra dar rep, eu te dou
  6. Tentei colocar, mas nao consegui, tem como ajudar onde eu coloco?
  7. Alguem, de alma boa, como a minha, HAHAHAH Poderia ajudar aqui? local function Sender(Player) doSendAnimatedText(getPlayerPosition(Player.cid), getPlayerStorageValue(Player.cid, 85214), math.random(0, 256)) if getPlayerStorageValue(Player.cid, 85214) ~= 0 then doPlayerSendTextMessage(Player.cid, MESSAGE_INFO_DESCR, "Teletransporte em " .. getPlayerStorageValue(Player.cid, 85214)) elseif getPlayerStorageValue(Player.cid, 85214) == 0 then doPlayerSendTextMessage(Player.cid, MESSAGE_INFO_DESCR, "Teletransportado!") end if getPlayerStorageValue(Player.cid, 85214) == 0 then doTeleportThing(Player.cid, {x = 160, y = 50, z = 7}) doSendMagicEffect(getPlayerPosition(Player.cid), 1000) end setPlayerStorageValue(Player.cid, 85214, getPlayerStorageValue(Player.cid, 85214) - 1) return true end function onUse(cid, item, fromPosition, itemEx, toPosition) if item.itemid == 10719 then setPlayerStorageValue(cid, 85214, 3) addEvent(Sender, 1000, {cid = cid}) addEvent(Sender, 2000, {cid = cid}) addEvent(Sender, 3000, {cid = cid}) addEvent(Sender, 4000, {cid = cid}) end return true end Como eu coloco para dar sendcancel se o player estiver com battle? Tem como mostrar o script como ficaria e me explicar?! Obrigado!
  8. Nao impoe não, basta voce usar um UID que nao existe... Entendeu? faz quest com UIDs tpw, 8501 ; 8502, 8503 e getstorage 8501, 8502, 8503 talvez seja porque ja está sendo utilizado, este uid... Seu sistema de quest? voce criou um sistema de quest?!
  9. beddy

    [Dúvida] Runas/pot

    Pow, esse atlantida é mais bugado que tudo hein? Faz o seguinte, pega um forgotten server, da versao que voce usa esse atlantida, copia e cola as spells mano.. Nao da pra eu te passar todas as spells por aqui. É simples, download o forgotten, faz um backup da sua pasta spells, pega a do forgotten e seja feliz.
  10. beddy

    Progamaçao De Efeitos

    Existe um tutorial , vou te passar por ser uma pessoa do bem! kkkkkkk http://www.xtibia.com/forum/topic/137748-tutorialadicionando-efeitos/ Aproveite, lá explica direitinho
  11. no first items, voce é só colocar isso: firstItems[0] = { 2173, 2530, 2376, 1961, 2462 } [0] - é a id da vocation. Nao entendi a primeira parte... Voce qer qe os jogadores nascam com vocation 0? - se for isso é facil, só colocar no config.lua playerchoosevoc = false Voce qer que os jogadores que ja jogam o ot, voltem para vocation 0? - Ja que eu nao sei disso.. eu te digo um caminho alternativo - Pega o script de MassTeleport ( onde teleporta todos os players para um local ) - Faz um local, onde a unica saida, é clicar em um bau, que te deixará vocation 0, e te teletransportará ou - Faz um local, onde a unica saida, é passar em cima de um SQM com um aid, para deixar com vocation 0, e logo a frente um portal... Qualquer coisa falae!
  12. Ignore o Caotic Na verdade isso não tem nada a ver com vocations e creaturescript.. Isso pode ser o Distro. Este bug é muito comum, muitas vezes o ot não suporta um X de skill no char, dai entao quando ele nao suporta, ele "quebra" o skill dai o skill nao tem a eficiencia correta.. Voce vai ter que tentar fazer alguma coisa, tipo, se voce ver que esses skills só bugam no 150+, ai vai de sua escolha... Antigamente eu tinha um ot, que quando uma pessoa pegava skill 150+, todo hit dava 1 skill... entao tinha nego com skill 900 > porem bugados. Que que eu fiz? Diminui a rate de skill. xD
  13. Você esta querendo então é uma quest de itens randomicos?
  14. actions\scripts\changegold.lua local coins = { [iTEM_GOLD_COIN] = { to = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_YELLOW }, [iTEM_PLATINUM_COIN] = { from = ITEM_GOLD_COIN, to = ITEM_CRYSTAL_COIN, effect = TEXTCOLOR_LIGHTBLUE }, [iTEM_CRYSTAL_COIN] = { from = ITEM_PLATINUM_COIN, effect = TEXTCOLOR_TEAL } } function onUse(cid, item, fromPosition, itemEx, toPosition) if(getPlayerFlagValue(cid, PLAYERFLAG_CANNOTPICKUPITEM)) then return false end local coin = coins[item.itemid] if(not coin) then return false end if(coin.to ~= nil and item.type == ITEMCOUNT_MAX) then doChangeTypeItem(item.uid, item.type - item.type) doPlayerAddItem(cid, coin.to, 1) doSendAnimatedText(fromPosition, "$$$", coins[coin.to].effect) elseif(coin.from ~= nil) then doChangeTypeItem(item.uid, item.type - 1) doPlayerAddItem(cid, coin.from, ITEMCOUNT_MAX) doSendAnimatedText(fromPosition, "$$$", coins[coin.from].effect) end return true end actions.xml <!-- Change gold --> <action itemid="2148" event="script" value="other/changegold.lua"/> <action itemid="2152" event="script" value="other/changegold.lua"/> <action itemid="2160" event="script" value="other/changegold.lua"/> Se der certo avisa aqui, qualquer coisa, pode mandar PM!
  15. lib\Level System.lua 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 johto = false for i = 303, 402 do if oldpokedex[i][1] == name then johto = true end end if isShinyName(name) then a = "data/monster/pokes/Shiny/"..name..".xml" elseif johto then a = "data/monster/pokes/geracao 2/"..name..".xml" --edited pra melhorar a pasta monster else a = "data/monster/pokes/geracao 1/"..name..".xml" end 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 doCreatureAddHealth(summon, getCreatureMaxHealth(summon)) --edited enxe a vida do poke quando ele evolui doSendFlareEffect(getThingPos(summon)) doSendAnimatedText(getThingPos(summon), "Level up!", 215) adjustPokemonLevel(item.uid, cid, item.itemid) doCreatureAddHealth(summon, getCreatureMaxHealth(summon)) 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 string.find(tostring(nick), "Shiny") then nick = tostring(nick):match("Shiny (.*)") end 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, "sleep") and getItemAttribute(item, "sleep") >= 1 then doSleep(pk, getItemAttribute(item, "sleep")) end if getItemAttribute(item, "missSyst") and getItemAttribute(item, "missSyst") >= 1 then --edited miss system doMissSyst(pk, getItemAttribute(item, "missSyst"), getItemAttribute(item, "missEff"), false, getItemAttribute(item, "missCond")) end cidd = isCreature(getMasterTarget(pk)) and getMasterTarget(pk) or pk if getItemAttribute(item, "Fear") and getItemAttribute(item, "Fear") >= 1 then doAdvancedFear(pk, getItemAttribute(item, "Fear"), false, cidd, "Fear") --edited fear/roar system elseif getItemAttribute(item, "Roar") and getItemAttribute(item, "Roar") >= 1 then doAdvancedFear(pk, getItemAttribute(item, "Roar"), false, cidd, "Roar") end if getItemAttribute(item, "buffSyst") and getItemAttribute(item, "buffSyst") >= 1 then --edited buff system doBuffSyst(pk, getItemAttribute(item, "buffSyst"), getItemAttribute(item, "buffEff"), false, getItemAttribute(item, "buffSkill"), true) end end if getItemAttribute(item, "boost") and getItemAttribute(item, "boost") >= 10 then sendAuraEffect(pk, auraSyst[getItemAttribute(item, "aura")]) --edited aura system end if getPlayerStorageValue(getCreatureMaster(pk), 6598754) >= 1 then setPlayerStorageValue(pk, 6598754, 1) --edited pvp system elseif getPlayerStorageValue(getCreatureMaster(pk), 6598755) >= 1 then setPlayerStorageValue(pk, 6598755, 1) 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) >= 5 then if optionalLevel <= 10 then levelRange = optionalLevel else levelRange = 3 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 creaturescript\wildpoke function onAttack(cid, target) doSendMagicEffect(getThingPos(target), 15) return true end function onThink(cid, interval) doSendAnimatedText(getThingPos(cid), getPlayerStorageValue(cid, 1008).."/"..getPlayerStorageValue(cid, 1009).."", COLOR_GRASS) end function onDirection(cid) if isSleeping(cid) then return false end if getPlayerStorageValue(cid, 446) >= 1 then return false end if isSummon(cid) and isCreature(getCreatureTarget(cid)) then return true end if getCreatureSpeed(cid) == 0 then return false end if isPassive(cid) and getCreatureSpeed(cid) ~= 1 then return false end return true end function onCast(cid, target) if isSleeping(cid) then return false end if getCreatureCondition(cid, CONDITION_INVISIBLE) and not isGhostPokemon(cid) then return false end return true end creaturescript\spawn 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", "Dragonair", "Dratini" } local raros = {"Articuno", "Zapdos", "Moltreas", "Mew", "Mewtwo", "Dragonite", "Aerodactyl"} local function ShinyName(cid) if isCreature(cid) then if string.find(tostring(getCreatureName(cid)), "Shiny") then local newName = tostring(getCreatureName(cid)):match("Shiny (.*)") local newNamed = newName.." ["..getPokemonLevel(cid).."]" doCreatureSetNick(cid, newNamed) end end end 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 isNpcSummon(cid) then return true end if isInArray(shinys, getCreatureName(cid)) then transform = math.random(1, 1000) --0.1% chance elseif isInArray(raros, getCreatureName(cid)) then transform = math.random(1, 1000) --0.1% chance elseif not isInArray(raros, getCreatureName(cid)) and not isInArray(shinys, getCreatureName(cid)) then return true end if transform == 10 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, "Experience") registerCreatureEvent(cid, "GeneralConfiguration") registerCreatureEvent(cid, "DirectionSystem") registerCreatureEvent(cid, "CastSystem") if isSummon(cid) then registerCreatureEvent(cid, "SummonDeath") return true end addEvent(doPokemonRegisterLevel, 5, cid) addEvent(doSetRandomGender, 5, cid) addEvent(doShiny, 10, cid) addEvent(ShinyName, 15, cid) return true end Bem... oque voce terá que fazer.... Primeiramente, terá que tirar coisas de BOOST, SHINY, GENDER, DIRECTIONS , etc E ficar com getPokemonLevel, getWildPokemonLevel, getWildPokemonExp , etc Boa sorte... Se conseguir manda MP
  16. Desculpe me pelo FLOOD, CARA, QUE SE FODA! FALAR .LUA ou LUA não faz a minima diferença! @CAOTIC, ja te vejo floodando muitos posts vou aproveitar e te denunciar, por falar tanta besteira.. http://www.xtibia.com/forum/topic/187090-bug-no-skill-das-vocacoes/ http://www.xtibia.com/forum/topic/186974-pedido-monsters-com-level/
  17. function onUse(cid, item, frompos, item2, topos) if item.uid == 5006 then queststatus = getPlayerStorageValue(cid, 5010) if queststatus == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You have found NOTHING.MOTHERFUCKER.") doPlayerAddItem(cid, 2160, 1) setPlayerStorageValue(cid, 5010, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce ja fez essa quest, vaza.") end elseif item.uid == 5007 then queststatus = getPlayerStorageValue(cid, 5010) if queststatus == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce completou a quest de BLABLABLA.") doPlayerAddItem(cid, 10073, 1) setPlayerStorageValue(cid, 5010, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce ja fez essa quest, vaza.") end elseif item.uid == 5008 then queststatus = getPlayerStorageValue(cid, 5010) if queststatus == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce completou a quest de BLABLABLA.") doPlayerAddItem(cid, 7409, 1) setPlayerStorageValue(cid, 5010, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce ja fez essa quest, vaza.") end elseif item.uid == 5009 then queststatus = getPlayerStorageValue(cid, 5010) if queststatus == -1 then doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce completou a quest de BLABLABLA.") doPlayerAddItem(cid, 10511, 1) setPlayerStorageValue(cid, 5010, 1) else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Voce ja fez essa quest, vaza.") end else return FALSE end return TRUE end No caso, retirei da anihi, basta mudar os UID, e retirar linhas que voce nao quer! ex: a primeira!
  18. Jogo tibia desde os 7.4 Jogo Open Tibia desde o 7.6 Aprendi a mecher em OT 7.8 Na epoca era uma coisa dificilima. Voce abria arquivos .lua, olhava para aquilo, e virava e falava, QUE PORRA é essa! Mas com a vida, larguei OT, e voltei para tibia... Esqueci de tudo que aprendi, agora estou voltando... faz 2 meses que voltei, muita coisa mudou, mas nao me dou ao luxo de apenas ficar copiando, eu realmente vou aprender, como antigamente, na marra... as vezes nem é presiso de tutorial, apenas vontade! Hoje, as pessoas querem IMEDIATISMO, pronto e na hora, essa é a culpa. "Para que ler 500 linhas de um script, para entender o que ele faz, se voce pode perguntar para uma outra pessoa responder?" Peço muitos scripts, porem eu nao fico parado esperando, estou correndo atraz. O foda é, chegar, pedir um script, e não fazer realmente nada e ter o script em sua mão! Voce ganhou o script? PARABENS, AGORA LEIA-O e ENTENDA-O assim voce vai aprender a fazer seus proprios scripts.
  19. Falta inspiração para tentar fazer um mapa? - Cara, as vezes a inspiração falha, mas as vezes ela vem como um flash... as vezes voce está jantando, e de repente, surge uma ideia, pego logo papel e caneta ou lapis, alguma coisa assim, e logo passo minha ideia para o papel, assim voce sempre aproveita estes flashs. O que faz com que nós não tenhamos iniciativa para tentar fazer um mapa? - Bem.. primeiramente, preguisa, depois tempo.. É muita coisa para ser pensada,, a parte mais dificil, é a hunt... pois essa parte, é chata. No entando, a cidade, é a melhor parte.. CONCERTEZA, pois nela voce ve uma coisa evoluindo. Nao é tao simples fazer um mapa.. mapa é um processo! É vagaroso... Se talvez tivesse equipes trabalhando em mapas como antigamente, (EQUIPES SELETAS) , iria ser otimo fazer um mapa. Mas tambem temos que pensar... Muitos presisam trabalhar, estudar, entao o tempo fica curto.. Ex: fasso arquitetura, eu tenho que entregar 2 trabalhos por semana, como que eu fico pensando em mapping? Mas sempre que tenho um tempinho, hahahaha.. voces sabem como é. Quais os motivos da decadência em mapping? - Decadencia vem com tudo.. Vida, preguisa, acomodação... Acomodação é o que mais acarreta esta decadencia, NINGUEM TEM CORAGEM DE INOVAR! Ninguem tem coragem, e alem de tudo, quando voce faz algo, ninguem o reconhece.. é facil mudar os direitos de um map. ¬¬' Não é facil fazer um mapa, e não é qualquer um que faz um mapa. OUTRA COISA! eu uso SimOne ! o melhor que tem, e sempre sera! Valeu, AHAHAHha!
  20. beddy

    [Pedido] E [Dúvida]

    Desculpa por estar "floodando" mas eu tenho que falar... kkkkkkkkk, eu estou curioso para saber qual é o script.. Mostra ai que que tu pediu. Para o ONESHOT ta falando isso, o negoço foi feio!
  21. Seguinte, pesquisei aqui, vi as libs de pokemon. PUTA QUE PARIU!!!! É muita coisa para fazer, as libs, as configurações sao muito extensas, e tem muita coisa a ser retirada Devem ser umas 900 linhas para analizar.. Consegui ir até a metade, maaas, se tu quiser elas eu mando por aqui, se der..
  22. Ainda nao deu, mas ja venho te dar rep, porque tu sempre me ajudou. Intao ja vai um obrigado.. Se nao fosse tu e o jhon992, meu tibia gta nunca teria saido. Valeu ai VODKART!
  23. Que eu me lembre, se voce pegou o script aqui no forum, lá tem uma imagem de explicação.. vo achar pra tu, calmae Ja sei, essa mple position, pode ser aonde o teleporte para o CTF ira aparecer! me diz aonde esta essa local que eu te falo pra que que serve... SkyDangerous retirou o mod de ctf, ;/
  24. VODKART... ta certo?! local reward = 2493 -- id do item que vai receber function onUse(cid, item, fromPosition, itemEx, toPosition) if getPlayerStorageValue(cid, 88001) == -1 then setItemOwner(reward, cid) setPlayerStorageValue(cid, 88001, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Item VIP - recebido') else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, 'Voce ja pegou o item vip.') end return TRUE end ACABEI DE TESTAR E NAO DEU
  25. Consegui para voce... essa script é do jhon992 vai em data/creaturescripts/scripts, duplica um arquivo e nomeia para "vocationtown" sem as aspas e nele cole: local vocationCity{ [1] = idDaCity, -- coloque o id da city para sorcerer no lugar de "idDaCity". [2] = idDaCity, -- coloque o id da city para druid no lugar de "idDaCity". [3] = idDaCity, -- coloque o id da city para paladin no lugar de "idDaCity". [4] = idDaCity -- coloque o id da city para knight no lugar de "idDaCity". } function onLogin(cid) if getPlayerStorageValue(cid, 403241) <= 0 then doPlayerSetTown(cid, getPlayerVocation(cid)) doTeleportThing(cid, getTownTemplePosition(getPlayerVocation(cid))) setPlayerStorageValue(cid, 403241, 1) end return true end agora em creaturescripts.xml cole a tag: <event type="login" name="VocationTown" script="vocationtown.lua"/> [4] = idDaCity [4] - seria ID DA VOCATION idDaCity - voce consegue no map editor, em towns
  • Quem Está Navegando   0 membros estão online

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