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

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

?? npc_petfusion.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
字號:
#include "version.h"
#include <string.h>
#include "char.h"
#include "object.h"
#include "char_base.h"
#include "char_data.h"
#include "npcutil.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_eventaction.h"
#include "npc_petfusion.h"
#include "pet.h"
#include "chatmagic.h"


#ifdef _NPC_FUSION

enum {
	WINDOW_START=10,
	WINDOW_SELECT,
	WINDOW_FUSION,
	WINDOW_WARP,	//跳躍
	WINDOW_END,		//結束

	WINDOW_TALKSTART=20,
	WINDOW_TALKSELECT,
	WINDOW_RETURN,
	WINDOW_TALKEND,
};
enum {
	NPC_WORK_CURRENTTIME = CHAR_NPCWORKINT1,
/*
	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,
*/
};

static void NPC_PetFusion_selectWindow( int meindex, int toindex, int num,int select);
BOOL NPC_DoPetFusion( int meindex, int toindex, char *data, int sizes);


BOOL NPC_PetFusionManInit( int meindex )
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("err NPC_PetFusionManInit: GetArgStrErr!!");
		return FALSE;
	}
   	CHAR_setInt( meindex, CHAR_WHICHTYPE, CHAR_PETFUSIONMAN);
	//CHAR_setInt( meindex, CHAR_LOOPINTERVAL, MAKEPAIR_STANDBY);
	//CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
	//CHAR_setWorkInt( meindex, NPC_WORK_PAIRTEAMS, 0);
	return TRUE;
}
void NPC_PetFusionManTalked( 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, "無法服務攜帶貨物的人!", CHAR_COLORYELLOW);
		return;
	}
#endif

	CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, WINDOW_START);
	NPC_PetFusion_selectWindow( meindex, talkerindex, WINDOW_START, 0);
}

static void NPC_PetFusion_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:
		if( NPC_Util_GetStrFromStrWithDelim( npcarg, "StartMsg", token, sizeof( token) ) == NULL){
			return;
		}
		buttontype = WINDOW_BUTTONTYPE_YESNO;
		windowno = WINDOW_TALKSTART;
		break;
	case WINDOW_SELECT:
		if( ActionNpc_CheckFree( meindex, toindex, npcarg) == FALSE )	{
			buttontype = WINDOW_BUTTONTYPE_OK;
			windowno = WINDOW_TALKEND;
		}else	{
			if( NPC_Util_GetStrFromStrWithDelim( npcarg, "SelectMsg", token, sizeof( token) ) == NULL){
				return;
			}
			windowtype = WINDOWS_MESSAGETYPE_PETFUSION;
			buttontype = WINDOW_BUTTONTYPE_YESNO;
			windowno = WINDOW_TALKSELECT;
		}
		break;
	case WINDOW_FUSION:
		//融合處理
		break;
	case WINDOW_WARP:
		break;
	case WINDOW_END:
		break;
	}
	CHAR_setWorkInt( toindex, CHAR_WORKSHOPRELEVANT, windowno);
	lssproto_WN_send( fd, windowtype, buttontype, windowno,
		CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), token);
}
void NPC_PetFusionManWindowTalked( 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;
	if( select == WINDOW_BUTTONTYPE_NO || select == WINDOW_BUTTONTYPE_CANCEL ){
		CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 0);
		return;
	}
	if( CHAR_getWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT) != seqno )
		return;
	memset( npcarg, 0, sizeof( npcarg));
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("err NPC_MakePairMan: GetArgStrErr!!");
		return;
	}
	if( CHAR_getWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT) != seqno )
		return;

	switch( seqno)	{
	case WINDOW_TALKSTART:
		NPC_PetFusion_selectWindow( meindex, talkerindex, WINDOW_SELECT, 0);
		break;
	case WINDOW_TALKSELECT:
		{
			if( NPC_DoPetFusion( meindex, talkerindex, data, sizeof( data)) == FALSE )
				return;
			return;
			NPC_PetFusion_selectWindow( meindex, talkerindex, WINDOW_FUSION, 0);
		}
		break;
	case WINDOW_RETURN:
		break;
	case WINDOW_TALKEND:
		break;
	}
}

void NPC_PetFusionManLoop( int meindex)
{
}

BOOL NPC_DoPetFusion( int meindex, int toindex, char *data, int sizes)
{
	char buf[256];
	int i, flg, MainIndex=-1, Subindex1=-1, Subindex2=-1;
	int work[4], skill1[7], skill2[7];
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];

	memset( buf, 0, sizeof( buf));
	sprintf( buf, "%s", data);
	if( !CHAR_CHECKINDEX( meindex) ) return FALSE;
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("err NPC_MakePairMan: GetArgStrErr!!");
		return FALSE;
	}	
	for( i=0; i<CHAR_MAXPETSKILLHAVE; i++)	{
		skill1[i] = -1;
		skill2[i] = -1;
	}

	if( PETFUSION_getIndexForChar( toindex, &MainIndex, &Subindex1, &Subindex2, buf) == FALSE ){
		CHAR_talkToCli( toindex, -1, "寵物融合失敗!", CHAR_COLORYELLOW);
		return FALSE;
	}
	if( (flg=PETFUSION_FusionPetSub( toindex, Subindex1, Subindex2, work, skill2)) == 0 ){
		CHAR_talkToCli( toindex, -1, "寵物融合失敗!", CHAR_COLORYELLOW);
		return FALSE;
	}

	for( i=0; i<4; i++)	{
		work[i] = work[i]/flg;
		work[i] = work[i] * 0.4;
	}

	if( PETFUSION_FusionPetMain( toindex, MainIndex, work, skill1) == FALSE )	{
		CHAR_talkToCli( toindex, -1, "寵物融合失敗!", CHAR_COLORYELLOW);
		return FALSE;
	}else	{
		int Eggindex=-1, petNo=0, petID, newpetindex=-1;
		char buf1[256];
		int PetCode=-1;
		flg++;
		if( (PetCode = NPC_getFusionTableForBase( toindex, MainIndex, Subindex1 )) < 0 ){
			CHAR_talkToCli( toindex, -1, "寵物融合失敗!", CHAR_COLORYELLOW);
			return FALSE;
		}
		petNo = NPC_getPetArrayForNo( PetCode);


		if( PETFUSION_DelPet( toindex, MainIndex, Subindex1, Subindex2, flg) == FALSE ){
			return FALSE;
		}
		if( NPC_Util_GetStrFromStrWithDelim( npcarg, "ADDEGGID", buf1, sizeof( buf1) ) == NULL){
			return FALSE;
		}
		petID = atoi( buf1);
		if( (Eggindex = PETFUSION_AddEgg( toindex, petID, PetCode)) < 0 ){
			return FALSE;
		}

		newpetindex = PETFUSION_SetNewEgg( toindex, Eggindex, petNo, work, skill1, skill2);
		if( !CHAR_CHECKINDEX( newpetindex)){
			print("ANDY err newpetindex=%d\n", newpetindex);
			return FALSE;
		}
		snprintf( buf1, sizeof( buf1 ), "W%d",petNo);
		CHAR_sendStatusString( toindex, buf1 );
		CHAR_sendStatusString( toindex, "P");
	}

	return TRUE;
}

#endif



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美r级电影在线观看| 色婷婷综合激情| 日日夜夜精品视频天天综合网| 日本一区二区免费在线| 精品久久久久久久人人人人传媒| 91精品婷婷国产综合久久竹菊| 欧美日韩的一区二区| 欧美色图免费看| 555www色欧美视频| 欧美一级在线视频| 久久在线免费观看| 国产喂奶挤奶一区二区三区| 欧美激情资源网| 亚洲码国产岛国毛片在线| 伊人色综合久久天天| 偷拍自拍另类欧美| 免费看欧美美女黄的网站| 精品一区二区三区免费观看| 高清在线观看日韩| 9人人澡人人爽人人精品| 99国产精品一区| 欧美日韩综合一区| 欧美va在线播放| 综合中文字幕亚洲| 天堂成人国产精品一区| 国产尤物一区二区| 日本久久精品电影| 日韩免费观看高清完整版| 国产色婷婷亚洲99精品小说| 亚洲精品视频在线| 麻豆成人免费电影| k8久久久一区二区三区| 欧美男男青年gay1069videost | 亚洲高清久久久| 麻豆成人在线观看| 色屁屁一区二区| 久久久久久久性| 亚洲成人av一区| 国产91精品久久久久久久网曝门| 在线看一区二区| 久久久国产精品不卡| 亚洲国产中文字幕在线视频综合| 国内精品国产成人国产三级粉色| 91网站黄www| 2023国产精品| 美腿丝袜一区二区三区| 91看片淫黄大片一级| 亚洲精品一区二区在线观看| 亚洲一区二区三区中文字幕在线| 国内精品在线播放| 欧美美女喷水视频| 亚洲视频一区二区在线观看| 国产一区二区三区| 91麻豆精品国产综合久久久久久| 中文字幕日韩精品一区| 国内精品视频一区二区三区八戒| 欧美吻胸吃奶大尺度电影| 国产精品乱子久久久久| 国产在线视视频有精品| 欧美精品在线观看一区二区| 亚洲欧洲av在线| 国产91精品在线观看| 精品第一国产综合精品aⅴ| 日本最新不卡在线| 欧美日韩不卡一区二区| 亚洲成a人v欧美综合天堂| 在线精品视频小说1| 亚洲欧美国产三级| 在线亚洲人成电影网站色www| 国产精品欧美极品| 成人丝袜18视频在线观看| 久久亚洲免费视频| 国内精品视频一区二区三区八戒| 日韩欧美二区三区| 美女www一区二区| 日韩免费一区二区三区在线播放| 免费在线欧美视频| 欧美一区二区视频在线观看| 香蕉av福利精品导航| 欧美日韩日日摸| 日本成人在线看| 26uuu国产电影一区二区| 久久99精品一区二区三区三区| 日韩精品在线一区二区| 激情文学综合插| 久久精品视频网| 99v久久综合狠狠综合久久| 国产精品黄色在线观看| 色视频一区二区| 日韩电影在线一区| 精品对白一区国产伦| 国产aⅴ综合色| 亚洲最色的网站| 7777精品伊人久久久大香线蕉| 久久机这里只有精品| 精品国产髙清在线看国产毛片| 国产精品一区二区不卡| 中文字幕一区二区三区在线观看 | 九九精品一区二区| 国产欧美精品国产国产专区| 91尤物视频在线观看| 亚洲午夜免费电影| 精品入口麻豆88视频| 极品少妇xxxx精品少妇| 国产精品色婷婷久久58| 欧洲av在线精品| 国产一区二区三区香蕉| ...av二区三区久久精品| 欧美三级视频在线观看| 久久 天天综合| 一区二区三国产精华液| 亚洲精品在线观看视频| 91电影在线观看| 国精产品一区一区三区mba视频| 亚洲天堂精品在线观看| 欧美一级片在线看| 99re这里只有精品视频首页| 丝袜a∨在线一区二区三区不卡| 国产日韩影视精品| 精品视频1区2区3区| 国产成人鲁色资源国产91色综| 亚洲香肠在线观看| 国产精品久久久久毛片软件| 日韩欧美激情在线| 在线观看区一区二| heyzo一本久久综合| 久久机这里只有精品| 亚洲精品国产a| 欧美精彩视频一区二区三区| 欧美一级一级性生活免费录像| 色综合久久天天综合网| 国产伦精一区二区三区| 日韩黄色片在线观看| 亚洲欧美另类小说视频| 国产欧美日韩在线视频| 欧美xxxxxxxxx| 日韩一区二区三区视频在线观看 | 亚洲成a人v欧美综合天堂| 欧美激情中文字幕一区二区| 久久久综合视频| 在线不卡免费欧美| 欧美亚洲国产一区二区三区va | 91.xcao| 91在线精品一区二区| 国产一区二区看久久| 蜜臀av性久久久久蜜臀aⅴ| 五月婷婷激情综合| 亚洲一二三四区不卡| 亚洲裸体在线观看| 亚洲视频一区二区在线| 亚洲你懂的在线视频| 亚洲人成网站影音先锋播放| 亚洲欧洲国产日本综合| 综合色中文字幕| 一级做a爱片久久| 夜夜嗨av一区二区三区四季av | 精品国产a毛片| 亚洲精品一区二区三区香蕉| 欧美白人最猛性xxxxx69交| 欧美va亚洲va| 国产午夜精品一区二区三区嫩草 | 亚洲精品久久久蜜桃| 日韩伦理av电影| 亚洲综合清纯丝袜自拍| 亚洲综合成人在线| 日本va欧美va精品发布| 国产一区二区三区在线看麻豆| 国产一区欧美一区| youjizz国产精品| 欧洲另类一二三四区| 91精品国产综合久久精品性色| 欧美成人官网二区| 国产精品每日更新在线播放网址 | 69堂国产成人免费视频| 欧美大片免费久久精品三p| 久久久久久久电影| 亚洲精品欧美综合四区| 蜜臀av一区二区在线观看| 国产馆精品极品| 在线精品视频一区二区| 日韩欧美国产综合| 国产精品白丝在线| 日韩精品免费视频人成| 国产精品亚洲人在线观看| 色综合久久久久久久久久久| 国产乱一区二区| 久88久久88久久久| 国产99精品在线观看| 99热99精品| 日韩欧美亚洲国产精品字幕久久久| 日韩一卡二卡三卡四卡| 国产亚洲欧美激情| 日韩精品免费专区| 国产成a人亚洲| 在线免费观看一区| 中文字幕第一页久久| 亚洲精品乱码久久久久| 强制捆绑调教一区二区| 91成人免费网站| 精品国产91久久久久久久妲己|