Ir para conteúdo

duflex

Artesão
  • Total de itens

    120
  • Registro em

  • Última visita

Histórico de Reputação

  1. Upvote
    duflex recebeu reputação de raulcdj em DITTO E SHINY DITTO MEMORY POR TALCKATIONS!   
    Fala galera beleza ? criei este tópico para ajudar alguns que tem shiny ditto , e ditto , e usam a memory sistem por talkations , mas não sabem colocar no shiny ditto ! 
     
    Espero que gostem 
     
    Canal : Vini3h
     
    Em data / Talkations / scripts Criem 1 arquivo com o nome de dittomemory.lua (Caso não tenha) , e coloque isto dentro :
     
     
    Agora vá em : Data/Talkactions/Talkactions.xml 
    E adicione está linha :
    OBS : /memory ; /memory check ; /memory save ; /memory forget São os comandos dele !!
     
     
     
     
    --Créditos : zipter98
  2. Thanks
    duflex recebeu reputação de VelhoBarreiro em [Resolvido] [ajuda]re-tirar : ganho pokemon ao criar conta   
    Obrigado <3 
  3. Upvote
    duflex deu reputação a Administrador em [Encerrado] [Ajuda] Mega Evolução (PXG)   
    Tópico Movido
    Este tópico foi movido de "Xtibia.com → Atendimento → Assistência"
    para "OTServ → Suporte OTServ → Suporte Derivados".
     
     
  4. Upvote
    duflex deu reputação a Deadpool em Mega Evolution System (PxG)   
    posta o arquivo
  5. Upvote
    duflex deu reputação a zipter98 em Mega Evolution System (PxG)   
    Base usada: PDA by Slicer, v1.9
     
    Para quem não conhece o sistema de mega evoluções, recomendo acessar este link. A diferença é que a pedra (mega stone) não ocupa o espaço de um Held Item tier Y (visto que não são todos os servidores que possuem Held Itens).
     
    Instalação do sistema (atenção nos detalhes)  
    data/lib:
     
    cooldown bar.lua:
    Troque o código da função getNewMoveTable(table, n) por este:
    function getNewMoveTable(table, n)    if table == nil then        return false    end    local moves = {table.move1, table.move2, table.move3, table.move4, table.move5, table.move6, table.move7, table.move8, table.move9, table.move10, table.move11, table.move12}    local returnValue = moves    if n then        returnValue = moves[n]    end    return returnValueend No código da função doUpdateMoves(cid), troque o segundo: table.insert(ret, "n/n,") por:
    local mEvolveif not getCreatureName(summon):find("Mega") and getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone") then    if not isInArray(ret, "Mega Evolution,") then        table.insert(ret, "Mega Evolution,")        mEvolve = true    endendif not mEvolve then    table.insert(ret, "n/n,")end  
    Depois, em pokemon moves.lua: Troque: min = getSpecialAttack(cid) * table.f * 0.1   --alterado v1.6 por:
    min = getSpecialAttack(cid) * (table and table.f or 0) * 0.1   --alterado v1.6  
    Código da spell: elseif spell == "Mega Evolution" then    local effect = xxx                          --Efeito de mega evolução.    if isSummon(cid) then        local pid = getCreatureMaster(cid)        if isPlayer(pid) then            local ball = getPlayerSlotItem(pid, 8).uid            if ball > 0 then                local attr = getItemAttribute(ball, "megaStone")                if attr and megaEvolutions[attr] then                    local oldPosition, oldLookdir, health_percent_lost = getThingPos(cid), getCreatureLookDir(cid), (getCreatureMaxHealth(cid) - getCreatureHealth(cid)) * 100 / getCreatureMaxHealth(cid)                    doItemSetAttribute(ball, "poke", megaEvolutions[attr][2])                    doSendMagicEffect(getThingPos(cid), effect)                    doRemoveCreature(cid)                    doSummonMonster(pid, megaEvolutions[attr][2])                    local newPoke = getCreatureSummons(pid)[1]                    doTeleportThing(newPoke, oldPosition, false)                    doCreatureSetLookDir(newPoke, oldLookdir)                    adjustStatus(newPoke, ball, true, false) doCreatureAddHealth(newPoke, -(health_percent_lost * getCreatureMaxHealth(newPoke) / 100))                    if useKpdoDlls then                        addEvent(doUpdateMoves, 5, pid)                    end                end            end        end    end Depois, em configuration.lua:
    megaEvolutions = {    --[itemid] = {"poke_name", "mega_evolution"},    [11638] = {"Charizard", "Mega Charizard X"},    [11639] = {"Charizard", "Mega Charizard Y"},}  
    Agora, em data/actions/scripts, código da mega stone: function onUse(cid, item)    local mEvolution, ball = megaEvolutions[item.itemid], getPlayerSlotItem(cid, 8).uid    if not mEvolution then        return doPlayerSendCancel(cid, "Sorry, this isn't a mega stone.")    elseif ball < 1 then        return doPlayerSendCancel(cid, "Put a pokeball in the pokeball slot.")    elseif #getCreatureSummons(cid) > 0 then        return doPlayerSendCancel(cid, "Return your pokemon.")    elseif getItemAttribute(ball, "poke") ~= mEvolution[1] then        return doPlayerSendCancel(cid, "Put a pokeball with a(n) "..mEvolution[1].." in the pokeball slot.")    elseif getItemAttribute(ball, "megaStone") then        return doPlayerSendCancel(cid, "Your pokemon is already holding a mega stone.")    end    doItemSetAttribute(ball, "megaStone", item.itemid)    doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Now your "..getItemAttribute(ball, "poke").." is holding a(n) "..getItemNameById(item.itemid)..".")    doRemoveItem(item.uid)    return trueend  
    Depois, em goback.lua: Abaixo de: if not pokes[pokemon] then    return trueend coloque:
       if pokemon:find("Mega") then        local normalPoke = megaEvolutions[getItemAttribute(item.uid, "megaStone")][1]        if normalPoke then            doItemSetAttribute(item.uid, "poke", normalPoke)            pokemon = normalPoke        end    end  
    Depois, em data/creaturescripts/scripts, look.lua:
    Abaixo de: local boost = getItemAttribute(thing.uid, "boost") or 0 coloque:
    local extraInfo, megaStone = "", getItemAttribute(thing.uid, "megaStone")if megaStone then    extraInfo = getItemNameById(megaStone)       if pokename:find("Mega") then        pokename = megaEvolutions[megaStone][1]    endend  
    Depois, acima do primeiro: doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, table.concat(str)) coloque:
    if extraInfo ~= "" then    table.insert(str, "\nIt's holding a(n) "..extraInfo..".")end  
    Já em data/talkactions/scripts, move1.lua: Abaixo de: function doAlertReady(cid, id, movename, n, cd) coloque:
    if movename == "Mega Evolution" then return true end Troque:
       if not move then        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.")        return true    end por:
    if not move then        local isMega = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "megaStone")        if not isMega or name:find("Mega") then            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.")            return true        end        local moveTable, index = getNewMoveTable(movestable[name]), 0        for i = 1, 12 do            if not moveTable[i] then                index = i                break            end        end        if tonumber(it) ~= index then            doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.")            return true        end        local needCds = true                   --Coloque false se o pokémon puder mega evoluir mesmo com spells em cooldown.        if needCds then            for i = 1, 12 do                if getCD(getPlayerSlotItem(cid, 8).uid, "move"..i) > 0 then                    return doPlayerSendCancel(cid, "To mega evolve, all the spells of your pokemon need to be ready.")                end            end        end        move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0}    end E troque:
    doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..move.name.."!", TALKTYPE_SAY) por:
    local spellMessage = msgs[math.random(#msgs)]..""..move.name.."!"if move.name == "Mega Evolution" then    spellMessage = "Mega Evolve!"enddoCreatureSay(cid, getPokeName(mypoke)..", "..spellMessage, TALKTYPE_SAY)  
     
    Se não quiser que o "Mega" apareça no nome do pokémon, vá em data/lib, level system.lua: Acima de: if getItemAttribute(item, "nick") then    nick = getItemAttribute(item, "nick")end coloque:
       if nick:find("Mega") then        nick = nick:match("Mega (.*)")        if not pokes[nick] then            nick = nick:explode(" ")[1]        end    end  
     
    Caso queiram que cada mega evolução tenha um clã específico: Em move1.lua, acima de:
    move = {name = "Mega Evolution", level = 0, cd = 0, dist = 1, target = 0, f = 0, t = "?"} coloque:
    local megaEvoClans = {    --[mega_stone_id] = "clan_name",    [91912] = "Volcanic",    [91913] = "Seavell",    --etc,}if megaEvoClans[isMega] then    if getPlayerClanName(cid) ~= megaEvoClans[isMega] then        return doPlayerSendCancel(cid, "You can't mega evolve this pokemon.")    endend  
    Finalizando o tópico após uma pequena reestruturação na indexação, gostaria de levantar algo que acredito ser bem claro: o sistema é cheio de detalhes, muitas vezes minuciosos. Um simples erro e bugs aparecem por toda parte. Se você encontrou algum, pelo menos uma das duas seguintes condições acontecem: Base DIFERENTE da usada. Peço desculpas, mas não pretendo adaptar o sistema para todas as bases diferentes que aparecerem. Se a base for a mesma, você com certeza errou em algum ponto da instalação. O sistema foi testado inúmeras vezes, não apenas por mim, e seu funcionamento foi seguidamente comprovado.  
    Façam bom uso, invocadores.
  • Quem Está Navegando   0 membros estão online

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