• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ RFIFOHEAD函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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


示例16: 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;
#ifdef GP_BOUND_ITEMS
		case 0x3056: mapif->parse_ItemBoundRetrieve(fd); break;
#endif
		default:
			return 0;
	}
	return 1;
}
开发者ID:Asheraf,项目名称:Renewal,代码行数:14,代码来源:int_storage.c


示例17: mapif_parse_RegistryRequest

// Request the value of all registries.
int mapif_parse_RegistryRequest(int fd)
{
    RFIFOHEAD(fd);
    //Load Char Registry
    if (RFIFOB(fd,12))
        mapif_account_reg_reply(fd,RFIFOL(fd,2),RFIFOL(fd,6),3);
    //Load Account Registry
    if (RFIFOB(fd,11))
        mapif_account_reg_reply(fd,RFIFOL(fd,2),RFIFOL(fd,6),2);
    //Ask Login Server for Account2 values.
    if (RFIFOB(fd,10))
        request_accreg2(RFIFOL(fd,2),RFIFOL(fd,6)-2);
    return 1;
}
开发者ID:mleo1,项目名称:Ragnarok-OldTimes,代码行数:15,代码来源:inter.c


示例18: mapif_parse_SaveStorage

// storage data recive and save
int mapif_parse_SaveStorage(int fd) {
    int account_id;
    int len;
    RFIFOHEAD(fd);
    account_id=RFIFOL(fd,4);
    len=RFIFOW(fd,2);
    if(sizeof(struct storage)!=len-8) {
        ShowError("inter storage: data size error %d %d\n",sizeof(struct storage),len-8);
    } else {
        memcpy(&storage_pt[0],RFIFOP(fd,8),sizeof(struct storage));
        storage_tosql(account_id, storage_pt);
        mapif_save_storage_ack(fd,account_id);
    }
    return 0;
}
开发者ID:mleo1,项目名称:Ragnarok-OldTimes,代码行数:16,代码来源:int_storage.c


示例19: inter_storage_parse_frommap

/*==========================================
 * Parse packet from map-server
 *------------------------------------------*/
bool 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;
#ifdef BOUND_ITEMS
		case 0x3056: mapif_parse_itembound_retrieve(fd); break;
#endif
		case 0x308a: mapif_parse_StorageLoad(fd); break;
		case 0x308b: mapif_parse_StorageSave(fd); break;
		default:
			return false;
	}
	return true;
}
开发者ID:jrcollado1987,项目名称:rathena,代码行数:19,代码来源:int_storage.cpp


示例20: inter_achievement_parse_frommap

/**
 * Handles checking of map server packets and calls appropriate functions.
 * @param fd   socket descriptor.
 * @return 0 on failure, 1 on succes.
 */
static int inter_achievement_parse_frommap(int fd)
{
	RFIFOHEAD(fd);

	switch (RFIFOW(fd,0)) {
		case 0x3012:
			mapif->pLoadAchievements(fd);
			break;
		case 0x3013:
			mapif->pSaveAchievements(fd);
			break;
		default:
			return 0;
	}

	return 1;
}
开发者ID:4144,项目名称:Hercules,代码行数:22,代码来源:int_achievement.c



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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ RFIFOL函数代码示例发布时间:2022-05-30
下一篇:
C++ RFIFOB函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap