Jump to content
×
×
  • Create New...

action [Encerrado] Transformar com problema


Recommended Posts

Olá galera do xtibia!

 

Estou com um problema no meu sistema de transformar, ou pode ser o spell.xml. Por exemplo quando vou usar o ataque "Bijuu Dama" do naruto coloco para ser utilizado pelas vocações que correspondem ao transform que tem o looktype do naruto na forma bijuu, (Forma da kyuubi).

Esse transform era para ser a <vocation> id = 8, e id = 10;

 

  1. Fui la na pasta Data/Spells e abri spells.xml;
  2. Encontrei a magia "Bijuu Dama" e coloquei as vacações, 8 e 10;

     

    post-386853-0-50719400-1447033524_thumb.png

3. Salvei e executei o servidor (TheForgottenServer);

 

O que acontece é que a magia pode ser usada no transform com id = 7 até o id = 10; -- (7, 8, 9, 10)

O <vocation> do naruto vai do id = 1, até id = 12;

Achei o arquivo Transform.lua em Data/Talkactions/scripts e está assim:

 

 

local config = {
--[vocation id] = { level, nova voc, looktype, efeito}
[1] = { 25, 2, 66, 208},
[2] = { 50, 3, 91, 208},
[3] = { 75, 4, 18, 208},
[4] = { 100, 5, 31, 208},
[5] = { 125, 6, 92, 208},
[6] = { 150, 7, 40, 208},
[7] = { 175, 8, 305, 208},
[8] = { 200, 9, 320, 208},
[9] = { 225, 10, 179, 208},
[10] = { 250, 11, 394, 208},
[11] = { 300, 12, 397, 208},
[13] = { 25, 14, 93, 108},
[14] = { 50, 15, 6, 108},
[15] = { 75, 16, 5, 108},
[16] = { 100, 17, 306, 108},
[17] = { 125, 18, 7, 108},
[18] = { 150, 19, 94, 108},
[19] = { 175, 20, 59, 108},
[20] = { 200, 21, 8, 108},
[21] = { 225, 22, 178, 110},
[22] = { 250, 23, 95, 110},
[23] = { 275, 24, 54, 110},
[25] = { 25, 26, 80, 87},
[26] = { 50, 27, 190, 87},
[27] = { 75, 28, 83, 87},
[28] = { 100, 29, 191, 87},
[29] = { 150, 30, 192, 87},
[30] = { 175, 31, 193, 87},
[31] = { 225, 32, 392, 87},
[32] = { 250, 33, 330, 87},
[34] = { 25, 35, 194, 5},
[35] = { 50, 36, 175, 5},
[36] = { 75, 37, 169, 5},
[37] = { 100, 38, 173, 5},
[38] = { 150, 39, 172, 5},
[39] = { 175, 40, 171, 5},
[40] = { 225, 41, 174, 5},
[41] = { 250, 42, 170, 5},
[50] = { 25, 51, 67, 205},
[51] = { 50, 52, 72, 205},
[52] = { 75, 53, 158, 205},
[53] = { 100, 54, 65, 205},
[54] = { 125, 55, 329, 205},
[55] = { 150, 56, 188, 205},
[56] = { 175, 57, 62, 205},
[57] = { 200, 58, 189, 205},
[58] = { 225, 59, 335, 205},
[59] = { 250, 60, 57, 205},
[70] = { 25, 71, 102, 124},
[71] = { 50, 72, 103, 124},
[72] = { 75, 73, 105, 124},
[73] = { 100, 74, 107, 124},
[74] = { 150, 75, 108, 124},
[75] = { 175, 76, 314, 124},
[76] = { 225, 77, 315, 124},
[77] = { 250, 78, 333, 124},
[90] = { 25, 91, 331, 209},
[91] = { 50, 92, 69, 209},
[92] = { 75, 93, 70, 209},
[93] = { 100, 94, 199, 209},
[94] = { 150, 95, 196, 209},
[95] = { 175, 96, 197, 209},
[96] = { 225, 97, 198, 209},
[97] = { 250, 98, 332, 209},
[97] = { 250, 98, 332, 209},
[110] = { 25, 111, 88, 187},
[111] = { 75, 112, 341, 187},
[112] = { 100, 113, 343, 187},
[113] = { 150, 114, 342, 187},
[114] = { 200, 115, 344, 187},
[115] = { 250, 116, 345, 187},
[130] = { 25, 131, 296, 124},
[131] = { 75, 132, 297, 124},
[132] = { 150, 133, 298, 124},
[133] = { 200, 134, 299, 124},
[134] = { 250, 135, 300, 124},
[150] = { 25, 151, 384, 126},
[151] = { 75, 152, 385, 126},
[152] = { 150, 153, 386, 126},
[153] = { 200, 154, 396, 126},
[170] = { 25, 171, 97, 108},
[171] = { 50, 172, 285, 108},
[172] = { 75, 173, 282, 108},
[173] = { 100, 174, 98, 108},
[174] = { 125, 175, 284, 109},
[175] = { 150, 176, 99, 109},
[176] = { 200, 177, 283, 109},
[190] = { 25, 191, 373, 4},
[191] = { 75, 192, 374, 4},
[192] = { 125, 193, 375, 4},
[193] = { 150, 194, 376, 4},
[194] = { 200, 195, 318, 4},
[195] = { 250, 196, 377, 4},
[200] = { 25, 201, 11, 10},
[201] = { 50, 202, 287, 10},
[202] = { 75, 203, 12, 10},
[203] = { 125, 204, 10, 10},
[204] = { 150, 205, 289, 10},
[205] = { 175, 206, 288, 10},
[206] = { 200, 207, 13, 10},
[207] = { 250, 208, 14, 10}
}
function onSay(cid, words, param, channel)
local from,to = {x=1001, y=705, z=7},{x=1031, y=737, z=7} -- começo e final do mapa
local from2,to2 = {x=1011, y=705, z=6},{x=1031, y=738, z=6} -- começo e final do mapa
local from3,to3 = {x=1012, y=706, z=5},{x=1032, y=739, z=5} -- começo e final do mapa
local from4,to4 = {x=985, y=598, z=7},{x=1044, y=652, z=7} -- começo e final do mapa
local from5,to5 = {x=986, y=615, z=6},{x=1039, y=647, z=7} -- começo e final do mapa
local from6,to6 = {x=990, y=616, z=5},{x=1040, y=647, z=5} -- começo e final do mapa
if isInRange(getCreaturePosition(cid), from, to) or isInRange(getCreaturePosition(cid), from2, to2) or isInRange(getCreaturePosition(cid), from3, to3) or isInRange(getCreaturePosition(cid), from4, to4) or isInRange(getCreaturePosition(cid), from5, to5) or isInRange(getCreaturePosition(cid), from6, to6) then
doPlayerSendCancel(cid, "Você não pode se Transformar nesta área!") return true
end
doPlayerSay(cid, "transformar")
local voc = config[getPlayerVocation(cid)]
if voc then
if getPlayerLevel(cid) >= voc[1] then
doPlayerSetVocation(cid, voc[2])
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você Transformou!")
local outfit = {lookType = voc[3]}
doCreatureChangeOutfit(cid, outfit)
doSendMagicEffect(getCreaturePosition(cid), voc[4])
else
doPlayerSendTextMessage(cid, MESSAGE_STATUS_WARNING, "Você precisa estar no level " .. voc[1] .. " para transformar.")
end
else
doPlayerSendCancel(cid, "Você não pode se Transformar!")
end
return true
end

