mirror of
https://github.com/P3D-Legacy/P3D-Legacy.git
synced 2025-07-27 15:54:25 +02:00
max stacks
enforce max stacks in script calls
This commit is contained in:
parent
bdebdd8f7f
commit
7ead411d0a
@ -14,19 +14,23 @@
|
|||||||
Case "give"
|
Case "give"
|
||||||
Dim amount As Integer = 1
|
Dim amount As Integer = 1
|
||||||
Dim ItemID As String = argument
|
Dim ItemID As String = argument
|
||||||
|
Dim item As Item
|
||||||
If argument.Contains(",") = True Then
|
If argument.Contains(",") = True Then
|
||||||
amount = int(argument.GetSplit(1))
|
amount = int(argument.GetSplit(1))
|
||||||
ItemID = argument.GetSplit(0)
|
ItemID = argument.GetSplit(0)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If ScriptConversion.IsArithmeticExpression(ItemID) = False Then
|
If ScriptConversion.IsArithmeticExpression(ItemID) = False Then
|
||||||
Dim item As Item = Item.GetItemByName(ItemID)
|
item = Item.GetItemByName(ItemID)
|
||||||
|
|
||||||
If Not item Is Nothing Then
|
|
||||||
Core.Player.Inventory.AddItem(item.ID, amount)
|
|
||||||
End If
|
|
||||||
Else
|
Else
|
||||||
Core.Player.Inventory.AddItem(int(ItemID), amount)
|
item = Item.GetItemByID(int(ItemID))
|
||||||
|
End If
|
||||||
|
If Not item Is Nothing Then
|
||||||
|
If item.MaxStack < Core.Player.Inventory.GetItemAmount(item.ID) + amount Then
|
||||||
|
amount = int(item.MaxStack - Core.Player.Inventory.GetItemAmount(item.ID)).Clamp(0, 999)
|
||||||
|
End If
|
||||||
|
Core.Player.Inventory.AddItem(item.ID, amount)
|
||||||
End If
|
End If
|
||||||
Case "remove"
|
Case "remove"
|
||||||
Dim amount As Integer = 1
|
Dim amount As Integer = 1
|
||||||
@ -72,26 +76,26 @@
|
|||||||
End If
|
End If
|
||||||
Case "messagegive"
|
Case "messagegive"
|
||||||
Dim ItemID As String = argument.GetSplit(0)
|
Dim ItemID As String = argument.GetSplit(0)
|
||||||
Dim Item As Item = Nothing
|
Dim item As Item
|
||||||
If ScriptConversion.IsArithmeticExpression(ItemID) = False Then
|
If ScriptConversion.IsArithmeticExpression(ItemID) = False Then
|
||||||
Item = Item.GetItemByName(ItemID)
|
item = Item.GetItemByName(ItemID)
|
||||||
Else
|
Else
|
||||||
Item = Item.GetItemByID(int(ItemID))
|
item = Item.GetItemByID(int(ItemID))
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim Amount As Integer = int(argument.GetSplit(1))
|
Dim Amount As Integer = int(argument.GetSplit(1))
|
||||||
|
|
||||||
If Not Item Is Nothing Then
|
If Not item Is Nothing Then
|
||||||
Dim receiveString As String = "Received the~" & Item.Name & ".*"
|
Dim receiveString As String = "Received the~" & item.Name & ".*"
|
||||||
If Amount > 1 Then
|
If Amount > 1 Then
|
||||||
receiveString = "Received " & Amount & "~" & Item.PluralName & ".*"
|
receiveString = "Received " & Amount & "~" & item.PluralName & ".*"
|
||||||
End If
|
End If
|
||||||
|
|
||||||
SoundManager.PlaySound("Receive_Item", True)
|
SoundManager.PlaySound("Receive_Item", True)
|
||||||
|
|
||||||
Screen.TextBox.reDelay = 0.0F
|
Screen.TextBox.reDelay = 0.0F
|
||||||
Screen.TextBox.TextColor = TextBox.PlayerColor
|
Screen.TextBox.TextColor = TextBox.PlayerColor
|
||||||
Screen.TextBox.Show(receiveString & Core.Player.Inventory.GetMessageReceive(Item, Amount), {})
|
Screen.TextBox.Show(receiveString & Core.Player.Inventory.GetMessageReceive(item, Amount), {})
|
||||||
|
|
||||||
CanContinue = False
|
CanContinue = False
|
||||||
End If
|
End If
|
||||||
|
Loading…
x
Reference in New Issue
Block a user