📄 gmmgr.cpp
字号:
// GMMgr.cpp: implementation of the CGMMgr class.
//
//////////////////////////////////////////////////////////////////////
#include "..\stdafx.h"
#include "CItem.h"
#include "Auction.h"
#include "DefaultHeader.h"
#include "DR_NETWORK.h"
#include "GMMgr.h"
CGMMgr GMMgr;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CGMMgr::CGMMgr()
{
}
CGMMgr::~CGMMgr()
{
}
int CGMMgr::IsAllGM(CHARLIST *ch)const//1瞒 2瞒 棵 瘤骏?
{
for(int i = 0; MAX_GM_MAIN > i ; i++)
{
if( g_GmMain[i].job_level == 1
|| g_GmMain[i].job_level == 2)//1饭骇捞唱 2饭骇 胶懦捞 葛滴 1000000 捞绢具 茄促
{
if(1000000 !=ch->skillexp[g_GmMain[i].skill].skillexp)
{
return 0;
}
}
}//扁夯栏肺 All Gm捞绢具 茄促
return 1;
}
bool CGMMgr::IsMerchant(CHARLIST *ch)const
{
if(IsAllGM(ch))
{
if(ch->skillexp[MERCHANT].skillexp == 1000000)
{
return true;
}
}
return false;
}
int CGMMgr::IsSkillMaster(CHARLIST *ch)const
{
if(IsMerchant(ch))
{
t_SkillExp3* pExp3 = (t_SkillExp3*)&ch->skillexp[SKILL_MASTER];
const int iSkillType = pExp3->skillType;
switch(pExp3->skillType)
{
case GM_QUEST_BLACKSMITH_MASTER:
case GM_QUEST_CARPENTER_MASTER:
case GM_QUEST_BOWCRAFT_MASTER:
case GM_QUEST_TAILOR_MASTER :
{
return iSkillType;
}break;
default:
{
return 0;
}break;
}
}
return 0;
}
int CGMMgr::CanGmRegist( const int iGmIndex, CHARLIST *ch )
{
if( (MAX_GM_MAIN) <= iGmIndex//iGmIndex 绰 0 锅俊 蔼捞 绝促
|| 0 > iGmIndex)
{
return -1;
} // 裹困甫 哈绢巢
if (ENABLE_GM_LEVEL >= ch->GetLevel())
{ //< CSD-030806
return -1;
} //> CSD-030806
if(!ch->IsPayedUser()) //20 捞窍搁//021126 lsw
{
return -1;
}
const GM_QUEST *pGmMain = &g_GmMain[iGmIndex];
// if( pGmMain->need_money > ch->Money ) {return 0;} // 捣捞 何练窍促.
for( int i=0; i<MAX_GM_NEED_ITEM_COUNT; i++ )
{
const int iItemNo = pGmMain->need_item[i];
if( iItemNo )
{ // 角力 弊 酒捞袍阑 啊瘤绊 乐绰瘤 眉农( 牢亥配府俊 啊瘤绊 乐绢具 茄促. );
const int ct = ::CheckInventory( ch, iItemNo, pGmMain->need_quantity[i] );
if( ct < 0 )
{
return -4; // 漂沥 酒捞袍狼 荐樊捞 何练窍促.
}
}
}
switch(pGmMain->job_level)
{
case 1:
case 2:
{
const int iSkillExpIndex = g_GmMain[iGmIndex].skill;
if( ch->skillexp[iSkillExpIndex].skillexp != 999999 )
{
return -2; // 版氰摹啊 救凳
}
if(2 == pGmMain->job_level)//case 1档 乐栏聪鳖
{
int ok =0;
switch(iSkillExpIndex)
{
case CARPENTRY : {if(ch->skillexp[CUTDOWN].skillexp == 1000000) ok = 1;}break;
case BLACKSMITHY : {if(ch->skillexp[MINING].skillexp == 1000000) ok = 1;}break;
case COOKING : {if(ch->skillexp[FARMING].skillexp == 1000000
|| ch->skillexp[FISHING].skillexp == 1000000)ok = 1;}break;
case TAILORING : {if(ch->skillexp[BUTCHERING].skillexp == 1000000) ok = 1;}break;
case BOWCRAFTING : {if(ch->skillexp[CUTDOWN].skillexp == 1000000) ok = 1;}break;
case ALCHEMING : {if(ch->skillexp[HERBDIGGING].skillexp == 1000000) ok = 1;}break;
case CANDLEMAKING : {if(ch->skillexp[FISHING].skillexp == 1000000) ok = 1;}break;
default:
ok = 0;
break;
}
if(1==ok){return 2;}
}
}break;//case 2:
case 3:
{
return ((IsAllGM(ch))?3:-3);
}break;
case 4:
{
return ((IsMerchant(ch))?4:-4);
}break;
default:
{
return -3;
}break;
}//switch(pGmMain->job_level)
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -