868 行
19 KiB
Protocol Buffer
868 行
19 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package honghuang;
|
|
|
|
option go_package = "github.com/honghuang-game/server/api/proto";
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// 通用结构
|
|
// -----------------------------------------------------------------------------
|
|
|
|
message CommonError {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
}
|
|
|
|
message Pagination {
|
|
int32 page = 1;
|
|
int32 page_size = 2;
|
|
int32 total = 3;
|
|
}
|
|
|
|
message ItemAmount {
|
|
string inventory_id = 1;
|
|
string item_id = 2;
|
|
int32 quantity = 3;
|
|
}
|
|
|
|
message CurrencyAmount {
|
|
string currency_code = 1;
|
|
string amount = 2; // 使用字符串保留 numeric 精度
|
|
}
|
|
|
|
message MaterialCost {
|
|
string inventory_id = 1;
|
|
int32 quantity = 2;
|
|
}
|
|
|
|
message RealmPoint {
|
|
int32 realm_tier = 1;
|
|
int32 minor_realm = 2;
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// 账号/角色
|
|
// -----------------------------------------------------------------------------
|
|
|
|
message RegisterReq {
|
|
string device_id = 1;
|
|
string platform = 2;
|
|
string invite_code = 3;
|
|
}
|
|
|
|
message LoginReq {
|
|
string device_id = 1;
|
|
string platform = 2;
|
|
string refresh_token = 3;
|
|
}
|
|
|
|
message AuthResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string player_id = 4;
|
|
string nakama_token = 5;
|
|
string expires_at = 6;
|
|
bool is_new = 7;
|
|
}
|
|
|
|
message CreateCharacterReq {
|
|
string name = 1;
|
|
string race_id = 2;
|
|
int32 birth_world_tier = 3;
|
|
}
|
|
|
|
message GetCharacterReq {
|
|
string character_id = 1;
|
|
bool with_snapshot = 2;
|
|
}
|
|
|
|
message CharacterResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string character_id = 4;
|
|
string player_id = 5;
|
|
string name = 6;
|
|
string race_id = 7;
|
|
int32 world_tier = 8;
|
|
int32 realm_tier = 9;
|
|
int32 minor_realm = 10;
|
|
string realm_status = 11;
|
|
int32 level = 12;
|
|
int64 exp = 13;
|
|
string status = 14;
|
|
string base_stats = 15; // JSON
|
|
string battle_stats = 16; // JSON
|
|
int32 san_current = 17;
|
|
int32 san_max = 18;
|
|
int32 crime_score = 19;
|
|
int32 heavenly_value = 20;
|
|
int32 karma_value = 21;
|
|
int32 reputation_score = 22;
|
|
string last_online_at = 23;
|
|
string created_at = 24;
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// 修炼/境界
|
|
// -----------------------------------------------------------------------------
|
|
|
|
message RealmReq {
|
|
string character_id = 1;
|
|
}
|
|
|
|
message RealmProgressResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
int32 realm_tier = 4;
|
|
int32 minor_realm = 5;
|
|
string realm_name = 6;
|
|
int64 exp = 7;
|
|
int64 exp_to_next = 8;
|
|
int32 max_unlocked_world_tier = 9;
|
|
string realm_status = 10;
|
|
bool breakthrough_ready = 11;
|
|
bool tribulation_pending = 12;
|
|
}
|
|
|
|
message BreakthroughReq {
|
|
string character_id = 1;
|
|
int32 target_minor_realm = 2;
|
|
repeated MaterialCost consumables = 3;
|
|
repeated string helper_ids = 4;
|
|
string idempotency_key = 5;
|
|
}
|
|
|
|
message BreakthroughResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
bool success = 4;
|
|
RealmPoint from = 5;
|
|
RealmPoint to = 6;
|
|
int64 exp_consumed = 7;
|
|
string record_id = 8;
|
|
string special_event = 9;
|
|
}
|
|
|
|
message TribulationReq {
|
|
string character_id = 1;
|
|
int32 target_realm_tier = 2;
|
|
string tribulation_type = 3;
|
|
repeated MaterialCost consumables = 4;
|
|
repeated string helper_ids = 5;
|
|
}
|
|
|
|
message TribulationResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string tribulation_id = 4;
|
|
string status = 5;
|
|
double base_success_rate = 6;
|
|
double modified_success_rate = 7;
|
|
int32 estimated_ticks = 8;
|
|
string start_at = 9;
|
|
string result = 10;
|
|
int32 from_realm_tier = 11;
|
|
int32 to_realm_tier = 12;
|
|
string penalties = 13; // JSON
|
|
repeated ItemAmount drops = 14;
|
|
}
|
|
|
|
message WorldBreakReq {
|
|
string character_id = 1;
|
|
int32 target_world_tier = 2;
|
|
string key_item_instance_id = 3;
|
|
bool confirm = 4;
|
|
}
|
|
|
|
message WorldBreakResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
bool success = 4;
|
|
int32 from_world_tier = 5;
|
|
int32 to_world_tier = 6;
|
|
int32 from_realm_tier = 7;
|
|
int32 to_realm_tier = 8;
|
|
string breakthrough_record_id = 9;
|
|
string world_event = 10;
|
|
bool ruin_generated = 11;
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// 战斗
|
|
// -----------------------------------------------------------------------------
|
|
|
|
message StartCombatReq {
|
|
string battle_type = 1;
|
|
string context_id = 2;
|
|
repeated string party_members = 3;
|
|
repeated string preferred_skills = 4;
|
|
}
|
|
|
|
message PvpChallengeReq {
|
|
string target_character_id = 1;
|
|
string bounty_id = 2;
|
|
bool use_paid_chance = 3;
|
|
}
|
|
|
|
message CombatResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string battle_id = 4;
|
|
string status = 5;
|
|
string result_summary = 6; // JSON
|
|
string drops = 7; // JSON
|
|
bool death_penalty_applied = 8;
|
|
int32 honor_points = 9;
|
|
int32 daily_pvp_count = 10;
|
|
int32 daily_pvp_limit = 11;
|
|
}
|
|
|
|
message BattleReportReq {
|
|
string battle_id = 1;
|
|
}
|
|
|
|
message BattleReportResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string battle_id = 4;
|
|
string type = 5;
|
|
int32 realm_tier = 6;
|
|
string game_timestamp = 7;
|
|
string attacker = 8; // JSON
|
|
string defender = 9; // JSON
|
|
string rounds = 10; // JSON
|
|
string result = 11; // JSON
|
|
string special_events = 12; // JSON
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// 功法
|
|
// -----------------------------------------------------------------------------
|
|
|
|
message ManualListReq {
|
|
string character_id = 1;
|
|
bool is_buffing = 2;
|
|
int32 page = 3;
|
|
int32 page_size = 4;
|
|
}
|
|
|
|
message ManualItem {
|
|
string manual_instance_id = 1;
|
|
string manual_id = 2;
|
|
string name = 3;
|
|
int32 current_layer = 4;
|
|
int32 max_layer = 5;
|
|
int32 proficiency = 6;
|
|
bool is_main = 7;
|
|
bool is_buffing = 8;
|
|
string domain = 9;
|
|
string element = 10;
|
|
string source_tag = 11;
|
|
}
|
|
|
|
message ManualListResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
int32 total = 4;
|
|
repeated ManualItem list = 5;
|
|
}
|
|
|
|
message UpgradeManualReq {
|
|
string character_id = 1;
|
|
string manual_instance_id = 2;
|
|
repeated MaterialCost materials = 3;
|
|
bool use_insight_item = 4;
|
|
string idempotency_key = 5;
|
|
}
|
|
|
|
message ManualResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string manual_instance_id = 4;
|
|
int32 old_layer = 5;
|
|
int32 new_layer = 6;
|
|
bool success = 7;
|
|
int32 proficiency_left = 8;
|
|
ItemAmount unlocked_skill = 9;
|
|
}
|
|
|
|
message BuffManualReq {
|
|
string character_id = 1;
|
|
string manual_instance_id = 2;
|
|
int32 slot_index = 3;
|
|
bool unset_others = 4;
|
|
}
|
|
|
|
message BuffSlotResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
int32 slot_index = 4;
|
|
string manual_instance_id = 5;
|
|
double buff_speed_bonus = 6;
|
|
string breakin_until = 7;
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// 技能
|
|
// -----------------------------------------------------------------------------
|
|
|
|
message LearnSkillReq {
|
|
string character_id = 1;
|
|
string source_type = 2;
|
|
string source_id = 3;
|
|
string custom_name = 4;
|
|
}
|
|
|
|
message SkillResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string skill_instance_id = 4;
|
|
string skill_id = 5;
|
|
string name = 6;
|
|
string source_tag = 7;
|
|
bool can_copy_to_jade_slip = 8;
|
|
int32 proficiency = 9;
|
|
string instance_data = 10; // JSON
|
|
}
|
|
|
|
message JadeSlipReq {
|
|
string character_id = 1;
|
|
string skill_instance_id = 2;
|
|
bool consume_proficiency = 3;
|
|
int32 copy_count = 4;
|
|
}
|
|
|
|
message ItemResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string inventory_id = 4;
|
|
string item_id = 5;
|
|
string name = 6;
|
|
int32 quantity = 7;
|
|
string instance_data = 8; // JSON
|
|
int32 proficiency_consumed = 9;
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// 经济/背包
|
|
// -----------------------------------------------------------------------------
|
|
|
|
message CurrencyReq {
|
|
string character_id = 1;
|
|
}
|
|
|
|
message CurrencyBalance {
|
|
string currency_code = 1;
|
|
string amount = 2;
|
|
string total_earned = 3;
|
|
string total_spent = 4;
|
|
}
|
|
|
|
message CurrencyBalancesResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
repeated CurrencyBalance balances = 4;
|
|
}
|
|
|
|
message MarketOrderReq {
|
|
string inventory_id = 1;
|
|
string currency_code = 2;
|
|
string unit_price = 3;
|
|
int32 quantity = 4;
|
|
int32 duration_hours = 5;
|
|
}
|
|
|
|
message MarketOrderResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string order_id = 4;
|
|
string status = 5;
|
|
string listed_at = 6;
|
|
string expired_at = 7;
|
|
double tax_rate = 8;
|
|
}
|
|
|
|
message OrderIdReq {
|
|
string order_id = 1;
|
|
}
|
|
|
|
message BuyOrderReq {
|
|
string order_id = 1;
|
|
int32 quantity = 2;
|
|
}
|
|
|
|
message TradeResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string trade_id = 4;
|
|
string order_id = 5;
|
|
int32 quantity = 6;
|
|
string total_price = 7;
|
|
string tax = 8;
|
|
string currency_code = 9;
|
|
repeated ItemAmount items = 10;
|
|
}
|
|
|
|
message AuctionListReq {
|
|
int32 world_tier = 1;
|
|
string auction_type = 2;
|
|
string category = 3;
|
|
string status = 4;
|
|
int32 page = 5;
|
|
int32 page_size = 6;
|
|
}
|
|
|
|
message AuctionItem {
|
|
string auction_id = 1;
|
|
string seller_id = 2;
|
|
string item_id = 3;
|
|
string category = 4;
|
|
string currency_code = 5;
|
|
string start_price = 6;
|
|
string status = 7;
|
|
string started_at = 8;
|
|
string ended_at = 9;
|
|
}
|
|
|
|
message AuctionListResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
int32 total = 4;
|
|
repeated AuctionItem list = 5;
|
|
}
|
|
|
|
message BidReq {
|
|
string auction_id = 1;
|
|
string amount = 2;
|
|
bool is_auto_bid = 3;
|
|
string auto_max_amount = 4;
|
|
}
|
|
|
|
message BidResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string bid_id = 4;
|
|
string auction_id = 5;
|
|
string amount = 6;
|
|
string deposit_paid = 7;
|
|
bool is_auto_bid = 8;
|
|
string bid_at = 9;
|
|
}
|
|
|
|
message IntelListReq {
|
|
string intel_type = 1;
|
|
int32 target_world_tier = 2;
|
|
int32 page = 3;
|
|
int32 page_size = 4;
|
|
}
|
|
|
|
message IntelItem {
|
|
string order_id = 1;
|
|
string seller_id = 2;
|
|
string intel_type = 3;
|
|
int32 target_world_tier = 4;
|
|
string content_summary = 5;
|
|
string currency_code = 6;
|
|
string price = 7;
|
|
int32 purchase_count = 8;
|
|
int32 max_purchase = 9;
|
|
}
|
|
|
|
message IntelListResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
int32 total = 4;
|
|
repeated IntelItem list = 5;
|
|
}
|
|
|
|
message BuyIntelReq {
|
|
string order_id = 1;
|
|
}
|
|
|
|
message IntelBuffResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string buff_id = 4;
|
|
string order_id = 5;
|
|
string detail_data = 6; // JSON
|
|
string expires_at = 7;
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// 社交/组织/悬赏
|
|
// -----------------------------------------------------------------------------
|
|
|
|
message CreateOrgReq {
|
|
string org_type = 1;
|
|
string name = 2;
|
|
string region_id = 3;
|
|
repeated string founding_members = 4;
|
|
}
|
|
|
|
message OrgIdReq {
|
|
string guild_id = 1;
|
|
}
|
|
|
|
message OrgResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string guild_id = 4;
|
|
string name = 5;
|
|
string org_type = 6;
|
|
string leader_id = 7;
|
|
int32 level = 8;
|
|
int32 member_limit = 9;
|
|
string created_at = 10;
|
|
}
|
|
|
|
message OrgMemberReq {
|
|
string guild_id = 1;
|
|
}
|
|
|
|
message OrgMemberResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string guild_id = 4;
|
|
string character_id = 5;
|
|
string role = 6;
|
|
string joined_at = 7;
|
|
}
|
|
|
|
message UpdateRoleReq {
|
|
string guild_id = 1;
|
|
string character_id = 2;
|
|
string role = 3;
|
|
string action = 4;
|
|
}
|
|
|
|
message RelationReq {
|
|
string relation_type = 1;
|
|
string target_character_id = 2;
|
|
string vow_path = 3;
|
|
}
|
|
|
|
message RelationResponseReq {
|
|
string relation_type = 1;
|
|
string request_id = 2;
|
|
string action = 3;
|
|
}
|
|
|
|
message RelationResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string request_id = 4;
|
|
string relation_type = 5;
|
|
string from_character_id = 6;
|
|
string to_character_id = 7;
|
|
string status = 8;
|
|
}
|
|
|
|
message PublishContractReq {
|
|
string contract_type = 1;
|
|
int32 difficulty = 2;
|
|
string currency_code = 3;
|
|
string base_reward = 4;
|
|
string target_params = 5; // JSON
|
|
string valid_until = 6;
|
|
}
|
|
|
|
message AcceptContractReq {
|
|
string contract_id = 1;
|
|
string accept_type = 2;
|
|
string disciple_id = 3;
|
|
repeated string party_members = 4;
|
|
}
|
|
|
|
message ContractResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string contract_id = 4;
|
|
string contract_type = 5;
|
|
string status = 6;
|
|
string publisher_id = 7;
|
|
string base_reward = 8;
|
|
string currency_code = 9;
|
|
string valid_until = 10;
|
|
}
|
|
|
|
message PublishBountyReq {
|
|
string bounty_type = 1;
|
|
string target_character_id = 2;
|
|
string reward_amount = 3;
|
|
string currency_code = 4;
|
|
int32 valid_days = 5;
|
|
bool is_anonymous = 6;
|
|
}
|
|
|
|
message BountyIdReq {
|
|
string bounty_id = 1;
|
|
}
|
|
|
|
message BountyResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string bounty_id = 4;
|
|
string bounty_type = 5;
|
|
string target_id = 6;
|
|
string reward_amount = 7;
|
|
string status = 8;
|
|
string valid_until = 9;
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// 地图/副本/事件
|
|
// -----------------------------------------------------------------------------
|
|
|
|
message RegionReq {
|
|
string region_id = 1;
|
|
}
|
|
|
|
message RegionResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string region_id = 4;
|
|
int32 world_tier = 5;
|
|
string name = 6;
|
|
bool is_safe_zone = 7;
|
|
string pvp_rules = 8; // JSON
|
|
string weather = 9;
|
|
int32 resource_density = 10;
|
|
int32 danger_level = 11;
|
|
int32 nearby_player_count = 12;
|
|
}
|
|
|
|
message NearbyReq {
|
|
string region_id = 1;
|
|
int32 limit = 2;
|
|
repeated string event_types = 3;
|
|
}
|
|
|
|
message NearbyResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string players = 4; // JSON
|
|
string events = 5; // JSON
|
|
}
|
|
|
|
message EnterInstanceReq {
|
|
string instance_id = 1;
|
|
repeated string party_members = 2;
|
|
string consumable_key_id = 3;
|
|
bool use_stamina = 4;
|
|
}
|
|
|
|
message InstanceRunResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string run_id = 4;
|
|
string instance_id = 5;
|
|
string status = 6;
|
|
double difficulty_coefficient = 7;
|
|
int32 consumed_keys = 8;
|
|
string started_at = 9;
|
|
}
|
|
|
|
message WorldEventReq {
|
|
int32 world_tier = 1;
|
|
string region_id = 2;
|
|
string event_scope = 3;
|
|
int32 page = 4;
|
|
int32 page_size = 5;
|
|
}
|
|
|
|
message WorldEventItem {
|
|
string event_id = 1;
|
|
string event_type = 2;
|
|
int32 world_tier = 3;
|
|
string region_id = 4;
|
|
string title = 5;
|
|
string content = 6;
|
|
string expires_at = 7;
|
|
}
|
|
|
|
message WorldEventListResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
int32 total = 4;
|
|
repeated WorldEventItem list = 5;
|
|
}
|
|
|
|
message PlayerEventReq {
|
|
string event_type = 1;
|
|
string region_id = 2;
|
|
repeated MaterialCost cost_items = 3;
|
|
string description = 4;
|
|
}
|
|
|
|
message WorldEventResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string event_id = 4;
|
|
string event_type = 5;
|
|
string status = 6;
|
|
string created_at = 7;
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// 弟子/领地
|
|
// -----------------------------------------------------------------------------
|
|
|
|
message DispatchReq {
|
|
string disciple_id = 1;
|
|
string target_type = 2;
|
|
string target_id = 3;
|
|
int32 duration_minutes = 4;
|
|
string insurance_item_id = 5;
|
|
}
|
|
|
|
message DiscipleMissionResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string mission_id = 4;
|
|
string disciple_id = 5;
|
|
string target_type = 6;
|
|
string started_at = 7;
|
|
string ended_at = 8;
|
|
string status = 9;
|
|
}
|
|
|
|
message MissionIdReq {
|
|
string mission_id = 1;
|
|
}
|
|
|
|
message MissionRewardResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string mission_id = 4;
|
|
string result = 5;
|
|
string rewards = 6; // JSON
|
|
}
|
|
|
|
message TerritoryBidReq {
|
|
string guild_id = 1;
|
|
string territory_id = 2;
|
|
string bid_amount = 3;
|
|
bool is_renewal = 4;
|
|
}
|
|
|
|
message TerritoryBidResp {
|
|
int32 code = 1;
|
|
string message = 2;
|
|
string trace_id = 3;
|
|
string bid_id = 4;
|
|
string territory_id = 5;
|
|
string bid_amount = 6;
|
|
string deposit_locked = 7;
|
|
string window_end_at = 8;
|
|
}
|
|
|
|
// -----------------------------------------------------------------------------
|
|
// 服务定义
|
|
// -----------------------------------------------------------------------------
|
|
|
|
service AuthService {
|
|
rpc Register (RegisterReq) returns (AuthResp);
|
|
rpc Login (LoginReq) returns (AuthResp);
|
|
}
|
|
|
|
service CharacterService {
|
|
rpc CreateCharacter (CreateCharacterReq) returns (CharacterResp);
|
|
rpc GetCharacter (GetCharacterReq) returns (CharacterResp);
|
|
}
|
|
|
|
service RealmService {
|
|
rpc GetRealmProgress (RealmReq) returns (RealmProgressResp);
|
|
rpc AttemptBreakthrough (BreakthroughReq) returns (BreakthroughResp);
|
|
rpc StartTribulation (TribulationReq) returns (TribulationResp);
|
|
rpc GetTribulationResult (TribulationReq) returns (TribulationResp);
|
|
rpc WorldBreak (WorldBreakReq) returns (WorldBreakResp);
|
|
}
|
|
|
|
service BattleService {
|
|
rpc StartCombat (StartCombatReq) returns (CombatResp);
|
|
rpc GetBattleReport (BattleReportReq) returns (BattleReportResp);
|
|
rpc PvpChallenge (PvpChallengeReq) returns (CombatResp);
|
|
}
|
|
|
|
service ManualService {
|
|
rpc ListManuals (ManualListReq) returns (ManualListResp);
|
|
rpc UpgradeManual (UpgradeManualReq) returns (ManualResp);
|
|
rpc SetBuffingManual (BuffManualReq) returns (BuffSlotResp);
|
|
}
|
|
|
|
service SkillService {
|
|
rpc LearnSkill (LearnSkillReq) returns (SkillResp);
|
|
rpc CreateJadeSlip (JadeSlipReq) returns (ItemResp);
|
|
}
|
|
|
|
service EconomyService {
|
|
rpc GetCurrencyBalances (CurrencyReq) returns (CurrencyBalancesResp);
|
|
rpc CreateMarketOrder (MarketOrderReq) returns (MarketOrderResp);
|
|
rpc CancelMarketOrder (OrderIdReq) returns (MarketOrderResp);
|
|
rpc BuyMarketOrder (BuyOrderReq) returns (TradeResp);
|
|
rpc ListAuctions (AuctionListReq) returns (AuctionListResp);
|
|
rpc BidAuction (BidReq) returns (BidResp);
|
|
rpc ListIntelligence (IntelListReq) returns (IntelListResp);
|
|
rpc BuyIntelligence (BuyIntelReq) returns (IntelBuffResp);
|
|
}
|
|
|
|
service SocialService {
|
|
rpc CreateOrganization (CreateOrgReq) returns (OrgResp);
|
|
rpc GetOrganization (OrgIdReq) returns (OrgResp);
|
|
rpc JoinOrganization (OrgMemberReq) returns (OrgMemberResp);
|
|
rpc LeaveOrganization (OrgIdReq) returns (OrgMemberResp);
|
|
rpc UpdateMemberRole (UpdateRoleReq) returns (OrgMemberResp);
|
|
rpc SendRelationRequest (RelationReq) returns (RelationResp);
|
|
rpc RespondRelationRequest (RelationResponseReq) returns (RelationResp);
|
|
rpc PublishContract (PublishContractReq) returns (ContractResp);
|
|
rpc AcceptContract (AcceptContractReq) returns (ContractResp);
|
|
rpc PublishBounty (PublishBountyReq) returns (BountyResp);
|
|
rpc AcceptBounty (BountyIdReq) returns (BountyResp);
|
|
}
|
|
|
|
service MapService {
|
|
rpc GetRegion (RegionReq) returns (RegionResp);
|
|
rpc GetNearby (NearbyReq) returns (NearbyResp);
|
|
rpc EnterInstance (EnterInstanceReq) returns (InstanceRunResp);
|
|
rpc ListWorldEvents (WorldEventReq) returns (WorldEventListResp);
|
|
rpc PublishPlayerEvent (PlayerEventReq) returns (WorldEventResp);
|
|
}
|
|
|
|
service DiscipleService {
|
|
rpc DispatchDisciple (DispatchReq) returns (DiscipleMissionResp);
|
|
rpc ClaimMissionOutput (MissionIdReq) returns (MissionRewardResp);
|
|
rpc BidTerritory (TerritoryBidReq) returns (TerritoryBidResp);
|
|
}
|