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

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

?? item_contract.c

?? 最新主流石器時代源代碼,包含諸多目前流行功能代碼.
?? C
字號:
#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( "無法分配內存 %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無法讀取 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, "要完成這個契約,請先準備%d個空道具欄位。", 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];		// 紀錄日期		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);		// 復制契約		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, "復制契約書。", CHAR_COLORYELLOW);		}	}}#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av第一页| 中文字幕一区二区在线观看| 久久婷婷色综合| 亚洲欧美成aⅴ人在线观看| 蜜桃精品视频在线| 91高清视频在线| 国产无人区一区二区三区| 日韩精品欧美成人高清一区二区| 99久久精品国产网站| 精品成人一区二区| 视频一区欧美精品| 欧美综合一区二区| 亚洲色图视频免费播放| 国产成人精品一区二 | 久久国产视频网| 欧美视频一区二区三区四区 | 国产精品123| 555夜色666亚洲国产免| 亚洲欧美日韩在线| 不卡一区在线观看| 日本一二三四高清不卡| 国产最新精品免费| 久久综合九色综合欧美亚洲| 免费一级片91| 日韩一区二区三区高清免费看看| 亚洲成a人片在线观看中文| 色综合网站在线| 亚洲色图在线播放| 国产福利视频一区二区三区| 在线综合视频播放| 日欧美一区二区| 欧美午夜一区二区| 亚洲国产欧美另类丝袜| 欧美日韩三级一区| 婷婷开心激情综合| 91精品久久久久久久久99蜜臂| 亚洲午夜久久久久久久久电影网 | 色94色欧美sute亚洲线路二 | 欧美日韩精品三区| 亚洲国产视频一区二区| 欧美精选一区二区| 久久99精品久久久久婷婷| 精品嫩草影院久久| 成人毛片在线观看| 亚洲欧美日韩中文播放 | av动漫一区二区| 亚洲免费av观看| 欧美日韩亚洲高清一区二区| 日韩精品一二三| 久久久久九九视频| 91美女片黄在线观看91美女| 亚洲国产视频在线| 日韩免费观看高清完整版在线观看| 狠狠色综合日日| 亚洲色图.com| 欧美美女喷水视频| 国产一区二区导航在线播放| 亚洲视频你懂的| 欧美一区二区久久久| 国产伦精品一区二区三区视频青涩| 综合av第一页| 日韩欧美你懂的| av资源网一区| 免费的国产精品| 亚洲欧洲韩国日本视频| 欧美情侣在线播放| 国产乱码字幕精品高清av| 亚洲人成在线播放网站岛国| 欧美一激情一区二区三区| 暴力调教一区二区三区| 天天综合网天天综合色| 国产精品久久福利| 日韩免费一区二区| 色悠悠亚洲一区二区| 免费一级片91| 亚洲无人区一区| 国产精品久久久久影院色老大| 欧美精品三级在线观看| www.性欧美| 加勒比av一区二区| 五月天欧美精品| 日韩一区中文字幕| 国产亚洲精品bt天堂精选| 欧美日韩久久一区二区| av一区二区不卡| 国产成人综合视频| 美女高潮久久久| 亚洲福利一区二区三区| 亚洲人精品一区| 国产精品久久久久影院亚瑟| 久久亚洲精品小早川怜子| 91麻豆精品国产无毒不卡在线观看| 91香蕉视频在线| 成人激情开心网| 国产盗摄精品一区二区三区在线| 日韩成人午夜电影| 亚洲成人午夜电影| 亚洲伦理在线免费看| 国产精品人妖ts系列视频| 久久久久99精品一区| 欧美成人性战久久| 91精品国产一区二区三区香蕉| 91九色02白丝porn| 色婷婷激情综合| 日本福利一区二区| 91视视频在线观看入口直接观看www | 亚洲精品成人精品456| 国产精品白丝在线| 国产精品国产自产拍高清av| 久久免费国产精品| 久久看人人爽人人| 久久精品视频免费| 久久久久久一级片| 精品福利一区二区三区免费视频| 欧美一卡二卡在线观看| 日韩一级免费一区| 日韩一区二区三区电影在线观看| 欧美日免费三级在线| 欧美日韩亚洲综合一区| 欧美高清激情brazzers| 日韩欧美在线观看一区二区三区| 欧美一区二区播放| 久久综合色8888| 欧美国产日产图区| 亚洲精品一卡二卡| 亚洲综合久久久| 秋霞成人午夜伦在线观看| 久久精品99久久久| 国产成a人亚洲| 91丨国产丨九色丨pron| 欧美日韩一级大片网址| 日韩精品专区在线影院重磅| 26uuuu精品一区二区| 欧美极品另类videosde| 亚洲精品日日夜夜| 日韩国产在线观看一区| 国产精品 欧美精品| 91浏览器在线视频| 51久久夜色精品国产麻豆| 精品久久人人做人人爱| 国产精品女人毛片| 婷婷丁香激情综合| 国产精品18久久久久久vr| 色噜噜夜夜夜综合网| 日韩一区二区精品在线观看| 欧美激情一区二区三区全黄 | 欧美日韩一卡二卡三卡 | 国产精品中文字幕日韩精品| 99精品久久99久久久久| 91麻豆精品国产91久久久久久| 国产午夜精品美女毛片视频| 亚洲乱码日产精品bd| 久久精品久久久精品美女| 99在线视频精品| 91麻豆精品国产91久久久资源速度| 欧美国产禁国产网站cc| 三级亚洲高清视频| 91亚洲精品久久久蜜桃网站| 欧美一区二区女人| 亚洲人吸女人奶水| 国产精品自拍毛片| 欧美日韩精品专区| 中文一区二区在线观看| 免费观看成人av| 91官网在线免费观看| 国产丝袜欧美中文另类| 日韩国产一区二| 91麻豆视频网站| 国产日韩欧美一区二区三区综合| 亚洲电影你懂得| 99视频精品全部免费在线| 久久女同精品一区二区| 亚洲超碰精品一区二区| 91在线观看地址| 国产精品蜜臀av| 国产精品一区二区无线| 欧美精品久久一区| 亚洲一区二区三区在线看| 99re在线视频这里只有精品| 国产色产综合色产在线视频| 日本成人在线电影网| 欧美日韩中文另类| 亚洲精品视频一区二区| 成人高清av在线| 国产欧美日韩在线| 国产高清久久久| 久久综合久久久久88| 狠狠色丁香婷婷综合| 精品乱码亚洲一区二区不卡| 麻豆视频观看网址久久| 91精品国产综合久久久蜜臀粉嫩| 亚洲一区二区三区影院| 色综合久久六月婷婷中文字幕| 国产精品激情偷乱一区二区∴| 国产精品69久久久久水密桃| 欧美精品一区二区三区蜜桃视频| 黑人巨大精品欧美一区| 久久久久青草大香线综合精品| 国产美女精品在线| 中文字幕av不卡|