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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? npc_newnpcman.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 3 頁
字號:
#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"
#include "npc_newnpcman.h"
#include "pet.h"
#define NEWNPCMAN_STANDBY	5000
#define NEWNPCMAN_WAITTIME	150
enum {
	WINDOW_START=1,
	WINDOW_SELECT1,
	WINDOW_SELECT2,
	WINDOW_SELECT3,
	WINDOW_SELECTLOSTPET,
	WINDOW_DEFIND,
	WINDOW_WARP,
	WINDOW_END,

	NPC_PROGRAMEGINEER_START=1,
	NPC_PROGRAMEGINEER_SELECT1,
	NPC_PROGRAMEGINEER_SELECT2,
	NPC_PROGRAMEGINEER_SELECT3,
	NPC_PROGRAMEGINEER_SELECTLOSTPET,
	NPC_PROGRAMEGINEER_DEFIND,
	NPC_PROGRAMEGINEER_END,
};
enum {
	NPC_WORK_CURRENTTIME = CHAR_NPCWORKINT1,
/*
	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,
*/
};
/*
char UserBBIs[12][256]={
	"小矮子",	"賽亞人",	"辮子男孩",	"酷哥",			"熊皮男",	"大個",
	"小矮妹",	"熊皮妹",	"帽子妹",	"短法發(fā)夾妹",	"手套女",	"辣妹" };
char PetBBIs[4][256]={//格魯西斯 貝魯卡 金格薩貝魯 貝魯伊卡
	"格魯西斯-紅虎",	"貝魯卡-綠虎",	"金格薩貝魯-金虎",	"貝魯伊卡-黃虎" };

int PlayerBBI[6*2][4]={
		{ 100000, 100005, 100010, 100015 },	//小矮子
		{ 100025, 100030, 100035, 100020 },	//賽亞人
		{ 100055, 100050, 100045, 100040 },	//辮子男孩
		{ 100060, 100065, 100070, 100075 },	//酷哥
		{ 100095, 100085, 100090, 100080 },	//熊皮男
		{ 100100, 100115, 100110, 100115 },	//大個

		{ 100135, 100120, 100125, 100130 },	//小矮妹
		{ 100145, 100140, 100150, 100155 },	//熊皮妹
		{ 100165, 100170, 100160, 100175 },	//帽子妹
		{ 100190, 100195, 100185, 100180 },	//短發(fā)發(fā)夾妹
		{ 100200, 100210, 100215, 100205 },	//手套女
		{ 100230, 100225, 100220, 100235 }	//辣妹
	};
*/

static int checkPc[48][3];

static void NPC_NewNpcMan_selectWindow( int meindex, int toindex, int num, int flg);

void NPC_reCheckMyPetUnusual( int meindex, int toindex);//檢查寵物異常

BOOL CHECK_ReplacePET( int toindex); //更換寵物
void NPC_reCheckItemPilenum( int meindex, int toindex);//還原鐵槍叁堆疊
BOOL CHECK_ITEMEQUIT( int toindex);//更換靈力鎧
BOOL CHECK_PETBBI( int toindex);//修正寵物圖號

#ifdef _PET_LOSTPET
BOOL NPC_reFindMyLostPet( int meindex, int toindex, char *buf);
BOOL NPC_getLostPetString( int meindex, int toindex);
BOOL NPC_backupLostPetString( int toindex);
static char petstring[7][2048]={"","","","","","",""};
#endif

BOOL NPC_NewNpcManInit( int meindex )
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
		
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("TRANSER_MAN: GetArgStrErr!!");
		return FALSE;
	}

	{
		int i;
		for( i=0; i<48; i++){
			if( i == 0 ){
				checkPc[i][0]=30000;
				checkPc[i][1]=30024;
				checkPc[i][2]=100000;
			}else{
				checkPc[i][0] = checkPc[i-1][0] + 25;
				checkPc[i][1] = checkPc[i-1][1] + 25;
				checkPc[i][2] = checkPc[i-1][2] + 5;
			}
//			print("ANDY checkPc:%d[%d,%d,%d]\n", i, checkPc[i][0], checkPc[i][1],	checkPc[i][2]);
		}
	}
   	CHAR_setInt( meindex, CHAR_WHICHTYPE, CHAR_NEWNPCMAN);
	CHAR_setWorkInt( meindex, NPC_WORK_CURRENTTIME, NowTime.tv_sec);
	return TRUE;
}

void NPC_NewNpcManLoop( int meindex)
{

}

void NPC_NewNpcManTalked( int meindex , int talkerindex , char *msg , int color )
{
	char npcarg[NPC_UTIL_GETARGSTR_BUFSIZE];
	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;
	}
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		print("TRANSER_MAN: GetArgStrErr!!");
		return;
	}
	CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 0);
	if( CHAR_getInt( talkerindex, CHAR_BASEBASEIMAGENUMBER) != 101578 ){
		NPC_NewNpcMan_selectWindow( meindex, talkerindex, WINDOW_SELECT1, 0);
		return;
	}
	NPC_NewNpcMan_selectWindow( meindex, talkerindex, WINDOW_START, 0);
}

static void NPC_NewNpcMan_selectWindow( int meindex, int toindex, int num, int flg)
{
	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(NPC_Util_isFaceToFace( meindex ,toindex , 2) == FALSE) {
		if(NPC_Util_isFaceToChara( toindex, meindex, 1) == FALSE)
			return;
	}

	memset( npcarg, 0, sizeof( npcarg));
	if(NPC_Util_GetArgStr( meindex, npcarg, sizeof(npcarg))==NULL){
		return;
	}

	memset( token, 0, sizeof( token));
	switch( num)	{
	case WINDOW_START:
		if( NPC_Util_GetStrFromStrWithDelim( npcarg, "START_MSG", token, sizeof( token) ) == NULL) {
			return;
		}
		buttontype = WINDOW_BUTTONTYPE_YESNO;
		windowno = NPC_PROGRAMEGINEER_DEFIND;
		break;
	case WINDOW_SELECT1:
		sprintf(token,"              請選擇"
			      "\n             《修正寵物異常》"
				  "\n             《修正寵物圖號》"
			      "\n              《更換靈力鎧》"
#ifdef _PET_LOSTPET
				  "\n             《領(lǐng)回遺失寵物》"
#endif
//				  "\n            《還原鐵槍叁堆疊》"

				  );
		windowtype = WINDOW_MESSAGETYPE_SELECT;
		buttontype = WINDOW_BUTTONTYPE_CANCEL;
		windowno = NPC_PROGRAMEGINEER_SELECT2;
		break;
	case WINDOW_SELECT2:
		switch( flg){
		case 1://修正寵物異常
			NPC_reCheckMyPetUnusual( meindex, toindex);
			CHAR_talkToCli( toindex, -1, "身上寵物檢查完畢!", CHAR_COLORYELLOW);
			return;
			break;
		case 2://修正寵物圖號
			CHECK_PETBBI( toindex);
			return;
			break;
		case 3://更換靈力鎧
			if( CHECK_ITEMEQUIT( toindex) == TRUE ){
				CHAR_talkToCli( toindex, -1, "檢查完畢!", CHAR_COLORYELLOW);
			}
			return;
			break;

		case 4:
#ifdef _PET_LOSTPET
			if( NPC_reFindMyLostPet( meindex, toindex, token) == FALSE ){
				CHAR_talkToCli( toindex, -1, "查無資料!", CHAR_COLORYELLOW);
				return;
			}
			windowtype = WINDOW_MESSAGETYPE_SELECT;
			buttontype = WINDOW_BUTTONTYPE_CANCEL;
			windowno = NPC_PROGRAMEGINEER_SELECTLOSTPET;
#endif
			break;
		case 5: //還原鐵槍叁堆疊
//			NPC_reCheckItemPilenum( meindex, toindex);
			return;
			break;
		}
		break;
/*
	case WINDOW_SELECT3:
			{
				int petnum, petindex;
				petnum = atoi( data)-1;
				if( petnum >= CHAR_MAXPETHAVE || petnum < 0 ) return;
				petindex = CHAR_getCharPet( talker, petsel);
				if( !CHAR_CHECKINDEX(petindex) ) return;
				break;
			}
*/
	case WINDOW_SELECTLOSTPET:
#ifdef _PET_LOSTPET
		{
			int ret, i, ti, ltime, cost;
			Char ch;
			char msgbuf[256];
			char petstring1[2048];

			int havepetelement = CHAR_getCharPetElement( toindex);
			ti = flg;
			if( havepetelement < 0 ){
				CHAR_talkToCli( toindex, -1, "寵物欄位已滿!", CHAR_COLORYELLOW);
				return;
			}
			if( NPC_getLostPetString( meindex, toindex) == FALSE ) {
				CHAR_talkToCli( toindex, -1, "領(lǐng)取寵物失敗!", CHAR_COLORYELLOW);
				return;
			}

			if( getStringFromIndexWithDelim( petstring[ti-1], "#", 2, petstring1, sizeof( petstring1)) == FALSE ){
				CHAR_talkToCli( toindex, -1, "領(lǐng)取寵物失敗!", CHAR_COLORYELLOW);
				return;	
			}else{
				char buf1[256];
				if( getStringFromIndexWithDelim( petstring[ti-1], "|", 6, buf1, sizeof( buf1)) == FALSE ) return;
					ltime = atoi(buf1);
					ltime = time( NULL) - ltime;
					ltime = ltime/(60*60*24);
				if( getStringFromIndexWithDelim( petstring[ti-1], "|", 4, buf1, sizeof( buf1)) == FALSE ) return;
					cost = atoi( buf1);
#if 0	// 修正保釋金
				cost = cost + (ltime*100);
				cost = (cost>10000)?10000:cost;
#else
				cost = cost + (ltime*10000);
#endif
				if( CHAR_getInt( toindex, CHAR_GOLD) < cost ) {
					sprintf( buf1, "寵物已寄放%d天,共需%d石幣才可領(lǐng)回。", ltime, cost);
					CHAR_talkToCli( toindex, meindex, buf1, CHAR_COLORYELLOW);
					return;	
				}
			}


			ret = CHAR_makePetFromStringToArg( petstring1, &ch, -2);
			strcpy( petstring[ti-1], "");
			if( ret ) {
				char buf1[256];
				int petindex = PET_initCharOneArray( &ch );
				if( !CHAR_CHECKINDEX( petindex) ){
					CHAR_talkToCli( toindex, -1, "領(lǐng)取寵物失敗!", CHAR_COLORYELLOW);
					return;
				}
				print("ANDY petindex:%d[%s]\n", petindex, CHAR_getChar( petindex, CHAR_NAME) );

				CHAR_complianceParameter( petindex );
				CHAR_setInt( petindex, CHAR_HP, CHAR_getWorkInt( petindex, CHAR_WORKMAXHP));
				CHAR_setWorkInt( petindex, CHAR_WORKPLAYERINDEX, toindex);
				CHAR_setCharPet( toindex, havepetelement, petindex);
				CHAR_setChar( petindex, CHAR_OWNERCDKEY,
							CHAR_getChar( toindex, CHAR_CDKEY));
				CHAR_setChar( petindex, CHAR_OWNERCHARANAME,
							CHAR_getChar( toindex, CHAR_NAME));

				if( NPC_backupLostPetString( toindex) == FALSE ){
					print("ANDY err backup petstring !!\n");
					return;
				}
				
				sprintf( buf1, "LostPGet:%d", cost);
				LogPet(
					CHAR_getChar( toindex, CHAR_NAME ),
					CHAR_getChar( toindex, CHAR_CDKEY ),
					CHAR_getChar( petindex, CHAR_NAME),
					CHAR_getInt( petindex, CHAR_LV),
					buf1,
					CHAR_getInt( toindex,CHAR_FLOOR),
					CHAR_getInt( toindex,CHAR_X ),
					CHAR_getInt( toindex,CHAR_Y ),
					CHAR_getChar( petindex, CHAR_UNIQUECODE)   // shan 2001/12/14
				);
				sprintf( buf1, "領(lǐng)取寵物%s。", CHAR_getUseName( petindex));
				CHAR_talkToCli( toindex, meindex, buf1, CHAR_COLORYELLOW);
				for( i = 0; i < CHAR_MAXPETHAVE; i++){
					int petindex = CHAR_getCharPet( toindex, i);
					if( !CHAR_CHECKINDEX( petindex) )
						continue;
					CHAR_complianceParameter( petindex );
					snprintf( msgbuf, sizeof( msgbuf ), "K%d", i );
					CHAR_sendStatusString( toindex, msgbuf );
					snprintf( msgbuf, sizeof( msgbuf ), "W%d", i );
					CHAR_sendStatusString( toindex, msgbuf );
				}
				CHAR_DelGold( toindex, cost);
			}else{
					CHAR_talkToCli( toindex, -1, "領(lǐng)取寵物失敗!", CHAR_COLORYELLOW);
					return;
			}
			return;
 		}
#endif
		return;
		break;
	case WINDOW_DEFIND:
		{
			int i;
			int face = CHAR_getInt( toindex, CHAR_FACEIMAGENUMBER);
			if( NPC_Util_GetStrFromStrWithDelim( npcarg, "CHECK_MSG", token, sizeof( token) ) == NULL) {
				return;
			}
			for( i=0; i<48; i++){
				if( face >= checkPc[i][0] && face < checkPc[i][1] )
					break;
			}
			if( i >= 48 )return;
			CHAR_setWorkInt( toindex, CHAR_WORKNPCMETAMO, meindex);
			CHAR_setInt( toindex, CHAR_BASEIMAGENUMBER, checkPc[i][2]);
			CHAR_complianceParameter( toindex );
			CHAR_sendCToArroundCharacter( CHAR_getWorkInt( toindex , CHAR_WORKOBJINDEX ));
			CHAR_send_P_StatusString( toindex , CHAR_P_STRING_BASEBASEIMAGENUMBER);

			buttontype = WINDOW_BUTTONTYPE_YESNO;
			windowno = NPC_PROGRAMEGINEER_END;
		}
		break;
	case WINDOW_END:
		{
			CHAR_setWorkInt( toindex, CHAR_WORKNPCMETAMO, -1);
			CHAR_setInt( toindex, CHAR_BASEBASEIMAGENUMBER,
				CHAR_getInt( toindex, CHAR_BASEIMAGENUMBER) );

			CHAR_complianceParameter( toindex );
			CHAR_sendCToArroundCharacter( CHAR_getWorkInt( toindex , CHAR_WORKOBJINDEX ));
			CHAR_send_P_StatusString( toindex , CHAR_P_STRING_BASEBASEIMAGENUMBER);
			return;
		}
		break;
	}

	lssproto_WN_send( fd, windowtype, buttontype, windowno,
		CHAR_getWorkInt( meindex, CHAR_WORKOBJINDEX), token);
}

void NPC_NewNpcManWindowTalked( 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_CANCEL || select == WINDOW_BUTTONTYPE_NO){
		CHAR_setWorkInt( talkerindex, CHAR_WORKSHOPRELEVANT, 0);
		CHAR_setWorkInt( talkerindex, CHAR_WORKNPCMETAMO, -1);
		return;
	}
	switch( seqno)	{
	case NPC_TRANSERMAN_START:
		break;

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲精品资源在线26u| 精品久久久久久久一区二区蜜臀| 亚洲一级二级三级在线免费观看| 91国产免费观看| 蜜桃精品在线观看| 亚洲色图视频网| 91精品国产福利| av综合在线播放| 日韩电影网1区2区| 久久麻豆一区二区| 欧美性大战xxxxx久久久| 国产一区二区影院| 亚洲愉拍自拍另类高清精品| 欧美精品一区二区三区很污很色的 | 国产精品视频在线看| 555www色欧美视频| av在线不卡网| 国产一级精品在线| 亚洲国产日韩一区二区| 日韩一本二本av| 在线观看一区不卡| 国产成人免费网站| 美女在线一区二区| 亚洲激情图片小说视频| 久久久久久久av麻豆果冻| 欧美三区在线视频| 91网站在线播放| 国产精品一品视频| 精品一区二区三区免费毛片爱| 亚洲精品国产精华液| 国产偷国产偷亚洲高清人白洁| 777奇米四色成人影色区| 99精品国产热久久91蜜凸| 韩国精品久久久| 日本欧美一区二区三区乱码| 亚洲最大成人综合| 中文字幕欧美日韩一区| 日韩欧美中文字幕公布| 欧美日韩成人综合| 91高清视频在线| 不卡的av电影| 高清在线观看日韩| 国产一区二区三区最好精华液| 亚洲.国产.中文慕字在线| 亚洲美女区一区| 国产精品久久一级| 亚洲国产精品成人久久综合一区| 精品免费99久久| 欧美偷拍一区二区| 国产jizzjizz一区二区| 国产风韵犹存在线视精品| 精品在线亚洲视频| 另类专区欧美蜜桃臀第一页| 奇米精品一区二区三区在线观看 | 欧美久久久影院| 欧美亚洲免费在线一区| 欧美主播一区二区三区美女| 欧美婷婷六月丁香综合色| 91精品91久久久中77777| 91亚洲资源网| 色天天综合久久久久综合片| 91亚洲精品久久久蜜桃| 91在线小视频| 在线观看日韩精品| 91 com成人网| 精品日韩在线观看| 欧美激情一区二区三区在线| 国产精品嫩草99a| 亚洲欧洲综合另类| 亚洲一区中文日韩| 蜜臀av性久久久久蜜臀aⅴ流畅| 丝袜亚洲另类丝袜在线| 五月天亚洲精品| 亚洲影视在线播放| 蜜桃视频在线观看一区二区| 激情小说欧美图片| 成人午夜私人影院| 色综合天天天天做夜夜夜夜做| 91国产成人在线| 欧美一级一级性生活免费录像| 精品国产电影一区二区| 中文av字幕一区| 亚洲天堂成人网| 亚洲一区二区三区三| 日韩av中文字幕一区二区三区| 久久成人麻豆午夜电影| 国产91综合网| 欧美视频一区二区在线观看| 日韩视频一区二区在线观看| 国产日韩视频一区二区三区| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲人一二三区| 午夜久久久久久久久久一区二区| 精品一区二区在线播放| 99精品视频一区二区三区| 欧美色爱综合网| 久久精品综合网| 亚洲欧美激情插| 蜜桃精品在线观看| 91影视在线播放| 日韩欧美一级片| 国产精品午夜免费| 依依成人精品视频| 精品午夜一区二区三区在线观看| 成人免费观看视频| 欧美久久高跟鞋激| 中文成人综合网| 美女www一区二区| 色综合久久精品| 久久久综合视频| 一区二区三区在线免费| 毛片基地黄久久久久久天堂| 91视频国产资源| 精品成人a区在线观看| 亚洲精品乱码久久久久久日本蜜臀| 日韩和欧美一区二区| 波多野结衣中文字幕一区二区三区| 91精品婷婷国产综合久久| 中文字幕av一区二区三区高| 亚洲国产精品麻豆| 99精品国产99久久久久久白柏| 欧美大片拔萝卜| 亚洲一区二区三区四区在线观看| 国产精品亚洲一区二区三区妖精| 5566中文字幕一区二区电影 | 精品蜜桃在线看| 亚洲一区二区美女| 91日韩在线专区| 国产日本一区二区| 韩国av一区二区三区| 欧美一级视频精品观看| 一区二区免费在线| av网站一区二区三区| 久久久久久久久久久99999| 日本女人一区二区三区| 国产一区二区三区免费在线观看| 91精品国产乱码久久蜜臀| 亚洲午夜精品17c| 91小视频在线| 国产精品久久久久影院| 国产精品羞羞答答xxdd| 久久综合色婷婷| 极品尤物av久久免费看| 在线成人av网站| 亚洲二区在线观看| 色婷婷狠狠综合| 一区二区三区高清| 91久久精品日日躁夜夜躁欧美| 国产精品传媒入口麻豆| 成人白浆超碰人人人人| 中文字幕乱码久久午夜不卡| 99久久精品免费看| 性感美女久久精品| 精品剧情在线观看| 成人激情免费视频| 夜夜嗨av一区二区三区四季av | 欧美日韩在线亚洲一区蜜芽| 午夜伊人狠狠久久| 2021中文字幕一区亚洲| 不卡区在线中文字幕| 亚洲第一久久影院| 久久综合中文字幕| 91网站视频在线观看| 日韩国产一区二| 国产欧美精品区一区二区三区| 一本色道久久综合亚洲精品按摩| 首页亚洲欧美制服丝腿| 久久久亚洲精品一区二区三区| 91看片淫黄大片一级| 奇米888四色在线精品| 国产欧美日韩视频一区二区| 欧洲av一区二区嗯嗯嗯啊| 久久不见久久见中文字幕免费| 国产精品丝袜91| 91精品国产综合久久精品麻豆| 国产精品18久久久久久久久久久久| 亚洲天堂2016| 欧美精品一区二区三区蜜桃视频| 97se亚洲国产综合在线| 日韩精品高清不卡| 国产精品全国免费观看高清| 欧美精品丝袜中出| 不卡的av在线播放| 久久精品国产999大香线蕉| 中文字幕在线观看一区| 欧美一级精品大片| 91一区二区三区在线观看| 久久99国产精品成人| 亚洲午夜影视影院在线观看| 国产日韩亚洲欧美综合| 欧美老肥妇做.爰bbww视频| 成人a区在线观看| 久久不见久久见中文字幕免费| 一区二区三区国产豹纹内裤在线| 久久久亚洲午夜电影| 欧美一区在线视频| 在线视频中文字幕一区二区| 成人午夜电影网站| 久草这里只有精品视频| 亚洲成人综合在线|