Ir para conteúdo

Mega Evolution System (PxG)


zipter98

Posts Recomendados

Só que o seu OT é outra base.

 

 

ola zipter blz man. vo te pedir um favorzaooo. tem como me passa o tuto pra pda pokecyan. e tipo eu ja tinha criado o item mega stone e evoluia os pokes mais eu nao sei trocar o efeito ae vo modificar pro seu tuto como uma magia mais oq preciso fazer aq apago as stones que criei mega. e fasso oq crio a magia tem como me passa um tuto dos passos. desde ja agradeço man. e como sempre rep+++ PS as magias que vc me ajudo criar fiz tao massa so que sempre que tento postar algo naquela pagina da erro e a paginase perde e nao vai mais menssagens.

 

ae flames tem como vc me ajuda man????

 

vo te pedir um favorzaooo. tem como me passa o tuto pra pda pokecyan. e tipo eu ja tinha criado o item mega stone e evoluia os pokes mais eu nao sei trocar o efeito ae vo modificar pro seu tuto como uma magia mais oq preciso fazer aq apago as stones que criei mega. e fasso oq crio a magia tem como me passa um tuto dos passos. desde ja agradeço man. e como sempre rep+++

 

Lol, muito bom, irei testar.

 

#Edit

Fiz td certo, pois acontece isso.

[22/06/2015 22:47:28] Admin Gabriel has logged in.

[22/06/2015 22:47:28] [Error - CreatureScript Interface] 
[22/06/2015 22:47:28] data/creaturescripts/scripts/login.lua:onLogin
[22/06/2015 22:47:28] Description: 
[22/06/2015 22:47:28] (luaGetCreatureName) Creature not found

[22/06/2015 22:47:28] [Error - CreatureScript Interface] 
[22/06/2015 22:47:28] data/creaturescripts/scripts/login.lua:onLogin
[22/06/2015 22:47:28] Description: 
[22/06/2015 22:47:28] data/lib/cooldown bar.lua:128: attempt to index a boolean value
[22/06/2015 22:47:28] stack traceback:
[22/06/2015 22:47:28] 	data/lib/cooldown bar.lua:128: in function 'doUpdateMoves'
[22/06/2015 22:47:28] 	data/creaturescripts/scripts/login.lua:230: in function <data/creaturescripts/scripts/login.lua:6>
[22/06/2015 22:47:28] Admin Gabriel has logged out.

 

Link para o comentário
Compartilhar em outros sites

Aquele efeito que aparece quando você evolui o pokemon para Mega... Como proceder se eu não tenho ele no meu cliente?

Coloque do Ancient Power, é apenas o efeito de quando ele evoluir para Mega.

 

Postado pelo zipter em outro tópico:

Postado 29/June/2015 - 22:49

Responde rápido se possível, logo vou sair e amanhã irei viajar e só voltarei mês que vem.

 

@clebao666

Crie um tópico que eu irei ajuda-lo.

Editado por FlamesAdmin
Link para o comentário
Compartilhar em outros sites

 

Oi.

Sistema escrito para PDA by Slicer, v1.9. Sua adaptação para outras bases, entretanto, pode ser bem simples.

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).

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 returnValue
end
No código da função doUpdateMoves(cid), troque o segundo:
table.insert(ret, "n/n,")
por:
local mEvolve
if 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
    end
end
if 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 = getThingPos(cid), getCreatureLookDir(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)
                    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 true
end
Depois, em goback.lua:
Abaixo de:
if not pokes[pokemon] then
    return true
end
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]
    end
end
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, f = 0, t = "?"}
    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!"
end
doCreatureSay(cid, getPokeName(mypoke)..", "..spellMessage, TALKTYPE_SAY)
Se quiser que o "Mega" não 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 clan 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.")
    end
end
Bem, é isso aí. Acho que não esqueci de nada.
Até mais.

 

 

ae consegui fazer todos mega aq ta da hr dmais so que ainda nao consegui fazer o cowdown bar aparecer e no outro tuto seu do smeargle system tbm nao aparece os cowdon bar tbm das magias sketch. preciso saber que nome poe certo onde fica o nome que precisa por nos icon do client na pasta do server.

 

desde ja agradeço e mais rep++++

 

Link para o comentário
Compartilhar em outros sites

Mano . pra mim fazer isso eu tenho que primeiro colocar as sprites . as stones depois seguir com esse tutorial?

 

 

é cara, você precisa ter o item da mega stone criado e as sprites das mega evoluções, a não ser que você queira um Mega Blastoise com sprite do próprio Blastoise. Já o efeito da evolução você pode colocar um existente. Ah, e obrigado pelo sistema Zipter98 ^^

Editado por Shadow Phantom
Link para o comentário
Compartilhar em outros sites

Shadow , Tenho aq as Sprites . os items tudo certo . vou tentar fazer :D

 

 

OBG !


Mais uma duvida . Devo criar a stone do mega no ItemEditor depois no Items.Xml ?confused.gif

Link para o comentário
Compartilhar em outros sites

Shadow , Tenho aq as Sprites . os items tudo certo . vou tentar fazer :D

 

 

OBG !

Mais uma duvida . Devo criar a stone do mega no ItemEditor depois no Items.Xml ?confused.gif

exato, para mais informações olhe na pm.

Editado por Shadow Phantom
Link para o comentário
Compartilhar em outros sites

Mais uma kawoeka Criei a stone . Agora a foto do mega como eu crio ? . Devo criala no item.xml tbm ? attachicon.gifitem_13341.png

sim, o portrait é adicionado no item.xml também, tente se sair errado me chame na pm que eu te explico como adicionar corretamente.

Editado por Shadow Phantom
Link para o comentário
Compartilhar em outros sites

Obrigado ! , desculpe telo incomodado tongue.pngpositivo.gif


Cara , um probleminha aq ! fui no xml e pesquisei por alguma portrait pra pegar como base . mas não tem portrait nenhuma .-.

Link para o comentário
Compartilhar em outros sites

Obrigado ! , desculpe telo incomodado tongue.pngpositivo.gif

Cara , um probleminha aq ! fui no xml e pesquisei por alguma portrait pra pegar como base . mas não tem portrait nenhuma .-.

Use esse como base:

kZyrU4V.jpg

PTOXkgs.jpg

<item fromid="ID 1° Portrait" toid="ID Ultimo Portrait" article="a" name="portrait"/>
Editado por FlamesAdmin
Link para o comentário
Compartilhar em outros sites

Obrigado brow :D vou tentar

 

Brother eu sou realmente cabaço pra criar items . tipo devo criar essa portrite e a stone no fim do Items.Xml?

Editado por mariano1
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...