示例#1
0
文件: itemdb.c 项目: Lilystar/Auriga
struct item_data* itemdb_searchname(const char *str)
{
	struct item_data *item = NULL;

	numdb_foreach(item_db,itemdb_searchname_sub,str,&item);
	return item;
}
示例#2
0
int mercdb_txt_sync(void)
{
	FILE *fp;
	int lock;

	if( !merc_db )
		return 1;

	if( (fp = lock_fopen(merc_txt, &lock)) == NULL ) {
		printf("mercdb_txt_sync: can't write [%s] !!! data is lost !!!\n", merc_txt);
		return 1;
	}
	numdb_foreach(merc_db, mercdb_txt_sync_sub, fp);
	lock_fclose(fp, merc_txt, &lock);

#ifdef TXT_JOURNAL
	if( merc_journal_enable )
	{
		// コミットしたのでジャーナルを新規作成する
		journal_final( &merc_journal );
		journal_create( &merc_journal, sizeof(struct mmo_mercstatus), merc_journal_cache, merc_journal_file );
	}
#endif

	return 0;
}
示例#3
0
int storagedb_txt_sync(void)
{
	FILE *fp;
	int lock;

	if( !storage_db )
		return 1;

	if( (fp = lock_fopen(storage_txt, &lock)) == NULL ) {
		printf("storagedb_txt_sync: can't write [%s] !!! data is lost !!!\n", storage_txt);
		return 1;
	}
	numdb_foreach(storage_db, storagedb_txt_sync_sub, fp);
	lock_fclose(fp, storage_txt, &lock);

#ifdef TXT_JOURNAL
	if( storage_journal_enable )
	{
		// コミットしたのでジャーナルを新規作成する
		journal_final( &storage_journal );
		journal_create( &storage_journal, sizeof(struct storage), storage_journal_cache, storage_journal_file );
	}
#endif
	return 0;
}
示例#4
0
文件: party.c 项目: MagicalTux/nezumi
struct party* party_searchname(char *str)
{
	struct party *p = NULL;

	numdb_foreach(party_db, party_searchname_sub, str, &p);

	return p;
}
示例#5
0
文件: itemdb.c 项目: Lilystar/Auriga
void itemdb_debug_txt(void)
{
	FILE *fp = fopen("itemdebug.txt","wt");

	if(fp) {
		numdb_foreach(item_db,itemdb_debug_sub,fp);
		fclose(fp);
	}
}
示例#6
0
/*==========================================
 * id_db内の全てにfuncを実行
 *------------------------------------------
 */
int map_foreachiddb(int (*func)(void*,void*,va_list),...)
{
	va_list ap;

	va_start(ap,func);
	numdb_foreach(id_db,func,ap);
	va_end(ap);
	return 0;
}
示例#7
0
/*==========================================
 * Saves all scdata to the given filename.
 *------------------------------------------
 */
void inter_status_save()
{
	FILE *fp;
	int lock;

	if ((fp = lock_fopen(scdata_txt, &lock)) == NULL) {
		ShowError("int_status: impossivel escrever [%s] !!! arquivo corrompido !!!\n", scdata_txt);
		return;
	}
	numdb_foreach(scdata_db, inter_status_save_sub, fp);
	lock_fclose(fp,scdata_txt, &lock);
}
示例#8
0
// パーティーデータのセーブ
int inter_party_save()
{
	FILE *fp;
	if( (fp=fopen(party_txt,"w"))==NULL ){
		printf("int_party: cant write [%s] !!! data is lost !!!\n",party_txt);
		return 1;
	}
	numdb_foreach(party_db,inter_party_save_sub,fp);
	fclose(fp);
//	printf("int_party: %s saved.\n",party_txt);
	return 0;
}
示例#9
0
//---------------------------------------------------------
// 倉庫データを書き込む
int inter_storage_save()
{
	FILE *fp;
	int lock;
	if( (fp=lock_fopen(storage_txt,&lock))==NULL ){
		ShowError("int_storage: cant write [%s] !!! data is lost !!!\n",storage_txt);
		return 1;
	}
	numdb_foreach(storage_db,inter_storage_save_sub,fp);
	lock_fclose(fp,storage_txt,&lock);
//	printf("int_storage: %s saved.\n",storage_txt);
	return 0;
}
示例#10
0
// パーティーデータのセーブ
int inter_party_save()
{
	FILE *fp;
	int  lock;
	if( (fp=lock_fopen(party_txt,&lock))==NULL ){
		printf("int_party: cant write [%s] !!! data is lost !!!\n",party_txt);
		return 1;
	}
	numdb_foreach(party_db,inter_party_save_sub,fp);
//	fprintf(fp,"%d\t%%newid%%\n",party_newid);
	lock_fclose(fp,party_txt,&lock);
//	printf("int_party: %s saved.\n",party_txt);
	return 0;
}
示例#11
0
int check_ttl_wisdata() {
	unsigned long tick = gettick();
	int i;

	do {
		wis_delnum = 0;
		numdb_foreach(wis_db, check_ttl_wisdata_sub, tick);
		for(i = 0; i < wis_delnum; i++) {
			struct WisData *wd = (struct WisData*)numdb_search(wis_db, wis_dellist[i]);
			ShowWarning("inter: wis data id=%d time out : from %s to %s\n", wd->id, wd->src, wd->dst);
			// removed. not send information after a timeout. Just no answer for the player
			//mapif_wis_end(wd, 1); // flag: 0: success to send wisper, 1: target character is not loged in?, 2: ignored by target
			numdb_erase(wis_db, wd->id);
			aFree(wd);
		}
	} while(wis_delnum >= WISDELLIST_MAX);

	return 0;
}
示例#12
0
// 位置やHP通知
int party_send_xy_timer(int tid,unsigned int tick,int id,int data)
{
	numdb_foreach(party_db,party_send_xy_timer_sub,tick);
	return 0;
}
示例#13
0
文件: itemdb.c 项目: Lilystar/Auriga
/*==========================================
 * @idsearch
 *------------------------------------------
 */
int itemdb_idsearch(const int fd, const char *str, int (*func)(void*, void*, va_list))
{
	return numdb_foreach(item_db, func, str, fd);
}
示例#14
0
// �L�����̋������Ȃ����`�F�b�N
void party_check_conflict(int party_id, int account_id, char *nick) {
	numdb_foreach(party_db, party_check_conflict_sub, party_id, account_id, nick);

	return;
}
示例#15
0
void itemdb_reload(void)
{
	// free up all item scripts first
	numdb_foreach(item_db, itemdb_final_sub, 0);
	itemdb_read();
}