Fixes for PortalGuns

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

Fixes for PortalGuns

Post by Buggie » Thu May 13, 2021 3:09 am

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
You do not have the required permissions to view the files attached to this post.

User avatar
Dr.Flay
Godlike
Posts: 3332
Joined: Thu Aug 04, 2011 9:26 pm
Personal rank: Chaos Evangelist
Location: Kernow, UK

Re: Fixes for PortalGuns

Post by Dr.Flay » Thu May 13, 2021 5:44 am

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: 2425
Joined: Fri Sep 25, 2015 9:01 pm
Location: moved without proper hashing

Re: Fixes for PortalGuns

Post by Barbie » Thu May 13, 2021 6:46 am

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.
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: 1657
Joined: Sat Mar 21, 2020 5:32 am

Re: Fixes for PortalGuns

Post by Buggie » Thu May 13, 2021 7:33 am

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: 8881
Joined: Thu Jun 30, 2011 8:12 pm
Personal rank: God of Fudge
Location: Palo Alto, CA

Re: Fixes for PortalGuns

Post by EvilGrins » Thu May 13, 2021 10:39 am

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: 1657
Joined: Sat Mar 21, 2020 5:32 am

Re: Fixes for PortalGuns

Post by Buggie » Thu May 13, 2021 10:29 pm

Same fixes for AssaultPortalgun.u and SGportalgun.u.
AssaultPortalgun.zip
SGportalgun.zip
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.
You do not have the required permissions to view the files attached to this post.