É isso ai galera, ja quebrei muito a cabeça com isso... não sei o por que de estar conseguindo utilizar a magia em outras "vocações" sendo que no próprio spell.xml está apenas esses 2 ids de vocações

Eu reparei que se eu coloco um id = 'x', ele consegue usar no id = 'x - 1' e no 'x', exemplo: id = 8; pode usar no id = 7, e logicamente no id = 8.

Obrigado!

Cya


.


Consegui debugar.. o Problema estava no vocations.xml...

Edited by GGgames
Link to post
Share on other sites
  • 2 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link to post
Share on other sites
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.


    Administrador |  Diretor |  Coordenador |  Moderador |  Suporter |  Estagiário |  Herói
  • Similar Content

    • By Hiquez
      Olá rapazeada do xtibia, estou tendo problemas em adaptar um script meu aqui para uma quest "sacrifice"
      estou precisando que uma action tenha uma tabela onde eu possa colocar varios itens diferentes, por exemplo: 1000, 1010, 10022 e outros
      preciso que a action verifique se há algum desses item em x Position, se algum desses item da tabela estiver na postion "x" então o item irá se transformar no item "2000"
      Obs: todos os itens da tabela devem se transformar no item "2000", se puder colocar pra aparecer um effect quando o item for transformado será ótimo
      o script precisa checar algum dos itens que existirá na tabela e se algum desses itens estiver la na position, então ele irá se transformar em "2000"
       
      Eu estava tentando adaptar o script da shovel mais não tive muito êxito, alguém poderia me ajudar por favor
      ?
      local holes = {468, 481, 483, 7932, 8579}
      local sand = {231, 9059}
      function onUse(cid, item, fromPosition, itemEx, toPosition)
          if(isInArray(holes, itemEx.itemid)) then
              local newId = itemEx.itemid + 1
              if(itemEx.itemid == 8579) then
                  newId = 8585
              end
              doTransformItem(itemEx.uid, newId)
              doDecayItem(itemEx.uid)
          elseif(isInArray(sand, itemEx.itemid)) then
              local rand = math.random(1, 100)
              if(itemEx.actionid  == 100 and rand <= 20) then
                  doTransformItem(itemEx.uid, 489)
                  doDecayItem(itemEx.uid)
              elseif(rand >= 1 and rand <= 5) then
                  doCreateItem(2159, 1, toPosition)
              elseif(rand > 85) then
                  doCreateMonster("Scarab", toPosition, false)
              end
              doSendMagicEffect(toPosition, CONST_ME_POFF)
          end
          return true
      end
       
      Esse é o script da shovel se caso puder ajudar, agradeço desde ja! ❤️ 
    • By jondrops
      Olá amigos, estou tentando instalar o gesior acc e estou tendo o seguinte erro >>>
      Alguém poderia me ajudar??? ficaria imensamente grato!! obrigado desde já ++!! ❤️❤️ 
       
       
       
      Lastestnews.php - Line 66
       
       
       
    • By klbkevinklb
      Fala gente, tudo bem...bom eu to sumido aqui do portal, porém hoje estou de volta com uma coisa para disponibilizar. Muitos ja devem saber, alguns não...a pxg tem um sistema que voce pode pescar de andares mais altos, eu procurei muito pra descobrir e bom encontrei e hjee vou ensinar a voces:
       
      abra o arquivo: actions.cpp/ procure por isso:
       

       ReturnValue Actions::canUseFar(const Creature* creature, const Position& toPos, bool checkLineOfSight)
       
      Ela vai estar assim:
       

      ReturnValue Actions::canUseFar(const Creature* creature, const Position& toPos, bool checkLineOfSight) {     if(toPos.x == 0xFFFF)         return RET_NOERROR;     const Position& creaturePos = creature->getPosition();     if(creaturePos.z > toPos.z)         return RET_FIRSTGOUPSTAIRS;     if(creaturePos.z < toPos.z)         return RET_FIRSTGODOWNSTAIRS;     if(!Position::areInRange<7,5,0>(toPos, creaturePos))         return RET_TOOFARAWAY;     if(checkLineOfSight && !g_game.canThrowObjectTo(creaturePos, toPos))         return RET_CANNOTTHROW;     return RET_NOERROR; }
       
      Troque por essa abaixo:
       
      Apague a função toda e coloque isso:
       

      ReturnValue Actions::canUseFar(const Creature* creature, const Position& toPos, bool checkLineOfSight) {     if(toPos.x == 0xFFFF)         return RET_NOERROR;     const Position& creaturePos = creature->getPosition();     if(creaturePos.z > toPos.z)         return RET_FIRSTGOUPSTAIRS; //    if(creaturePos.z < toPos.z) //        return RET_FIRSTGODOWNSTAIRS;     if(!Position::areInRange<7,5,3>(toPos, creaturePos))         return RET_TOOFARAWAY; //    if(checkLineOfSight && !g_game.canThrowObjectTo(creaturePos, toPos)) //        return RET_CANNOTTHROW;     return RET_NOERROR; }
       
       
      Feito tudo certo, voce conseguira pescar de cima de montanhas. Obrigado e boa noite a todos.
    • By Asasashu3
      Boa noite, eu estive procurando no fórum um script que atribuísse  slot e atributos a um item, eu ate encontrei o script no fórum, porem estou precisando de ajuda para ajusta-lo ou corrigir o bug.
       
      Script:
      Creaturescript:
       
      Action:
       
      Bom o script está funcionando, porem o bug que esta acontecendo é que ao utilizar o item no set ele esta atribuindo a % porem não esta somando com as skill e HP que o player já possui, eu queria ajuda nesta parte.
       
      Caso não tiver solução eu queria trocar % por atributos brutos por ex: (+15 de ml sem ser em %)
      TFS: 0.3.6
      REP+
      Agradeço a Atenção.
       
    • By erichwenz
      Pessoal eu gostaria de um script para meu ot que fizesse a seguinte função:
      O player fale um comando tipo: !Buylife
      Que custe 10kk.
      E que aumentasse 10000 Mil de life.
      então exemplo um ek que tem 1000 de life, e comprar com o comando, ele ficaria com 11000.
      Se alguém tem esse script, manda ai please.