Fix items lost if switch pokémon after knocked off
This commit is contained in:
parent
1a7e08d361
commit
9873f15aa5
|
@ -1338,6 +1338,7 @@ nextIndex:
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim hasLevelUp As Boolean = False
|
Dim hasLevelUp As Boolean = False
|
||||||
|
Dim ItemReturnScript As String = "@Text.Show("
|
||||||
For Each p As Pokemon In Core.Player.Pokemons
|
For Each p As Pokemon In Core.Player.Pokemons
|
||||||
If p.hasLeveledUp = True Then
|
If p.hasLeveledUp = True Then
|
||||||
hasLevelUp = True
|
hasLevelUp = True
|
||||||
|
@ -1351,7 +1352,10 @@ nextIndex:
|
||||||
End If
|
End If
|
||||||
|
|
||||||
p.Item.AdditionalData = p.OriginalItem.AdditionalData
|
p.Item.AdditionalData = p.OriginalItem.AdditionalData
|
||||||
Screen.TextBox.Show(Core.Player.Name & " received~" & p.OriginalItem.Name & "and gave it back to~" & p.GetDisplayName & "!")
|
If ItemReturnScript <> "" Then
|
||||||
|
ItemReturnScript &= "*"
|
||||||
|
End If
|
||||||
|
ItemReturnScript &= Core.Player.Name & " received~" & p.OriginalItem.Name & "*and gave it back to~" & p.GetDisplayName & "!"
|
||||||
p.OriginalItem = Nothing
|
p.OriginalItem = Nothing
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
|
@ -1364,7 +1368,12 @@ nextIndex:
|
||||||
End If
|
End If
|
||||||
|
|
||||||
p.Item.AdditionalData = p.OriginalItem.AdditionalData
|
p.Item.AdditionalData = p.OriginalItem.AdditionalData
|
||||||
Screen.TextBox.Show(Core.Player.Name & " found~" & p.OriginalItem.Name & "*and gave it back to~" & p.GetDisplayName & "!")
|
|
||||||
|
If ItemReturnScript <> "" Then
|
||||||
|
ItemReturnScript &= "*"
|
||||||
|
End If
|
||||||
|
|
||||||
|
ItemReturnScript &= Core.Player.Name & " found~" & p.OriginalItem.Name & "*and gave it back to~" & p.GetDisplayName & "!"
|
||||||
p.OriginalItem = Nothing
|
p.OriginalItem = Nothing
|
||||||
Else
|
Else
|
||||||
If p.OriginalItem.IsGameModeItem = True Then
|
If p.OriginalItem.IsGameModeItem = True Then
|
||||||
|
@ -1372,15 +1381,27 @@ nextIndex:
|
||||||
Else
|
Else
|
||||||
Core.Player.Inventory.AddItem(p.OriginalItem.ID.ToString, 1)
|
Core.Player.Inventory.AddItem(p.OriginalItem.ID.ToString, 1)
|
||||||
End If
|
End If
|
||||||
|
If ItemReturnScript <> "" Then
|
||||||
|
ItemReturnScript &= ")" & Environment.NewLine
|
||||||
|
End If
|
||||||
|
ItemReturnScript &= "@Sound.Play(item_found)" & Environment.NewLine & "@Text.Show(" & Core.Player.Name & " found~" & p.OriginalItem.Name & "!*" & Core.Player.Inventory.GetMessageReceive(p.OriginalItem, 1)
|
||||||
|
|
||||||
SoundManager.PlaySound("item_found", True)
|
|
||||||
Screen.TextBox.Show(Core.Player.Name & " found~" & p.OriginalItem.Name & "!*" & Core.Player.Inventory.GetMessageReceive(p.OriginalItem, 1))
|
|
||||||
p.OriginalItem = Nothing
|
p.OriginalItem = Nothing
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
|
||||||
End If
|
End If
|
||||||
p.ResetTemp()
|
p.ResetTemp()
|
||||||
Next
|
Next
|
||||||
|
If ItemReturnScript <> "" Then
|
||||||
|
ItemReturnScript &= ")"
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim s As String =
|
||||||
|
"version=2" & Environment.NewLine &
|
||||||
|
ItemReturnScript & Environment.NewLine &
|
||||||
|
":end"
|
||||||
|
|
||||||
|
CType(SavedOverworld.OverworldScreen, OverworldScreen).ActionScript.StartScript(s, 2, False)
|
||||||
|
|
||||||
If hasLevelUp = False Then
|
If hasLevelUp = False Then
|
||||||
Core.SetScreen(New TransitionScreen(Me, SavedOverworld.OverworldScreen, New Color(255, 255, 255), False, AddressOf ChangeSavedScreen))
|
Core.SetScreen(New TransitionScreen(Me, SavedOverworld.OverworldScreen, New Color(255, 255, 255), False, AddressOf ChangeSavedScreen))
|
||||||
|
@ -1421,38 +1442,67 @@ nextIndex:
|
||||||
FieldEffects.OppRageFistPower = 0
|
FieldEffects.OppRageFistPower = 0
|
||||||
|
|
||||||
Else
|
Else
|
||||||
|
Dim ItemReturnScript As String = "@Text.Show("
|
||||||
For Each p As Pokemon In Core.Player.Pokemons
|
For Each p As Pokemon In Core.Player.Pokemons
|
||||||
If IsRemoteBattle = True Then
|
If IsRemoteBattle = True Then
|
||||||
If p.OriginalItem IsNot Nothing Then
|
If p.OriginalItem IsNot Nothing Then
|
||||||
If p.OriginalItem.IsGameModeItem = True Then
|
If p.OriginalItem.IsGameModeItem = True Then
|
||||||
p.Item = P3D.Item.GetItemByID(p.OriginalItem.gmID.ToString)
|
p.Item = P3D.Item.GetItemByID(p.OriginalItem.gmID)
|
||||||
Else
|
Else
|
||||||
p.Item = P3D.Item.GetItemByID(p.OriginalItem.ID.ToString)
|
p.Item = P3D.Item.GetItemByID(p.OriginalItem.ID.ToString)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
p.Item.AdditionalData = p.OriginalItem.AdditionalData
|
p.Item.AdditionalData = p.OriginalItem.AdditionalData
|
||||||
Screen.TextBox.Show(Core.Player.Name & " received~" & p.OriginalItem.Name & "and gave it back to~" & p.GetDisplayName & "!")
|
If ItemReturnScript <> "" Then
|
||||||
|
ItemReturnScript &= "*"
|
||||||
|
End If
|
||||||
|
ItemReturnScript &= Core.Player.Name & " received~" & p.OriginalItem.Name & "*and gave it back to~" & p.GetDisplayName & "!"
|
||||||
|
p.OriginalItem = Nothing
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
If Not p.OriginalItem Is Nothing Then
|
If Not p.OriginalItem Is Nothing Then
|
||||||
If p.Item IsNot Nothing Then
|
If p.Item Is Nothing Then
|
||||||
|
If p.OriginalItem.IsGameModeItem = True Then
|
||||||
|
p.Item = P3D.Item.GetItemByID(p.OriginalItem.gmID.ToString)
|
||||||
|
Else
|
||||||
|
p.Item = P3D.Item.GetItemByID(p.OriginalItem.ID.ToString)
|
||||||
|
End If
|
||||||
|
|
||||||
|
p.Item.AdditionalData = p.OriginalItem.AdditionalData
|
||||||
|
|
||||||
|
If ItemReturnScript <> "" Then
|
||||||
|
ItemReturnScript &= "*"
|
||||||
|
End If
|
||||||
|
|
||||||
|
ItemReturnScript &= Core.Player.Name & " found~" & p.OriginalItem.Name & "*and gave it back to~" & p.GetDisplayName & "!"
|
||||||
|
p.OriginalItem = Nothing
|
||||||
|
Else
|
||||||
If p.OriginalItem.IsGameModeItem = True Then
|
If p.OriginalItem.IsGameModeItem = True Then
|
||||||
Core.Player.Inventory.AddItem(p.OriginalItem.gmID, 1)
|
Core.Player.Inventory.AddItem(p.OriginalItem.gmID, 1)
|
||||||
Else
|
Else
|
||||||
Core.Player.Inventory.AddItem(p.OriginalItem.ID.ToString, 1)
|
Core.Player.Inventory.AddItem(p.OriginalItem.ID.ToString, 1)
|
||||||
End If
|
End If
|
||||||
SoundManager.PlaySound("item_found", True)
|
If ItemReturnScript <> "" Then
|
||||||
Screen.TextBox.Show(Core.Player.Name & " found~" & p.OriginalItem.Name & "!*" & Core.Player.Inventory.GetMessageReceive(p.OriginalItem, 1))
|
ItemReturnScript &= ")" & Environment.NewLine
|
||||||
p.OriginalItem = Nothing
|
End If
|
||||||
Else
|
ItemReturnScript &= "@Sound.Play(item_found)" & Environment.NewLine & "@Text.Show(" & Core.Player.Name & " found~" & p.OriginalItem.Name & "!*" & Core.Player.Inventory.GetMessageReceive(p.OriginalItem, 1)
|
||||||
p.Item = P3D.Item.GetItemByID(p.OriginalItem.ID.ToString)
|
|
||||||
p.Item.AdditionalData = p.OriginalItem.AdditionalData
|
|
||||||
Screen.TextBox.Show(Core.Player.Name & " found~" & p.OriginalItem.Name & "*and gave it back to~" & p.GetDisplayName & "!")
|
|
||||||
p.OriginalItem = Nothing
|
p.OriginalItem = Nothing
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
p.ResetTemp()
|
p.ResetTemp()
|
||||||
Next
|
Next
|
||||||
|
If ItemReturnScript <> "" Then
|
||||||
|
ItemReturnScript &= ")"
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim s As String =
|
||||||
|
"version=2" & Environment.NewLine &
|
||||||
|
ItemReturnScript & Environment.NewLine &
|
||||||
|
":end"
|
||||||
|
|
||||||
|
CType(SavedOverworld.OverworldScreen, OverworldScreen).ActionScript.StartScript(s, 2, False)
|
||||||
|
|
||||||
FieldEffects.OwnRageFistPower = 0
|
FieldEffects.OwnRageFistPower = 0
|
||||||
FieldEffects.OppRageFistPower = 0
|
FieldEffects.OppRageFistPower = 0
|
||||||
|
|
|
@ -1074,10 +1074,6 @@ Public Class Pokemon
|
||||||
_originalNumber = -1
|
_originalNumber = -1
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If Not _originalItem Is Nothing Then
|
|
||||||
Me._originalItem = Nothing
|
|
||||||
End If
|
|
||||||
|
|
||||||
If OriginalType1 IsNot Nothing Then
|
If OriginalType1 IsNot Nothing Then
|
||||||
Me.Type1.Type = OriginalType1.Type
|
Me.Type1.Type = OriginalType1.Type
|
||||||
OriginalType1 = Nothing
|
OriginalType1 = Nothing
|
||||||
|
|
|
@ -297,6 +297,9 @@ nextIndex:
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub CatchPokemon()
|
Private Sub CatchPokemon()
|
||||||
|
If Not p.OriginalItem Is Nothing Then
|
||||||
|
p.OriginalItem = Nothing
|
||||||
|
End If
|
||||||
p.ResetTemp()
|
p.ResetTemp()
|
||||||
|
|
||||||
Dim s As String = "Gotcha!~" & p.GetName() & " was caught!"
|
Dim s As String = "Gotcha!~" & p.GetName() & " was caught!"
|
||||||
|
|
Loading…
Reference in New Issue