- الرئيسية
- الأعضاء
- مركز الرفع
- المتجر
- ديسكورد
-
خيارات سريعة
خيارات سريعة
bool CHARACTER::CheckTimeUsed(LPITEM item)
{
switch (item->GetVnum())
{
case 50821: case 50822: case 50823: case 50824: case 50825: case 50826: case 50827: case 50828: case 20171: case 20172:
case 27866: case 27868: case 27870: case 27873: case 39026: case 50093: case 50094:
case 50123: case 50801: case 50802: case 50817: case 50818: case 50819: case 50820:
case 39010: case 39017: case 39018: case 39019: case 39020: case 39024: case 39025:
case 39031: case 50813: case 50814: case 71014: case 71015: case 71016: case 71017:
case 71027: case 71028: case 71029: case 71030: case 71034: case 71044: case 71045:
case 71101: case 71102: case 71153: case 71154: case 71155: case 71156: case 72025:
case 72026: case 72027: case 72031: case 72032: case 72033: case 72034: case 72035:
case 72036: case 72037: case 72038: case 72039: case 72040: case 72041: case 72042:
case 72046: case 72047: case 72048: case 72312: case 72313: case 72501: case 72502:
case 76003: case 76017: case 76018: case 27126: case 27127: case 27128: case 27129:
case 27130: case 27131: case 27132: case 27133:
int pGetTime[] = {5};
int pGetFlag = GetQuestFlag("item.last_time");
if (pGetFlag)
{
if (get_global_time() < pGetFlag + pGetTime[0])
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("you have to wait %u seconds before use %s again."), pGetTime[0], item->GetName());
return false;
}
}
break;
}
return true;
}
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;
}
void SetName(const std::string& name) { m_stName = name; }
bool CheckTimeUsed(LPITEM item);
ch->StartCheckSpeedHackEvent();
ch->SetQuestFlag("item.last_time", get_global_time());
if (pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) && number(0, 4) > 0) // 80% 확률
{
int i = ((iCurHP>=0)?MIN(dam, iCurHP):dam) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100; //@fixme107
if (i)
{
CreateFly(FLY_HP_SMALL, pAttacker);
pAttacker->PointChange(POINT_HP, i);
}
}
// 칠 때마다 SP회복
if (pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) && number(0, 4) > 0) // 80% 확률
{
int i = ((iCurHP>=0)?MIN(dam, iCurHP):dam) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100; //@fixme107
if (i)
{
CreateFly(FLY_SP_SMALL, pAttacker);
pAttacker->PointChange(POINT_SP, i);
}
}
int iAbsoHP_ptr = pAttacker->GetPoint(POINT_HIT_HP_RECOVERY);
if (iAbsoHP_ptr)
{
if (number(1, 100) <= iAbsoHP_ptr)
{
int iHPAbso = MIN(dam, iCurHP) * pAttacker->GetPoint(POINT_HIT_HP_RECOVERY) / 100;
if ((pAttacker->GetHP() > 0) && (pAttacker->GetHP() + iHPAbso < pAttacker->GetMaxHP()) && (GetHP() > 0) && (iHPAbso > 0))
{
CreateFly(FLY_HP_SMALL, pAttacker);
pAttacker->PointChange(POINT_HP, iHPAbso);
}
}
}
// ?¥ ¶§¸¶´? SP?¸?¹
int iAbsoSP_ptr = pAttacker->GetPoint(POINT_HIT_SP_RECOVERY);
if (iAbsoSP_ptr)
{
if (number(1, 100) <= iAbsoSP_ptr)
{
int iSPAbso = MIN(dam, iCurSP) * pAttacker->GetPoint(POINT_HIT_SP_RECOVERY) / 100;
if ((pAttacker->GetSP() > 0) && (pAttacker->GetSP() + iSPAbso < pAttacker->GetMaxSP()) && (GetSP() > 0) && (iSPAbso > 0))
{
CreateFly(FLY_SP_SMALL, pAttacker);
pAttacker->PointChange(POINT_SP, iSPAbso);
}
}
}
packFailure.header = HEADER_GC_CHARACTER_CREATE_FAILURE;
if (strlen(pinfo->name) > 12)
{
d->Packet(&packFailure, sizeof(packFailure));
return;
}
void DBManager::Query(const char * c_pszFormat, ...)
{
الكود هنا ..
}
SQLMsg * DBManager::DirectQuery(const char * c_pszFormat, ...)
{
الكود هنا
}
void DBManager::Query(const char * c_pszFormat, ...)
{
char szQuery[4096];
va_list args;
va_start(args, c_pszFormat);
vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args);
va_end(args);
std::string sQuery(szQuery);
m_sql.AsyncQuery(sQuery.substr(0, sQuery.find_first_of(";") == std::string::npos ? sQuery.length() : sQuery.find_first_of(";")).c_str());
}
SQLMsg * DBManager::DirectQuery(const char * c_pszFormat, ...)
{
char szQuery[4096];
va_list args;
va_start(args, c_pszFormat);
vsnprintf(szQuery, sizeof(szQuery), c_pszFormat, args);
va_end(args);
std::string sQuery(szQuery);
return m_sql_direct.DirectQuery(sQuery.substr(0, sQuery.find_first_of(";") == std::string::npos ? sQuery.length() : sQuery.find_first_of(";")).c_str());
}
return pPC->GetFlag(flag);
if(!pPC)
{
sys_err("Nullpointer in CHARACTER::GetQuestFlag %lu", GetPlayerID());
return 0;
}
lua_pushnumber(L, ch->ChangeEmpire((unsigned char)lua_tonumber(L, 1)));
if(ch->GetParty())
{
lua_pushnumber(L, 4);
return 0;
}
if (victim->IsDead())
return false;
if (victim->GetMyShop())
return false;
bool CHARACTER::Attack(LPCHARACTER pkVictim, BYTE bType)
{
if (pkVictim->GetMyShop())
return false;
void CParty::UpdateOfflineState(DWORD dwPID)
{
محتوى الدالة هنا ..
}
void CParty::UpdateOfflineState(DWORD dwPID)
{
//const TMember& r = m_memberMap[dwPID];
TPacketGCPartyAdd p;
p.header = HEADER_GC_PARTY_ADD;
p.pid = dwPID;
memset(p.name, 0, CHARACTER_NAME_MAX_LEN + 1);
for (TMemberMap::iterator it = m_memberMap.begin(); it != m_memberMap.end(); ++it)
{
if (it->second.pCharacter && it->second.pCharacter->GetDesc())
{
if (it->second.pCharacter->GetDungeon())
it->second.pCharacter->GetDungeon()->ExitAllToStartPosition();
else
it->second.pCharacter->GetDesc()->Packet(&p, sizeof(p));
}
}
}
if (!owner)
return false;
if (owner)
{
if (item->IsStackable() && !IS_SET(item->GetAntiFlag(), ITEM_ANTIFLAG_STACK))
{
BYTE bCount = item->GetCount();
for (int i = 0; i < INVENTORY_MAX_NUM; ++i)
{
LPITEM item2 = owner->GetInventoryItem(i);
if (!item2)
continue;
if (item2->GetVnum() == item->GetVnum())
{
int j;
for (j = 0; j < ITEM_SOCKET_MAX_NUM; ++j)
if (item2->GetSocket(j) != item->GetSocket(j))
break;
if (j != ITEM_SOCKET_MAX_NUM)
continue;
BYTE bCount2 = MIN(200 - item2->GetCount(), bCount);
bCount -= bCount2;
item2->SetCount(item2->GetCount() + bCount2);
if (bCount == 0)
{
owner->ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Player: %s Has %s"), GetName(), item2->GetName());
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("Player: %s Has %s"), owner->GetName(), item2->GetName());
M2_DESTROY_ITEM(item);
if (item2->GetType() == ITEM_QUEST)
quest::CQuestManager::instance().PickupItem(owner->GetPlayerID(), item2);
return true;
}
}
}
item->SetCount(bCount);
}
}
bool CHARACTER::CanEquipNow(const LPITEM item, const TItemPos& srcCell, const TItemPos& destCell)
#define ENABLE_ITEM_RING_FIX /* تعريف الإصلاح */
#ifdef ENABLE_ITEM_RING_FIX
if (item->GetType() == ITEM_RING)
{
LPITEM ring1 = GetWear(WEAR_RING1);
LPITEM ring2 = GetWear(WEAR_RING2);
if (ring1 && (ring1->GetVnum() == item->GetVnum()))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("같은 종류의 유니크 아이템 두 개를 동시에 장착할 수 없습니다."));
return false;
}
if (ring2 && (ring2->GetVnum() == item->GetVnum()))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("같은 종류의 유니크 아이템 두 개를 동시에 장착할 수 없습니다."));
return false;
}
}
#endif
#define ENABLE_COSTUEM_WEAPON_FIXES // تفعيل الإصلاح
#ifdef ENABLE_COSTUEM_WEAPON_FIXES
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM /* إن كان لديك أزياء الأسلحة */
#ifdef ENABLE_NEW_ARROW_SYSTEM /* إن كان لديك جعبة الأسهم */
if (item->GetType() == ITEM_WEAPON && item->GetSubType() != WEAPON_ARROW && item->GetSubType() != WEAPON_UNLIMITED_ARROW)
#else
if (item->GetType() == ITEM_WEAPON && item->GetSubType() != WEAPON_ARROW)
#endif
{
LPITEM pkItem = GetWear(WEAR_COSTUME_WEAPON);
if (pkItem)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("For can do this unwear the costume weapon."));
return false;
}
}
else if (item->GetType() == ITEM_COSTUME && item->GetSubType() == COSTUME_WEAPON)
{
LPITEM pkItem = GetWear(WEAR_WEAPON);
if (!pkItem)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't wear a costume weapon without have a weapon weared."));
return false;
}
else if (item->GetValue(3) != pkItem->GetSubType())
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("You can't wear a costume weapon who has different type of your weapon."));
return false;
}
else if (pkItem->GetType() == ITEM_ROD || pkItem->GetType() == ITEM_PICK)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("kazma_veya_olta_takili"));
return false;
}
}
if (item->GetType() == ITEM_ROD || item->GetType() == ITEM_PICK)
{
LPITEM pkItem = GetWear(WEAR_COSTUME_WEAPON);
if (pkItem)
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("For can do this unwear the costume weapon."));
return false;
}
}
#endif
#endif
#define ENABLE_WEDDING_SUIT_FIX
#ifdef ENABLE_WEDDING_SUIT_FIX /* إغلاق ثغرة إرتداء أزياء فوق بدلات العرس */
if (item->GetType() == ITEM_COSTUME && item->GetSubType() == COSTUME_BODY)
{
LPITEM atakanxd = GetWear(WEAR_BODY);
if (atakanxd && (atakanxd->GetVnum() >= 11901 && atakanxd->GetVnum() <= 11914))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("you can't wear costume body on wedding suit."));
return false;
}
}
if (item->GetVnum() >= 11901 && item->GetVnum() <= 11914)
{
LPITEM atakan = GetWear(WEAR_COSTUME_BODY);
if (atakan && (atakan->GetType() == ITEM_COSTUME && atakan->GetSubType() == COSTUME_BODY))
{
ChatPacket(CHAT_TYPE_INFO, LC_TEXT("you can't wear wedding suit on costume body."));
return false;
}
}
#endif
lua_pushnumber(L, (DWORD)ch->GetVID());
lua_pushnumber(L, ch ? (DWORD)ch->GetVID() : 0); // return 0 if no player exist
case USE_ABILITY_UP
}
case USE_ABILITY_UP
}
case USE_ABILITY_UP :
المواضيع المتشابهه | ||||
![]() sharqawy - بتاريخ: 02-06-2020 07:07 مساء
الردود : 16
الزوار : 1282
|
عدد المشاهدات:
عدد الردود: |
1282 16 |
الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع :2(0عضو و2ضيف) |
ضيف، ضيف، |
جميع مايطرح في المنتدى لا يعبر بالضرورة عن رأي إدارة المنتدى، وانما يعبر عن رأي كاتبه، ولذلك تتخلى إدارة المنتدى مسؤوليتها عما يطرح فيه من آراء وتوصيات او أي اتفاق بين الأعضاء.
© 2021 جميع الحقوق محفوظة لـ منظمة قانون التطور | يعمل بواسطة Pbboard v3.0.3