Jump to content

Programação (Resolvido)Debug ao adicionar uma nova shoottype no Tibia 8.6


Go to solution Solved by Koebaratao,

Recommended Posts

Boa tarde pessoal, esse é meu primeiro tópico então peço desculpas de antemão se cometi algum equívoco.

Estou com um problema ao adicionar uma nova shoottype no meu servidor. Modifiquei as sprites com o Object Builder (no caso adicionei alguns shoottypes a mais), modifiquei a source (Tools.cpp e Const.h), compilei e inclui no arquivo \lib/000-constant, como manda o protocolo.

Eu executo o servidor e ele vai normalmente, inclusive, quando uso o comando /x ou /z (não me recordo agora qual é relacionado a shoottype) ele me informa que possuo 46 shoottypes, visto que é o correto. Contudo, quando ataco com a nova arma e, consequentemente, a nova shoottype, dá debug no client e nenhum erro na distro. E o mais icônico é que quando eu relogo, o monstro tomou os hits normalmente, pq eu o vejo low life.

Lembrando que eu só uso 46 shoottypes e o normal (que já vem no servidor padrão do tibia 8.60) são 42. A minha última shoottype é número 46 no object builder e 45 nas sources e no 000-constant.lua.

 

Eu coloco isso no items.lua:       

 <attribute key="shootType" value="prismaticarrow"/> 

Que é condizente com o que eu adicionei nas sources e compilei. Quando eu substituo as novas sprites no lugar de outras, por exemplo, coloco a prismatic arrow no lugar do cake (id 42) funfa normal. O problema está sendo com as novas shoottypes mesmo (id 43, 44, 45 e 46) não é com  as sprites, ao que me parece.

Agradeço desde já.

 

Const.h

 

Citar

enum ShootEffect_t
{
    SHOOT_EFFECT_SPEAR                = 0x00,
    SHOOT_EFFECT_BOLT                = 0x01,
    SHOOT_EFFECT_ARROW                = 0x02,
    SHOOT_EFFECT_FIRE                = 0x03,
    SHOOT_EFFECT_ENERGY                = 0x04,
    SHOOT_EFFECT_POISONARROW        = 0x05,
    SHOOT_EFFECT_BURSTARROW            = 0x06,
    SHOOT_EFFECT_THROWINGSTAR        = 0x07,
    SHOOT_EFFECT_THROWINGKNIFE        = 0x08,
    SHOOT_EFFECT_SMALLSTONE            = 0x09,
    SHOOT_EFFECT_DEATH                = 0x0A, //10
    SHOOT_EFFECT_LARGEROCK            = 0x0B, //11
    SHOOT_EFFECT_SNOWBALL            = 0x0C, //12
    SHOOT_EFFECT_POWERBOLT            = 0x0D, //13
    SHOOT_EFFECT_POISONFIELD        = 0x0E, //14
    SHOOT_EFFECT_INFERNALBOLT        = 0x0F, //15
    SHOOT_EFFECT_HUNTINGSPEAR        = 0x10, //16
    SHOOT_EFFECT_ENCHANTEDSPEAR        = 0x11, //17
    SHOOT_EFFECT_REDSTAR            = 0x12, //18
    SHOOT_EFFECT_GREENSTAR            = 0x13, //19
    SHOOT_EFFECT_ROYALSPEAR            = 0x14, //20
    SHOOT_EFFECT_SNIPERARROW        = 0x15, //21
    SHOOT_EFFECT_ONYXARROW            = 0x16, //22
    SHOOT_EFFECT_PIERCINGBOLT        = 0x17, //23
    SHOOT_EFFECT_WHIRLWINDSWORD        = 0x18, //24
    SHOOT_EFFECT_WHIRLWINDAXE        = 0x19, //25
    SHOOT_EFFECT_WHIRLWINDCLUB        = 0x1A, //26
    SHOOT_EFFECT_ETHEREALSPEAR        = 0x1B, //27
    SHOOT_EFFECT_ICE                = 0x1C, //28
    SHOOT_EFFECT_EARTH                = 0x1D, //29
    SHOOT_EFFECT_HOLY                = 0x1E, //30
    SHOOT_EFFECT_SUDDENDEATH        = 0x1F, //31
    SHOOT_EFFECT_FLASHARROW            = 0x20, //32
    SHOOT_EFFECT_FLAMMINGARROW        = 0x21, //33
    SHOOT_EFFECT_SHIVERARROW        = 0x22, //34
    SHOOT_EFFECT_ENERGYBALL            = 0x23, //35
    SHOOT_EFFECT_SMALLICE            = 0x24, //36
    SHOOT_EFFECT_SMALLHOLY            = 0x25, //37
    SHOOT_EFFECT_SMALLEARTH            = 0x26, //38
    SHOOT_EFFECT_EARTHARROW            = 0x27, //39
    SHOOT_EFFECT_EXPLOSION            = 0x28, //40
    SHOOT_EFFECT_CAKE                = 0x29, //41
    SHOOT_EFFECT_PRISMATICARROW                = 0x30, //42
    SHOOT_EFFECT_PRISMATICBOLT                = 0x31, //43
    SHOOT_EFFECT_DIAMONDARROW                = 0x32, //44
    SHOOT_EFFECT_NATURESPEAR                = 0x33, //45
    SHOOT_EFFECT_LAST                = SHOOT_EFFECT_NATURESPEAR,

