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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? char.cpp

?? 完整龍族的無錯反外掛登陸器,b編譯后直接直接就可以放在客戶端下運行
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
/*****************************************************************************\
* 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 捧備

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品动漫网站| 久久人人超碰精品| 成人av动漫在线| 福利视频网站一区二区三区| 国精产品一区一区三区mba视频| 日产欧产美韩系列久久99| 日韩中文字幕1| 麻豆极品一区二区三区| 精品一区二区在线免费观看| 久88久久88久久久| 国产精品1区二区.| 99精品在线免费| 91精品福利视频| 制服丝袜亚洲网站| 2欧美一区二区三区在线观看视频| 日韩欧美一二区| 国产日韩欧美精品在线| 一区二区中文字幕在线| 亚洲一区二区五区| 久久狠狠亚洲综合| 成人高清视频在线| 欧美日韩在线播放| 日韩精品一区二| 国产精品国产三级国产普通话99| 亚洲三级在线免费观看| 五月综合激情网| 国产成人在线色| 91福利视频久久久久| 欧美电影一区二区| 久久久不卡影院| 亚洲一区二区三区影院| 久久 天天综合| 91日韩精品一区| 日韩一区二区不卡| 亚洲欧美日韩中文播放 | 国产在线视频一区二区三区| 国产成人在线视频网址| 在线一区二区三区四区五区| 91精品国产综合久久久久久| 亚洲国产精品av| 天天射综合影视| 99久久精品国产一区| 6080yy午夜一二三区久久| 欧美高清在线精品一区| 香蕉影视欧美成人| av电影在线观看一区| 精品欧美乱码久久久久久1区2区| 国产精品网站在线播放| 免费看欧美女人艹b| 99久久综合国产精品| 欧美不卡一区二区| 亚洲一区二区成人在线观看| 成人免费视频网站在线观看| 欧美另类videos死尸| 亚洲欧美偷拍卡通变态| 国产盗摄视频一区二区三区| 91精品国产综合久久久久久漫画 | 美女国产一区二区三区| 日本韩国欧美在线| 国产精品久久久久久久久久久免费看 | 中文字幕在线观看不卡视频| 婷婷一区二区三区| 91九色02白丝porn| 国产精品国产三级国产三级人妇 | 国产喂奶挤奶一区二区三区| 日韩av电影天堂| 欧美日精品一区视频| 综合电影一区二区三区 | 精品一区二区三区久久久| 91官网在线观看| 中文字幕亚洲不卡| 成人黄色av电影| 久久久久久久久岛国免费| 蜜臀av性久久久久av蜜臀妖精 | 久久奇米777| 秋霞午夜av一区二区三区| 欧美日韩一区中文字幕| 一区二区三区在线影院| 91麻豆精品视频| 亚洲自拍都市欧美小说| 欧美一a一片一级一片| 亚洲国产中文字幕| 欧美高清dvd| 肉丝袜脚交视频一区二区| 56国语精品自产拍在线观看| 日韩电影在线观看网站| 在线成人av网站| 久草这里只有精品视频| 1024成人网| 在线观看亚洲成人| 午夜伦欧美伦电影理论片| 欧美日韩高清一区二区三区| 香蕉av福利精品导航| 欧美一级生活片| 韩国欧美国产1区| 国产精品九色蝌蚪自拍| 在线观看免费视频综合| 日韩国产精品91| www国产成人| 91视频精品在这里| 日韩国产欧美三级| 久久精品人人做人人爽97| 色综合久久中文综合久久97| 丝袜亚洲另类欧美| 欧美激情在线观看视频免费| 色视频成人在线观看免| 麻豆成人在线观看| 中文字幕日本不卡| 这里只有精品99re| av毛片久久久久**hd| 午夜精品福利一区二区三区蜜桃| 日韩一级精品视频在线观看| 粉嫩蜜臀av国产精品网站| 亚洲韩国一区二区三区| 久久久久国产成人精品亚洲午夜| 色婷婷综合视频在线观看| 久久99精品一区二区三区| 亚洲欧洲av在线| 精品免费视频.| 欧美视频在线播放| 成人精品免费视频| 久久超碰97人人做人人爱| 一区二区不卡在线视频 午夜欧美不卡在| 欧美一区二区三区在线视频| 成人av小说网| 99久久婷婷国产综合精品 | 激情综合亚洲精品| 亚洲一二三区视频在线观看| 久久精品夜夜夜夜久久| 欧美精选在线播放| 色香蕉成人二区免费| 国产福利91精品| 久久se精品一区二区| 亚洲成a人片在线不卡一二三区| 国产精品久久毛片av大全日韩| 91.com视频| 欧美日韩中字一区| 91麻豆免费视频| 99国产麻豆精品| 成人爱爱电影网址| 国产一区二区三区综合| 极品少妇一区二区三区精品视频| 一级女性全黄久久生活片免费| 国产精品天天摸av网| 日本一区二区久久| 国产人成亚洲第一网站在线播放 | 国产精品美女一区二区| 久久日韩粉嫩一区二区三区| 91精品国产色综合久久ai换脸| 欧美日韩中文另类| 欧美亚洲免费在线一区| 色欧美日韩亚洲| 日本丶国产丶欧美色综合| 97精品久久久久中文字幕| 99精品视频中文字幕| 不卡视频在线看| 不卡高清视频专区| 蜜臀久久99精品久久久久久9| 欧美日韩一级二级三级| 国产成人自拍在线| 亚洲国产日产av| 一区二区三区影院| 亚洲狠狠爱一区二区三区| 伊人色综合久久天天| 亚洲精品免费视频| 亚洲国产视频a| 美女一区二区在线观看| 国产麻豆精品在线| 成人av综合一区| 在线观看亚洲一区| 在线播放欧美女士性生活| 精品免费日韩av| 国产欧美一区二区在线| 中文字幕一区免费在线观看| 亚洲欧洲另类国产综合| 亚洲国产一区二区a毛片| 日韩不卡一二三区| 国产成人综合视频| 色婷婷一区二区| 日韩欧美三级在线| 欧美国产日韩精品免费观看| 18欧美亚洲精品| 日本成人在线看| 成人在线一区二区三区| 欧美日本在线一区| 国产视频在线观看一区二区三区| 亚洲欧洲日韩在线| 免费成人结看片| 成人av高清在线| 日韩欧美一区二区不卡| 国产精品灌醉下药二区| 亚洲国产aⅴ天堂久久| 国产精品白丝jk黑袜喷水| 一本大道久久a久久精品综合| 欧美人狂配大交3d怪物一区| 久久精品夜色噜噜亚洲a∨| 一区二区三区四区中文字幕| 精品一区二区三区在线视频| 91蜜桃婷婷狠狠久久综合9色| 日韩免费电影一区|