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

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

?? npc_manorsman.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
?? 第 1 頁 / 共 4 頁
字號:
#endif

#ifndef _NEW_MANOR_LAW
	#ifdef _MANOR_PKRULE
		  time_t timep;
		  struct tm *p;		  
		  time(&timep);
		  p = gmtime(&timep);		
		  if( p->tm_hour+8 > 24)
		  	  p->tm_hour = p->tm_hour-16;
		  else
			  p->tm_hour = p->tm_hour+8;		 
		  if(p->tm_hour<18 && p->tm_hour>2){
			  sprintf(buf, "請於下午6:00至凌晨3:00再來約戰吧!");
			  lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
              	    	WINDOW_BUTTONTYPE_OK,
    			        CHAR_WINDOWTYPE_CHECKMAN_END,
    			        CHAR_getWorkInt(meindex, CHAR_WORKOBJINDEX),
    			        buf);
			  break;
		  }		  
	#endif
			// WON ADD 修正家族pk場的約戰問題
			if( fmpks[fmpks_pos+1].flag != FMPKS_FLAG_NONE ){
			     sprintf(buf, "這個莊園已經有人約戰了喔。");
					 lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
						 WINDOW_BUTTONTYPE_OK,
						 CHAR_WINDOWTYPE_CHECKMAN_END,
						 CHAR_getWorkInt(meindex, CHAR_WORKOBJINDEX),
						 buf);
					 return;
			}
#endif
#ifdef _ACFMPK_LIST
	#ifndef _NEW_MANOR_LAW
		NPC_ManorSavePKSchedule(meindex, talkerindex, 0);
		sprintf( buf, "莊園挑戰登陸確認中,請稍後。");
		CHAR_talkToCli( talkerindex, meindex, buf, CHAR_COLORYELLOW);
	#else
		NPC_ManorAddToSchedule(meindex,talkerindex);
	#endif
#else
	    memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1));
        getStringFromIndexWithDelim(fmpointlist.pointlistarray[manorid-1], "|", 6, token, sizeof(token));
        strcpy(hadfmname, token);

        fmpks[fmpks_pos+1].dueltime = CHAR_getWorkInt(meindex, NPC_WORK_CHALLENGEWAIT) + NowTime.tv_sec
                                      - tm1.tm_min*60 + 1800; // Arminius 11.1 改成一律 xx:30 開打
        fmpks[fmpks_pos+1].host_index = hadfmindex-1;
        strcpy(fmpks[fmpks_pos+1].host_name, hadfmname);
        fmpks[fmpks_pos+1].guest_index = tkfmindex;
        strcpy(fmpks[fmpks_pos+1].guest_name, CHAR_getChar(talkerindex, CHAR_FMNAME));        
        fmpks[fmpks_pos+1].prepare_time = 15;
        fmpks[fmpks_pos+1].max_player = 50;
        fmpks[fmpks_pos+1].win = -1;
        fmpks[fmpks_pos+1].flag = FMPKS_FLAG_MANOR_OTHERPLANET;
        strcpy(fmpks[fmpks_pos+2].host_name, getGameserverID());

	#ifndef _NEW_MANOR_LAW
		NPC_ManorSavePKSchedule(meindex, talkerindex, 0);
		sprintf(buf, "莊園挑戰已經設定完成,請好好準備。");
        lssproto_WN_send( fd, WINDOW_MESSAGETYPE_MESSAGE,
              	    	WINDOW_BUTTONTYPE_OK,
    			CHAR_WINDOWTYPE_CHECKMAN_END,
    			CHAR_getWorkInt(meindex, CHAR_WORKOBJINDEX),
    			buf);
	#else
		NPC_ManorAddToSchedule(meindex,talkerindex);
	#endif
    fmpks[fmpks_pos+1].flag = FMPKS_FLAG_MANOR_PREPARE;
#endif
        
      }
    }
    break;
  }
}

void NPC_CleanPkList( int ti)
{
// Terry fix 要清為-1不能清為0
/*	fmpks[ ti+1 ].host_index = 0;
	fmpks[ ti+1].guest_index=0;
	fmpks[ ti].host_index=0;
	fmpks[ ti].guest_index=0;*/
	fmpks[ ti+1 ].host_index = -1;
	fmpks[ ti+1].guest_index=-1;
	fmpks[ ti].host_index=-1;
	fmpks[ ti].guest_index=-1;

	strcpy(fmpks[ ti+1].host_name,"");
	strcpy(fmpks[ ti+1].guest_name,"");
	strcpy(fmpks[ ti].host_name,"");
	strcpy(fmpks[ ti].guest_name,"");
	strcpy(fmpks[ ti+2].host_name,"");
}

void NPC_ManorSmanLoop(int meindex)
{
	struct tm tm1;
	int fmpks_pos;
#ifdef _NEW_MANOR_LAW
	int iOffsetTime;
#endif

	if(CHAR_CHECKINDEX(meindex) == FALSE){
		printf("\nNPC_ManorSmanLoop error!(meindex:%d)",meindex);
		return;
	}

	fmpks_pos = CHAR_getWorkInt(meindex, NPC_WORK_ID)*MAX_SCHEDULE;
  memcpy( &tm1, localtime( (time_t *)&NowTime.tv_sec), sizeof( tm1));

  switch (fmpks[fmpks_pos+1].flag) {
  case FMPKS_FLAG_NONE:
#ifdef _NEW_MANOR_LAW
		{
			int hadfmindex,index,manorid;
			char token[256];
			//此時可以開始挑戰
			manorid = CHAR_getWorkInt(meindex,NPC_WORK_MANORID);
			getStringFromIndexWithDelim(fmpointlist.pointlistarray[manorid-1],"|",5,token,sizeof(token));
			hadfmindex = atoi(token);
			if(hadfmindex != -1){
				for(index=0;index<FAMILY_MAXNUM;index++){
					// 找出守莊家族的索引
					if(fmdptop.fmtopid[index] == (hadfmindex - 1)) break;
				}
				if(index >= FAMILY_MAXNUM){
					getStringFromIndexWithDelim(fmpointlist.pointlistarray[manorid-1],"|",6,token,sizeof(token));
					printf("\nNPC_ManorSmanLoop():save fm_momentum error(%d:%s)",hadfmindex,token);
					break;
				}
				// 記錄這個時刻守莊家族的氣勢
				else fmpointlist.fm_momentum[manorid-1] = fmdptop.fmMomentum[index];
				// 進入下一個狀態
				fmpks[fmpks_pos+1].flag = FMPKS_FLAG_WAIT;
				// 挑戰期共4小時(1800~2200)
				fmpks[fmpks_pos+1].dueltime = NowTime.tv_sec + 3600 * 4;
				NPC_ManorSavePKSchedule(meindex, -1, FMPKS_FLAG_WAIT,fmpks[fmpks_pos+1].dueltime,tm1);
			}
			SortManorSchedule();
		}
#endif    
    break;
#ifdef _NEW_MANOR_LAW
	// 進入挑戰期,已記錄家族氣勢,等待挑戰排程
	case FMPKS_FLAG_WAIT:
		{
			int manorid,i,iPlayerNum = CHAR_getPlayerMaxNum();
			char szMsg[256];

			manorid = CHAR_getWorkInt(meindex,NPC_WORK_MANORID);
			// 還沒開打,氣勢改變要去向AC要即時資料
			fmpointlist.fm_inwar[manorid-1] = TRUE;
			if(fmpks[fmpks_pos+1].dueltime <= NowTime.tv_sec){
				// 挑戰家族中氣勢最高的獲得挑戰權
				int manorindex = CHAR_getWorkInt(meindex,NPC_WORK_MANORID) - 1;
				int iNo1FmIndexSort = ManorSchedule[manorindex].iSort[0];
				int index = ManorSchedule[manorindex].iFmIndex[iNo1FmIndexSort],iFmIndex1,iCharindex;
				char token[256],fmname[256];
				// 沒人挑戰
				if(index < 0){
					// 直接進入到挑戰結束
					fmpks[fmpks_pos+1].flag = FMPKS_FLAG_MANOR_BATTLEEND;
					CHAR_setWorkInt(meindex,NPC_WORK_BETTLETIME,tm1.tm_mday);
					// 通知所有人
					for(i=0;i<iPlayerNum;i++){
						if(CHAR_getCharUse(i) != FALSE){
							CHAR_talkToCli(i,-1,"由於無家族挑戰莊園,莊園進入休戰時期",CHAR_COLORBLUE2);
						}
					}
					getStringFromIndexWithDelim(fmpointlist.pointlistarray[manorid-1],"|",5,token,sizeof(token));
					iFmIndex1 = atoi(token) - 1;
					if(iFmIndex1 != -1){
						getStringFromIndexWithDelim(fmpointlist.pointlistarray[manorid-1],"|",6,fmname,sizeof(token));
						saacproto_ACFixFMPoint_send(acfd,fmname,iFmIndex1 + 1,iFmIndex1,
							fmname,iFmIndex1 + 1,iFmIndex1,CHAR_getWorkInt(meindex,NPC_WORK_ID));
						// 增加莊園戰勝負Log
						sprintf(token," (%d:%d) %d/%d/%d",tm1.tm_hour,tm1.tm_min,tm1.tm_year+1900,tm1.tm_mon+1,tm1.tm_mday);
						Logfmpk(fmname,iFmIndex1,-1,"無人挑戰",-1,-1,token,"","",2);
						// 原家族守住了莊園,家族成員可得到石幣
						for(i=0;i<FAMILY_MAXMEMBER;i++){
							iCharindex = familyMemberIndex[iFmIndex1][i];
							// 若在線上才給錢 
							if(iCharindex >= 0 && CHAR_getCharUse(iCharindex)){
								// 獲得金錢 = 個人氣勢 * 5000
								int iAddGold = ((float)CHAR_getInt(iCharindex,CHAR_MOMENTUM)/100.0f) * 5000.0f;
								int iGold = CHAR_getInt(iCharindex,CHAR_BANKGOLD),iMaxGold;
								// 先放入個人銀行
								if(iGold + iAddGold > CHAR_MAXBANKGOLDHAVE){
									CHAR_setInt(iCharindex,CHAR_BANKGOLD,CHAR_MAXBANKGOLDHAVE);
									// 個人銀行放不下了,放到個人身上
									iAddGold = iGold + iAddGold - CHAR_MAXBANKGOLDHAVE;
									iGold = CHAR_getInt(iCharindex,CHAR_GOLD);
									iMaxGold = CHAR_getMaxHaveGold(iCharindex);
									if(iGold + iAddGold > iMaxGold) CHAR_setInt(iCharindex,CHAR_GOLD,iMaxGold);
									else CHAR_setInt(iCharindex,CHAR_GOLD,iGold + iAddGold);
									LogFMPKGetMomey(CHAR_getChar(iCharindex,CHAR_FMNAME),
																	CHAR_getChar(iCharindex,CHAR_CDKEY),
																	CHAR_getChar(iCharindex,CHAR_NAME),
																	CHAR_getInt(iCharindex,CHAR_MOMENTUM),iAddGold,0);
								}
								else{
									CHAR_setInt(iCharindex,CHAR_BANKGOLD,iGold + iAddGold);
									LogFMPKGetMomey(CHAR_getChar(iCharindex,CHAR_FMNAME),
																	CHAR_getChar(iCharindex,CHAR_CDKEY),
																	CHAR_getChar(iCharindex,CHAR_NAME),
																	CHAR_getInt(iCharindex,CHAR_MOMENTUM),iAddGold,1);
								}
								CHAR_talkToCli(iCharindex,-1,"辛苦了!守護住莊園的獎金已匯入你的個人銀行",CHAR_COLORRED);
								// 家族的個人及家族氣勢都要歸零
								CHAR_setInt(iCharindex,CHAR_MOMENTUM,0);
								CHAR_talkToCli(iCharindex,-1,"莊園戰後個人及家族氣勢歸零",CHAR_COLORRED);
							}
						}
					}
				}
				else{
					// 挑戰時間已過,選出的挑戰家族和守莊家族有約一天的時間可以準備
					NPC_ManorSavePKSchedule(meindex,index,0,-1,ManorSchedule[manorindex].tm1[iNo1FmIndexSort]);
					// 開打了,氣勢改變也不用去向AC要即時資料了
					fmpointlist.fm_inwar[manorid-1] = FALSE;
					// 通知所有人
					sprintf(szMsg,"%s 家族獲得挑戰莊園資格",ManorSchedule[manorindex].szFmName[iNo1FmIndexSort]);
					
					for(i=0;i<iPlayerNum;i++){
						if(CHAR_getCharUse(i) != FALSE){
							CHAR_talkToCli(i,-1,szMsg,CHAR_COLORBLUE2);
						}
					}
				}
			}
		}
		break;
#endif
  case FMPKS_FLAG_MANOR_PREPARE:
    if(fmpks[fmpks_pos+1].dueltime <= NowTime.tv_sec){
      memcpy(&fmpks[fmpks_pos], &fmpks[fmpks_pos+1], sizeof(FamilyPKSchedule));
      fmpks[fmpks_pos].dueltime = tm1.tm_hour * 100 + tm1.tm_min;
      fmpks[fmpks_pos].flag = FMPKS_FLAG_SCHEDULED;
      fmpks[fmpks_pos+1].dueltime = 0;
      fmpks[fmpks_pos+1].flag = FMPKS_FLAG_MANOR_BATTLEBEGIN;
      NPC_talkToFloor(CHAR_getInt(meindex, CHAR_FLOOR) , fmpks[fmpks_pos].host_index,
         	fmpks[fmpks_pos].guest_index, "莊園爭奪戰已經開始,請盡快入場!");
#ifdef _NEW_MANOR_LAW
			CHAR_setWorkInt(meindex,NPC_WORK_BETTLETIME,tm1.tm_mday);
#endif
    }
    break;
  case FMPKS_FLAG_MANOR_PEACE:
    if (fmpks[fmpks_pos+1].dueltime <= NowTime.tv_sec) {
      fmpks[fmpks_pos+1].dueltime = 0;
      fmpks[fmpks_pos+1].flag = FMPKS_FLAG_NONE;
#ifndef _NEW_MANOR_LAW
      NPC_ManorSavePKSchedule(meindex, -1, FMPKS_FLAG_NONE);
#else
			NPC_ManorSavePKSchedule(meindex, -1, FMPKS_FLAG_NONE,fmpks[fmpks_pos+1].dueltime,tm1);
#endif
    }
    break;
  case FMPKS_FLAG_MANOR_BATTLEBEGIN:
    break;
  case FMPKS_FLAG_MANOR_BATTLEEND:
		{
#ifdef _NEW_MANOR_LAW
			int manorindex = CHAR_getWorkInt(meindex,NPC_WORK_MANORID) - 1;
#endif

			fmpks[fmpks_pos].flag = FMPKS_FLAG_NONE;
#ifndef _NEW_MANOR_LAW
			fmpks[fmpks_pos+1].dueltime = CHAR_getWorkInt(meindex, NPC_WORK_PEACEWAIT) + NowTime.tv_sec;
#else
			// 打完後要再過五天才能再挑戰
			// 若開打的日期和結束戰斗的日期不一樣表示打超過了一天以上,以一天計
			if(CHAR_getWorkInt(meindex,NPC_WORK_BETTLETIME) != tm1.tm_mday){
				iOffsetTime = tm1.tm_hour * 3600 * -1;	// 扣回00:00
			}
			else{	// 戰斗結束時未超過一天
				iOffsetTime = (24 - tm1.tm_hour) * 3600;	// 補成00:00
			}
			//#ifdef _75_TEST
			fmpks[fmpks_pos+1].dueltime = NowTime.tv_sec - tm1.tm_min*60 + iOffsetTime + 172800 + (18 * 3600);	// 二天
			//#else
			//	fmpks[fmpks_pos+1].dueltime = NowTime.tv_sec - tm1.tm_min*60 + iOffsetTime + 432000 + (18 * 3600);
			//														|-----------取整點------------| |-補成00:00-| |-五天-|  |18:00開始報名|
			//#endif
#endif
			fmpks[fmpks_pos+1].flag = FMPKS_FLAG_MANOR_PEACE_SAVE;
			NPC_CleanPkList( fmpks_pos);
#ifndef _NEW_MANOR_LAW
			NPC_ManorSavePKSchedule(meindex, -1, FMPKS_FLAG_MANOR_PEACE_SAVE);
#else
			NPC_ManorSavePKSchedule(meindex, -1, FMPKS_FLAG_MANOR_PEACE_SAVE,fmpks[fmpks_pos+1].dueltime,tm1);
			// 清空排程
			memset(&ManorSchedule[manorindex],0,sizeof(ManorSchedule[manorindex]));
			{
				int i;
				for(i=0;i<10;i++) ManorSchedule[manorindex].iSort[i] = ManorSchedule[manorindex].iFmIndex[i] = -1;
				for(i=0;i<FAMILY_MAXHOME;i++) fmpointlist.fm_momentum[i] = -1;
			}
		}
#endif
    break;
  case FMPKS_FLAG_MANOR_PEACE_SAVE:
    fmpks[fmpks_pos+1].flag = FMPKS_FLAG_MANOR_PEACE;
    break;
  case FMPKS_FLAG_MANOR_OTHERPLANET:
    break;
  case FMPKS_FLAG_MANOR_READYTOFIGHT:
  case FMPKS_FLAG_MANOR_CLEANFLAG:
    fmpks[fmpks_pos].flag = FMPKS_FLAG_NONE;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
2021中文字幕一区亚洲| 久久亚洲一级片| 911精品国产一区二区在线| 韩国v欧美v日本v亚洲v| 一区二区三区欧美视频| 久久精品视频免费观看| 日韩欧美资源站| 欧美日本在线观看| 97久久超碰国产精品| 国产91综合一区在线观看| 韩日欧美一区二区三区| 欧美伦理视频网站| 欧美成人video| 精品免费一区二区三区| 亚洲电影在线播放| 国产三级欧美三级| 2017欧美狠狠色| 三级久久三级久久久| 三级久久三级久久久| 日本乱人伦一区| 欧美日韩精品一区二区三区四区| 中文子幕无线码一区tr| 亚洲视频免费看| 亚洲一区二区美女| 久久99精品国产91久久来源| 久久66热re国产| 这里只有精品视频在线观看| 亚洲夂夂婷婷色拍ww47| 色综合婷婷久久| 717成人午夜免费福利电影| 亚洲精品日产精品乱码不卡| 蜜臀久久99精品久久久画质超高清 | 久久www免费人成看片高清| 国模套图日韩精品一区二区| 日韩一级成人av| 日本伊人午夜精品| 色综合久久久久久久久| 日韩欧美一区二区久久婷婷| 成人免费在线视频观看| 亚洲成人免费视| 在线一区二区三区做爰视频网站| 亚洲欧美区自拍先锋| 亚洲国产三级在线| 欧美日韩日日摸| 久久久www成人免费毛片麻豆| 亚洲免费观看在线视频| 一本久久a久久免费精品不卡| 亚洲人成网站影音先锋播放| 日本乱人伦一区| 天使萌一区二区三区免费观看| 欧美丰满美乳xxx高潮www| 婷婷开心激情综合| 色中色一区二区| 亚洲一区二区在线免费看| 欧美精品一二三四| 精品在线免费视频| 国产日韩欧美a| 在线视频一区二区三区| 亚洲国产成人一区二区三区| 99综合电影在线视频| 日韩一区二区三区免费观看| 精品一区二区在线观看| 欧美国产精品v| 色婷婷国产精品| 久久精品二区亚洲w码| 国产精品三级电影| 国产成人啪免费观看软件| 777a∨成人精品桃花网| 国产精品亚洲成人| 久久理论电影网| 91福利在线导航| 国产综合色在线视频区| 亚洲激情图片qvod| 91精品国产免费| 亚洲欧美一区二区不卡| 日韩三级电影网址| 91捆绑美女网站| 国产精品免费观看视频| 欧美日韩精品一区二区三区蜜桃| 狠狠色丁香久久婷婷综合_中| 亚洲视频一二区| 久久综合色婷婷| 在线观看网站黄不卡| 懂色av一区二区三区蜜臀| 午夜一区二区三区视频| 欧美国产激情一区二区三区蜜月| 欧美日韩激情一区二区| 成人精品视频.| 国产精品色眯眯| 日韩精品一区二区三区四区视频| 色综合网站在线| 国产精品88av| 久久99热狠狠色一区二区| 一区二区三区在线播放| 国产精品素人一区二区| 精品免费国产二区三区| 欧美一区二区不卡视频| 91国偷自产一区二区三区成为亚洲经典| 精品在线观看视频| 日本亚洲视频在线| 亚洲一区二区视频在线观看| 国产精品二区一区二区aⅴ污介绍| 成人精品视频一区二区三区| 狠狠色综合播放一区二区| 亚洲国产日韩a在线播放性色| 最新中文字幕一区二区三区| 国产亚洲欧美色| 亚洲精品一区二区在线观看| 波多野结衣精品在线| 国产精品一区二区久久不卡 | 久久99精品视频| 日韩成人午夜精品| 视频一区二区三区在线| 一区二区三区免费| 一区二区三区不卡在线观看| 国产精品久久网站| 中文字幕一区二区不卡| 国产精品亲子伦对白| 国产精品视频你懂的| 国产精品视频麻豆| 亚洲日本一区二区| 亚洲精品乱码久久久久久黑人| 亚洲人吸女人奶水| 亚洲国产精品久久久男人的天堂| 亚洲美女在线一区| 亚洲成av人片观看| 免费av成人在线| 一区二区三区日本| 香蕉久久一区二区不卡无毒影院| 婷婷综合久久一区二区三区| 蜜桃av一区二区在线观看| 精品一区二区精品| 国产电影一区二区三区| 91在线免费看| 欧美视频在线一区| 99久久亚洲一区二区三区青草 | 国产精品久久久久久久午夜片| 中文字幕一区二区视频| 亚洲激情网站免费观看| 日韩av电影免费观看高清完整版 | 成人开心网精品视频| 91亚洲资源网| 欧美精品一卡二卡| 国产午夜亚洲精品午夜鲁丝片| 国产精品久久久一本精品| 亚洲一区二区三区国产| 精品一区二区三区在线观看| 国产成人免费9x9x人网站视频| 色94色欧美sute亚洲线路二| 欧美高清www午色夜在线视频| 久久亚洲免费视频| 一区二区三区精密机械公司| 奇米影视一区二区三区小说| 成人国产电影网| 国产精品一区久久久久| 92国产精品观看| 91精品在线麻豆| 国产精品久久看| 美女脱光内衣内裤视频久久网站 | 欧美午夜精品免费| 日韩精品一区二区三区在线观看| 欧美高清一级片在线观看| 亚洲黄色片在线观看| 激情久久五月天| 欧美这里有精品| 久久精品亚洲麻豆av一区二区| 夜夜嗨av一区二区三区| 国产精品一区二区你懂的| 欧美色精品天天在线观看视频| 久久综合狠狠综合久久激情| 亚洲福中文字幕伊人影院| 成人中文字幕在线| 日韩欧美国产一区在线观看| 亚洲激情成人在线| av中文字幕一区| 久久久噜噜噜久久中文字幕色伊伊 | 久久久亚洲欧洲日产国码αv| 亚洲午夜免费电影| 成人激情午夜影院| 久久综合成人精品亚洲另类欧美| 一二三四社区欧美黄| 成人精品亚洲人成在线| 久久日一线二线三线suv| 日韩高清不卡在线| 欧美日韩国产首页在线观看| 亚洲欧美日韩国产手机在线| 国产精品一级在线| 欧美大片日本大片免费观看| 午夜精品久久久| 欧美性猛交xxxx乱大交退制版| 国产精品久久久久久久久免费桃花| 激情综合五月婷婷| 日韩欧美高清一区| 久久99热这里只有精品| 日韩久久久精品| 免费人成在线不卡| 日韩免费观看2025年上映的电影 | 国内精品伊人久久久久影院对白| 欧美日韩国产高清一区| 图片区小说区区亚洲影院|