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

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

?? npc_warpman.c

?? 石器時代8.0服務端完整源代碼??梢灾苯泳幾g
?? C
?? 第 1 頁 / 共 3 頁
字號:
	    if( NPC_Util_GetStrFromStrWithDelim( buf, "FREE", token, sizeof( token) ) == NULL)	{
	      print("msgErr");
	      return;
	    }

	    //檢查玩家是否附合條件		
	    if((NPC_ActionPassCheck(meindex,toindex,token)==TRUE) || (strstr( token, "ALLFREE")!=NULL) )	{
		  CHAR_setWorkInt( toindex, CHAR_WORKSHOPRELEVANT, talkNo-1);

	      //若附合條件 取出 FreeMsg 字串
	      if(NPC_Util_GetStrFromStrWithDelim( buf, "FreeMsg", token, sizeof( token))==NULL)
	        return;
	      CONNECT_set_pass(fd,TRUE);
	      CONNECT_set_first_warp(fd,TRUE);
	      buttontype = WINDOW_BUTTONTYPE_YESNO;
	      windowno = NEW_WARPMAN;
	      tenflg = TRUE;
	      CHAR_setWorkInt( toindex , CHAR_WORKSHOPRELEVANTTRD , -1 );
	      break;									
	    }
	  }
	  talkNo++;
	}

	//無任何條件成立
	if( tenflg == FALSE )	{
		if( getStringFromIndexWithDelim( npcarg,"OVER",1,buf,sizeof( buf)) == FALSE )
			return;
		if( strstr( buf, "NOFREE") == NULL )	{
			return;
		}else	{
			strcpy( npcarg, buf);
		}
		if(NPC_Util_GetStrFromStrWithDelim( npcarg, "NomalMsg", token,sizeof(token)) != NULL)	{
			CHAR_talkToCli( toindex, meindex, token,CHAR_COLORWHITE);
			return;
		}
	}

	//送訊息給 CLI						
	lssproto_WN_send( fd, windowtype, buttontype, windowno,
			CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), token	);																				
}

#endif
//ANDY_RE
int CheckWarpMsg( int meindex, int talkerindex,char *npcarg ,char *TalkStr)
{
  char buf[1024];

  if( NPC_Util_GetStrFromStrWithDelim( npcarg, "warp_msg", buf, sizeof( buf) ) == NULL)
	  return 0;
  if( strcmp( buf, TalkStr) )
	  return 1;

  if( NPC_Util_GetStrFromStrWithDelim( npcarg, "CHECKPARTY", buf, sizeof( buf) ) != NULL)	{
	  if( strstr( buf, "FALSE") != NULL )	{
	  }else {
	  if( NPC_PARTY_CHAECK( meindex, talkerindex) == FALSE )	{
		  NPC_ERR_DiSP( meindex, talkerindex, 1);
		  return 2;
	  }		
	}
  }

   if( NPC_Util_GetStrFromStrWithDelim( npcarg, "FREE", buf, sizeof( buf)) == NULL )
	   return 2;
   if( ( NPC_ActionPassCheck( meindex, talkerindex, buf ) == FALSE) )	{
	   	if(NPC_Util_GetStrFromStrWithDelim( npcarg, "NomalMsg", buf,sizeof(buf)) != NULL)	{
			CHAR_talkToCli( talkerindex, meindex,buf,CHAR_COLORWHITE);
		}
		return	2;
   }else   {
		if( Action_RunDoEventAction( meindex, talkerindex, npcarg) == FALSE ){

			CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, -1);
			return 3;
		}
		CHAR_complianceParameter( talkerindex );
		CHAR_send_P_StatusString( talkerindex ,
			CHAR_P_STRING_ATK|CHAR_P_STRING_DEF|
			CHAR_P_STRING_CHARM|CHAR_P_STRING_QUICK|
			CHAR_P_STRING_WATER|CHAR_P_STRING_FIRE|
			CHAR_P_STRING_WIND|CHAR_P_STRING_EARTH	);

		if(NPC_Util_GetStrFromStrWithDelim( npcarg, "FreeMsg", buf, sizeof( buf)) != NULL ){
			CHAR_talkToCli( talkerindex, meindex, buf,  CHAR_COLORWHITE);
		}

		NPC_WarpMsg( meindex, talkerindex, npcarg);
		NPC_NpcWarpMsg( meindex, talkerindex, npcarg);
		return 4;
	}
  return 0;
}

BOOL NPC_NpcWarpMsg(int meindex,int talker,char *arg)
{
	char buf[256];	
	int fl=0,x=0,y=0;
	
	if( CHAR_CHECKINDEX( meindex ) == FALSE )
		return FALSE;

	if( NPC_Util_GetStrFromStrWithDelim( arg, "NPCPOINT", buf, sizeof( buf)) == NULL )
		return FALSE;
	GetRand_WarpPoint( buf, &fl, &x, &y );

	if( MAP_IsValidCoordinate( fl,x,y )== FALSE ){
		print( "Warp NPC:2.Invalid warpman ERR" );
		return FALSE;
	}

	CHAR_warpToSpecificPoint( meindex, fl, x, y );
	
	return TRUE;
}

void NPC_WarpManLoop( int meindex)
{
	int born, dead;
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	if( !CHAR_CHECKINDEX( meindex) ) return;

	if( NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg)) == NULL ){
		print("WarpMan:GetArgStrErr");
		return;
	}
	if( !strstr( npcarg,"NEWWARPMAN") )
		return;

	if( NPC_getTimeData( meindex, npcarg, &born, &dead, 200) != FALSE ){
		NPC_TimeDefineDo( meindex, born, dead, NPC_TIME_MODE);
		CHAR_sendCToArroundCharacter( CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX ) );
	}
}

void NPC_WarpManWatch( int meobjindex, int objindex, CHAR_ACTION act,
					  int x,int y,int dir, int* opt,int optlen )
{
	int born, dead;
	int meindex, index;

	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];

	if( OBJECT_getType( objindex) != OBJTYPE_CHARA) return;
	index = OBJECT_getIndex( objindex);
	if( !CHAR_CHECKINDEX( index) ) return;
	if( CHAR_getInt( index, CHAR_WHICHTYPE) != CHAR_TYPEPLAYER) return;
    meindex = OBJECT_getIndex( meobjindex);
	if( !CHAR_CHECKINDEX( meindex) ) return;

	if( NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg)) == NULL ){
		print("WarpMan:GetArgStrErr");
		return;
	}
	if( !strstr( npcarg,"NEWWARPMAN") )
		return;
#ifdef _TREASURE_BOX
	if( CHAR_getWorkInt( meindex, NPC_TIME_EVENTMODE) == NPC_EVENTMODE_OPEN ){
		if( CHAR_getWorkInt( meindex, NPC_TIME_EVENTTIME) < NowTime.tv_sec ){
			//變回寶箱
			CHAR_setWorkInt( meindex, NPC_TIME_EVENTMODE, NPC_EVENTMODE_EVENT);
			//變圖
			CHAR_setInt( meindex, CHAR_BASEBASEIMAGENUMBER,
				CHAR_getWorkInt( meindex, NPC_TIME_EVENOFFDBBI));
			CHAR_setInt( meindex, CHAR_BASEIMAGENUMBER,
				CHAR_getWorkInt( meindex, NPC_TIME_EVENOFFDBBI));
			NPC_TreasureEventRunMsg( meindex);	//是否warp
			CHAR_sendCToArroundCharacter( CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX ) );
		}
	}
#endif
	if( NPC_getTimeData( meindex, npcarg, &born, &dead, 200) != FALSE ){
		NPC_TimeDefineDo( meindex, born, dead, NPC_TIME_MODE);
		CHAR_sendCToArroundCharacter( CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX ) );
	}
}

#ifdef _TREASURE_BOX
BOOL NPC_TreasureEventRunMsg( int meindex)
{
	char buf[256];	
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];

	int fl,x,y;
	
	if( !CHAR_CHECKINDEX( meindex ))
		return FALSE;


	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("WarpMan:GetArgStrErr");
		return FALSE;
	}	

	if( NPC_Util_GetStrFromStrWithDelim( npcarg, "TREASURE_NUM", buf, sizeof( buf)) == NULL )
		return FALSE;

	if(  CHAR_getWorkInt( meindex, NPC_TIME_EVENTNUM) < atoi( buf) ) return FALSE;
	CHAR_setWorkInt( meindex, NPC_TIME_EVENTNUM, 0);
	
	if( NPC_Util_GetStrFromStrWithDelim( npcarg, "TREASURE_POINT", buf, sizeof( buf)) == NULL )
		return FALSE;
	GetRand_WarpPoint( buf, &fl, &x, &y );

	if( MAP_IsValidCoordinate( fl,x,y )== FALSE ){
		print( "Warp NPC:2.Invalid warpman ERR" );
		return FALSE;
	}

	CHAR_warpToSpecificPoint( meindex, fl, x, y );
	return TRUE;
}

