Ir para conteúdo

joshua8822

Campones
  • Total de itens

    17
  • Registro em

  • Última visita

Posts postados por joshua8822

  1. function onSay(cid, words, param)
    
    
    local clans = {"Volcanic", "Seavell", "Orebound", "Wingeon", "Malefic", "Gardestrike", "Psycraft", "Naturia", "Raibolt"}
    
    local t = string.explode(param, ",")
    
    if words == "!entrarclan" then
    
    if param == "" then
    return doPlayerSendCancel(cid, "Estão faltando os parâmetros!")
    end
    
    local clan = t[1]
    
    if getPlayerLevel(cid) < 80 then
    return doPlayerSendCancel(cid, "Você precisa ser level 80 para entrar em um clan.")
    end
    
    if not isInArray(clans, t[1]) then
    return doPlayerSendCancel(cid, ""..clan.." não é um clan válido.")
    end
    
    if getPlayerStorageValue(cid, 86228) >= 1 then
    return doPlayerSendCancel(cid, "Você já está em um clan.")
    end
    
    setPlayerClan(cid, clan)
    doPlayerSendTextMessage(cid, 19, "Agora você pertence ao Clan ["..clan.."], rank: 1")
    setPlayerClanRank(cid, 1)
    
    elseif words == "!rankclan" then
    
    
    
    if param == "" then
    return doPlayerSendTextMessage(cid, 19, "[Clan] Digita o Numero ex: !rankclan 1!")
    end
    
    local ta = {
    
    [2] = {level = 100},
    [3] = {level = 125},
    [4] = {level = 150},
    [5] = {level = 200},
    }
    local money = 2160
    local qntt = 5
    
    
    local levels = ta[(getPlayerStorageValue(cid, 862281) + 1)
    local lv = levels.level
    
    if getPlayerStorageValue(cid, 862281) >= tonumber(t[1]) then
    return doPlayerSendTextMessage(cid, 19, "[Clan] Você já passou desse rank.")
    end
    
    if tonumber(t[1]) >= tonumber((getPlayerStorageValue(cid, 862281)) + 2) then
    return doPlayerSendTextMessage(cid, 19, "[Clan] Você não pode fazer isso!")
    end
    
    if getPlayerStorageValue(cid, 86228) <= 1 then
    return doPlayerSendTextMessage(cid, 27, "[Clan] Você nao tem Clan!")
    
    end
    
    
    if getPlayerLevel(cid) < lv then
    return doPlayerSendTextMessage(cid, 19,"[Clan] Você não possui o level necessário.")
    end
    
    if getPlayerItemCount(cid, money) >= qntt then
    doPlayerRemoveItem(cid, money, qntt)
    else
    return doPlayerSendTextMessage(cid, 19,"[Clan] Você não Tem [5] Thousand Dollars Para Avançar de Rank!.")
    end
    
    
    setPlayerClanRank(cid, getPlayerStorageValue(cid, 862281) + 1)
    doPlayerSendTextMessage(cid, 27, "[Clan] Você avançou de rank! Rank atual: ["..getPlayerStorageValue(cid, 862281).."].")
    
    elseif words == "!trocarclan" then
    
    local item = 2160 --ID do item.
    local qnt = 1 --Quantidade do item.
    local to_go = t[1]
    
    if param == "" then
    return doPlayerSendCancel(cid, "Estão faltando os parâmetros!")
    end
    
    if not isInArray(clans, t[1]) then
    return doPlayerSendCancel(cid, ""..t[1].." não é um clan válido.")
    end
    
    if getPlayerStorageValue(cid, 86228) < 1 then
    return doPlayerSendCancel(cid, "Você não pertence a clan algum!")
    end
    
    if getPlayerItemCount(cid, item) >= qnt then
    doPlayerRemoveItem(cid, item, qnt)
    doPlayerSendTextMessage(cid, 27, "Você trocou de clan, pertencendo agora ao clan: "..t[1]..".")
    setPlayerClan(cid, to_go)
    setPlayerClanRank(cid, 1)
    else
    return doPlayerSendCancel(cid, "Você não tem o item necessário! ITEM: "..item.." QUANTIDADE: "..qnt..".")
    end
    end
    return true
    
    end

    local levels = ta[(getPlayerStorageValue(cid, 862281) + 1)] - um ] de mais.

     

    Teste, eu nao e testado.

  2. Vai em configuration.lua (data/lib/configuration.lua)

    e busque isto: (esta a o inicio)
    pokemonExpPerLevelRate =
    baseExpRate =
    generalExpRate =

    Agora:
    pokemonExpPerLevelRate = 0 (Change)
    baseExpRate = 1 (Change)
    generalExpRate = 1 (Change)

    :)

     

  3. pokemon moves.lua (data/lib):

     

     

    elseif spell == "Ion Deluge" then
        local config = {
            spell_area = selfArea2,             --Área da spell (dano AOE + debuff).
            effect = xxx,                       --Efeito.
            debuff_time = xxx                   --Duração do debuff (em segundos).
        }
        
        local positions = getPosfromArea(config.spell_area)
        if #positions < 1 then return true end
        
        local function doSendDebuffEffect(cid, times)
            if not isCreature(cid) or times <= 0 then return true end
            
            doSendMagicEffect(getThingPos(cid), config.effect)
            addEvent(doSendDebuffEffect, 1000, cid, times - 1)
        end
        
        for i = 1, #positions do
            local pid = getTopCreature(positions[i]).uid
            
            if isCreature(pid) and canAttackOther(cid, pid) == "Can" then
                setPlayerStorageValue(pid, 2919, os.time() + config.debuff_time)
                doSendDebuffEffect(pid, config.debuff_time)
            end
        end
        doDanoWithProtect(cid, ELECTRICDAMAGE, getThingPos(cid), config.spell_area, min, max, config.effect)

     

     

     

    exp2.0.lua (data/creaturescripts/scripts):
    Abaixo de:
    local damageCombat = combat
    Coloque:
    if getPlayerStorageValue(attacker, 2919) > os.time() then
        damageCombat = ELECTRICDAMAGE
    end
    No mesmo arquivo, abaixo de:
    if isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 then
        valor = valor*getClanPorcent(getCreatureMaster(attacker), combat, "atk")                           
    elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 then
        valor = valor - (valor*getClanPorcent(getCreatureMaster(cid), combat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2))
    end
    Coloque:

    local Volt_Absorb = {
        passive_owners = {"Jolteon", "Shiny Jolteon", "Lanturn"},    --Pokémons com a passiva Volt Absorb.
        heal = {
            min_percent = xxx,                                        --Porcentagem mínima do dano curada.
            max_percent = xxx,                                        --Porcentagem máxima do dano curada.
        }
    }
     
    if isInArray(Volt_Absorb.passive_owners, getCreatureName(cid)) and damageCombat == ELECTRICDAMAGE then
        local amount = math.floor(valor * math.random(Volt_Absorb.min_percent, Volt_Absorb.max_percent) / 100)
        valor = 0
        
        doSendAnimatedText(getThingPos(cid), "+"..amount, 65)
        doCreatureAddHealth(cid, amount)
    end
    

     

     

    Obrigado :D

     

     

  4. Replace: move1.lua

    local msgs = {"use ", ""}
    
    function doAlertReady(cid, id, movename, n, cd)
    if not isCreature(cid) then return true end
    local myball = getPlayerSlotItem(cid, 8)
    if myball.itemid > 0 and getItemAttribute(myball.uid, cd) == "cd:"..id.."" then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(myball.uid).." - "..movename.." (m"..n..") is ready!")
    return true
    end
    local p = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)
    if not p or #p <= 0 then return true end
    for a = 1, #p do
    if getItemAttribute(p[a], cd) == "cd:"..id.."" then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") is ready!")
    return true
    end
    end
    end
    
    function onSay(cid, words, param, channel)
    
    
    if param ~= "" then return true end
    if string.len(words) > 3 then return true end
    
    if #getCreatureSummons(cid) == 0 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need a pokemon to use moves.")
    return 0
    end
    --alterado v1.5
    local mypoke = getCreatureSummons(cid)[1]
    
    if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end
    if getCreatureName(mypoke) == "Evolution" then return true end
    
    if getCreatureName(mypoke) == "Ditto" or getCreatureName(mypoke) == "Shiny Ditto" then
    name = getPlayerStorageValue(mypoke, 1010) --edited
    else
    name = getCreatureName(mypoke)
    end
    
    --local name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke)
    
    local it = string.sub(words, 2, 3)
    local move = movestable[name].move1
    if getPlayerStorageValue(mypoke, 212123) >= 1 then
    cdzin = "cm_move"..it..""
    else
    cdzin = "move"..it.."" --alterado v1.5
    end
    
    if it == "2" then
    move = movestable[name].move2
    elseif it == "3" then
    move = movestable[name].move3
    elseif it == "4" then
    move = movestable[name].move4
    elseif it == "5" then
    move = movestable[name].move5
    elseif it == "6" then
    move = movestable[name].move6
    elseif it == "7" then
    move = movestable[name].move7
    elseif it == "8" then
    move = movestable[name].move8
    elseif it == "9" then
    move = movestable[name].move9
    elseif it == "10" then
    move = movestable[name].move10
    elseif it == "11" then
    move = movestable[name].move11
    elseif it == "12" then
    move = movestable[name].move12
    elseif it == "13" then
    move = movestable[name].move13
    end
    
    if not move then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.")
    return true
    end
    
    if getPlayerLevel(cid) < move.level then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need be atleast level "..move.level.." to use this move.")
    return true
    end
    
    if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (move.cd + 2) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." seconds to use "..move.name.." again.")
    return true
    end
    
    if getTileInfo(getThingPos(mypoke)).protection then
    doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.")
    return true
    end
    
    if getPlayerStorageValue(mypoke, 3894) >= 1 then
    return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v1.3
    end
    if getPlayerStorageValue(mypoke, 98271) >= 1 then
    return doPlayerSendCancel(cid, "You can't attack because is sleeping") --alterado v1.5
    end
    if getPlayerStorageValue(mypoke, 3895) >= 1 then
    return doPlayerSendCancel(cid, "You can't attack because is stuned") --alterado v1.5
    end
    --alterado v1.6
    if (move.name == "Team Slice" or move.name == "Team Claw") and #getCreatureSummons(cid) < 2 then
    doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!")
    return true
    end
    --alterado v1.7 \/\/\/
    if isCreature(getCreatureTarget(cid)) and isInArray(specialabilities["evasion"], getCreatureName(getCreatureTarget(cid))) then
    local target = getCreatureTarget(cid)
    if math.random(1, 100) <= passivesChances["Evasion"][getCreatureName(target)] then
    if isCreature(getMasterTarget(target)) then --alterado v1.6
    doSendMagicEffect(getThingPos(target), 211)
    doSendAnimatedText(getThingPos(target), "TOO BAD", 215)
    doTeleportThing(target, getClosestFreeTile(target, getThingPos(mypoke)), false)
    doSendMagicEffect(getThingPos(target), 211)
    doFaceCreature(target, getThingPos(mypoke))
    return true --alterado v1.6
    end
    end
    end
    
    
    if move.target == 1 then
    
    if not isCreature(getCreatureTarget(cid)) then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")
    return 0
    end
    
    if getCreatureCondition(getCreatureTarget(cid), CONDITION_INVISIBLE) then
    return 0
    end
    
    if getCreatureHealth(getCreatureTarget(cid)) <= 0 then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your have already defeated your target.")
    return 0
    end
    
    if not isCreature(getCreatureSummons(cid)[1]) then
    return true
    end
    
    if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > move.dist then
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")
    return 0
    end
    
    if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then
    return 0
    end
    end
    
    local newid = 0
    
    if isSleeping(mypoke) or isSilence(mypoke) then --alterado v1.5
    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't do that right now.")
    return 0
    else
    newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, move.cd)
    end
    
    doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY)
    
    local summons = getCreatureSummons(cid) --alterado v1.6
    
    addEvent(doAlertReady, move.cd * 1000, cid, newid, move.name, it, cdzin)
    
    for i = 2, #summons do
    if isCreature(summons[i]) and getPlayerStorageValue(cid, 637501) >= 1 then
    docastspell(summons[i], move.name) --alterado v1.6
    end
    end
    
    docastspell(mypoke, move.name)
    doCreatureAddCondition(cid, playerexhaust)
    
    if useKpdoDlls then
    doUpdateCooldowns(cid)
    end
    
    return 0
    end
  5.  

    Move1.lua

    local msgs = {"use ", ""}

     

    function doAlertReady(cid, id, movename, n, cd)

    if not isCreature(cid) then return true end

    local myball = getPlayerSlotItem(cid, 8)

    if myball.itemid > 0 and getItemAttribute(myball.uid, cd) == "cd:"..id.."" then

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(myball.uid).." - "..movename.." (m"..n..") is ready!")

    return true

    end

    local p = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)

    if not p or #p <= 0 then return true end

    for a = 1, #p do

    if getItemAttribute(p[a], cd) == "cd:"..id.."" then

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") is ready!")

    return true

    end

    end

    end

     

    function onSay(cid, words, param, channel)

     

     

    if param ~= "" then return true end

    if string.len(words) > 3 then return true end

     

    if #getCreatureSummons(cid) == 0 then

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need a pokemon to use moves.")

    return 0

    end

    --alterado v1.5

    local mypoke = getCreatureSummons(cid)[1]

     

    if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end

    if getCreatureName(mypoke) == "Evolution" then return true end

     

    if getCreatureName(mypoke) == "Ditto" or getCreatureName(mypoke) == "Shiny Ditto" then

    name = getPlayerStorageValue(mypoke, 1010) --edited

    else

    name = getCreatureName(mypoke)

    end

     

    --local name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke)

     

    local it = string.sub(words, 2, 3)

    local move = movestable[name].move1

    if getPlayerStorageValue(mypoke, 212123) >= 1 then

    cdzin = "cm_move"..it..""

    else

    cdzin = "move"..it.."" --alterado v1.5

    end

     

    if it == "2" then

    move = movestable[name].move2

    elseif it == "3" then

    move = movestable[name].move3

    elseif it == "4" then

    move = movestable[name].move4

    elseif it == "5" then

    move = movestable[name].move5

    elseif it == "6" then

    move = movestable[name].move6

    elseif it == "7" then

    move = movestable[name].move7

    elseif it == "8" then

    move = movestable[name].move8

    elseif it == "9" then

    move = movestable[name].move9

    elseif it == "10" then

    move = movestable[name].move10

    elseif it == "11" then

    move = movestable[name].move11

    elseif it == "12" then

    move = movestable[name].move12

    elseif it == "13" then

    move = movestable[name].move13

    end

     

    if not move then

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.")

    return true

    end

     

    if getPlayerLevel(cid) < move.level then

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need be atleast level "..move.level.." to use this move.")

    return true

    end

     

    if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (move.cd + 2) then

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." seconds to use "..move.name.." again.")

    return true

    end

     

    if getTileInfo(getThingPos(mypoke)).protection then

    doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.")

    return true

    end

     

    if getPlayerStorageValue(mypoke, 3894) >= 1 then

    return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v1.3

    end

    --alterado v1.6

    if (move.name == "Team Slice" or move.name == "Team Claw") and #getCreatureSummons(cid) < 2 then

    doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!")

    return true

    end

    --alterado v1.7 \/\/\/

    if isCreature(getCreatureTarget(cid)) and isInArray(specialabilities["evasion"], getCreatureName(getCreatureTarget(cid))) then

    local target = getCreatureTarget(cid)

    if math.random(1, 100) <= passivesChances["Evasion"][getCreatureName(target)] then

    if isCreature(getMasterTarget(target)) then --alterado v1.6

    doSendMagicEffect(getThingPos(target), 211)

    doSendAnimatedText(getThingPos(target), "TOO BAD", 215)

    doTeleportThing(target, getClosestFreeTile(target, getThingPos(mypoke)), false)

    doSendMagicEffect(getThingPos(target), 211)

    doFaceCreature(target, getThingPos(mypoke))

    return true --alterado v1.6

    end

    end

    end

     

     

    if move.target == 1 then

     

    if not isCreature(getCreatureTarget(cid)) then

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")

    return 0

    end

     

    if getCreatureCondition(getCreatureTarget(cid), CONDITION_INVISIBLE) then

    return 0

    end

     

    if getCreatureHealth(getCreatureTarget(cid)) <= 0 then

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your have already defeated your target.")

    return 0

    end

     

    if not isCreature(getCreatureSummons(cid)[1]) then

    return true

    end

     

    if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > move.dist then

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")

    return 0

    end

     

    if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then

    return 0

    end

    end

     

    local newid = 0

     

    if isSleeping(mypoke) or isSilence(mypoke) then --alterado v1.5

    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't do that right now.")

    return 0

    else

    newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, move.cd)

    end

     

    doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY)

     

    local summons = getCreatureSummons(cid) --alterado v1.6

     

    addEvent(doAlertReady, move.cd * 1000, cid, newid, move.name, it, cdzin)

     

    for i = 2, #summons do

    if isCreature(summons) and getPlayerStorageValue(cid, 637501) >= 1 then

    docastspell(summons, move.name) --alterado v1.6

    end

    end

     

    docastspell(mypoke, move.name)

    doCreatureAddCondition(cid, playerexhaust)

     

    if useKpdoDlls then

    doUpdateCooldowns(cid)

    end

     

    return 0

    end

     

    ¿Qual e seu newStatusSyst? data/lib/newStatusSyst.lua

     

    Ou qual e seu base?

  6. Base usada?

    Diga-me se entendi corretamente a primeira spell: o pokémon causará um dano em área que aplicará um debuff onde todos os afetados terão os golpes convertidos para o tipo elétrico. É isso mesmo?

    Sobre a passiva, o dano elétrico será anulado? A quantia curada é em porcentagem ou uma fórmula mesmo?

    Base = PDA

     

    Sim aplicara debuff, e sera convertidos para tipo elétrico. Sim.

    Sim, o dano elétrico será anulado e um 5 - 15% heal.

     

     

    @UP

  7. 
    

    local clansAtk = {

    [1] = {

    [FIREDAMAGE] = {

    [1] = {atk = 1.17},

    [2] = {atk = 1.22},

    [3] = {atk = 1.27},

    [4] = {atk = 1.32},

    [5] = {atk = 1.37},

    },

    ["null"] = {

    },

    },

    [2] = {

    [WATERDAMAGE] = {

    [1] = {atk = 1.05},

    [2] = {atk = 1.10},

    [3] = {atk = 1.15},

    [4] = {atk = 1.20},

    [5] = {atk = 1.25},

    },

    [ICEDAMAGE] = {

    [1] = {atk = 1.10},

    [2] = {atk = 1.15},

    [3] = {atk = 1.20},

    [4] = {atk = 1.25},

    [5] = {atk = 1.30},

    },

    },

    [3] = {

    [ROCKDAMAGE] = {

    [1] = {atk = 1.05},

    [2] = {atk = 1.10},

    [3] = {atk = 1.15},

    [4] = {atk = 1.20},

    [5] = {atk = 1.25},

    },

    [GROUNDDAMAGE] = {

    [1] = {atk = 1.05},

    [2] = {atk = 1.10},

    [3] = {atk = 1.15},

    [4] = {atk = 1.20},

    [5] = {atk = 1.25},

    },

    },

    [4] = {

    [FLYDAMAGE] = {

    [1] = {atk = 1.15},

    [2] = {atk = 1.20},

    [3] = {atk = 1.25},

    [4] = {atk = 1.30},

    [5] = {atk = 1.35},

    },

    [DRAGONDAMAGE] = {

    [1] = {atk = 1.10},

    [2] = {atk = 1.15},

    [3] = {atk = 1.20},

    [4] = {atk = 1.25},

    [5] = {atk = 1.30},

    },

    },

    [5] = {

    [GHOSTDAMAGE] = {

    [1] = {atk = 1.05},

    [2] = {atk = 1.10},

    [3] = {atk = 1.15},

    [4] = {atk = 1.20},

    [5] = {atk = 1.25},

    },

    [POISONDAMAGE] = {

    [1] = {atk = 1.08},

    [2] = {atk = 1.13},

    [3] = {atk = 1.18},

    [4] = {atk = 1.23},

    [5] = {atk = 1.28},

    },

    },

    [6] = {

    [FIGHTDAMAGE] = {

    [1] = {atk = 1.05},

    [2] = {atk = 1.10},

    [3] = {atk = 1.15},

    [4] = {atk = 1.20},

    [5] = {atk = 1.25},

    },

    [NORMALDAMAGE] = {

    [1] = {atk = 1.05},

    [2] = {atk = 1.10},

    [3] = {atk = 1.15},

    [4] = {atk = 1.20},

    [5] = {atk = 1.25},

    },

    },

    [7] = {

    [PSYCHICDAMAGE] = {

    [1] = {atk = 1.10},

    [2] = {atk = 1.15},

    [3] = {atk = 1.20},

    [4] = {atk = 1.25},

    [5] = {atk = 1.30},

    },

    ["null"] = {

    },

    },

    [8] = {

    [GRASSDAMAGE] = {

    [1] = {atk = 1.05},

    [2] = {atk = 1.10},

    [3] = {atk = 1.15},

    [4] = {atk = 1.20},

    [5] = {atk = 1.25},

    },

    [BUGDAMAGE] = {

    [1] = {atk = 1.05},

    [2] = {atk = 1.10},

    [3] = {atk = 1.15},

    [4] = {atk = 1.20},

    [5] = {atk = 1.25},

    },

    },

    [9] = {

    [ELECTRICDAMAGE] = {

    [1] = {atk = 1.12},

    [2] = {atk = 1.17},

    [3] = {atk = 1.22},

    [4] = {atk = 1.27},

    [5] = {atk = 1.32},

    },

    ["null"] = {

    },

    }

    }

     

    local clansDef = {

    [1] = {

    ["fire"] = {

    [1] = {def = 0.17},

    [2] = {def = 0.22},

    [3] = {def = 0.27},

    [4] = {def = 0.32},

    [5] = {def = 0.37},

    },

    ["null"] = {

    },

    },

    [2] = {

    ["water"] = {

    [1] = {def = 0.05},

    [2] = {def = 0.10},

    [3] = {def = 0.15},

    [4] = {def = 0.20},

    [5] = {def = 0.25},

    },

    ["ice"] = {

    [1] = {def = 0.10},

    [2] = {def = 0.15},

    [3] = {def = 0.20},

    [4] = {def = 0.25},

    [5] = {def = 0.30},

    },

    },

    [3] = {

    ["rock"] = {

    [1] = {def = 0.05},

    [2] = {def = 0.10},

    [3] = {def = 0.15},

    [4] = {def = 0.20},

    [5] = {def = 0.25},

    },

    ["ground"] = {

    [1] = {def = 0.10},

    [2] = {def = 0.15},

    [3] = {def = 0.20},

    [4] = {def = 0.25},

    [5] = {def = 0.30},

    },

    },

    [4] = {

    ["flying"] = {

    [1] = {def = 0.15},

    [2] = {def = 0.20},

    [3] = {def = 0.25},

    [4] = {def = 0.30},

    [5] = {def = 0.35},

    },

    ["dragon"] = {

    [1] = {def = 0.10},

    [2] = {def = 0.15},

    [3] = {def = 0.20},

    [4] = {def = 0.25},

    [5] = {def = 0.30},

    },

    },

    [5] = {

    ["ghost"] = {

    [1] = {def = 0.05},

    [2] = {def = 0.10},

    [3] = {def = 0.15},

    [4] = {def = 0.20},

    [5] = {def = 0.25},

    },

    ["poison"] = {

    [1] = {def = 0.08},

    [2] = {def = 0.13},

    [3] = {def = 0.18},

    [4] = {def = 0.23},

    [5] = {def = 0.28},

    },

    },

    [6] = {

    ["fighting"] = {

    [1] = {def = 0.05},

    [2] = {def = 0.10},

    [3] = {def = 0.15},

    [4] = {def = 0.20},

    [5] = {def = 0.25},

    },

    ["normal"] = {

    [1] = {def = 0.05},

    [2] = {def = 0.10},

    [3] = {def = 0.15},

    [4] = {def = 0.20},

    [5] = {def = 0.25},

    },

    },

    [7] = {

    ["psychic"] = {

    [1] = {def = 0.10},

    [2] = {def = 0.15},

    [3] = {def = 0.20},

    [4] = {def = 0.25},

    [5] = {def = 0.30},

    },

    ["null"] = {

    },

    },

    [8] = {

    ["grass"] = {

    [1] = {def = 0.05},

    [2] = {def = 0.10},

    [3] = {def = 0.15},

    [4] = {def = 0.20},

    [5] = {def = 0.25},

    },

    ["bug"] = {

    [1] = {def = 0.05},

    [2] = {def = 0.10},

    [3] = {def = 0.15},

    [4] = {def = 0.20},

    [5] = {def = 0.25},

    },

    },

    [9] = {

    ["electric"] = {

    [1] = {def = 0.12},

    [2] = {def = 0.17},

    [3] = {def = 0.22},

    [4] = {def = 0.27},

    [5] = {def = 0.32},

    },

    }

    }

     

    local clansName = {

    --[num do clan] = {nome do clan, storage outfit normal, storage outfit rank5},

    [1] = {'Volcanic', 181613, 181625},

    [2] = {'Seavell', 181619, 181622},

    [3] = {'Orebound', 181620, 181627},

    [4] = {'Wingeon', 181616, 181626},

    [5] = {'Malefic', 181615, 181624},

    [6] = {'Gardestrike', 181614, 181628},

    [7] = {'Psycraft', 181618, 181629},

    [8] = {'Naturia', 181612, 181623},

    [9] = {'Raibolt', 181617, 181621},

    }

     

     

    function getClanPorcent(master, combat, option, type, type2) --alterado v1.9 \/

    if getPlayerClanNum(master) >= 1 then

    local clanAtk = clansAtk[getPlayerClanNum(master)]

    local clanDef = clansDef[getPlayerClanNum(master)]

     

    if option == "atk" and clanAtk[combat] then

    return clanAtk[combat][getPlayerClanRank(master)].atk

    else

    if option == "def" and clanDef[type] then

    return clanDef[type][getPlayerClanRank(master)].def

    elseif option == "def" and clanDef[type2] then

    return clanDef[type2][getPlayerClanRank(master)].def

    end

    end

    end

    return option == "atk" and 1 or 0

    end

     

    function getPlayerClanName(cid)

    if not isCreature(cid) then return 'No Clan!' end

    return clansName[getPlayerClanNum(cid)] and clansName[getPlayerClanNum(cid)][1] or 'No Clan!'

    end

     

    function getPlayerClanNum(cid)

    if not isCreature(cid) then return -1 end

    return getPlayerStorageValue(cid, 86228)

    end

     

    function getPlayerClanRank(cid)

    if not isCreature(cid) then return -1 end

    return getPlayerStorageValue(cid, 862281)

    end

     

    function setPlayerClan(cid, clan)

    if not isCreature(cid) or not clan then return false end

    if removePlayerClan(cid) then --para evitar possiveis problemas!

    if type(clan) == "number" and (clan >= 1 and clan <= 9) then

    setPlayerStorageValue(cid, 86228, clan) --sto clan

    setPlayerClanRank(cid, 1) --set rank 1

    setPlayerStorageValue(cid, clansName[clan][2], 1) --sto roupa

    return true

    elseif type(clan) == "string" then

    clan = string.lower(clan)

    for e, f in pairs(clansName) do

    local clan2 = string.lower(f[1])

    if clan == clan2 then

    setPlayerStorageValue(cid, 86228, e) --sto clan

    setPlayerClanRank(cid, 1) --set rank 1

    setPlayerStorageValue(cid, clansName[e][2], 1) --sto roupa

    return true

    end

    end

    end

    end

    return false

    end

     

    function setPlayerClanRank(cid, rank)

    if not isCreature(cid) or not rank then return false end

    if type(rank) == "number" and (rank >= 1 and rank <= 5) then

    setPlayerStorageValue(cid, 862281, rank)

    if rank == 5 then

    setPlayerStorageValue(cid, clansName[getPlayerClanNum(cid)][3], 1)

    end

    return true

    end

    return false

    end

     

    function removePlayerClan(cid)

    if not isCreature(cid) then return false end

    if getPlayerStorageValue(cid, 854789) >= 1 then return false end --nao pode remover o clan se o player tiver fazendo missoes de rank!

    setPlayerStorageValue(cid, 86228, -1) --sto do clan

    setPlayerStorageValue(cid, 862281, -1) --sto do rank

    setPlayerStorageValue(cid, 854789, -1) --sto da quest de rank

    setPlayerStorageValue(cid, 854788, -1) --sto catch, quest de rank

    setPlayerStorageValue(cid, 854787, -1) --sto task, quest de rank

    for i = 181612, 181638 do

    setPlayerStorageValue(cid, i, -1) --sto das roupas de clan

    end

    return true

    end

     

    function checkItensForTask(cid, itens)

    local check = 0

    local array = {}

    local missing = {}

    table.insert(missing, "Are missing: ")

    local c = 0

    for i = 1, #itens do

    if getPlayerItemCount(cid, itens[1]) >= itens[2] then

    check = check + 1

    else

    table.insert(array, {itens[1], (itens[2]-getPlayerItemCount(cid, itens[1]))})

    end

    end

    if check == #itens then

    for b = 1, #itens do

    doPlayerRemoveItem(cid, itens[1], itens[2])

    end

    return 0

    else

    for a = 1, #array do

    table.insert(missing, ((a == #array and c ~= 0) and " and " or a ~= 1 and ", " or "{")..(array[a][2]).." "..(getItemNameById(array[a][1])))

    c = c+1

    end

    table.insert(missing, "} yet.")

    return table.concat(missing)

    end

    end

     

    function checkPokemonForTask(cid, poke)

    local pbs = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)

    local slot = getPlayerSlotItem(cid, 8)

    if slot.itemid > 0 and isPokeball(slot.itemid) then

    if getItemAttribute(slot.uid, "poke") == poke and getItemAttribute(slot.uid, "task") and getItemAttribute(slot.uid, "task") >= 1 then

    doRemoveItem(slot.uid, 1)

    doTransformItem(getPlayerSlotItem(cid, CONST_SLOT_LEGS).uid, 2395)

    return true

    end

    end

    for i = 1, #pbs do

    if getItemAttribute(pbs, "poke") == poke and getItemAttribute(pbs, "task") and getItemAttribute(pbs, "task") >= 1 then

    doRemoveItem(pbs, 1)

    return true

    end

    end

    return false

    end

  8. elseif spell == "Compass Slash" then
    local config = {
    times = 5, --Vezes que o pokémon irá se teleportar.
    appearEffect = 211, --Efeito que vai aparecer no pokémon ao aparecer.
    effect = 223, --Efeito de corte de garras.
    combat = STEELDAMAGE, --Elemento.
    disappearInterval = 200, --Tempo para, depois de reaparecer, o pokémon desaparecer novamente. (em milésimos de segundo)
    teleportInterval = 400 --Intervalo de tempo entre cada teleporte do pokémon. (em milésimos de segundo)
    }

    local pos = getPosfromArea(cid, spell_area)
    local randomPosis = {}
    for i = 1, config.times do
    randomPosis[i] = pos[math.random(#pos)]
    if not isWalkable(randomPosis[i]) or getTileInfo(randomPosis[i]).protection then
    while not isWalkable(randomPosis[i]) do
    randomPosis[i] = pos[math.random(#pos)]
    end
    end
    end

    local function doTeleport(cid, time)
    if not isCreature(target) or time <= 0 then
    doAppear(cid)
    doCreatureSetNoMove(cid, false)
    doRegainSpeed(cid)
    end
    local index = math.random(#randomPosis)
    doTeleportThing(cid, randomPosis[index])
    for i = index, #randomPosis do
    randomPosis[i] = randomPosis[i + 1] or nil
    end
    doAppear(cid)
    doSendMagicEffect(getThingPos(cid), config.appearEffect)
    doDanoWithProtect(cid, config.combat, getThingPos(target), 0, -min, -max, config.effect)
    addEvent(doDisapear, config.disappearInterval, cid)
    addEvent(doTeleport, config.teleportInterval, cid, time - 1)
    end

    doDisapear(cid)
    doCreatureSetNoMove(cid, true)
    doChangeSpeed(cid, -getCreatureSpeed(cid))
    addEvent(doTeleport, config.teleportInterval, cid, config.times)


    Teste bem, eu não tenho verificado.

  9. Oi gente, hoje venho pedir que uma pessoa pode fazer e um ataque. (Se for muito difícil, eu poderia pagar)

    1° Ion Deluge: Este ataque produz um tamanho de quadra de ataque; Confusion ou Psychic e deixado em um estado para atacar Pokemon. Que o Estado faz é que converte todos os ataques em tipo elétrico em x tempo.

    2° Volt Absorb: Isso funciona passivo quando recebem um ataque elétrico e recupera vida depende da força do ataque.

    Obrigado, espero sua resposta.
    Eles podem responder por mensagem privada ou aqui.

     

  • Quem Está Navegando   0 membros estão online

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