السلام عليكم ورحمة الله وبركاته
أولاً
إغلاق ثغرة التدبيل بشكل نهائي في كل من التفعيلات, الأحبال و الجرع
قم بفتح ملف char_item.cpp وأضف فيه الآتي
ثم ابعث عن ( علماً انها مكرره 3 مرات )
case USE_ABILITY_UP:
{
قم بإضافه:
if ((CheckTimeUsed(item) == false))
{
return false;
}
ثم قم بالبحث عن ( علماً انها مكرره مرتين )
case USE_AFFECT :
{
ثم أضف بعدها
if ((CheckTimeUsed(item) == false))
{
return false;
}
قم بالبحث عن
case ITEM_BLEND:
ثم أضف بعدها
if ((CheckTimeUsed(item) == false))
{
return false;
}
ثانياً
قم بفتح ملف char.h وأبحث عن :
void SetName(const std::string& name) { m_stName = name; }
ثم أضف فوقها :
bool CheckTimeUsed(LPITEM item);
قم بفتح ملف i*nput_login.cpp
وقم بالبحث عن :
ch->StartCheckSpeedHackEvent();
أضف بعدها :
ch->SetQuestFlag("item.last_time", get_global_time());
ثالثاً
إصلاح علاوة إستعادة نقاط الحياةالأسلوب
قم بفتح ملف char_battle.cpp
قم بالبحث عن :
استبدلها بـ :
رابعاً
إصلاح ثغرة الأسم الطويل من السورس
قم بفتح ملف i*nput_login.cpp وقم بالبحث عن :
أضف بعدها :
خامساً
إصلاح ثغرة حقن تخص DBManager
قم بفتح ملف db.cpp وقم بإستبدال الآتي :
void DBManager::Query(const char * c_pszFormat, ...)
{
الكود هذا
}
SQLMsg * DBManager:irectQuery(const char * c_pszFormat, ...)
{
بالآتي :
خامساً
إصلاح Game Core بسبب أمر GetQuestFlag
قم بفتح ملف char.cpp وقم بالبحث عن :
return pPC->GetFlag(flag);
أضف فوقها :
سابعاً
إغلاق ثغرة تغيير الإمبراطورية أثناء الوجود في مجموعة
قم بفتح ملف questlua_pc.cpp وقم بالبحث عن :
lua_pushnumber(L, ch->ChangeEmpire((unsigned char)lua_tonumber(L, 1)));
أضف فوقها :
ثامناً
منع قتل اللاعبين أثناء فتحهم لمتاجر خاصة
قم بفتح ملف battle.cpp وقم بالبحث عن :
أضف بعدها :
قم بفتح ملف char_battle.cpp
قم بالبحث عن :
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
{
أضف بعدها :
تاسعاً
إصلاح Game Core بسبب المجموعة
قم بفتح ملف party.cpp وقم بالبحث عن دالة :
void CParty::UpdateOfflineState(DWORD dwPID)
{
محتوى الدالة هنا ..
}
استبدلها كاملةً بـ :
تاسعاً
إغلاق ثغرة إلتقاط العتاد في المجموعة
قم بالبحث عن :
if (!owner)
return false;
أضف بعدها :
عاشراً
إغلاق ثغرة إرتداء نفس البند مرتين
قم بفتح ملف char_item.cpp
قم بالبحث عن دالة :
bool CHARACTER::CanEquipNow(const LPITEM item, const TItemPos& srcCell, const TItemPos& destCell)
بنهاية الدالة قبل return true;
أضف الآتي :
طبعا بإمكانك إزالة جميع شروط #ifdef وجعلها أساسية لملفاتك لكن قمت بوضعها إحتياطاً - وإن أردت تعطيلها فقط بوضع علامتي // قبل الdefine#
واخيراً
إصلاح خطأ دالة pc.select_vid (قد تتسبب في مشاكل ربما منها Game Core)
قم فتح ملف questlua_pc.cpp وقم بالبحث عن :
lua_pushnumber(L, (DWORD)ch->GetVID());
استبدلها بـ :
lua_pushnumber(L, ch ? (DWORD)ch->GetVID() : 0); // return 0 if no player exist
والسلام عليكم ورحمه الله وبركاته
أولاً
إغلاق ثغرة التدبيل بشكل نهائي في كل من التفعيلات, الأحبال و الجرع
قم بفتح ملف char_item.cpp وأضف فيه الآتي
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
ثم ابعث عن ( علماً انها مكرره 3 مرات )
case USE_ABILITY_UP:
{
قم بإضافه:
if ((CheckTimeUsed(item) == false))
{
return false;
}
ثم قم بالبحث عن ( علماً انها مكرره مرتين )
case USE_AFFECT :
{
ثم أضف بعدها
if ((CheckTimeUsed(item) == false))
{
return false;
}
قم بالبحث عن
case ITEM_BLEND:
ثم أضف بعدها
if ((CheckTimeUsed(item) == false))
{
return false;
}
ثانياً
قم بفتح ملف char.h وأبحث عن :
void SetName(const std::string& name) { m_stName = name; }
ثم أضف فوقها :
bool CheckTimeUsed(LPITEM item);
قم بفتح ملف i*nput_login.cpp
وقم بالبحث عن :
ch->StartCheckSpeedHackEvent();
أضف بعدها :
ch->SetQuestFlag("item.last_time", get_global_time());
ثالثاً
إصلاح علاوة إستعادة نقاط الحياةالأسلوب
قم بفتح ملف char_battle.cpp
قم بالبحث عن :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
استبدلها بـ :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
رابعاً
إصلاح ثغرة الأسم الطويل من السورس
قم بفتح ملف i*nput_login.cpp وقم بالبحث عن :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
أضف بعدها :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
خامساً
إصلاح ثغرة حقن تخص DBManager
قم بفتح ملف db.cpp وقم بإستبدال الآتي :
void DBManager::Query(const char * c_pszFormat, ...)
{
الكود هذا
}
SQLMsg * DBManager:irectQuery(const char * c_pszFormat, ...)
{
بالآتي :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
خامساً
إصلاح Game Core بسبب أمر GetQuestFlag
قم بفتح ملف char.cpp وقم بالبحث عن :
return pPC->GetFlag(flag);
أضف فوقها :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
سابعاً
إغلاق ثغرة تغيير الإمبراطورية أثناء الوجود في مجموعة
قم بفتح ملف questlua_pc.cpp وقم بالبحث عن :
lua_pushnumber(L, ch->ChangeEmpire((unsigned char)lua_tonumber(L, 1)));
أضف فوقها :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
ثامناً
منع قتل اللاعبين أثناء فتحهم لمتاجر خاصة
قم بفتح ملف battle.cpp وقم بالبحث عن :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
أضف بعدها :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
قم بفتح ملف char_battle.cpp
قم بالبحث عن :
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
{
أضف بعدها :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
تاسعاً
إصلاح Game Core بسبب المجموعة
قم بفتح ملف party.cpp وقم بالبحث عن دالة :
void CParty::UpdateOfflineState(DWORD dwPID)
{
محتوى الدالة هنا ..
}
استبدلها كاملةً بـ :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
تاسعاً
إغلاق ثغرة إلتقاط العتاد في المجموعة
قم بالبحث عن :
if (!owner)
return false;
أضف بعدها :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
عاشراً
إغلاق ثغرة إرتداء نفس البند مرتين
قم بفتح ملف char_item.cpp
قم بالبحث عن دالة :
bool CHARACTER::CanEquipNow(const LPITEM item, const TItemPos& srcCell, const TItemPos& destCell)
بنهاية الدالة قبل return true;
أضف الآتي :
Python:
نرجو منك
تسجيل الدخول
او
تسجيل
لتتمكن من رؤية الكود
طبعا بإمكانك إزالة جميع شروط #ifdef وجعلها أساسية لملفاتك لكن قمت بوضعها إحتياطاً - وإن أردت تعطيلها فقط بوضع علامتي // قبل الdefine#
واخيراً
إصلاح خطأ دالة pc.select_vid (قد تتسبب في مشاكل ربما منها Game Core)
قم فتح ملف questlua_pc.cpp وقم بالبحث عن :
lua_pushnumber(L, (DWORD)ch->GetVID());
استبدلها بـ :
lua_pushnumber(L, ch ? (DWORD)ch->GetVID() : 0); // return 0 if no player exist
والسلام عليكم ورحمه الله وبركاته