Ir para conteúdo
  • Cadastre-se

Pedido Adicionar uma nova categoria no spells.xml


Posts Recomendados

.Qual servidor ou website você utiliza como base? 

TFS 0.4 Rev3996

Qual o motivo deste tópico? 

Bom dia, boa tarde boa noite pessoas, beleza, eu queria fazer uma coisa em meu server, que era adicionar uma nova categoria ou nao sei como chamaria, sabe ali no xml o "name" "words" "needtarget" etc?
 Eu queria queria adicionar mais um, o spelltype ou category, onde eu poderia dizer se ele era uma magia de shot, area, etc, mas isso apenas digitando tipo

 

spelltype = "AREA" 
spelltype = "SHOT" 
spelltype = "POISON"
"etc"


pesquisei, achei umas linhas, mas nao tenho a minima ideia de como adiciono isso, pra eu poder adicionar essa nova "categoria" no spells.xml
pq no caso eu queria adicionar pra aparecer no spell list. que seria esse spelltype="AREA"

 <instant name="mega bomb"             words="mega bomb" spelltype="AREA"   needtarget="1"      direction="1" lvl="250"             maglv="130"  mana="12000" soul="0" exhaustion="300" prem="0" enabled="1"  
script="mega bomb.lua"><vocation name="monster"/></instant>

 

Como nessa imagem, mas aqui no caso ele coloca isso no spell name tipo name="Mega Bomb (AREA)"
 

spelllist.png.d0a2779b94b2bcea9dbcd4e6d7ee8888.png

 

Link para o post
Compartilhar em outros sites

Tente alterar o script do spellbook.lua para isto:

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local t = {}
    for i = 0, getPlayerInstantSpellCount(cid) - 1 do
        local spell = getPlayerInstantSpellInfo(cid, i)
        if (spell.level ~= 0) then
            if (spell.manapercent > 0) then
                spell.mana = spell.manapercent .. "%"
            end

            table.insert(t, spell)
        end
    end

    table.sort(t, function(a, b) return a.level < b.level end)
    local text, prevLevel = "", -1
    for i, spell in ipairs(t) do
        local line = ""
        if (prevLevel ~= spell.level) then
            if (i ~= 1) then
                line = "\n"
            end

            line = line .. "Spells for Level " .. spell.level .. "\n"
            prevLevel = spell.level
        end

        text = text ..
            line .. "  " .. spell.words .. " - " .. spell.name .. "(" .. spell.spelltype .. ") : " .. spell.mana .. "\n"
    end

    doShowTextDialog(cid, item.itemid, text)
    return true
end

 

Link para o post
Compartilhar em outros sites

nao adianta, pq essa função não existe na distro, eu que pensei, imagino que a unica maneira é unserir ela, porem nao entendo de programação. no maximo consigo armengar quando entendo ate onde posso mecher, o que não é esse caso. procuro por palavras chave semelhante, mas vem muita informação e eu não tenho a minina ideia de onde alterar

20 minutos atrás, Anderson Sacani disse:

Tente alterar o script do spellbook.lua para isto:


function onUse(cid, item, fromPosition, itemEx, toPosition)
    local t = {}
    for i = 0, getPlayerInstantSpellCount(cid) - 1 do
        local spell = getPlayerInstantSpellInfo(cid, i)
        if (spell.level ~= 0) then
            if (spell.manapercent > 0) then
                spell.mana = spell.manapercent .. "%"
            end

            table.insert(t, spell)
        end
    end

    table.sort(t, function(a, b) return a.level < b.level end)
    local text, prevLevel = "", -1
    for i, spell in ipairs(t) do
        local line = ""
        if (prevLevel ~= spell.level) then
            if (i ~= 1) then
                line = "\n"
            end

            line = line .. "Spells for Level " .. spell.level .. "\n"
            prevLevel = spell.level
        end

        text = text ..
            line .. "  " .. spell.words .. " - " .. spell.name .. "(" .. spell.spelltype .. ") : " .. spell.mana .. "\n"
    end

    doShowTextDialog(cid, item.itemid, text)
    return true
end

 

 

Link para o post
Compartilhar em outros sites

Já testou? Caso não tenha testado, por favor teste.

Existe 2 outras possibilidades. Uma é em C++ e a outra é em Lua, porém a opção em Lua é mais trabalhosa já que precisará de uma tabela

No caso da solução em lua, terá que completar a tabela:

local list = {
    [1] = { spellName = "Berserk", spellType = "AREA" },
    [2] = { spellName = "Heal Friend", spellType = "HEAL" },
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local t, spelltype = {}, ""
    for i = 0, getPlayerInstantSpellCount(cid) - 1 do
        local spell = getPlayerInstantSpellInfo(cid, i)
        if (spell.level ~= 0) then
            if (spell.manapercent > 0) then
                spell.mana = spell.manapercent .. "%"
            end

            table.insert(t, spell)
        end
    end

    table.sort(t, function(a, b) return a.level < b.level end)
    local text, prevLevel = "", -1
    for i, spell in ipairs(t) do
        local line = ""
        if (prevLevel ~= spell.level) then
            if (i ~= 1) then
                line = "\n"
            end

            line = line .. "Spells for Level " .. spell.level .. "\n"
            prevLevel = spell.level
        end

        for i = 1, #list do
            if spell.name == list[i].spellName then
                spelltype = list[i].spellType
            end
        end

        text = text ..
            line .. "  " .. spell.words .. " - " .. spell.name .. "(" .. spelltype .. ") : " .. spell.mana .. "\n"
    end

    doShowTextDialog(cid, item.itemid, text)
    return true
end

 

Editado por Anderson Sacani (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
54 minutos atrás, Anderson Sacani disse:

Já testou? Caso não tenha testado, por favor teste.

Existe 2 outras possibilidades. Uma é em C++ e a outra é em Lua, porém a opção em Lua é mais trabalhosa já que precisará de uma tabela

No caso da solução em lua, terá que completar a tabela:



local list = {
    [1] = { spellName = "Berserk", spellType = "AREA" },
    [2] = { spellName = "Heal Friend", spellType = "HEAL" },
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local t, spelltype = {}, ""
    for i = 0, getPlayerInstantSpellCount(cid) - 1 do
        local spell = getPlayerInstantSpellInfo(cid, i)
        if (spell.level ~= 0) then
            if (spell.manapercent > 0) then
                spell.mana = spell.manapercent .. "%"
            end

            table.insert(t, spell)
        end
    end

    table.sort(t, function(a, b) return a.level < b.level end)
    local text, prevLevel = "", -1
    for i, spell in ipairs(t) do
        local line = ""
        if (prevLevel ~= spell.level) then
            if (i ~= 1) then
                line = "\n"
            end

            line = line .. "Spells for Level " .. spell.level .. "\n"
            prevLevel = spell.level
        end

        for i = 1, #list do
            if spell.name == list[i].spellName then
                spelltype = list[i].spellType
            end
        end

        text = text ..
            line .. "  " .. spell.words .. " - " .. spell.name .. "(" .. spelltype .. ") : " .. spell.mana .. "\n"
    end

    doShowTextDialog(cid, item.itemid, text)
    return true
end

 

caraka, no meu caso, por tabela, iria ter uns 200 spells ai kkk mas seria uma solução. o meu é um pouco diferente desse ai, pq ta configurado pra mostrar ml, soul, se é vip etc, e se nao tiver nao mostra. valou pela força vou dar uma olhada nisso ai, talvez demore pra organizar tudo, mas ficaria daora, pq a outra opção é como meu colega fez, ele colocou no spell name, porem eu teria q refazer toooodos os spells dos monstros, pois eles tem varios spells q player usa, dai o spell pararia de funcionar no monstro, ele faz assim no spell name ele coloca
name="mega bomb (1 HIT)"
name="explosion (AREA)"
 Conseguindo fazer direto em C++ seria mais otimizado, tentei achar pelo instante name, mas era função demais, nao sabia onde mecher.

_______________________________
Edit, fiz o teste, faz praticamente o que eu queria fazer, da um trabalhinho ter que registrar todos os spells.  mas se não conseguir fazer pela source, esse sera um ótimo quebra galho

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

essa parte q nao sei exatamente, vc fala tipo criar um arquivo na pasta lib ne? pq principalmente eu nao saberia como char rs
agora eu achei outra maneira de fazer oq eu quero, usando o spell name, pois no spell list eu nao uso, porem teria q criar magias separadas para os monstros, daria um trampinho, mas o resultado tambem ficaria bom

Editado por koyotestark (veja o histórico de edições)
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.

  • Conteúdo Similar

    • Por LasseXeterno
      Então, estou tentando adicionar uma nova "race" no meu Ot de base Cyan, tentei seguir 3 tutoriais aqui do tibiaking, um sobre race, porém nos códigos do meu servidor não tem o constant.h e nem o monster.cpp. E o outro tutorial, eu fiz tudo que ele pediu e quando entrei no game para testar, funcionava os golpes e as imunidades, porém não aparecia o número do dano e nem a cor.  Usei esse tutorial como base: 
      Pois ele é derivado. E o outro tutorial que usei foi: 
      Porém nesse, não consegui achar a const.h, e quando fui nos arquivos do creaturescript e adicionei uma cor nova a "COLOR_FAIRY", quando abro o jogo, os pokemons que seriam teoricamente "fada", o que eu usei de teste foi a Clefable. A Clefable tomava IK e dava IK no seu atk do tipo fada. 
      Além de que, o meu erro principal é esse: Warning - Monsters::loadMonster] Unknown race type fairy. (data/monster/pokes/geracao 1/Clefable.xml)
       Pois como eu já disse, não consigo achar onde adicionar uma nova race.

    • Por yuriowns
      Salve rapazes, tranquilo? Preciso de ajuda pra colocar para os npc's que vendem pots verificarem quantos itens possuem no tile em que o player está e se tiver com +80 itens no sqm, o npc avisa e não vende nada até o player ir em um sqm com menos de 80 itens no chão.
       
    • Por A.Mokk
      .Qual servidor ou website você utiliza como base? 
      TFS 0.4
      Qual o motivo deste tópico? 
      Bom pessoal, a algumas semanas atras eu joguei um servidor que havia sistema de imbuimento sendo 8.60, no servidor se utilizava a spellwand para encantar as armas, os comandos eram dado no canal Imbuiment... Gostaria de saber se alguém teria como disponibilizar algum sistema de imbuimento, já procurei pra caramba aqui no fórum mas tudo que encontro é pra versões acima da que eu uso.
       
    • Por Mateus Robeerto
      Não sei se aqui é a área ou algum local para solicitar a alteração do email antigo... Não lembro mais a senha dele, nem a resposta secreta para acessar. Peço a algum administrador ou moderador para, por favor, alterar o email para o novo.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo