当前位置: 首页>>代码示例>>C++>>正文


C++ RFIFOHEAD函数代码示例

本文整理汇总了C++中RFIFOHEAD函数的典型用法代码示例。如果您正苦于以下问题:C++ RFIFOHEAD函数的具体用法?C++ RFIFOHEAD怎么用?C++ RFIFOHEAD使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了RFIFOHEAD函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: mapif_parse_SaveGuildStorage

int mapif_parse_SaveGuildStorage(int fd)
{
	int guild_id;
	int len;

	RFIFOHEAD(fd);
	guild_id = RFIFOL(fd,8);
	len = RFIFOW(fd,2);

	if( sizeof(struct guild_storage) != len - 12 )
	{
		ShowError("inter storage: data size error %d != %d\n", sizeof(struct guild_storage), len - 12);
	}
	else
	{
		if( SQL_ERROR == Sql_Query(sql_handle, "SELECT `guild_id` FROM `%s` WHERE `guild_id`='%d'", guild_db, guild_id) )
			Sql_ShowDebug(sql_handle);
		else if( Sql_NumRows(sql_handle) > 0 )
		{// guild exists
			Sql_FreeResult(sql_handle);
			memcpy(guild_storage_pt, RFIFOP(fd,12), sizeof(struct guild_storage));
			guild_storage_tosql(guild_id, guild_storage_pt);
			mapif_save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 0);
			return 0;
		}
		Sql_FreeResult(sql_handle);
	}
	mapif_save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 1);
	return 0;
}
开发者ID:Yushiko,项目名称:element-ro,代码行数:30,代码来源:int_storage.c

示例2: mapif_save_pet

int mapif_save_pet(int fd,int account_id,struct s_pet *data)
{
	struct s_pet *p;
	int pet_id, len;
	RFIFOHEAD(fd);
	len=RFIFOW(fd,2);
	
	if(sizeof(struct s_pet)!=len-8) {
		ShowError("inter pet: data size error %d %d\n",sizeof(struct s_pet),len-8);
	}
	else{
		pet_id = data->pet_id;
		if (pet_id == 0)
			pet_id = data->pet_id = pet_newid++;
		p = (struct s_pet*)idb_ensure(pet_db,pet_id,create_pet);
		if(data->hungry < 0)
			data->hungry = 0;
		else if(data->hungry > 100)
			data->hungry = 100;
		if(data->intimate < 0)
			data->intimate = 0;
		else if(data->intimate > 1000)
			data->intimate = 1000;
		memcpy(p,data,sizeof(struct s_pet));
		if(p->incuvate == 1)
			p->account_id = p->char_id = 0;

		mapif_save_pet_ack(fd,account_id,0);
	}

	return 0;
}
开发者ID:AxlSckay,项目名称:Ragnarok-OldTimes,代码行数:32,代码来源:int_pet.c

示例3: mapif_save_pet

int mapif_save_pet (int fd, int account_id, struct s_pet *data)
{
	//here process pet save request.
	int len;
	RFIFOHEAD (fd);
	len = RFIFOW (fd, 2);

	if (sizeof (struct s_pet) != len - 8) {
		ShowError ("mapif_save_pet: erro no tamanho dos dados %d %d\n", sizeof (struct s_pet), len - 8);
	} else {
		if (data->hungry < 0)
			data->hungry = 0;
		else if (data->hungry > 100)
			data->hungry = 100;

		if (data->intimate < 0)
			data->intimate = 0;
		else if (data->intimate > 1000)
			data->intimate = 1000;

		inter_pet_tosql (data->pet_id, data);
		mapif_save_pet_ack (fd, account_id, 0);
	}

	return 0;
}
开发者ID:Celso1415,项目名称:Fusion,代码行数:26,代码来源:int_pet.c

示例4: mapif_save_pet

int mapif_save_pet(int fd, int account_id, struct s_pet *data)
{
	//here process pet save request.
	int len;
	nullpo_ret(data);
	RFIFOHEAD(fd);
	len=RFIFOW(fd, 2);
	if (sizeof(struct s_pet) != len-8) {
		ShowError("inter pet: data size mismatch: %d != %"PRIuS"\n", len-8, sizeof(struct s_pet));
		return 0;
	}

	if (data->hungry < 0)
		data->hungry = 0;
	else if (data->hungry > 100)
		data->hungry = 100;
	if (data->intimate < 0)
		data->intimate = 0;
	else if (data->intimate > 1000)
		data->intimate = 1000;
	inter_pet->tosql(data->pet_id,data);
	mapif->save_pet_ack(fd, account_id, 0);

	return 0;
}
开发者ID:Projeto-Varuna,项目名称:Cronus,代码行数:25,代码来源:int_pet.c

示例5: mapif_parse_StorageSave

/**
 * Asking to save player's inventory/cart/storage data
 * ZI 0x308b <size>.W <type>.B <account_id>.L <char_id>.L <entries>.?B
 * @param fd
 */
bool mapif_parse_StorageSave(int fd) {
	int aid, cid, type;
	struct s_storage stor;

	RFIFOHEAD(fd);
	type = RFIFOB(fd, 4);
	aid = RFIFOL(fd, 5);
	cid = RFIFOL(fd, 9);
	
	memset(&stor, 0, sizeof(struct s_storage));
	memcpy(&stor, RFIFOP(fd, 13), sizeof(struct s_storage));

	//ShowInfo("Saving storage data for AID=%d.\n", aid);
	switch(type){
		case TABLE_INVENTORY:	inventory_tosql(cid, &stor); break;
		case TABLE_STORAGE:
			if (!inter_premiumStorage_exists(stor.stor_id)) {
				ShowError("Invalid storage with id %d\n", stor.stor_id);
				return false;
			}
			storage_tosql(aid, &stor);
			break;
		case TABLE_CART:	cart_tosql(cid, &stor); break;
		default: return false;
	}
	mapif_storage_saved(fd, aid, cid, true, type, stor.stor_id);
	return false;
}
开发者ID:jrcollado1987,项目名称:rathena,代码行数:33,代码来源:int_storage.cpp

示例6: inter_guild_parse_frommap

// map server からの通信
// ・1パケットのみ解析すること
// ・パケット長データはinter.cにセットしておくこと
// ・パケット長チェックや、RFIFOSKIPは呼び出し元で行われるので行ってはならない
// ・エラーなら0(false)、そうでないなら1(true)をかえさなければならない
int inter_guild_parse_frommap(int fd) {
	RFIFOHEAD(fd);
	switch(RFIFOW(fd,0)) {
	case 0x3030: mapif_parse_CreateGuild(fd, RFIFOL(fd,4), (char*)RFIFOP(fd,8), (struct guild_member *)RFIFOP(fd,32)); break;
	case 0x3031: mapif_parse_GuildInfo(fd, RFIFOL(fd,2)); break;
	case 0x3032: mapif_parse_GuildAddMember(fd, RFIFOL(fd,4), (struct guild_member *)RFIFOP(fd,8)); break;
	case 0x3033: mapif_parse_GuildMasterChange(fd,RFIFOL(fd,4),(const char*)RFIFOP(fd,8),RFIFOW(fd,2)-8); break;
	case 0x3034: mapif_parse_GuildLeave(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOB(fd,14), (const char*)RFIFOP(fd,15)); break;
	case 0x3035: mapif_parse_GuildChangeMemberInfoShort(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOB(fd,14), RFIFOW(fd,15), RFIFOW(fd,17)); break;
	case 0x3036: mapif_parse_BreakGuild(fd, RFIFOL(fd,2)); break;
	case 0x3037: mapif_parse_GuildMessage(fd, RFIFOL(fd,4), RFIFOL(fd,8), (char*)RFIFOP(fd,12), RFIFOW(fd,2)-12); break;
	case 0x3038: mapif_parse_GuildMasterChange(fd,RFIFOL(fd,4),(const char*)RFIFOP(fd,8),RFIFOW(fd,2)-8); break;
	case 0x3039: mapif_parse_GuildBasicInfoChange(fd, RFIFOL(fd,4), RFIFOW(fd,8), (const char*)RFIFOP(fd,10), RFIFOW(fd,2)-10); break;
	case 0x303A: mapif_parse_GuildMemberInfoChange(fd, RFIFOL(fd,4), RFIFOL(fd,8), RFIFOL(fd,12), RFIFOW(fd,16), (const char*)RFIFOP(fd,18), RFIFOW(fd,2)-18); break;
	case 0x303B: mapif_parse_GuildPosition(fd, RFIFOL(fd,4), RFIFOL(fd,8), (struct guild_position *)RFIFOP(fd,12)); break;
	case 0x303C: mapif_parse_GuildSkillUp(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10)); break;
	case 0x303D: mapif_parse_GuildAlliance(fd, RFIFOL(fd,2), RFIFOL(fd,6), RFIFOL(fd,10), RFIFOL(fd,14), RFIFOB(fd,18)); break;
	case 0x303E: mapif_parse_GuildNotice(fd, RFIFOL(fd,2), (const char*)RFIFOP(fd,6), (const char*)RFIFOP(fd,66)); break;
	case 0x303F: mapif_parse_GuildEmblem(fd, RFIFOW(fd,2)-12, RFIFOL(fd,4), RFIFOL(fd,8), (const char*)RFIFOP(fd,12)); break;
	case 0x3040: mapif_parse_GuildCastleDataLoad(fd, RFIFOW(fd,2), RFIFOB(fd,4)); break;
	case 0x3041: mapif_parse_GuildCastleDataSave(fd, RFIFOW(fd,2), RFIFOB(fd,4), RFIFOL(fd,5)); break;

	default:
		return 0;
	}

	return 1;
}
开发者ID:AxlSckay,项目名称:Ragnarok-OldTimes,代码行数:33,代码来源:int_guild.c

