نظام تأثيرات الالوان عند سقوط الادوات ماتين2
مرحبًا بكم في شرح جديد من AZO ONE هنا، حيث نجمع بين البساطة والاحترافية لنقدم لكم كل ما تحتاجونه. سواء كنت تطمح لإنشاء موقع مميز، تطوير متجر إلكتروني ناجح، أو حتى برمجة سيرفر لعبة ماتين2، أو إضاتات متصفحات أو برامج عامة، فأنت في المكان الصحيح. جهز قهوتك، واستعد لتتعلم أو لقراءة خطوة بخطوة بطريقة سريعة ومفهومة. لنبدأ.
نظام تأثيرات الالوان عند سقوط الادوات ماتين2 هي ميزة تسهم بشكل كبير في تحسين تجربة اللاعبين. من خلال تخصيص الألوان للأدوات بناءً على قيمتها أو خصائصها، يمكن للاعبين تحسين كفاءتهم في جمع الأدوات الهامة، مما يساهم في تحسين استراتيجياتهم داخل اللعبة.
الخطوة الأولى .
1 – افتح [ UserInterface / PythonItem.h ] وابحث عن السطر التالي:
typedef struct SGroundItemInstance
وقبل هذا السطر أضف الأسطر التالية:
enum EDropItemEffects { DROP_ITEM_EFFECT_NORMAL, DROP_ITEM_EFFECT_RARE, DROP_ITEM_EFFECT_EPIC, DROP_ITEM_EFFECT_LEGENARY, DROP_ITEM_EFFECT_NUM, };
والآن عليك أن تبحث عن السطر التالي:
DWORD __Pick(const POINT& c_rkPtMouse);
وقبل هذا السطر أضف الأسطر التالية:
void __RegisterEffect(int iIndex, const char* szFile); int __AttachEffect(DWORD dwVnum, BYTE byType, BYTE bySubType);
اخر شيء في هذه الخطوة، ابحث عن السطر التالي:
DWORD m_dwDropItemEffectID;
واستبدال هذا السطر بالسطر التالي:
DWORD m_dwDropItemEffectID[DROP_ITEM_EFFECT_NUM];
نظام تأثيرات الالوان عند سقوط الادوات ماتين2
الخطوة الثانية .
1 – افتح [ UserInterface / PythonItem.cpp ] وابحث عن السطر التالي:
// attaching effect CEffectManager & rem =CEffectManager::Instance(); pGroundItemInstance->dwEffectInstanceIndex = rem.CreateEffect(m_dwDropItemEffectID, D3DXVECTOR3(x, -y, z), D3DXVECTOR3(0,0,0));
واستبدال تلك الأسطر بالأسطر التالية:
// attaching effect DWORD dwEffectIndex = __AttachEffect(dwVirtualNumber, pItemData->GetType(), pItemData->GetSubType()); if(dwEffectIndex < DROP_ITEM_EFFECT_NUM && dwEffectIndex >= 0) { dwEffectIndex = m_dwDropItemEffectID[dwEffectIndex]; if(dwEffectIndex != 0) { CEffectManager & rem =CEffectManager::Instance(); pGroundItemInstance->dwEffectInstanceIndex = rem.CreateEffect(dwEffectIndex, D3DXVECTOR3(x, -y, z), D3DXVECTOR3(0,0,0)); } }
والآن عليك أن تبحث عن الدالة التالية:
void CPythonItem::Create()
واستبدال تلك الوظيفة بأكملها بما يلي:
void CPythonItem::Create() { //Default __RegisterEffect(DROP_ITEM_EFFECT_NORMAL, "d:/ymir work/effect/etc/dropitem/dropitem.mse"); //Rare __RegisterEffect(DROP_ITEM_EFFECT_RARE, "d:/ymir work/effect/etc/dropitem/dropitem_rare.mse"); //Epic __RegisterEffect(DROP_ITEM_EFFECT_EPIC, "d:/ymir work/effect/etc/dropitem/dropitem_epic.mse"); //Epic __RegisterEffect(DROP_ITEM_EFFECT_LEGENARY, "d:/ymir work/effect/etc/dropitem/dropitem_legendary.mse"); }
والآن عليك أن تبحث عن السطر التالي:
m_dwPickedItemID = INVALID_ID;
وبعد هذا السطر أضف الأسطر التالية:
memset(m_dwDropItemEffectID, 0, sizeof(m_dwDropItemEffectID));
آخر شيء في هذه الخطوة، ابحث عن الأسطر التالية:
CPythonItem::~CPythonItem() { assert(m_GroundItemInstanceMap.empty()); }
وبعد تلك الأسطر أضف الأسطر التالية:
void CPythonItem::__RegisterEffect(int iIndex, const char* szFile) { if(iIndex >= DROP_ITEM_EFFECT_NUM || iIndex < 0) { TraceError("CPythonItem::__RegisterEffect - Invalid index: %d - %s", iIndex, szFile); return; } CEffectManager::Instance().RegisterEffect2(szFile, &m_dwDropItemEffectID[iIndex]); } int CPythonItem::__AttachEffect(DWORD dwVnum, BYTE byType, BYTE bySubType) { //Examples: //Determine the effect by item VNUM switch(dwVnum) { //Rare - These are the rare item vnums case 101: case 2001: return DROP_ITEM_EFFECT_RARE; //Epic - These are the epic item vnums case 3025: case 3229: return DROP_ITEM_EFFECT_EPIC; } //Determine the effect by item type/subtype switch(byType) { //Epic - This is the epic item type case CItemData::ITEM_TYPE_ARMOR: return DROP_ITEM_EFFECT_EPIC; //Filter by the material item type case CItemData::ITEM_TYPE_MATERIAL: { switch(bySubType) { //Epic - This is the epic item subtype case CItemData::MATERIAL_LEATHER: return DROP_ITEM_EFFECT_EPIC; //Legendary - This is the legendary item subtype case CItemData::MATERIAL_JEWEL: return DROP_ITEM_EFFECT_LEGENARY; } //Rare - All other ITEM_TYPE_MATERIAL type items return DROP_ITEM_EFFECT_RARE; //Default } } return DROP_ITEM_EFFECT_NORMAL; //Default }
نظام تأثيرات الالوان عند سقوط الادوات ماتين2
بعض الملاحظات
مهم : في دالة int CPythonItem::__AttachEffect
يمكنك أن ترى مثالاً على الكود، لكنه ليس الكود النهائي
عليك تعديله وتكوينه بالشكل الذي تريده ليعمل كما ترغب! وأيضًا، يجب عليك إنشاء ملفات التأثيرات (Effect Files) التي تقوم بتسجيلها في دالة
void CPythonItem::Create()
.
يمكنك إضافة المزيد من تصنيفات التأثيرات ( Effect Separation )
عن طريق توسيع التعداد ( enum ) المسمى " EDropItemEffects "
الموجود في الخطوة الأولى والثانية .