    //for internal use, dont send to client
    SHOOT_EFFECT_WEAPONTYPE        = 0xFE, //254
    SHOOT_EFFECT_NONE            = 0xFF,
    SHOOT_EFFECT_UNKNOWN        = 0xFFFF
};

 

Tools.cpp

ShootTypeNames shootTypeNames[] =
{
	{"spear",			SHOOT_EFFECT_SPEAR},
	{"bolt",			SHOOT_EFFECT_BOLT},
	{"arrow",			SHOOT_EFFECT_ARROW},
	{"fire",			SHOOT_EFFECT_FIRE},
	{"energy",			SHOOT_EFFECT_ENERGY},
	{"poisonarrow",		SHOOT_EFFECT_POISONARROW},
	{"burstarrow",		SHOOT_EFFECT_BURSTARROW},
	{"throwingstar",	SHOOT_EFFECT_THROWINGSTAR},
	{"throwingknife",	SHOOT_EFFECT_THROWINGKNIFE},
	{"smallstone",		SHOOT_EFFECT_SMALLSTONE},
	{"death",			SHOOT_EFFECT_DEATH},
	{"largerock",		SHOOT_EFFECT_LARGEROCK},
	{"snowball",		SHOOT_EFFECT_SNOWBALL},
	{"powerbolt",		SHOOT_EFFECT_POWERBOLT},
	{"poison",			SHOOT_EFFECT_POISONFIELD},
	{"infernalbolt",	SHOOT_EFFECT_INFERNALBOLT},
	{"huntingspear",	SHOOT_EFFECT_HUNTINGSPEAR},
	{"enchantedspear",	SHOOT_EFFECT_ENCHANTEDSPEAR},
	{"redstar",			SHOOT_EFFECT_REDSTAR},
	{"greenstar",		SHOOT_EFFECT_GREENSTAR},
	{"royalspear",		SHOOT_EFFECT_ROYALSPEAR},
	{"sniperarrow",		SHOOT_EFFECT_SNIPERARROW},
	{"onyxarrow",		SHOOT_EFFECT_ONYXARROW},
	{"piercingbolt",	SHOOT_EFFECT_PIERCINGBOLT},
	{"whirlwindsword",	SHOOT_EFFECT_WHIRLWINDSWORD},
	{"whirlwindaxe",	SHOOT_EFFECT_WHIRLWINDAXE},
	{"whirlwindclub",	SHOOT_EFFECT_WHIRLWINDCLUB},
	{"etherealspear",	SHOOT_EFFECT_ETHEREALSPEAR},
	{"ice",				SHOOT_EFFECT_ICE},
	{"earth",			SHOOT_EFFECT_EARTH},
	{"holy",			SHOOT_EFFECT_HOLY},
	{"suddendeath",		SHOOT_EFFECT_SUDDENDEATH},
	{"flasharrow",		SHOOT_EFFECT_FLASHARROW},
	{"flammingarrow",	SHOOT_EFFECT_FLAMMINGARROW},
	{"flamingarrow",	SHOOT_EFFECT_FLAMMINGARROW},
	{"shiverarrow",		SHOOT_EFFECT_SHIVERARROW},
	{"energyball",		SHOOT_EFFECT_ENERGYBALL},
	{"smallice",		SHOOT_EFFECT_SMALLICE},
	{"smallholy",		SHOOT_EFFECT_SMALLHOLY},
	{"smallearth",		SHOOT_EFFECT_SMALLEARTH},
	{"eartharrow",		SHOOT_EFFECT_EARTHARROW},
	{"explosion",		SHOOT_EFFECT_EXPLOSION},
	{"cake",			SHOOT_EFFECT_CAKE},
	{"prismaticarrow",		SHOOT_EFFECT_PRISMATICARROW},
	{"prismaticbolt", 		SHOOT_EFFECT_PRISMATICBOLT},
	{"diamondarrow", 		SHOOT_EFFECT_DIAMONDARROW},
	{"naturespear",			SHOOT_EFFECT_NATURESPEAR}
};
Spoiler

Segue o 000-constant:

 

CONST_ANI_SPEAR = 0
CONST_ANI_BOLT = 1
CONST_ANI_ARROW = 2
CONST_ANI_FIRE = 3
CONST_ANI_ENERGY = 4
CONST_ANI_POISONARROW = 5
CONST_ANI_BURSTARROW = 6
CONST_ANI_THROWINGSTAR = 7
CONST_ANI_THROWINGKNIFE = 8
CONST_ANI_SMALLSTONE = 9
CONST_ANI_DEATH = 10
CONST_ANI_LARGEROCK = 11
CONST_ANI_SNOWBALL = 12
CONST_ANI_POWERBOLT = 13
CONST_ANI_POISON = 14
CONST_ANI_INFERNALBOLT = 15
CONST_ANI_HUNTINGSPEAR = 16
CONST_ANI_ENCHANTEDSPEAR = 17
CONST_ANI_REDSTAR = 18
CONST_ANI_GREENSTAR = 19
CONST_ANI_ROYALSPEAR = 20
CONST_ANI_SNIPERARROW = 21
CONST_ANI_ONYXARROW = 22
CONST_ANI_PIERCINGBOLT = 23
CONST_ANI_WHIRLWINDSWORD = 24
CONST_ANI_WHIRLWINDAXE = 25
CONST_ANI_WHIRLWINDCLUB = 26
CONST_ANI_ETHEREALSPEAR = 27
CONST_ANI_ICE = 28
CONST_ANI_EARTH = 29
CONST_ANI_HOLY = 30
CONST_ANI_SUDDENDEATH = 31
CONST_ANI_FLASHARROW = 32
CONST_ANI_FLAMMINGARROW = 33
CONST_ANI_SHIVERARROW = 34
CONST_ANI_ENERGYBALL = 35
CONST_ANI_SMALLICE = 36
CONST_ANI_SMALLHOLY = 37
CONST_ANI_SMALLEARTH = 38
CONST_ANI_EARTHARROW = 39
CONST_ANI_EXPLOSION = 40
CONST_ANI_CAKE = 41
CONST_ANI_PRISMATICARROW = 42
CONST_ANI_PRISMATICBOLT = 43
CONST_ANI_DIAMONDARROW = 44
CONST_ANI_NATURESPEAR = 45
CONST_ANI_WEAPONTYPE = 254
CONST_ANI_NONE = 255
CONST_ANI_LAST = CONST_ANI_NATURESPEAR

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

Edited by Koebaratao (see edit history)
Link to post
Share on other sites

  • Solution

   Achei a solução. Para quem tiver o mesmo problema que eu, basta modificar isso na source const.h:

Trocar:

  SHOOT_EFFECT_PRISMATICARROW                = 0x30, //42
    SHOOT_EFFECT_PRISMATICBOLT                = 0x31, //43
    SHOOT_EFFECT_DIAMONDARROW                = 0x32, //44
    SHOOT_EFFECT_NATURESPEAR                = 0x33, //45

 

Por:

SHOOT_EFFECT_PRISMATICARROW                = 0x2A, //42
    SHOOT_EFFECT_PRISMATICBOLT                = 0x2B, //43
    SHOOT_EFFECT_DIAMONDARROW                = 0x2C, //44
    SHOOT_EFFECT_NATURESPEAR                = 0x2D, //45

 

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Similar Content

    • By gmxunior
      Ola galeta do TK, boa tarde a todos!
      Galera eu estou com dificuldade na área de attack speed do tfs 0.4, e como todos devem saber esse é um assunto bem polêmico, eu sei que ele limita os attack.
       
      Exemplo: (max 1 attack por 1000 ms, quando você colcoa 500 ms ele te da 2 attacks), mas assim eu gostaria de saber se existe e se existe como fazer para eu deixar os attacks real.
       
      Exemplo: (1000ms = 1 attack por segundo, 700ms = 1 attack a cada 7 milésimos), e assim por diante, ou seja ele obedecer o que esta em vocations.xml.
       
      Muito obrigado a todos!
       
       
    • By Polguilo
      salvee galera do TK o/
      bom o titulo ja diz tudo,gostaria de saber por gentileza em qual pasta fica o arquivo de hotkeys do OT Client e se é possivel edita-las,teria como???
      se caso sim,como posso fazer?? da pra usar algum programa simples como o Notepad++ ou algo similar pra editar por acaso?

      perguntei isso porque gostaria de add todas as HK do cliente classico,pois por incrivel que pareça eu uso a maioria delas apesar de ter bastante HUE HUE
      sei que existe o OT Client V8 que te da a possibilidade de customizar as HK sem alguma dificuldade e que tem inumeros recursos/melhorias em diversas questões,mas eu particularmente não curti algumas features dessa versão =|
      por isso o motivo da minha pergunta rs


      agradeço desde ja quem puder ajudar o/
      acho que no meio desse ano volto a colaborar aqui no TK postando alguns conteúdos =))
    • By llucas75
      Oi tudo bem pessoal?
       
      Meu problema é o seguinte eu tenho um otserver 8.60, mas quero rodá-lo em linux ai precisando compilar... Compilei um Rev3777(0.4), mas quando ligo o servidor aparecem uma imensidão de erros no console, além de mau funcionamento do server...
      Tentei pegar as libs da pasta data do rev3777 e colocalos no lugar das libs do meu server... Mas dai o server nem abre...
       
       
      Queria muito executar esse server em linux, por causa da proteção adicional que ele oferece, alguem sabe como eu faço para ele rodar de maneira adequada com o meu executavel da rev3777?
    • By Wiisht
      Olá pessoal tudo certo ?
      bom estou aqui para pedir ajuda de algum de vocês se voces puderem me ajudar por gentileza, O que acontece é o seguinte:
      O Meu tfs está rodando normalmente, por cerca de 5h + ( as vezes mais as vezes menos ), e do nada os monsters do servidor começa a ter um delay ao morrer, os players tiram todo o hp deles e eles ainda ficam em pé por uns 3 segundos sem hp, até cair o corpse dele no chao, e fica assim durante uns 3 minutos, logo após isso o Servidor da um erro de Microsoft Visual c++ runtime library, cujo o erro nao é possivel ser visualizado, pois ele meio que "buga" a janela desse microsoft visual impedindo que visualize, e entao o servidor fecha sozinho, segue uma print de como fica o Microsoft Visual c++ runtime library:





      Lembrando que nao ocorre nenhum erro no console, se alguem puder me ajudar por favor, obrigado galerinha TK!
    • By Nunyz
      Boa tarde galera, me chamo Nuno, atualmente estudo Web Designer, sou novo aqui no tibiaking, mas vi que tem varias coisas boas aqui, como tem muita gente talentosa, então aproveitando esse vasto conhecimento de vocês poderiam me ajudar com uma coisinha? Blz então ai vai.
       
      Tenho interesse enorme em aprender a programação necessária para modificar a estrutura do tibia, como por exemplo o nossos famosos ( Pxg, Zezenia, Phobos, Necronia...) tanto modificação client, como modificação de actions, porem eu não tenho ciência de qual linguagem de programação eu tenho que aprender para tal coisa, por favor se alguem souber me explicar quais cursos eu necessito fazer para conseguir da inicio ao meu projeto como esses grandes nomes ai que eu citei, me fala vlw tenham uma boa tarde.
  • Recently Browsing   0 members

    No registered users viewing this page.


×
×
  • Create New...

Important Information

Confirmação de Termo