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

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

?? item_contract.c

?? 石器時(shí)代8.0服務(wù)端完整源代碼。可以直接編譯
?? C
字號(hào):
#include "version.h"#ifdef _CONTRACT#include <string.h> /* strstr */#include <ctype.h>  /* isdigit, isalnum */#include "common.h"#include "char.h"#include "char_base.h"#include "char_data.h"#include "configfile.h"#include "item.h"#include "item_event.h"#include "object.h"#include "anim_tbl.h"#include "magic.h"#include "handletime.h"#include "log.h"#include "util.h"#include "encount.h"#include "battle.h"#include "battle_item.h"#include "lssproto_serv.h"#include "net.h"#include "pet.h"#include "npcutil.h"#include "enemy.h"typedef struct{	int used;	char name[32];	char fmname[32];} contractSignTag;//ITEM_contractTable	ITEM_contractTbl[MAX_CONTRACTTABLE];static ITEM_contractTable	*ITEM_contractTbl;BOOL ITEM_initContractTable( ){	//	FILE *fp;	char data[2048];	int i;	print("\讀取 contract.txt ....");    ITEM_contractTbl = (ITEM_contractTable *)allocateMemory( sizeof(struct tagITEM_contract) * MAX_CONTRACTTABLE );    if( ITEM_contractTbl == NULL ){        fprint( "無(wú)法分配內(nèi)存 %d\n" ,                sizeof(struct tagITEM_contract)*MAX_CONTRACTTABLE);        fclose( fp );        return FALSE;    }	memset( ITEM_contractTbl, 0 , sizeof(struct tagITEM_contract) * MAX_CONTRACTTABLE);	fp = fopen("data/contract.txt", "r");	if( fp == NULL ) {		print("\n無(wú)法讀取 contract.txt!! ");		return FALSE;	}	for( i =0; i >MAX_CONTRACTTABLE; i++) {		ITEM_contractTbl[i].used = FALSE;	}		while(1) {		int ret;		int index;		char token[2048];		ret = fgets( data, sizeof(data), fp);		if( ret == NULL || ret == EOF)			break;		if( getStringFromIndexWithDelim( data, "|", 1, token, sizeof(token)) == TRUE) {			index = atoi( token);			if( index <0 || index >= MAX_CONTRACTTABLE) continue;		}		else { continue; }		if( getStringFromIndexWithDelim( data, "|", 2, token, sizeof(token)) == TRUE) {			ITEM_contractTbl[index].argnum = atoi( token);		}		else { continue; }		if( getStringFromIndexWithDelim( data, "|", 3, token, sizeof(token)) == TRUE) {			strcpy( ITEM_contractTbl[index].detail, token);					}		else { continue; }		ITEM_contractTbl[i].used = TRUE;		print("\n契約[%d] %d %s", index, ITEM_contractTbl[index].argnum, ITEM_contractTbl[index].detail);	}	fclose( fp);	return TRUE;}void ITEM_contract( int charaindex, int toindex, int haveitemindex){	int itemindex;	int conindex;	char data[2048+1024];		if( !CHAR_CHECKINDEX( charaindex ) )  return;	itemindex = CHAR_getItemIndex( charaindex, haveitemindex);	if( !ITEM_CHECKINDEX(itemindex) )  return;	//conindex = atoi( ITEM_getChar( itemundex, ITEM_CONTRACTNUM));	conindex = atoi( ITEM_getChar( itemindex, ITEM_ARGUMENT));	sprintf( data, "%s|%d|%s|%s", ITEM_contractTbl[conindex].detail, 		ITEM_contractTbl[conindex].argnum,		ITEM_getChar( itemindex, ITEM_CONTRACTARG),		ITEM_getChar( itemindex, ITEM_CONTRACTTIME) );	print("\n contract_send:%s\n", data);	lssproto_WN_send( getfdFromCharaIndex( charaindex), WINDOW_MESSAGETYPE_CONTRACT,		WINDOW_BUTTONTYPE_YESNO,		CHAR_WINDOWTYPE_CONTRACT_ANSWER,		itemindex,		data );}void ITEM_contractSign( int fd, int itemindex, int signindex){	int charaindex;	int i;	int conIndex;	int complete =0;	int item_id;	char contractSignData[512];	contractSignTag contractSign[4];	print("\n contractSign:%d:%d ", itemindex, signindex);		charaindex = CONNECT_getCharaindex( fd );	if( !CHAR_CHECKINDEX(charaindex))	return;	if( signindex <0 || signindex >=4)	return;    for( i=0 ; i<CHAR_MAXITEMHAVE ; i++ ){        if( CHAR_getItemIndex( charaindex,i ) == itemindex )			break;	}	if( i >= CHAR_MAXITEMHAVE )	return;	if( strcmp( ITEM_getChar( itemindex, ITEM_USEFUNC), "ITEM_contract") )	return;		conIndex = atoi( ITEM_getChar( itemindex, ITEM_ARGUMENT));	if( signindex >= ITEM_contractTbl[conIndex].argnum )	return;	strcpy( contractSignData, ITEM_getChar( itemindex, ITEM_CONTRACTARG) );	for( i=0; i<4; i++) contractSign[i].used = FALSE;	for( i=0; i<4; i++) {		int index;		char buf[512];		char token[32];		if( getStringFromIndexWithDelim( contractSignData, ",", i+1, buf, sizeof( buf )-1) == FALSE )			break;		if( strlen( buf) == 0)	break;		getStringFromIndexWithDelim( buf, ":", 1, token, sizeof( token )-1 );		index = atoi( token);		if( index <0 || index >=4)	break;		getStringFromIndexWithDelim( buf, ":", 2, contractSign[index].name, sizeof( contractSign[index].name )-1 );		getStringFromIndexWithDelim( buf, ":", 3, contractSign[index].fmname, sizeof( contractSign[index].fmname )-1 );		contractSign[index].used = TRUE;	}	if( contractSign[signindex].used == TRUE)	return;		strcpy( contractSign[signindex].name, CHAR_getChar( charaindex, CHAR_NAME) );	strcpy( contractSign[signindex].fmname, CHAR_getChar( charaindex, CHAR_FMNAME) );	contractSign[signindex].used = TRUE;	// 檢查是否完成契約	for( i =0; i<4; i++) {		if( contractSign[i].used == TRUE)			complete++;	}	if( complete >= ITEM_contractTbl[conIndex].argnum ) {		char buf[512];		if( CHAR_findEmptyItemBoxNo( charaindex ) < ITEM_contractTbl[conIndex].argnum -1 ) {			sprintf( buf, "要完成這個(gè)契約,請(qǐng)先準(zhǔn)備%d個(gè)空道具欄位。", ITEM_contractTbl[conIndex].argnum -1);			CHAR_talkToCli( charaindex, -1, buf, CHAR_COLORYELLOW);			return;		}	}	strcpy( contractSignData, "");	for( i=0; i<4; i++) {		char buf[512];		if( contractSign[i].used == FALSE)	continue;		sprintf( buf, "%d:%s:%s,", i, contractSign[i].name, contractSign[i].fmname);		strcat( contractSignData, buf);	}	ITEM_setChar( itemindex, ITEM_CONTRACTARG, contractSignData);	CHAR_talkToCli( charaindex, -1, "完成契約簽名。", CHAR_COLORYELLOW);	// 完成契約	if( complete >= ITEM_contractTbl[conIndex].argnum ) {		struct tm *nowtime;		char timebuf[512];		// 紀(jì)錄日期		nowtime = localtime( (time_t *)&NowTime.tv_sec );		sprintf( timebuf, "%04d年%02d月%02d日",			nowtime->tm_year +1900, nowtime->tm_mon+1, nowtime->tm_mday);		ITEM_setChar( itemindex, ITEM_CONTRACTTIME, timebuf);		CHAR_talkToCli( charaindex, -1, "完成所有簽名,契約成立!", CHAR_COLORYELLOW);		// 復(fù)制契約		item_id = ITEM_getInt( itemindex, ITEM_ID);		for( i =0 ; i < ITEM_contractTbl[conIndex].argnum -1 ; i++)		{			int	emptyindex;			int newitemindex;						emptyindex = CHAR_findEmptyItemBox( charaindex );						if( emptyindex < 0 ){				CHAR_talkToCli( charaindex, -1, "空間欄位不足。", CHAR_COLORYELLOW);				break;			}						newitemindex = ITEM_makeItemAndRegist( item_id );						if( newitemindex != -1 ){				CHAR_setItemIndex( charaindex, emptyindex, newitemindex );				ITEM_setWorkInt( newitemindex, ITEM_WORKOBJINDEX, -1);				ITEM_setWorkInt( newitemindex, ITEM_WORKCHARAINDEX, charaindex);				CHAR_sendItemDataOne( charaindex, emptyindex);				ITEM_setChar( newitemindex, ITEM_CONTRACTARG, contractSignData);				ITEM_setChar( newitemindex, ITEM_CONTRACTTIME, timebuf);			}						CHAR_talkToCli( charaindex, -1, "復(fù)制契約書。", CHAR_COLORYELLOW);		}	}}#endif

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产激情一区二区三区四区| 三级影片在线观看欧美日韩一区二区| 精品一区二区三区日韩| 7777女厕盗摄久久久| 午夜精品一区在线观看| 91精品国产色综合久久ai换脸 | 国产呦萝稀缺另类资源| 久久精品人人做人人综合| 国产精品一区久久久久| 亚洲国产高清aⅴ视频| 91日韩精品一区| 亚洲成av人片| 久久综合av免费| www.色综合.com| 亚洲va国产va欧美va观看| 欧美大肚乱孕交hd孕妇| 国产黄人亚洲片| 亚洲国产精品精华液网站| 欧美成人一区二区三区片免费| 国产一区二区伦理| 亚洲裸体xxx| 日韩一区二区在线看片| 风流少妇一区二区| 一区二区三区美女视频| 2021中文字幕一区亚洲| 91麻豆成人久久精品二区三区| 日韩精品欧美精品| 国产精品美女久久久久久2018| 欧美视频一区二| 国产精品一区久久久久| 亚洲韩国一区二区三区| 精品久久久久久久一区二区蜜臀| 成人美女视频在线看| 日日骚欧美日韩| 国产精品毛片a∨一区二区三区| 欧美精品v日韩精品v韩国精品v| 激情综合色播激情啊| 亚洲午夜精品在线| 国产精品麻豆网站| 精品国一区二区三区| 91福利视频网站| 成人午夜av在线| 麻豆精品视频在线观看免费| 亚洲女同女同女同女同女同69| 欧美成人伊人久久综合网| 在线观看免费视频综合| 国产乱子轮精品视频| 三级欧美在线一区| 亚洲中国最大av网站| 国产欧美日韩视频在线观看| 日韩一级片网站| 欧美三级资源在线| 91麻豆精品视频| 粉嫩av一区二区三区在线播放| 全国精品久久少妇| 亚洲五码中文字幕| 亚洲免费伊人电影| 国产精品欧美经典| 久久久久国产精品麻豆ai换脸| 制服丝袜中文字幕一区| 欧洲国内综合视频| 91首页免费视频| caoporen国产精品视频| 国产乱码精品一区二区三区av | 韩日精品视频一区| 日韩电影免费一区| 亚洲成a人v欧美综合天堂下载| 亚洲女人的天堂| 亚洲天堂av老司机| 国产精品第一页第二页第三页| 亚洲国产精品成人综合| 中文字幕乱码一区二区免费| 久久久久久久久免费| 久久久不卡影院| 国产日韩精品久久久| 国产亚洲精品福利| 国产精品午夜久久| |精品福利一区二区三区| 综合自拍亚洲综合图不卡区| 国产精品九色蝌蚪自拍| 亚洲欧洲国产专区| 亚洲欧美另类综合偷拍| 一区二区在线观看不卡| 亚洲乱码一区二区三区在线观看| 亚洲欧美日韩一区二区三区在线观看| 国产精品久99| 亚洲高清一区二区三区| 婷婷丁香激情综合| 日韩电影在线观看一区| 麻豆极品一区二区三区| 国产伦精品一区二区三区免费迷| 成人午夜视频福利| 在线观看日韩毛片| 日韩欧美专区在线| 久久精品视频在线看| 国产精品国产三级国产有无不卡 | 三级一区在线视频先锋 | 午夜精品久久久久久久99水蜜桃 | 久久亚洲私人国产精品va媚药| 欧美mv日韩mv亚洲| 国产精品视频在线看| 亚洲久本草在线中文字幕| 亚洲va中文字幕| 乱中年女人伦av一区二区| 高清av一区二区| 欧美视频一区二区| 国产三级精品三级在线专区| 亚洲男同1069视频| 精品一区二区三区免费观看| av高清不卡在线| 欧美一区二区三区色| 欧美激情一区二区三区全黄| 亚洲一区在线观看视频| 韩国精品免费视频| 91久久香蕉国产日韩欧美9色| 91精品国产综合久久久久久久| 国产欧美一区二区精品忘忧草| 亚洲自拍欧美精品| 国产一区二区导航在线播放| 91毛片在线观看| 久久这里只有精品6| 亚洲综合色网站| 国产精品12区| 欧美一区二区三区思思人| 1区2区3区国产精品| 久久99国产精品麻豆| 在线欧美日韩国产| 中文字幕不卡在线播放| 日韩国产一二三区| 一本色道久久综合狠狠躁的推荐| 欧美电影免费观看高清完整版在线 | 欧美麻豆精品久久久久久| 国产精品视频你懂的| 九九**精品视频免费播放| 色婷婷综合视频在线观看| 久久久91精品国产一区二区精品 | 不卡的av电影| 精品久久人人做人人爰| 五月婷婷激情综合| 色综合久久中文字幕综合网| 久久久精品国产免大香伊| 日韩成人av影视| 欧美在线短视频| 亚洲男同1069视频| 成人aaaa免费全部观看| 久久丝袜美腿综合| 日本怡春院一区二区| 欧美最新大片在线看| 中文字幕人成不卡一区| 成人免费毛片app| 久久亚洲欧美国产精品乐播| 久久国产日韩欧美精品| 欧美精品九九99久久| 亚洲一级片在线观看| 日本精品视频一区二区| 亚洲视频 欧洲视频| 成人在线综合网站| 久久精品一区二区| 国产精品羞羞答答xxdd| 精品国产区一区| 国产精品综合一区二区三区| 久久老女人爱爱| 美女mm1313爽爽久久久蜜臀| 欧美久久高跟鞋激| 日韩av中文字幕一区二区| 欧美年轻男男videosbes| 亚洲国产另类av| 欧美日本视频在线| 秋霞av亚洲一区二区三| 日韩精品在线一区| 激情综合色播激情啊| 国产网站一区二区三区| 丰满亚洲少妇av| 国产精品二区一区二区aⅴ污介绍| av一区二区三区在线| 中文字幕日韩av资源站| 在线亚洲精品福利网址导航| 亚洲一区二区三区不卡国产欧美| 日本道免费精品一区二区三区| 亚洲一二三区不卡| 欧美人xxxx| 国产资源在线一区| 中文av字幕一区| 91久久免费观看| 蜜桃传媒麻豆第一区在线观看| 欧美成人精品3d动漫h| 国产精品99久久久| 亚洲免费大片在线观看| 欧洲色大大久久| 久久99国产精品久久99果冻传媒| 欧美国产国产综合| 欧美在线观看视频一区二区三区| 奇米影视7777精品一区二区| 久久精品人人做人人爽97| 91在线一区二区| 日韩制服丝袜先锋影音| 精品国产一区二区三区不卡| 成人av资源站| 秋霞电影一区二区| 一区在线观看免费|