
I got a female vp1 saying Search and Destory.

Code: Select all
BITFIELD UseMipmapping;
BITFIELD UseTrilinear;
BITFIELD UseMultitexture;
BITFIELD UsePalettes;
BITFIELD UseGammaCorrection;
BITFIELD Use3dfx;
BITFIELD UseD3DSoftwareRenderer;
BITFIELD UseTripleBuffering;
BITFIELD UseVSync;
BITFIELD UseVertexSpecular;
BITFIELD UseAlphaPalettes;
BITFIELD UsePrecache;
BITFIELD UseVideoMemoryVB;
BITFIELD UseAGPTextures;
BITFIELD UseVertexFog;
BITFIELD UseNonlocalTextures;
BITFIELD Use32BitZBuffer;
Code: Select all
void StaticConstructor()
{
guard(UD3DRenderDevice::StaticConstructor);
new(GetClass(),TEXT("UseMipmapping"), RF_Public)UBoolProperty ( CPP_PROPERTY(UseMipmapping ), TEXT("Options"), CPF_Config );
new(GetClass(),TEXT("UseTrilinear"), RF_Public)UBoolProperty ( CPP_PROPERTY(UseTrilinear ), TEXT("Options"), CPF_Config );
new(GetClass(),TEXT("UseMultitexture"), RF_Public)UBoolProperty ( CPP_PROPERTY(UseMultitexture ), TEXT("Options"), CPF_Config );
new(GetClass(),TEXT("UsePalettes"), RF_Public)UBoolProperty ( CPP_PROPERTY(UsePalettes ), TEXT("Options"), CPF_Config );
new(GetClass(),TEXT("UseGammaCorrection"), RF_Public)UBoolProperty ( CPP_PROPERTY(UseGammaCorrection ), TEXT("Options"), CPF_Config );
new(GetClass(),TEXT("Use3dfx"), RF_Public)UBoolProperty ( CPP_PROPERTY(Use3dfx ), TEXT("Options"), CPF_Config );
new(GetClass(),TEXT("UseTripleBuffering"), RF_Public)UBoolProperty ( CPP_PROPERTY(UseTripleBuffering ), TEXT("Options"), CPF_Config );
new(GetClass(),TEXT("UseVSync"), RF_Public)UBoolProperty ( CPP_PROPERTY(UseVSync ), TEXT("Options"), CPF_Config );
new(GetClass(),TEXT("UsePrecache"), RF_Public)UBoolProperty ( CPP_PROPERTY(UsePrecache ), TEXT("Options"), CPF_Config );
new(GetClass(),TEXT("UseVideoMemoryVB"), RF_Public)UBoolProperty ( CPP_PROPERTY(UseVideoMemoryVB ), TEXT("Options"), CPF_Config );
new(GetClass(),TEXT("UseAGPTextures"), RF_Public)UBoolProperty ( CPP_PROPERTY(UseAGPTextures ), TEXT("Options"), CPF_Config );
new(GetClass(),TEXT("UseVertexFog"), RF_Public)UBoolProperty ( CPP_PROPERTY(UseVertexFog ), TEXT("Options"), CPF_Config );
new(GetClass(),TEXT("Use32BitZBuffer"), RF_Public)UBoolProperty ( CPP_PROPERTY(Use32BitZBuffer ), TEXT("Options"), CPF_Config );
...
Code: Select all
#if _MSC_VER
#pragma pack (push,4)
#endif
Code: Select all
class XC_ENGINE_API UXC_GameEngine : public UGameEngine
{
public:
INT DummyData_0; //Safety for 451 games
UXC_TravelManager* TravelManager; //Travel manager subsystem
ULevel* GLevel2;
INT TmpSize; //Init hacking
INT LastMapIdx;
FString MapCachedPrefix;
TArray<FString> MapCache;
FXC_TimeManager XC_TimeManager;
//Config
TArray<FString> NoBrushTrackerFix;
BITFIELD bDisableTimingFix:1 GCC_PACK(4);
BITFIELD bDisableBrushTracker:1;
BITFIELD bSortMaplistByFolder:1;
BITFIELD bSortMaplistGlobal:1;
BITFIELD bAutoTravelManager:1;
BITFIELD bCacheConvertAtJoin:1;
INT DummyData_1 GCC_PACK(4);
//Hook data
TArray<AActor*> PreLoginHooks; //Actor pointers
Native ExecDoNothing; //Taken from native 3550
Native OldGetMapName; //Keeping this here...
TArray<BYTE> OldGetWeapon;
TArray<BYTE> OldPreLogin;
TArray<BYTE> OldSetEnemy;
TArray<BYTE> OldRocketTick;
//Hook status
BITFIELD bHackingInit:1 GCC_PACK(4);
BITFIELD bHackingTracker:1;
BITFIELD b451Hack:1;
BITFIELD bHackedEngine:1; //Main switch for general engine hacks (GetWeapon, PreLogin)
BITFIELD bSetEnemy:1;
BITFIELD bRocketTick:1;
INT DummyData_2 GCC_PACK(4); //Safety for 451 games
Code: Select all
new( TheClass,TEXT("bCacheConvertAtJoin"), RF_Public) UBoolProperty( CPP_PROPERTY(DummyData_1)-4, TEXT("XC_GameEngine"), CPF_Native|CPF_Edit|CPF_Config );
new( TheClass,TEXT("bAutoTravelManager"), RF_Public) UBoolProperty( CPP_PROPERTY(DummyData_1)-4, TEXT("XC_GameEngine"), CPF_Native|CPF_Edit|CPF_Config );
new( TheClass,TEXT("bSortMaplistGlobal"), RF_Public) UBoolProperty( CPP_PROPERTY(DummyData_1)-4, TEXT("XC_GameEngine"), CPF_Native|CPF_Edit|CPF_Config );
new( TheClass,TEXT("bSortMaplistByFolder"), RF_Public) UBoolProperty( CPP_PROPERTY(DummyData_1)-4, TEXT("XC_GameEngine"), CPF_Native|CPF_Edit|CPF_Config );
new( TheClass,TEXT("bDisableBrushTracker"), RF_Public) UBoolProperty( CPP_PROPERTY(DummyData_1)-4, TEXT("XC_GameEngine"), CPF_Native|CPF_Edit|CPF_Config );
new( TheClass,TEXT("bDisableTimingFix"), RF_Public) UBoolProperty( CPP_PROPERTY(DummyData_1)-4, TEXT("XC_GameEngine"), CPF_Native|CPF_Edit|CPF_Config );
//UBool properties on different bitfields must not be defined together, or else everything's gon' get fucked up (bitmaks become consequent when they shouldn't)
new( TheClass, TEXT("TravelManager"), RF_Public) UObjectProperty( CPP_PROPERTY(TravelManager), TEXT("XC_GameEngine"), CPF_Edit|CPF_EditConst , UXC_TravelManager::StaticClass() );
new( TheClass,TEXT("bRocketTick"), RF_Public) UBoolProperty( CPP_PROPERTY(DummyData_2)-4, TEXT("XC_GameEngine"), CPF_Native|CPF_Edit|CPF_EditConst );
new( TheClass,TEXT("bSetEnemy"), RF_Public) UBoolProperty( CPP_PROPERTY(DummyData_2)-4, TEXT("XC_GameEngine"), CPF_Native|CPF_Edit|CPF_EditConst );
new( TheClass,TEXT("bHackedEngine"), RF_Public) UBoolProperty( CPP_PROPERTY(DummyData_2)-4, TEXT("XC_GameEngine"), CPF_Native|CPF_Edit|CPF_EditConst );
new( TheClass,TEXT("b451Hack"), RF_Public) UBoolProperty( CPP_PROPERTY(DummyData_2)-4, TEXT("XC_GameEngine"), CPF_Native|CPF_Edit|CPF_EditConst );
new( TheClass,TEXT("bHackingTracker"), RF_Public) UBoolProperty( CPP_PROPERTY(DummyData_2)-4, TEXT("XC_GameEngine"), CPF_Native|CPF_Edit|CPF_EditConst );
new( TheClass,TEXT("bHackingInit"), RF_Public) UBoolProperty( CPP_PROPERTY(DummyData_2)-4, TEXT("XC_GameEngine"), CPF_Native|CPF_Edit|CPF_EditConst );
Code: Select all
UArrayProperty *MapCacheArray = new( TheClass,TEXT("MapCache"), RF_Public) UArrayProperty ( CPP_PROPERTY(MapCache), TEXT("XC_GameEngine"), CPF_Native|CPF_Transient|CPF_Edit|CPF_EditConst );
MapCacheArray->Inner = new (MapCacheArray, TEXT("StringProperty0"), RF_Public) UStrProperty;
MapCacheArray->Inner->PropertyFlags = CPF_Native|CPF_Edit|CPF_EditConst;
MapCacheArray->Inner->ElementSize = 12; //SIZE OF TARRAY!!!
UIntProperty *MSecArray = new( TheClass, TEXT("MSecTimer"), RF_Public) UIntProperty( CPP_PROPERTY(XC_TimeManager), TEXT("XC_GameEngine"), CPF_Native|CPF_Transient|CPF_Edit|CPF_EditConst );
MSecArray->ArrayDim = 10;
MSecArray->ElementSize = 4; //SIZE OF INT!!!
Never informed myself of what this fixed, glad it works tho.sektor2111 wrote:- ServerCrashFix came based on new "fixes" by UTPG at once with destroying editor, and were still claiming it functional;
Weird, can you give examples?sektor2111 wrote:- Original game-types are firing multiple times Game-Speed and Timer causing states to go wrong (Skaarj bugs are boosted here) - I think this ought to happen only ONCE restricted somehow if function has been already called - no more speed changing "on fly" only using admin commands for testing;
That left me flipping... so a NetConnection without player pawn causes PlayerCanSeeMe crash? Looks like someone didn't add a sanity check there.sektor2111 wrote:- fix those fake Net slots opened causing PlayerCanSeeMe crashes - No Pawn = No connection - end of BS. Also here is some ... interesting how this piece of crap can detect visibility;
This is the n2 reason I made XC_GameEngine, even in the public headers it's a pain to figure out how it's done.sektor2111 wrote:- solving collision crash bug;
Not aware of AdjustAim issues... my FerBotz literally deprecated AdjustAim to actually firing at ViewRotation like players do so I never bothered to even experiment with it... any explanation will help me understand and fix.sektor2111 wrote:- solving Adjustaim troubles based on null frames - suggestion: keep old frame if the newer called is missing in order to have a mesh else return properly or kill pawn instantly or... whatever removal... or if cylinder got a hit return True and done else = False
More information on this?sektor2111 wrote:- destroy client attempting to join as a rat or whatever parasite;
Can do that.sektor2111 wrote:- implement header definition if any coder will require something changed game-type based;
Coding guidelines for Games using XCGE?
That's been done on purpose, Movers were never supposed to be spawned in runtime, and these properties surely apply for CylinderCollision so they were most likely disabled to not cause problems with the BSP collision.sektor2111 wrote:For myself:
Facts - default properties for brush bCollideActors = False, bBlockActors = False, bBlockPlayers = False
WTF ???
Doing multiple traces is indeed an expensive method and should be avoided, PlayerCanSeeMe event is used for network and local players and not bots, so it's purpose is clearly that of running/pausing events that are or are not supposed to be seen.sektor2111 wrote:I'm highly doubt about CanSee, LineOfSight, FastTrace and Trace if they really work accurate. Also I'm interested to capture SeenPlayer if has something to say if a creature can see only my Left Leg (Or right Leg - or any part) behind a stair.
It was described in Web-page with UT patches... This time memory doesn't cheat me. It is not fixed. Editor start but you cannot scroll world properly... eh...Higor wrote: sektor2111 wrote:- ServerCrashFix came based on new "fixes" by UTPG at once with destroying editor, and were still claiming it functional;
Never informed myself of what this fixed, glad it works tho.
Sure...Higor wrote: sektor2111 wrote:- Original game-types are firing multiple times Game-Speed and Timer causing states to go wrong (Skaarj bugs are boosted here) - I think this ought to happen only ONCE restricted somehow if function has been already called - no more speed changing "on fly" only using admin commands for testing;
Weird, can you give examples?
Code: Select all
function PreBeginPlay()
{
StartTime = 0;
SetGameSpeed(GameSpeed); //#1
....
....
event InitGame( string Options, out string Error )
{
....
....
if( InOpt != "" )
{
log("GameSpeed"@InOpt);
SetGameSpeed(float(InOpt)); //#2
}
....
Code: Select all
event InitGame( string Options, out string Error )
{
local string InOpt;
Super.InitGame(Options, Error); //doing previous call
RemainingTime = 60 * TimeLimit;
SetGameSpeed(GameSpeed); //#3 if is not already twice mentioned
Yay... Who knows ? UnrealGold227 seems to have solved that problem. UT seems attached with other things than really requiredHigor wrote:That left me flipping... so a NetConnection without player pawn causes PlayerCanSeeMe crash? Looks like someone didn't add a sanity check there.
Code: Select all
DevNet: Connection timed out after 15.000000 seconds (15.024000)
NetComeGo: Close TcpipConnection22 12/31/14 20:43:32
Critical: AActor::TestCanSeeMe
Critical: AActor::PlayerCanSeeMe
Critical: UObject::ProcessEvent
Critical: (UT_FlakCannon MH-Rook(AS)v3_R.UT_FlakCannon64, Function Engine.Inventory.Pickup.Timer)
Critical: AActor::Tick
Critical: TickAllActors
Critical: ULevel::Tick
Critical: (NetMode=1)
Critical: TickLevel
Critical: UGameEngine::Tick
Critical: UpdateWorld
Critical: UServerCommandlet::Main
Exit: Executing UObject::StaticShutdownAfterError
Exit: Exiting.
Uninitialized: Name subsystem shut down
Uninitialized: Log file closed, 12/31/14 20:47:32
It is about Engine.Pawn at once with a default animsequence "Fighter" missing from some pawns but is "default" is a NONE used for default. How can accelerate it ? See some FireFly flockpawn drawn as sprite not mesh. If has collision will return Accessed None when takes damage - no mesh. I believe (in hoping to wrong) is the same when mesh has no frame leaving a Void into HitLocation - Epic said: "make sure frames are named correctly" - or like that - and more "modders" were sure call unexistent frames - LOL. I forgot to fix that in my pawns but I'll fire a try other time... Of course maybe a tween tweak to keep old frame if new frame is missing would make things more linear and smoother than a deal with a 0 frame mesh.Higor wrote:Not aware of AdjustAim issues... my FerBotz literally deprecated AdjustAim to actually firing at ViewRotation like players do so I never bothered to even experiment with it... any explanation will help me understand and fix.
A friend presented me a crash based on Predator.Predator. Is not a mismatch - is a total BS. One package has a monster, other one has a player-type - I don't know who was retarded making that second different one. Looks like there are some core tweaks in Linux 436 else the default seems to crash instantly...Higor wrote: sektor2111 wrote:- destroy client attempting to join as a rat or whatever parasite;
More information on this?
Code: Select all
if ( Client && Client->Viewports.Num() && Client->Viewports(0) && Client->Viewports(0)->Actor )
PlayerActor = Client->Viewports(0)->Actor;
Toying into MonsterHunt at a moment I noticed that only by rewriting ReplaceWith will help me to get rid of these bugs using log for fixing Pawn nearby a weapon replaced and unmarked. In old MH v503 using a timer a la UTJ suddenly Skaarj let weapon in place (and is a messed one) as long as it is bHeldItem before to Initialize PlayerView. Bot in common games enters later in map without messing up weapon's display HUD - Net gaming.Higor wrote:Skaarjs having issues with TimeDilation changes, that's a new one for me.
What's the visible problems on these pawns? Sudden game speed changes shouldn't really alter any non-TimeDilation factored timers.
Nope... quote at Shrimp's remark- > "I had to recreate a custom DMMutator because original it was causing already too much troubles". And it was done... bugs simply moved. He admitted that class UIWeapons was a dummy one - written later UIWeapon (the "s" is a grammar problem not Engine problem - engine executing scripts not grammar but... nvm) and UIWeapons were meant to control decals on clientsHigor wrote:Monsterhunt still utilizes DMMutator as base mutator?
Code: Select all
class AXC_DummyPawn : private APawn
{
friend class UXC_GameEngine;
public:
DECLARE_FUNCTION(NewPlayerCanSeeMe);
protected:
UBOOL PCanSee( APlayerPawn* Other);
// DECLARE_CLASS(APawn,AActor,0|CLASS_Abstract,XC_Engine) //This is unusable by the engine, it's only here to call NewPlayerCanSeeMe with a proper context.
};
Code: Select all
void AXC_DummyPawn::NewPlayerCanSeeMe(FFrame &Stack, RESULT_DECL)
{
guard( XC_Engine::NewPlayerCanSeeMe);
P_FINISH;
*(UBOOL*)Result = 0;
if ( XLevel )
{
if ( XLevel->Engine->Client && XLevel->Engine->Client->Viewports.Num() && XLevel->Engine->Client->Viewports(0) && XLevel->Engine->Client->Viewports(0)->Actor ) //Local player
if ( PCanSee( XLevel->Engine->Client->Viewports(0)->Actor) )
{
*(UBOOL*)Result = 1;
return;
}
if ( XLevel->NetDriver && XLevel->NetDriver->ClientConnections.Num() ) //Clients
{
for ( INT ip=0 ; ip < XLevel->NetDriver->ClientConnections.Num() ; ip++ )
if ( XLevel->NetDriver->ClientConnections(ip) && XLevel->NetDriver->ClientConnections(ip)->Actor )
if ( PCanSee( XLevel->NetDriver->ClientConnections(ip)->Actor) )
{
*(UBOOL*)Result = 1;
return;
}
}
}
unguard;
}
Code: Select all
UBOOL AXC_DummyPawn::PCanSee( APlayerPawn* Other)
{
guard( XC_Engine::PCanSee);
check( Other);
FVector aVec = Location - Other->Location;
if ( aVec.IsZero() )
return 0;
if ( aVec.SizeSquared() > 2560000 )
return 0;
if ( aVec.SizeSquared() > (aVec + Other->ViewRotation.Vector()).SizeSquared() )
return 0;
if ( !aVec.Normalize() )
return 0;
FLOAT aFov = Other->FovAngle / 114.6; //Real angle outside of the center
FLOAT aDot = aVec|Other->ViewRotation.Vector(); //This is the cosine of our angle
if ( aDot < appCos(aFov * 1.2) )
return 0;
FCheckResult Hit;
return XLevel->SingleLineCheck( Hit, this, Location, Other->Location + FVector(0,0,Other->BaseEyeHeight), TRACE_Level, FVector(0,0,0), 0|NF_NotVisBlocking);
unguard;
}