示例7: mapif_parse_CreatePet

int mapif_parse_CreatePet (int fd)
{
	RFIFOHEAD (fd);
	mapif_create_pet (fd, RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOW (fd, 10), RFIFOW (fd, 12), RFIFOW (fd, 14), RFIFOW (fd, 16), RFIFOW (fd, 18),
					  RFIFOW (fd, 20), RFIFOB (fd, 22), RFIFOB (fd, 23), (char *) RFIFOP (fd, 24));
	return 0;
}
开发者ID:Celso1415,项目名称:Fusion,代码行数:7,代码来源:int_pet.c

示例8: mapif_parse_SaveGuildStorage

int mapif_parse_SaveGuildStorage(int fd)
{
	int guild_id;
	int len;

	RFIFOHEAD(fd);
	guild_id = RFIFOL(fd,8);
	len = RFIFOW(fd,2);

	if( sizeof(struct guild_storage) != len - 12 )
	{
		ShowError("[Inter_Stor] - Dados corrompidos! (%d != %d)\n", sizeof(struct guild_storage), len - 12);
	}
	else
	{
		if( SQL_ERROR == SQL->Query(sql_handle, "SELECT `guild_id` FROM `%s` WHERE `guild_id`='%d'", guild_db, guild_id) )
			Sql_ShowDebug(sql_handle);
		else if( SQL->NumRows(sql_handle) > 0 )
		{// guild exists
			SQL->FreeResult(sql_handle);
			guild_storage_tosql(guild_id, (struct guild_storage*)RFIFOP(fd,12));
			mapif_save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 0);
			return 0;
		}
		SQL->FreeResult(sql_handle);
	}
	mapif_save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 1);
	return 0;
}
开发者ID:AxeelDavis,项目名称:Cronus,代码行数:29,代码来源:int_storage.c

示例9: mapif_parse_SaveGuildStorage

int mapif_parse_SaveGuildStorage(int fd)
{
	int guild_id;
	int len;

	RFIFOHEAD(fd);
	guild_id = RFIFOL(fd,8);
	len = RFIFOW(fd,2);

	if (sizeof(struct guild_storage) != len - 12) {
		ShowError("inter storage: data size mismatch: %d != %"PRIuS"\n", len - 12, sizeof(struct guild_storage));
	} else {
		if (SQL_ERROR == SQL->Query(inter->sql_handle, "SELECT `guild_id` FROM `%s` WHERE `guild_id`='%d'", guild_db, guild_id)) {
			Sql_ShowDebug(inter->sql_handle);
		} else if(SQL->NumRows(inter->sql_handle) > 0) {
			// guild exists
			SQL->FreeResult(inter->sql_handle);
			inter_storage->guild_storage_tosql(guild_id, RFIFOP(fd,12));
			mapif->save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 0);
			return 0;
		}
		SQL->FreeResult(inter->sql_handle);
	}
	mapif->save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 1);
	return 0;
}
开发者ID:Asheraf,项目名称:Renewal,代码行数:26,代码来源:int_storage.c

示例10: mapif_parse_SaveGuildStorage

int mapif_parse_SaveGuildStorage(int fd)
{
	int guild_id;
	int len;

	RFIFOHEAD(fd);
	guild_id = RFIFOL(fd,8);
	len = RFIFOW(fd,2);

	if(sizeof(struct guild_storage) != len - 12) {
		ShowError(read_message("Source.char.storage_saveguildstorage"), sizeof(struct guild_storage), len - 12);
	} else {
		if(SQL_ERROR == Sql_Query(sql_handle, "SELECT `guild_id` FROM `%s` WHERE `guild_id`='%d'", guild_db, guild_id))
			Sql_ShowDebug(sql_handle);
		else if(Sql_NumRows(sql_handle) > 0) {
			// guild exists
			Sql_FreeResult(sql_handle);
			guild_storage_tosql(guild_id, (struct guild_storage *)RFIFOP(fd,12));
			mapif_save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 0);
			return 0;
		}
		Sql_FreeResult(sql_handle);
	}
	mapif_save_guild_storage_ack(fd, RFIFOL(fd,4), guild_id, 1);
	return 0;
}
开发者ID:Chocolate31,项目名称:eamod,代码行数:26,代码来源:int_storage.c

示例11: inter_party_parse_frommap

