bimaloha
30-06-17, 07:56 PM
Nhá hàng tạm cái fix hiển thị option của wings custom đã nhé.
Riêng wings 12 250 và 12 251 đợi up nốt GS rồi đưa sau :D
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
sửa Item.Cpp trong source zClient như sau:
#include "stdafx.h"
#include "TMemory.h"
#include "TDebugLog.h"
#include "ItemAsm.h"
#include "Import.h"
#include "Defines.h"
#include "ItemPrice.h"
#include "Item.h"
#include "ItemRank.h"
#include "ItemModel.h"
#include "ElfCheat.h"
// ----------------------------------------------------------------------------------------------
Item gItem;
// ----------------------------------------------------------------------------------------------
void Item::Load() {
ItemAsmLoad();
// ----
SetOp ( ( LPVOID ) 0x633FCB, this->LoadModels, ASM::CALL );
SetOp ( ( LPVOID ) 0x633FE3, this->LoadTextures, ASM::CALL );
// ----
SetOp ( ( LPVOID ) 0x5087E6, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x58B78F, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x58B7A6, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x58B7FC, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x5C1A7F, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x5C2117, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x5C4268, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x7AF806, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x7E42F9, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x7E4347, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x7E439C, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x846B99, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x846C13, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x8475C3, this->GetPrice, ASM::CALL );
SetOp ( ( LPVOID ) 0x9683D0, this->GetPrice, ASM::CALL );
// ----
SetOp ( ( LPVOID ) 0x83476C, this->IsExpensiveItem, ASM::CALL );
SetOp ( ( LPVOID ) 0x8477BC, this->IsExpensiveItem, ASM::CALL );
// ----
SetOp ( ( LPVOID ) 0x7E3FC0, this->IsWings, ASM::CALL );
SetOp ( ( LPVOID ) 0x7E4766, this->IsWings, ASM::CALL );
SetOp ( ( LPVOID ) 0x7E5195, this->IsWings, ASM::CALL );
// ----
SetOp ( ( LPVOID ) 0x7DBD6B, this->GetUpgradeFlag, ASM::CALL );
// ----
SetOp ( ( LPVOID ) 0x48FB8C, this->PreviewCharSet, ASM::CALL );
SetOp ( ( LPVOID ) 0x63D2D8, this->PreviewCharSet, ASM::CALL );
SetOp ( ( LPVOID ) 0x641189, this->PreviewCharSet, ASM::CALL );
SetOp ( ( LPVOID ) 0x641F42, this->PreviewCharSet, ASM::CALL );
SetOp ( ( LPVOID ) 0x642598, this->PreviewCharSet, ASM::CALL );
SetOp ( ( LPVOID ) 0x65EA2D, this->PreviewCharSet, ASM::CALL );
// ----
SetOp ( ( LPVOID ) 0x7D9D5A, this->AllowRepairWings, ASM::CALL );
// ----
SetOp ( ( LPVOID ) 0x58B77E, this->SetOption, ASM::CALL );
SetOp ( ( LPVOID ) 0x5C7833, this->SetOption, ASM::CALL );
SetOp ( ( LPVOID ) 0x5C7D71, this->SetOption, ASM::CALL );
SetOp ( ( LPVOID ) 0x5C7F1B, this->SetOption, ASM::CALL );
SetOp ( ( LPVOID ) 0x5C80BE, this->SetOption, ASM::CALL );
SetOp ( ( LPVOID ) 0x7E216A, this->SetOption, ASM::CALL );
// ----
SetOp ( ( LPVOID ) 0x4FA5E8, this->SetOptionText, ASM::CALL );
SetOp ( ( LPVOID ) 0x7E568B, this->SetOptionText, ASM::CALL );
// ----
SetOp ( ( LPVOID ) 0x5666C1, this->SetItemEffect, ASM::CALL );
SetOp ( ( LPVOID ) 0x61041C, this->SetItemEffect, ASM::CALL );
SetOp ( ( LPVOID ) 0x610466, this->SetItemEffect, ASM::CALL );
// ----
SetOp ( ( LPVOID ) 0x51BCA5, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x590260, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x5C1A2F, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x5C1B70, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x5C423A, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x5C46E0, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x7D9A52, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x7DF4B2, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x7DFB0B, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x7E04D9, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x7E0811, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x7E5E8B, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x836FFD, this->GetMaxDurability, ASM::CALL );
SetOp ( ( LPVOID ) 0x95F5EE, this->GetMaxDurability, ASM::CALL );
// ----
SetOp ( ( LPVOID ) 0x57AC07, this->GetItemColor, ASM::CALL );
SetOp ( ( LPVOID ) 0x6083B9, this->GetItemColor, ASM::CALL );
SetOp ( ( LPVOID ) 0x60905E, this->GetItemColor2, ASM::CALL );
}
// ----------------------------------------------------------------------------------------------
void Item::LoadModels() {
pInitModelData();
g_ItemModel.SetModel();
// ----
char * Path = "Data\\Custom\\Item\\";
char * Path1 = "Data\\Custom\\Item\\CustomWings\\";
char * Path2 = "Data\\Custom\\Item\\VuKhi\\";
char * Path3 = "Data\\Custom\\Item\\SetDo\\";
// ----
/// wing 4
pLoadModel ( ITEM2 ( 12, 240 ), Path1, "Wing01", -1 );
pLoadModel ( ITEM2 ( 12, 241 ), Path1, "Wing02", -1 );
pLoadModel ( ITEM2 ( 12, 242 ), Path1, "Wing03", -1 );
pLoadModel ( ITEM2 ( 12, 243 ), Path1, "Wing04", -1 );
pLoadModel ( ITEM2 ( 12, 244 ), Path1, "Wing05", -1 );
pLoadModel ( ITEM2 ( 12, 245 ), Path1, "Wing06", -1 );
///// wing 2.5
pLoadModel ( ITEM2 ( 12, 246 ), Path1, "CloakOfDeath", -1 );
pLoadModel ( ITEM2 ( 12, 247 ), Path1, "WingofChaos", -1 );
pLoadModel ( ITEM2 ( 12, 248 ), Path1, "WingofPower", -1 );
pLoadModel ( ITEM2 ( 12, 249 ), Path1, "WingofLife", -1 );
///// wing 8
pLoadModel ( ITEM2 ( 12, 250 ), Path1, "WingsofConqueror", -1 );
pLoadModel ( ITEM2 ( 12, 251 ), Path1, "WingsofAngelandDevil", -1 );
/// Wing Custom
/*
pLoadModel ( ITEM2 ( 12, 200 ), Path1, "WING200", -1 );
pLoadModel ( ITEM2 ( 12, 214 ), Path1, "WING214", -1 );
pLoadModel ( ITEM2 ( 12, 215 ), Path1, "WING215", -1 );
pLoadModel ( ITEM2 ( 12, 216 ), Path1, "WING216", -1 );
pLoadModel ( ITEM2 ( 12, 217 ), Path1, "WING217", -1 );
pLoadModel ( ITEM2 ( 12, 218 ), Path1, "WING218", -1 );
pLoadModel ( ITEM2 ( 12, 219 ), Path1, "WING219", -1 );
pLoadModel ( ITEM2 ( 12, 220 ), Path1, "WING220", -1 );
pLoadModel ( ITEM2 ( 12, 221 ), Path1, "WING221", -1 );
pLoadModel ( ITEM2 ( 12, 222 ), Path1, "WING222", -1 );
pLoadModel ( ITEM2 ( 12, 223 ), Path1, "WING223", -1 );
pLoadModel ( ITEM2 ( 12, 224 ), Path1, "WING224", -1 );
pLoadModel ( ITEM2 ( 12, 225 ), Path1, "WING225", -1 );
pLoadModel ( ITEM2 ( 12, 226 ), Path1, "WING226", -1 );
pLoadModel ( ITEM2 ( 12, 227 ), Path1, "WING227", -1 );
pLoadModel ( ITEM2 ( 12, 228 ), Path1, "WING228", -1 );
pLoadModel ( ITEM2 ( 12, 229 ), Path1, "WING229", -1 );
pLoadModel ( ITEM2 ( 12, 230 ), Path1, "WING230", -1 );
pLoadModel ( ITEM2 ( 12, 231 ), Path1, "WING231", -1 );
pLoadModel ( ITEM2 ( 12, 232 ), Path1, "WING232", -1 );
pLoadModel ( ITEM2 ( 12, 233 ), Path1, "WING233", -1 );
pLoadModel ( ITEM2 ( 12, 234 ), Path1, "WING234", -1 );
pLoadModel ( ITEM2 ( 12, 235 ), Path1, "WING235", -1 );
pLoadModel ( ITEM2 ( 12, 236 ), Path1, "WING236", -1 );
pLoadModel ( ITEM2 ( 12, 252 ), Path1, "WING252", -1 );
pLoadModel ( ITEM2 ( 12, 253 ), Path1, "WING253", -1 );
pLoadModel ( ITEM2 ( 12, 254 ), Path1, "WING254", -1 );
pLoadModel ( ITEM2 ( 12, 255 ), Path1, "WING255", -1 );
*/
// ----
pLoadModel ( ITEM2 ( 14, 200 ), Path, "JewelOfAncient", -1 );
pLoadModel ( ITEM2 ( 14, 201 ), Path, "JewelOfCurse", -1 );
pLoadModel ( ITEM2 ( 14, 202 ), Path, "JewelOfExcellent", -1 );
pLoadModel ( ITEM2 ( 14, 203 ), Path, "JewelOfLuck", -1 );
pLoadModel ( ITEM2 ( 14, 204 ), Path, "JewelOfNature", -1 );
pLoadModel ( ITEM2 ( 14, 205 ), Path, "JewelOfPink", -1 );
pLoadModel ( ITEM2 ( 14, 206 ), Path, "JewelOfSocket", -1 );
// mix wing
pLoadModel ( ITEM2 ( 14, 176 ), Path, "DeathKingBone", -1 );
pLoadModel ( ITEM2 ( 14, 177 ), Path, "HellMaineLeather", -1 );
pLoadModel ( ITEM2 ( 14, 178 ), Path, "DarkPhoenixFlame", -1 );
pLoadModel ( ITEM2 ( 14, 179 ), Path, "DeathBeamKnightSoul", -1 );
pLoadModel ( ITEM2 ( 14, 180 ), Path, "CrystalFeather", -1 );
pLoadModel ( ITEM2 ( 14, 181 ), Path, "ConquerorFlame", -1 );
pLoadModel ( ITEM2 ( 14, 182 ), Path, "AngelDevilFlame", -1 );
// set season 7
pLoadModel ( ITEM2 ( 7, 77 ), Path, "HelmMaleBloodyDragon", -1 );
pLoadModel ( ITEM2 ( 8, 77 ), Path, "ArmorMaleBloodyDragon", -1 );
pLoadModel ( ITEM2 ( 9, 77 ), Path, "PantMaleBloodyDragon", -1 );
pLoadModel ( ITEM2 ( 0, 41 ), Path, "GloveMaleBloodyDragon", -1 ); //===>> Vuot Huyet Long
pLoadModel ( ITEM2 ( 11, 77 ), Path, "BootMaleBloodyDragon", -1 );
pLoadModel ( ITEM2 ( 7, 75 ), Path, "HelmFemaleLightLord", -1 );
pLoadModel ( ITEM2 ( 7, 84 ), Path, "HelmFemaleCircubus", -1 );
pLoadModel ( ITEM2 ( 7, 85 ), Path, "HelmMaleAmbition", -1 );
pLoadModel ( ITEM2 ( 7, 86 ), Path, "HelmMaleStormWing", -1 );
pLoadModel ( ITEM2 ( 7, 88 ), Path, "HelmMaleDarkDevil", -1 );
pLoadModel ( ITEM2 ( 8, 75 ), Path, "ArmorFemaleLightLord", -1 );
pLoadModel ( ITEM2 ( 8, 76 ), Path, "ArmorMaleMagicKnight", -1 );
pLoadModel ( ITEM2 ( 8, 84 ), Path, "ArmorFemaleCircubus", -1 );
pLoadModel ( ITEM2 ( 8, 85 ), Path, "ArmorMaleAmbition", -1 );
pLoadModel ( ITEM2 ( 8, 86 ), Path, "ArmorMaleStormWing", -1 );
pLoadModel ( ITEM2 ( 8, 87 ), Path, "ArmorMaleHellKnight", -1 );
pLoadModel ( ITEM2 ( 8, 88 ), Path, "ArmorMaleDarkDevil", -1 );
pLoadModel ( ITEM2 ( 9, 75 ), Path, "PantFemaleLightLord", -1 );
pLoadModel ( ITEM2 ( 9, 76 ), Path, "PantMaleMagicKnight", -1 );
pLoadModel ( ITEM2 ( 9, 84 ), Path, "PantFemaleCircubus", -1 );
pLoadModel ( ITEM2 ( 9, 85 ), Path, "PantMaleAmbition", -1 );
pLoadModel ( ITEM2 ( 9, 86 ), Path, "PantMaleStormWing", -1 );
pLoadModel ( ITEM2 ( 9, 87 ), Path, "PantMaleHellKnight", -1 );
pLoadModel ( ITEM2 ( 9, 88 ), Path, "PantMaleDarkDevil", -1 );
pLoadModel ( ITEM2 ( 10, 75 ), Path, "GloveFemaleLightLord", -1 );
pLoadModel ( ITEM2 ( 10, 76 ), Path, "GloveMaleMagicKnight", -1 );
pLoadModel ( ITEM2 ( 10, 84 ), Path, "GloveFemaleCircubus", -1 );
pLoadModel ( ITEM2 ( 10, 85 ), Path, "GloveMaleAmbition", -1 );
pLoadModel ( ITEM2 ( 10, 86 ), Path, "GloveMaleStormWing", -1 );
pLoadModel ( ITEM2 ( 10, 87 ), Path, "GloveMaleHellKnight", -1 );
pLoadModel ( ITEM2 ( 10, 88 ), Path, "GloveMaleDarkDevil", -1 );
pLoadModel ( ITEM2 ( 11, 75 ), Path, "BootFemaleLightLord", -1 );
pLoadModel ( ITEM2 ( 11, 76 ), Path, "BootMaleMagicKnight", -1 );
pLoadModel ( ITEM2 ( 11, 84 ), Path, "BootFemaleCircubus", -1 );
pLoadModel ( ITEM2 ( 11, 85 ), Path, "BootMaleAmbition", -1 );
pLoadModel ( ITEM2 ( 11, 86 ), Path, "BootMaleStormWing", -1 );
pLoadModel ( ITEM2 ( 11, 87 ), Path, "BootMaleHellKnight", -1 );
pLoadModel ( ITEM2 ( 11, 88 ), Path, "BootMaleDarkDevil", -1 );
// Set Do Moi
pLoadModel ( ITEM2 ( 7, 89 ), Path, "HelmMale18", -1 );
pLoadModel ( ITEM2 ( 8, 89 ), Path, "ArmorMale18", -1 );
pLoadModel ( ITEM2 ( 9, 89 ), Path, "PantMale18", -1 );
pLoadModel ( ITEM2 ( 11, 89 ), Path, "BootMale18", -1 );
// vu khi season 11
pLoadModel ( ITEM2 ( 0, 51 ), Path, "absolute02_sword", -1 );
pLoadModel ( ITEM2 ( 2, 25 ), Path, "absolute_septer", -1 );
pLoadModel ( ITEM2 ( 4, 30 ), Path, "absolute_gunbow", -1 );
pLoadModel ( ITEM2 ( 5, 42 ), Path, "SpiteStaff", -1 );
pLoadModel ( ITEM2 ( 5, 43 ), Path, "GayPhuongHoang", -1 );
pLoadModel ( ITEM2 ( 5, 44 ), Path, "GayTamMa", -1 );
pLoadModel ( ITEM2 ( 5, 49 ), Path, "absolute02_staff", -1 );
pLoadModel ( ITEM2 ( 5, 50 ), Path, "absolute_stick", -1 );
//truong DL
pLoadModel ( ITEM2 ( 2, 26 ), Path2, "MACE_SCEPTER_26", -1 );
pLoadModel ( ITEM2 ( 2, 27 ), Path2, "MACE_SCEPTER_27", -1 );
pLoadModel ( ITEM2 ( 2, 28 ), Path2, "MACE_SCEPTER_28", -1 );
pLoadModel ( ITEM2 ( 2, 29 ), Path2, "MACE_SCEPTER_29", -1 );
pLoadModel ( ITEM2 ( 2, 30 ), Path2, "MACE_SCEPTER_30", -1 );
//long giao
pLoadModel ( ITEM2 ( 3, 100 ), Path, "MagmaSpear", -1 );
// ma dao - tuyet the hao kiem
pLoadModel ( ITEM2 ( 0, 42 ), Path, "MaDao", -1 );
pLoadModel ( ITEM2 ( 0, 43 ), Path, "TuyetTheHaoKiem", -1 );
pLoadModel ( ITEM2 ( 0, 36 ), Path, "CycloneSword", -1 );
pLoadModel ( ITEM2 ( 0, 37 ), Path, "BlastBreakerSword", -1 );
pLoadModel ( ITEM2 ( 0, 38 ), Path, "AsuraSword", -1 );
// truong quy
pLoadModel ( ITEM2 ( 2, 20 ), Path, "HornOfSteelMace", -1 );
pLoadModel ( ITEM2 ( 2, 22 ), Path, "ThunderBoltScepter", -1 );
pLoadModel ( ITEM2 ( 2, 23 ), Path, "TruongQuy", -1 );
// khien season 7
pLoadModel ( ITEM2 ( 6, 22 ), Path, "LazyWindShield", -1 );
pLoadModel ( ITEM2 ( 6, 23 ), Path, "DarkDevilShield", -1 );
pLoadModel ( ITEM2 ( 6, 24 ), Path, "LightLordShield", -1 );
pLoadModel ( ITEM2 ( 6, 25 ), Path, "MagicKnightShield", -1 );
pLoadModel ( ITEM2 ( 6, 26 ), Path, "AmbitionShield", -1 );
// set sogoku
pLoadModel ( ITEM2 ( 7, 90 ), Path3, "Helm_90", -1 );
pLoadModel ( ITEM2 ( 8, 90 ), Path3, "Armor_90", -1 );
pLoadModel ( ITEM2 ( 9, 90 ), Path3, "Pant_90", -1 );
pLoadModel ( ITEM2 ( 10, 90 ), Path3, "Glove_90", -1 );
pLoadModel ( ITEM2 ( 11, 90 ), Path3, "Boot_90", -1 );
// gay
pLoadModel ( ITEM2 ( 5, 51 ), Path2, "STAFF_BOOK_51", -1 );
pLoadModel ( ITEM2 ( 5, 52 ), Path2, "STAFF_BOOK_52", -1 );
pLoadModel ( ITEM2 ( 5, 53 ), Path2, "STAFF_BOOK_53", -1 );
pLoadModel ( ITEM2 ( 5, 54 ), Path2, "STAFF_BOOK_54", -1 );
pLoadModel ( ITEM2 ( 5, 55 ), Path2, "STAFF_BOOK_55", -1 );
pLoadModel ( ITEM2 ( 5, 56 ), Path2, "STAFF_BOOK_56", -1 );
pLoadModel ( ITEM2 ( 5, 57 ), Path2, "STAFF_BOOK_57", -1 );
pLoadModel ( ITEM2 ( 5, 58 ), Path2, "STAFF_BOOK_58", -1 );
pLoadModel ( ITEM2 ( 5, 59 ), Path2, "STAFF_BOOK_59", -1 );
pLoadModel ( ITEM2 ( 5, 60 ), Path2, "STAFF_BOOK_60", -1 );
pLoadModel ( ITEM2 ( 5, 61 ), Path2, "STAFF_BOOK_61", -1 );
//khien moi
pLoadModel ( ITEM2 ( 6, 29 ), Path2, "SHIELD_29", -1 );
pLoadModel ( ITEM2 ( 6, 30 ), Path2, "SHIELD_30", -1 );
pLoadModel ( ITEM2 ( 6, 31 ), Path2, "SHIELD_31", -1 );
pLoadModel ( ITEM2 ( 6, 32 ), Path2, "SHIELD_32", -1 );
pLoadModel ( ITEM2 ( 6, 33 ), Path2, "SHIELD_33", -1 );
pLoadModel ( ITEM2 ( 6, 34 ), Path2, "SHIELD_34", -1 );
pLoadModel ( ITEM2 ( 6, 35 ), Path2, "SHIELD_35", -1 );
pLoadModel ( ITEM2 ( 6, 36 ), Path2, "SHIELD_36", -1 );
pLoadModel ( ITEM2 ( 6, 37 ), Path2, "SHIELD_37", -1 );
pLoadModel ( ITEM2 ( 6, 38 ), Path2, "SHIELD_38", -1 );
pLoadModel ( ITEM2 ( 6, 39 ), Path2, "SHIELD_39", -1 );
pLoadModel ( ITEM2 ( 6, 40 ), Path2, "SHIELD_40", -1 );
pLoadModel ( ITEM2 ( 6, 41 ), Path2, "SHIELD_41", -1 );
pLoadModel ( ITEM2 ( 6, 42 ), Path2, "SHIELD_42", -1 );
pLoadModel ( ITEM2 ( 6, 43 ), Path2, "SHIELD_43", -1 );
// cung moi
pLoadModel ( ITEM2 ( 4, 31 ), Path2, "BowDemonZANCLAIR", -1 );
}
// ----------------------------------------------------------------------------------------------
void Item::LoadTextures() {
pInitTextureData();
g_ItemModel.SetTexture();
// ----
char * Path = "Custom\\Item\\";
char * Path1 = "Custom\\Item\\CustomWings\\";
char * Path2 = "Custom\\Item\\VuKhi\\";
char * Path3 = "Custom\\Item\\SetDo\\";
// ----
//////wing 4
pLoadTexture ( ITEM2 ( 12, 240 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 241 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 242 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 243 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 244 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 245 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
///// wing 2.5
pLoadTexture ( ITEM2 ( 12, 246 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 247 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 248 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 249 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
///// wing ss8
pLoadTexture ( ITEM2 ( 12, 250 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 251 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
////Custom wing
/*
pLoadTexture ( ITEM2 ( 12, 214 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 215 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 216 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 217 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 218 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 219 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 220 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 221 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 222 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 223 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 224 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 225 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 226 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 227 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 228 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 229 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 230 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 231 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 232 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 233 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 234 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 235 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 12, 236 ), Path1, GL_REPEAT, GL_NEAREST, GL_TRUE );
*/
// ----
pLoadTexture ( ITEM2 ( 14, 200 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 14, 201 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 14, 202 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 14, 203 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 14, 204 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 14, 205 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 14, 206 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
// mix wing
pLoadTexture ( ITEM2 ( 14, 176 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 14, 177 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 14, 178 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 14, 179 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 14, 180 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 14, 181 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 14, 182 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
// set season 7
pLoadTexture ( ITEM2 ( 7, 77 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 8, 77 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 9, 77 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 0, 41 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 11, 77 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 7, 75 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE ); //mu
pLoadTexture ( ITEM2 ( 7, 84 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 7, 85 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 7, 86 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 7, 88 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 8, 75 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE ); //ao
pLoadTexture ( ITEM2 ( 8, 76 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 8, 84 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 8, 85 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 8, 86 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 8, 87 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 8, 88 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 9, 75 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE ); //quan
pLoadTexture ( ITEM2 ( 9, 76 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 9, 84 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 9, 85 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 9, 86 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 9, 87 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 9, 88 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 10, 75 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE ); //gang tay
pLoadTexture ( ITEM2 ( 10, 76 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 10, 84 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 10, 85 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 10, 86 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 10, 87 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 10, 88 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 11, 75 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE ); //giay
pLoadTexture ( ITEM2 ( 11, 76 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 11, 84 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 11, 85 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 11, 86 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 11, 87 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 11, 88 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
// Set Do Moi
pLoadTexture ( ITEM2 ( 7, 89 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 8, 89 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 9, 89 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 11, 89 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
//vu khi season 11
pLoadTexture ( ITEM2 ( 0, 51 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 2, 25 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 4, 30 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 42 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 43 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 44 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 49 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 50 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
//truong DL
pLoadTexture ( ITEM2 ( 2, 26 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 2, 27 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 2, 28 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 2, 29 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 2, 30 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
//long giao
pLoadTexture ( ITEM2 ( 3, 100 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE ); // Long Giao
//ma dao
pLoadTexture ( ITEM2 ( 0, 42 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 0, 43 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
//
pLoadTexture ( ITEM2 ( 0, 36 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 0, 37 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 0, 38 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
// truong quy
pLoadTexture ( ITEM2 ( 2, 20 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 2, 22 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 2, 23 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
// khien season 7
pLoadTexture ( ITEM2 ( 6, 22 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 23 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 24 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 25 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 26 ), Path, GL_REPEAT, GL_NEAREST, GL_TRUE );
//Set Sogoku
pLoadTexture ( ITEM2 ( 7, 90 ), Path3, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 8, 90 ), Path3, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 9, 90 ), Path3, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 10, 90 ), Path3, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 7, 90 ), Path3, GL_REPEAT, GL_NEAREST, GL_TRUE );
// gay
pLoadTexture ( ITEM2 ( 5, 51 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 52 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 53 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 54 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 55 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 56 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 57 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 58 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 59 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 60 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 5, 61 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
// khien moi
pLoadTexture ( ITEM2 ( 6, 29 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 30 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 31 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 32 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 33 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 34 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 35 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 36 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 37 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 38 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 39 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 40 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 41 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 42 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
pLoadTexture ( ITEM2 ( 6, 43 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
//cung moi
pLoadTexture ( ITEM2 ( 4, 31 ), Path2, GL_REPEAT, GL_NEAREST, GL_TRUE );
}
// ----------------------------------------------------------------------------------------------
bool Item::IsCustomWings ( WORD ItemID, bool Preview ) {
// ----
if ( Preview ) {
ItemID -= ITEM_INTER;
}
// ----
if ( ItemID >= ITEM ( 12, 200 ) && ItemID <= ITEM ( 12, 254 ) ) {
return true;
}
// ----
return false;
}
// ----------------------------------------------------------------------------------------------
bool Item::IsCustomJewels ( WORD ItemID, bool Preview ) {
if ( Preview ) {
ItemID -= ITEM_INTER;
}
// ----
if ( ItemID >= ITEM ( 14, 200 ) && ItemID <= ITEM ( 14, 254 ) ) {
return true;
}
// ----
return false;
}
// ----------------------------------------------------------------------------------------------
__int64 Item::GetPrice ( ObjectItem * lpItem, int Mode ) {
__int64 Money = -1;
__int64 StartMoney = pSetItemPrice ( lpItem, Mode );
__int64 NewOptionAddMoney = 0;
int Divisor = 3;
// ----
if ( gItemPrice.CheckItem ( lpItem->ItemID, GET_ITEMOPT_LEVEL ( lpItem->Level ), &Money, &Divisor ) ) {
if ( Money != -1 ) {
if ( Mode == 1 ) {
Money /= Divisor;
}
// ----
return Money;
}
}
// ----
if ( lpItem->ItemID >= ITEM ( 0, 0 ) && lpItem->ItemID <= ITEM ( 12, 6 )
|| lpItem->ItemID >= ITEM ( 12, 36 ) && lpItem->ItemID <= ITEM ( 12, 43 )
|| lpItem->ItemID >= ITEM ( 12, 49 ) && lpItem->ItemID <= ITEM ( 12, 50 )
|| lpItem->ItemID == ITEM ( 13, 30 ) ) {
for ( int i = 0; i < lpItem->SpecialCount; i++ ) {
switch ( lpItem->SpecialType[i] ) {
case eItemOption::Damage:
case eItemOption::WizardryDamage:
case eItemOption::CurseSpell:
case eItemOption::Defense:
case eItemOption::HPRecovery: {
switch ( lpItem->SpecialValue[i] ) {
case 20:
NewOptionAddMoney += ( StartMoney * 84.0 / 10.0 );
break;
case 24:
NewOptionAddMoney += ( StartMoney * 112.0 / 10.0 );
break;
case 28:
NewOptionAddMoney += ( StartMoney * 140.0 / 10.0 );
break;
}
}
break;
}
}
}
// ----
if ( NewOptionAddMoney > 0 ) {
if ( StartMoney + NewOptionAddMoney > 2000000000 ) {
Money = 2000000000;
}
else {
Money = StartMoney + NewOptionAddMoney;
}
}
// ----
if ( Money != -1 ) {
if ( Mode == 1 ) {
Money /= 3;
}
// ----
return Money;
}
// ----
return pSetItemPrice ( lpItem, Mode );
}
// ----------------------------------------------------------------------------------------------
bool Item::IsExpensiveItem ( ObjectItem * lpItem ) {
if ( lpItem->ItemID == ITEM ( 13, 20 ) && lpItem->Level == 0 ) { //-> Wizards Ring
return false;
}
// ----
if ( gItem.IsCustomJewels ( lpItem->ItemID, false ) ) {
return true;
}
// ----
return pIsExpensiveItem ( lpItem );
}
// ----------------------------------------------------------------------------------------------
int Item::IsWings ( LPVOID This, LPVOID EDX, DWORD ItemID ) {
if ( gItem.IsCustomWings ( ItemID, false ) ) {
return true;
}
// ----
return pIsWings ( This, ItemID );
}
// ----------------------------------------------------------------------------------------------
bool Item::GetUpgradeFlag ( LPVOID This, LPVOID EDX, ObjectItem * lpSource, ObjectItem * lpTarget ) {
BYTE TargetLevel = ( lpTarget->Level >> 3 ) & 0xF;
// ----
if ( gItem.IsCustomJewels ( lpSource->ItemID, false ) ) {
return true;
}
// ----
if ( gItem.IsCustomWings ( lpTarget->ItemID, false ) ) {
if ( lpSource->ItemID == ITEM ( 14, 13 ) ) {
if ( TargetLevel >= 0 && TargetLevel <= 5 ) {
return true;
}
}
else if ( lpSource->ItemID == ITEM ( 14, 14 ) ) {
if ( TargetLevel >= 0 && TargetLevel <= 8 ) {
return true;
}
}
}
// ----
return pIsUpgradeItem ( This, lpSource, lpTarget );
}
// ----------------------------------------------------------------------------------------------
void Item::PreviewCharSet ( int ObjectIndex, BYTE * CharSet, lpViewObj Object, int Mode ) {
pPreviewCharSet ( ObjectIndex, CharSet, Object, Mode );
// ----
lpViewObj lpObj;
// ----
if ( Object == NULL ) {
lpObj = &* ( lpViewObj ) pGetPreviewStruct ( pPreviewThis(), ObjectIndex );
}
else {
lpObj = Object;
}
BYTE Class = lpObj->Class & 7;
BYTE WCharSet = CharSet[16];
if ( WCharSet == 32 && Class == DarkLord ) {
lpObj->WingsSlot = ITEM2 ( 12, 130 );
}
else if ( WCharSet == 64 && Class == Summoner ) {
lpObj->WingsSlot = ITEM2 ( 12, 131 );
}
else if ( WCharSet == 96 && Class == Elf ) {
lpObj->WingsSlot = ITEM2 ( 12, 132 );
}
else if ( WCharSet == 128 && ( Class == DarkWizard || Class == MagicGladiator ) ) {
lpObj->WingsSlot = ITEM2 ( 12, 133 );
}
else if ( WCharSet == 160 && ( Class == DarkKnight || Class == MagicGladiator ) ) {
lpObj->WingsSlot = ITEM2 ( 12, 134 );
}
else if ( WCharSet == 192 && Class == Monk ) {
lpObj->WingsSlot = ITEM2 ( 12, 135 );
}
else {
BYTE CustomWings = WCharSet / 4;
if ( CustomWings > 0 ) {
lpObj->WingsSlot = ITEM2 ( 12, 200 ) + ( CustomWings - 1 );
}
}
}
// ----------------------------------------------------------------------------------------------
bool Item::AllowRepairWings ( ObjectItem * lpItem ) {
if ( gItem.IsCustomWings ( lpItem->ItemID, false ) ) {
return true;
}
// ----
return pAllowRepairWings ( lpItem );
}
// ----------------------------------------------------------------------------------------------
void Item::SetOption ( ObjectItem * lpItem, BYTE Option, BYTE Special, BYTE Value ) {
pSetItemOption ( lpItem, Option, Special, Value );
// ----
int ItemAttr = * ( DWORD* ) 0x8128AC0 + 84 * lpItem->ItemID; //item.bmd reader
int SpecialValue = GET_ITEMOPT0 ( Option ) + 4 * ( GET_ITEMOPT16 ( Special ) >> 6 );
// ----
lpItem->ReqLevel = * ( short* ) ( ItemAttr + 60 );
if (lpItem->ItemID == ITEM(12, 250) || lpItem->ItemID == ITEM(12, 251))
{
if (Special & MAX_ITEMOPT_BIT >= 10 && Special & MAX_ITEMOPT_BIT <= 15)
{
lpItem->Unknown14 += 1;
}
// ----
if (GET_ITEMOPT_LUCK(Option)) //-> Add luck option
{
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::Luck;
lpItem->SpecialCount++;
}
// ----
if (GET_ITEMOPT_0(Special)) //-> Set IgnorOpDefense
{
lpItem->SpecialValue[lpItem->SpecialCount] = 10;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::IgnorOpDefense;
lpItem->SpecialCount++;
}
// ----
if (GET_ITEMOPT_1(Special)) //-> Set ReturnAttack
{
lpItem->SpecialValue[lpItem->SpecialCount] = 10;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::ReturnAttack;
lpItem->SpecialCount++;
}
// ----
if (GET_ITEMOPT_2(Special)) //-> Set CompleteLife
{
lpItem->SpecialValue[lpItem->SpecialCount] = 6;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::CompleteLife;
lpItem->SpecialCount++;
}
// ----
if (GET_ITEMOPT_3(Special)) //-> Set CompleteMana
{
lpItem->SpecialValue[lpItem->SpecialCount] = 6;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::CompleteMana;
lpItem->SpecialCount++;
}
// ----
if (SpecialValue < 1)
{
return;
}
// ----
switch (lpItem->ItemID) //-> Set add option
{
case ITEM(12, 250): //-> DW
{
if (GET_ITEMOPT_4(Special))
{
lpItem->SpecialValue[lpItem->SpecialCount] = 4 * SpecialValue;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::WizardryDamage;
lpItem->SpecialCount++;
}
else if (GET_ITEMOPT_5(Special))
{
lpItem->SpecialValue[lpItem->SpecialCount] = 4 * SpecialValue;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::Defense;
lpItem->SpecialCount++;
}
else
{
lpItem->SpecialValue[lpItem->SpecialCount] = SpecialValue;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::HPRecovery;
lpItem->SpecialCount++;
}
}
break;
// --
case ITEM(12, 251): //-> MG
{
if (GET_ITEMOPT_4(Special))
{
lpItem->SpecialValue[lpItem->SpecialCount] = 4 * SpecialValue;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::Damage;
lpItem->SpecialCount++;
}
else if (GET_ITEMOPT_5(Special))
{
lpItem->SpecialValue[lpItem->SpecialCount] = 4 * SpecialValue;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::WizardryDamage;
lpItem->SpecialCount++;
}
else
{
lpItem->SpecialValue[lpItem->SpecialCount] = SpecialValue;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::HPRecovery;
lpItem->SpecialCount++;
}
}
break;
// --
}
}
else if (lpItem->ItemID >= ITEM(12, 246) && lpItem->ItemID <= ITEM(12, 249))
{
if (Special & MAX_ITEMOPT_BIT >= 10 && Special & MAX_ITEMOPT_BIT <= 15)
{
lpItem->Unknown14 += 1;
}
// ----
if (GET_ITEMOPT_LUCK(Option)) //-> Add luck option
{
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::Luck;
lpItem->SpecialCount++;
}
// ----
if (GET_ITEMOPT_0(Special)) //-> Set IgnorOpDefense
{
lpItem->SpecialValue[lpItem->SpecialCount] = 7;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::IgnorOpDefense;
lpItem->SpecialCount++;
}
// ----
if (GET_ITEMOPT_1(Special)) //-> Set ReturnAttack
{
lpItem->SpecialValue[lpItem->SpecialCount] = 7;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::ReturnAttack;
lpItem->SpecialCount++;
}
// ----
if (GET_ITEMOPT_2(Special)) //-> Set CompleteLife
{
lpItem->SpecialValue[lpItem->SpecialCount] = 7;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::CompleteLife;
lpItem->SpecialCount++;
}
// ----
if (GET_ITEMOPT_3(Special)) //-> Set CompleteMana
{
lpItem->SpecialValue[lpItem->SpecialCount] = 7;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::CompleteMana;
lpItem->SpecialCount++;
}
// ----
if (SpecialValue < 1)
{
return;
}
// ----
if (GET_ITEMOPT_4(Special))
{
lpItem->SpecialValue[lpItem->SpecialCount] = 4 * SpecialValue;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::WizardryDamage;
lpItem->SpecialCount++;
}
else if (GET_ITEMOPT_5(Special))
{
lpItem->SpecialValue[lpItem->SpecialCount] = 4 * SpecialValue;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::Defense;
lpItem->SpecialCount++;
}
else
{
lpItem->SpecialValue[lpItem->SpecialCount] = SpecialValue;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::HPRecovery;
lpItem->SpecialCount++;
}
}
// ----
else if ( gItem.IsCustomWings ( lpItem->ItemID, false ) ) {
if ( Special & MAX_ITEMOPT_BIT >= 10 && Special & MAX_ITEMOPT_BIT <= 15 ) {
lpItem->Unknown14 += 1;
}
// ----
if ( GET_ITEMOPT_LUCK ( Option ) ) { //-> Add luck option
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::Luck;
lpItem->SpecialCount++;
}
// ----
if ( GET_ITEMOPT_0 ( Special ) ) { //-> Set IgnorOpDefense
lpItem->SpecialValue[lpItem->SpecialCount] = 5;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::IgnorOpDefense;
lpItem->SpecialCount++;
}
// ----
if ( GET_ITEMOPT_1 ( Special ) ) { //-> Set ReturnAttack
lpItem->SpecialValue[lpItem->SpecialCount] = 5;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::ReturnAttack;
lpItem->SpecialCount++;
}
// ----
if ( GET_ITEMOPT_2 ( Special ) ) { //-> Set CompleteLife
lpItem->SpecialValue[lpItem->SpecialCount] = 5;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::CompleteLife;
lpItem->SpecialCount++;
}
// ----
if ( GET_ITEMOPT_3 ( Special ) ) { //-> Set CompleteMana
lpItem->SpecialValue[lpItem->SpecialCount] = 5;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::CompleteMana;
lpItem->SpecialCount++;
}
// ----
if ( SpecialValue < 1 ) {
return;
}
// ----
switch ( lpItem->ItemID ) { //-> Set add option
// --
// --
default : { //-> SUM
if ( GET_ITEMOPT_4 ( Special ) ) {
lpItem->SpecialValue[lpItem->SpecialCount] = 4 * SpecialValue;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::WizardryDamage;
lpItem->SpecialCount++;
}
else if ( GET_ITEMOPT_5 ( Special ) ) {
lpItem->SpecialValue[lpItem->SpecialCount] = 4 * SpecialValue;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::CurseSpell;
lpItem->SpecialCount++;
}
else {
lpItem->SpecialValue[lpItem->SpecialCount] = SpecialValue;
lpItem->SpecialType[lpItem->SpecialCount] = eItemOption::HPRecovery;
lpItem->SpecialCount++;
}
}
break;
}
}
}
// ----------------------------------------------------------------------------------------------
void Item::SetOptionText ( int ItemID, int Line, WORD OptionID, bool Arg4, int Arg5 ) {
pSetItemOptionText ( ItemID, Line, OptionID, Arg4, Arg5 );
// ----
#ifdef __RMOS__
if ( !g_ItemRank.IsRankItem ( ItemID ) ) {
return;
}
// ----
switch ( OptionID ) {
case eItemOption::LifeIncrease:
pSetItemTextLine ( Line, "Increase Max HP +%d%%",
g_ItemRank.GetValue ( ItemID, 0 ) );
break;
case eItemOption::ManaIncrease:
pSetItemTextLine ( Line, "Increase Max Mana +%d%%",
g_ItemRank.GetValue ( ItemID, 1 ) );
break;
case eItemOption::DamageDecrease:
pSetItemTextLine ( Line, "Damage Decrease +%d%%",
g_ItemRank.GetValue ( ItemID, 2 ) );
break;
case eItemOption::IncreaseWizardry:
pSetItemTextLine ( Line, "Increase Wizardry Dmg +level/%d",
g_ItemRank.GetValue ( ItemID, 3 ) );
break;
case eItemOption::Reflect:
pSetItemTextLine ( Line, "Reflect Damage +%d%%",
g_ItemRank.GetValue ( ItemID, 3 ) );
break;
case eItemOption::DefenseSuccess:
pSetItemTextLine ( Line, "Defense success rate +%d%%",
g_ItemRank.GetValue ( ItemID, 4 ) );
break;
case eItemOption::IncreaseZen:
pSetItemTextLine ( Line, "Increases acquisition rate of Zen after hunting monsters +%d%%",
g_ItemRank.GetValue ( ItemID, 5 ) );
break;
}
#endif
if (!g_ItemRank.IsRankItem(ItemID)) {
return;
}
switch (OptionID) {
case eItemOption::LifeIncrease:
pSetItemTextLine(Line, bConfig.LifeIncrease,
g_ItemRank.GetValue(ItemID, 0));
break;
case eItemOption::ManaIncrease:
pSetItemTextLine(Line, bConfig.ManaIncrease,
g_ItemRank.GetValue(ItemID, 1));
break;
case eItemOption::DamageDecrease:
pSetItemTextLine(Line, bConfig.DamageDecrease,
g_ItemRank.GetValue(ItemID, 2));
break;
case eItemOption::IncreaseWizardry:
pSetItemTextLine(Line, bConfig.IncreaseWizardry,
g_ItemRank.GetValue(ItemID, 3));
break;
case eItemOption::Reflect:
pSetItemTextLine(Line, bConfig.Reflect,
g_ItemRank.GetValue(ItemID, 3));
break;
case eItemOption::DefenseSuccess:
pSetItemTextLine(Line, bConfig.DamageDecrease,
g_ItemRank.GetValue(ItemID, 4));
break;
case eItemOption::IncreaseZen:
pSetItemTextLine(Line, bConfig.IncreaseZen,
g_ItemRank.GetValue(ItemID, 5));
break;
}
}
// ----------------------------------------------------------------------------------------------
void Item::SetItemEffect ( int Arg1, int ModelID, VAngle Angle, int Arg4, int ItemLevel, char Arg6, int Arg7, int Arg8, int Arg9 ) {
return pSetItemEffect ( Arg1, ModelID, Angle, Arg4, ItemLevel, Arg6, Arg7, Arg8, Arg9 );
}
// ----------------------------------------------------------------------------------------------
short Item::GetMaxDurability ( ObjectItem * lpItem, int ScriptStruct, int Level ) {
if ( gItem.IsCustomWings ( lpItem->ItemID, false ) ) {
return 255;
}
// ----
return pGetMaxDurability ( lpItem, ScriptStruct, Level );
}
// ----------------------------------------------------------------------------------------------
void Item::GetItemColor ( int ModelID, float Arg2, float Arg3, VAngle * Color, bool BalrogMode ) {
if ( !g_ItemModel.SetColor ( ModelID, Color ) ) {
return pGetItemColor ( ModelID, Arg2, Arg3, Color, BalrogMode );
}
}
// ----------------------------------------------------------------------------------------------
void Item::GetItemColor2 ( int ModelID, float Arg2, float Arg3, VAngle * Color, bool BalrogMode ) {
if ( !g_ItemModel.SetColor ( ModelID, Color ) ) {
return pGetItemColor2 ( ModelID, Arg2, Arg3, Color, BalrogMode );
}
}
// ----------------------------------------------------------------------------------------------
Có thể sửa lpItem->SpecialValue[lpItem->SpecialCount] = 7; bằng giá trị mong muốn.
Powered by vBulletin® Version 4.2.0 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.