@@ -213,6 +213,15 @@ void Game_Multiplayer::InitConnection() {
213213 sync_action_events.push_back (p.event_id );
214214 }
215215 });
216+ connection.RegisterHandler <SyncItemPacket>(" si" , [this ] (SyncItemPacket& p) {
217+ int count = (int ) Main_Data::game_party->GetItemCount (p.item_id );
218+ if (p.sync_type != -1 ) {
219+ connection.SendPacketAsync <Messages::C2S ::SyncItemPacket>(p.item_id , count);
220+ }
221+ if (p.sync_type >= -1 ) {
222+ sync_items.push_back (p.item_id );
223+ }
224+ });
216225 connection.RegisterHandler <SyncPicturePacket>(" sp" , [this ] (SyncPicturePacket& p) {
217226 sync_picture_names.push_back (p.picture_name );
218227 });
@@ -516,6 +525,7 @@ void Game_Multiplayer::Initialize() {
516525 players.clear ();
517526 sync_switches.clear ();
518527 sync_vars.clear ();
528+ sync_items.clear ();
519529 sync_events.clear ();
520530 sync_action_events.clear ();
521531 sync_picture_names.clear ();
@@ -775,6 +785,12 @@ void Game_Multiplayer::VariableSet(int var_id, int value) {
775785 }
776786}
777787
788+ void Game_Multiplayer::ItemSet (int item_id, int count) {
789+ if (std::find (sync_items.begin (), sync_items.end (), item_id) != sync_items.end ()) {
790+ connection.SendPacketAsync <Messages::C2S ::SyncItemPacket>(item_id, count);
791+ }
792+ }
793+
778794void Game_Multiplayer::ApplyScreenTone () {
779795 ApplyTone (Main_Data::game_screen->GetTone ());
780796}
0 commit comments