diff --git a/src/psu/psu_game.erl b/src/psu/psu_game.erl index 579a074..de31edb 100644 --- a/src/psu/psu_game.erl +++ b/src/psu/psu_game.erl @@ -580,6 +580,10 @@ event(counter_party_info_request) -> {ok, User} = egs_user_model:read(get(gid)), send_1706((User#egs_user_model.character)#characters.name); +%% @todo Item distribution is always set to random for now. +event(counter_party_options_request) -> + send_170a(); + %% @doc Request the counter's quest files. event({counter_quest_files_request, CounterID}) -> log("counter quest files request ~p", [CounterID]), @@ -1020,11 +1024,6 @@ handle(16#1216, Data) -> handle(16#1707, _) -> ignore; -%% @doc Party settings request handler. Item distribution is random for now. -%% @todo Handle correctly. -handle(16#1709, _) -> - send_170a(); - %% @doc Counter-related handler. handle(16#170b, _) -> send_170c(); diff --git a/src/psu/psu_proto.erl b/src/psu/psu_proto.erl index cf82deb..79c5c80 100644 --- a/src/psu/psu_proto.erl +++ b/src/psu/psu_proto.erl @@ -360,6 +360,21 @@ parse(Size, 16#1705, Channel, Data) -> ?ASSERT_EQ(VarI, 0), counter_party_info_request; +parse(Size, 16#1709, Channel, Data) -> + << _LID:16/little, VarA:16/little, VarB:32/little, VarC:32/little, VarD:32/little, VarE:32/little, VarF:32/little, VarG:32/little, VarH:32/little, VarI:32/little >> = Data, + ?ASSERT_EQ(Size, 44), + ?ASSERT_EQ(Channel, 2), + ?ASSERT_EQ(VarA, 0), + ?ASSERT_EQ(VarB, 0), + ?ASSERT_EQ(VarC, 0), + ?ASSERT_EQ(VarD, 0), + ?ASSERT_EQ(VarE, 0), + ?ASSERT_EQ(VarF, 0), + ?ASSERT_EQ(VarG, 0), + ?ASSERT_EQ(VarH, 0), + ?ASSERT_EQ(VarI, 0), + counter_party_options_request; + parse(Size, 16#1710, Channel, Data) -> << _LID:16/little, VarA:16/little, VarB:32/little, VarC:32/little, VarD:32/little, VarE:32/little, VarF:32/little, VarG:32/little, VarH:32/little, VarI:32/little, CounterID:32/little >> = Data,