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

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

?? npc_janken.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
字號:
#include "version.h"
#include <string.h>
#include "common.h"
#include "char_base.h"
#include "npc_janken.h"
#include "npcutil.h"
#include "char.h"
#include "lssproto_serv.h"
#include "buf.h"
#include "function.h"
#include "readmap.h"
#include "object.h"
#include "log.h"

/*
 *元扎氏仃氏
 */
static void NPC_Janken_selectWindow( int meindex, int talker, int num);
void NPC_JnakenJudge(int meindex,int talker,int sel);
BOOL NPC_JankenEntryItemCheck(int talker,char *buf);
BOOL NPC_JankenEntryItemDel(int talker,char *buf);
void NPC_WarpPointGet(int meindex,int talker,int *fl,int *x,int *y,int judge);


/*********************************
* 賡渝質  
*********************************/
BOOL NPC_JankenInit( int meindex )
{

	//正奶皿毛本永玄
    CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_TYPEJANKEN );
	
	return TRUE;

}


/*********************************
*   仄井仃日木兇凜及質  
*********************************/
void NPC_JankenTalked( int meindex , int talkerindex , char *szMes ,
					 int color )
{
	/* 皿伊奶乩□卞覆仄化分仃  殺允月 */
	if( CHAR_getInt( talkerindex , CHAR_WHICHTYPE ) != CHAR_TYPEPLAYER ) {
		return;
	}
	
	/* ㄠ弘伉永玉動  及心 */
	if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;

	NPC_Janken_selectWindow(meindex, talkerindex, 0);

	
	

}



/******************************
 *	公木冗木及質  卞坌仃月
 ******************************/
static void NPC_Janken_selectWindow( int meindex, int talker, int num)
{

	char token[1024];
	char buf[32];
	int fd = getfdFromCharaIndex( talker);
	int buttontype=0;
	int windowtype=0;
	int windowno=0;
   	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
	

	/*--它奶件玉它正奶皿丟永本□斥互云云中及匹燮卞澀爛--*/
  	windowtype=WINDOW_MESSAGETYPE_MESSAGE;

	/*--澀爛白央奶伙毛  心  心--*/
	if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr))==NULL){
		print("NPC_janken Init: GetArgStrErr");
		return ;
	}


	switch( num)
	{
	  case 0:

	  	/*-- 旦正□玄及丟永本□斥互  仃木壬巨仿□  憎 --*/
		if(NPC_Util_GetStrFromStrWithDelim( argstr, "MainMsg", token, sizeof( token))
	 		== NULL)
		{
			print("Janken:MainMsg:%s", CHAR_getChar( meindex, CHAR_NAME));
			return ;
		}

  		/*--薊      --*/
	  	buttontype = WINDOW_BUTTONTYPE_YESNO;
	  	windowtype = WINDOW_MESSAGETYPE_MESSAGE;
	  	windowno = CHAR_WINDOWTYPE_JANKEN_START; 
	  	break;
	
	
	case 1:
		
		//失奶  丞及民尼永弁
		if(NPC_Util_GetStrFromStrWithDelim( argstr, "EntryItem",
		 buf, sizeof( buf))
		!= NULL) {
	
			if(NPC_JankenEntryItemCheck(talker,buf) == FALSE)
			{
				NPC_Janken_selectWindow(meindex, talker, 3);
			}

			//巨件玄伉迕及失奶  丞毛綽輪
			if(NPC_JankenEntryItemDel(talker,buf) == FALSE){
				print("元扎氏仃氏ERR:失奶  丞壅仄卞仄勻天中");
			}
		}


		/*--薊      --*/
		sprintf(token,"              剪刀石頭布!!\n"
			      "\n\n               《  石頭  》"
			      "\n\n               《  剪刀  》"
				  "\n\n               《  布  》"
		);

		buttontype=WINDOW_BUTTONTYPE_NONE;
		windowtype=WINDOW_MESSAGETYPE_SELECT;
	  	windowno=CHAR_WINDOWTYPE_JANKEN_MAIN; 
	  break;

	case 2:
		/*--丐中仇薊      --*/
		//sprintf(token,"              丐中仇匹″″\n"
		sprintf(token,"              平手再來!!\n"
			      "\n\n               《  石頭  》"
			      "\n\n               《  剪刀  》"
				  "\n\n               《  布  》"
		);

	  	buttontype=WINDOW_BUTTONTYPE_NONE;
	  	windowtype=WINDOW_MESSAGETYPE_SELECT;
 		windowno=CHAR_WINDOWTYPE_JANKEN_MAIN; 
	  	break;

  	case 3:
	  	/*-- 旦正□玄及丟永本□斥互  仃木壬巨仿□  憎 --*/
		NPC_Util_GetStrFromStrWithDelim( argstr, "NoItem", token, sizeof( token));

	  	buttontype=WINDOW_BUTTONTYPE_OK;
	  	windowtype=WINDOW_MESSAGETYPE_MESSAGE;
  		windowno=CHAR_WINDOWTYPE_JANKEN_END; 

  	break;

	}


//	makeEscapeString( token, escapedname, sizeof(escapedname));
	/*-仇仇匹霜耨允月--*/
	lssproto_WN_send( fd, windowtype, 
					buttontype, 
					windowno,
					CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
					token);



}



/*********************************
* 它奴件玉它丟永本□斥卞覆允月質  
*********************************/
void NPC_JankenWindowTalked( int meindex, int talkerindex, 
								int seqno, int select, char *data)
{
	/* ㄠ弘伉永玉動  及心 */
	if( NPC_Util_CharDistance( talkerindex, meindex ) > 1) return;

	switch( seqno){
	  case CHAR_WINDOWTYPE_JANKEN_START:
	
	  	if(select==WINDOW_BUTTONTYPE_YES){
			NPC_Janken_selectWindow(meindex, talkerindex, 1);
		}
		break;	
	
	case CHAR_WINDOWTYPE_JANKEN_MAIN:
		if (atoi(data) >= 3){
			NPC_JnakenJudge(meindex,talkerindex,atoi(data) );
		}
		break;
	}
}


/*
 *斥乓件弗件及  爛
 */
void NPC_JnakenJudge(int meindex,int talker,int sel)
{
	int player=-1;
	int jankenman;
	char j_char[3][8]={" 石頭 "," 剪刀 ","  布  "};
	char token[1024];
	int shouhai = 0;
	int fd = getfdFromCharaIndex( talker);
	int fl=0,x=0,y=0;
	
	
	if(sel == 3) player = 0; //弘□
	if(sel == 5) player = 1; //民亦平
	if(sel == 7) player = 2; //由□

	jankenman = rand()%3;

	switch(jankenman){
		case 0:
			if(player == 2){
				shouhai = 1;
			}else if(player == 1){
				shouhai = 2;
			}
		break;
		
		case 1:
			if(player == 0){
				shouhai = 1;
			}else if(player == 2){
				shouhai = 2;
			}
		break;
		
		case 2:
			if(player == 1){
				shouhai = 1;
			}else if(player == 0){
				shouhai = 2;
			}
		break;
	}

	if(shouhai == 1){
		//Change add 玩家猜勝了給的道具
		NPC_JankenItemGet( meindex, talker, "WinItem" );

		 NPC_WarpPointGet(meindex, talker, &fl, &x, &y, 0);
		
		snprintf( token, sizeof( token ) ,
						"              ~ 結  果 ~      \n\n"
						"  %16s      %-16s\n"
						"        [%s]    VS    [%s]\n\n\n"
						"      %-16s 勝利",
						 CHAR_getChar(meindex,CHAR_NAME),CHAR_getChar(talker,CHAR_NAME),
						 j_char[jankenman],j_char[player],
						 CHAR_getChar(talker,CHAR_NAME)
						);

//			    CHAR_talkToCli( talker , -1 ,token , CHAR_COLORCYAN );

				//伐□皿
			    CHAR_warpToSpecificPoint(talker, fl, x, y);
			    
			    //  勻兇午五反>減少=及失弁撲亦件毛允月[
			    CHAR_sendWatchEvent( CHAR_getWorkInt( talker, CHAR_WORKOBJINDEX),
							CHAR_ACTPLEASURE,NULL,0,TRUE);
				CHAR_setWorkInt( talker, CHAR_WORKACTION, CHAR_ACTPLEASURE);

	}else if(shouhai == 2){

		//Change add 玩家猜輸了給的道具
		NPC_JankenItemGet( meindex, talker, "LoseItem" );

		 NPC_WarpPointGet(meindex, talker, &fl, &x, &y, 1);
		snprintf( token, sizeof( token ) ,
						"              ~ 結  果 ~      \n\n"
						"  %16s      %-16s\n"
						"        [%s]    VS    [%s]\n\n\n"
						"      %-16s 輸了",
						 CHAR_getChar(meindex,CHAR_NAME),CHAR_getChar(talker,CHAR_NAME),
						 j_char[jankenman],j_char[player],
						 CHAR_getChar(talker,CHAR_NAME)
						);
//			    CHAR_talkToCli( talker , -1 ,token , CHAR_COLORCYAN );

				//伐□皿
				CHAR_warpToSpecificPoint(talker, fl, x, y);

				//  仃兇午五反>  仄中=失弁撲亦件毛允月
			    CHAR_sendWatchEvent( CHAR_getWorkInt( talker, CHAR_WORKOBJINDEX),
							CHAR_ACTSAD,NULL,0,TRUE);
				CHAR_setWorkInt( talker, CHAR_WORKACTION, CHAR_ACTSAD);


	}else{
		//仇仇卞仁月午丐中仇
		NPC_Janken_selectWindow( meindex, talker, 2);
		return;
	}
	
	//霜耨
	lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE, 
					WINDOW_BUTTONTYPE_OK, 
					CHAR_WINDOWTYPE_JANKEN_END,
					CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX),
					token);


	
}


/*
 *伐□皿燮毛GET允月[
 */
void NPC_WarpPointGet(int meindex,int talker,int *fl,int *x,int *y,int judge)
{
   	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
	char *strbuf[2] = {"WinWarp","LoseWarp"};
	char buf[64];
	char buf2[32];

	/*--澀爛白央奶伙毛  心  心--*/
	if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr))==NULL){
		print("NPC_janken Init: GetArgStrErr");
		return ;
	}


	/*--伐□皿燮毛潸  --*/
	NPC_Util_GetStrFromStrWithDelim( argstr, strbuf[judge], buf, sizeof( buf));
	getStringFromIndexWithDelim(buf,",",1,buf2,sizeof(buf2));
	*fl=atoi(buf2);
	getStringFromIndexWithDelim(buf,",",2,buf2,sizeof(buf2));
	*x=atoi(buf2);
	getStringFromIndexWithDelim(buf,",",3,buf2,sizeof(buf2));
	*y=atoi(buf2);
	
	
}

/*
 *--失奶  丞及民尼永弁分仃毛墊丹
 */
BOOL NPC_JankenEntryItemCheck(int talker,char *buf)
{

	char buf2[512];
	char buf3[256];
	int id=0;
	BOOL flg = FALSE;
	int i;
	int itemindex;
	int itemno;
	int kosuu;
	int cnt=0;
	int k=1;
	
	while(getStringFromIndexWithDelim(buf , "," , k, buf2, sizeof(buf2))
	 !=FALSE )
	{
		flg = FALSE;
		k++;
		
		if(strstr(buf2,"*") != NULL){
			cnt = 0;
			getStringFromIndexWithDelim(buf2,"*",1,buf3,sizeof(buf3));
			itemno = atoi(buf3);
			getStringFromIndexWithDelim(buf2,"*",2,buf3,sizeof(buf3));
			kosuu = atoi(buf3);
		
			for( i=0 ; i < CHAR_MAXITEMHAVE;i++ ){
				itemindex = CHAR_getItemIndex( talker , i );
				if( ITEM_CHECKINDEX(itemindex) ){
					id = ITEM_getInt(itemindex ,ITEM_ID );
					if(itemno == id){
						cnt++;
						if(cnt == kosuu){
							flg = TRUE;
							break;
						}
					}
				}
			}
			if(flg == FALSE)
			{
				return FALSE;	
			}
		}else{
			itemno = atoi(buf2);
			
			for( i=0 ; i < CHAR_MAXITEMHAVE;i++ ){
				itemindex = CHAR_getItemIndex( talker , i );
				if( ITEM_CHECKINDEX(itemindex) ){
					id = ITEM_getInt(itemindex ,ITEM_ID );
					if(itemno == id){
						flg = TRUE;
						break;
					}
				}
			}
	
			if(flg == FALSE)
			{
				return FALSE;
			}
		}
	}

	return TRUE;

}

BOOL NPC_JankenEntryItemDel(int talker,char *buf)
{

	int i = 1, j = 1,k = 1;
	char buff3[128];
	char buf2[32];
	int itemindex;

	while(getStringFromIndexWithDelim(buf , "," , k, buff3, sizeof(buff3)) !=FALSE ){
		k++;
		if(strstr(buff3, "*") !=NULL){
			int itemno;
			int kosuu;
			int id;
			int cnt=0;
			getStringFromIndexWithDelim(buff3,"*",1,buf2,sizeof(buf2));
			itemno = atoi(buf2);
			getStringFromIndexWithDelim(buff3,"*",2,buf2,sizeof(buf2));
			kosuu = atoi(buf2);
				for( i =0 ; i < CHAR_MAXITEMHAVE ; i++ ){
				itemindex = CHAR_getItemIndex( talker , i );
				if( ITEM_CHECKINDEX(itemindex) ){
					id=ITEM_getInt(itemindex ,ITEM_ID );
					if(itemno==id){
						cnt++;
						LogItem(
							CHAR_getChar( talker, CHAR_NAME ), /* 平乓仿   */
							CHAR_getChar( talker, CHAR_CDKEY ),
#ifdef _add_item_log_name  // WON ADD 在item的log中增加item名稱
							itemindex,
#else
							ITEM_getInt( itemindex, ITEM_ID),  /* 失奶  丞  寞 */
#endif
							"QuizDelItem(猜謎->交出道具)",
							CHAR_getInt( talker, CHAR_FLOOR),
							CHAR_getInt( talker, CHAR_X ),
 							CHAR_getInt( talker, CHAR_Y ),
							ITEM_getChar( itemindex, ITEM_UNIQUECODE),
							ITEM_getChar( itemindex, ITEM_NAME),
							ITEM_getInt( itemindex, ITEM_ID)
						);
						CHAR_DelItem( talker, i);
						if(cnt == kosuu){
							break;
						}
					}
				}
			}		
		}else{
			/*--薊氏分  寞及失奶  丞毛薊請---*/
			for( j = 0 ;  j < CHAR_MAXITEMHAVE ; j++){
				itemindex = CHAR_getItemIndex( talker ,j);

				if( ITEM_CHECKINDEX(itemindex) ){
					if( atoi( buff3) == ITEM_getInt(itemindex,ITEM_ID)){
						LogItem(
							CHAR_getChar( talker, CHAR_NAME ), /* 平乓仿   */
							CHAR_getChar( talker, CHAR_CDKEY ),
#ifdef _add_item_log_name  // WON ADD 在item的log中增加item名稱
							itemindex,
#else
							ITEM_getInt( itemindex, ITEM_ID),  /* 失奶  丞  寞 */
#endif
							"QuizDelItem(猜謎->交出道具)",
							CHAR_getInt( talker,CHAR_FLOOR),
							CHAR_getInt( talker,CHAR_X ),
							CHAR_getInt( talker,CHAR_Y ),
							ITEM_getChar( itemindex, ITEM_UNIQUECODE),
							ITEM_getChar( itemindex, ITEM_NAME),
							ITEM_getInt( itemindex, ITEM_ID)
						);
						CHAR_DelItem( talker, j);
					}
				}
			}
		}
	}

	return TRUE;
}

BOOL NPC_JankenItemGet(int meindex,int talker, char *wl)
{
	char argstr[NPC_UTIL_GETARGSTR_BUFSIZE];
	char buf[64];

	/*--澀爛白央奶伙毛  心  心--*/
	if(NPC_Util_GetArgStr( meindex, argstr, sizeof(argstr))==NULL){
		print("NPC_janken ItemGet: GetArgStrErr");
		return ;
	}

	if(NPC_Util_GetStrFromStrWithDelim( argstr, wl, buf, sizeof( buf) ) !=NULL){
			NPC_EventAddItem( meindex, talker, buf);
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
天堂午夜影视日韩欧美一区二区| 亚洲永久精品大片| 欧美日韩久久久一区| 在线精品视频一区二区| 国产91在线观看丝袜| 国产一区二区三区av电影| 久久9热精品视频| 国产在线视频不卡二| 激情综合亚洲精品| 国内精品久久久久影院色| 国内成人免费视频| 成人在线视频一区二区| 成人av免费网站| 欧美性色黄大片| 91.成人天堂一区| 欧美成人精品高清在线播放 | 99久久99久久精品免费看蜜桃| 久久―日本道色综合久久| 91精品国产综合久久久久久久久久| 国产一级精品在线| 成人精品国产免费网站| 一本一本大道香蕉久在线精品 | 国产成人在线网站| 国产69精品久久777的优势| 粉嫩13p一区二区三区| 波多野结衣中文一区| 欧美中文字幕一区| 久久久久久久综合| 亚洲精品少妇30p| 裸体一区二区三区| 成人va在线观看| 欧美日韩成人激情| 日本一区二区三区国色天香 | 欧美日韩一区二区在线观看视频| 国产福利视频一区二区三区| aaa国产一区| 日韩免费福利电影在线观看| 国产精品久久久久一区二区三区共| 欧美一区二区网站| 国产精品高清亚洲| 美女在线观看视频一区二区| 色综合 综合色| 欧美国产欧美综合| 免费欧美在线视频| 欧美中文字幕一区二区三区亚洲| 波多野结衣在线一区| 日韩情涩欧美日韩视频| 亚洲欧洲色图综合| 国模套图日韩精品一区二区| 欧美网站大全在线观看| 国产精品国产馆在线真实露脸| 久久精品视频一区| 免费观看成人av| 在线观看日韩精品| 欧美极品aⅴ影院| 看电视剧不卡顿的网站| 欧美日韩一区二区在线观看 | 中文字幕制服丝袜一区二区三区 | 国产精品久久久久久久午夜片| 久久综合精品国产一区二区三区| 在线成人小视频| 自拍偷在线精品自拍偷无码专区| 欧美激情一区二区三区不卡| 毛片av中文字幕一区二区| 色噜噜狠狠一区二区三区果冻| 色一情一乱一乱一91av| 国产精品天天看| 蜜臀av性久久久久av蜜臀妖精| 激情国产一区二区| 欧美在线影院一区二区| 亚洲精品五月天| 99精品视频一区| 日韩毛片高清在线播放| 91免费看`日韩一区二区| 国产精品私人影院| 99这里都是精品| 亚洲天堂精品在线观看| 91蜜桃在线免费视频| 亚洲女同女同女同女同女同69| 日韩黄色片在线观看| 色老汉一区二区三区| 一区二区三区中文字幕电影 | 亚洲国产精品一区二区www在线| 亚洲一区自拍偷拍| 97se狠狠狠综合亚洲狠狠| 日本一区二区三区四区在线视频| 一个色在线综合| 欧美日韩精品免费观看视频 | 久久久精品欧美丰满| 国产高清精品网站| 久久精品一区蜜桃臀影院| aa级大片欧美| 亚洲国产精品影院| 精品奇米国产一区二区三区| 国产麻豆精品久久一二三| 国产精品免费aⅴ片在线观看| 亚洲成人一区二区在线观看| 欧美一区二区三区的| 国产一区二区三区四区在线观看 | 夜夜亚洲天天久久| 91精品国产综合久久国产大片| 国产区在线观看成人精品| 菠萝蜜视频在线观看一区| 亚洲专区一二三| 亚洲精品一区二区三区香蕉| av中文字幕不卡| 免费成人在线观看| 国产精品久久久久影院亚瑟| 欧美日韩亚洲综合一区| 国产成人av影院| 亚洲综合一区在线| 久久综合久久鬼色中文字| 在线免费观看不卡av| 久久精品国产精品青草| 亚洲欧美日韩人成在线播放| 欧美一区二区三区四区视频| 成年人午夜久久久| 欧美aaaaa成人免费观看视频| 91久久线看在观草草青青| 日韩高清不卡在线| 亚洲婷婷在线视频| 精品欧美一区二区久久| 欧美综合久久久| 国产成人亚洲综合a∨婷婷图片| 精品乱人伦小说| 欧美视频一区二| 成人美女视频在线观看18| 欧美aaaaaa午夜精品| 亚洲精品欧美专区| 国产欧美精品一区二区色综合 | 日韩精品色哟哟| 亚洲摸摸操操av| 精品国产一区二区三区忘忧草| 麻豆91在线观看| 午夜激情久久久| 国产精品成人免费| 久久久久久毛片| 精品国产麻豆免费人成网站| 欧美日韩国产影片| 99re热视频这里只精品| 国产福利一区在线观看| 国产专区欧美精品| 久久av资源网| 久久精品噜噜噜成人88aⅴ | 综合久久久久综合| 国产精品日日摸夜夜摸av| 日韩精品中文字幕在线不卡尤物| 久久国产乱子精品免费女| 免费高清在线一区| 蜜臀国产一区二区三区在线播放| 日韩午夜激情视频| 日韩欧美自拍偷拍| 日韩欧美视频一区| 日韩欧美亚洲一区二区| 欧美sm美女调教| 久久综合久久综合久久综合| 久久尤物电影视频在线观看| 久久女同精品一区二区| 亚洲视频资源在线| 亚洲精品欧美激情| 亚洲二区在线观看| 日韩国产高清影视| 麻豆久久久久久久| 国产精品一区在线观看你懂的| 国产精品电影一区二区| 欧美国产一区二区| 亚洲欧洲综合另类在线| 亚洲gay无套男同| 久久国产日韩欧美精品| 成人性生交大片免费看中文| 色综合久久久久久久久久久| 欧美视频三区在线播放| 欧美一级生活片| 国产日韩欧美精品一区| 亚洲精品成a人| 婷婷开心久久网| 国产综合色视频| www.亚洲国产| 9191成人精品久久| 国产午夜一区二区三区| 亚洲欧美日韩成人高清在线一区| 久久夜色精品国产噜噜av| 久久天天做天天爱综合色| 中文字幕亚洲成人| 午夜一区二区三区在线观看| 精品一区二区三区免费| 97精品国产露脸对白| 欧美成人一区二区三区| 一区二区在线观看视频| 久久国产精品一区二区| 99久久精品国产网站| 精品国产乱码久久久久久免费| 91精品午夜视频| 国产精品不卡在线| 青青草一区二区三区| 成人久久视频在线观看| 欧美一区二区三区视频免费| 亚洲人成伊人成综合网小说| 国产一区美女在线| 欧美精品1区2区|