Ir para conteúdo

OWeen

Membro
  • Registro em

  • Última visita

Tudo que OWeen postou

  1. OWeen postou uma resposta no tópico em Anuncie seu OTServer
    Bom Galera vou soltar aqui um beta de um Projeto meu de muito tempo na qual o intuito é a diversão, jogo totalmente free pra quem já conhece é uma mega mistura do MasterX com o DarkXPoke, com varias mudanças que eu mesmo fiz, vários sistemas e adaptações... Systemas Ditto System 100% (Memory System) Smearlge System 100% (1 ao 8 ) Brotherhood 100% (Com quest da BH) Clones 100% Revive com Intervalo 100% (Revive com Delay de 5 Minutos) Addon System 20% (ainda faltam algumas configurações) Survival Arena 100% Daillys 100% (Catch, Kill, Itens) Clã System Com Dungeon 100% (Reformulado Totalmente, LVL 80+) Shiny Charm 100% Dungeon Por Keys 60% Held Itens 100% (De T1 a T7, todos modificados) Mega Evoluções 90% (até a 3° Geração, mas ainda faltam alguns) Hunts refeitas com estilo de jogo e mecânica para huntar Bank System Por comandos 100% Market de Player 70% (Ainda falta configurar o Balance certinho) Price System 100% (Itens, Houses, Pokes) Duel System 50% (Ainda tem alguns Bugs - funcionando apenas 1x1) Megas Selvagem 100% (5% de chance de Selvagem Mega Evoluir) Balanceamento Feito com Base e Status da Nitendo Pokemons de Nivel 30+ passam a ter habilidades aprimoradas para Hunt (Quase todos com 3 a 4 Habilidades em Area e 1 Buff/Debuff) Status de Habilidades 100% (Stun, Sleep, Poison, Burn, Fear, Confusion...) Passive System 100% Experience 2x Catch System Com EXP, System de Persistência Particle Aura (Premier Ball e Particle Item) Premier Ball System (PB faz ter aura Particle e uma aura adicional de efeito) Party System 100% (Tem Aumento de XP em Exp Compartilhada) Existem Mais alguns mas não me lembro agora, resumindo a base do game é um beta de um projeto, o intuito e corrigir erros do servidor pra deixa-lo instável. Site: http://177.2.189.157:8080 Sobre Vagas e Staff Como eu disse é um Beta, a aqueles que desejam agregar ao projeto podemos conversar através do Discord O'Ween#7139 De inicio a Staff ficara apenas comigo mesmo, até pra ter uma ideia de como será o desenvolvimento o Game vai ficar On das 08:00AM as 01:00AM (horário que normalmente fico acordado) Alguns Prints CREDITOS: TODOS OS CRIADORES DE DXP E MASTER X
  2. como faço pra ela criar os monstros na area?
  3. se você usa alguma base relacionada ao DarkXPoke, MasterX, Evolution, qualquer derivada do DarkXPoke, ela tem esse problema, e pra resolver tem que ser na source e no StatusChange localizano na pasta Creature Script
  4. Boom o bug é o seguinte, quando o pokemon mega evolui ele altera seus status de attack e defense, não se altera os demais nem mesmo seus tipos Por Exemplo Scptile = Grass Mega Sceptile = Grass / Dragon Charizard = Fire / Flying Mega Charizard Y = Fire / Flying Mega Charizard X = Fire / Dragon não se muda os tipos do mega o sceptile n se torna dragão e o mega zard x tbm n, acontece com os outros tambem, que tem um segundo tipo, basicamente o que acontece é que o pokemon não tem ajuste de status e tipo O Codigo Usado da transformação em mega é o mesmo do DXP, esse codigo fica no "Pokemon Moves" Espero que possam me ajudar, logo postarei uma base que modifiquei e balanceei com muita dedicação! function isMega(cid) if getPlayerStorageValue(cid, storages.isMega) ~= -1 then return true end return false end function doTransformMega(cid) local name = doCorrectString(getCreatureName(cid)) local wildMult = 1.0 local megaID = "" if isSummon(cid) then local master = getCreatureMaster(cid) if getItemAttribute(getPlayerSlotItem(master, 8).uid, "megaID") and getItemAttribute(getPlayerSlotItem(master, 8).uid, "megaID") ~= "" then megaID = getItemAttribute(getPlayerSlotItem(master, 8).uid, "megaID") end else megaID = getPlayerStorageValue(cid, storages.isMegaID) end local megaName = "Mega " .. name .. (megaID ~= "" and " " .. megaID or "") if megasConf[megaName] then setPlayerStorageValue(cid, storages.isMega, megaName) doRegainSpeed(cid) --alterado! local pos = getThingPos(cid) pos.x = pos.x + 1 pos.y = pos.y +1 doSendMagicEffect(pos, 287) if isSummon(cid) then local master = getCreatureMaster(cid) doUpdateMoves(master) wildMult = 0.5 setPlayerStorageValue(cid, storages.isMegaID, megaID) end setPlayerStorageValue(cid, 1001, megasConf[megaName].offense * wildMult) setPlayerStorageValue(cid, 1002, megasConf[megaName].defense * wildMult) setPlayerStorageValue(cid, 1003, megasConf[megaName].agility) setPlayerStorageValue(cid, 1005, megasConf[megaName].specialattack * wildMult) if wildMult == 1.8 then local life = megasConf[megaName].wildVity * math.random(4000, 4500) -- 4000, 4500 local lifeNow = getCreatureMaxHealth(cid) - getCreatureHealth(cid) setCreatureMaxHealth(cid, life) -- perfeita formula, os pokemons "ruins" só precisam de ajustes no pokemonStatus, tabela vitality. doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) doCreatureAddHealth(cid, -lifeNow) end if isInArray({"Charizard", "Blaziken", "Ampharos"}, name) then doPantinOutfit(cid, 0, megaName) else doSetCreatureOutfit(cid, {lookType = megasConf[megaName].out}, -1) checkOutfitMega(cid, megaName) end end end function checkChenceToMega(cid) local name, chance = doCorrectString(getCreatureName(cid)), math.random(0.1, 100.9) local megaID = "" if name == "Charizard" then megaID = math.random(1, 100) < 51 and "Y" or "X" end local megaName = "Mega " .. name .. (megaID ~= "" and " " .. megaID or "") if megasConf[megaName] and not isMega(cid) then if megasConf[megaName].wildChance >= chance then setPlayerStorageValue(cid, storages.isMegaID, megaID) doTransformMega(cid) end end end function getMegaID(cid) return getPlayerStorageValue(cid, storages.isMegaID) ~= -1 and getPlayerStorageValue(cid, storages.isMegaID) or "" end function checkOutfitMega(cid, megaName) if not isCreature(cid) or not isMega(cid) then return true end local name = doCorrectString(getCreatureName(cid)) if not megasConf[megaName] then return true end if getCreatureOutfit(cid).lookType ~= megasConf[megaName].out then doSetCreatureOutfit(cid, {lookType = megasConf[megaName].out}, -1) end addEvent(checkOutfitMega, 50, cid) end function doPantinOutfit(cid, times, megaName) if not isCreature(cid) or not isMega(cid) then return true end if getCreatureOutfit(cid).lookType == 1875 or getCreatureOutfit(cid).lookType == 2 then return true end local name = doCorrectString(getCreatureName(cid)) if not megasConf[megaName] then return true end local outfitIndex = 1 if times <= 100 then outfitIndex = 1 elseif times > 100 and times <= 200 then outfitIndex = 2 elseif times > 200 and times <= 300 then outfitIndex = 3 end doSetCreatureOutfit(cid, {lookType = megasConf[megaName].out[outfitIndex]}, -1) times = times + 50 if times > 300 then times = 0 end addEvent(doPantinOutfit, 50, cid, times, megaName) end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
  5. Galera não consigo addicionar um item depois do 20000 quando vou criar ele no jogo aparece a mensagem Couldn't add item: 20001 o item de numero 20000 é criado mas a partir dele nenhum outro cria Eu os criei usando o Item Editor 0.4 com transparência e estendido
  6. Então pra quem quer a porta com 4 eu editei e configurei de novo TÁ NA MÃO! da sim maninho pega o código que editei no comentário anterior e segue o tutorial do Zipter a unica diferença é que você vai trocar o código dele pelo meu
  7. OWeen postou uma resposta no tópico em Suporte OTServer Derivados
    Opaaa eaew.... tem como adaptar essa spell para seguinte função.... Não puxar os mobs.... Não dar outfit.... Causar dano no local onde os misseis são disperçados.... no print da pra ver certinho.... eu quero que o dano va pro quadro onde cai o 2° efeito a "bolinha" são os misseis e o "foguinho" caindo no chão e onde vai dar o dano Nesse print eu estou tentando adaptar mas a spell não está causando dano nenhum Config que estão fuçando
  8. OWeen postou uma resposta no tópico em Suporte OTServer Derivados
    Opa.... e aí.... então quero add novas arvores no Headbutt, mas sem que atrapalhe nas outras.... quero que pegue essas 4 arvoes Id Normal "Id Quebrada" 2707 = "19967" 2706 = "19966" 2705 = "19965' 2704 = "19964" tipo quero que todas essas arvoes deem pra usar o headbutt e que transformem nas mesma sem mudar elas. Agradeço desde já REP+ elseif skill == "headbutt" then --alterado v1.6 local item = getTileItemById(pos, 2707) --id do item arvore normal if not item or item.uid <= 0 then return true end local master = getCreatureMaster(sid) local array = {} local lvl = {25, 50, 80, 100, 130, 150, 200, 1000} --lvls for i = 1, #lvl do if getPlayerLevel(master) <= lvl[i] then array = headbutt[lvl[i]] break end end local rand = array[math.random(#array)] for j = 1, rand[2] do local poke = doCreateMonster(rand[1] , getClosestFreeTile(sid, pos)) end doCreatureSay(sid, "HEADBUTT!", TALKTYPE_MONSTER) doSendMagicEffect(getThingPos(item.uid), EFFECT_DIG) doTransformItem(item.uid, 19967) local function growHead() doTransformItem(getTileItemById(pos, 19967).uid, 2707) end addEvent(growHead, choose(4, 8) * 60 * 1000)
  9. Como assim? minha net não tem limite se é sobre isso O que eu to bugando aqui é como abrir as portas do roteador e do pc porque nos meios que eu lembro que se fazia não funcionam mais
  10. Na real que uso um provedor de net via fibra Eu já fiz isso uma vez com net via rádio... funcionou perfeitamente só que desde que teve roteador aqui em casa nunca mais consegui colocar
  11. Mano, já faz um tempo que venho procurando por tutoriais de como colocar o servidor online.... Eu fiz uma vez a um tempão no meu pc que era WinXP lembro de não usar roteador e funcionava perfeitamente.... Hoje eu uso o Win 10 mas não consigo colocar o servidor online pelo No-Ip Alguém sabe como fazer? Ou se tem um tutorial explicando como que faz? Roteador: D-Link Modelo: DIR-615 Se o tópico estiver na área errada desculpa... mas não tenho ideia de onde coloca-lo
  12. OWeen postou uma resposta no tópico em Suporte Websites
    Meu problema é quase o mesmo.... mas no meu mostra a imagem errada '-'
  13. OWeen postou uma resposta no tópico em Suporte Websites
    Quando vai criar a conta o Captcha que está sendo exibido não é o mesmo que você digita eu fui até a pasta do XAMPP nos arquivos Captcha e lá mostra varias que são exibidas, se eu digitar o que está escrito na ultima a conta é criada..... Então basicamente o erro é ele exibe uma imagem mas a palavra-chave é outra Desde já VLWS!
  14. É possivel converter o aquivo que está no formato SQL para S3DB? Caso seja possivel como converter?
  15. OWeen postou uma resposta no tópico em Suporte Websites
    Erro não capturado: Chamada para a função indefinida mysql_connect () em ? \ xampp \ htdocs \ install \ index.php: 56 Rastreio de pilha: # 0 {main} lançado em ? \ xampp \ htdocs \ install \ index.php na linha 56 Quando vou criar o site pelo Xampp da esse erro alguém sabe o que é? No tutorial que vi no YouTube o cara fez e deu certo, segui todos os passos dele mas o resultado final foi diferente Link do video que vi
  16. Então... Estou com um problema com aquele market que você vai num determinado local, clica num item dai abre uma janela... nessa janela você pode colocar itens por um valor que você escolher pra que outro player compre.... No entanto quando vou colocar o item da o seguinte erro OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such table: market_offers (SELECT "id", "player_id", "amount", "price", "created", "anonymous", "itemtype", "attrs" FROM "market_offers" WHERE "sale" = 1;) Alguém pode me ajudar?
  17. OWeen postou uma resposta no tópico em Suporte OTServer Derivados
    Galera procuro um comando que faz com que um determinado item de um player vire outro por exemplo Tenho uma arma na id 2341 e outra mesma arma na id 2345 ambas com funções diferentes o que eu desejo é que o player possa ficar alternando elas tipo escolher qual delas ele quer usar tem como isso?
  18. Aumenta o 1500 até quando ele travar Acho que no máximo 20000 pega depois de não me engano da erro
  19. Aaaah já vi meu erro Na linha onde tá combat1 troca pra combat setCombatCondition(combat1, condition) setCombatCondition(combat, condition)
  20. local config = { velocidade = 200, -- intervalo entre os giros (quanto menor, mais rapido) hits = 40, -- quantos hits vai dar msg = "Cyclone", -- msg ao soltar a spell key = 13871, -- storage que sera utilizado pro cooldown cooldown = 6, -- tempo em segundos de cooldown entre um uso da spell e outro. effect1 = 22, -- efeito de distancia que vai ficar rodando effect2 = 269, -- efeito no sqm do item effect3 = 37, -- efeito ao castar a spell effect4 = 341 -- efeito ao acertar a roda no player } local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 255) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -150.0, 0, -260.0, 0) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionParam(condition, CONDITION_PARAM_SPEED, -1500) setConditionFormula(condition, -0.2, 0, -0.2, 0) setCombatCondition(combat1, condition) function onTargetCreature(cid, target) doSendMagicEffect(getCreaturePosition(target), config.effect4) end setCombatCallback(combat, 4, "onTargetCreature") local arr = { {1, 1, 1}, {1, 3, 1}, -- area que vai acertar a spell enquanto estiver rodando {1, 1, 1}, } local area = createCombatArea(arr) setCombatArea(combat, area) function initEffect(position) for i = 0, 3 do local pos = {x = position.x, y = position.y, z = position.z} local dir = getPosByDir(pos, i) doSendDistanceShoot(position, dir, config.effect1) end addEvent(doSendMagicEffect, 300, position, config.effect2) return true end function middleEffect(cid, param, position, lim, count) n = count or 0 if isCreature(cid) and n < lim then for i = 0, 3 do local pos = {x = position.x, y = position.y, z = position.z} local pos2 = {x = position.x, y = position.y, z = position.z} local dir = getPosByDir(pos, i) local dir2 = getPosByDir(pos2, i + 1 <= 3 and i + 1 or 0) doSendDistanceShoot(dir, dir2, config.effect1) end doCombat(cid, combat, param) addEvent(middleEffect, config.velocidade, cid, param, position, lim, n + 1) end return true end function endEffect(position) for i = 0, 3 do local pos = {x = position.x, y = position.y, z = position.z} local dir = getPosByDir(pos, i) doSendDistanceShoot(dir, position, config.effect1) end local item = getTileItemById(position, 2180) if item.uid > 0 then doRemoveItem(item.uid) end return true end function onCastSpell(cid, var) if getPlayerStorageValue(cid, config.key) - os.time() <= 0 then setPlayerStorageValue(cid, config.key, os.time() + config.cooldown) local position = getCreaturePosition(cid) doCreatureSay(cid, config.msg, 20) local orb = doCreateItem(2180, 1, position) addEvent(endEffect, 8.55 * 1000, position) doSendMagicEffect(position, config.effect3) initEffect(position) addEvent(middleEffect, 200, cid, var, position, config.hits) else doPlayerSendCancel(cid, "You're exhausted.") return false end return true end setConditionParam(condition, CONDITION_PARAM_SPEED, -1500) onde tá -1500 é a Speed que o alvo fica no caso vai zerar por que o maximo de speed é 1500 então ela vai ficar nula deixando o player Imovel... caso o player use spell que da speed ele ira remover parte da paralisia mas ela vai se renovar a cada hit que ele tomar Qualquer coisa só comentar Abraços VLW!
  21. Estou com um problema ao compilar uma source, estou usando o DEV CPP 4.9.9 quando vou compilar os arquivos da source aparece esse erro 351 C:\Users\wende\Downloads\forgottenserver036pl1-master\src\databaseodbc.cpp `res' was not declared in this scope se alguém puder me ajudar agradeço
  22. Está dando o mesmo erro....
  23. OWeen postou uma resposta no tópico em Suporte Bots
    Ja sim No outro PC com o Win10 tá rodando normal é só nesse que não Já baixei de vários sites diferentes mas sempre da A mesma coisa
  24. OWeen postou uma resposta no tópico em Suporte Bots
    Então galera seguinte meu pc win7 não tem antivírus nem nada Na real que tem o Windowns Defender mas eu o desabilitei Eu instalo o Elf e em segundos o arquivo é apagado sozinho Alguém sabe o que é? O pc foi formatado recentemente e está limpo apenas com o tíbia nele
  25. OWeen postou uma resposta no tópico em Suporte OTServer Derivados
    .Qual servidor ou website você utiliza como base? DXP Qual o motivo deste tópico? preciso de ajuda com o Miss System Está surgindo algum erro? Se sim coloque-o aqui. Os pokemons tipo Dark estão tomando o efeito do confusion sendo que eles são imunes a golpes do tipo Psychic Você tem o código disponível? Se tiver publique-o aqui: conds = { ["Slow"] = 3890, ["Confusion"] = 3891, ["Burn"] = 3892, ["Poison"] = 3893, ["Fear"] = 3894, ["Stun"] = 3895, ["Paralyze"] = 3896, --alterado v1.6 \/ peguem o script todo! ["Leech"] = 3897, ["Buff1"] = 3898, ["Buff2"] = 3899, ["Buff3"] = 3900, ["Miss"] = 32659, ["Silence"] = 32698, ["Sleep"] = 98271, } injuries2 = { [1] = {n = "slow", m = 3890}, [2] = {n = "confuse", m = 3891}, [3] = {n = "burn", m = 3892}, [4] = {n = "poison", m = 3893}, [5] = {n = "fear", m = 3894}, [6] = {n = "stun", m = 3895}, [7] = {n = "paralyze", m = 3896}, [8] = {n = "leech", m = 3897}, [9] = {n = "Buff1", m = 3898}, [10] = {n = "Buff2", m = 3899}, [11] = {n = "Buff3", m = 3900}, [12] = {n = "miss", m = 32659}, [13] = {n = "silence", m = 32698}, [14] = {n = "sleep", m = 98271}, } Buffs = { [1] = {"Buff1", 3898}, [2] = {"Buff2", 3899}, [3] = {"Buff3", 3900}, } paralizeArea2 = createConditionObject(CONDITION_PARALYZE) setConditionParam(paralizeArea2, CONDITION_PARAM_TICKS, 50000) setConditionFormula(paralizeArea2, -0.63, -0.63, -0.63, -0.63) local roardirections = { [NORTH] = {SOUTH}, [SOUTH] = {NORTH}, [WEST] = {EAST}, --edited sistema de roar [EAST] = {WEST}} function doSendSleepEffect(cid) if not isCreature(cid) or not isSleeping(cid) then return true end doSendMagicEffect(getThingPos(cid), 32) addEvent(doSendSleepEffect, 1500, cid) end local outFurys = { ["Shiny Charizard"] = {outFury = 1073}, ["Elder Charizard"] = {outFury = 1073}, ["Shiny Blastoise"] = {outFury = 1074}, ["Shiny Typhlosion"] = {outFury = 2327}, ["Typhlosion"] = {outFury = 675}, ["Ancient Blastoise"] = {outFury = 1074}, ["Mega Charizard Y"] = {outFury = 2175}, ["Mega Charizard X"] = {outFury = 1856}, ["Kingdra"] = {outFury = 2317}, ["Salamence"] = {outFury = 1827}, ["Mega Sceptile"] = {outFury = 2318}, ["Ditto"] = {outFury = null}, } local outImune = { ["Camouflage"] = 2087, ["Acid Armor"] = 1453, ["Iron Defense"] = 1401, ["Defense"] = 2137, ["Minimize"] = 1455, ["Future Sight"] = 1446, ["Psychic Sight"] = 1536, ["Heal Bell"] = 946, ["Sky Fall"] = 1849, } local outShock = { ["Electabuzz"] = {outShock = 1462}, ["Shiny Electabuzz"] = {outShock = 1460}, ["Electivire"] = {outShock = 1814}, ["Ditto"] = {outShock = null}, } local function transBack(cid) if isCreature(cid) then if getPlayerStorageValue(cid, 974848) >= 1 then setPlayerStorageValue(cid, 974848, 0) doRemoveCondition(cid, CONDITION_OUTFIT) end end end function doCondition2(ret) -- function doMiss2(cid, cd, eff, check, spell) local stg = conds["Miss"] if not isCreature(cid) then return true end --is creature? if getPlayerStorageValue(cid, 21100) >= 1 and getPlayerStorageValue(cid, stg) <= -1 then return true end --alterado v1.6 reflect if not canDoMiss(cid, spell) then return true end if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "miss", a) doItemSetAttribute(item.uid, "missEff", eff) doItemSetAttribute(item.uid, "missSpell", spell) end if a <= -1 then setPlayerStorageValue(cid, stg, -1) return true end doSendMagicEffect(getThingPos(cid), eff) addEvent(doMiss2, 1000, cid, -1, eff, a, spell) end function doSilence2(cid, cd, eff, check) local stg = conds["Silence"] if not isCreature(cid) then return true end --is creature? if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "silence", a) doItemSetAttribute(item.uid, "silenceEff", eff) end if a <= -1 then setPlayerStorageValue(cid, stg, -1) return true end doSendMagicEffect(getThingPos(cid), eff) addEvent(doSilence2, 1000, cid, -1, eff, a) end function doSlow2(cid, cd, eff, check, first) local stg = conds["Slow"] if not isCreature(cid) then return true end --is creature? if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "slow", a) doItemSetAttribute(item.uid, "slowEff", eff) end if a <= -1 then doRemoveCondition(cid, CONDITION_PARALYZE) if not isSleeping(cid) and not isParalyze(cid) then addEvent(doRegainSpeed, 50, cid) --alterado end setPlayerStorageValue(cid, stg, -1) return true end if first then doAddCondition(cid, paralizeArea2) end doSendMagicEffect(getThingPos(cid), eff) addEvent(doSlow2, 1000, cid, -1, eff, a) end function doConfusion2(cid, cd, check) local stg = conds["Confusion"] if not isCreature(cid) then return true end --is creature? if getPlayerStorageValue(cid, 212123) >= 1 and getPlayerStorageValue(cid, stg) <= -1 then return true end --alterado v1.6 reflect if not canDoMiss(cid, spell) then return true end if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if not canDoMiss(cid, spell) then return true end if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "confuse", a) end if a <= -1 then if getCreatureCondition(cid, CONDITION_PARALYZE) == true then end if not isSleeping(cid) and not isParalyze(cid) then end setPlayerStorageValue(cid, stg, -1) return true end if math.random(1, 6) >= 4 then doSendMagicEffect(getThingPos(cid), 31) end local isTarget = isSummon(cid) and getCreatureTarget(getCreatureMaster(cid)) or getCreatureTarget(cid) if isCreature(isTarget) and not isSleeping(cid) and not isParalyze(cid) and getPlayerStorageValue(cid, 654878) <= 0 then --alterado v1.6 if not canDoMiss(cid, spell) then return true end doAddCondition(cid, confusioncondition) end local pos = getThingPos(cid) addEvent(doSendMagicEffect, math.random(0, 450), pos, 31) addEvent(doConfusion2, 1000, cid, -1, a) end function doBurn2(cid, cd, check, damage) local stg = conds["Burn"] if not isCreature(cid) then return true end --is creature? if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "burn", a) doItemSetAttribute(item.uid, "burndmg", damage) end if a <= -1 then setPlayerStorageValue(cid, stg, -1) return true end local dano = getCreatureHealth(cid)-damage <= 0 and getCreatureHealth(cid)-1 or damage if isSummon(ret.attacker) then -- morrer para veneno local player = getCreatureMaster(ret.attacker) addPlayerDano(ret.im, player, dano) end doCreatureAddHealth(cid, -dano, ret.eff, ret.color and ret.color or COLOR_BURN) addEvent(doBurn2, 1500, cid, -1, a, damage) end function doPoison2(cid, cd, check, damage) local stg = conds["Poison"] if not isCreature(cid) then return true end --is creature? ---------- if isSummon(cid) or ehMonstro(cid) and pokes[getCreatureName(cid)] then --alterado v1.6 local type = pokes[getCreatureName(cid)].type local type2 = pokes[getCreatureName(cid)].type2 if isInArray({"poison", "steel"}, type) or isInArray({"poison", "steel"}, type2) then return true end end --------- if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "poison", a) doItemSetAttribute(item.uid, "poisondmg", damage) end if a <= -1 or getCreatureHealth(cid) == 1 then setPlayerStorageValue(cid, stg, -1) return true end local dano = getCreatureHealth(cid)-damage <= 0 and getCreatureHealth(cid)-1 or damage if isSummon(ret.attacker) then -- morrer para veneno local player = getCreatureMaster(ret.attacker) addPlayerDano(ret.im, player, dano) end doCreatureAddHealth(cid, -dano, 8, COLOR_GRASS) addEvent(doPoison2, 1500, cid, -1, a, damage) end function doFear2(cid, cd, check, skill) local stg = conds["Fear"] if not isCreature(cid) then return true end --is creature? if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "fear", a) doItemSetAttribute(item.uid, "fearSkill", skill) end if a <= -1 then if getCreatureCondition(cid, CONDITION_PARALYZE) == true then doRemoveCondition(cid, CONDITION_PARALYZE) addEvent(doAddCondition, 10, cid, paralizeArea2) end if not isSleeping(cid) and not isParalyze(cid) then doRegainSpeed(cid) --alterado end setPlayerStorageValue(cid, stg, -1) setCreatureTargetDistance(cid, getCreatureDefaultTargetDistance(cid)) return true end if skill == "Roar" then eff = 244 else --edited Roar eff = 139 end if math.random(1, 6) >= 4 then doSendMagicEffect(getThingPos(cid), eff) end local isTarget = isSummon(cid) and getCreatureTarget(getCreatureMaster(cid)) or getCreatureTarget(cid) if isCreature(isTarget) and not isSleeping(cid) and not isParalyze(cid) and getPlayerStorageValue(cid, 654878) <= 0 then --alterado v1.6 local dir = getCreatureDirectionToTarget(cid, isTarget) setCreatureTargetDistance(cid, 6) end local pos = getThingPos(cid) addEvent(doSendMagicEffect, math.random(0, 450), pos, eff) addEvent(doFear2, 400, cid, -1, a, skill) end function doStun2(cid, cd, eff, check, spell) local stg = conds["Stun"] if not isCreature(cid) then return true end --is creature? if not canDoMiss(cid, spell) then return true end if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "stun", a) doItemSetAttribute(item.uid, "stunEff", eff) doItemSetAttribute(item.uid, "stunSpell", spell) end if a <= -1 then doRemoveCondition(cid, CONDITION_PARALYZE) if not isSleeping(cid) and not isParalyze(cid) then addEvent(doRegainSpeed, 50, cid) --alterado end setPlayerStorageValue(cid, stg, -1) return true end if getCreatureCondition(cid, CONDITION_PARALYZE) == false then doAddCondition(cid, paralizeArea2) end doSendMagicEffect(getThingPos(cid), eff) addEvent(doStun2, 1000, cid, -1, eff, a, spell) end function doParalyze2(cid, cd, eff, check, first) local stg = conds["Paralyze"] if not isCreature(cid) then return true end --is creature? if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "paralyze", a) doItemSetAttribute(item.uid, "paralyzeEff", eff) end if a <= -1 then if isPlayer(cid) then if not isSleeping(cid) then --alterado mayNotMove(cid, false) end else if getCreatureCondition(cid, CONDITION_PARALYZE) == true then doRemoveCondition(cid, CONDITION_PARALYZE) addEvent(doAddCondition, 10, cid, paralizeArea2) end if not isSleeping(cid) then doRegainSpeed(cid) --alterado end end setPlayerStorageValue(cid, stg, -1) return true end if isPlayer(cid) then mayNotMove(cid, true) else --alterado v1.6 doChangeSpeed(cid, -2000) end doSendMagicEffect(getThingPos(cid), eff) addEvent(doParalyze2, 1000, cid, -1, eff, a, false) end function doSleep2(cid, cd, check, first) local stg = conds["Sleep"] if not isCreature(cid) then return true end --is creature? if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not isSleeping(cid) then addEvent(doSendSleepEffect, 500, cid) end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "sleep", a) end if a <= -1 then if isPlayer(cid) then if not isParalyze(cid) then mayNotMove(cid, false) --alterado end else if getCreatureCondition(cid, CONDITION_PARALYZE) == true then doRemoveCondition(cid, CONDITION_PARALYZE) addEvent(doAddCondition, 10, cid, paralizeArea2) end if not isParalyze(cid) then doRegainSpeed(cid) --alterado end end setPlayerStorageValue(cid, stg, -1) return true end if first then if getCreatureName(cid) == "Ursaring" and getCreatureCondition(cid, CONDITION_OUTFIT) == true then elseif not isPlayer(cid) then if isInArray({604, 605, 1015, 1016, 1183, 1184}, getCreatureOutfit(cid).lookType) then Info = 0 --alterado v1.6 else Info = getMonsterInfo(getCreatureName(cid)).lookCorpse end local look = getCreatureOutfit(cid) --------- local dittoStg = getPlayerStorageValue(cid, 1010) if getCreatureName(cid) == "Ditto" and isSummon(cid) and tostring(dittoStg) and dittoStg ~= "Ditto" then local InfoDitto = getMonsterInfo(tostring(dittoStg)).lookCorpse if InfoDitto ~= 0 and look.lookType ~= 0 then --doSetCreatureOutfit(cid, {lookType = 0, lookTypeEx = getMonsterInfo(tostring(dittoStg)).lookCorpse}, -1) end else if getCreatureName(cid) == "Shiny Golem" and getCreatureOutfit(cid).lookType == 1403 then doRemoveCondition(cid, CONDITION_OUTFIT) elseif Info ~= 0 and look.lookType ~= 0 then --doSetCreatureOutfit(cid, {lookType = 0, lookTypeEx = getMonsterInfo(getCreatureName(cid)).lookCorpse}, -1) end end end end --alterado v1.6 if isPlayer(cid) then mayNotMove(cid, true) else doChangeSpeed(cid, -getCreatureSpeed(cid)) end addEvent(doSleep2, 1000, cid, -1, a, false) end function doLeech2(cid, attacker, cd, check, damage) local stg = conds["Leech"] if not isCreature(cid) then return true end --is creature? if attacker ~= 0 and not isCreature(attacker) then return true end --is creature? if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then setPlayerStorageValue(cid, stg, cd) --allterado v1.8 return true end if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, "leech", a) doItemSetAttribute(item.uid, "leechdmg", damage) end if a <= -1 then setPlayerStorageValue(cid, stg, -1) return true end local life = getCreatureHealth(cid) --damage = getCreatureHealth(cid) - damage <= 0 and getCreatureHealth(cid) - 1 or damage if damage >= life then if isSummon(cid) then if isInDuel(getCreatureMaster(cid)) then doRemoveCountPokemon(getCreatureMaster(cid)) end end doSendAnimatedText(getThingPos(cid), "-"..damage.."", 144) doSendAnimatedText(getThingPos(attacker), "+"..damage.."", 32) doKillWildPoke(attacker, cid) return false end ------ doCreatureAddHealth(cid, -damage) doSendAnimatedText(getThingPos(cid), "-"..damage.."", 144) doSendMagicEffect(getThingPos(cid), 45) ------ local newlife = life - getCreatureHealth(cid) if newlife >= 1 and attacker ~= 0 then doSendMagicEffect(getThingPos(attacker), 14) doCreatureAddHealth(attacker, newlife) doSendAnimatedText(getThingPos(attacker), "+"..newlife.."", 32) local dano = getCreatureHealth(cid)-damage <= 0 and getCreatureHealth(cid)-1 or damage if isSummon(attacker) then -- morrer para veneno local player = getCreatureMaster(attacker) addPlayerDano(cid, player, dano) end end addEvent(doLeech2, 2000, cid, attacker, -1, a, damage) end function doBuff2(cid, cd, eff, check, buff, first, attr) if not isCreature(cid) then return true end --is creature? --------------------- local atributo = attr and attr or "" if first and atributo == "" then for i = 1, 3 do if getPlayerStorageValue(cid, Buffs[i][2]) <= 0 then atributo = Buffs[i][1] break end end end if atributo == "" then return true end if ehMonstro(cid) then atributo = "Buff1" end ---------------------- local stg = conds[atributo] if getPlayerStorageValue(cid, stg) >= 1 and cd ~= -1 then return true end --n usar 2x if not check and getPlayerStorageValue(cid, stg) >= 1 then setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd - 1) else setPlayerStorageValue(cid, stg, getPlayerStorageValue(cid, stg) + cd) end local a = getPlayerStorageValue(cid, stg) if isSummon(cid) and getPlayerStorageValue(cid, 212123) <= 0 then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doItemSetAttribute(item.uid, atributo, a) doItemSetAttribute(item.uid, atributo.."eff", eff) doItemSetAttribute(item.uid, atributo.."skill", buff) end if a <= -1 then --alterado v1.6 if isInArray({"Psychic Sight", "Heal Bell", "Future Sight", "Defense", "Sky Fall", "Camouflage", "Acid Armor", "Iron Defense", "Minimize", "Bug Fighter", "Ancient Fury"}, buff) then if not isSleeping(cid) then doRemoveCondition(cid, CONDITION_OUTFIT) end setPlayerStorageValue(cid, 9658783, -1) setPlayerStorageValue(cid, 625877, -1) --alterado v1.6 end if isInArray({"Eruption", "Elecball", "Strafe", "Agility", "Ancient Fury", "War Dog", "Fighter Spirit", "Furious Legs", "Ultimate Champion", "Bug Fighter"}, buff) then setPlayerStorageValue(cid, 374896, -1) --alterado v1.6 end setPlayerStorageValue(cid, stg, -1) return true end doSendMagicEffect(getThingPos(cid), eff) if first then if buff == "Strafe" then setPlayerStorageValue(cid, 374896, 1) --velo atk --alterado v1.6 doRaiseStatus(cid, 2, 0, 1000, a) elseif buff == "Eruption" or buff == "Elecball" then doSetCreatureOutfit(cid, {lookType = outFurys[doCorrectString(getCreatureName(cid))].outFury}, a*1000) setPlayerStorageValue(cid, 374896, 1) --velo atk if getCreatureName(cid) == "Shiny Typhlosion" or getCreatureName(cid) == "Elder Typhlosion" then doRaiseStatus(cid, 2, 0, 1000, a) --atk melee --alterado v1.6 else doRaiseStatus(cid, 0, 2, 1000, a) --def end elseif buff == "Tailwind" then doRaiseStatus(cid, 0, 2, 1000, a) elseif buff == "Agility" then doRaiseStatus(cid, 0, 2, 1000, a) elseif buff == "Rage" then setPlayerStorageValue(cid, 374896, 1) --velo atk --alterado v1.6 doRaiseStatus(cid, 2, 0, 1000, a) elseif buff == "Dragon Dance" then setPlayerStorageValue(cid, 374896, 1) --velo atk --alterado v1.6 doRaiseStatus(cid, 2, 2, 1000, a) elseif buff == "Harden" then doRaiseStatus(cid, 0, 2, 0, a) elseif buff == "Charm" then doRaiseStatus(cid, 0, 2, 0, a) elseif buff == "Defense Curl" then doRaiseStatus(cid, 0, 2, 0, a) elseif buff == "Defense Curl" then doRaiseStatus(cid, 0, 7, 0, a) elseif buff == "Kinesis" then doRaiseStatus(cid, 0, 2, 0, a) elseif buff == "Calm Mind" then doRaiseStatus(cid, 2, 0, 0, a) elseif buff == "Dragon Fury" then setPlayerStorageValue(cid, 374896, 1) --velo atk --alterado v1.6 doRaiseStatus(cid, 0, 0, 1000, a) elseif buff == "Ancient Fury" then doSetCreatureOutfit(cid, {lookType = outFurys[doCorrectString(getCreatureName(cid))].outFury}, a*1000) setPlayerStorageValue(cid, 374896, 1) --velo atk if getCreatureName(cid) == "Shiny Charizard" or getCreatureName(cid) == "Elder Charizard" then doRaiseStatus(cid, 2, 0, 1000, a) --atk melee --alterado v1.6 else doRaiseStatus(cid, 0, 2, 1000, a) --def end setPlayerStorageValue(cid, 625877, outFurys[doCorrectString(getCreatureName(cid))].outFury) --alterado v1.6 elseif buff == "War Dog" or buff == "Bulk Up" then doRaiseStatus(cid, 2, 2, 1000, a) elseif buff == "Rest" then doSleep2(cid, cd, getPlayerStorageValue(cid, conds["Sleep"]), true) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) elseif isInArray({"Fighter Spirit", "Furious Legs", "Ultimate Champion"}, buff) then doRaiseStatus(cid, 2, 2, 1000, a) --atk melee --alterado v1.6 setPlayerStorageValue(cid, 374896, 1) --velo atk addEvent(setPlayerStorageValue, a*1000, cid, 465987, -1) elseif isInArray({"Psychic Sight", "Heal Bell", "Future Sight", "Sky Fall", "Defense", "Camouflage", "Acid Armor", "Iron Defense", "Minimize"}, buff) then doSetCreatureOutfit(cid, {lookType = outImune[buff]}, -1) setPlayerStorageValue(cid, 9658783, 1) setPlayerStorageValue(cid, 625877, outImune[buff]) --alterado v1.6 elseif isInArray({ "Fury Mode"}, buff) then doSetCreatureOutfit(cid, {lookType = outImune[buff]}, -1) doRaiseStatus(cid, 2, 2, 1000, a) --atk melee --alterado v1.6 setPlayerStorageValue(cid, 625877, outImune[buff]) --alterado v1.6 elseif buff == "Bug Fighter" then setPlayerStorageValue(cid, 374896, 1) --velo atk --alterado v1.6 doRaiseStatus(cid, 2, 2, 1000, a) doSetCreatureOutfit(cid, {lookType = 1448}, a*1000) setPlayerStorageValue(cid, 625877, 1448) --alterado v1.6 end end addEvent(doBuff2, 1000, cid, -1, eff, a, buff, false, atributo) end if ret.buff and ret.buff ~= "" then doBuff2(ret.id, ret.cd, ret.eff, ret.check, ret.buff, ret.first, (ret.attr and ret.attr or false)) end if (string.find(getCreatureName(ret.id):lower(), "mega") and isWild(ret.id)) then return true end if isGod(ret.id) then return true end if isSummon(ret.id) and getPokemonBoost(ret.id) ~= 0 and math.random(1, 100) <= getPokemonBoost(ret.id) then --sistema "pegou no boost" if ret.cond and not isInArray({"Poison", "Leech", "Fear"}, ret.cond) then doSendMagicEffect(getThingPosWithDebug(ret.id), 114) doSendAnimatedText(getThingPosWithDebug(ret.id), "BOOST", 215) --alterado v1.8 return true end end if ret.cond and ret.cond == "Miss" then doMiss2(ret.id, ret.cd, ret.eff, ret.check, ret.spell) elseif ret.cond and ret.cond == "Silence" then doSilence2(ret.id, ret.cd, ret.eff, ret.check) elseif ret.cond and ret.cond == "Slow" then doSlow2(ret.id, ret.cd, ret.eff, ret.check, ret.first) elseif ret.cond and ret.cond == "Confusion" then doConfusion2(ret.id, ret.cd, ret.check) elseif ret.cond and ret.cond == "Burn" then doBurn2(ret.id, ret.cd, ret.check, ret.damage) elseif ret.cond and ret.cond == "Poison" then doPoison2(ret.id, ret.cd, ret.check, ret.damage) elseif ret.cond and ret.cond == "Fear" then doFear2(ret.id, ret.cd, ret.check, ret.skill) elseif ret.cond and ret.cond == "Stun" then doStun2(ret.id, ret.cd, ret.eff, ret.check, ret.spell) elseif ret.cond and ret.cond == "Paralyze" then doParalyze2(ret.id, ret.cd, ret.eff, ret.check, ret.first) elseif ret.cond and ret.cond == "Sleep" then doSleep2(ret.id, ret.cd, ret.check, ret.first) elseif ret.cond and ret.cond == "Leech" then doLeech2(ret.id, ret.attacker, ret.cd, ret.check, ret.damage) end end -------------------------------- function cleanBuffs2(item) if item ~= 0 then for i = 1, 3 do doItemEraseAttribute(item, Buffs[i][1]) doItemEraseAttribute(item, Buffs[i][1].."eff") doItemEraseAttribute(item, Buffs[i][1].."skill") end end end -------------------------------- function doCureStatus(cid, type, playerballs) if not isCreature(cid) then return true end if playerballs and isPlayer(cid) then local bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK) local mb = getPlayerSlotItem(cid, 8) if isPokeball(mb.itemid) then if not type or type == "all" then for b = 1, #injuries2 do doItemSetAttribute(mb.uid, ""..injuries2[b].n.."", -1) end else doItemSetAttribute(mb.uid, ""..type.."", -1) end end for bname, balls in pairs (pokeballs) do for times = 1,3 do local items = getItemsInContainerById(bp.uid, balls.all[times]) for _, uid in pairs(items) do if not type or type == "all" then for b = 1, #injuries2 do doItemSetAttribute(uid, ""..injuries2[b].n.."", -1) end else doItemSetAttribute(uid, ""..type.."", -1) end end end end end if type == "all" then for a = 1, #injuries2 do setPlayerStorageValue(cid, injuries2[a].m, -1) end return true end for a, b in pairs (injuries2) do if b.n == type then setPlayerStorageValue(cid, b.m, -1) end end end --------------------------------- function isWithCondition(cid) for i = 1, #injuries2 do if getPlayerStorageValue(cid, injuries2[i].m) >= 1 then return true end end return false end --------------------------------- function doCureBallStatus(item, type) if not type or type == "all" then for b = 1, #injuries2 do doItemSetAttribute(item, ""..injuries2[b].n.."", -1) end else doItemSetAttribute(item, ""..type.."", -1) end end --------------------------------- function isBurning(cid) if not isCreature(cid) then return false end if getPlayerStorageValue(cid, conds["Burn"]) >= 0 then return true end return false end function isPoisoned(cid) if not isCreature(cid) then return false end if getPlayerStorageValue(cid, conds["Poison"]) >= 0 then return true end return false end function isSilence(cid) if not isCreature(cid) then return false end if getPlayerStorageValue(cid, conds["Silence"]) >= 0 then return true end return false end function isParalyze(cid) if not isCreature(cid) then return false end if getPlayerStorageValue(cid, conds["Paralyze"]) >= 0 then return true end return false end function isSleeping(cid) if not isCreature(cid) then return false end if getPlayerStorageValue(cid, conds["Sleep"]) >= 0 then return true end return false end function isWithFear(cid) if not isCreature(cid) then return false end if getPlayerStorageValue(cid, conds["Fear"]) >= 0 then return true end return false end ----------------------------------- function doMoveInArea2(cid, eff, area, element, min, max, spell, ret) if not isCreature(cid) then return true end local pos = getPosfromArea(cid, area) --alterado v1.8 setPlayerStorageValue(cid, 21101, -1) local skills = { "Skull Bash", "Gust", "Water Pulse", "Stick Throw", "Last Resort", "Ground Crusher", "Overheat", "Toxic", "Take Down", "Gyro Ball"} --alterado v1.7 local n = 0 local l = 0 while n < #pos do if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end n = n+1 thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=253} local pid = getThingFromPosWithProtect(thing) ---- if pid ~= cid then if spell and isInArray(skills, spell) then if spell and spell == "Gyro Ball" then --alterado v1.7 pos[n].x = pos[n].x+1 addEvent(sendEffWithProtect, l*200, cid, pos[n], eff) addEvent(doMoveDano2, l*200, cid, pid, element, min, max, ret, spell) else addEvent(sendEffWithProtect, l*200, cid, pos[n], eff) addEvent(doMoveDano2, l*200, cid, pid, element, min, max, ret, spell) --alterado v1.6 end elseif spell and spell == "Epicenter" then local random = math.random(50, 500) addEvent(sendEffWithProtect, random, cid, pos[n], eff) addEvent(doDanoWithProtect, random, cid, GROUNDDAMAGE, pos[n], crusher, -min, -max, 255) elseif spell and spell == "Shadowave" then posi = {x=pos[n].x, y=pos[n].y+1, z=pos[n].z} sendEffWithProtect(cid, posi, eff) doMoveDano2(cid, pid, element, min, max, ret, spell) --alterado v1.6 elseif spell and spell == "Surf" then addEvent(sendEffWithProtect, math.random(50, 500), cid, pos[n], eff) addEvent(doMoveDano2, 400, cid, pid, element, min, max, ret, spell) --alterado v1.6 elseif spell and spell == "Sand Attack" then addEvent(sendEffWithProtect, n*200, cid, pos[n], eff) addEvent(doMoveDano2, n*200, cid, pid, element, min, max, ret, spell) --alterado v1.6 elseif spell and (spell == "Muddy Water" or spell == "Venom Motion") then local arr = { [1] = 0, [2] = 0, [3] = 0, [4] = 200, [5] = 200, [6] = 200, [7] = 400, [8] = 400, [9] = 400, [10] = 600, [11] = 600, [12] = 600, [13] = 800, [14] = 800, [15] = 800 } local time = {0, 200, 400, 600, 800} addEvent(sendEffWithProtect, arr[n], cid, pos[n], eff) addEvent(doMoveDano2, arr[n], cid, pid, element, min, max, ret, spell) elseif spell and (spell == "Inferno" or spell == "Fissure") then addEvent(sendEffWithProtect, math.random(0, 500), cid, pos[n], eff) addEvent(doMoveDano2, math.random(0, 500), cid, pid, element, min, max, ret, spell) elseif spell == "Last Resort" then local pos = getThingPosWithDebug(cid) local areas = {rock5, rock4, rock3, rock2, rock1, rock5, rock4, rock3, rock2, rock1} for i = 0, 9 do addEvent(doMoveInArea2, i*400, cid, 3, areas[i+1], NORMALDAMAGE, min, max, spell) addEvent(doMoveInArea2, i*410, cid, 3, areas[i+1], NORMALDAMAGE, 0, 0, spell) end else sendEffWithProtect(cid, pos[n], eff) doMoveDano2(cid, pid, element, min, max, ret, spell) end end l = l+1 end end ------------------------------------------- function doMoveDano2(cid, pid, element, min, max, ret, spell) if isCreature(pid) and isCreature(cid) and cid ~= pid then if isNpcSummon(pid) and getCreatureTarget(pid) ~= cid then return true --alterado v1.6 end if ehNPC(pid) then return true end --- local canAtk = true --alterado v1.6 if getPlayerStorageValue(pid, 21099) >= 1 then doSendMagicEffect(getThingPosWithDebug(pid), 135) doSendAnimatedText(getThingPosWithDebug(pid), "REFLECT", COLOR_GRASS) addEvent(docastspell, 100, pid, spell) if getCreatureName(pid) == "Wobbuffet" or getCreatureName(pid) == "Reflector Wobbuffet" or getCreatureName(pid) == "Wowofet" then doRemoveCondition(pid, CONDITION_OUTFIT) end canAtk = false setPlayerStorageValue(pid, 21099, -1) setPlayerStorageValue(pid, 21100, 1) setPlayerStorageValue(pid, 21101, cid) setPlayerStorageValue(pid, 21103, getTableMove(cid, getPlayerStorageValue(cid, 21102)).f) end --- if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isSummon(cid) and (ehMonstro(pid) or (isSummon(pid) and canAttackOther(cid, pid) == "Can") or (isPlayer(pid) and canAttackOther(cid, pid) == "Can" and #getCreatureSummons(pid) <= 0)) and pid ~= cid then if canAtk then --alterado v1.6 if ret and ret.cond then ret.id = pid ret.check = getPlayerStorageValue(pid, conds[ret.cond]) doCondition2(ret) end doTargetCombatHealth(cid, pid, element, -(math.abs(min)), -(math.abs(max)), 255) end elseif ehMonstro(cid) and (isSummon(pid) or (isPlayer(pid) and #getCreatureSummons(pid) <= 0)) and pid ~= cid then if canAtk then --alterado v1.6 if ret and ret.cond then ret.id = pid ret.check = getPlayerStorageValue(pid, conds[ret.cond]) doCondition2(ret) end doTargetCombatHealth(cid, pid, element, -(math.abs(min)), -(math.abs(max)), 255) end elseif isPlayer(cid) and ehMonstro(pid) and pid ~= cid then if canAtk then --alterado v1.6 if ret and ret.cond then ret.id = pid ret.check = getPlayerStorageValue(pid, conds[ret.cond]) doCondition2(ret) end doTargetCombatHealth(cid, pid, element, -(math.abs(min)), -(math.abs(max)), 255) end end end end -------------------------------------------------------------------------------- function sendEffWithProtect(cid, pos, eff) --Manda algum magic effect com proteçoes if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end local checkpos = pos checkpos.stackpos = 0 if not hasTile(checkpos) then return true end if not canWalkOnPos2(pos, false, true, false, true, false) then --alterado v1.6 return true end doSendMagicEffect(pos, eff) end --------------------------------------------------------------------------------- function getThingPosWithDebug(what) if not isCreature(what) or getCreatureHealth(what) <= 0 then return {x = 1, y = 1, z = 10} end return getThingPos(what) end --------------------------------------------------------------------------------- function doDanoWithProtect(cid, element, pos, area, min, max, eff) --Da dano com proteçoes if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doAreaCombatHealth(cid, element, pos, area, -(math.abs(min)), -(math.abs(max)), eff) --print("Erro subistituir magia: " .. getPlayerStorageValue(cid, 21102)) end --------------------------------------------------------------------------------- function doDanoWithProtectWithDelay(cid, target, element, min, max, eff, area) const_distance_delay = 56 if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if target ~= 0 and isCreature(target) and not area then delay = getDistanceBetween(getThingPosWithDebug(cid), getThingPosWithDebug(target)) * const_distance_delay addEvent(doDanoWithProtect, delay, cid, element, getThingPosWithDebug(target), 0, min, max, eff) return true end addEvent(doDanoWithProtect, 200, cid, element, getThingPosWithDebug(target), area, min, max, eff) end -------------------------------------------------------------------------------- function sendDistanceShootWithProtect(cid, frompos, topos, eff) --Manda um efeito de distancia com proteçoes if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doSendDistanceShoot(frompos, topos, eff) end --------------------------------------------------------------------------------- function sendMoveBack(cid, pos, eff, min, max) --Manda o Atk do farfetchd de volta... local m = #pos+1 for i = 1, #pos do if not isCreature(cid) then return true end --- m = m-1 thing = {x=pos[m].x,y=pos[m].y,z=pos[m].z,stackpos=253} local pid = getThingFromPosWithProtect(thing) addEvent(doMoveDano2, i*200, cid, pid, FLYINGDAMAGE, min/4, max/4) addEvent(sendEffWithProtect, i*200, cid, pos[m], eff) --alterado v1.3 -- end end --------------------------------------------------------------------------------- function upEffect(cid, effDis) if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end pos = getThingPos(cid) frompos = {x = pos.x+1, y = pos.y, z = pos.z} frompos.x = pos.x - math.random(4, 7) frompos.y = pos.y - math.random(5, 8) doSendDistanceShoot(getThingPos(cid), frompos, effDis) end --------------------------------------------------------------------------------- function fall(cid, master, element, effDis, effArea) --Function pra jogar efeitos pra cima e cair depois... tpw falling rocks e blizzard if isCreature(cid) then if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end pos = getThingPos(cid) pos.x = pos.x + math.random(-4,4) pos.y = pos.y + math.random(-4,4) if isMonster(cid) or isPlayer(cid) then frompos = {x = pos.x+1, y = pos.y, z = pos.z} elseif isSummon(cid) then frompos = getThingPos(master) end frompos.x = pos.x - 7 frompos.y = pos.y - 6 if effDis ~= -1 then --alterado! doSendDistanceShoot(frompos, pos, effDis) end doAreaCombatHealth(cid, element, pos, 0, 0, 0, effArea) end end --------------------------------------------------------------------------------- function canDoMiss(cid, nameAtk) --alterado v1.5 local atkPsy = {"Confusion", "Confuse Ray", "Night Shade", "Fear", "Dizzy Punch", "Psyusion", "Divine Punishment", "Focus Blast", "Stunning Confusion"} local atkPhan = {"Night Shade"} --alterado v1.7 local atkTerra = {"Sand Attack", "Mud Shot", "Mud Bomb", "Stomp", "Crusher Stomp", "Mud Slap", "Sand Tomb", "Super Sonic"} --alterado v1.7 local atkElectric = {"Electric Storm", "Thunder Wave", "Thunder", "Shock-Counter", "Wild Charge"} --alterado v1.7 if not isCreature(cid) then return false end if isPlayer(cid) then return true end if not pokes[getCreatureName(cid)] then return true end if isInArray(atkTerra, nameAtk) then if (pokes[getCreatureName(cid)].type == "flying") or (pokes[getCreatureName(cid)].type2 == "flying") or isInArray(specialabilities["levitate"], getCreatureName(cid)) then return false end elseif isInArray(atkPsy, nameAtk) then if (pokes[getCreatureName(cid)].type == "dark") or (pokes[getCreatureName(cid)].type2 == "dark") or isInArray(specialabilities["never"], getCreatureName(cid)) then return false end elseif isInArray(atkElectric, nameAtk) then if (pokes[getCreatureName(cid)].type == "ground") or (pokes[getCreatureName(cid)].type2 == "ground") then return false end elseif isInArray(atkPhan, nameAtk) then if (pokes[getCreatureName(cid)].type == "normal") or (pokes[getCreatureName(cid)].type2 == "normal") then return false end end return true end function doMoveInAreaMulti(cid, effDis, effMagic, areaEff, areaDano, element, min, max, ret) --alterado v1.7 if not isCreature(cid) then return true end local pos = getPosfromArea(cid, areaEff) local pos2 = getPosfromArea(cid, areaDano) local n = 0 while n < #pos2 do if not isCreature(cid) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end n = n+1 thing = {x=pos2[n].x,y=pos2[n].y,z=pos2[n].z,stackpos=253} if n < #pos then addEvent(sendDistanceShootWithProtect, 50, cid, getThingPos(cid), pos[n], effDis) --39 addEvent(sendEffWithProtect, 100, cid, pos[n], effMagic) -- 112 --- --alterado v1.6.1 if math.random(1, 2) == 2 then addEvent(sendDistanceShootWithProtect, 450, cid, getThingPos(cid), pos[n], effDis) --550 addEvent(sendEffWithProtect, 550, cid, pos[n], effMagic) -- 650 end end local pid = getThingFromPosWithProtect(thing) if isCreature(pid) then if ret and ret.id == 0 then --alterado v1.8 ret.id = pid ret.check = getPlayerStorageValue(pid, conds[ret.cond]) end if not ret then ret = {} end --alterado v1.7 doMoveDano2(cid, pid, element, min, max, ret, getPlayerStorageValue(cid, 21102)) end end end --------------------------------------------------------------------------------------- function doDoubleHit(cid, pid, valor, cor) --alterado v1.6 if isCreature(cid) and isCreature(pid) then if getPlayerStorageValue(cid, 374896) >= 1 then if isInArray({"Kadabra", "Alakazam", "Mew", "Shiny Abra", "Shiny Alakazam"}, getCreatureName(cid)) then doSendDistanceShoot(getThingPosWithDebug(cid), getThingPosWithDebug(pid), 39) end valor = valor * -1 doCreatureAddHealth(pid, -math.abs(valor)) doSendMagicEffect(getThingPos(pid), 3) doSendAnimatedText(getThingPos(pid), (valor == 0 and "" or valor), cor) end end end --------------------------------------------------------------------------------------- function doDanoInTarget(cid, target, combat, min, max, eff) --alterado v1.7 if not isCreature(cid) or not isCreature(target) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end doTargetCombatHealth(cid, target, combat, -math.abs(min), -math.abs(max), eff) end ----------------------------------------------------------------------------------------- function doDanoInTargetWithDelay(cid, target, combat, min, max, eff) --alterado v1.7 const_distance_delay = 56 if not isCreature(cid) or not isCreature(target) then return true end if isSleeping(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end if isWithFear(cid) and getPlayerStorageValue(cid, 3644587) >= 1 then return true end local delay = getDistanceBetween(getThingPosWithDebug(cid), getThingPosWithDebug(target)) * const_distance_delay addEvent(doDanoInTarget, delay, cid, target, combat, min, max, eff) end Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.

Informação Importante

Confirmação de Termo