Ir para conteúdo
  • Cadastre-se

(Resolvido)ERRO CONFIGURAÇÃO DE MOVES POKEMON


Ir para solução Resolvido por Rayo,

Posts Recomendados

Qual servidor você utiliza como base? 

 

Pokemon Dash v6 by Valakinhas 

 

Qual o motivo deste tópico? 

 

 Meu servidor possui um sistema de ataque pokemon (m1,m2,m3...m12), muito antigo e defasado, por esse motivo quis passar o sistema do PDA (dos moves em uma tabela na lib e chamá-los pela TalkAction do server) porém sem sucesso. Conseguir botar o sistemas em uma base mais antiga, como pokemon flash para testes somente, porém na dash v6 não obtive sucesso.

 Considero a Dash v6 do Valakinhas a melhor base, sem bugs, básica (não possuem gender nem lv system) e possui source.

 

 Se alguém puder me ajudar a passar esses sistemas do PDA para o Dash v6 juntamente com as modificações necessárias, ficaria muito grado e feliz também em ao final de minha edições, liberar a base Dash v6 do Valakinhas com mais esse complemento aqui no TK.

 

 

Está surgindo algum erro? Se sim coloque-o aqui. 

 

Passei a tabela com a configuração dos moves e a listas de spells pra lib, porém não consigo puxá-las na hora de usar os atcks pokemon.

 

bug.thumb.png.874b6fac6785dc4589eaf8b0fe426e7b.png

 

ABAIXO SEGUE O SCRIPT DA TALKACTION

 

Spoiler

local msgs = {"use ", ""}

function doAlertReady(cid, id, movename, n, cd)
    if not isCreature(cid) then return true end
    local myball = getPlayerSlotItem(cid, ?
    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

    if getCreatureCondition(getCreatureSummons(cid)[1], CONDITION_INVISIBLE) and not isGhostPokemon(getCreatureSummons(cid)[1]) then
    return 0
    end

local mypoke = getCreatureSummons(cid)[1]

    if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end
    if getCreatureName(mypoke) == "Evolution" then return true 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
local cdzin = "move"..it..""

    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 false and getLevel(mypoke) < move.level then
        doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't have enough level to use this move.")
    return 0
    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 this move again.")
    return 0
    end

    if getTileInfo(getThingPos(mypoke)).protection then
        doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.")
    return 0
    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

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

        if isSleeping(mypoke) then
            newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, ?
            doCreatureSay(mypoke, "zZzZ", TALKTYPE_MONSTER)
            return 0
        else
            newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, move.cd)
        end

    if move.name ~= "Metronome" then
        doCreatureSay(mypoke, ""..string.upper(move.name).."!", TALKTYPE_MONSTER)
    end

    addEvent(doAlertReady, move.cd * 1000, cid, newid, move.name, it, cdzin)
    docastspell(mypoke, move.name)
    doCreatureAddCondition(cid, playerexhaust)

    if useKpdoDlls then
        doUpdateCooldowns(cid)
    end

return 0
end

 

 

Editado por brasil0014
Ortográfia (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Sobre o erro:Ele está tentando chamar uma função com o nome: getCD que não existe na source.(Pode ser que ela exista dentro dos códigos LUA mas não existe dentro dos códigos C++).

Contribuições:
 

=> Distribuições/Servidores

  1. [8.60] The Forgotten Server 1.3 (COMPILADO WIN x64)

 

=> Scripts/Códigos/Tutoriais

  1. Pokemon pescado aparece em volta do seu pokemon
  2. [Gesior]Dobrar pontos PagSeguro a partir de x valor doado

 

 Gostou de alguma contribuição? Rep +?

Link para o post
Compartilhar em outros sites

Ah alguma maneira de implementar na source do servidor tal atribuição ou eu posso recorrer a outra atribuição no talkaction ? 

Link para o post
Compartilhar em outros sites
  • Solução
3 horas atrás, brasil0014 disse:

Ah alguma maneira de implementar na source do servidor tal atribuição ou eu posso recorrer a outra atribuição no talkaction ? 

 

Há sim... se você souber o código que foi implementado, ai é só abrir o visual studio,colocar o código fonte e compilar. Caso contrario, é melhor escolher outra base.

Contribuições:
 

=> Distribuições/Servidores

  1. [8.60] The Forgotten Server 1.3 (COMPILADO WIN x64)

 

=> Scripts/Códigos/Tutoriais

  1. Pokemon pescado aparece em volta do seu pokemon
  2. [Gesior]Dobrar pontos PagSeguro a partir de x valor doado

 

 Gostou de alguma contribuição? Rep +?

Link para o post
Compartilhar em outros sites

Valeu broder já me ajudou muito, minha dúvida com relação ao erro acima foi sanada, se quiser podem fechar o tópico. Dúvida sanada 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo