Jump to content
  • 0
Bigatinho

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

Question

Bigatinho    0
Bigatinho

Base: TFS 0.3.6, Versão 8.60

 

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

Spoiler

Segue minha const.h:

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

Spoiler

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

000-constant.lua

 

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

 

 

 

 

 

Share this post


Link to post
Share on other sites

1 answer to this question

Recommended Posts

  • 0
Bigatinho    0
Bigatinho

Pessoal, consegui resolver. Para quem tiver o mesmo problema que eu. O erro ocorreu na edição da source no arquivo const.h. 

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

Mudar para:

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

Share this post


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.

×