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

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

?? questfunction.cpp

?? 完整龍族的無錯反外掛登陸器,b編譯后直接直接就可以放在客戶端下運行
?? CPP
字號:
#include "stdafx.h"
#include "QuestFunction.h"
#include "menu.h"
#include "CMessage.h"
#include "map.h"

CQuestMgr	g_cQuest;

//extern char* GetMapNameByMapfile( char *map_file );
extern void AddCurrentStatusMessage( const WORD wColor, char *msg, ... );

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//CScriptTimer

bool CScriptTimer::StartTimer()
{
	//矯埃 例瀝 盲農竊薦 持闌巴
	//矯埃撈 巢酒樂綽啊 竅綽芭?

	if( m_bStart == true) return false;

	m_bStart = true;
	ShowTimerMenu();
	return m_bStart;
}

void CScriptTimer::EndTimer()
{
	m_bStart = false; 
	HideTimerMenu();
	ClearTimer();
}

void CScriptTimer::ClearTimer()
{
	m_dwTimerTime = 0;
	m_dwSynchTime = 0;
	m_dwSpendTime = 0;
	m_dwOld		  = 0;
	m_dwSynch     = 0;
	m_bStart	  = false;
	m_bShow		  = false;
}

bool CScriptTimer::IsRunning()
{
	if( m_bStart== true && m_dwTimerTime > 0 && m_dwSpendTime > 0 )
		return true;
	return false;
}

void CScriptTimer::SetTimerTime( DWORD dwTime )
{
	//_ASSERTE( dwTime < MAX_TIMER_TIME );
	//_ASSERTE( dwTime > 0 );
	if( dwTime > MAX_TIMER_TIME || dwTime < 0 )
		m_dwTimerTime = MAX_TIMER_TIME;
	else
		m_dwTimerTime = dwTime;
}

void CScriptTimer::SetSynchroneTime( DWORD dwSynchTime )
{
	//_ASSERTE( dwSynchTime < MAX_TIMER_TIME );
	//_ASSERTE( dwSynchTime > MIN_SYNCH_TIME );

	if( dwSynchTime < MIN_SYNCH_TIME || dwSynchTime > MAX_TIMER_TIME )
		m_dwSynchTime = MIN_SYNCH_TIME;
	else
		m_dwSynchTime = dwSynchTime;
}

void CScriptTimer::RunTimer( )	//撈 竊薦甫 very long撈聰癟 .75檬付促 角青等促綽吧 蠟狼竅檔廢
{
	if( m_dwOld == 0 ) 
		m_dwOld = ::timeGetTime();

	DWORD dwCurrent = ::timeGetTime();
	m_dwSpendTime = dwCurrent - m_dwOld;		//倔付唱 矯埃撈 瘤抄綽啊?

	if( m_dwSpendTime > m_dwTimerTime )		//矯埃撈 促 饞唱擱 饞郴扼綽 疙飛闌 焊辰促. 
	{		
		//努扼撈 鷗撈贛啊 場唱擱 輯滾肺 葷角闌 舅赴促.
		//輯滾啊 場郴扼綽 富闌 秦煉具 釀扼撈綽 波柳促. 
		if( m_dwOld == 0 ) SendSCRIPT_TIEMER( m_dwSpendTime, CMD_SCRIPT_TIMER_END_SUC);	
		m_dwOld = 0;
		m_dwSynch = 0;
		EndTimer();
		return;
	}
	
	//汲瀝茄 矯埃付促 (*sync)竊薦 角青
	if( (m_dwSpendTime - m_dwSynch) > m_dwSynchTime )
	{
		m_dwSynch = m_dwSpendTime;
		SendSCRIPT_TIEMER( m_dwSpendTime, CMD_SCRIPT_TIMER_SYNC);
	}
	
	//親惑 (*func)竊薦 角青
	//(*m_func)();
	//ShowTimer();
}

void CScriptTimer::RecvSCRIPT_TIMER_SYNC( t_script_timer *tp )
{
	//輯滾 矯埃撈爾 努扼撈 矯埃撈爾 厚背秦輯 瞞撈啊 倔付 撈惑 唱擱.  
	if( !tp ) return;
	if( 0 >= tp->dwTime || m_dwTimerTime < tp->dwTime ) return;	// 030731 kyo

	if( !ConfirmSyncTimer( tp->dwTime ) )
	{		 
		m_dwSpendTime = tp->dwTime;	// 030821 kyo
	}
}

bool CScriptTimer::ConfirmSyncTimer( DWORD dwRecvTime )
{
	//dwRecvTime撈爾 泅犁矯埃撈爾 +-X檬 撈惑 瞞撈唱擱 悼扁拳 角菩促..
	if( 10000 > abs(m_dwSpendTime-dwRecvTime) ) // 030821 kyo
	{
		return false;
	}
	return true;
}

void CScriptTimer::SendSCRIPT_TIEMER( DWORD dwSpendTime , int iType)
{
	t_packet packet;
	packet.h.header.type	= iType;
	packet.h.header.size	= sizeof( t_script_timer);
	packet.u.script_timer.dwTime = dwSpendTime;	
	QueuePacket( &packet, 1 );
}

//const char* CScriptTimer::ShowTimer()
void	CScriptTimer::ShowTimer( char* szMsg)
{
	char szCT[10];
	char szET[10];

	FormatTimer( m_dwTimerTime, szET );
	FormatTimer( m_dwSpendTime, szCT );
	sprintf( szMsg, "%s    /   %s", szCT, szET );
}

void  CScriptTimer::FormatTimer( const DWORD& dwTime, char* szTime )
{
	int iSec = dwTime/1000;
	int iMin = iSec/60;
	int iHour = iMin/60;
	if( iHour >= 100 ) iHour = 99;
	iMin = iMin % 60;
	iSec = iSec % 60;
	sprintf( szTime, "%02d:%02d:%02d", iHour, iMin, iSec);
}

void CScriptTimer::ShowTimerMenu()
{
	m_bShow = true;
	//SMenu[NM_SCRIPT_TIMMER].bActive =true;
}

void CScriptTimer::HideTimerMenu()
{
	m_bShow = false;
	//SMenu[NM_SCRIPT_TIMMER].bActive =false;
}


//CScriptTimer
////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//CScriptCounter
void CScriptCounter::SetType( const int type )
{
	m_iType = type;
	if( m_iType == SCRIPT_COUNTER_TYPE__ITEMCOUNT)
		strcpy( m_szType, "Item Search" );
	else if( m_iType == SCRIPT_COUNTER_TYPE__NPCKILL)
		strcpy( m_szType, "Monster Kill" );
}

bool CScriptCounter::StartCounter()
{
	if( m_bStart == true) return false;

	m_bStart = true;
	ShowCountMenu();
	return m_bStart;
}

void CScriptCounter::EndCounter()
{
	m_bStart = false; 
	HideCountMenu();
	ClearCounter();
}

//char* CScriptCounter::ShowCounter()
void CScriptCounter::ShowCounter( char* szMsg)
{
	//肯豐牢瘤 犬牢秦輯 謊妨霖促.
	if( GetCounter() >= GetMax() )
	{
		char szEnd[20];
		strcpy( szEnd, "Complete" );
		sprintf( szMsg, "      %s", szEnd );
		// 020308 kyo 努扼撈攫飄 墨款磐(酒撈袍墨款磐) 啊 場車促絆 舅赴促.
		if( m_iFlag == 0 )
			SendSyncCounter( GetCounter() );
	}	
	else
	{
//		sprintf( szMsg, "%s    /   %s", szCT, szET );
		sprintf( szMsg, "     %03d    /     %03d", m_iCounter, m_iMax);
	}
}

void CScriptCounter::SendSyncCounter( int iCounterNum)
{//輯滾俊霸 努扼撈攫飄啊 啊柳 墨款磐 箭磊甫 焊辰促.

	m_iFlag=1;	//敲飯弊甫 煉輯 茄鍋父 倒赴促.
	t_packet packet;
	packet.h.header.type	= CMD_SCRIPT_COUNTER_SYNC;
	packet.h.header.size	= sizeof( t_script_counter);
	memset( (void**)&packet.u.script_counter, 0x00, sizeof( t_script_counter));
	packet.u.script_counter.iCounter = iCounterNum;
	
	QueuePacket( &packet, 1 );
}

void CScriptCounter::ShowCountMenu()
{
	//SMenu[NM_SCRIPT_COUNTER].bActive =true;
	m_bShow = true;
}
void CScriptCounter::HideCountMenu()
{
	//SMenu[NM_SCRIPT_COUNTER].bActive =false;
	m_bShow = false;
}

//CScriptCounter
////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//CQuestMgr

