int Public_Detail::serialize(Block_Buffer &buffer) const { buffer.write_string(plot_id); buffer.write_int32(plot_step); buffer.write_bool(plot_switch); buffer.write_uint16(plot_info.size()); for (String_Int_Map::const_iterator it = plot_info.begin(); it != plot_info.end(); ++it) { buffer.write_string(it->first); buffer.write_int32(it->second); } buffer.write_int32(awake_lvl); buffer.write_uint16(artifacts.size()); for (Artifact_Map::const_iterator it = artifacts.begin(); it != artifacts.end(); ++it) { it->second.serialize(buffer); } buffer.write_uint16(fornotice_gifts_status.size()); for (Fornotice_Gifts_Status_Map::const_iterator it = fornotice_gifts_status.begin(); it != fornotice_gifts_status.end(); ++it) { buffer.write_int32(it->first); buffer.write_int8(it->second); } buffer.write_int32(exploit_val); buffer.write_int32(exploit_lvl); return 0; }
int DragonInfo::serialize(Block_Buffer &buffer) const { buffer.write_uint8(progress); buffer.write_uint8(feeling); buffer.write_uint32(power); buffer.write_uint32(armor); buffer.write_uint32(stamina); buffer.write_uint32(power_level); buffer.write_uint32(armor_level); buffer.write_uint32(stamina_level); buffer.write_uint32(hero_power); buffer.write_uint32(hero_armor); buffer.write_uint32(hero_stamina); buffer.write_uint32(hero_power_level); buffer.write_uint32(hero_armor_level); buffer.write_uint32(hero_stamina_level); buffer.write_bool(is_play_dragon); buffer.write_uint32(energy); buffer.write_uint32(crit); buffer.write_uint32(prevent_crit); buffer.write_uint32(crit_level); buffer.write_uint32(prevent_crit_level); buffer.write_uint32(hero_crit); buffer.write_uint32(hero_prevent_crit); buffer.write_uint32(hero_crit_level); buffer.write_uint32(hero_prevent_crit_level); return 0; }
void Map_Team::serialize(Block_Buffer &buf) { buf.write_int8(type_); buf.write_string(words_); buf.write_int32(scene_id_); buf.write_int8(degree_); buf.write_uint32(team_index_); buf.write_int64(team_id_); buf.write_int64(team_id_for_scene_); buf.write_int64(leader_role_id_); uint16_t len = 0; len = team_member_set_.size(); buf.write_uint16(len); for (Role_Hash_Set::iterator it = team_member_set_.begin(); it != team_member_set_.end(); ++it) { buf.write_int64(*it); } len = offline_teamer_map_.size(); buf.write_uint16(len); for (RoleID_OnlineMap_TeamerInfo_Map::iterator it = offline_teamer_map_.begin(); it != offline_teamer_map_.end(); ++it) { buf.write_int64(it->first); } buf.write_int8(in_battle_); len = lineup_.size(); buf.write_uint16(len); for (Int_Role_Id_Vec::iterator it = lineup_.begin(); it != lineup_.end(); ++it) { it->serialize(buf); } buf.write_int32(enter_level_); buf.write_int16(fail_times_); buf.write_int16(match_fail_); buf.write_bool(is_not_first_team_fb_); }
void Msg_Struct::build_buffer_arg(const Field_Info &field_info, Block_Buffer &buffer, Isolate* isolate, v8::Local<v8::Value> value) { if(field_info.field_type == "int8") { int8_t val = 0; if (value->IsInt32()) { val = value->Int32Value(isolate->GetCurrentContext()).FromJust(); } buffer.write_int8(val); } else if(field_info.field_type == "int16") { int16_t val = 0; if (value->IsInt32()) { val = value->Int32Value(isolate->GetCurrentContext()).FromJust(); } buffer.write_int16(val); } else if(field_info.field_type == "int32") { int32_t val = 0; if (value->IsInt32()) { val = value->Int32Value(isolate->GetCurrentContext()).FromJust(); } buffer.write_int32(val); } else if(field_info.field_type == "int64") { int64_t val = 0; if (value->IsNumber()) { val = value->NumberValue(isolate->GetCurrentContext()).FromJust(); } buffer.write_int64(val); } else if(field_info.field_type == "double") { double val = 0; if (value->IsNumber()) { val = value->NumberValue(isolate->GetCurrentContext()).FromJust(); } buffer.write_double(val); } else if(field_info.field_type == "bool") { bool val = 0; if (value->IsBoolean()) { val = value->BooleanValue(isolate->GetCurrentContext()).FromJust(); } buffer.write_bool(val); } else if(field_info.field_type == "string") { std::string val = ""; if (value->IsString()) { String::Utf8Value str(value->ToString(isolate->GetCurrentContext()).ToLocalChecked()); std::stringstream stream; stream << ToCString(str); val = stream.str(); } buffer.write_string(val); } else { LOG_ERROR("Can not find the field_type:%s, struct_name:%s", field_info.field_type.c_str(), struct_name().c_str()); } }
int DragonBuildingInfo::serialize(Block_Buffer &buffer) const { buffer.write_uint32(id); buffer.write_uint8(type); buffer.write_uint16(level); buffer.write_uint8(status); buffer.write_uint32(production); buffer.write_bool(is_gain); buffer.write_uint64((uint64_t)begin_upgrade_time.sec()); buffer.write_uint64((uint64_t)last_output_production_time.sec()); buffer.write_uint8(order); buffer.write_uint8(consume_type); return 0; }
int Operating::offline_dragon_vale_special_notice(role_id_t role_id, bool is_special) { if (!role_id) { MSG_USER("error role id"); return -1; } Block_Buffer buf; buf.make_message(MONGO_OPERATING_OFFLINE_DATA); uint32_t op_type = OPERATING_OFFLINE_DRAGON_VALE_SPECIAL; buf.write_uint32(op_type); buf.write_int64(role_id); buf.write_bool(is_special); buf.finish_message(); DB_MANAGER->push_data_block(buf, 0); return 0; }
int Fighter_Detail::serialize(Block_Buffer &buffer) const { buffer.write_int64(role_id); power.serialize(buffer); agility.serialize(buffer); dexterity.serialize(buffer); armor.serialize(buffer); stamina.serialize(buffer); physical_attack.serialize(buffer); spell_attack.serialize(buffer); physical_defense.serialize(buffer); spell_defense.serialize(buffer); hit_rate.serialize(buffer); avoid.serialize(buffer); ignore_def.serialize(buffer); blood_max.serialize(buffer); cure.serialize(buffer); cure_rate.serialize(buffer); sing_rate.serialize(buffer); crit.serialize(buffer); crit_def.serialize(buffer); init_morale.serialize(buffer); morale_caps.serialize(buffer); crit_hurt.serialize(buffer); crit_hurt_sub.serialize(buffer); hit_rate_addition.serialize(buffer); avoid_rate_addition.serialize(buffer); crit_rate_addition.serialize(buffer); crit_def_rate_addition.serialize(buffer); speed.serialize(buffer); blood_current.serialize(buffer); morale_current.serialize(buffer); strength_current.serialize(buffer); strength_max.serialize(buffer); blood_pool_current.serialize(buffer); blood_pool_max.serialize(buffer); ignore_def_rate.serialize(buffer); status_hit_rate.serialize(buffer); status_def_rate.serialize(buffer); blood_steal.serialize(buffer); phy_hurt_fix.serialize(buffer); phy_hurt_rate.serialize(buffer); spell_hurt_fix.serialize(buffer); spell_hurt_rate.serialize(buffer); hurt_fix.serialize(buffer); hurt_rate.serialize(buffer); be_hurt_fix.serialize(buffer); be_hurt_rate.serialize(buffer); pk_hurt_add.serialize(buffer); pk_hurt_sub.serialize(buffer); phy_hurt_rate_sub.serialize(buffer); spell_hurt_rate_sub.serialize(buffer); skill_hurt_rate.serialize(buffer); human_add.serialize(buffer); elf_add.serialize(buffer); orc_add.serialize(buffer); dragon_add.serialize(buffer); undead_add.serialize(buffer); demon_add.serialize(buffer); human_sub.serialize(buffer); elf_sub.serialize(buffer); orc_sub.serialize(buffer); dragon_sub.serialize(buffer); undead_sub.serialize(buffer); demon_sub.serialize(buffer); summon_add.serialize(buffer); summon_sub.serialize(buffer); be_cure_rate.serialize(buffer); effect_rate.serialize(buffer); pve_hurt_add.serialize(buffer); pve_hurt_sub.serialize(buffer); dizz_strengthen.serialize(buffer); dizz_weaken.serialize(buffer); buffer.write_int32(phy_power_recover_time); buffer.write_int32(phy_power_buy_times); buffer.write_int32(level); buffer.write_double(experience); buffer.write_double(elite_btl_morale); buffer.write_int32(force); buffer.write_int32(highest_force); buffer.write_int32(ttl_force); buffer.write_int32(ttl_skill_points_); buffer.write_int32(default_skill); buffer.write_int32(cur_used_talent_); buffer.write_int32(reset_skill_times); buffer.write_uint16(talent_map.size()); for (Talent_Map::const_iterator it = talent_map.begin(); it != talent_map.end(); ++it) { it->second.serialize(buffer); } buffer.write_uint16(extra_skill_vec.size()); for (Skill_DB_Info_Vec::const_iterator it = extra_skill_vec.begin(); it != extra_skill_vec.end(); ++it) { it->serialize(buffer); } buffer.write_bool(is_clear_moral_); return 0; }
int Dragon_Vale_Detail::serialize(Block_Buffer &buffer) const { buffer.write_int64(role_id); buffer.write_int64(target_player_id); buffer.write_bool(is_rob_enter_dragon_vale); buffer.write_int64(uuid); buffer.write_bool(is_gold_mine_max_storage); buffer.write_bool(is_moon_well_max_storage); buffer.write_bool(is_totem_max_storage); buffer.write_uint8(build_gold_mine_num); buffer.write_uint8(build_moon_well_num); buffer.write_uint8(build_totem_num); buffer.write_uint8(build_queue_num); buffer.write_uint8(all_open_build_queue_num); uint8_t size = dragon_building_info_map.size(); buffer.write_uint8(size); for(DragonBuildingInfoMap::const_iterator it = dragon_building_info_map.begin(); it != dragon_building_info_map.end(); ++it) { it->second.serialize(buffer); } buffer.write_bool(is_dragon_born); buffer.write_uint64((uint64_t)begin_born_time.sec()); dragon_info.serialize(buffer); buffer.write_uint64((uint64_t)begin_play_dragon_interval_time.sec()); buffer.write_uint64((uint64_t)begin_down_feeling_time.sec()); buffer.write_bool(is_vip_down_to_zero); buffer.write_uint32(matched_num); size = thief_id_quality_map.size(); buffer.write_uint8(size); for(Thief_Id_Quality_Map::const_iterator it = thief_id_quality_map.begin(); it != thief_id_quality_map.end(); ++it) { buffer.write_int64(it->first); buffer.write_int64(it->second); } buffer.write_uint64((uint64_t)begin_refresh_thief_time.sec()); buffer.write_uint8(star_num); buffer.write_uint8(award_foot_num); buffer.write_bool(is_special); size = foot_info_map.size(); buffer.write_uint8(size); for(Foot_Info_Map::const_iterator it = foot_info_map.begin(); it != foot_info_map.end(); ++it) { buffer.write_int64(it->first); buffer.write_uint8(it->second.sex); buffer.write_string(it->second.name); } uint32_t size_32 = foot_id_set.size(); buffer.write_uint32(size_32); for(Foot_Id_Set::const_iterator it = foot_id_set.begin(); it != foot_id_set.end(); ++it) { buffer.write_int64(*it); } buffer.write_bool(is_yesterday_login); buffer.write_uint8(dragon_heart_num); size = notice_board_list.size(); buffer.write_uint8(size); for(Notice_Board_List::const_iterator it = notice_board_list.begin(); it != notice_board_list.end(); ++it) { it->serialize(buffer); } buffer.write_bool(is_rob_protect); buffer.write_uint64((uint64_t)begin_rob_protect_time.sec()); buffer.write_bool(is_first_enter_after_robbed); buffer.write_bool(is_in_robbed_dragon_vale); buffer.write_uint64((uint64_t)begin_in_robbed_dragon_vale_time.sec()); size = cancel_create_building_set.size(); buffer.write_uint8(size); for(Cancel_Create_Building_Set::const_iterator it = cancel_create_building_set.begin(); it != cancel_create_building_set.end(); ++it) { buffer.write_uint8(*it); } buffer.write_bool(is_dragon_vale_open); buffer.write_uint64((uint64_t)begin_no_enter_time.sec()); buffer.write_uint32(left_time); buffer.write_uint32(play_dragon_num); buffer.write_uint32(drive_thief_num); return 0; }
int Expedition_Manager_Data::serialize(Block_Buffer &w) const { w.write_uint32(inter_); w.write_uint16(opened_uuid_opentime_map_.size()); for (Role_Id_Time_Map::const_iterator it = opened_uuid_opentime_map_.begin();//服务器的开服时间 it != opened_uuid_opentime_map_.end(); ++it) { w.write_int64(it->first); it->second.serialize(w); } w.write_uint16(gang_id_uuid_map_.size()); for (RoleID_RoleID_Map::const_iterator it = gang_id_uuid_map_.begin(); it != gang_id_uuid_map_.end(); ++it) { w.write_int64(it->first); w.write_int64(it->second); } last_reset_time_.serialize(w); w.write_uint16(first_gang_rank_.size()); for (Role_UInt_Map::const_iterator it = first_gang_rank_.begin(); it != first_gang_rank_.end(); ++it) { w.write_int64(it->first); w.write_uint32(it->second); } w.write_bool(has_init_); w.write_uint16(uuid_has_init_.size()); for (Role_Bool_Map::const_iterator it = uuid_has_init_.begin(); it != uuid_has_init_.end(); ++it) { w.write_int64(it->first); w.write_bool(it->second); } w.write_uint16(gang_rank_map_.size()); for (Gang_ExpeditionGangRankInfo_Map::const_iterator it = gang_rank_map_.begin(); it != gang_rank_map_.end(); ++it) { w.write_int64(it->first); it->second.serialize(w); } w.write_uint16(uuid_gang_rank_map_.size()); for (Role_GangExpeditionGangRankInfoMap_Map::const_iterator it_igrm = uuid_gang_rank_map_.begin(); it_igrm != uuid_gang_rank_map_.end(); ++it_igrm) { w.write_int64(it_igrm->first); w.write_uint16(gang_rank_map_.size()); for (Gang_ExpeditionGangRankInfo_Map::const_iterator it = it_igrm->second.begin(); it != it_igrm->second.end(); ++it) { w.write_int64(it->first); it->second.serialize(w); } } w.write_uint16(gang_rank_sync_success_.size()); for (Role_Hash_Set::iterator it = gang_rank_sync_success_.begin();//公会排名获取成功服务器uuid列表 it != gang_rank_sync_success_.end(); ++it) { w.write_int64(*it); } w.write_uint16(gang_rank_sync_new_vec_.size()); for (Role_Vec::const_iterator it = gang_rank_sync_new_vec_.begin(); it != gang_rank_sync_new_vec_.end(); ++it) { w.write_int64(*it); } w.write_uint16(gang_id_point_id_.size()); for (Role_UInt_Map::const_iterator it = gang_id_point_id_.begin(); it != gang_id_point_id_.end(); ++it) { w.write_int64(it->first); w.write_uint32(it->second); } w.write_uint16(gang_id_cur_line_.size()); for (Role_Int_Map::const_iterator it = gang_id_cur_line_.begin(); it != gang_id_cur_line_.end(); ++it) { w.write_int64(it->first); w.write_int32(it->second); } w.write_uint16(uuid_gang_id_point_id_.size()); for (Role_RoleUIntMap_Map::const_iterator it = uuid_gang_id_point_id_.begin(); it != uuid_gang_id_point_id_.end(); ++it) { w.write_int64(it->first); w.write_uint16(it->second.size()); for (Role_UInt_Map::const_iterator it_t = it->second.begin(); it_t != it->second.end(); ++it_t) { w.write_int64(it_t->first); w.write_uint32(it_t->second); } } w.write_uint16(uuid_gang_id_cur_line_.size()); for (Role_RoleIntMap_Map::const_iterator it = uuid_gang_id_cur_line_.begin(); it != uuid_gang_id_cur_line_.end(); ++it) { w.write_int64(it->first); w.write_uint16(it->second.size()); for (Role_Int_Map::const_iterator it_t = it->second.begin(); it_t != it->second.end(); ++it_t) { w.write_int64(it_t->first); w.write_int32(it_t->second); } } ; // scene-- w.write_uint16(line_scene_map_.size()); for (Line_ExpeditionSceneData_Map::const_iterator it = line_scene_map_.begin(); it != line_scene_map_.end(); ++it) { w.write_uint32(it->first); it->second.serialize(w); } w.write_uint16(uuid_line_scene_map_.size()); for (UUID_LineExpeditionSceneData_Map_Map::const_iterator it_ulsm = uuid_line_scene_map_.begin(); it_ulsm != uuid_line_scene_map_.end(); ++it_ulsm) { w.write_int64(it_ulsm->first); w.write_uint16(it_ulsm->second.size()); for (Line_ExpeditionSceneData_Map::const_iterator it = it_ulsm->second.begin(); it != it_ulsm->second.end(); ++it) { w.write_uint32(it->first); it->second.serialize(w); } } return 0; }