diff --git a/src/psu/psu_game.erl b/src/psu/psu_game.erl index 8f217b1..b3ebb0b 100644 --- a/src/psu/psu_game.erl +++ b/src/psu/psu_game.erl @@ -691,15 +691,15 @@ event({item_description_request, ItemID}) -> %% @todo Apparently B is always ItemID+1. Not sure why. %% @todo Currently use a separate file for the data sent for the weapons. %% @todo TargetGID and TargetLID must be validated, they're either the player's or his NPC characters. -event({item_equip, ItemID, TargetGID, TargetLID, A, B}) -> +event({item_equip, ItemIndex, TargetGID, TargetLID, A, B}) -> GID = get(gid), - Category = case ItemID of + Category = case ItemIndex of % units would be 8, traps would be 12 19 -> 2; % armor Y when Y =:= 5; Y =:= 6; Y =:= 7 -> 0; % clothes _ -> 1 % weapons end, - Filename = case ItemID of + Filename = case ItemIndex of % weapons 16 -> "p/packet0105_sword.bin"; 13 -> "p/packet0105_twindaggers.bin"; @@ -722,21 +722,21 @@ event({item_equip, ItemID, TargetGID, TargetLID, A, B}) -> _ -> {ok, File} = file:read_file(Filename) end, send(<< 16#01050300:32, 0:64, GID:32/little-unsigned-integer, 0:64, 16#00011300:32, GID:32/little-unsigned-integer, - 0:64, TargetGID:32/little-unsigned-integer, TargetLID:32/little-unsigned-integer, ItemID, 1, Category, A, B:32/little-unsigned-integer, + 0:64, TargetGID:32/little-unsigned-integer, TargetLID:32/little-unsigned-integer, ItemIndex, 1, Category, A, B:32/little-unsigned-integer, File/binary >>); %% @todo A and B are unknown. %% @see item_equip -event({item_unequip, ItemID, TargetGID, TargetLID, A, B}) -> +event({item_unequip, ItemIndex, TargetGID, TargetLID, A, B}) -> GID = get(gid), - Category = case ItemID of + Category = case ItemIndex of % units would be 8, traps would be 12 19 -> 2; % armor Y when Y =:= 5; Y =:= 6; Y =:= 7 -> 0; % clothes _ -> 1 % weapons end, send(<< 16#01050300:32, 0:64, GID:32/little-unsigned-integer, 0:64, 16#00011300:32, GID:32/little-unsigned-integer, - 0:64, TargetGID:32/little-unsigned-integer, TargetLID:32/little-unsigned-integer, ItemID, 2, Category, A, B:32/little-unsigned-integer >>); + 0:64, TargetGID:32/little-unsigned-integer, TargetLID:32/little-unsigned-integer, ItemIndex, 2, Category, A, B:32/little-unsigned-integer >>); %% @todo Just ignore the meseta price for now and send the player where he wanna be! event(lobby_transport_request) -> diff --git a/src/psu/psu_proto.erl b/src/psu/psu_proto.erl index 7840cac..3df58a7 100644 --- a/src/psu/psu_proto.erl +++ b/src/psu/psu_proto.erl @@ -76,7 +76,7 @@ parse(Size, 16#0102, 2, Data) -> %% @todo One of the missing events is probably learning a new PA. parse(Size, 16#0105, Channel, Data) -> << _LID:16/little, _VarB:16/little, VarC:32/little, _FromGID:32/little, VarD:32/little, VarE:32/little, TypeID:32/little, GID:32/little, - VarF:32/little, VarG:32/little, TargetGID:32/little, TargetLID:32/little, ItemID:8, EventID:8, _PAID:8, VarH:8, VarI:32/little, Rest/bits >> = Data, + VarF:32/little, VarG:32/little, TargetGID:32/little, TargetLID:32/little, ItemIndex:8, EventID:8, _PAIndex:8, VarH:8, VarI:32/little, Rest/bits >> = Data, ?ASSERT_EQ(Channel, 2), ?ASSERT_EQ(VarC, 0), ?ASSERT_EQ(VarD, 0), @@ -101,14 +101,14 @@ parse(Size, 16#0105, Channel, Data) -> item_drop -> ?ASSERT_EQ(Size, 76), << _Quantity:32/little, _PosX:32/little-float, _PosY:32/little-float, _PosZ:32/little-float >> = Rest, - %~ {Event, ItemID, Quantity, ...}; + %~ {Event, ItemIndex, Quantity, ...}; ignore; ignore -> ?ASSERT_EQ(Size, 60), ignore; _ -> ?ASSERT_EQ(Size, 60), - {Event, ItemID, TargetGID, TargetLID, VarH, VarI} + {Event, ItemIndex, TargetGID, TargetLID, VarH, VarI} end; parse(Size, 16#010a, Channel, Data) ->