// map server からの通信
// ・1パケットのみ解析すること
// ・パケット長データはinter.cにセットしておくこと
// ・パケット長チェックや、RFIFOSKIPは呼び出し元で行われるので行ってはならない
// ・エラーなら0(false)、そうでないなら1(true)をかえさなければならない
int inter_party_parse_frommap (int fd)
{
	RFIFOHEAD (fd);

	switch (RFIFOW (fd, 0))
	{
		case 0x3020: mapif_parse_CreateParty (fd, (char *) RFIFOP (fd, 4), RFIFOB (fd, 28), RFIFOB (fd, 29), (struct party_member *) RFIFOP (fd, 30)); break;

		case 0x3021: mapif_parse_PartyInfo (fd, RFIFOL (fd, 2), RFIFOL (fd, 6)); break;

		case 0x3022: mapif_parse_PartyAddMember (fd, RFIFOL (fd, 4), (struct party_member *) RFIFOP (fd, 8)); break;

		case 0x3023: mapif_parse_PartyChangeOption (fd, RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOW (fd, 10), RFIFOW (fd, 12)); break;

		case 0x3024: mapif_parse_PartyLeave (fd, RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOL (fd, 10)); break;

		case 0x3025: mapif_parse_PartyChangeMap (fd, RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOL (fd, 10), RFIFOW (fd, 14), RFIFOB (fd, 16), RFIFOW (fd, 17)); break;

		case 0x3026: mapif_parse_BreakParty (fd, RFIFOL (fd, 2)); break;

		case 0x3027: mapif_parse_PartyMessage (fd, RFIFOL (fd, 4), RFIFOL (fd, 8), (char *) RFIFOP (fd, 12), RFIFOW (fd, 2) - 12); break;

		case 0x3029: mapif_parse_PartyLeaderChange (fd, RFIFOL (fd, 2), RFIFOL (fd, 6), RFIFOL (fd, 10)); break;

		default:
			return 0;
	}

	return 1;
}
开发者ID:Zellukas,项目名称:Radices,代码行数:35,代码来源:int_party.c

示例12: mapif_parse_CreateHomunculus

int mapif_parse_CreateHomunculus(int fd)
{
	RFIFOHEAD(fd);
	memcpy(homun_pt, RFIFOP(fd,8), sizeof(struct s_homunculus));
	// Save in sql db
	if(mapif_save_homunculus(fd,RFIFOL(fd,4), homun_pt))
		return mapif_homunculus_created(fd, RFIFOL(fd,4), homun_pt, 1); // send homun_id
	return mapif_homunculus_created(fd, RFIFOL(fd,4), homun_pt, 0); // fail
}
开发者ID:AxlSckay,项目名称:Ragnarok-OldTimes,代码行数:9,代码来源:int_homun.c

示例13: inter_storage_parse_frommap

int inter_storage_parse_frommap(int fd)
{
	RFIFOHEAD(fd);
	switch(RFIFOW(fd,0)){
	case 0x3018: mapif_parse_LoadGuildStorage(fd); break;
	case 0x3019: mapif_parse_SaveGuildStorage(fd); break;
	default:
		return 0;
	}
	return 1;
}
开发者ID:karanjagdev,项目名称:hashield,代码行数:11,代码来源:int_storage.c

示例14: inter_pet_parse_frommap

int inter_pet_parse_frommap(int fd){
	RFIFOHEAD(fd);
	switch(RFIFOW(fd, 0)){
	case 0x3080: mapif_parse_CreatePet(fd); break;
	case 0x3081: mapif_parse_LoadPet(fd); break;
	case 0x3082: mapif_parse_SavePet(fd); break;
	case 0x3083: mapif_parse_DeletePet(fd); break;
	default:
		return 0;
	}
	return 1;
}
开发者ID:544a,项目名称:rathena,代码行数:12,代码来源:int_pet.c

示例15: inter_homunculus_parse_frommap

int inter_homunculus_parse_frommap(int fd){
	RFIFOHEAD(fd);
	switch(RFIFOW(fd, 0)){
	case 0x3090: mapif_parse_CreateHomunculus(fd); break;
	case 0x3091: mapif_load_homunculus(fd); break;
	case 0x3092: mapif_save_homunculus(fd, RFIFOW(fd,4), (struct s_homunculus*) RFIFOP(fd, 8)); break;
	case 0x3093: mapif_delete_homunculus(fd); break;  // doesn't need to be parse, very simple packet...
	case 0x3094: mapif_rename_homun(fd, RFIFOL(fd, 2), RFIFOL(fd, 6), RFIFOP(fd, 10)); break;
	default:
		return 0;
	}
	return 1;
}
开发者ID:AxlSckay,项目名称:Ragnarok-OldTimes,代码行数:13,代码来源:int_homun.c


注:本文中的RFIFOHEAD函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。