void CQuestMgr::InitScriptTimer( const DWORD& dwTimerTime, const DWORD& dwSyncTime)
{
	if( m_cTimer != NULL ) return;
	m_cTimer = new CScriptTimer;

	m_cTimer->SetTimerTime( dwTimerTime);
	m_cTimer->SetSynchroneTime( dwSyncTime);
	m_cTimer->StartTimer();
}

void CQuestMgr::RunScriptTimer( char *szMsg)
{
	if( szMsg == NULL ) return;

	g_cQuest.m_cTimer->RunTimer();
	if( !g_cQuest.m_cTimer->IsStart() )
	{//墨款磐啊 輛豐第膠擱 墨款磐檔 鞍撈 輛豐矯挪促.
		DeleteScriptTimer();
		DeleteScriptCounter();
		szMsg[0]='\0';
	}
	else
		g_cQuest.m_cTimer->ShowTimer(szMsg);
}

void CQuestMgr::DeleteScriptTimer( )
{
	if( g_cQuest.m_cTimer == NULL) return;
	
	g_cQuest.m_cTimer->EndTimer();
	delete g_cQuest.m_cTimer;
	g_cQuest.m_cTimer = NULL;
}

//counter
void CQuestMgr::InitScriptCounter( t_script_counter *tp)//const int& iNum, const int& iType, const int& iMuch)
{
	if( !tp ) return;
	//if( m_cCounter != NULL ) return;
	if( m_cCounter != NULL ) return;
	m_cCounter = new CScriptCounter;
	
	m_cCounter->ClearCounter();
	m_cCounter->SetNum( tp->iNum);
	m_cCounter->SetType( tp->iType);
	m_cCounter->SetMax( tp->iMuch);

	m_cCounter->StartCounter();
}

void CQuestMgr::RunScriptCounter( char* szMsg)
{
	//_ASSERTE( szMsg != NULL );
	if( szMsg == NULL ) return;

	//酒撈袍 墨款磐 老錠綽 酒撈袍墨款磐甫 拌加秦輯 骯薦 犬牢茄促. npc鷗撈贛綽 輯滾俊輯 坷綽 藹欄肺 犬牢茄促.
	if( m_cCounter->GetType() == SCRIPT_COUNTER_TYPE__ITEMCOUNT ) CheckItemCount();

	m_cCounter->ShowCounter( szMsg);
	//strcpy( szMsg, m_cCounter->ShowCounter() );
}

void CQuestMgr::SyncScriptCounter( t_script_counter *tp )
{//npc磷撈扁 墨款磐俊輯父 靜牢促. 磷牢 箭磊狼 悼扁拳
	//_ASSERTE( m_cCounter != NULL );
	//_ASSERTE( tp != NULL );

	if( !tp || !m_cCounter) return;
	
	if( tp->iType == SCRIPT_COUNTER_TYPE__ITEMCOUNT ||
		m_cCounter->GetType() == SCRIPT_COUNTER_TYPE__ITEMCOUNT ) return;
	
	m_cCounter->SetCounter(tp->iCounter);
}

void CQuestMgr::CheckItemCount()
{
//ItemAttr	InvItemAttr[3][3][8];

	if( m_cCounter==NULL) return;
	if( m_cCounter->GetType() != SCRIPT_COUNTER_TYPE__ITEMCOUNT ) return;

	int iCounter = 0;
	for( int a=0; a<3; a++)
		for( int b=0; b<3; b++)
			for( int c=0; c<8; c++)
				if( InvItemAttr[a][b][c].item_no == m_cCounter->GetNum() )
					iCounter++;
					//m_cCounter->AddCounter();

	if( m_cCounter->GetCounter() > iCounter )	// 030110 kyo	//墨款磐啊 郴妨艾膠擱..
	{
		m_cCounter->SendSyncCounter( iCounter );				//輯滾俊霸 
		m_cCounter->SetFlag( 0 );
	}

	m_cCounter->SetCounter( iCounter);
}

void CQuestMgr::DeleteScriptCounter()
{
	if( m_cCounter == NULL ) return;

	m_cCounter->EndCounter();
	delete m_cCounter;
	m_cCounter = NULL;
}

