Donations
|
If you wish to make a donation you can by clicking the image below.
|
|
|
|
15th December, 2012, 06:18 PM
|
|
Killing Spree
|
|
Join Date: Dec 2009
Location: Trieste (Italy)
Posts: 20
|
|
SpawnGuard on Linux server
Hi,
I'm actually setting up a UT99 server on Linux and I'm using a previous config fully tested on Windows servers.
The server is setup for sniper camping and uses a lot of mutators, including SpawnGuard which is important for spawn protection system.
Well, the same SpawnGuard config works fine on Windows servers and bad on Linux servers.
This is the mutator config .ini file:
[SpawnGuard.SpawnGuard]
GuardTime=8
StartFactor=0.1
MaxGlow=4
When a player spawns, SpawnGuard effect (a red translucency over player) is active only for 1-2 seconds insted of 8 (as pointed out in the config file).
And this is what I see on the log:
...
MapVoteLA: StartMutator: SpawnGuard.SpawnGuard
...
ScriptLog: [ASC] Login: Pietro - ID: 506CCE92B6AE4CEC49D878B4BA874DF6 - IP: xxx.xxx.xxx.xxx
ScriptLog: Pietro: GuardTime = 1.500000
...
Really don't know why the same config works well on Windows and bad on Linux.
Any ideas ? Did anyone already experiment this bug ?
regards,
Pietro
|
16th December, 2012, 02:26 AM
|
Holy Shit!!
|
|
Join Date: Feb 2005
Posts: 742
|
|
Is that 1.5 value the default for the SpawnGuard mutator? Maybe the permissions on the INI file are not allowing the server process to read it.
I'm stabbing in the dark...last time I was on a *NIX box was 2003...
__________________
CPan
|
16th December, 2012, 09:05 AM
|
|
Killing Spree
|
|
Join Date: Dec 2009
Location: Trieste (Italy)
Posts: 20
|
|
Quote:
Originally Posted by CPanoplyd
Is that 1.5 value the default for the SpawnGuard mutator? Maybe the permissions on the INI file are not allowing the server process to read it.
I'm stabbing in the dark...last time I was on a *NIX box was 2003...
|
So it seems.
Spanguard.u package has 2 classes, SpawnGuard and Fader:
//================================================
// SpawnGuard
//================================================
class SpawnGuard extends Mutator config(spawnguard);
var() config float GuardTime; //The time the SpawnGuard should last
var() config float StartFactor; //The time the SpawnGuard should last
var() config float MaxGlow; //What percentage to start the Fade at
var bool Initialized;
function PostBeginPlay() {
if (Initialized)
return;
Initialized = True;
Level.Game.RegisterDamageMutator( Self );
}
function ModifyPlayer(Pawn Other) {
local Fader g;
if ( Other.IsA('Spectator') || Other.FindInventoryType(class'Fader') != None )
return;
g = Spawn(class'Fader',,, Location);
if (g != None)
{
//log("adding fader to inventory and activating it");
g.bHeldItem = true;
g.GuardTime = GuardTime;
g.StartFactor = StartFactor;
g.MaxGlow = MaxGlow;
g.GiveTo( Other );
g.PickupFunction( Other );
Other.SelectedItem = g;
}
//log("done initializing the SpawnGuard");
Super.ModifyPlayer(Other);
}
function MutatorTakeDamage( out int ActualDamage,
Pawn Victim,
Pawn InstigatedBy,
out Vector HitLocation,
out Vector Momentum,
name DamageType) {
local Inventory VictimInv;
local Inventory InstigatorInv;
local string VictimName;
local string InstigatorName;
VictimName = Victim.PlayerReplicationInfo.PlayerName;
InstigatorName = InstigatedBy.PlayerReplicationInfo.PlayerName;
//log( VictimName $ " takes initial damage of " $ ActualDamage );
if (Victim.IsA('Bot') || Victim.IsA('PlayerPawn')) {
VictimInv = Victim.FindInventoryType(class'Fader');
if( VictimInv != None ) {
if( ActualDamage > 100 && DamageType == 'decapitated' ) {
//log( VictimName $" suffers a headshot!" );
ActualDamage = 100;
}
ActualDamage = ActualDamage * Fader(VictimInv).DamageFactor;
//log( "Damage reduced to " $ ActualDamage $ " by " $ VictimName $ "'s Fader State " $ Fader(VictimInv).DamageFactor );
}
}
if (InstigatedBy.IsA('Bot') || InstigatedBy.IsA('PlayerPawn')) {
InstigatorInv = InstigatedBy.FindInventoryType(class'Fader');
if( InstigatorInv != None ) {
ActualDamage = ActualDamage * Fader(InstigatorInv).DamageFactor;
//log( "Damage reduced to " $ ActualDamage $ " by " $ InstigatorName $ "'s Fader State " $ Fader(InstigatorInv).DamageFactor );
}
}
if ( NextDamageMutator != None )
NextDamageMutator.MutatorTakeDamage( ActualDamage, Victim, InstigatedBy, HitLocation, Momentum, DamageType );
}
//================================================== ==========================
// Fader
//================================================== ==========================
class Fader extends TournamentPickup;
var() float GuardTime; //The time the Fader should last
var() float StartFactor;//What percentage to start the Fade at
var() float MaxGlow; //What percentage to start the Fade at
var() firetexture TeamFireTextures[4];
var() string TeamFireTextureStrings[4];
var firetexture ActiveTexture;
var float DamageFactor; //Current factor of fader
var float TimerInterval;//Current factor of fader
var int Counter; //Current factor of fader
var string PlayerName;
var bool Flash;
var int TeamNum;
var texture TeamTextures[4];
var Weapon ActiveWeapon;
function PickupFunction(Pawn Other) {
if ( Level.Game.bTeamGame && (Other.PlayerReplicationInfo != None) ) {
TeamNum = Other.PlayerReplicationInfo.Team;
}
if ( TeamFireTextures[TeamNum] == None )
TeamFireTextures[TeamNum] = FireTexture(DynamicLoadObject(TeamFireTextureStrin gs[TeamNum], class'Texture'));
if( StartFactor > 1 )
StartFactor = 1;
if( MaxGlow < 1 )
MaxGlow = 1;
if( GuardTime < 1.5 )
GuardTime = 1.5;
DamageFactor = StartFactor;
PlayerName = Other.PlayerReplicationInfo.PlayerName;
ActiveTexture = TeamFireTextures[TeamNum];
Other.SetDisplayProperties( ERenderStyle.STY_Translucent, ActiveTexture, true, true );
SetOwnerDisplay();
Other.ScaleGlow = 0;
Other.Weapon.ScaleGlow = 0;
log( PlayerName $ ": GuardTime = " $ GuardTime );
Counter = 0;
TimerInterval = ( GuardTime - 1 ) / 10;
//log( PlayerName $ ": TimerInterval = " $ TimerInterval );
SetTimer( TimerInterval, True );
}
function Timer() {
local pawn P;
local float Glow;
//log( PlayerName $ ": Counter = " $ Counter $ ", preDamageFactor = " $ DamageFactor );
P = Pawn(Owner);
if( Counter <= 9 ) {
DamageFactor = ( ( ( Counter * 0.1 ) + StartFactor ) / ( 0.9 + StartFactor ) ) * 0.9;
Glow = MaxGlow * DamageFactor;
P.ScaleGlow = Glow;
ActiveWeapon.ScaleGlow = Glow;
} else {
if( Counter >= 15 ) {
P.ScaleGlow = 1;
P.SetDefaultDisplayProperties();
ActiveWeapon.ScaleGlow = 1;
ActiveWeapon.SetDefaultDisplayProperties();
//log( PlayerName $ ": done with protection" );
DamageFactor = 1;
Destroy();
} else {
//for the last second, we blink
DamageFactor = 0.9;
if( Flash ) {
//translucent
Flash = false;
P.SetDisplayProperties( ERenderStyle.STY_Translucent, ActiveTexture, true, true );
SetFadeWeapon();
} else {
//solid
Flash = true;
P.SetDefaultDisplayProperties();
P.ScaleGlow = 1;
ActiveWeapon.SetDefaultDisplayProperties();
ActiveWeapon.ScaleGlow = 1;
}
SetTimer(0.2,false);
}
if( Inventory != None )
Inventory.SetOwnerDisplay();
}
Counter++;
}
function ChangedWeapon() {
if( Inventory != None )
Inventory.ChangedWeapon();
SetFadeWeapon();
}
function SetFadeWeapon() {
// Make old weapon normal again.
if ( ActiveWeapon != None ) {
ActiveWeapon.SetDefaultDisplayProperties();
if ( ActiveWeapon.IsA('TournamentWeapon') )
TournamentWeapon(ActiveWeapon).Affector = None;
}
ActiveWeapon = Pawn(Owner).Weapon;
// Make new weapon cool.
if ( ActiveWeapon != None ) {
if ( ActiveWeapon.IsA('TournamentWeapon') )
TournamentWeapon(ActiveWeapon).Affector = self;
ActiveWeapon.SetDisplayProperties(ERenderStyle.STY _Translucent, ActiveTexture, true, true );
}
}
function SetOwnerDisplay() {
if( Inventory != None )
Inventory.SetOwnerDisplay();
SetFadeWeapon();
}
After looking at the class code and the log, it seems .ini file is not read by the package on the server. The reason behind this is unknown because all other mutators which use .ini config files work fine, both on Windows and Linux servers.
Unfortunately, I have no control over the server (it's a game hosting), so I have to find another solution, maybe recoding the mutator could work...
Thanks for your comments CPanoplyd.
regards,
Pietro
|
16th December, 2012, 03:01 PM
|
|
Godlike
|
|
Join Date: Nov 2011
Posts: 339
|
|
It could be as simple as an improper carriage return marker in the ini file.
Pietro try remaking the ini file in a program like Context or another text editor. Don't copy/paste anything from the original. Rewrite the entire thing from scratch and then save it as an ini file and try that. I've seen this happen sometimes with linux servers and ini files used on windows servers. The windows "line ends here, go to a new line" command isn't properly read by linux and so it sees something like:
Code:
[url]
Protocol=unrealProtocolDescription=Unreal ProtocolName=PlayerMap=Index.unrLocalMap=CityIntro.unrHost=Portal=MapExt=unrSaveExt=usaPort=7777Class=Botpack.TMale1
instead of:
Code:
[url]
Protocol=unreal
ProtocolDescription=Unreal Protocol
Name=Player
Map=Index.unr
LocalMap=CityIntro.unr
Host=
Portal=
MapExt=unr
SaveExt=usa
Port=7777
Class=Botpack.TMale1
that it should properly see.
__________________
Retired.
|
16th December, 2012, 03:04 PM
|
Holy Shit!!
|
|
Join Date: Feb 2005
Posts: 742
|
|
Yeah, I've had to rewrite INIs as well.
__________________
CPan
|
16th December, 2012, 05:52 PM
|
|
Killing Spree
|
|
Join Date: Dec 2009
Location: Trieste (Italy)
Posts: 20
|
|
Quote:
Originally Posted by UTrustedPlayer
It could be as simple as an improper carriage return marker in the ini file.
Pietro try remaking the ini file in a program like Context or another text editor. Don't copy/paste anything from the original. Rewrite the entire thing from scratch and then save it as an ini file and try that. I've seen this happen sometimes with linux servers and ini files used on windows servers. The windows "line ends here, go to a new line" command isn't properly read by linux and so it sees something like
|
Hi Kelly, nice to meet you also here
thanks for the infos, I tried your method with ConText editor but nothing happened, same problem
I tried to recompile the mutator but I got an error
This is what I get after decompiling "Fader" class with WOTgreal Package Exporter:
Code:
//=============================================================================
// Fader
//=============================================================================
class Fader extends TournamentPickup;
var() float GuardTime; //The time the Fader should last
var() float StartFactor;//What percentage to start the Fade at
var() float MaxGlow; //What percentage to start the Fade at
var() firetexture TeamFireTextures[4];
var() string TeamFireTextureStrings[4];
var firetexture ActiveTexture;
var float DamageFactor; //Current factor of fader
var float TimerInterval;//Current factor of fader
var int Counter; //Current factor of fader
var string PlayerName;
var bool Flash;
var int TeamNum;
var texture TeamTextures[4];
var Weapon ActiveWeapon;
function PickupFunction(Pawn Other) {
if ( Level.Game.bTeamGame && (Other.PlayerReplicationInfo != None) ) {
TeamNum = Other.PlayerReplicationInfo.Team;
}
if ( TeamFireTextures[TeamNum] == None )
TeamFireTextures[TeamNum] = FireTexture(DynamicLoadObject(TeamFireTextureStrings[TeamNum], class'Texture'));
if( StartFactor > 1 )
StartFactor = 1;
if( MaxGlow < 1 )
MaxGlow = 1;
if( GuardTime < 1.5 )
GuardTime = 1.5;
DamageFactor = StartFactor;
PlayerName = Other.PlayerReplicationInfo.PlayerName;
ActiveTexture = TeamFireTextures[TeamNum];
Other.SetDisplayProperties( ERenderStyle.STY_Translucent, ActiveTexture, true, true );
SetOwnerDisplay();
Other.ScaleGlow = 0;
Other.Weapon.ScaleGlow = 0;
log( PlayerName $ ": GuardTime = " $ GuardTime );
Counter = 0;
TimerInterval = ( GuardTime - 1 ) / 10;
//log( PlayerName $ ": TimerInterval = " $ TimerInterval );
SetTimer( TimerInterval, True );
}
function Timer() {
local pawn P;
local float Glow;
//log( PlayerName $ ": Counter = " $ Counter $ ", preDamageFactor = " $ DamageFactor );
P = Pawn(Owner);
if( Counter <= 9 ) {
DamageFactor = ( ( ( Counter * 0.1 ) + StartFactor ) / ( 0.9 + StartFactor ) ) * 0.9;
Glow = MaxGlow * DamageFactor;
P.ScaleGlow = Glow;
ActiveWeapon.ScaleGlow = Glow;
} else {
if( Counter >= 15 ) {
P.ScaleGlow = 1;
P.SetDefaultDisplayProperties();
ActiveWeapon.ScaleGlow = 1;
ActiveWeapon.SetDefaultDisplayProperties();
//log( PlayerName $ ": done with protection" );
DamageFactor = 1;
Destroy();
} else {
//for the last second, we blink
DamageFactor = 0.9;
if( Flash ) {
//translucent
Flash = false;
P.SetDisplayProperties( ERenderStyle.STY_Translucent, ActiveTexture, true, true );
SetFadeWeapon();
} else {
//solid
Flash = true;
P.SetDefaultDisplayProperties();
P.ScaleGlow = 1;
ActiveWeapon.SetDefaultDisplayProperties();
ActiveWeapon.ScaleGlow = 1;
}
SetTimer(0.2,false);
}
if( Inventory != None )
Inventory.SetOwnerDisplay();
}
Counter++;
}
function ChangedWeapon() {
if( Inventory != None )
Inventory.ChangedWeapon();
SetFadeWeapon();
}
function SetFadeWeapon() {
// Make old weapon normal again.
if ( ActiveWeapon != None ) {
ActiveWeapon.SetDefaultDisplayProperties();
if ( ActiveWeapon.IsA('TournamentWeapon') )
TournamentWeapon(ActiveWeapon).Affector = None;
}
ActiveWeapon = Pawn(Owner).Weapon;
// Make new weapon cool.
if ( ActiveWeapon != None ) {
if ( ActiveWeapon.IsA('TournamentWeapon') )
TournamentWeapon(ActiveWeapon).Affector = self;
ActiveWeapon.SetDisplayProperties(ERenderStyle.STY_Translucent, ActiveTexture, true, true );
}
}
function SetOwnerDisplay() {
if( Inventory != None )
Inventory.SetOwnerDisplay();
SetFadeWeapon();
}
defaultproperties
{
TeamFireTextures(0)=FireTexture'UnrealShare.Belt_fx.ShieldBelt.RedShield'
TeamFireTextures(1)=FireTexture'UnrealShare.Belt_fx.ShieldBelt.BlueShield'
TeamFireTextures(2)=FireTexture'UnrealShare.Belt_fx.ShieldBelt.Greenshield'
TeamFireTextures(3)=FireTexture'UnrealShare.Belt_fx.ShieldBelt.N_Shield'
TeamFireTextureStrings(0)="UnrealShare.Belt_fx.ShieldBelt.RedShield"
TeamFireTextureStrings(1)="UnrealShare.Belt_fx.ShieldBelt.BlueShield"
TeamFireTextureStrings(2)="UnrealShare.Belt_fx.ShieldBelt.Greenshield"
TeamFireTextureStrings(3)="UnrealShare.Belt_fx.ShieldBelt.N_Shield"
}
I think the error is related to code included in defaultproperties{}
Do you maybe now where I can put these lines of code inside the "Fader" class in order to rebuild the original uscript class ?
TeamFireTextures(0)=FireTexture'UnrealShare.Belt_f x.ShieldBelt.RedShield'
TeamFireTextures(1)=FireTexture'UnrealShare.Belt_f x.ShieldBelt.BlueShield'
TeamFireTextures(2)=FireTexture'UnrealShare.Belt_f x.ShieldBelt.Greenshield'
TeamFireTextures(3)=FireTexture'UnrealShare.Belt_f x.ShieldBelt.N_Shield'
TeamFireTextureStrings(0)="UnrealShare.Belt_fx.Shi eldBelt.RedShield"
TeamFireTextureStrings(1)="UnrealShare.Belt_fx.Shi eldBelt.BlueShield"
TeamFireTextureStrings(2)="UnrealShare.Belt_fx.Shi eldBelt.Greenshield"
TeamFireTextureStrings(3)="UnrealShare.Belt_fx.Shi eldBelt.N_Shield"
thanks in advance,
Pietro
|
17th December, 2012, 10:07 AM
|
|
Godlike
|
|
Join Date: Nov 2011
Posts: 339
|
|
Post the error P, and maybe email me the original U and let me fix it for you?
__________________
Retired.
|
17th December, 2012, 12:08 PM
|
Killing Spree
|
|
Join Date: Aug 2006
Posts: 27
|
|
I've never used this spawn protector, what is the difference between this and BunnyFooFoo?
|
17th December, 2012, 02:35 PM
|
|
Killing Spree
|
|
Join Date: Dec 2009
Location: Trieste (Italy)
Posts: 20
|
|
Quote:
Originally Posted by UTrustedPlayer
Post the error P, and maybe email me the original U and let me fix it for you?
|
Thanks for your support mate.
I'm going to find your mail contact, I have a new laptop and unfortunately old mail contatcs were recorded in the old one.
I'll try to mail you asap. Thanks again.
Quote:
Originally Posted by {SoP}axewound
I've never used this spawn protector, what is the difference between this and BunnyFooFoo?
|
Indeed, many people/teams playing sniper camping use this mutator along with BunnyFooFoo.
When you play camping (where no spawn kills are allowed), you need a feature which lets gamers to notice well and clearly other spawning players. SpawnGuard can gives you a red traslucency which is visibile in the map (also from long distance) and alerts others you're spawning and cannot be shot.
SpawnGuard has only a few params while BunnyFooFoo is an advanced spawn protection system which includes a lot of features, including control over sound effects.
Here you can find the files and the relative readme files:
BunnyFooFoo:
http://www.ut-files.com/Admin/Spawn_...yFooFooV5s.zip
SpawnGuard:
http://www.ut-files.com/Admin/Spawn_...guard.umod.zip
|
17th December, 2012, 03:09 PM
|
|
Godlike
|
|
Join Date: Nov 2011
Posts: 339
|
|
If that's all you want then rip the spawn protection from MH2Gold and make your own simple one. It will do whatever overlay you want for any time period you like and that's all it does (no extra fluff).
The class "SpawnProt" is the mutator and "SpawnProtEffect" is the overlay. You can find a few setup lines in "MH2Base" that will show you how to activate it, and this can be included into the "SpawnProt" class and a stand-alone mutator easily made.
There's nothing like making it yourself, and I'll help you if you need it
__________________
Retired.
|
17th December, 2012, 06:01 PM
|
|
Killing Spree
|
|
Join Date: Dec 2009
Location: Trieste (Italy)
Posts: 20
|
|
Quote:
Originally Posted by UTrustedPlayer
If that's all you want then rip the spawn protection from MH2Gold and make your own simple one. It will do whatever overlay you want for any time period you like and that's all it does (no extra fluff).
The class "SpawnProt" is the mutator and "SpawnProtEffect" is the overlay. You can find a few setup lines in "MH2Base" that will show you how to activate it, and this can be included into the "SpawnProt" class and a stand-alone mutator easily made.
There's nothing like making it yourself, and I'll help you if you need it
|
Thanks for the info Kelly.
Indeed, I would be interested in SpawnGuard, because within this mutator I (we) use also the param called "StartFactor" that affects initial player visibility and amount of damage taken (or dealt), which is anyway important in spawn protection.
Before I found your contact and emailed you the original SpawnGuard package. If you can, please, take a look at it, I really need a help to rebuild original class code. My UScript knowlegde is very limited, I do what I can and this problem goes far beyond my abilities
Thanks.
regards,
Pietro
|
17th December, 2012, 11:47 PM
|
|
Godlike
|
|
Join Date: Nov 2011
Posts: 339
|
|
No problem bro. I got it and I'll get you fixed up.
__________________
Retired.
|
18th December, 2012, 12:46 PM
|
|
Godlike
|
|
Join Date: Nov 2011
Posts: 339
|
|
Pietro, I took the U file you sent me and decompiled it. I then changed the mod name to SpawnGuard2 and recompiled it without any error and I didn't change any of the code. I don't think it's the mod that's the problem. The code looked OK to me, though I did not test it out on a server.
Perhaps we ought to move to email and we can discuss some of the other mods you are using and potential conflicts.
__________________
Retired.
|
20th December, 2012, 01:24 PM
|
|
Killing Spree
|
|
Join Date: Dec 2009
Location: Trieste (Italy)
Posts: 20
|
|
Quote:
Originally Posted by UTrustedPlayer
Pietro, I took the U file you sent me and decompiled it. I then changed the mod name to SpawnGuard2 and recompiled it without any error and I didn't change any of the code. I don't think it's the mod that's the problem. The code looked OK to me, though I did not test it out on a server.
Perhaps we ought to move to email and we can discuss some of the other mods you are using and potential conflicts.
|
Ok, thanks for your help.
May you send me please the recompiled mutator so I can test it on the server ? thanks.
Truly, I still did not understand where the problem was.
These are the 2 configs in the MapVote for sniper camping DM/TDM:
CustomGameConfig[2]=(bEnabled=True,GameClass="Botpack.DeathMatchPlus" ,NewPrefix="CDM",
Mutators="
BunnyFooFooV5s.BunnyFooFoo,
LongShotv2b.longShot,
ISCCampingR1a.ISCCampingR1a,
HideNPeek.HideNPeek,
WhoPushedMe.WhoPushedMe,
ESG_No16bits.ESG_No16bits,
Resurrector.MutResurrection,
SpawnGuard.SpawnGuard,
Revenge2.RevengeMutator,
AMLP_HaSm_v1b.AMLP_HaSm",
Settings="GameSpeed=1.10,bUseTranslocator=False,Mi nPlayers=1,MaxPlayers=10,TimeLimit=20")
CustomGameConfig[3]=(bEnabled=True,GameClass="Botpack.TeamGamePlus",N ewPrefix="CTDM",
Mutators="
BunnyFooFooV5s.BunnyFooFoo,
LongShotv2b.longShot,
ISCCampingR1a.ISCCampingR1a,
HideNPeek.HideNPeek,
TDMScoreFiXXX.FixMe,
WhoPushedMe.WhoPushedMe,
ESG_No16bits.ESG_No16bits,
Resurrector.MutResurrection,
SpawnGuard.SpawnGuard,
Revenge2.RevengeMutator,
AMLP_HaSm_v1b.AMLP_HaSm",
Settings="bBalanceTeams=True,GameSpeed=1.10,bUseTr anslocator=False,MinPlayers=1,MaxPlayers=10,MaxTea mSize=5,MaxTeams=2,TimeLimit=20")
As you can see, I use a lot of mutators for camping mod but there are no problems on Windows servers, everything works fine.
|
20th December, 2012, 10:07 PM
|
|
Godlike
|
|
Join Date: Nov 2011
Posts: 339
|
|
Just sent you the mod P. I will tell you that I had odd conflicts with resurrector so that's where I'd start if you begin removing mods.
__________________
Retired.
|
21st December, 2012, 07:58 AM
|
|
Killing Spree
|
|
Join Date: Dec 2009
Location: Trieste (Italy)
Posts: 20
|
|
Quote:
Originally Posted by UTrustedPlayer
Just sent you the mod P. I will tell you that I had odd conflicts with resurrector so that's where I'd start if you begin removing mods.
|
Yes, just receviced now. Thanks, I will test it asap.
I can't remove mods, this is the base configuration for camping. Moreover, Resurrector is fundamental for team/clan games.
If I won't be able to solve this issue, I will keep out from Linux servers and I'm not happy at all about it because actual game Windows hoster sucks ! This is the first time I setup a Linux server but I've never seen, truly, so many issues on a single server (SpawnGuard is not the only one, I could do a long list...)
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|