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

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

?? npc_makepair.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 2 頁
字號:
#include "version.h"
#include <string.h>
#include "char.h"
#include "object.h"
#include "char_base.h"
#include "npcutil.h"
#include "npc_transerman.h"
#include "lssproto_serv.h"
#include "saacproto_cli.h"
#include "readmap.h"
#include "battle.h"
#include "log.h"
#include "enemy.h"
#include "handletime.h"
#include "npc_makepair.h"
#include "npc_eventaction.h"

#ifdef _NPC_MAKEPAIR
#define MAXPAIRNUMS 30
PairMenu PairList[2][MAXPAIRNUMS];

enum {
	WINDOW_START=10,
	WINDOW_USER,
	WINDOW_SELECT,	//心理測驗
	WINDOW_PAIR,	//配對找對象
	WINDOW_PAIROK,
	WINDOW_PAIRNO,
	WINDOW_WARP,	//跳躍
	WINDOW_END,		//結(jié)束
	WINDOW_TALKSTART=20,
	WINDOW_TALKSELECT,
	WINDOW_TALKPAIR,
	WINDOW_RETURN,
	WINDOW_TALKEND,
};
enum {
	NPC_WORK_CURRENTTIME = CHAR_NPCWORKINT1,
	NPC_WORK_PAIRTEAMS = CHAR_NPCWORKINT2,
/*
	NPC_WORK_ROUTEPOINT = CHAR_NPCWORKINT3,
	NPC_WORK_ROUNDTRIP = CHAR_NPCWORKINT4,
	NPC_WORK_MODE = CHAR_NPCWORKINT5,
	NPC_WORK_CURRENTROUTE = CHAR_NPCWORKINT6, 
	NPC_WORK_ROUTEMAX = CHAR_NPCWORKINT7,
	NPC_WORK_WAITTIME = CHAR_NPCWORKINT8,
	NPC_WORK_CURRENTTIME = CHAR_NPCWORKINT9,
	NPC_WORK_SEFLG = CHAR_NPCWORKINT10,
*/
};
#define MAKEPAIR_STANDBY 100*60
static void NPC_MakePair_selectWindow( int meindex, int toindex, int num,int select);
BOOL MakePairMan_GetMenuStr( int meindex, int toindex, char *npcarg, char *token);
void CheckPairUsers( int *male, int *female);
BOOL NPC_PairForage( int meindex, int toindex, char *arg, char *token);
BOOL NPC_PairRegister( int toindex);
void NPC_PairUserAndWarp( int meindex, int toindex, int forindex, char *arg);
int NPC_getPairCode( int toindex);
int NPC_getTitleMsg( int meindex, int toindex, char *arg, char *token, int title);
int NPC_getNextTitle( int meindex, int toindex, char *arg, int title, int select);


BOOL NPC_MakePairManInit( int meindex )
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	int i;
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("err NPC_MakePairMan: GetArgStrErr!!");
		return FALSE;
	}
   	CHAR_setInt( meindex, CHAR_WHICHTYPE, CHAR_MAKEPAIR);
	CHAR_setInt( meindex, CHAR_LOOPINTERVAL, MAKEPAIR_STANDBY);
	CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
	CHAR_setWorkInt( meindex, NPC_WORK_PAIRTEAMS, 0);
	
	for( i=0; i<MAXPAIRNUMS; i++)	{
		PairList[0][i].use = -1;
		PairList[0][i].forindex = -1;
		PairList[1][i].use = -1;
		PairList[1][i].forindex = -1;
	}
	return TRUE;
}

void NPC_MakePairManTalked( int meindex, int talkerindex, char *msg, int color )
{
	if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER )
    		return;
	if(NPC_Util_isFaceToFace( meindex ,talkerindex , 2) == FALSE) {
		if(NPC_Util_isFaceToChara( talkerindex, meindex, 1) == FALSE)
			return;
	}
#ifdef _ITEM_CHECKWARES
	if( CHAR_CheckInItemForWares( talkerindex, 0) == FALSE ){
		CHAR_talkToCli( talkerindex, meindex, "無法服務(wù)攜帶貨物的人!", CHAR_COLORYELLOW);
		return;
	}
#endif
	CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 0);
	CHAR_setWorkInt( talkerindex, CHAR_MYPAIRCODE, NPC_getPairCode( talkerindex));
	NPC_MakePair_selectWindow( meindex, talkerindex, WINDOW_START, 0);
}

static void NPC_MakePair_selectWindow( int meindex, int toindex, int num,int select)
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	char token[256];
	int buttontype = 0, windowtype = 0, windowno = 0;
	int fd = getfdFromCharaIndex( toindex);
	windowtype = WINDOW_MESSAGETYPE_MESSAGE;

	if( Action_PartyCheck( meindex, toindex) == FALSE)	{
		CHAR_talkToCli( toindex, meindex, "請一個一個來!", CHAR_COLORYELLOW);
		return;
	}

	memset( npcarg, 0, sizeof( npcarg));
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("err NPC_MakePairMan: GetArgStrErr!!");
		return;
	}

	memset( token, 0, sizeof( token));
	switch( num)	{
	case WINDOW_START:
		{
			char buf1[256];
			if( NPC_Util_GetStrFromStrWithDelim( npcarg, "FREE", buf1, sizeof( buf1) ) != NULL)	{
				if( NPC_ActionPassCheck( meindex, toindex, buf1) == FALSE ){
					CHAR_talkToCli( toindex, meindex, "條件不足!", CHAR_COLORYELLOW);
					return;
				}
			}

			if( MakePairMan_GetMenuStr( meindex, toindex, npcarg, token) == FALSE )	{
				print( "err MakePairMan GetMenu ERROR !!\n");
				return;
			}
			CHAR_setWorkInt( toindex, CHAR_WORKSHOPRELEVANT, 1);
			windowtype = WINDOW_MESSAGETYPE_SELECT;
			buttontype = WINDOW_BUTTONTYPE_CANCEL;
			windowno = WINDOW_TALKSTART;
		}
		break;
	case WINDOW_USER:
		{
			int male=0, female=0;
			CheckPairUsers( &male, &female);
			sprintf( token, "目前登錄急尋找對象的人數(shù)為:\n男生為 %d,女生為 %d。\n目前配對已有 %d對。",
				male, female, CHAR_getWorkInt( meindex, NPC_WORK_PAIRTEAMS));
			buttontype = WINDOW_BUTTONTYPE_OKCANCEL;
			windowno = WINDOW_RETURN;
		}
		break;
	case WINDOW_SELECT://心理測驗
		{
			int title = CHAR_getWorkInt( toindex, CHAR_WORKSHOPRELEVANT);
			int type;
			type = NPC_getTitleMsg( meindex, toindex, npcarg, token, title);
			if( type == 1 ){
				buttontype = WINDOW_BUTTONTYPE_YESNO;
				windowno = WINDOW_TALKSELECT;
			}else if( type == 2 ){
				buttontype = WINDOW_BUTTONTYPE_OK;
				windowno = WINDOW_TALKEND;
			}else{
				return;
			}
		}
		break;
	case WINDOW_PAIR:
		{
			if( CHAR_getWorkInt( toindex, CHAR_MYPAIRFLG) > 0){
				CHAR_setWorkInt( toindex, CHAR_MYPAIRINDEX, -1);
				sprintf( token, "取消前一次的邀請。");
			}else	{
				char buf1[256];
				if( NPC_Util_GetStrFromStrWithDelim( npcarg, "FREE", buf1, sizeof( buf1) ) != NULL)	{
					if( NPC_ActionPassCheck( meindex, toindex, buf1) == FALSE ){
						CHAR_talkToCli( toindex, meindex, "條件不足!", CHAR_COLORYELLOW);
						return;
					}
				}
				NPC_PairForage( meindex, toindex, npcarg, token);
			}
			buttontype = WINDOW_BUTTONTYPE_OK;
			windowno = WINDOW_TALKEND;
		}
		break;
	case WINDOW_PAIROK:	//同意
		if( CHAR_getWorkInt( toindex, CHAR_MYPAIRFLG) > 0){
			int forindex = CHAR_getWorkInt( toindex, CHAR_MYPAIRINDEX);
			NPC_PairUserAndWarp( meindex, toindex, forindex, npcarg);
		}
		return;
	case WINDOW_PAIRNO://不同意
		{
			int forindex = CHAR_getWorkInt( toindex, CHAR_MYPAIRINDEX);
			if( CHAR_CHECKINDEX( forindex) ){
				if( CHAR_getWorkInt( forindex, CHAR_MYPAIRFLG) > 0 ){
					CHAR_talkToCli( forindex, meindex, "對方拒絕邀請。", CHAR_COLORYELLOW);
					CHAR_setWorkInt( forindex, CHAR_MYPAIRINDEX, -1);
					CHAR_setWorkInt( forindex, CHAR_MYPAIRFLG, -1);
				}
			}
			CHAR_setWorkInt( toindex, CHAR_MYPAIRINDEX, -1);
			CHAR_setWorkInt( toindex, CHAR_MYPAIRFLG, -1);
			CHAR_talkToCli( toindex, meindex, "拒絕對方邀請。", CHAR_COLORYELLOW);
			return;
		}
		break;
	case WINDOW_WARP:
		break;
	case WINDOW_END:
		break;
	}
	lssproto_WN_send( fd, windowtype, buttontype, windowno,
		CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), token);
}

void NPC_MakePairManWindowTalked( int meindex, int talkerindex, int seqno, int select, char *data)
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];

	if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER )
    	return;
	memset( npcarg, 0, sizeof( npcarg));
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("err NPC_MakePairMan: GetArgStrErr!!");
		return;
	}
	switch( seqno)	{
	case WINDOW_TALKSTART:
		{
			int choose=atoi( data);
			if( select == WINDOW_BUTTONTYPE_CANCEL || select == WINDOW_BUTTONTYPE_NO)
				return;
			switch( choose){
			case 1://查人數(shù)
				NPC_MakePair_selectWindow( meindex, talkerindex, WINDOW_USER, 0);
				break;
			case 2://配對
				NPC_MakePair_selectWindow( meindex, talkerindex, WINDOW_PAIR, 0);
				break;
			case 3://心理測驗
				NPC_MakePair_selectWindow( meindex, talkerindex, WINDOW_SELECT, 0);
				break;
			}
		}

		break;
	case WINDOW_TALKSELECT:
		{
			int title = CHAR_getWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT);
			title = NPC_getNextTitle( meindex, talkerindex, npcarg, title, select);
			if( title < 0 ) return ;
			CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, title);
			NPC_MakePair_selectWindow( meindex, talkerindex, WINDOW_SELECT, select);
		}
		break;
	case WINDOW_TALKPAIR://配對邀請回覆
		if( select == WINDOW_BUTTONTYPE_CANCEL || select == WINDOW_BUTTONTYPE_NO){
			NPC_MakePair_selectWindow( meindex, talkerindex, WINDOW_PAIRNO, 0);
		}else	{
			NPC_MakePair_selectWindow( meindex, talkerindex, WINDOW_PAIROK, 0);
		}
		break;
	case WINDOW_RETURN:
		NPC_MakePair_selectWindow( meindex, talkerindex, WINDOW_START, 0);
		break;
	case WINDOW_TALKEND:
		break;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩高清在线不卡| 免费xxxx性欧美18vr| 欧美电影一区二区三区| 成人性视频网站| 奇米影视在线99精品| 一区二区三区中文字幕电影| 精品少妇一区二区三区视频免付费| 色综合久久中文综合久久牛| 国精产品一区一区三区mba桃花 | 中文字幕一区av| 日韩一区二区视频| 欧美在线一区二区| 成人不卡免费av| 国内精品视频一区二区三区八戒| 婷婷开心久久网| 亚洲黄色av一区| 国产精品伦一区二区三级视频| 日韩免费观看高清完整版| 欧美性极品少妇| 在线视频观看一区| 99国产精品99久久久久久| 国产成人午夜片在线观看高清观看| 亚洲大片精品永久免费| 亚洲精品免费电影| 中文字幕亚洲精品在线观看| 久久久久99精品一区| 日韩欧美123| 欧美一区二区三区免费观看视频| 欧洲av在线精品| 色先锋资源久久综合| 成人禁用看黄a在线| 国产99久久久精品| 处破女av一区二区| 粉嫩绯色av一区二区在线观看| 国产乱人伦偷精品视频不卡| 日韩国产精品久久久久久亚洲| 亚洲一区在线播放| 一区二区三区免费观看| 亚洲狼人国产精品| 艳妇臀荡乳欲伦亚洲一区| 亚洲综合色视频| 亚洲综合色区另类av| 亚洲午夜免费福利视频| 亚洲午夜精品网| 午夜久久久久久久久| 一本到不卡免费一区二区| 成人黄色免费短视频| 99免费精品视频| 成人99免费视频| 91丝袜美腿高跟国产极品老师| 91在线一区二区| 色婷婷综合久久久| 欧美视频你懂的| 欧美日韩精品欧美日韩精品一| 欧美日韩在线三级| 日韩一区二区电影在线| 亚洲精品在线免费播放| 国产欧美日韩在线| **欧美大码日韩| 亚洲成人av一区| 麻豆91在线观看| 国产成人精品午夜视频免费| 不卡av在线网| 欧美亚洲综合久久| 日韩午夜激情av| 国产精品网站一区| 亚洲第一福利视频在线| 久久av资源网| 99视频国产精品| 3d成人动漫网站| 中文在线一区二区| 亚洲一区二区美女| 精品一区二区三区影院在线午夜 | 粉嫩av亚洲一区二区图片| 91同城在线观看| 日韩欧美资源站| 日本一区二区免费在线观看视频| 成人精品亚洲人成在线| 色婷婷av一区二区三区软件| 91精品国产91久久久久久一区二区 | 不卡一区二区在线| 欧美色偷偷大香| 国产亚洲精品中文字幕| 亚洲一区二区av电影| 国产在线一区观看| 欧美三级在线播放| 国产午夜精品福利| 日韩专区一卡二卡| kk眼镜猥琐国模调教系列一区二区| 欧美日韩日本视频| 国产精品美女视频| 日本美女视频一区二区| 99精品黄色片免费大全| 欧美裸体bbwbbwbbw| 国产日韩欧美精品综合| 午夜在线成人av| fc2成人免费人成在线观看播放| 9191成人精品久久| 亚洲欧美日韩在线不卡| 国产一区二区三区免费| 欧美日韩国产小视频| 亚洲欧洲99久久| 久久电影网站中文字幕| 欧美日韩一区二区三区高清| 国产精品无人区| 国内外成人在线视频| 欧美日韩精品一二三区| 亚洲人成网站在线| 高清不卡在线观看| 日韩欧美国产精品| 亚洲二区视频在线| 91香蕉视频黄| 国产亚洲一区二区三区| 九一九一国产精品| 欧美三级日韩在线| 一区二区三区免费在线观看| 成人福利视频在线看| 久久色中文字幕| 美女诱惑一区二区| 欧美精品 国产精品| 依依成人综合视频| 91婷婷韩国欧美一区二区| 狠狠色狠狠色综合系列| 欧美精品 国产精品| 亚洲国产精品久久久久婷婷884| 99精品视频在线观看免费| 久久久久久久久免费| 狠狠色2019综合网| 欧美成人一区二区三区片免费| 亚洲成人自拍网| 欧美视频中文字幕| 亚洲成年人影院| 欧美综合视频在线观看| 一级女性全黄久久生活片免费| 91视频一区二区| 亚洲精品v日韩精品| 一本大道久久精品懂色aⅴ| **欧美大码日韩| 色综合欧美在线| 亚洲制服丝袜在线| 欧美日韩国产成人在线91| 午夜精品久久久久久久久久| 欧美剧情片在线观看| 日本va欧美va欧美va精品| 日韩欧美高清在线| 国产精品一级黄| 国产精品毛片高清在线完整版 | 色妞www精品视频| 日韩毛片在线免费观看| 在线观看av不卡| 午夜精品aaa| 日韩精品资源二区在线| 国产自产v一区二区三区c| 国产欧美日韩在线观看| 99re热这里只有精品免费视频| 亚洲美女视频在线| 欧美日本一区二区三区四区| 久久成人久久鬼色| 国产精品五月天| 欧美视频在线一区二区三区| 免费在线观看一区二区三区| 久久久久久久久久久久久女国产乱| 国产成人综合在线观看| 亚洲欧美成人一区二区三区| 精品视频在线看| 国产在线一区二区综合免费视频| 国产精品久久久久久久久久免费看 | 不卡欧美aaaaa| 亚洲国产三级在线| 精品福利av导航| 91小视频在线免费看| 日本欧美一区二区在线观看| 久久久国产午夜精品| 色哟哟欧美精品| 精品一区二区三区日韩| 国产精品免费人成网站| 欧美日本不卡视频| 国产二区国产一区在线观看 | 国内精品自线一区二区三区视频| 国产精品久久久久久久久晋中| 欧美日韩一区二区在线观看| 国产在线精品国自产拍免费| 亚洲日本va午夜在线影院| 欧美一区二区精品| 91在线观看免费视频| 久久福利视频一区二区| 亚洲黄色小视频| 久久久久久电影| 欧美日本在线视频| 成人精品鲁一区一区二区| 五月综合激情日本mⅴ| 国产精品三级av在线播放| 日韩一区二区中文字幕| 一本大道综合伊人精品热热| 国产一区二区网址| 亚洲国产精品久久人人爱| 国产美女在线精品| 亚洲国产成人精品视频| 国产精品久久久久毛片软件| 日韩一级片在线播放|