#endif

BOOL NPC_TreasureRandItemGet(int meidex,int talker,int rand_j,char *buf)
{
	char buff2[64];
	int randitem;
	int ret;
	int itemindex;
	char token[128];

	if(rand_j == 0) {
		print("Event:由於0的介入,出現錯誤。");
 		return FALSE;
 	}
 	
	randitem = rand()%rand_j;
	if(randitem == 0) randitem = rand_j;

	getStringFromIndexWithDelim(buf , "," , randitem, buff2, sizeof(buff2)) ;

	itemindex = ITEM_makeItemAndRegist( atoi( buff2));

	if(itemindex == -1) return FALSE;
	
	/*失奶  丞及馨笛(  濤失奶  丞  卞中木化仄引丹  */
	ret = CHAR_addItemSpecificItemIndex( talker, itemindex);
	if( !CHAR_CHECKITEMINDEX( talker, ret) ){
		print( "npc_exchangeman.c: additem error itemindex[%d]\n", itemindex);
		ITEM_endExistItemsOne( itemindex);
		return FALSE;
	}

	if(itemindex != -1) {
		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
			"EventAddItem(任務需求所得到的道具)",
			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)
		);
	}
					
	sprintf(token,"收下了%s",ITEM_getChar( itemindex, ITEM_NAME));
	CHAR_talkToCli( talker, -1, token, CHAR_COLORWHITE);

	CHAR_sendItemDataOne( talker, ret);
	return TRUE;

}

#ifdef  _NPC_ADDLEVELUP				// (不可開) ANDY 外部測試機用來增加玩家等級
extern  tagRidePetTable ridePetTable[296];
void NPC_LevelAndTransUp( int meindex, int charindex, int level, int skillpoint, int exp, int ridepet)
{
	char szBuffer[256]="";
	if( !CHAR_CHECKINDEX( charindex) )
		return;
//int CHAR_LevelUpCheck( int charaindex , int toindex)
	if( exp > 0 ){
		int LevelUp=0;
		int myexp = CHAR_getInt( charindex, CHAR_EXP);
		myexp += exp;
		if( myexp > 300000000 ) myexp = 300000000;
		CHAR_setInt( charindex, CHAR_EXP, myexp);
		snprintf( szBuffer, sizeof(szBuffer),
			"(%s) 得到 EXP %d", CHAR_getUseName( charindex ), exp);
		CHAR_talkToCli( charindex, -1, szBuffer, CHAR_COLORYELLOW);
		LevelUp = CHAR_LevelUpCheck( charindex , -1);
		if( LevelUp > 0 ){
			snprintf( szBuffer, sizeof(szBuffer),
				"(%s) 升級至 %d",
				CHAR_getUseName( charindex ),
				CHAR_getInt( charindex, CHAR_LV )
			);
			CHAR_talkToCli( charindex, -1, szBuffer, CHAR_COLORYELLOW);
			CHAR_setInt( charindex, CHAR_SKILLUPPOINT,
				CHAR_getInt( charindex, CHAR_SKILLUPPOINT) +  LevelUp*3 );
			CHAR_complianceParameter( charindex );
		}
	}

	if( level > 0 ){
		CHAR_setInt( charindex, CHAR_LV, level);
		snprintf( szBuffer, sizeof(szBuffer),
			"(%s) 等級設定為 %d",
			CHAR_getUseName( charindex ),	CHAR_getInt( charindex, CHAR_LV )
		);
		CHAR_talkToCli( charindex, -1, szBuffer, CHAR_COLORYELLOW);
	}

	if( skillpoint > 0 ){
		int MySp = CHAR_getInt( charindex, CHAR_SKILLUPPOINT);
		MySp += skillpoint;
		CHAR_setInt( charindex, CHAR_SKILLUPPOINT, MySp);
	}
	if( ridepet >= 0 ){
		int basepet[2][4]={	{2066,2067,2068,2069},
							{2072,2073,2074,2075}};
		int petTemp[]={-1,-1,-1,-1,-1};
		char msgbuf[256];
		int petNum=0;
		int i,j=0;
		int k=0, petindex,enemyarray;
		petTemp[j++] = basepet[0][rand()%4];
		petTemp[j++] = basepet[1][rand()%4];

		for( i=0; i< arraysizeof(ridePetTable) ; i++ ){
			if( CHAR_getInt( charindex, CHAR_BASEBASEIMAGENUMBER) == ridePetTable[i].charNo ){
				petTemp[j]= ridePetTable[i].petId;
				j++;
				if( j >= arraysizeof( petTemp) )
					break;
			}
		}
		j=0;
		for( petNum=0; petNum<arraysizeof( petTemp); petNum++)	{
			enemyarray = ENEMY_getEnemyArrayFromId( petTemp[ petNum]); //白虎
			petindex = ENEMY_createPetFromEnemyIndex( charindex, enemyarray);
			if( petindex == -1 ) {
				continue;
			}
			j++;
			for( k = 1; k < 120; k ++ ){	//升級
				CHAR_PetLevelUp( petindex );
				CHAR_PetAddVariableAi( petindex, AI_FIX_PETLEVELUP );
				CHAR_setInt( petindex, CHAR_LV, CHAR_getInt( petindex, CHAR_LV) +1 );
			}
			CHAR_complianceParameter( petindex );
			CHAR_setInt( petindex , CHAR_HP , CHAR_getWorkInt( petindex , CHAR_WORKMAXHP ) );
			snprintf( szBuffer, sizeof(szBuffer), "得到%s", CHAR_getUseName( petindex) );
			CHAR_talkToCli( charindex, -1, szBuffer, CHAR_COLORYELLOW);
		}
		for(j = 0; j < CHAR_MAXPETHAVE; j++){
			petindex = CHAR_getCharPet(charindex, j);
			if( !CHAR_CHECKINDEX( petindex) )
				continue;
			CHAR_complianceParameter( petindex );
			snprintf( msgbuf, sizeof( msgbuf ), "K%d", j );
			CHAR_sendStatusString( charindex, msgbuf );
			snprintf( msgbuf, sizeof( msgbuf ), "W%d", j );
			CHAR_sendStatusString( charindex, msgbuf );
		}
		CHAR_setInt( charindex, CHAR_LEARNRIDE, ridepet);
	}
	CHAR_send_P_StatusString(  charindex, CHAR_P_STRING_DUELPOINT|
		CHAR_P_STRING_TRANSMIGRATION| CHAR_P_STRING_RIDEPET|
		CHAR_P_STRING_BASEBASEIMAGENUMBER| CHAR_P_STRING_GOLD|
		CHAR_P_STRING_EXP| CHAR_P_STRING_LV| CHAR_P_STRING_HP|CHAR_P_STRING_LEARNRIDE);
	CHAR_Skillupsend( charindex);
}
#endif
//ANDY_END                             									

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美96一区二区免费视频| 国产精品入口麻豆原神| 色狠狠综合天天综合综合| 秋霞电影一区二区| 美脚の诱脚舐め脚责91 | 国产成人精品一区二区三区四区 | 色中色一区二区| 色综合久久久久综合体桃花网| 91丨国产丨九色丨pron| 99re66热这里只有精品3直播 | 亚洲成av人片一区二区三区 | 国产剧情在线观看一区二区| 国产伦精品一区二区三区视频青涩| 久久99精品国产91久久来源| 国产一区亚洲一区| av不卡在线观看| 欧美午夜精品久久久| 欧美巨大另类极品videosbest| 日韩一区二区免费视频| 久久精品一区四区| 亚洲精品国产a| 蜜乳av一区二区三区| 国产乱色国产精品免费视频| 99精品久久免费看蜜臀剧情介绍| 在线看国产一区二区| 7777精品伊人久久久大香线蕉超级流畅 | 国产自产2019最新不卡| 成人高清av在线| 欧美日韩极品在线观看一区| 精品国产91久久久久久久妲己| 国产亚洲精品免费| 亚洲一区视频在线| 国产精品123| 在线电影一区二区三区| 国产婷婷色一区二区三区在线| 亚洲摸摸操操av| 黄一区二区三区| 欧美性高清videossexo| 精品国产99国产精品| 亚洲最色的网站| 国产麻豆精品一区二区| 欧美在线观看你懂的| 国产区在线观看成人精品 | caoporn国产精品| 欧美精品在线观看一区二区| 国产精品久久久久久久久晋中| 日本系列欧美系列| 91麻豆123| 国产欧美综合在线| 美国精品在线观看| 欧美日韩视频在线观看一区二区三区 | 欧美精品18+| 中文字幕一区在线观看| 国产精品亚洲一区二区三区妖精| 欧美午夜电影网| 中文字幕视频一区二区三区久| 免费观看一级欧美片| 日本乱码高清不卡字幕| 亚洲欧洲日韩在线| 国产成人精品亚洲日本在线桃色| 日韩一级大片在线观看| 午夜私人影院久久久久| 色94色欧美sute亚洲线路一ni| 国产精品国产三级国产| 国产成人av一区二区三区在线| 日韩欧美综合一区| 日本一不卡视频| 欧美日韩成人综合在线一区二区| 亚洲伦理在线免费看| 97国产精品videossex| 国产精品色哟哟| 成人av在线影院| 国产精品久久三区| 不卡的av网站| 国产精品成人免费| 成人激情校园春色| 国产精品视频观看| av电影在线观看一区| 国产精品天天摸av网| 91一区二区在线| 亚洲精品菠萝久久久久久久| 色视频成人在线观看免| 亚洲综合图片区| 欧美精品一二三区| 理论电影国产精品| 久久久久久麻豆| 99re这里都是精品| 水野朝阳av一区二区三区| 日韩欧美中文字幕精品| 国产一区二区剧情av在线| 国产日韩欧美激情| 在线视频你懂得一区二区三区| 亚洲一区二区欧美| 欧美mv日韩mv国产网站| 粉嫩13p一区二区三区| 亚洲男女毛片无遮挡| 91精品婷婷国产综合久久竹菊| 久久精品国产澳门| 亚洲欧美综合网| 这里只有精品99re| 国产成人免费xxxxxxxx| 亚洲一区在线观看视频| 精品福利二区三区| 一本大道久久精品懂色aⅴ| 亚洲国产欧美另类丝袜| 精品黑人一区二区三区久久| 成人福利视频在线| 免费成人你懂的| 亚洲图片另类小说| 欧美tickling挠脚心丨vk| 99久久精品一区二区| 青草av.久久免费一区| 国产精品色哟哟| 日韩精品在线看片z| 色婷婷av一区二区三区之一色屋| 美女高潮久久久| 亚洲精品乱码久久久久久久久 | 丁香网亚洲国际| 亚洲国产精品久久不卡毛片 | 在线一区二区三区| 国产毛片精品视频| 日日骚欧美日韩| 亚洲欧洲一区二区在线播放| 精品国产免费久久| 欧美伊人久久久久久久久影院| 福利一区二区在线| 极品少妇xxxx偷拍精品少妇| 性欧美大战久久久久久久久| 国产精品护士白丝一区av| 欧美videossexotv100| 欧美三级在线播放| 欧洲av在线精品| 成人91在线观看| 国产宾馆实践打屁股91| 老色鬼精品视频在线观看播放| 亚洲高清一区二区三区| 亚洲精品免费在线观看| 最近日韩中文字幕| 国产精品国产三级国产aⅴ中文 | 粉嫩一区二区三区在线看| 激情图区综合网| 久久精品999| 极品少妇xxxx偷拍精品少妇| 秋霞影院一区二区| 午夜精品久久久久| 亚洲精品日日夜夜| 一区二区三区精品| 一区二区三区不卡视频在线观看| 亚洲视频网在线直播| 亚洲色图.com| 亚洲欧美日韩久久| 一区二区三区在线观看欧美| 亚洲色图欧美激情| 亚洲一区二区在线免费看| 亚洲综合色在线| 午夜免费久久看| 麻豆精品视频在线| 国产一区三区三区| 成人免费视频网站在线观看| av爱爱亚洲一区| 91久久线看在观草草青青| 欧美日韩一区二区三区在线| 欧美写真视频网站| 欧美精品自拍偷拍| 日韩欧美电影在线| 中文子幕无线码一区tr| 亚洲欧美日韩中文播放| 亚洲一级二级三级在线免费观看| 亚洲国产精品久久不卡毛片| 人妖欧美一区二区| 国产一区二区网址| 99国产欧美久久久精品| 欧美专区在线观看一区| 91精品国产品国语在线不卡| 亚洲精品一区二区三区在线观看| 国产精品丝袜一区| 亚洲第一激情av| 国产成人在线看| 在线精品亚洲一区二区不卡| 欧美一二三区在线| 中文字幕精品综合| 五月综合激情网| 国产一区二三区| 欧美色国产精品| 久久网这里都是精品| 亚洲黄色尤物视频| 精品一区二区免费视频| 99久久99精品久久久久久 | 国产·精品毛片| 在线观看一区不卡| 久久一留热品黄| 亚洲午夜久久久久久久久电影院 | 91蜜桃婷婷狠狠久久综合9色| 欧美肥妇bbw| 亚洲男同性视频| 国产在线不卡一卡二卡三卡四卡| 欧美亚日韩国产aⅴ精品中极品| 久久亚洲春色中文字幕久久久| 一区二区三区四区亚洲| 国产69精品久久99不卡|