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

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

?? npc_mtradenpcman.c

?? 石器時代8.0服務端完整源代碼。可以直接編譯
?? C
字號:
#include "version.h"
#include <string.h>
#include <math.h>
#include "char.h"
#include "object.h"
#include "char_base.h"
#include "npcutil.h"
#include "lssproto_serv.h"
#include "enemy.h"
#include "log.h"
#include "battle.h"
#include "readmap.h"
#include "handletime.h"
#include "npc_eventaction.h"

#ifdef _MARKET_TRADE
#include "npc_mtradenpcman.h"
#include "item_trade.h"

#define MAPTRADE_CHECK	3000
#define MAPTRADE_CHECKMASTER 100
#define MAPTRADE_CHECKSELL 200

enum	{
	MAPTRADE_START = 1,
	MAPTRADE_MAN,
	MAPTRADE_END,
};
enum {
	NPC_WORK_INDEX = CHAR_NPCWORKINT1,
	NPC_WORK_WORKTYPE = CHAR_NPCWORKINT2,
	NPC_WORK_CURRENTTIME = CHAR_NPCWORKINT3,
	NPC_WORK_SELLINDEX = CHAR_NPCWORKINT4,
/*
	NPC_WORK_ROUTETOY = 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,
*/
};

static void NPC_MapTrade_selectWindow( int meindex, int toindex, int num,int select);

BOOL MapTradeManInit( int meindex )
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];

	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg)) == NULL)	{
		print("MapTradeManInit: GetArgStrErr");
		return FALSE;
	}
    CHAR_setInt( meindex , CHAR_WHICHTYPE , CHAR_MAPTRADEMAN );
	CHAR_setInt( meindex, CHAR_LOOPINTERVAL, MAPTRADE_CHECK);

	CHAR_setWorkInt( meindex, NPC_WORK_SELLINDEX, 0 );
	CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
	CHAR_setWorkInt( meindex, NPC_WORK_INDEX, TRADE_getMaxNumInt());
	InitMapTradeData( -1, 0);	//初始攤位資料
	return TRUE;
}

void MapTradeManLoop( int meindex)
{
	int masterindex=-1, i;
	int maxNum = TRADE_getMaxNumInt();
	int nums=0;

	if( CHAR_getWorkInt( meindex, NPC_WORK_CURRENTTIME) > NowTime.tv_sec)
		return;
	else
		CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec+MAPTRADE_CHECKMASTER);

	for( i=0; i<maxNum; i++)	{
		masterindex = TRADE_getMasterInt( i);
		if( masterindex == -1 )	continue;
		if( !CHAR_CHECKINDEX( masterindex) || 
			CHAR_getInt( masterindex, CHAR_FLOOR) != TRADEMAP ||
			CHAR_getWorkInt( masterindex, CHAR_MAPTRADETYPE) != (i+TRADESTARTNUM)	)	{
			TRADE_setMasterInt( i, -1);
			TRADE_setTimeInt( i, 0);
			MAPTRADE_setSellIndex( i, -1);
			MAPTRADE_setCharSellName( i, "NULL");
			MAPTRADE_CLEANGOLD( TRADEMAP, i);
		}else	{
			//showString( int meindex, char *showstr, 0);
			nums++;
		}
	}//MAPTRADE_getSellIndex
	{
		char buf1[256], *buf2;
		i = CHAR_getWorkInt( meindex, NPC_WORK_SELLINDEX);
		CHAR_setWorkInt( meindex, NPC_WORK_SELLINDEX, (i+1)%maxNum);
		masterindex = TRADE_getMasterInt( i);
		if( !CHAR_CHECKINDEX( masterindex))
			return;
		buf2 = MAPTRADE_getCharSellName( i);
		if( buf2 == NULL || !strcmp( buf2, "NULL"))
			return;
		sprintf( buf1, "%d號販賣%s", i+TRADESTARTNUM, buf2);
		showString( meindex, buf1, 0);
	}
/*
	i = CHAR_getWorkInt( meindex, NPC_WORK_SELLINDEX);
	masterindex = TRADE_getMasterInt( i);
	if( !CHAR_CHECKINDEX( masterindex))
		return;
	{
		char *Goodname;
		int sellindex=-1, objindex;
		sellindex = MAPTRADE_getSellIndex( i);
		objindex = CHAR_getWorkInt( sellindex, CHAR_WORKOBJINDEX);
		if (OBJECT_getType( objindex) == OBJTYPE_CHARA) {
			if( CHAR_getInt( sellindex, CHAR_WHICHTYPE) == CHAR_TYPEPET )	{
				CHAR_getChar(
			}
		}
	}
*/
}

void MapTradeManTalked( 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;
	}
	CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, MAPTRADE_START);
	NPC_MapTrade_selectWindow( meindex, talkerindex, MAPTRADE_START, -1);
}

void NPC_MapTrade_selectWindow( int meindex, int toindex, int num,int select)
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	char token[256];
	char message[][256]={ "STARTMSG", "YESMSG", "NOMSG", "ENDMSG", "NOTHING"};
	int Msg_Type=4;
	int fd = getfdFromCharaIndex( toindex );
	int buttontype = 0, windowtype = 0, windowno = 0;
	windowtype = WINDOW_MESSAGETYPE_MESSAGE;

	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg)) == NULL)	{
		print("MapTradeManInit: GetArgStrErr");
		return;
	}
	memset( token, 0, sizeof( token));
	switch( num)	{
	case MAPTRADE_START:	//1
		Msg_Type = 0;
		CHAR_setWorkInt( toindex, CHAR_WORKSHOPRELEVANT, MAPTRADE_MAN);
		buttontype = WINDOW_BUTTONTYPE_YESNO;
		windowno = MAPTRADE_MAN;
		break;
	case MAPTRADE_MAN:
		Msg_Type = 3;
		if( select == WINDOW_BUTTONTYPE_YES )	{
			int num;
			Msg_Type = 2;
			if( CHAR_getWorkInt( toindex, CHAR_MAPTRADETYPE) > 0 )	{
				sprintf(token , "你已經承租了%d號攤位了呀!",
					CHAR_getWorkInt( toindex, CHAR_MAPTRADETYPE));
			}else	if( (num = TRADE_AddMasrerTrade( toindex)) != -1 )	{
				CHAR_setWorkInt( toindex, CHAR_MAPTRADETYPE, num);
				sprintf(token , "好了,%d號攤位暫時就租給你了。\n一旦下線離開後這攤位就必須歸還了。", num);
				//CHAR_talkToCli( i, -1, buff, CHAR_COLORYELLOW);
				Msg_Type = 1;
			}
		}
		CHAR_setWorkInt( toindex, CHAR_WORKSHOPRELEVANT, MAPTRADE_END);
		buttontype = WINDOW_BUTTONTYPE_YES;
		windowno = MAPTRADE_END;
		break;
	case MAPTRADE_END:
		Msg_Type = 3;
		buttontype = WINDOW_BUTTONTYPE_YES;
		windowno = MAPTRADE_END;
		break;
	}
	if( !strcmp( token, "\0"))	{
		if( NPC_Util_GetStrFromStrWithDelim( npcarg, message[Msg_Type], token, sizeof( token)) == NULL )
			return;
	}
	//送訊息給 CLI						
	lssproto_WN_send( fd, windowtype, buttontype, windowno,
			CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), token	);																				
}

void MapTradeManWindowTalked( int meindex, int talkerindex, int seqno, int select, char *data)
{

	if(NPC_Util_isFaceToFace( meindex ,talkerindex , 2) == FALSE) {
		if(NPC_Util_isFaceToChara( talkerindex, meindex, 1) == FALSE) return;
	}

	if( select != WINDOW_BUTTONTYPE_YES )	{
		CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 0);
		return;
	}

	switch( seqno)	{
	case MAPTRADE_MAN:
		if( CHAR_getWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT) != MAPTRADE_MAN )	{
			CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 0);
			return;
		}
		if( CHAR_getInt( talkerindex, CHAR_MAPTRADETYPE) > 0 )	{
			char buf1[256];
			CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 0);

			sprintf( buf1, "你已經是%d號攤位的主人了呀!", CHAR_getInt( talkerindex, CHAR_MAPTRADETYPE));
			CHAR_talkToCli( talkerindex, -1, buf1, CHAR_COLORYELLOW);
			return;
		}
		NPC_MapTrade_selectWindow( meindex, talkerindex, MAPTRADE_MAN, select);
		break;
	case MAPTRADE_END:
		CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 0);
		return;
		break;
	}
	return;
}
/*
	while( getStringFromIndexWithDelim(buf1, ",", k, buf2, sizeof(buf2)) != FALSE )	{
		Re_Pet[k-1] = atoi( buf2);
		if( Re_Pet[k-1] < 0 )
			return FALSE;
		k++;
		if( (k-1) >= arraysizeof( Re_Pet) )
			break;
	}
*/
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频免费直播| 欧美日韩黄色一区二区| 六月婷婷色综合| 免费成人结看片| 蜜臀av在线播放一区二区三区| 午夜精品一区二区三区电影天堂| 亚洲无线码一区二区三区| 亚洲午夜精品网| 日本不卡一区二区| 精品一区二区三区欧美| 国产sm精品调教视频网站| 91在线一区二区| 欧美三级视频在线观看| 欧美一区二区三区四区久久| 欧美不卡123| 中文字幕国产一区| 亚洲少妇屁股交4| 亚洲福利视频一区二区| 另类小说图片综合网| 国产iv一区二区三区| 色偷偷成人一区二区三区91| 欧美挠脚心视频网站| 久久看人人爽人人| 亚洲综合色在线| 国产一区二区三区香蕉 | 亚洲成年人网站在线观看| 亚洲成人一二三| 国产制服丝袜一区| 日本精品免费观看高清观看| 4438x成人网最大色成网站| 久久久久国产精品厨房| 亚洲午夜一区二区三区| 国产一区二区三区美女| 欧美手机在线视频| 国产日韩欧美在线一区| 亚洲成人高清在线| 成人av网址在线观看| 日韩一区二区三区视频在线| 一区在线观看视频| 久久99精品一区二区三区三区| 99在线精品一区二区三区| 欧美一区二区久久久| 国产精品传媒视频| 精品一区二区久久久| 色狠狠桃花综合| 国产欧美日韩另类视频免费观看| 爽好久久久欧美精品| 99精品欧美一区二区三区小说| 欧美mv日韩mv国产网站app| 亚洲色图一区二区| 国产福利一区二区三区视频在线| 在线一区二区三区四区| 国产精品少妇自拍| 国产精品性做久久久久久| 欧美美女激情18p| 亚洲三级小视频| 国产成人免费xxxxxxxx| 欧美不卡激情三级在线观看| 亚洲国产日韩综合久久精品| www.成人在线| 国产精品久久久久毛片软件| 国产一区二区久久| 久久日韩粉嫩一区二区三区| 蜜臀久久99精品久久久久久9| 欧美三级中文字幕在线观看| 亚洲激情五月婷婷| 91丨九色porny丨蝌蚪| 中文av字幕一区| 99久久精品国产一区二区三区| 国产欧美一区二区三区在线看蜜臀 | 成人欧美一区二区三区白人| 精彩视频一区二区| 欧美成人女星排名| 精品写真视频在线观看| 日韩欧美一区二区视频| 美女一区二区视频| 日韩午夜激情免费电影| 国产资源在线一区| 国产视频一区二区在线| 成人性视频免费网站| 中文字幕一区二区三区蜜月| 成人av影视在线观看| 亚洲另类春色校园小说| 91久久久免费一区二区| 首页亚洲欧美制服丝腿| 91精品中文字幕一区二区三区| 日本伊人精品一区二区三区观看方式 | 成人激情av网| 亚洲人成小说网站色在线 | 免费看黄色91| 欧美精品一区二区三区蜜桃| 国产成人自拍网| 日韩一区在线免费观看| 欧美体内she精高潮| 久久电影网电视剧免费观看| 久久精品免费在线观看| 色婷婷综合激情| 久久精品国产999大香线蕉| 久久久久久97三级| 欧美色综合网站| 狠狠色丁香久久婷婷综合丁香| 中文字幕第一页久久| 欧美亚洲丝袜传媒另类| 精品无人码麻豆乱码1区2区| 亚洲视频一区在线| 日韩一区二区精品| 成人a区在线观看| 免费在线看成人av| 一色屋精品亚洲香蕉网站| 欧美一区二区视频网站| jlzzjlzz欧美大全| 毛片av一区二区| 亚洲精品乱码久久久久久日本蜜臀| 欧美二区三区91| 99在线精品一区二区三区| 男人的天堂亚洲一区| 亚洲免费大片在线观看| 精品国产一二三| 欧美色综合天天久久综合精品| 国产精一区二区三区| 亚洲国产成人av| 国产精品久线观看视频| 精品国产伦理网| 在线不卡欧美精品一区二区三区| 成人动漫视频在线| 国产麻豆精品在线观看| 水野朝阳av一区二区三区| 一区二区三区日韩欧美精品| 久久久不卡网国产精品二区| 日韩手机在线导航| 欧美探花视频资源| 色噜噜夜夜夜综合网| 成人高清免费观看| 国产剧情一区在线| 日日噜噜夜夜狠狠视频欧美人| 亚洲欧美国产高清| 亚洲视频你懂的| 国产精品护士白丝一区av| 国产亚洲精品aa午夜观看| 日韩欧美在线网站| 欧美一区二区精美| 欧美一区二区三区在| 欧美精三区欧美精三区| 欧美日韩午夜精品| 欧美日韩一级二级| 欧美性大战久久久久久久蜜臀 | 成人动漫一区二区| 国产不卡一区视频| 成人精品国产一区二区4080| 国产成人在线视频网址| 国产一区二区成人久久免费影院 | 91在线视频在线| 不卡视频在线观看| 99这里都是精品| 91精品福利在线| 欧美日韩一区二区三区视频| 欧洲精品一区二区三区在线观看| 欧美自拍偷拍一区| 欧美顶级少妇做爰| 精品精品欲导航| 国产午夜精品一区二区三区视频| 久久人人97超碰com| 国产精品久久久久三级| 亚洲人成亚洲人成在线观看图片| 一区二区三区在线免费播放| 亚洲一区二区三区美女| 日韩成人伦理电影在线观看| 国产一区二区三区蝌蚪| 不卡的电影网站| 欧美日韩在线亚洲一区蜜芽| 日韩欧美aaaaaa| 国产精品乱码一区二区三区软件| 亚洲婷婷综合久久一本伊一区| 亚洲成人777| 国产精品一区一区| 欧美亚洲动漫另类| 日韩一卡二卡三卡| 中文子幕无线码一区tr| 夜夜嗨av一区二区三区中文字幕 | 秋霞影院一区二区| 国产麻豆视频精品| 91福利社在线观看| 久久午夜色播影院免费高清 | 国产自产v一区二区三区c| www.久久精品| 欧美一区二区三区不卡| 中文字幕在线观看不卡视频| 五月天网站亚洲| www.欧美色图| 欧美tk丨vk视频| 亚洲一区二区三区在线看| 国产很黄免费观看久久| 欧美日韩综合色| 国产精品久久久久久妇女6080| 日韩国产一区二| 欧美在线999| 国产拍欧美日韩视频二区| 日韩精品电影在线| 91久久人澡人人添人人爽欧美| 久久精品免视看|