void CQuestMgr::CheckSpellWord( t_script_spellmapmove *spell)
{// 021128 kyo
	if( spell == NULL ) 
	{
		spell->isSuc = false;
		SendSpellWord( spell );
		return;
	}
	if( m_szSpell.size() <= 0 )
	{
		spell->isSuc = false;
		SendSpellWord( spell );
		return;
	}
	if( strcmp( m_szSpell.c_str(), spell->szSpell ) ==0 )
		spell->isSuc = true;
	else
		spell->isSuc = false;

	SendSpellWord( spell );
}

void CQuestMgr::SendSpellWord(const t_script_spellmapmove *spell)
{// 021128 kyo
	t_packet packet;
	packet.h.header.type	= CMD_SCRIPT_SPELL_MAPMOVE;
	packet.h.header.size	= sizeof( t_script_spellmapmove);
	memset( (void**)&packet.u.spell_mapmove, 0x00, sizeof( t_script_spellmapmove));
	memcpy( (void**)&packet.u.spell_mapmove, spell, sizeof( t_script_spellmapmove));
	
	QueuePacket( &packet, 1 );
}

void CQuestMgr::RecvSpellWord_Suc( char* szMap )
{// 021128 kyo
	//絹叼肺 撈悼欽聰促.
	if( szMap == NULL ) return;
		
	AddCurrentStatusMessage( FONT_COLOR_SOLID_YELLOW, g_cMsg.GetTextMessage( 1, 0), ::GetMapNameByMapfile( szMap ) );
	//AddCurrentStatusMessage( FONT_COLOR_SOLID_YELLOW, g_cMsg.GetTextMessage( 1, 0), szMsg );
}

void CQuestMgr::RecvSpellWord_Fail()
{// 021128 kyo
	AddCurrentStatusMessage( FONT_COLOR_SOLID_YELLOW, g_cMsg.GetTextMessage( 1, 1) );
	//林鞏角菩
}

void CQuestMgr::EmptySpellWord()
{// 021206 kyo 甘撈悼, 肺弊牢矯 林鞏 昏力
	m_szSpell.erase( m_szSpell.begin(), m_szSpell.end());//clear();
}

//CQuestMgr
////////////////////////////////////////////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
奇米四色…亚洲| 亚洲色大成网站www久久九九| 国产成人免费在线| 日韩av中文在线观看| 五月婷婷欧美视频| 五月激情综合网| 国产69精品一区二区亚洲孕妇| 国产91丝袜在线播放0| 欧美在线色视频| 91猫先生在线| 欧美三级三级三级爽爽爽| 91麻豆精品国产91久久久久 | 99久久久免费精品国产一区二区| 久久国产人妖系列| 精品一区二区在线观看| 国产精品自拍网站| 91色在线porny| 欧美国产成人在线| 一区二区三区欧美激情| 日韩二区三区四区| 色av成人天堂桃色av| 91精品国产一区二区三区蜜臀| 精品久久国产老人久久综合| 国产精品久久综合| 同产精品九九九| 欧美综合久久久| 亚洲美女免费视频| 热久久国产精品| 欧美日韩另类国产亚洲欧美一级| 精品国产乱码久久久久久图片 | 欧美日韩精品系列| 亚洲欧美在线观看| 日韩 欧美一区二区三区| 91国偷自产一区二区三区观看 | 精品1区2区3区| 一区二区三区日韩欧美| 成人av在线观| 欧美精品亚洲二区| 国产精品美女久久久久久久网站| 亚洲高清视频在线| 成人性生交大合| 日韩欧美电影在线| 亚洲福利一区二区| 欧美精品三级在线观看| 日本欧美一区二区三区乱码 | 免播放器亚洲一区| 欧美电影免费观看高清完整版在线观看 | 欧美日韩精品欧美日韩精品一 | 91麻豆国产福利精品| 亚洲精品日韩综合观看成人91| 日本最新不卡在线| 欧美大片拔萝卜| 成人免费视频app| 亚洲人成网站在线| 欧美夫妻性生活| 精品一区二区免费看| 国产精品美女www爽爽爽| 亚洲精品中文字幕乱码三区| 欧美日韩精品欧美日韩精品一 | 欧美影院一区二区| 日韩免费看的电影| 国产精品一区二区在线观看网站| 欧美国产一区二区在线观看| 在线观看av不卡| 日韩 欧美一区二区三区| 久久久久久黄色| 黑人精品欧美一区二区蜜桃| 正在播放亚洲一区| 国产美女在线观看一区| 日韩欧美的一区| 99精品国产热久久91蜜凸| 成人免费毛片嘿嘿连载视频| 亚洲天堂av一区| 欧美va亚洲va| 国产精品系列在线观看| 亚洲欧美日韩在线| 精品乱人伦一区二区三区| 99精品在线免费| 久久精品国产精品青草| 中文字幕五月欧美| 精品国产91乱码一区二区三区 | 蜜臀av一级做a爰片久久| 91福利视频久久久久| 久久99精品国产.久久久久久| 亚洲欧洲性图库| 日韩视频免费观看高清在线视频| 午夜久久久影院| 中文字幕一区二区三区在线观看 | jlzzjlzz亚洲日本少妇| 中文字幕在线观看一区二区| 日韩免费看网站| 欧美色中文字幕| 91一区二区在线| 国产99久久久久| 激情欧美一区二区| 日韩在线一区二区三区| 日韩欧美成人激情| 欧美日韩精品免费观看视频| 97久久超碰国产精品电影| 国产精品影音先锋| 麻豆成人久久精品二区三区小说| 国产成人免费视频网站| 国产精品少妇自拍| 欧美一级在线免费| 欧美视频一区二区三区| 色综合天天在线| 日韩女优av电影在线观看| 欧美丝袜自拍制服另类| 97精品电影院| 国产99久久精品| 丁香婷婷综合五月| 国产寡妇亲子伦一区二区| 韩国av一区二区三区四区| 麻豆成人久久精品二区三区小说| 午夜欧美视频在线观看| 午夜精品爽啪视频| 一卡二卡三卡日韩欧美| 一区二区三区不卡在线观看| 最新久久zyz资源站| 中文字幕一区二区三区在线不卡 | 亚洲一区中文在线| 精品欧美乱码久久久久久| 日韩欧美综合在线| 2022国产精品视频| 91丨porny丨户外露出| 不卡视频免费播放| 91在线高清观看| 91成人网在线| 91精品在线麻豆| 日韩三级视频在线看| 亚洲精品一线二线三线无人区| 亚洲精品在线观看网站| 中文字幕国产精品一区二区| 亚洲日穴在线视频| 亚洲一区二区精品久久av| 五月天国产精品| 国产一区二区三区在线观看免费| 国产99久久久国产精品潘金网站| 99精品久久99久久久久| 欧美日韩在线三区| 欧美精品一区二区三区蜜桃视频| 国产精品污污网站在线观看| 亚洲精品国久久99热| 日韩精品乱码免费| 国产乱码精品一区二区三区五月婷| 成人国产在线观看| 欧美日韩亚洲综合| 亚洲婷婷在线视频| 日韩av成人高清| 日本伊人色综合网| 天天色天天爱天天射综合| 日韩中文字幕一区二区三区| 精品一区二区免费看| 99在线精品观看| 欧美一区二区视频免费观看| 国产亚洲美州欧州综合国| 欧美午夜电影在线播放| 欧美一级高清片| 国产精品久久久久永久免费观看| 亚洲一区二区三区爽爽爽爽爽| 久久97超碰国产精品超碰| 91啪在线观看| 久久亚洲欧美国产精品乐播| 一区二区三区四区av| 国产精品一区二区你懂的| 欧美吻胸吃奶大尺度电影| 国产日韩一级二级三级| 久久九九久精品国产免费直播| 亚洲美女屁股眼交3| 国产自产v一区二区三区c| 欧美网站大全在线观看| 国产欧美精品一区aⅴ影院 | 欧美国产日本韩| 欧美激情一区二区三区四区| 天堂成人国产精品一区| av午夜精品一区二区三区| 精品捆绑美女sm三区| 亚洲五码中文字幕| av综合在线播放| 久久精品人人爽人人爽| 日韩av一区二区在线影视| 99久久精品免费看国产| 国产丝袜在线精品| 日本欧美一区二区三区乱码| 欧美色电影在线| 亚洲精品中文在线影院| 成人黄色大片在线观看| 久久精品一区二区三区不卡| 久久99精品久久久久久国产越南 | 精品捆绑美女sm三区| 午夜激情一区二区三区| 91久久精品一区二区三| 亚洲欧美视频在线观看视频| 成人激情免费视频| 国产偷国产偷精品高清尤物| 国产一区二区中文字幕| 久久综合九色欧美综合狠狠| 免费久久99精品国产| 7777女厕盗摄久久久| 日韩二区三区四区|