@@ -225,24 +225,22 @@ public void OnSetRole(PlayerSetRoleEvent ev)
225
225
if ( StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . HasEscaped )
226
226
{
227
227
StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . HasEscaped = false ;
228
- Dictionary < int , int > EscapedItemList = new Dictionary < int , int > ( ) ;
229
- foreach ( KeyValuePair < int , int > keyValuePair in StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . checkItemForNumOfItems )
230
- {
231
- EscapedItemList [ keyValuePair . Key ] = keyValuePair . Value ;
232
- }
233
228
234
229
StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . ResetToZero ( ) ;
235
-
230
+ ev . Player . SetAmmo ( AmmoType . DROPPED_9 , StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . ammo9 + ev . Player . GetAmmo ( AmmoType . DROPPED_9 ) ) ;
231
+ ev . Player . SetAmmo ( AmmoType . DROPPED_7 , StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . ammo7 + ev . Player . GetAmmo ( AmmoType . DROPPED_7 ) ) ;
232
+ ev . Player . SetAmmo ( AmmoType . DROPPED_5 , StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . ammo5 + ev . Player . GetAmmo ( AmmoType . DROPPED_5 ) ) ;
236
233
foreach ( Smod2 . API . ItemType item in ( Smod2 . API . ItemType [ ] ) Enum . GetValues ( typeof ( Smod2 . API . ItemType ) ) )
237
234
{
238
- if ( EscapedItemList . TryGetValue ( ( int ) item , out int value ) )
235
+ if ( StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . EscapedItemList . TryGetValue ( ( int ) item , out int value ) )
239
236
{
240
237
for ( int i = 0 ; i < value ; i ++ )
241
238
{
242
239
ev . Items . Add ( item ) ;
243
240
}
244
241
}
245
242
}
243
+ StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . EscapedItemList . Clear ( ) ;
246
244
}
247
245
else
248
246
{
@@ -295,13 +293,35 @@ public void OnUpdate(UpdateEvent ev) // OnHandCuffed is broke >:(
295
293
296
294
#region OnCheckEscape
297
295
/// <summary>
298
- /// Checks if they have escaped to transfer item stacks over.
296
+ /// Checks if they have escaped to transfer item stacks and ammo over.
299
297
/// </summary>
300
298
public void OnCheckEscape ( PlayerCheckEscapeEvent ev )
301
299
{
302
300
if ( StackMain . checkSteamIDItemNum . ContainsKey ( ev . Player . SteamId ) && StackMain . keepItemsOnExtract )
303
301
{
304
302
StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . HasEscaped = true ;
303
+ foreach ( KeyValuePair < int , int > kv in StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . checkItemTypeForNumOfItems )
304
+ {
305
+ StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . EscapedItemList [ kv . Key ] = kv . Value ;
306
+ }
307
+
308
+ foreach ( Item item in ev . Player . GetInventory ( ) )
309
+ {
310
+ if ( StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . GetItemAmount ( ( int ) item . ItemType ) != 0 ) continue ;
311
+ if ( StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . EscapedItemList . ContainsKey ( ( int ) item . ItemType ) )
312
+ {
313
+ StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . EscapedItemList [ ( int ) item . ItemType ] ++ ;
314
+ }
315
+ else
316
+ {
317
+ StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . EscapedItemList [ ( int ) item . ItemType ] = 1 ;
318
+ }
319
+
320
+ }
321
+
322
+ StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . ammo9 = ev . Player . GetAmmo ( AmmoType . DROPPED_9 ) ;
323
+ StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . ammo7 = ev . Player . GetAmmo ( AmmoType . DROPPED_7 ) ;
324
+ StackMain . checkSteamIDItemNum [ ev . Player . SteamId ] . ammo5 = ev . Player . GetAmmo ( AmmoType . DROPPED_5 ) ;
305
325
}
306
326
else
307
327
{
0 commit comments