void Logic_Announce::create_handsel_flowers_announce(const int32_t ann_id, const role_id_t role_id, const Chat_Item_Info& item) { make_announce(ANNOUNCE_DISTRICT_SYSTEM, ann_id); { Logic_Player* self = player_self(); Role_Info role_info; role_info.career = career(); role_info.gender = self->base_detail().gender; role_info.level = level(); role_info.role_id = player_self()->role_id(); role_info.role_name = role_name(); role_info.vip_level = self->vip(); role_info.guild_name = self->base_detail().gang_name; announce_push_role( role_info ); } { //announce_push_item(item); } { DB_View::ID_Player_View_Map::iterator iter = LOGIC_MONITOR->db_view()->id_player_view_map.find(role_id); if (iter == LOGIC_MONITOR->db_view()->id_player_view_map.end()) { MSG_USER("player(role_id=%ld) is not in db_view", role_id); return; } Role_Info role_info; role_info.career = iter->second->career; role_info.gender = iter->second->gender; role_info.level = iter->second->level; role_info.role_id = iter->second->role_id; role_info.role_name = iter->second->role_name; role_info.vip_level = iter->second->vip(); role_info.guild_name = iter->second->gang_name; announce_push_role( role_info ); } announce_send(); }
void get_master_player_by_name(const FunctionCallbackInfo<Value>& args) { if (args.Length() != 1) { LOG_ERROR("get_master_player_by_name args error, length: %d\n", args.Length()); args.GetReturnValue().SetNull(); return; } String::Utf8Value str(args[0]); std::string role_name(ToCString(str)); Master_Player *player = MASTER_MANAGER->find_role_name_master_player(role_name); if (player) { args.GetReturnValue().Set(wrap_master_player(args.GetIsolate(), player)); } else { //设置对象为空 args.GetReturnValue().SetNull(); } }
void Logic_Announce::create_gang_announce(int64_t gang_id, const std::string& gang_name) { make_announce(ANNOUNCE_DISTRICT_SYSTEM, ANNOUNCE_ID_CREATE_GANG); Logic_Player* self = player_self(); Role_Info role_info; role_info.career = career(); role_info.combat = self->fighter_detail().force; role_info.gender = self->base_detail().gender; role_info.level = level(); role_info.role_id = role_id(); role_info.role_name = role_name(); role_info.vip_level = self->vip(); role_info.guild_name = gang_name; announce_push_role( role_info ); announce_push_text( gang_name ); announce_send(); }
void Logic_Announce::create_arena_rise_announce(const std::string& group_name){ make_announce(ANNOUNCE_DISTRICT_SYSTEM, ANNOUNCE_ID_ARENA_RISE); Logic_Player* self = player_self(); Role_Info role_info; role_info.career = career(); // TODO fill combat value role_info.combat = 0; role_info.gender = self->base_detail().gender; role_info.level = level(); role_info.role_id = player_self()->role_id(); role_info.role_name = role_name(); role_info.vip_level = self->vip(); role_info.guild_name = self->base_detail().gang_name; announce_push_role( role_info ); announce_push_text( group_name ); announce_send(); }
int Player_Monster::battle_appear_info(Block_Buffer &buf) { // size_t rd_idx = buf.get_read_idx(); size_t wr_begin_idx = buf.get_write_idx(); size_t wr_end_idx = 0; uint32_t len = 0; // fill head buf.make_message(ACTIVE_FIGHTER_APPEAR); MSG_81000008 msg; msg.fighter_info.role_id = role_id(); msg.fighter_info.role_name = role_name(); msg.fighter_info.career = career_; msg.fighter_info.gender = gender_; msg.fighter_info.position.val_1 = mover_detail().battle_position.pos; msg.fighter_info.position.val_2 = mover_detail().battle_position.idx; msg.fighter_info.hp_curr = blood_current(); msg.fighter_info.hp_max = blood_max(); msg.fighter_info.avatar = avatar_vec; boost::unordered_set<Property_Type> property_set; property_set.insert(PT_MORALE_CAPS); property_set.insert(PT_MORALE_CURRENT); for (boost::unordered_set<Property_Type>::iterator it = property_set.begin(); it != property_set.end(); ++it) { msg.fighter_info.init_props.push_back(Prop_Change(*it)); } for (std::vector<Prop_Change>::iterator pc_it = msg.fighter_info.init_props.begin(); pc_it != msg.fighter_info.init_props.end(); ++pc_it) { (*pc_it).current_val = fighter_detail().fetch_fight_property(Property_Type((*pc_it).prop_type)); } msg.serialize(buf); // refill len in head wr_end_idx = buf.get_write_idx(); len = wr_end_idx - wr_begin_idx - sizeof(uint32_t); buf.set_write_idx(wr_begin_idx); buf.write_uint32(len); buf.set_write_idx(wr_end_idx); return 0; }
void Logic_Announce::create_vip_turntable_announce(const Chat_Item_Info& item) { make_announce(ANNOUNCE_DISTRICT_SYSTEM, ANN_ID_VIP_TURNTABLE); { Logic_Player* self = player_self(); Role_Info role_info; role_info.career = career(); role_info.gender = self->base_detail().gender; role_info.level = level(); role_info.role_id = player_self()->role_id(); role_info.role_name = role_name(); role_info.vip_level = self->vip(); role_info.guild_name = self->base_detail().gang_name; announce_push_role( role_info ); } { announce_push_item(item); } announce_send(); }