⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 skill_lsw.cpp

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
}

int Call_Skill_Master_Menu()
{
	CloseAllMenu();

	fRMoveMenu = MM_ITEM_OPEN;		// 困狼 if巩阑 父练且 锭父
	nItemOther = MN_SKILL_MASTER_MAKE;
	y_MenuFocus = 0;
	
	ZeroMemory( &g_MultiRareSrc, sizeof(MULTIRARESRC) );	//府胶飘 檬扁拳
	return 1;
}

int Call_MERCHANT_QUEST_MENU(const int iGmQuestIndex)
{
	::SetGMQUESTMenu(iGmQuestIndex);	
	::CallSmallMenu(NM_MERCHANT_QUEST);
	return 0;
}

int Call_EXCHANGE_BOND_MONEY_Menu()//021126 lsw
{
	Auction.ClearBondItem();
	CloseAllMenu();	
	fRMoveMenu = MM_ITEM_OPEN;
	nItemOther = MN_EXCHANGE_BOND_MONEY;
	y_MenuFocus = 0;
	SetChatMode(CM_COMMAND);
	return 1;
}

int Call_MERCHANT_REGISTER_Menu()
{
	Auction.ClearSellItem();
	CloseAllMenu();	
	fRMoveMenu = MM_ITEM_OPEN;
	nItemOther = MN_MERCHANT_REGISTER;
	y_MenuFocus = 0;
	//魄概 前格 努府绢 霖厚
	SetChatMode(CM_COMMAND);
	SetFocus2(HWND_1);
	return 1;
}

void Send2NDGMMAKE(int skillno)
{
	ItemAttr *t = ::GetItemByPos(	gm_make_item_result.pos );
//	if(!t->item_no) return;
	if( !gm_make_item_result.item_no)
	{
		AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,504));
		return;
	}

	t_packet p;	
	p.h.header.type = CMD_SKILL_RARE_UPGRADE;
	p.h.header.size = sizeof( t_SkillRareUpgrade );
	p.u.SkillRareUpgrade.iSkillNo		= skillno;
	p.u.SkillRareUpgrade.SourceItem		= gm_make_item_result.attr;

	for (int ti = 0; ti <MAX_UPGRADE_RARE ; ti++)
	{
		p.u.SkillRareUpgrade.pos[ti] = gm_make_item_list[ti].pos;
		
		DeleteItem( gm_make_item_list[ti].pos ) ;//傍备芒狼 犁丰 绝俊扁
		memset( &gm_make_item_list[ti], 0, sizeof( MakeItem ) );
	}

	QueuePacket( &p, 1 );

	memset( &gm_make_item_result, 0, sizeof( MakeItem ) );
	return;
}

void SendSkillMasterMake(int skillno)
{
	ItemAttr *t = ::GetItemByPos(	gm_make_item_result.pos );
	if( !gm_make_item_result.item_no)
	{
		AddCurrentStatusMessage(FONT_COLOR_MAX,lan->OutputMessage(2,504));
		return;
	}

	t_packet p;	
	p.h.header.type = CMD_SKILL_RARE_UPGRADE;
	p.h.header.size = sizeof( t_SkillRareUpgrade );
	p.u.SkillRareUpgrade.iSkillNo		= skillno;
	p.u.SkillRareUpgrade.SourceItem		= gm_make_item_result.attr;

	for (int ti = 0; ti <MAX_UPGRADE_RARE ; ti++)
	{
		p.u.SkillRareUpgrade.pos[ti] = gm_make_item_list[ti].pos;
		
		DeleteItem( gm_make_item_list[ti].pos ) ;//傍备芒狼 犁丰 绝俊扁
		memset( &gm_make_item_list[ti], 0, sizeof( MakeItem ) );
	}

	QueuePacket( &p, 1 );

	memset( &gm_make_item_result, 0, sizeof( MakeItem ) );
	return;
}

void Recv2NDGMMAKEResult(t_SkillRareUpgradeResult *p)
{
	SkillStatus	= SKILL_OFF;
	
	p->SourceItem;//捞芭甫 捞侩 秦辑 楷免俊 焊呈胶甫 林磊
	//牢磐 其捞胶 楷免啊瓷 窍档废 技泼
	SMenu[MN_GM_2ND_SKILL].nField[4].nWillDo = p->iSuccess;
	
	SkillStatus				= SKILL_OFF;
	nItemOther = 0 ;
	SkillSettingClear( );
	//011030 lsw
	// SmallMenuClose(); 滚瓢 穿福搁 摧洒霸 窍扁
	return;
}

//011030 lsw >
DWORD g_skillmaketime = 0;
//011030 lsw <

void Send2NDSKILLMAKE(int iTryRare, int iRareGroup)
{
	//父甸 荐樊蔼苞 措惑 酒捞袍阑 焊辰促
	POS s;
	
	memset(&s,0,sizeof(POS));
	
	s.p1 = iTryRare;
	s.p2 = iRareGroup;//rared 
	s.p3 = skillmakeiteminfo.MakeMuch;
	
	g_skillmaketime = (timeGetTime()+skillmakeiteminfo.MakeMuch*1500);
	
	SendSkillInfo( SkillNo, Mox, Moy, SKILLTARGETTYPE_TABLE_, item_select_result.item_no, s);
	//011025 >
	skillmakeiteminfo.MakeMuch = 0;
	SMenu[MN_ITEM_MAKE_SELECT].nField[10].nWillDo	=0;
	CloseAllMenu();
	//011025 <
	return;
}

inline void ReadRareGroup(char * buf,int i)
{
	char *token;

	token = strtok(buf, "\t\n\r");	if( token == NULL ) return;const int iIndex = RareGroup[0][i].no				= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL ) return;memcpy(RareGroup[0][iIndex].name		,token,39);
	EatRearWhiteChar( RareGroup[0][iIndex].name );
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;memcpy(RareGroup[0][iIndex].rareset[0].rare,token,	39);
	EatRearWhiteChar( RareGroup[0][iIndex].rareset[0].rare);
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[0].rare_num		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[0].rare_rate	= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;memcpy(RareGroup[0][iIndex].rareset[1].rare	,token,	39);
	EatRearWhiteChar( RareGroup[0][iIndex].rareset[1].rare);
	token = strtok(NULL,"\t\n\r");	if( token == NULL ) return;RareGroup[0][iIndex].rareset[1].rare_num		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[1].rare_rate	= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;memcpy(RareGroup[0][iIndex].rareset[2].rare	,token,	39);
	EatRearWhiteChar( RareGroup[0][iIndex].rareset[2].rare);
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[2].rare_num		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[2].rare_rate	= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL ) return;memcpy(RareGroup[0][iIndex].rareset[3].rare	,token,	39);		
	EatRearWhiteChar( RareGroup[0][iIndex].rareset[3].rare);
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[3].rare_num		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[3].rare_rate	= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;memcpy(RareGroup[0][iIndex].rareset[4].rare	,token,	39);	
	EatRearWhiteChar( RareGroup[0][iIndex].rareset[4].rare);
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[4].rare_num		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL ) return;RareGroup[0][iIndex].rareset[4].rare_rate	= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;memcpy(RareGroup[0][iIndex].rareset[5].rare	,token,	39);	
	EatRearWhiteChar( RareGroup[0][iIndex].rareset[5].rare);
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[5].rare_num		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[5].rare_rate	= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;memcpy(RareGroup[0][iIndex].rareset[6].rare	,token,	39);	
	EatRearWhiteChar( RareGroup[0][iIndex].rareset[6].rare);
	token = strtok(NULL,"\t\n\r");	if( token == NULL ) return;RareGroup[0][iIndex].rareset[6].rare_num		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[6].rare_rate	= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;memcpy(RareGroup[0][iIndex].rareset[7].rare	,token,	39);	
	EatRearWhiteChar( RareGroup[0][iIndex].rareset[7].rare);
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[7].rare_num		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].rareset[7].rare_rate	= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL ) return;memcpy(RareGroup[0][iIndex].group_buffer_1	,token,	39);
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;memcpy(RareGroup[0][iIndex].group_buffer_2	,token,	39);
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;memcpy(RareGroup[0][iIndex].group_buffer_3	,token,	39);
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].group_buffer_4		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].group_buffer_5		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL ) return;RareGroup[0][iIndex].group_buffer_6		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].group_buffer_7		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].group_buffer_8		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].group_buffer_9		= atoi(token);	
	token = strtok(NULL,"\t\n\r");	if( token == NULL )	return;RareGroup[0][iIndex].group_buffer_10	= atoi(token);	
 
	return;
}

bool LoadRareGroup()
{
	char buf[1024];
	FILE *fp ;
	char	filename[MAX_FILENAME],filenameBin[MAX_FILENAME];
	sprintf(filename, ".\\itemtable\\rare_group.txt");
	sprintf(filenameBin, ".\\itemtable\\rare_group.bin");
	if( fp= Fopen(filename, "rt") )
	{
		int i=0;
		while( !feof(fp) )
		{
			fgets(buf, 1023, fp);
			if( *buf == ';' ) continue;
			if(i> MAX_RARE_GROUP-1 ) break;
				ReadRareGroup(buf, i);
			i++;
		}
		fclose(fp);

		if(fp=Fopen( filenameBin, "wb" ) )
		{
			fwrite( RareGroup[0], sizeof(t_raregroup)*MAX_RARE_GROUP, 1, fp);
			fclose(fp);
		}
	 }
	else
	{
		if(fp=Fopen( filenameBin, "rb" ) )
		{
			fread( RareGroup[0], sizeof(t_raregroup)*MAX_RARE_GROUP, 1, fp);
			fclose(fp);
		}
		else return 0;
	}
	return 1;
}

inline void ReadRareProbability(char * buf,int i)
{
	char *token;
	int *TargetPointer;

	TargetPointer = &RareProbability[i].num;

	token=strtok(buf ,"\t\n\r");if( token == NULL ) return;	
	(*TargetPointer) = atoi(token);
		 TargetPointer++;

	for (int j  = 0 ; j < 18 ; j++)//钙胶 肮荐俊辑 贸澜波 朅 俺荐
	{
		 token=strtok(NULL ,"\t\n\r");if( token == NULL ) return;	
		 (*TargetPointer) = atoi(token);
		 TargetPointer++;
	}

	return;
}

bool LoadRareProbability()
{
	char buf[1024] ;
	FILE *fp ;
	char	filename[MAX_FILENAME],filenameBin[MAX_FILENAME];
	sprintf(filename, ".\\itemtable\\rare_probability.txt");
	sprintf(filenameBin, ".\\itemtable\\rare_probability.bin");
	if( fp= Fopen(filename, "rt") )
	{
		int i=0;
		while( !feof(fp) )
		{
			fgets(buf, 1023, fp);
			if( *buf == ';' ) continue;
			if(i> MAX_RARE_PROBABILITY-1 ) break;
				ReadRareProbability(buf, i);
			i++;
		}
		fclose(fp);

		if(fp=Fopen( filenameBin, "wb" ) )
		{
			fwrite( RareProbability, sizeof(t_rareprobability)*MAX_RARE_PROBABILITY, 1, fp);
			fclose(fp);
		}
	 }
	else
	{
		if(fp=Fopen( filenameBin, "rb" ) )
		{
			fread( RareProbability, sizeof(t_rareprobability)*MAX_RARE_PROBABILITY, 1, fp);
			fclose(fp);
		}
		else return 0;
	}
	return 1;
}

void RecvCMD_RARE_UPGRADE_BBS(t_packet *p)
{
#ifdef	KOREA_LOCALIZING_
	ItemAttr item;
	char name[20];
	memcpy ( name,p->u.RareUpgradeBBS.name,20);
	item = p->u.RareUpgradeBBS.Item;
	RareMain Soksung;
	memcpy(&Soksung,&item.attr[IATTR_RARE_MAIN],4);
	//011025 lsw >
	char itemname[300];
	
	strcpy(itemname,GetItemName(item.item_no));
	
	EatRearWhiteChar(itemname);
	//011030 lsw >
	MP3(67);
	if(!Soksung.IsDynamicRare)//020626 lsw
	{
		AddCurrentStatusMessage(FONT_COLOR_RARE_MAIN,lan->OutputMessage(2,503),name,ItemRare[Soksung.soksung1].LocalName,itemname,Soksung.grade);
	}
	else
	{
		AddCurrentStatusMessage(FONT_COLOR_RARE_MAIN,lan->OutputMessage(2,503),name,ItemFunction[Soksung.soksung1].NameAdd,itemname,Soksung.grade);
	}
	//011030 lsw <
#endif
	return;
}

int GetSkillResorceAmount(int &r1count ,int &r2count ,int &r3count ,int &r4count)
{
	int join_no = item_select_result.join_no;		// 父甸绊磊 窍绰 酒捞袍捞 割锅掳 酒捞袍牢啊...

	CItem  *rit1= ItemUnit(item_join[join_no].resource1);;
	CItem  *rit2= ItemUnit(item_join[join_no].resource2);;
	CItem  *rit3= ItemUnit(item_join[join_no].resource3);;
	CItem  *rit4= ItemUnit(item_join[join_no].resource4);;

	int r1amount= item_join[join_no].resource1_amount;	
	int r2amount= item_join[join_no].resource2_amount;	
	int r3amount= item_join[join_no].resource3_amount;	
	int r4amount= item_join[join_no].resource4_amount;	

	int r1= -1;
	int r2= -1;
	int r3= -1;
	int r4= -1;

	int jj=0;
	int kk=0;
	int ii=0;

	ItemAttr Item ; 
	const int ino1 = item_join[join_no].resource1;
	const int ino2 = item_join[join_no].resource2;
	const int ino3 = item_join[join_no].resource3;
	const int ino4 = item_join[join_no].resource4;

	for(jj=0;jj<3;jj++)
	{
		for(kk=0;kk<3;kk++) 
		{
			for(ii=0;ii<8;ii++)  //牢亥配府芒狼 技肺 弥措 农扁绰 3
			{   
				Item = InvItemAttr[jj][kk][ii];
				if( rit1 )
				{
					if(ino1 == Item.item_no)
					{
						if(DIVIDE_ITEM == rit1->GetRButton()){r1count += Item.attr[IATTR_MUCH];}
						else{r1count++;}
					}

				}
				if( rit2 )
				{
					if(ino2 == Item.item_no)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -