亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? char.cpp

?? 完整龍族的無錯(cuò)反外掛登陸器,b編譯后直接直接就可以放在客戶端下運(yùn)行
?? CPP
?? 第 1 頁 / 共 5 頁
字號(hào):
/*****************************************************************************\
* 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 <Ddraw.h>
#include <Math.h>


#include "sys/stat.h"

#include "Dragon.h"	
#include "Hong_Sprite.h"
#include "Hong_Sub.h"
#include "char.h"  
#include "map.h"
#include "Path.h"


#include "DirectSound.h"
#include "CharDataTable.h"

#include "Menu.h"
#include "Effect.h"

//#include "MenuDef.h"
#include "NumberAniMgr.h"
#include "ItemTable.h"

#include "NetWork.h"
#include "GameProc.h"
#include "Hangul.h"
#include "Item.h"


#include "Tool.h"
#include "Hong_Light.h"
#include "House.h"
#include "Skill.h"
#include "kh_cpp.h"
#include "Horse.h"		// LTS HORSERIDER
#include "StrikeSys.h"
#include "CombatSys.h"
using namespace battle;

#define COLOR_FROZEN ReturnBlendRGB(100, 100, 255)
#define	COLOR_SLOW   ReturnBlendRGB(255, 255, 100)
#define COLOR_DAZE   ReturnBlendRGB(255, 100, 100)
#define	COLOR_POISON ReturnBlendRGB(100, 255, 100)
#define COLOR_STONE  ReturnBlendRGB(100, 100, 100)

extern cHorseRider		g_HorseRider;		// LTS HORSERIDER
extern int				g_ActionAnger;		// LTS ACTION



extern	void	ChangeItem( int start );	// 烙矯 酒撈袍 官操扁 

////////////////////// 0531 lkh 薦瀝 ////////////////////////
extern  int		GetItemAttr(int item_id, int attr);
extern  int		GetItemAttr2(int sprno, int item_id, int attr);		//011018 KHS 噶肚

extern int GetIndexOfCondition( BYTE );


int IDCount;

///////////////////////////////////////////////////////////////////////////////
//	
extern	SCharacter			SCharacterData;	
extern 	SCharacter			SCharSource;

extern CHARACTERLIST		g_CharacterList;

//extern int aItemInventory[3][3][8];

extern void SendReqGuildInfo1( int guild_code );		// 010719 YGI

BOOL			BuildCharacterList( LPCHARACTERLIST lpCharacterList );
void			DestroyCharacterList( LPCHARACTERLIST lpCharacterList );
void			DestroyCharacterListAll( LPCHARACTERLIST lpCharacterList );

void			DisplayPC( LPCHARACTER ch, int tag );
BOOL			AddCharacter( LPCHARACTERLIST lpCharacterList, LPCHARACTER ch, LPGPCHARINFO gpch );
void			DeleteCharacter( LPCHARACTERLIST lpCharacterList, LPCHARACTER ch );
LPCHARACTER		FindCharacter( LPCHARACTERLIST lpCharacterList, DWORD dwID );

void			SetCharacterPosition( LPCHARACTER ch, POINT position );
LPPOINT			GetCharacterPosition( LPCHARACTER ch );
BOOL			ChangeDirection( DIRECTION* lpDirection, int sx, int sy, int dx, int dy );


BYTE			SpriteOrder[ 4][ 8][ 75];
int				EndOfAnimationFlag;
int				AttackRangeTable[2][ CHARACTER_ACCESSORY_MAX_][ 10];


void  GetAttacked( LPCHARACTER ch );

NPC_INFO    g_infNpc[MAX_CHARACTER_SPRITE_];
GPCHARINFO	gpCharInfo;	


BOOL BuildCharacterList( LPCHARACTERLIST lpCharacterList )
{	
	gpCharInfo.type			= SPRITETYPE_CHARACTER;	
	gpCharInfo.id			= 0;
	
	gpCharInfo.sprno		= 0;
	
	//	gpCharInfo.position.x	= gpCharInfo.position.y = 0; 
	gpCharInfo.position.x	= 195* TILE_SIZE; 
	gpCharInfo.position.y	= 151* TILE_SIZE;
	
	CharUpper( MapName );
	if( strcmp( "FIREDUN1", MapName ) == 0 )
	{
		gpCharInfo.position.x	= 195* TILE_SIZE; 
		gpCharInfo.position.y	= 151* TILE_SIZE;
	}
	else if( strcmp( "K_SUNG2", MapName ) == 0 )
	{
	}else if( strcmp( "MA-IN", MapName ) == 0 )
	{
	}else if( strcmp( "SUNG_TILE_00", MapName ) == 0 )
	{
		gpCharInfo.position.x = 52* TILE_SIZE; 
		gpCharInfo.position.y = 22* TILE_SIZE;
	}else if( strcmp( "SOURCE", MapName ) == 0 )
	{
		gpCharInfo.position.x	= 200* TILE_SIZE; 
		gpCharInfo.position.y	= 130* TILE_SIZE;
	}else if( strcmp( "ICE-W01", MapName ) == 0 )
	{
		gpCharInfo.position.x	= 91* TILE_SIZE; 
		gpCharInfo.position.y	= 119* TILE_SIZE;
	}
	
	gpCharInfo.direction	= DIRECTION_DOWN;
	
	gpCharInfo.nCurrentAction = ACTION_NONE;
	gpCharInfo.basicAction	= ACTION_BATTLE_NONE;
	gpCharInfo.basicWalk	= ACTION_BATTLE_WALK_OWNHAND;
	gpCharInfo.animationType= ANIMATION_TYPE_WOMAN;
	
	gpCharInfo.bodyr = 255;
	gpCharInfo.bodyg = 255;
	gpCharInfo.bodyb = 255;
	
	gpCharInfo.clothr = 255;
	gpCharInfo.clothg = 0;
	gpCharInfo.clothb = 0;
	
	SCharacterData.nCharacterHP = gpCharInfo.hp			= 2000;
	SCharacterData.nCharacterMP = gpCharInfo.mp			= 3000;
	SCharacterData.nCharacterSP = gpCharInfo.sp			= 4000;
	SCharacterData.nCharacterMAXHP = gpCharInfo.hpmax	= 2100;
	SCharacterData.nCharacterMAXMP = gpCharInfo.mpmax	= 3100;
	SCharacterData.nCharacterMAXSP = gpCharInfo.spmax	= 4100;
	
	SCharSource.nCharacterData[0] = 1;
	gpCharInfo.sex			= SCharSource.nCharacterData[0]; 
	gpCharInfo.sight		= 300;
	
	switch( gpCharInfo.sprno )
	{			
	case 0 :	gpCharInfo.accessory[0] = 11;
		gpCharInfo.accessory[1] =  0;
		gpCharInfo.accessory[2] = 61;
		gpCharInfo.accessory[3] =  0;
		break;
	case 1 :	gpCharInfo.accessory[0] =  7;
		gpCharInfo.accessory[1] =  0;
		gpCharInfo.accessory[2] = 61;
		gpCharInfo.accessory[3] =  0;
		break;
	}			
	
	int tx = gpCharInfo.position.x - 10;
	if( tx < 0 ) tx = 0;		
	int ty = gpCharInfo.position.y - 7;
	if( ty < 0 ) ty = 0;		
	
	RECT	rect;				
	
	rect.left	= tx;			
	rect.top	= ty;			
	rect.right	= tx + 20;		
	rect.bottom = ty + 11;		
	
	int id = 0;
	int i,j;
	
	for( i = 0 ; i < 5 ; i ++ )
		for( j = 0 ; j < 5 ; j ++)
		{
			gpCharInfo.position.x	= (195 + i*2 )* TILE_SIZE; 
			gpCharInfo.position.y	= (151 + j*2 )* TILE_SIZE;
			gpCharInfo.id			= id++;
			AddCharacter( lpCharacterList, g_CharacterList.lpLast, &gpCharInfo );
		}
		
		
		
		///////////////////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////////////  Another PC 
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		
		
		///////////////////////////////////////////////////////////////////////////////
		////////////////////////////////////////////////////////  NPC  Monster...
		///////////////////////////////////////////////////////////////////////////////
		///////////////////////////////////////////////////////////////////////////////
		
		
		gpCharInfo.type		 = SPRITETYPE_MONSTER;	//SPRITETYPE_MONSTER;	
		gpCharInfo.id		 = 7;	
		gpCharInfo.sprno	 = 16;	
		
		//	gpCharInfo.position.x = gpCharInfo.position.y = 0; 
		gpCharInfo.position.x = 192* TILE_SIZE; 
		gpCharInfo.position.y = 152* TILE_SIZE;
		
		
		if( strcmp( "FIREDUN1", MapName ) == 0 )
		{
			gpCharInfo.position.x	= 193* TILE_SIZE; 
			gpCharInfo.position.y	= 151* TILE_SIZE;
		}
		else if( strcmp( "K_SUNG2", MapName ) == 0 )
		{
			
		}else if( strcmp( "MA-IN", MapName ) == 0 )
		{
			
		}else if( strcmp( "SUNG_TILE_00", MapName ) == 0 )
		{
			gpCharInfo.position.x = 53* TILE_SIZE; 
			gpCharInfo.position.y = 27* TILE_SIZE;
		}else if( strcmp( "SOURCE", MapName ) == 0 )
		{
			gpCharInfo.position.x	= 200* TILE_SIZE; 
			gpCharInfo.position.y	= 133* TILE_SIZE;
		}else if( strcmp( "ICE-W01", MapName ) == 0 )
		{
			gpCharInfo.position.x	= 94* TILE_SIZE; 
			gpCharInfo.position.y	= 121* TILE_SIZE;
		}
		
		
		gpCharInfo.direction = DIRECTION_DOWN;
		
		gpCharInfo.nCurrentAction	= MON1_NONE;
		gpCharInfo.basicAction		= MON1_NONE;
		gpCharInfo.basicWalk		= MON1_BATTLE_WALK;
		gpCharInfo.animationType	= ANIMATION_TYPE_MON1;
		
		gpCharInfo.sex				= 0;
		
		gpCharInfo.hp			= 2000;
		gpCharInfo.mp			= 3000;
		gpCharInfo.sp			= 4000;
		gpCharInfo.hpmax		= 2100;
		gpCharInfo.mpmax		= 3100;
		gpCharInfo.spmax		= 4100;
		
		if ( !AddCharacter( lpCharacterList, g_CharacterList.lpLast, &gpCharInfo ) )
		{
			return	FALSE;	
		}
		
		return	TRUE;
}	

void DestroyCharacterList(  LPCHARACTERLIST lpCharacterList )
{		
	while ( lpCharacterList->lpLast != NULL )
		DeleteCharacter( lpCharacterList, lpCharacterList->lpLast );
	
	lpCharacterList->nCount = 0;	
}		

void DestroyCharacterListExceptHero( void )
{		
	LPCHARACTER temp = NULL;
	
	if(!g_CharacterList.lpFirst)
	{
		return;
	}
	
	LPCHARACTER ch = g_CharacterList.lpFirst->lpNext;
	
	while( ch != NULL )
	{	
		temp = ch->lpNext;
		DeleteCharacter( &g_CharacterList, ch );
		ch = temp;
	}	
}		

void PutWeapon(CHARACTER* pTarget, int nX, int nY)
{	//< CSD-031029
	if (pTarget == NULL)
	{
		return;
	}

	if (pTarget->peacests == 0)
	{
		return;
	}

	if (pTarget->idWeaponItem/1000 != 6)
	{	//< CSD-031101
		PutCompressedImage(nX, nY, pTarget->sp2);
		return;
	}	//> CSD-031101

	CItem_Weapon* pWeapon = static_cast<CItem_Weapon*>(ItemUnit(pTarget->idWeaponItem));

	if (pWeapon == NULL)
	{
		return;
	}

	const int nEffect = pWeapon->effect;
	const int nFrame = pTarget->AnimationTable[pTarget->nCurrentAction].cFrame[pTarget->nCurrentFrame];
	CharacterSprite* pAccessorySprite = CharAccessorySpr[pTarget->sprno];
	Spr* pWeaponSprite = &(pAccessorySprite + nEffect)->sp[pTarget->direction][nFrame];

	switch (pWeapon->nRange)
	{
	case 0:
		{
			if (nEffect > 0)
			{
				PutCompressedImageFX(nX, nY, pWeaponSprite, 10 + Random(4), 2);
			}

			PutCompressedImage(nX, nY, pTarget->sp2);
			break;
		}
	case 1:
		{
			PutCompressedImage(nX, nY, pTarget->sp2);
			
			if (nEffect > 0)
			{
				PutCompressedImageFX(nX, nY, pWeaponSprite, 10 + Random(4), 2);
			}

			break;
		}
	}
}	//> CSD-031014

void PutWeapon(CHARACTER* pTarget, int nX, int nY, DWORD dwColor)
{	//< CSD-031014
	if (pTarget == NULL)
	{
		return;
	}

	if (pTarget->peacests == 0)
	{
		return;
	}

	if (pTarget->idWeaponItem/1000 != 6)
	{	//< CSD-031101
		PutCompressedImageCharRGB(nX, nY, pTarget->sp2, dwColor);
		return;
	}	//> CSD-031101

	CItem_Weapon* pWeapon = static_cast<CItem_Weapon*>(ItemUnit(pTarget->idWeaponItem));

	if (pWeapon == NULL)
	{
		return;
	}

	const int nEffect = pWeapon->effect;

	if (nEffect > 0)
	{
		CharacterSprite* pAccessorySprite = CharAccessorySpr[pTarget->sprno];

		const int nFrame = pTarget->AnimationTable[pTarget->nCurrentAction].cFrame[pTarget->nCurrentFrame];
		Spr* pWeaponSprite = &(pAccessorySprite + nEffect)->sp[pTarget->direction][nFrame];
		PutCompressedImageFX(nX, nY, pWeaponSprite, 10 + Random(4), 2);
	}

	PutCompressedImageCharRGB(nX, nY, pTarget->sp2, dwColor);
}	//> CSD-031029

void PutBody( LPCHARACTER ch, int x, int y, Spr *sp, DWORD bodycolor )
{
	PutCompressedImageCharRGB( x,y, sp, bodycolor);
}		

void PutHead(int ac1, CharacterSprite *cas, int dir, int sprc, int x, int y)		// 010412 YGI
{	//< CSD-031029
	switch (ac1)
	{
	case 0:
		{
			PutCompressedImage(x, y, &(cas + 104)->sp[dir][sprc]);
			break;		// default 捧備
		}
	case 1:
		{
			break;
		}
	default:
		{
			PutCompressedImage(x, y, &(cas + ac1)->sp[dir ][sprc]);
			break;
		}
	}
}	//> CSD-031029

void PutHead(int ac1, CharacterSprite *cas, int dir, int sprc, int x, int y, DWORD dwColor)
{	//< CSD-031029
	switch (ac1)
	{
	case 0:
		{
			PutCompressedImageCharRGB(x, y, &(cas + 104)->sp[dir][sprc], dwColor);
			break;		// default 捧備

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡在线观看av| 精品视频一区三区九区| 亚洲一区二区三区小说| 日韩免费性生活视频播放| 成人手机在线视频| 蜜臀久久久99精品久久久久久| 国产精品日韩精品欧美在线| 欧美高清你懂得| 91小视频免费观看| 国产成人在线视频网址| 亚洲18色成人| 亚洲另类在线视频| 国产片一区二区三区| 欧美一区二区免费视频| 日本丶国产丶欧美色综合| 激情欧美日韩一区二区| 视频一区二区不卡| 亚洲人成精品久久久久久| 国产夜色精品一区二区av| 欧美一区二区三区四区五区| 色老汉av一区二区三区| av电影一区二区| 国产综合色在线视频区| 石原莉奈一区二区三区在线观看| 亚洲三级在线播放| 久久久精品一品道一区| 日韩美一区二区三区| 欧美片网站yy| 欧美在线制服丝袜| 91在线一区二区| 不卡一卡二卡三乱码免费网站| 久久激情五月激情| 青青国产91久久久久久| 天天影视网天天综合色在线播放| 亚洲人吸女人奶水| 国产精品色眯眯| 国产精品午夜免费| 国产日韩在线不卡| 国产视频911| 国产欧美一区在线| 中文字幕不卡的av| 国产日韩欧美激情| 久久亚洲精品小早川怜子| 亚洲精品一区二区三区在线观看| 91精品国产欧美日韩| 欧美一区二区三区视频在线观看| 5月丁香婷婷综合| 欧美一三区三区四区免费在线看 | 婷婷成人激情在线网| 一卡二卡三卡日韩欧美| 亚洲一区二区偷拍精品| 亚洲国产日韩综合久久精品| 亚洲444eee在线观看| 青草av.久久免费一区| 精品一区二区三区在线播放| 极品销魂美女一区二区三区| 国产麻豆成人精品| 成人高清在线视频| 色哟哟在线观看一区二区三区| 欧美自拍偷拍午夜视频| 欧美乱妇15p| 精品噜噜噜噜久久久久久久久试看| 欧美精品一区二区久久婷婷| 国产亲近乱来精品视频| 亚洲精品久久7777| 日本亚洲最大的色成网站www| 久久精品国产免费| 成人午夜伦理影院| 欧洲国产伦久久久久久久| 91精品福利在线一区二区三区| 欧美精品一区二区三区一线天视频| 日本一区二区免费在线| 亚洲精品国久久99热| 麻豆国产一区二区| 不卡视频免费播放| 制服丝袜激情欧洲亚洲| 国产日韩亚洲欧美综合| 亚洲精品国产无套在线观| 日本aⅴ免费视频一区二区三区| 国产一本一道久久香蕉| 96av麻豆蜜桃一区二区| 日韩视频一区二区在线观看| 欧美韩国日本不卡| 午夜激情久久久| 成人网页在线观看| 91精品国产综合久久福利 | 亚洲成人你懂的| 久久99精品视频| 一本色道久久综合狠狠躁的推荐| 日韩欧美高清一区| 亚洲欧洲av在线| 久久精品国产一区二区| 色丁香久综合在线久综合在线观看| 日韩欧美精品在线视频| 亚洲男同1069视频| 精品一区二区影视| 欧美性大战xxxxx久久久| 国产三级精品视频| 日本vs亚洲vs韩国一区三区二区 | 欧美精品丝袜中出| 亚洲国产精品国自产拍av| 亚洲chinese男男1069| 成人综合在线网站| 在线综合视频播放| 亚洲美女精品一区| 国产成人一区在线| 91精品蜜臀在线一区尤物| 专区另类欧美日韩| 国产精品99久久久久久似苏梦涵| 欧美日韩一区不卡| 亚洲视频电影在线| 成人午夜免费视频| 久久亚洲综合色| 麻豆国产精品官网| 欧美日韩国产天堂| 一区二区三区精品视频在线| 成人福利在线看| 久久一区二区视频| 美女一区二区三区| 欧美日韩国产精品成人| 夜夜夜精品看看| 91香蕉国产在线观看软件| 国产蜜臀av在线一区二区三区| 精品一区二区三区久久久| 欧美三级在线播放| 亚洲一区国产视频| 色婷婷av一区二区三区之一色屋| 国产精品久久久久久久岛一牛影视 | 亚洲视频中文字幕| 成人午夜在线播放| 国产精品视频你懂的| 国产宾馆实践打屁股91| 久久久亚洲精品一区二区三区| 蜜桃视频在线观看一区二区| 884aa四虎影成人精品一区| 图片区小说区区亚洲影院| 欧美午夜不卡在线观看免费| 一区二区三区**美女毛片| 91国偷自产一区二区使用方法| 中文字幕欧美一区| 91免费版pro下载短视频| 亚洲人亚洲人成电影网站色| av影院午夜一区| 亚洲激情成人在线| 欧美视频在线观看一区二区| 亚洲国产中文字幕在线视频综合 | 亚洲国产成人porn| 欧美亚洲国产怡红院影院| 亚洲成av人在线观看| 欧美精品久久99| 免费高清在线一区| 久久人人爽人人爽| 成人av片在线观看| 一区二区三区免费在线观看| 欧美区在线观看| 另类人妖一区二区av| 国产日韩欧美精品综合| 91亚洲大成网污www| 亚瑟在线精品视频| 日韩欧美高清dvd碟片| 国产精品一区二区在线观看不卡| 中文字幕av不卡| 在线观看一区二区精品视频| 日韩高清在线电影| www亚洲一区| 99v久久综合狠狠综合久久| 亚洲在线免费播放| 欧美大尺度电影在线| 成人ar影院免费观看视频| 亚洲一区在线观看免费 | kk眼镜猥琐国模调教系列一区二区 | 精品国产一区二区三区不卡 | 狠狠网亚洲精品| 国产精品美女久久久久高潮| 欧美怡红院视频| 精品制服美女丁香| 亚洲欧美日韩精品久久久久| 717成人午夜免费福利电影| 国产精品亚洲人在线观看| 亚洲免费观看在线视频| 日韩精品一区二区三区在线 | 99re热这里只有精品免费视频| 亚洲一区影音先锋| 久久色.com| 欧美日韩在线亚洲一区蜜芽| 国产一区二区三区视频在线播放| 《视频一区视频二区| 日韩欧美黄色影院| 91伊人久久大香线蕉| 久久99精品久久只有精品| 一区二区三区欧美激情| 国产免费观看久久| 69久久99精品久久久久婷婷| 成人禁用看黄a在线| 美女一区二区在线观看| 亚洲综合色噜噜狠狠| 国产视频一区不卡| 日韩午夜在线观看| 欧美日韩午夜影院| 99在线精品一区二区三区|