#include "stdafx.h" // Ŭ¶óÀÌ¾ðÆ®¿¡¼­µµ ¾²À̹ǷΠinclude¸¦ ¸í½ÃÇÑ´Ù. #include #include #include #include "ItemStructure.h" #include "GMMemory.h" // ±èÀ翬 S±×·¹À̵å Å×À̺í static const float g_aryGradeTable[Item::EquipType::MAX_TYPE][Item::Grade::MAX_TABLE_TYPE][Item::EquipType::MAX_GRADE][Item::Attribute::MAX_ATTRIBUTE_NUM] = { //--// start.. // °©¿Ê·ù { // MinDam. MaxDam. Armor HitRate Evade MaxHP HPRegen MaxMP MPRegen Cri. Block Speed M.Power M.Res. M.Che. CoolDw SkillPt Frost Fire Electro Dark { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0, 0, 0.4f, 0, 0.1f, 0.1f, 0.2f, 0.1f, 0, 0, 0, 0, 0, 0.08f, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0, 0, 0.2f, 0, 0.05f, 0.05f, 0.1f, 0.05f, 0, 0, 0, 0, 0, 0.04f, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0, 0, -0.2f, 0, -0.05f, -0.05f, -0.1f, -0.05f, 0, 0, 0, 0, 0, -0.04f, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, 0, -0.4f, 0, -0.1f, -0.1f, -0.2f, -0.1f, 0, 0, 0, 0, 0, -0.08f, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0, 0, 1.5f, 0, 0.375f, 0.375f, 0.75f, 0.375f, 0, 0, 0, 0, 0, 0.3f, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0, 0, 1.2f, 0, 0.3f, 0.3f, 0.6f, 0.3f, 0, 0, 0, 0, 0, 0.24f, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0, 0.9f, 0, 0.225f, 0.225f, 0.45f, 0.225f, 0, 0, 0, 0, 0, 0.18f, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0, 0, 0.6f, 0, 0.15f, 0.15f, 0.3f, 0.15f, 0, 0, 0, 0, 0, 0.12f, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, 0, 0.3f, 0, 0.075f, 0.075f, 0.15f, 0.075f, 0, 0, 0, 0, 0, 0.06f, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 0, 0, 1.801f, 0, 0.45f, 0.45f, 0.9f, 0.45f, 0, 0, 0, 0, 0, 0.36f, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 1.801f, 0, 0.45f, 0.45f, 0.9f, 0.45f, 0, 0, 0, 0, 0, 0.36f, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 1.501f, 0, 0.375f, 0.375f, 0.75f, 0.375f, 0, 0, 0, 0, 0, 0.3f, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0, 0, 1.201f, 0, 0.3f, 0.3f, 0.6f, 0.3f, 0, 0, 0, 0, 0, 0.24f, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0, 0, 0.9f, 0, 0.225f, 0.225f, 0.45f, 0.225f, 0, 0, 0, 0, 0, 0.18f, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0, 0.6f, 0, 0.15f, 0.15f, 0.3f, 0.15f, 0, 0, 0, 0, 0, 0.12f, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0, 0, 0.3f, 0, 0.075f, 0.075f, 0.15f, 0.075f, 0, 0, 0, 0, 0, 0.06f, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F } }, // ´Ü°Ë·ù { // MinDam. MaxDam. Armor HitRate Evade MaxHP HPRegen MaxMP MPRegen Cri. Block Speed M.Power M.Res. M.Che. CoolDw SkillPt Frost Fire Electro Dark { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0.12f, 0.16f, 0, 0.4f, 0, 0, 0, 0, 0, 0.08f, 0.08f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0.06f, 0.08f, 0, 0.2f, 0, 0, 0, 0, 0, 0.04f, 0.04f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, -0.06f, -0.08f, 0, -0.2f, 0, 0, 0, 0, 0, -0.04f, -0.04f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, -0.12f, -0.16f, 0, -0.4f, 0, 0, 0, 0, 0, -0.08f, -0.08f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0.6f, 0.75f, 0, 1.5f, 0, 0, 0, 0, 0, 0.75f, 0.3f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0.48f, 0.6f, 0, 1.2f, 0, 0, 0, 0, 0, 0.6f, 0.24f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0.36f, 0.45f, 0, 0.9f, 0, 0, 0, 0, 0, 0.45f, 0.18f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0.24f, 0.3f, 0, 0.6f, 0, 0, 0, 0, 0, 0.3f, 0.12f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0.12f, 0.15f, 0, 0.3f, 0, 0, 0, 0, 0, 0.15f, 0.06f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 0.72f, 0.9f, 0, 1.80f, 0, 0, 0, 0, 0, 0.9f, 0.36f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0.72f, 0.9f, 0, 1.80f, 0, 0, 0, 0, 0, 0.9f, 0.36f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0.6f, 0.75f, 0, 1.50f, 0, 0, 0, 0, 0, 0.75f, 0.3f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0.48f, 0.6f, 0, 1.20f, 0, 0, 0, 0, 0, 0.6f, 0.24f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0.36f, 0.45f, 0, 0.9f, 0, 0, 0, 0, 0, 0.45f, 0.18f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0.24f, 0.3f, 0, 0.6f, 0, 0, 0, 0, 0, 0.3f, 0.12f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0.12f, 0.15f, 0, 0.3f, 0, 0, 0, 0, 0, 0.15f, 0.06f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F } }, // ÇÑ¼Õ ¹«±â·ù { // MinDam. MaxDam. Armor HitRate Evade MaxHP HPRegen MaxMP MPRegen Cri. Block Speed M.Power M.Res. M.Che. CoolDw SkillPt Frost Fire Electro Dark { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0.2f, 0.2f, 0, 0.4f, 0, 0, 0, 0, 0, 0.08f, 0.08f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0.1f, 0.1f, 0, 0.2f, 0, 0, 0, 0, 0, 0.04f, 0.04f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, -0.1f, -0.1f, 0, -0.2f, 0, 0, 0, 0, 0, -0.04f, -0.04f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, -0.2f, -0.2f, 0, -0.4f, 0, 0, 0, 0, 0, -0.08f, -0.08f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 1.0f, 1.25f, 0, 1.5f, 0, 0, 0, 0, 0, 0.75f, 0.3f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0.8f, 1.0f, 0, 1.2f, 0, 0, 0, 0, 0, 0.6f, 0.24f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0.6f, 0.75f, 0, 0.9f, 0, 0, 0, 0, 0, 0.45f, 0.18f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0.4f, 0.5f, 0, 0.6f, 0, 0, 0, 0, 0, 0.3f, 0.12f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0.2f, 0.25f, 0, 0.3f, 0, 0, 0, 0, 0, 0.15f, 0.06f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 1.2f, 1.5f, 0, 1.80f, 0, 0, 0, 0, 0, 0.9f, 0.36f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 1.2f, 1.5f, 0, 1.80f, 0, 0, 0, 0, 0, 0.9f, 0.36f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 1.0f, 1.25f, 0, 1.50f, 0, 0, 0, 0, 0, 0.75f, 0.3f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0.8f, 1.0f, 0, 1.20f, 0, 0, 0, 0, 0, 0.6f, 0.24f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0.6f, 0.75f, 0, 0.9f, 0, 0, 0, 0, 0, 0.45f, 0.18f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0.4f, 0.5f, 0, 0.6f, 0, 0, 0, 0, 0, 0.3f, 0.12f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0.2f, 0.25f, 0, 0.3f, 0, 0, 0, 0, 0, 0.15f, 0.06f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F } }, // Àå°Å¸® ¹«±â·ù { // MinDam. MaxDam. Armor HitRate Evade MaxHP HPRegen MaxMP MPRegen Cri. Block Speed M.Power M.Res. M.Che. CoolDw SkillPt Frost Fire Electro Dark { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0.2f, 0.2f, 0, 0.4f, 0, 0, 0, 0, 0, 0.08f, 0.08f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0.1f, 0.1f, 0, 0.2f, 0, 0, 0, 0, 0, 0.04f, 0.04f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, -0.1f, -0.1f, 0, -0.2f, 0, 0, 0, 0, 0, -0.04f, -0.04f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, -0.2f, -0.2f, 0, -0.4f, 0, 0, 0, 0, 0, -0.08f, -0.08f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 1.0f, 1.25f, 0, 1.5f, 0, 0, 0, 0, 0, 0.75f, 0.3f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0.8f, 1.0f, 0, 1.2f, 0, 0, 0, 0, 0, 0.6f, 0.24f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0.6f, 0.75f, 0, 0.9f, 0, 0, 0, 0, 0, 0.45f, 0.18f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0.4f, 0.5f, 0, 0.6f, 0, 0, 0, 0, 0, 0.3f, 0.12f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0.2f, 0.25f, 0, 0.3f, 0, 0, 0, 0, 0, 0.15f, 0.06f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 1.2f, 1.5f, 0, 1.80f, 0, 0, 0, 0, 0, 0.9f, 0.36f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 1.2f, 1.5f, 0, 1.80f, 0, 0, 0, 0, 0, 0.9f, 0.36f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 1.0f, 1.25f, 0, 1.50f, 0, 0, 0, 0, 0, 0.75f, 0.3f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0.8f, 1.0f, 0, 1.20f, 0, 0, 0, 0, 0, 0.6f, 0.24f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0.6f, 0.75f, 0, 0.9f, 0, 0, 0, 0, 0, 0.45f, 0.18f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0.4f, 0.5f, 0, 0.6f, 0, 0, 0, 0, 0, 0.3f, 0.12f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0.2f, 0.25f, 0, 0.3f, 0, 0, 0, 0, 0, 0.15f, 0.06f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F } }, // ¾ç¼Õ ¹«±â·ù { // MinDam. MaxDam. Armor HitRate Evade MaxHP HPRegen MaxMP MPRegen Cri. Block Speed M.Power M.Res. M.Che. CoolDw SkillPt Frost Fire Electro Dark { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0.2f, 0.2f, 0, 0.4f, 0, 0, 0, 0, 0, 0.08f, 0.08f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0.1f, 0.1f, 0, 0.2f, 0, 0, 0, 0, 0, 0.04f, 0.04f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, -0.1f, -0.1f, 0, -0.2f, 0, 0, 0, 0, 0, -0.04f, -0.04f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, -0.2f, -0.2f, 0, -0.4f, 0, 0, 0, 0, 0, -0.08f, -0.08f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 1.0f, 1.25f, 0, 1.5f, 0, 0, 0, 0, 0, 0.75f, 0.3f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0.8f, 1.0f, 0, 1.2f, 0, 0, 0, 0, 0, 0.6f, 0.24f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0.6f, 0.75f, 0, 0.9f, 0, 0, 0, 0, 0, 0.45f, 0.18f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0.4f, 0.5f, 0, 0.6f, 0, 0, 0, 0, 0, 0.3f, 0.12f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0.2f, 0.25f, 0, 0.3f, 0, 0, 0, 0, 0, 0.15f, 0.06f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 1.2f, 1.5f, 0, 1.80f, 0, 0, 0, 0, 0, 0.9f, 0.36f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 1.2f, 1.5f, 0, 1.80f, 0, 0, 0, 0, 0, 0.9f, 0.36f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 1.0f, 1.25f, 0, 1.50f, 0, 0, 0, 0, 0, 0.75f, 0.3f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0.8f, 1.0f, 0, 1.20f, 0, 0, 0, 0, 0, 0.6f, 0.24f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0.6f, 0.75f, 0, 0.9f, 0, 0, 0, 0, 0, 0.45f, 0.18f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0.4f, 0.5f, 0, 0.6f, 0, 0, 0, 0, 0, 0.3f, 0.12f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0.2f, 0.25f, 0, 0.3f, 0, 0, 0, 0, 0, 0.15f, 0.06f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F } }, // ½ºÅÂÇÁ·ù { // MinDam. MaxDam. Armor HitRate Evade MaxHP HPRegen MaxMP MPRegen Cri. Block Speed M.Power M.Res. M.Che. CoolDw SkillPt Frost Fire Electro Dark { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0, 0.22f, 0, 0.4f, 0, 0, 0, 0.2f, 0.4f, 0.08f, 0, 0, 0.4f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0, 0.11f, 0, 0.2f, 0, 0, 0, 0.1f, 0.2f, 0.04f, 0, 0, 0.2f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0, -0.11f, 0, -0.2f, 0, 0, 0, -0.1f, -0.2f, -0.04f, 0, 0, -0.2f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, -0.22f, 0, -0.4f, 0, 0, 0, -0.2f, -0.4f, -0.08f, 0, 0, -0.4f, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0, 0.825f, 0, 1.5f, 0, 0, 0, 0.75f, 1.5f, 0.3f, 0, 0, 1.5f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0, 0.66f, 0, 1.2f, 0, 0, 0, 0.6f, 1.2f, 0.24f, 0, 0, 1.2f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0.495f, 0, 0.9f, 0, 0, 0, 0.45f, 0.9f, 0.18f, 0, 0, 0.9f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0, 0.33f, 0, 0.6f, 0, 0, 0, 0.3f, 0.6f, 0.12f, 0, 0, 0.6f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, 0.165f, 0, 0.3f, 0, 0, 0, 0.15f, 0.3f, 0.06f, 0, 0, 0.3f, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 0, 0.99f, 0, 1.801f, 0, 0, 0, 0.9f, 1.81f, 0.36f, 0, 0, 1.81f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0.99f, 0, 1.801f, 0, 0, 0, 0.9f, 1.81f, 0.36f, 0, 0, 1.81f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0.825f, 0, 1.501f, 0, 0, 0, 0.75f, 1.51f, 0.3f, 0, 0, 1.51f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0, 0.66f, 0, 1.201f, 0, 0, 0, 0.6f, 1.21f, 0.24f, 0, 0, 1.21f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0, 0.495f, 0, 0.9f, 0, 0, 0, 0.45f, 0.9f, 0.18f, 0, 0, 0.9f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0.33f, 0, 0.6f, 0, 0, 0, 0.3f, 0.6f, 0.12f, 0, 0, 0.6f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0, 0.165f, 0, 0.3f, 0, 0, 0, 0.15f, 0.3f, 0.06f, 0, 0, 0.3f, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F } }, // ¹æÆÐ·ù { // MinDam. MaxDam. Armor HitRate Evade MaxHP HPRegen MaxMP MPRegen Cri. Block Speed M.Power M.Res. M.Che. CoolDw SkillPt Frost Fire Electro Dark { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0, 0, 0, 0, 0, 0.05f, 0.1f, 0.05f, 0.1f, 0, 0.16f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0, 0, 0, 0, 0, 0.025f, 0.05f, 0.025f, 0.05f, 0, 0.08f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0, 0, 0, 0, 0, -0.025f,-0.05f, -0.025f,-0.05f, 0, -0.08f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, 0, 0, 0, 0, -0.05f, -0.1f, -0.05f, -0.1f, 0, -0.16f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0, 0, 0, 0, 0, 0.1875f,0.375f, 0.1875f,0.375f, 0, 0.6f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0, 0, 0, 0, 0, 0.15f, 0.3f, 0.15f, 0.3f, 0, 0.48f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0, 0, 0, 0, 0.113f, 0.225f, 0.113f, 0.225f, 0, 0.36f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0, 0, 0, 0, 0, 0.075f, 0.15f, 0.075f, 0.15f, 0, 0.24f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, 0, 0, 0, 0, 0.038f, 0.075f, 0.038f, 0.075f, 0, 0.12f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F }, { { 0, 0, 0, 0, 0, 0, 0.225f, 0.45f, 0.225f, 0.45f, 0, 0.72f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade S { 0, 0, 0, 0, 0, 0, 0.225f, 0.45f, 0.225f, 0.45f, 0, 0.72f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AAA { 0, 0, 0, 0, 0, 0, 0.1875f,0.375f, 0.1875f,0.375f, 0, 0.6f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade AA { 0, 0, 0, 0, 0, 0, 0.15f, 0.3f, 0.15f, 0.3f, 0, 0.48f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade A { 0, 0, 0, 0, 0, 0, 0.113f, 0.225f, 0.113f, 0.225f, 0, 0.36f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade B { 0, 0, 0, 0, 0, 0, 0.075f, 0.15f, 0.075f, 0.15f, 0, 0.24f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade C { 0, 0, 0, 0, 0, 0, 0.038f, 0.075f, 0.038f, 0.075f, 0, 0.12f, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }, // Grade D { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } // Grade F } } //--// end.. }; void Item::ItemData::DumpInfo(unsigned long dwCID, const char* szExtraString) const { ERRLOG8(g_Log, "CID:0x%10u / ItemUID:%016I64X / ProtoTypeID:%d / ItemPos(%d, 0x%04x) / ItemSize:%d / NumOrDurability:%d %s", dwCID, m_dwUID, m_usProtoTypeID, m_ItemPos.m_cPos, m_ItemPos.m_cIndex, m_cItemSize, m_cNumOrDurability, szExtraString); } Item::SpriteData::SpriteData() { Initialize(); } void Item::SpriteData::Initialize() { memset(m_szName, 0, MAX_NAME); memset(m_szSpriteName, 0, MAX_SPRITE_NAME); m_nSpriteMinX = m_nSpriteMinY = m_nSpriteMaxX = m_nSpriteMaxY = 0; } Item::StringData::StringData() { Initialize(); } void Item::StringData::Initialize() { memset(m_szFieldModelName, 0, MAX_FIELD_MODEL_NAME); memset(m_szEquipModelName, 0, MAX_EQUIP_MODEL_NAME); memset(m_szEffectSoundName, 0, MAX_EFFECT_SOUND_NAME); memset(m_szTypeName, 0, MAX_TYPE_NAME); memset(m_szItemDescribe, 0, MAX_ITEM_DESCRIBE); } Item::DetailData::DetailData() { Initialize(); } void Item::DetailData::Initialize() { m_cItemType = 0; m_cXSize = 0; m_cYSize = 0; m_wDropOption = 0; m_cCriticalType = 0; m_cAttackRange = 0; m_cMaxSocketNum = 0; m_cDefaultDurabilityOrStack = 0; m_cMaxDurabilityOrStack = 0; m_cMinDropLevel = 0; m_cMaxDropLevel = 0; m_dwPrice = 0; m_dwBlackPrice = 0; m_dwMedalPrice = 0; m_bExchangeAndDrop = true; m_bSell = true; m_bOptionPrice = false; m_dwFlags = 0; } Item::EquipAttribute::EquipAttribute() { Initialize(); } void Item::EquipAttribute::Initialize() { m_nAttibuteNum = 0; std::fill_n(m_usAttributeValue, unsigned short(Item::Attribute::MAX_ATTRIBUTE_NUM), 0); } Item::UseItemInfo::UseItemInfo() { Initialize(); } void Item::UseItemInfo::Initialize() { m_cZone = 0; m_dwAmount = 0; m_usSkill_ID = 0; m_usSkill_LockCount = 0; m_wQuestID = 0; m_cLimitRealmPoint = 0; m_bForStatueWar = false; } Item::UseLimit::UseLimit() { Initialize(); } void Item::UseLimit::Initialize() { m_dwClassLimit = 0; m_cLimitStatus = Item::StatusLimit::NONE; m_wLimitValue = 0; } Item::ItemInfo::ItemInfo() { Initialize(); } Item::ItemInfo::ItemInfo(unsigned short usProtoTypeID) { Initialize(); m_usProtoTypeID = usProtoTypeID; } void Item::ItemInfo::Initialize() { m_usProtoTypeID = 0; m_DetailData.Initialize(); m_UseLimit.Initialize(); m_SpriteData.Initialize(); m_StringData.Initialize(); m_EquipAttribute.Initialize(); m_UseItemInfo.Initialize(); } const char* Item::ItemInfo::GetItemDescribe(void) const { if (Item::ItemType::SKILL_BOOK == m_DetailData.m_cItemType) { const Skill::ProtoType* pSkillProtoType = CSkillMgr::GetInstance().GetSkillProtoType(m_UseItemInfo.m_usSkill_ID); if (NULL != pSkillProtoType) { return pSkillProtoType[m_UseItemInfo.m_usSkill_LockCount].m_szSkillDescribe; } } return m_StringData.m_szItemDescribe; } Item::ItemGarbage::ItemGarbage(CItem* lpItem, unsigned long dwRemainNum) : m_lpItem(lpItem), m_dwRemainNum(dwRemainNum) { } Item::ChemicalInfo::ChemicalInfo() : m_wPickkingItemID(0), m_wTargetItemID(0), m_wResultItemID(0), m_cPickkingItemNum(0), m_cTargetItemNum(0), m_cResultItemNum(0), m_dwItemID(0), m_usAbilityID(0), m_cAbilityLevel(0), m_usQuestID(0), m_cPercent(0) { } Item::ChemicalInfo::ChemicalInfo(unsigned short wPickkingItemID, unsigned char cPickkingItemNum, unsigned short wTargetItemID, unsigned char cTargetItemNum, unsigned int dwItemID, unsigned short usAbilityID, unsigned char cAbilityLevel, unsigned short usQuestID, unsigned char cPercent) : m_wPickkingItemID(wPickkingItemID), m_wTargetItemID(wTargetItemID), m_wResultItemID(0), m_cPickkingItemNum(cPickkingItemNum),m_cTargetItemNum(cTargetItemNum), m_cResultItemNum(0), m_dwItemID(dwItemID), m_usAbilityID(usAbilityID), m_cAbilityLevel(cAbilityLevel), m_usQuestID(usQuestID), m_cPercent(cPercent) { } Item::Grade::GradeInfo::GradeInfo() : m_eItemGrade(EquipType::F_GRADE), m_cPlus(0) { std::fill_n(m_aryAttributeGrade, int(Attribute::MAX_ATTRIBUTE_NUM), EquipType::F_GRADE); } const float Item::Grade::GetGradeValue(Item::CItemType::ArrayType eEquipType, Grade::TableType eTableType, EquipType::Grade eGrade, Attribute::Type eType) { switch (eEquipType) { case CItemType::HELM_TYPE: case CItemType::ARMOUR_TYPE: return g_aryGradeTable[EquipType::ARMOR_TYPE][eTableType][eGrade][eType]; case CItemType::DAGGER_TYPE: return g_aryGradeTable[EquipType::DAGGER_TYPE][eTableType][eGrade][eType]; case CItemType::ONEHANDED_TYPE: return g_aryGradeTable[EquipType::ONEHANDED_WEAPON_TYPE][eTableType][eGrade][eType]; case CItemType::LONGRANGE_TYPE: return g_aryGradeTable[EquipType::LONGRANGE_WEAPON_TYPE][eTableType][eGrade][eType]; case CItemType::TWOHANDED_TYPE: return g_aryGradeTable[EquipType::TWOHANDED_WEAPON_TYPE][eTableType][eGrade][eType]; case CItemType::STAFF_TYPE: return g_aryGradeTable[EquipType::STAFF_TYPE][eTableType][eGrade][eType]; case CItemType::SHIELD_TYPE: return g_aryGradeTable[EquipType::SHIELD_TYPE][eTableType][eGrade][eType]; } return 0.0f; }