Fixes for PortalGuns

Need some nice Mods? Here, you are right!
Post Reply
Buggie
Godlike
Posts: 2734
Joined: Sat Mar 21, 2020 5:32 am

Fixes for PortalGuns

Post by Buggie »

Fixed (and conformed to original) version of PortalGuns:
  • PortalGun2.u
  • PortalGunftw.u
  • PortalGunv3.u
What fixed:
1. Restored work on v469 servers: https://github.com/OldUnreal/UnrealTour ... issues/392
2. Prevent crash client and server by Infinite script recursion

Code: Select all

---------------------------
Critical Error
---------------------------
TranslocatorTargetSB MH-Portal(part1).TranslocatorTargetSB22 (Function BarbiesWorld.TranslocatorTargetSB.Pickup.Touch:0000) Infinite script recursion (250 calls) detected

History: FFrame::Serialize <- UObject::ProcessEvent <- (TranslocatorTargetSB MH-Portal(part1).TranslocatorTargetSB22, Function BarbiesWorld.TranslocatorTargetSB.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp19, Function
---------------------------
ОК   
---------------------------

Code: Select all

---------------------------
Critical Error
---------------------------
slowp MH-Portal(part1).slowp5 (Function Engine.Inventory.Pickup.ValidTouch:0000) Infinite script recursion (250 calls) detected

History: FFrame::Serialize <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::FarMoveActor <- UObject::ProcessEvent <- (slowp MH-Portal(part1).slowp5, Function Portalgunftw.slowp.Pickup.Touch) <- TouchTo <- AActor::BeginTouch <- ULevel::CheckEncroachment <- ULevel::Fa
---------------------------
ОК   
---------------------------
This files conformed to original. It is mean its can be used instead of original without break network compatibility.
PortalGuns.zip
(1.08 MiB) Downloaded 23 times
User avatar
Dr.Flay
Godlike
Posts: 3347
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK
Contact:

Re: Fixes for PortalGuns

Post by Dr.Flay »

there is already a build 2 a 2.1 and 3 of the old portal gun.
You may want to rename or build on v3
https://drive.google.com/drive/folders/ ... 3AzNnpRLUU
User avatar
Barbie
Godlike
Posts: 2802
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: Fixes for PortalGuns

Post by Barbie »

Dr.Flay wrote: Thu May 13, 2021 5:44 amthere is already a build 2 a 2.1 and 3 of the old portal gun.
But that does not help if you don't want to modify the map. IMO Buggies solution can be used on servers without touching the map (except it is in "MyLevel").

But as I said: I don't like the concept of "same name, different content" if it is intended for public use.
"Multiple exclamation marks," he went on, shaking his head, "are a sure sign of a diseased mind." --Terry Pratchett
Buggie
Godlike
Posts: 2734
Joined: Sat Mar 21, 2020 5:32 am

Re: Fixes for PortalGuns

Post by Buggie »

Dr.Flay wrote: Thu May 13, 2021 5:44 am there is already a build 2 a 2.1 and 3 of the old portal gun.
I use UnrealUarchive to get it.
https://github.com/OldUnreal/UnrealTour ... -883767864
And I check now:
Fixed (and conformed to original) version of PortalGuns:
  • PortalGun2.u - is your 2.1
  • PortalGunftw.u - is your 2
  • PortalGunv3.u - is your 3
So this is all your files covered there.
Barbie wrote: Thu May 13, 2021 6:46 am But as I said: I don't like the concept of "same name, different content" if it is intended for public use.
It is network compatible, as we talk about that before.
So you can just replace server version, keep .uz version same, and disable direct download.
All clients stay on old version.
Exists some drawbacks - possible clients can be crash, because bug with crash in simulated call.
Also when player use portal he is locally wrong predicated, and after that server correct his position.

If anyone need, I can explain what I done for fix in code.

Also if you very want - you can rename fixed package, and write simple mutator which replace weapons. (In this case better recompile package for make GUID different or clients can use old version from cache)
Or maybe even use SpawnNotify for transparent replace stuff.
User avatar
EvilGrins
Godlike
Posts: 9698
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA
Contact:

Re: Fixes for PortalGuns

Post by EvilGrins »

Well, since everyone else is getting in on this · https://unreal-games.livejournal.com/53792.html
http://unreal-games.livejournal.com/
Image
medor wrote:Replace Skaarj with EvilGrins :mrgreen:
Smilies · viewtopic.php?f=8&t=13758
Buggie
Godlike
Posts: 2734
Joined: Sat Mar 21, 2020 5:32 am

Re: Fixes for PortalGuns

Post by Buggie »

Same fixes for AssaultPortalgun.u and SGportalgun.u.
AssaultPortalgun.zip
(499.12 KiB) Downloaded 15 times
SGportalgun.zip
(126.52 KiB) Downloaded 15 times
In short:
You need find class in pickup. Usually named as slowp.
There need ensure all teleportation guarded with

Code: Select all

btouched=true;
settimer(0.3,false);
brother.btouched=true;
brother.settimer(0.7,false);
If you not do this, v469 teleport player twice.
And for not pawn possible create endless teleportation loop which crash client and server.
Post Reply