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

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

?? strikesys.cpp

?? DragonRaja Client source version 1.4+ this source allow players join in (Hades Warfield or Monsters
?? CPP
字號:
// StrikeSys.cpp: implementation of the CStrikeSys class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "StrikeSys.h"

#include <math.h>
#include "Char.h"
#include "Map.h"
#include "Effect.h"
#include "Hong_Sub.h"
using namespace battle;

//////////////////////////////////////////////////////////////////////
// Global Member
//////////////////////////////////////////////////////////////////////

static int s_aAngle16[16] = 
{
	2, 4, 6, 8, 10, 12, 14, 0, 3, 5, 7, 9, 11, 13, 15, 1
};

static int s_aOffset[8][5] = 
{
	{0,  8, 15, 1, 7},
	{1,  9,  8, 2, 0},
	{2, 10,  9, 3, 1},
	{3, 11, 10, 4, 2},
	{4, 12, 11, 5, 3},
	{5, 13, 12, 6, 4},
	{6, 14, 13, 7, 5},
	{7, 15, 14, 0, 6}
};

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CStrikeSys::CStrikeSys()
{
	
}

CStrikeSys::~CStrikeSys()
{
	
}

///////////////////////////////////////////////////////////////////////////////
// Public Method
///////////////////////////////////////////////////////////////////////////////

int CStrikeSys::Action(LPCHARACTER pCaster)
{	//< CSD-030723
	const int nSprNo = pCaster->sprno;
	
	int t = ::GetCharAccessory(pCaster); 
	// LTS HORSERIDER // Flag	// 芒狼 葷瀝芭府肺 技潑
	if ((t - 121) >= 0 && (t - 121) < 6)	
	{
		t = 75;
	}
	
	int nResult = ACTION_NONE;

	if (AttackRangeTable[nSprNo][t][5])
	{	
		nResult = (Random(2)) ? AttackRangeTable[nSprNo][t][5]:
		AttackRangeTable[nSprNo][t][4];
	}
	else	
	{		
		nResult = AttackRangeTable[nSprNo][t][4];
	}
	
	return nResult;
}	//> CSD-030723

void CStrikeSys::Effect(MAGICLIST* pEffect)
{
	
}

void CStrikeSys::Effect(LPCHARACTER pCaster, LPCHARACTER pTarget)
{
	switch (pCaster->nCurrentAction)
	{
    case ACTION_ATTACK_BOW: Shoot(pCaster, pTarget); break;
    case ACTION_THROW:      Throw(pCaster, pTarget); break;
	}
}

void CStrikeSys::Effect(LPCHARACTER pCaster, LPCHARACTER pTarget, int nSrcX, int nSrcY, int nDstX, int nDstY)
{
	const double dUnit = 0.392699; // PI甫 8殿盒
	EFFECT_INFO infEffect;
	int nDir = 0, nOffX = 0, nOffY = 0;
	double dAngle = 0.0;
	
	for (int i = 0; i < 5; i++)
	{
		nDir = s_aOffset[pCaster->direction][i];
		nOffX = 100;
		nOffY = 100;
		dAngle = dUnit*s_aAngle16[nDir];
		Coordinates(dAngle, nOffX, nOffY);
		//
		memset(&infEffect, 0, sizeof(EFFECT_INFO));
		infEffect.pCaster = pCaster;
		infEffect.pTarget = pTarget;
		infEffect.nType = 29;
		infEffect.nEffect = 29;
		infEffect.nSub = 0;
		infEffect.nDir = nDir;
		infEffect.nSrcX = nSrcX;
		infEffect.nSrcY = nSrcY;
		infEffect.nDstX = nSrcX + nOffX;
		infEffect.nDstY = nSrcY + nOffY;
		AddEffect(&infEffect);
	}
}

void CStrikeSys::EffectThrow(MAGICLIST* pThrow, USEEFFECTLIST* pEffect)
{	//< CSD-031014
	LPCHARACTER pCaster = pThrow->lpChar_Own;
	LPCHARACTER pTarget = pThrow->lpChar_Target;
	pEffect = pThrow->EffHead;
	const int nThrow = pThrow->magicNum;
	const int nSrcX = 0;
	const int nSrcY = 0;
	const int nDstX = int(((pEffect->x + pEffect->oldincx)/32.)*32.);
	const int nDstY = int(((pEffect->y + pEffect->oldincy)/32.)*32. + 
		pThrow->spr_Height - pEffect->height);
	
	switch (nThrow)
	{
    case THROW_ARROW:
		{	// 拳混
			::InsertMagic(pCaster, pTarget, 204, 9, nSrcX, nSrcY, nDstX, nDstY);
			break;
		}
    case THROW_KNIFE:
		{	// 厚檔
			::InsertMagic(pCaster, pTarget, 210, 9, nSrcX, nSrcY, nDstX, nDstY);
			break;
		}
	case THROW_FIRE_ARROW:
		{
			InsertMagic(pCaster, pTarget, 153, 9, 0, 0, pTarget->x, pTarget->y);
			break;
		}
	case THROW_ICE_KNIFE:
		{
			InsertMagic(pCaster, pTarget, 170, 9, 0, 0, pTarget->x, pTarget->y);
			break;
		}
	case THROW_SNOW_BALL:
		{
			InsertMagic(pCaster, pTarget, 206, 9, 0, 0, pTarget->x, pTarget->y);
			break;    
		}
	case THROW_WATER_BALL:
		{
			InsertMagic(pCaster, pTarget, 662, 9, 0, 0, pTarget->x, pTarget->y);
			break;
		}
	case THROW_BIG_GULP:
		{
			InsertMagic(pCaster, pTarget, 664, 9, 0, 0, pTarget->x, pTarget->y);
			break;
		}
	}
}	//> CSD-031014

void CStrikeSys::EffectHit(LPCHARACTER pCaster, LPCHARACTER pTarget)
{ // 鷗拜瓤苞 楷免
	const int nSrcX = 0;
	const int nSrcY = 0;
	const int nDstX = pTarget->x;
	const int nDstY = pTarget->y;
	
	switch (pCaster->sprno)
	{ 
    case 17: // 慣廢喇 : 倔瀾瓤苞
		{
			::InsertMagic(pTarget, pTarget, 170, 0, nSrcX, nSrcY, nDstX, nDstY);
			break;
		}
    case 83: // 軌頗撈絹 : 冠零瓤苞
		{
			::InsertMagic(pTarget, pTarget, 400, 0, nSrcX, nSrcY, nDstX, nDstY);
			break;
		}
    case 87: // 撈橇府飄 : 拳堪瓤苞
		{
			::InsertMagic(pTarget, pTarget, 457, 0, nSrcX, nSrcY, nDstX, nDstY);
			break;
		}
	}
}

///////////////////////////////////////////////////////////////////////////////
// Protected Method
///////////////////////////////////////////////////////////////////////////////

void CStrikeSys::Shoot(LPCHARACTER pCaster, LPCHARACTER pTarget)
{	//< CSD-031014
	bool bPoint = false;
	
	if (pCaster->nAttackedType == SPRITETYPE_ITEM)
	{
		pTarget = pCaster;
		bPoint = true;
	}
	
	const int nHeight = pTarget->AnimationTable[pTarget->nCurrentAction].height[pTarget->nCurrentAction];
	
	if (nHeight > 0 && sqrt(pow(pCaster->x - pTarget->x, 2) + pow(pCaster->y - pTarget->y, 2)) < TILE_SIZE*3)
	{
		pCaster->shoot_PointX = 0;
		pCaster->shoot_PointY = 0;
		return;
	}
	// 臭撈藹闌 啊柳 某腐磐甫 傍拜
	int nX = pTarget->x, nY = pTarget->y;
	
	if (nHeight > 0)
	{
		nX = pTarget->x;
		nY = pTarget->y - pTarget->AnimationTable[pTarget->nCurrentAction].height[pTarget->nCurrentAction];
	}
	
	if (bPoint)
	{
		nX = pCaster->shoot_PointX;
		nY = pCaster->shoot_PointY;
	}
	
	switch (pCaster->bow_Type)
	{
	case 0:
		{
			switch (pCaster->accessory[2])
			{
			case 162:
			case 172:
				{
					::InsertMagic(pCaster, pTarget, THROW_FIRE_ARROW, 0, 0, 0, nX, nY);
					break;
				}
			default:
				{
					::InsertMagic(pCaster, pTarget, THROW_ARROW, 0, 0, 0, nX, nY);
					break;
				}
			}

			break;
		}
	case 1:
		{
			if ((pCaster != Hero) || (pCaster==Hero && (SCharacterData.nCharacterMP >= g_lpMT[FIRE_ARROW].exhaust_MP)))
			{
				::InsertMagic(pCaster, pTarget, FIRE_ARROW, 0, 0, 0, nX, nY);
				
				if (pCaster == Hero)
				{	//< CSD-TW-030606
					SCharacterData.nCharacterMP -= g_lpMT[FIRE_ARROW].exhaust_MP;
					Hero->mp -= g_lpMT[FIRE_ARROW].exhaust_MP;
					g_mgrBattle.SendMagicExecute(FIRE_ARROW, pTarget, nX, nY);
				}	//> CSD-TW-030606
			}
			else
			{
				pCaster->bow_Type = 0;
				::InsertMagic(pCaster, pTarget, THROW_ARROW, 0, 0, 0, nX, nY);
			}
			
			break;
		}
	case 2:
		{
			if ((pCaster != Hero) || (pCaster==Hero && (SCharacterData.nCharacterMP >= g_lpMT[ICE_ARROW].exhaust_MP)))
			{
				::InsertMagic(pCaster, pTarget, ICE_ARROW, 0, 0, 0, nX, nY);
				
				if (pCaster == Hero)
				{	//< CSD-TW-030606
					SCharacterData.nCharacterMP -= g_lpMT[ICE_ARROW].exhaust_MP;
					Hero->mp -= g_lpMT[ICE_ARROW].exhaust_MP;
					g_mgrBattle.SendMagicExecute(ICE_ARROW, pTarget, nX, nY);
				}	//> CSD-TW-030606
			}
			else
			{
				pCaster->bow_Type = 0;
				::InsertMagic(pCaster, pTarget, THROW_ARROW, 0, 0, 0, nX, nY);
			}
			
			break;
		}
	}
}	//> CSD-031014

void CStrikeSys::Throw(LPCHARACTER pCaster, LPCHARACTER pTarget)
{	//< CSD-031014
	bool bPoint = false;
	
	if (pCaster->nAttackedType == SPRITETYPE_ITEM)
	{
		pTarget = pCaster;
		bPoint = true;
	}
	
	const int nHeight = pTarget->AnimationTable[pTarget->nCurrentAction].height[pTarget->nCurrentAction];
	
	if (nHeight > 0 && sqrt(pow(pCaster->x - pTarget->x, 2) + pow(pCaster->y - pTarget->y, 2)) < TILE_SIZE*3)
	{
		pCaster->shoot_PointX = 0;
		pCaster->shoot_PointY = 0;
		return;
	}
	// 臭撈藹闌 啊柳 某腐磐甫 傍拜
	int nX = pTarget->x, nY = pTarget->y;
	
	if (nHeight > 0)
	{
		nX = pTarget->x;
		nY = pTarget->y - pTarget->AnimationTable[pTarget->nCurrentAction].height[pTarget->nCurrentAction];
	}
	
	if (bPoint)
	{
		nX = pCaster->shoot_PointX;
		nY = pCaster->shoot_PointY;
	}

	int nEffect = THROW_KNIFE;
	// 撈亥飄甫 困茄 薦瀝
	switch (pCaster->accessory[2])
	{
	case 120: nEffect = THROW_SNOW_BALL; break;
	case 127: nEffect = THROW_WATER_BALL; break;
	case 128: nEffect = THROW_BIG_GULP; break;
	case 167:
	case 177: nEffect = THROW_ICE_KNIFE; break;
	}

	::InsertMagic(pCaster, pTarget, nEffect, 0, 0, 0, nX, nY);
}	//> CSD-031014

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美女mm1313爽爽久久久蜜臀| 亚洲色大成网站www久久九九| 在线欧美日韩国产| 99国产精品久久| 99精品久久免费看蜜臀剧情介绍| 国产高清精品在线| 不卡大黄网站免费看| 成人综合在线观看| 91丝袜美腿高跟国产极品老师| 成人av综合在线| 色婷婷av一区| 欧美色国产精品| 欧美三级三级三级| 日韩午夜激情视频| 日韩精品中文字幕一区| 久久免费看少妇高潮| 中文字幕av资源一区| 一区二区三区免费在线观看| 亚洲一区在线电影| 欧美bbbbb| 国产电影一区二区三区| 一本色道久久综合亚洲精品按摩| 欧美在线啊v一区| 欧美日本在线播放| 精品乱人伦小说| 日韩一区中文字幕| 蜜桃久久精品一区二区| 丁香激情综合五月| 欧美日韩国产综合一区二区三区| 日韩欧美www| 日韩激情一区二区| 国产乱码精品一品二品| 一区二区中文视频| 中文天堂在线一区| 亚洲国产成人精品视频| 青草国产精品久久久久久| 国产成人精品亚洲日本在线桃色| 免费看精品久久片| 97精品久久久午夜一区二区三区| 制服.丝袜.亚洲.中文.综合| 欧美国产精品v| 日韩福利电影在线观看| 成人午夜激情影院| 日韩一本二本av| 一区二区三区自拍| 国产伦精品一区二区三区视频青涩 | 久久精品一二三| 亚洲欧美日韩国产成人精品影院| 另类调教123区| 在线看不卡av| 中文字幕一区在线| 韩国成人精品a∨在线观看| 欧美亚州韩日在线看免费版国语版| 久久久不卡网国产精品二区| 三级在线观看一区二区| 一本一道久久a久久精品 | 日韩一区二区三区av| 亚洲乱码国产乱码精品精可以看| 捆绑调教一区二区三区| 欧美午夜精品久久久久久超碰| 欧美国产视频在线| 国产精品99久久久久久久女警| 欧美美女一区二区在线观看| 一区二区三区蜜桃| 色女孩综合影院| 国产精品二三区| 成年人午夜久久久| 国产精品国产三级国产有无不卡 | 国产亚洲成年网址在线观看| 日本伊人色综合网| 欧美午夜电影一区| 洋洋av久久久久久久一区| av网站免费线看精品| 国产亚洲精品久| 国产精品一色哟哟哟| 久久婷婷综合激情| 国产精品一区二区黑丝| 久久天天做天天爱综合色| 国产美女视频一区| 国产亲近乱来精品视频| 成人网男人的天堂| 亚洲欧美韩国综合色| 色嗨嗨av一区二区三区| 亚洲国产精品久久不卡毛片 | 性久久久久久久久久久久| 欧美亚洲国产一区在线观看网站| 亚洲欧美日韩国产综合| 在线免费精品视频| 日韩国产在线观看一区| 日韩午夜激情电影| 成人短视频下载| 亚洲女人小视频在线观看| 欧美性大战久久久久久久| 五月婷婷久久丁香| 久久亚洲一区二区三区四区| 成人午夜激情在线| 午夜视频在线观看一区| 日韩欧美一级片| 成人app下载| 亚洲自拍欧美精品| 日韩亚洲欧美一区二区三区| 国产精品69毛片高清亚洲| 日韩伦理av电影| 7777精品伊人久久久大香线蕉的 | 色综合久久久久久久久久久| 午夜精品一区二区三区电影天堂| 日韩三级视频在线看| 大胆欧美人体老妇| 一级中文字幕一区二区| 精品成a人在线观看| 成人99免费视频| 久久精品国内一区二区三区| 国产精品久久三| 日韩欧美www| 欧美片在线播放| 韩国理伦片一区二区三区在线播放| 亚洲少妇最新在线视频| 欧美www视频| 欧美在线你懂得| 国产精品91一区二区| 亚洲综合自拍偷拍| 国产欧美日产一区| 欧美日韩综合不卡| 成人黄页毛片网站| 久久精品国产久精国产| 亚洲国产视频直播| 国产精品日韩精品欧美在线| 制服丝袜成人动漫| 在线观看免费成人| k8久久久一区二区三区| 极品美女销魂一区二区三区免费| 一区二区三区**美女毛片| 久久久久99精品一区| 91麻豆精品国产91久久久使用方法| 97精品久久久久中文字幕| 国产精品一区二区久久精品爱涩 | 久久99精品久久久久久动态图| 亚洲欧美色一区| 国产精品五月天| 久久久国产精品午夜一区ai换脸| 欧美一区二区三区视频免费| 在线日韩一区二区| 色久优优欧美色久优优| 99久久婷婷国产综合精品电影 | 粉嫩欧美一区二区三区高清影视| 人人爽香蕉精品| 日韩中文字幕不卡| 亚洲国产日韩一级| 婷婷久久综合九色综合伊人色| 一区二区久久久| 亚洲国产综合在线| 亚洲永久免费视频| 亚洲国产毛片aaaaa无费看| 亚洲视频一区二区免费在线观看| 亚洲日本电影在线| 亚洲精品视频免费观看| 一区二区三区欧美日| 亚洲国产视频一区| 日韩电影在线免费| 裸体在线国模精品偷拍| 久久99热狠狠色一区二区| 激情图片小说一区| 国产精品一二三区| 成人性生交大片| 91网址在线看| 欧美日韩高清一区二区不卡| 欧美一级二级在线观看| 精品国产亚洲一区二区三区在线观看 | 欧美亚洲一区三区| 91麻豆精品国产91久久久使用方法| 日韩免费电影一区| 久久亚洲综合av| 亚洲老妇xxxxxx| 欧美aaaaaa午夜精品| 国产精品主播直播| 91免费国产在线| 在线播放/欧美激情| 久久综合999| 亚洲女同ⅹxx女同tv| 日韩激情一区二区| 成人免费视频网站在线观看| 欧美三级视频在线| 国产嫩草影院久久久久| 一区二区欧美在线观看| 国内成人免费视频| av高清久久久| 日韩一级片网站| 亚洲欧美综合另类在线卡通| 亚洲成年人影院| 成人免费看视频| 欧美一区二区三区成人| 国产精品久久久久永久免费观看| 亚洲成人精品一区| 国产精品影视天天线| 欧美日韩一区二区电影| 国产精品女上位| 日本网站在线观看一区二区三区 | 午夜精品久久久久久久99水蜜桃 | 亚洲一区视频在线| 风间由美中文字幕在线看视频国产欧美 |