Dynamic Things Posted July 14, 2015 at 05:10 AM Share Posted July 14, 2015 at 05:10 AM Boas. Tenho andado a aprender um pouco de c++, ainda não sei relativamente nada. Tenho andado a aprender a efectuar a leitura do código, para que se torne mais fácil aprender. Logo, este tutorial não será grande coisa, ou coisa de grande utilidade. Mas com certeza poderá ser útil para alguém. Como alguns não devem saber vou explicar o que me refiro aos Rodares Verdes. Está seguinte imagem que se segue é uma fotografia dos rodares verdes. Como alguns mesmo depois de verem está imagem, não iram saber qual a funcionalidade dos rodares verdes. Então novamente vou deixar a seguinte imagem explicar qual a sua funcionalidade. O que vos vou ensinar hoje, é como alterar, o nível limitado da sua utilização. Então vamos começar. 1 Vamos ao game/char_item.cpp Vamos procurar pela seguinte linha: if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 40) O aspecto do que iram encontrar será algo semelhante a isso: { // ¢¯¡þAc¡Æ©¡ ¨¡?¨ùoA©ø¢¬¢ç // Ay¢¥e¡¤I ¢¯¡þAc¡Æ¢® A©¬¡Æ¢® ¨úE¥ìE¡ÆA¢Òo CI¢¯¨Ï CI¥ìa AU¥ìuCO. if (item->GetVnum() == 71151 || item->GetVnum() == 76023) { if ((item2->GetType() == ITEM_WEAPON) || (item2->GetType() == ITEM_ARMOR && item2->GetSubType() == ARMOR_BODY)) { bool bCanUse = true; for (int i = 0; i < ITEM_LIMIT_MAX_NUM; ++i) { if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 40) { bCanUse = false; break; } } if (false == bCanUse) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Au¢¯e ¡¤©ö¨¬¡×¨¬¢¬¢¥U ©øo¨ú¨¡ ¡íc¢¯eAI ¨¬O¡Æ¢®¢¥ECO¢¥I¢¥U.")); break; } } else { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("©ö¡ì¡¾a¢¯I ¡Æ¨Ï¢¯E¢¯¢®¢¬¢¬ ¡íc¢¯e ¡Æ¢®¢¥ECO¢¥I¢¥U.")); break; } } item2->ChangeAttribute(); } Vamos alterar o valor 40 para o valor limitado que queremos. Exemplo 105 Irá ficar do seguinte modo: if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 105) Em caso de duvidas, o resultado final será algo semelhante a isto: { // ¢¯¡þAc¡Æ©¡ ¨¡?¨ùoA©ø¢¬¢ç // Ay¢¥e¡¤I ¢¯¡þAc¡Æ¢® A©¬¡Æ¢® ¨úE¥ìE¡ÆA¢Òo CI¢¯¨Ï CI¥ìa AU¥ìuCO. if (item->GetVnum() == 71151 || item->GetVnum() == 76023) { if ((item2->GetType() == ITEM_WEAPON) || (item2->GetType() == ITEM_ARMOR && item2->GetSubType() == ARMOR_BODY)) { bool bCanUse = true; for (int i = 0; i < ITEM_LIMIT_MAX_NUM; ++i) { if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 105) { bCanUse = false; break; } } if (false == bCanUse) { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Au¢¯e ¡¤©ö¨¬¡×¨¬¢¬¢¥U ©øo¨ú¨¡ ¡íc¢¯eAI ¨¬O¡Æ¢®¢¥ECO¢¥I¢¥U.")); break; } } else { ChatPacket(CHAT_TYPE_INFO, LC_TEXT("©ö¡ì¡¾a¢¯I ¡Æ¨Ï¢¯E¢¯¢®¢¬¢¬ ¡íc¢¯e ¡Æ¢®¢¥ECO¢¥I¢¥U.")); break; } } item2->ChangeAttribute(); } Feito isso, podem compilar a source, e o limite de uso dos rodares verdes em armas ou armaduras, já estará alterada para o valor a qual vocês escolheram. Mesmo passos terão de repetir caso queira também mudar o nível limitado dos "adicionais". (O nome, do item não é da forma que disse, mas poderão ver a seguinte imagem, e saberão sobre o item da qual eu me refiro.) No mesmo ficheiro: game/char_item.cpp Procuram pela seguinte linha if (item2->GetLimitType(i) == LIMIT_LEVEL && item2->GetLimitValue(i) > 40) e executam os mesmos passos referidos, para alterar o nível limitado dos rodares. Cumprimentos Dynamic Things 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now