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

📄 chardatatable.cpp

📁 网络游戏龙族 完整的登陆器 C++ 源代码
💻 CPP
📖 第 1 页 / 共 4 页
字号:
/*****************************************************************************\
* Copyright (c), Future Entertainment World / Seoul, Republic of Korea        *
* All Rights Reserved.                                                        *
*                                                                             *
* This document contains proprietary and confidential information.  No        *
* parts of this document or the computer program it embodies may be in        *
* any way copied, duplicated, reproduced, translated into a different         *
* programming language, or distributed to any person, company, or             *
* corporation without the prior written consent of Future Entertainment World *
\*****************************************************************************/

#include "StdAfx.h"


#include "Dragon.h"
#include "Char.h"
#include "Hong_Sub.h"
#include "directsound.h"
#include "CharDataTable.h"
#include "Horse.h"										// LTS HOSERIDER



extern CHARACTERLIST		g_CharacterList;
extern cHorseRider			g_HorseRider;				// LTS HORSERIDER


#define WAVE_ANIMATION  0


NPCLev_to_Exp		NPC_Lev_Ref[Num_Of_NPC_Lev] ;


////////////////////////////////////////////////////////////////////////////////////////////////
//
//	User Function...
//

///////////////// 0807 lkh 眠啊 ////////////////
int ReturnWaveHeroAnimation( LPCHARACTER ch, int wave )
{
  switch ( ch->nCurrentAction )
  {			
    case ACTION_BATTLE_NONE_TWOHAND	://傈捧扁夯 2( 剧颊 )
    case ACTION_BATTLE_NONE			://傈捧扁夯
	case ACTION_NONE				://扁夯悼累
	case ACTION_DIE					://磷扁
	case ACTION_MAGIC_BEFORE		://付过矫傈
	case ACTION_RUN					://顿扁
	case ACTION_BATTLE_WALK_OWNHAND	://傈捧叭扁
	case ACTION_BATTLE_WALK_TWOHAND	://傈捧叭扁 2 ( 剧颊俊 八 )
	case ACTION_BASIC_WALK			://扁夯叭扁


	case ACTION_ATTACK_ONESWORD1	://茄颊傍拜
	case ACTION_ATTACK_ONESWORD2	://茄颊傍拜2
	case ACTION_ATTACK_BONG_DOWN	://豪, 帮豪, 傍拜( 郴妨摹扁 )
	case ACTION_ATTACK_BONG_JJIRKI	://芒, 豪, 傍拜( 骂福扁 )
	case ACTION_ATTACK_BOW			://劝筋扁	
	case ACTION_ATTACK_PENSWORD2	://奇教磊技
	case ACTION_ATTACK_PENSING1		://奇教傍拜 1
	case ACTION_ATTACK_PENSING2		://奇教傍拜 2
	case ACTION_THROW				://带瘤扁傍拜
	case ACTION_ATTACK_BONG_ROUND	://豪, 芒, 帮豪, 傍拜( 戎滴福扁 )
			
			return AttackRangeTable[ch->sprno][ ch->accessory[ 2]][8 + ch->sex];
		
		break;


#define WAV_ARMOR_IRON_HITED		214
#define WAV_ARMOR_ROBE_HITED		215
#define WAV_ARMOR_SKIN_HITED		216

//	214       艰癌渴鸥拜.wav
//	215       肺宏癌渴鸥拜.wav
//	216       盖混鸥拜.wav 

//	217       倒耽捞鸥拜.wav
//	218       倔澜鸥拜.wav
//	219       唱公鸥拜.wav
//	220       入鸥拜.wav

//	221       艰规菩.wav
//	222       唱公规菩.wav
	case ACTION_ATTACKED			://嘎扁  // ####酒赣 龙皑俊 蝶扼 鸥拜矫 唱绰 家府...
		// #### 
		if( wave == 1 )
		{
			switch( ch->accessory[0] )
			{
			case 3 :  
			case 5 :  
			case 7 :  
			case 13:  
			case 15:  return WAV_ARMOR_IRON_HITED;
				
				
			case 1 :  
			case 9 :  
			case 11:  
			case 17:  
			case 19:  
			case 21:  if( Random(2) )
						return WAV_ARMOR_ROBE_HITED; 

			default :  return 216; //     盖混鸥拜.wav 
			}
		}
		else 
		{	
			if( ch->sex == 0 )
			{
				// #### 咯磊 '拦'家府甫 持绰促. 
			}
			else 
			{
				// #### 巢磊 '拦'家府甫 持绰促. 
			}
		}
		break;

	case ACTION_MAGIC_CASTING		://付过某胶泼
	case ACTION_SITDOWN				://臼扁
	case ACTION_HORSE				://富鸥扁
		break;
  }

	return wave;
}


int ReturnWaveNPCAnimation( LPCHARACTER ch, int wave )
{	
	switch ( ch->nCurrentAction )
	{
	case MON1_NONE			:	//扁夯悼累
	case MON1_DIE			:	// 磷扁....
	case MON1_ATTACKED		:	//嘎扁	
	case MON1_BATTLE_ATTACK :	// 茄颊傍拜
	case MON1_CASTING_MAGIC :		// 08付过矫傈		// LTS DRAGON 
	case MON1_BATTLE_ATTACK2 :	// 09傍拜 2
	case MON1_BATTLE_ATTACK3 :	// 10傍拜 3
	case MON1_JUST_ACTION :		// 11烙狼狼 悼累 	
	break;
	} // switch..
	
	return wave;
}	

/*	
	MON1_NONE = 0,		// 扁夯悼累
	MON1_BATTLE_WALK,	// 扁夯叭扁
	MON1_ATTACKED,		// 嘎扁
	MON1_DIE,			// 磷扁....
	MON1_BATTLE_ATTACK  // 茄颊傍拜
*/


///////////////////////////// SoundUp lkh 荐沥 ///////////////////////////////////
int ReturnPCAutoWave(LPCHARACTER	lpChar, int type)		//PC(lpChar->瓤苞澜 林眉/措惑 某腐磐 | type->0:傍磊/1:乔鸥拜磊)
{
	int wave_Num =300;
	int	weapon_Type = IK_ONE_SWORD;
	int	attack_Pattern;			//盖颊:0/茄颊八:1/芒:2/帮,根嫡捞:3/瘤莆捞:4/茄颊枚硼:5/剧颊档尝:6/厚八:7/茄颊何:8/豪:9/拱绢垛扁:10/扁鸥:11

	// type -> 0:傍拜澜 1:鸥拜澜
	//int sound		= lpChar->瓤苞澜 林眉;

	CItem *weapon	= ItemUnit( EquipItemAttr[WT_WEAPON] );

	if(weapon)
		weapon_Type = weapon->GetItemKind();

	///////////////////////////// 鸥拜澜 ////////////////////////////////
	if(type)
	{
		LPCHARACTER			attacker=ReturnCharacterPoint(lpChar->attacker_ID);
		if(attacker==NULL)	return 0;

		//////////////////////////// npc狼 傍拜 菩畔 盒幅 /////////////////////////////////
		switch(attacker->sprno)
		{
			case 7:		//胶奶饭沛
			case 8:		//绊喉赴
			case 18:	//虐 累篮 版厚盔
			case 19:	//虐 奴 版厚盔
			case 20:	//蹲蹲茄 版厚盔
			case 57:	//俊胆宏肺捞
			case 58:	//饭萍
			case 59:	//拳坊瞒
			case 62:	//坷农2
			case 68:	//龋厚飘巢
			case 69:	//龋厚飘咯
			case 78:	//檬里捞
			case 63:	//郡橇巢
			case 64:	//郡橇咯
				attack_Pattern=1;		//茄颊八戎笛扁
				break;
			case 10:	//啊绊老
			case 44:	//荐沥炼阿惑
				attack_Pattern=2;		//芒 拌凯
				break;
			case 13:	//飘费
				attack_Pattern=3;		//帮/根嫡捞 拌凯
				break;
			case 17:	//鸥捞锅
			case 24:	//酒历揪
			case 39:	//窍鞭龟矫
				attack_Pattern=4;		//瘤莆捞
				break;
			case 37:	//倔澜芭牢
				attack_Pattern=5;		//茄颊枚硼
				break;
			case 75:	//公扁痢 林牢
			case 61:	//墨府胶穿盖		
				attack_Pattern=6;		//剧颊档尝
				break;
			case 40:	//盖胶妮乔攫
				attack_Pattern=7;		//厚八带瘤扁
				break;
			case 65:
			case 66:
				attack_Pattern=8;		//茄颊何
				break;
			case 60:	//矫公聪救
			case 74:	//措厘埃/格傍家 林牢
				attack_Pattern=9;		//豪 拌凯
				break;
			case 12:
			case 43:
			case 45:
			case 70:
				attack_Pattern=0;		//盖颊戎笛扁
				break;
			case 55:	//阂刀
			case 9:		//侥牢侥拱
			case 29:	//俺
			case 47:	//档付轨牢埃
			case 2:		//甸零
			case 33:	//戳措
			case 32:	//杆蹬瘤
				attack_Pattern=10;		//拱绢垛扁
				break;
			default:
				attack_Pattern=11;		//扁鸥
				break;
		}
		
		BOOL	shield_Use=0;		//规菩 馒侩 咯何
		BOOL	armor_Use=0;		//规绢汗 馒侩 咯何
		
		CItem *shield = ItemUnit( EquipItemAttr[WT_SHIELD] );
		if( shield && lpChar->peacests==1 )	shield_Use = TRUE;		//傈捧葛靛牢 版快
		
		CItem *armor = ItemUnit( EquipItemAttr[WT_ARMOR] );
		if( armor )		armor_Use = TRUE;

		int		aw = attacker->accessory[2];

		//规菩甫 甸绊 乐阑 版快 25% 犬伏肺 规菩 鸥拜澜 贸府
		if( shield_Use && rand()%101<=25 )
		{
			switch(lpChar->accessory[3])	//规菩 鸥拜
			{
			case 91:		//唱公规菩
			{
				// 傍磊狼 傍拜悼累俊 蝶扼
				if(attacker->nCurrentAction == ACTION_ATTACK_ONESWORD1 || attack_Pattern == 1 || attack_Pattern == 8 )
				{
					if( aw == 61 || aw == 62 || aw == 71 || attack_Pattern == 1 )
						wave_Num=337;		//茄颊漠
					else if( aw == 66 || aw == 67 || attack_Pattern == 8 )
						wave_Num=335;		//茄颊何
					else 
						wave_Num=334;		//枚硼
				}

				else if(attacker->nCurrentAction == ACTION_ATTACK_ONESWORD2)
				{
					switch( aw )
					{
						case 61:			//茄颊漠
						case 62:			
						case 66:			//茄颊档尝
						case 67:
							wave_Num=337;
							break;
						default:
							wave_Num=334;
							break;
					}
				}

				else if(attacker->nCurrentAction == ACTION_ATTACK_BONG_DOWN || attack_Pattern == 4 || attack_Pattern == 9 )
				{
					if( aw == 72 || aw == 73 || aw == 76 || aw == 77 || attack_Pattern == 4 || attack_Pattern == 9 )
						wave_Num=334;
					
					else if( aw == 68 || aw == 69 || attack_Pattern == 6 )		//剧颊何
						wave_Num=336+rand()%2;
					
					else if( aw == 70 || attack_Pattern == 5 )					//茄颊枚硼
						wave_Num=337;
				}

				else if(attacker->nCurrentAction == ACTION_ATTACK_BONG_JJIRKI || attacker->nCurrentAction == ACTION_ATTACK_BOW ||
					attacker->nCurrentAction == ACTION_THROW || attacker->nCurrentAction == ACTION_ATTACK_PENSING1 || attack_Pattern == 7 || attack_Pattern == 2)
					wave_Num=335;
				
				
				else if(attacker->nCurrentAction == ACTION_ATTACK_PENSING2)			//  12 咯磊:奇教傍拜 2 (困俊辑 酒贰肺 郴妨 骂福扁)	巢磊:剧颊 辨霸 骂福扁
				{
					if(attacker->sprno)		//巢磊
						wave_Num=335;
					else					//咯磊
						wave_Num=336;
				}

				else if(attacker->nCurrentAction == ACTION_ATTACK_BONG_ROUND)		//  23 咯磊:豪,芒,帮豪 糠俊辑 戎滴福扁				巢磊:3楷鸥 骂福扁
				{
					if(attacker->sprno)		//巢磊
						wave_Num=335;
					else					//咯磊
						wave_Num=334;
				}
				
				else	wave_Num=335;
			}
			break;

			case 89:			//啊磷规菩
				wave_Num=330;
				break;
			
			default:			//陛加规菩
			{
				if(attacker->nCurrentAction==ACTION_ATTACK_ONESWORD1 || attack_Pattern == 1)
					wave_Num=331;
				else if(attacker->nCurrentAction==ACTION_ATTACK_ONESWORD2 || attack_Pattern == 5 || attack_Pattern == 8 )
				{
					if( aw == 61 || aw == 62 || aw == 71 || aw == 66 || aw == 67 || attack_Pattern == 5 || attack_Pattern == 8 )
						wave_Num=331;
					else
						wave_Num=332;
				}
				else if(attacker->nCurrentAction==ACTION_ATTACK_BONG_DOWN || attack_Pattern == 9 || attack_Pattern == 4 || attack_Pattern == 6 )
				{
					if( aw == 72 || aw == 73 || aw == 70 || attack_Pattern == 9 )
						wave_Num=331;
					else if( aw == 76 || aw == 77 || attack_Pattern == 4 )
						wave_Num=337;
					else if( aw == 68 || aw == 69 || attack_Pattern == 6 )
						wave_Num=332;
				}
				else if(attacker->nCurrentAction==ACTION_ATTACK_BONG_JJIRKI || attacker->nCurrentAction==ACTION_ATTACK_BOW ||
					attacker->nCurrentAction==ACTION_THROW || attacker->nCurrentAction==ACTION_ATTACK_PENSING1 || attack_Pattern == 7 || attack_Pattern == 2)
					wave_Num=333;
				else if(attacker->nCurrentAction==ACTION_ATTACK_PENSING2)
				{
					if(attacker->sprno)		//巢磊
						wave_Num=331;
					else					//咯磊
						wave_Num=333;
				}
				else if(attacker->nCurrentAction==ACTION_ATTACK_BONG_ROUND)
				{
					if(attacker->sprno)		//巢磊
						wave_Num=331;
					else
					{
						if( aw == 72 || aw == 73 )
							wave_Num=331;
						else
							wave_Num=337;
					}
				}
				else	wave_Num=332;
			}
			break;
			}		//end switch

		}
		
		else			//规菩甫 甸绊 乐瘤 臼篮 版快(癌渴鸥拜澜)
		{
			if( armor && armor->GetItemKind() == IK_IRON_ARMOR )			//陛加癌渴	// 0929 YGI
			{
				if(attacker->type==SPRITETYPE_CHARACTER)
				{
					switch(attacker->nCurrentAction)		//傍磊狼 公扁俊 蝶弗 瞒喊利牢 家府 楷免
					{
					case ACTION_ATTACK_ONESWORD1:		//   5 茄颊傍拜 窜规
						wave_Num=300+rand()%2;
						break;

					case ACTION_ATTACK_ONESWORD2:		//   6 茄颊傍拜 2楷鸥
						switch( attacker->accessory[2] )
						{
							case 61:			//茄颊漠
							case 62:
							case 66:			//茄颊档尝
							case 67:
								wave_Num=300+rand()%2;
								break;
							default:
								wave_Num=302;
								break;
						}
						break;

					case ACTION_ATTACK_BONG_DOWN:		//   7 豪, 帮豪,  傍拜( 剧颊 郴妨摹扁-赣府困俊辑 酒贰肺 )
						switch( attacker->accessory[2] )
						{
							case 72:			//	豪
							case 73:
							case 76:			//	瘤莆捞
							case 77:
								wave_Num=303;
								break;
							case 68:		//	剧颊档尝
							case 69:
								wave_Num=302;
								break;
							case 70:		//	剧颊枚硼
								wave_Num=305;
								break;
						}
						break;

					case ACTION_ATTACK_BONG_JJIRKI:		//   8 芒 傍 拜( 茄颊 骂福扁-绢柄 困俊辑 )
					case ACTION_ATTACK_BOW:				//   9 劝筋扁
					case ACTION_THROW:					//  19 带瘤扁傍拜
					case ACTION_ATTACK_PENSING1:			//  11 咯磊:奇教傍拜 1 (辨霸 茄规 骂福扁)			巢磊:剧颊 困俊辑 措阿急栏肺 海扁
						wave_Num=304;
						break;

					case ACTION_ATTACK_PENSING2:			//  12 咯磊:奇教傍拜 2 (困俊辑 酒贰肺 郴妨 骂福扁)	巢磊:剧颊 辨霸 骂福扁
						wave_Num=301;
						break;

					case ACTION_ATTACK_BONG_ROUND:		//  23 咯磊:豪,芒,帮豪 糠俊辑 戎滴福扁				巢磊:3楷鸥 骂福扁
						if(lpChar->sprno)		//巢磊
							wave_Num=304;
						else					//咯磊
							wave_Num=305;
						break;

					default:
						wave_Num=303;
						break;
					}
				}
				else		//傍磊啊 npc牢 版快
				{
					//盖颊:0/茄颊八:1/芒:2/帮,根嫡捞:3/瘤莆捞:4/茄颊枚硼:5/剧颊档尝:6/厚八:7/茄颊何:8/豪:9/拱绢垛扁:10/扁鸥:11
					switch(attack_Pattern)
					{
					case 0:

⌨️ 快捷键说明

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