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

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

?? npc_janken.c

?? 石器時代8.0服務端完整源代碼。可以直接編譯
?? 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一区二区三区免费野_久草精品视频
欧美顶级少妇做爰| 99久久精品免费看国产免费软件| 91精品国产美女浴室洗澡无遮挡| 成人精品鲁一区一区二区| 丝袜诱惑制服诱惑色一区在线观看| 久久久久99精品一区| 在线观看日韩国产| 欧美在线观看禁18| 国产99久久久久| 久久99久久久久| 亚洲大尺度视频在线观看| 国产精品久久久久aaaa| 国产亚洲短视频| 久久久青草青青国产亚洲免观| 日韩欧美中文字幕一区| 欧美肥大bbwbbw高潮| 欧美日韩一区三区四区| 欧美伦理电影网| 欧美高清hd18日本| 91精品国产91久久久久久最新毛片 | 中文字幕日本乱码精品影院| 中文字幕中文乱码欧美一区二区| 亚洲精品日韩综合观看成人91| 香蕉影视欧美成人| 久久精品国产77777蜜臀| 精品中文字幕一区二区| 免费的成人av| 国模少妇一区二区三区| 国产一区二区三区综合| 欧美一级二级三级乱码| 在线播放欧美女士性生活| 欧美剧在线免费观看网站| 欧美剧在线免费观看网站| 精品剧情v国产在线观看在线| 亚洲精品一区二区三区福利 | 国产精品福利在线播放| 自拍av一区二区三区| 亚洲精品国久久99热| 亚洲精品视频在线看| 天天做天天摸天天爽国产一区| 欧美bbbbb| 国产成人在线视频网址| 国产精品一区免费在线观看| www.亚洲免费av| 欧美性一二三区| 56国语精品自产拍在线观看| 久久久五月婷婷| 一区二区理论电影在线观看| 日日摸夜夜添夜夜添亚洲女人| 国产在线观看免费一区| 91亚洲精华国产精华精华液| 99精品国产一区二区三区不卡| 99久久夜色精品国产网站| 欧美久久高跟鞋激| 欧美成人欧美edvon| 午夜精品国产更新| 91无套直看片红桃| 欧美精品粉嫩高潮一区二区| 国产偷v国产偷v亚洲高清| 亚洲综合999| 国产另类ts人妖一区二区| 欧美系列在线观看| 中文字幕欧美三区| 五月婷婷综合网| 91在线看国产| 精品国产精品网麻豆系列| 香蕉av福利精品导航| 波多野结衣欧美| 日韩欧美国产高清| 亚洲一区二区3| 色综合久久久久网| 欧美精品一级二级三级| 国产无一区二区| 黄色资源网久久资源365| 欧美日韩一区 二区 三区 久久精品| 国产精品免费视频网站| 国产在线精品一区二区三区不卡| 国产欧美日韩激情| 日韩中文字幕av电影| 欧美性受xxxx| 亚洲国产成人自拍| 99re这里只有精品视频首页| 亚洲国产精品av| 99re66热这里只有精品3直播 | 色噜噜夜夜夜综合网| 精品久久久久久久久久久久包黑料 | 国产成人综合精品三级| 日韩国产一二三区| 亚洲一区中文日韩| 国产亚洲精品aa午夜观看| 欧美日韩色一区| 99久久99久久综合| 国产成人午夜电影网| 丝袜亚洲另类欧美综合| 亚洲男女一区二区三区| 日韩一级二级三级| 色欧美片视频在线观看在线视频| 久久99精品久久久久久| 免费在线看成人av| 亚洲成av人片在www色猫咪| 国产精品欧美久久久久无广告| 欧美变态凌虐bdsm| 欧美一二三四在线| 欧美三级视频在线观看| 在线亚洲精品福利网址导航| av一本久道久久综合久久鬼色| 国产精品一区在线观看乱码| 久久国产精品色| 午夜精品久久久久| 午夜精品福利视频网站| 亚洲制服欧美中文字幕中文字幕| 亚洲精品福利视频网站| 成人欧美一区二区三区小说| 中文字幕高清一区| 中文欧美字幕免费| 中文字幕在线一区二区三区| 国产精品久久久久影院老司 | 欧美一区二区三区免费视频| 欧美日韩电影在线播放| 欧美日韩视频在线第一区| 欧美人体做爰大胆视频| 日韩一区二区三区免费观看| 日韩午夜电影在线观看| 精品久久久三级丝袜| 2024国产精品视频| 国产情人综合久久777777| 国产精品网曝门| 国产欧美日韩另类视频免费观看| 欧美国产日本韩| 国产精品国产馆在线真实露脸 | www日韩大片| 中文字幕高清一区| 亚洲精品老司机| 午夜亚洲国产au精品一区二区| 日韩福利电影在线观看| 欧美日韩国产一二三| 欧美美女bb生活片| 久久嫩草精品久久久精品| 国产精品免费观看视频| 国产精品灌醉下药二区| 亚洲午夜视频在线| 日韩精品电影一区亚洲| 国模娜娜一区二区三区| 91视视频在线观看入口直接观看www| 欧美影院一区二区| 欧美成va人片在线观看| 一区在线观看免费| 亚洲1区2区3区视频| 国产美女精品人人做人人爽| 91丨porny丨首页| 日韩一二三四区| 国产精品护士白丝一区av| 五月婷婷综合在线| 成人免费视频播放| 91精品国产色综合久久不卡电影| 国产无一区二区| 日韩专区中文字幕一区二区| 丁香一区二区三区| 欧美一区二区三区系列电影| 国产精品黄色在线观看 | 亚洲一二三四在线| 国产另类ts人妖一区二区| 欧美午夜精品久久久久久超碰| 精品日韩成人av| 亚洲福利一二三区| 国产成人午夜99999| 日韩一区二区三区电影 | 国产色综合一区| 亚洲国产精品久久艾草纯爱| 成人午夜短视频| 日韩三区在线观看| 亚洲国产一区二区三区| 成人av电影在线| 精品国产自在久精品国产| 亚洲成人www| 91一区二区在线| 国产色爱av资源综合区| 青娱乐精品视频| 色呦呦国产精品| 中文字幕在线观看不卡视频| 极品尤物av久久免费看| 亚洲综合清纯丝袜自拍| 国产电影一区二区三区| 日韩欧美国产精品一区| 首页欧美精品中文字幕| 色婷婷国产精品| 专区另类欧美日韩| av不卡免费电影| 国产欧美日韩三区| 国产成人午夜视频| 精品久久久久久亚洲综合网 | 国产在线精品国自产拍免费| 8x福利精品第一导航| 亚洲香肠在线观看| 欧美伊人久久久久久午夜久久久久| 中文字幕亚洲综合久久菠萝蜜| 国产精品香蕉一区二区三区| 久久天堂av综合合色蜜桃网| 久久精品国产一区二区三区免费看| 911精品国产一区二区在线|