Programação Alguém sabe fazer uso da cjguard.dll para proteção de sprits?
-
Similar Content
-
By Koebaratao
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
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} }; Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui.
-
By Erimyth
Galerinha, muitas vezes vocês possuem items.otb editados ou de outras versões, porém o server não aceita ele e acaba dando erro na hora de abrir seu distro, leia esse fácil tutorial e seus problemas irão acabar!
Eu usei o Crystal Server e TFS 0.4 para fazer este tutorial, porém acho que ele funciona em outras versões do TFS, bom, vamos lá!
Vá nas sources do seu servidor, abra seu items.cpp e procure por:
if(Items::dwMajorVersion == 0xFFFFFFFF) std::clog << "[Warning - Items::loadFromOtb] items.otb using generic client version." << std::endl; else if(Items::dwMajorVersion < 3) { std::clog << "[Error - Items::loadFromOtb] Old version detected, a newer version of items.otb is required." << std::endl; return ERROR_INVALID_FORMAT; } else if(Items::dwMajorVersion > 3) { std::clog << "[Error - Items::loadFromOtb] New version detected, an older version of items.otb is required." << std::endl; return ERROR_INVALID_FORMAT; } else if(!g_config.getBool(ConfigManager::SKIP_ITEMS_VERSION) && Items::dwMinorVersion != CLIENT_VERSION_920) { std::clog << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl; return ERROR_INVALID_FORMAT; }
Agora substitua isso tudo por isso:
/*if(Items::dwMajorVersion == 0xFFFFFFFF) std::clog << "[Warning - Items::loadFromOtb] items.otb using generic client version." << std::endl; else if(Items::dwMajorVersion < 3) { std::clog << "[Error - Items::loadFromOtb] Old version detected, a newer version of items.otb is required." << std::endl; return ERROR_INVALID_FORMAT; } else if(Items::dwMajorVersion > 3) { std::clog << "[Error - Items::loadFromOtb] New version detected, an older version of items.otb is required." << std::endl; return ERROR_INVALID_FORMAT; } else if(!g_config.getBool(ConfigManager::SKIP_ITEMS_VERSION) && Items::dwMinorVersion != CLIENT_VERSION_920) { std::clog << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl; return ERROR_INVALID_FORMAT; }*/
Agora compile seu server e seja feliz!
A única alteração que eu fiz na code é adicionar as tags de comentário /* */ para que o servidor não revise o otb.
Tutorial feito por mim com exclusividade ao TibiaKing.com!
Você gostou deste conteúdo!? Este conteúdo te ajudou!? Isso será realmente útil pra você!? Então, se possível, faça uma doação (de qualquer valor) que estará me ajudando também!
-
Recently Browsing 0 members
No registered users viewing this page.
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.