Jump to content

Ukill

Former Developers
  • Posts

    107
  • Joined

  • Last visited

Everything posted by Ukill

  1. This post is about how we can prevent or solve a team balance complain. Please don't feel offended, but I don't know why it is so difficult to place some people i a different team, just because the most of the people got an opinion about this, and especially to avoid useless discussions, and create an "Organised" game-play that EVERYBODY likes. From the last 10 PUG's i played on the Saturday, the most where unbalanced or there was a discussion about balancing while or after. Maybe its better next time to choose 2 people that care about picking 2 equal teams instead of "i wanna play with my friend". I think a good example is like @Quincy and i did last Sunday PUG, even if i play a lot, it is still difficult for me too to setup the teams equal. So we helped each other to pick the teams, what did turn out well. In the end i think it don't matter i post a opinion about this subject, since this problem returns often, and people that hear other people complaining about how the teams are picked, just ignore the complains, even here on the forum if you just read back some posts, when they give a response about team picking, its not goes about the team picking anymore, but all about what we did wrong or or what people could do to have a better match. Maybe its more wise to decide for next week that before the teams are picked that we decide together with 40 people who's not playing on the same team, it saves a lot of discussions while and after the game, and everybody got the feeling from the beginning that they have a chance. For me its all about have some fun on the Saturday night, with 40 people that like to organize a game where all 40 players are happy with, i think this can be accomplished by letting people with this spirit picking the teams. But, I could not setup the teams better then others do, but i think we can do it TOGETHER !! LETS ORGANIZE!!
  2. @Ruud033 Good luck! in the beginning it tried to solve all the map errors, and also did find out that a lot of meshes got shadows. But about the landscape, where does the grey area come from? is that a normal behavior?, i did try to put the landscape into the "sky"-environment, but did not find where to change it. @Luhrian Did you change the properties of all the object after you placed them?
  3. @Ruud033 The light map resolution of the trees i did see was < 32. Maybe this picture shows the problem, the landscape looks different if i compare them to other maps.
  4. I thought i already did tell you, but i was unable to build the lighting, my pc with 16GB RAM will crash after some minutes. When i did use the PC with 32GB it did not crash but the process hangs at 0%, and I did not find any solution to build the map successful.
  5. Quincy and i did select teams, after the game started we had different commanders.
  6. If you need some help @Colonel Autumn send me a pmsg.
  7. For me it was one of the better PUG's, and the first time I saw that the total number of players online did go over 100
  8. Thanks @Agent, but i really don't know what to add there. Because i really dont know what to change in my existing script i decided to start over again, and put my focus on the replication, whereby i build my script around it So i started first to do just a simple replication. class Rx_Mutator_CountDown_Controller extends Rx_Controller; var repnotify int Count; replication { if (bNetDirty && (Role==ROLE_Authority)) Count; } simulated event ReplicatedEvent(name VarName) { if (VarName == 'Count') { Count=(Count); } else { super.ReplicatedEvent(VarName); } } exec function DoCountDown() { ServerCountIt(); } reliable server function ServerCountIt() { local Rx_Mutator_CountDown_Controller C; foreach WorldInfo.AllControllers(class'Rx_Mutator_CountDown_Controller', C) { C.Count=(Count); C.CountIt(); } } simulated function CountIt() { local int TimeSec, TimeTenSec; Count--; TimeSec = Count % 10; TimeTenSec = (Count / 10); ClientMessage( " TimeTenSecTimeSec: " $ TimeTenSec $ TimeSec); SetTimer(2, false, 'ServerCountIt'); } defaultproperties { Count=180.0 } and extended this with my arrayvariable, now it is finally possible to replicate string/int-array // ***************************************************************************** // * * * * * * * * * * Rx_Mutator_AdminTool_Controller * * * * * * * * * * * * // Written by Ukill, Supported by ........................................... // ***************************************************************************** class Rx_Mutator_AdminTool_Controller extends Rx_Controller; var repnotify string MyText; var repnotify int Cycle; var repnotify string RefArrayStatus[2]; var repnotify int RefArrayAccessLevel[2]; var int ArrayLength; replication { if (bNetDirty && (Role==ROLE_Authority)) RefArrayAccessLevel,RefArrayStatus,MyText,Cycle; } simulated event ReplicatedEvent(name VarName) { local int x; if (VarName == 'MyText') { MyText=(MyText); } else if (VarName == 'Cycle') { Cycle=(Cycle); } else if (VarName == 'RefArrayStatus') { for (x = 0; x < ArrayLength ; x++) { RefArrayStatus[x]=(RefArrayStatus[x]); } } else if (VarName == 'RefArrayAccessLevel') { for (x = 0; x < ArrayLength ; x++) { RefArrayAccessLevel[x]=(RefArrayAccessLevel[x]); } } else { super.ReplicatedEvent(VarName); } } simulated event PreBeginPlay() { SetTimer(5, true, 'ServerReplicate'); } exec function DoReplicate() { ServerReplicate(); } reliable server function ServerReplicate() { local Rx_Mutator_AdminTool_Controller C; local int x; foreach WorldInfo.AllControllers(class'Rx_Mutator_AdminTool_Controller', C) { C.Cycle=(Cycle); C.MyText=(MyText); for (x = 0; x < ArrayLength ; x++) { C.RefArrayStatus[x]=(RefArrayStatus[x]); C.RefArrayAccessLevel[x]=(RefArrayAccessLevel[x]); } C.Replicate(); } } simulated function Replicate() { local string MyString; local int x; Cycle++; MyString = MyText $ Cycle; for (x = 0; x < ArrayLength ; x++) { if (RefArrayStatus[x] == "true") { RefArrayStatus[x]="false"; } else { RefArrayStatus[x]="true"; } RefArrayAccessLevel[x]--; } for (x = 0; x < ArrayLength ; x++) { ClientMessage( MyString $ " - RefArrayStatus[" $ x $ "]=" $ RefArrayStatus[x]); ClientMessage( MyString $ " - RefArrayAccessLevel[" $ x $ "]=" $ RefArrayAccessLevel[x]); } //ClientMessage( MyString $ " - RefArrayStatus[0]=" $ RefArrayStatus[0] $ " RefArrayStatus[1]=" $ RefArrayStatus[1] ); } defaultproperties { ArrayLength=2; MyText="Replication #"; Cycle=0; RefArrayStatus[0]=""; RefArrayStatus[1]=""; RefArrayAccessLevel[0]=1000; RefArrayAccessLevel[1]=100000; } But i am still searching for the fault in my existing script : Why will it not replicate to new users, and what exactly needs to be modified ? I did find the issue that is responsible for the players that are not in game yet. after an other try of search and compare. Foreach WorldInfo.AllControllers(class'Rx_Mutator_AdminTool_Controller', C) { -> for (x = 0; x < ArrayLength ; x++) -> { -> C.RefArrayStatus[x]=(RefArrayStatus[x]); -> } C.ServerAdminToolStatusDo(sToggleName, sStatus); } But finally, it works !!!!
  9. Meanwhile the "out of bounds (6/6)" problem disappear.
  10. To complete this Topic : The way to do this can be found in the Rx_Mutator_AdminTool mutator, which are placed in the Download section, under Modifications (see link below) :
  11. I did try to add the replication block below: replication { if ( bNetDirty && Role == ROLE_Authority ) RefArrayStatus,RefArrayAccessLevel; } More info about the replication block : I did use "( bNetDirty && Role == ROLE_Authority )" in the script, because in other scripts this gave me the most accurate replication. In the end the problem is still here, it is impossible for me to replicate a static array (Only for players that join an existing game) I also found some errors in the server-log : RefArrayStatus: [0249.49] ScriptWarning: Accessed array 'Rx_Mutator_AdminTool_Controller_0.RefArrayStatus' out of bounds (6/6) Rx_Mutator_AdminTool_Controller CNC-Walls_Flying.TheWorld:PersistentLevel.Rx_Mutator_AdminTool_Controller_0 Function Rx_Mutator_AdminTool.Rx_Mutator_AdminTool_Controller:AdminToolNotifyServerAccessLevel:002D RefArrayAccessLevel: [0249.49] ScriptWarning: Accessed array 'Rx_Mutator_AdminTool_Controller_0.ServerRefArrayAccessLevel' out of bounds (6/6) Rx_Mutator_AdminTool_Controller CNC-Walls_Flying.TheWorld:PersistentLevel.Rx_Mutator_AdminTool_Controller_0 Function Rx_Mutator_AdminTool.Rx_Mutator_AdminTool_Controller:AdminToolNotifyServerAccessLevel:004E I do also saw the output of the "simulated event ReplicatedEvent(name VarName)", this means in my opinion that the replication at least runs/starts for the array variables. T see the output below when I Toogle mode 4 to level 2: Server current values Rx_Mutator_AdminTool_Controller.ServerRefArrayAccessLevel to ( [1] = 2, [2] = 2, [3] = 3, [4] = 4, [5] = 1) Function ReplicatedEvent touched with VarName: ServerRefArrayAccessLevel Server updated Rx_Mutator_AdminTool_Controller.ServerRefArrayAccessLevel to ( [1] = 2, [2] = 2, [3] = 3, [4] = 2, [5] = 1) I think i got a dirty solution to get the replication working, because it is possible for me to replicate "normal" variables. I am thinking about that i could create some "normal" variables that will do the replication, whereby after the replication i push those value's from the normal variables to the "array variables", as far as i can see now this will get my script working but gives me a couple of disadvantages : my script will grow in size, and a lot of variables will have duplicated value's. I will try to get it to work like described above, but i am still searching for that "better way", and have no idea what to think about or what i can do to solve the "out of bounds (6/6)" error
  12. The script below is working as expected, all variables get replicated to player in game on change, except that the default variables get replicated to users that join the game, instead of the current ones. I think that i need to create a function that is executed on the clients from new players, so it will get the variables from the server, but have no idea how to do it. Does anybody have an idea how to complete this replication ? The variables are : var RepNotify string RefArrayStatus [4]; var RepNotify int RefArrayAccessLevel [4]; // ***************************************************************************** // * * * * * * * * * * Rx_Mutator_AdminTool_Controller * * * * * * * * * * * * // Written by Ukill, Supported by ........................................... // ***************************************************************************** class Rx_Mutator_AdminTool_Controller extends Rx_Controller; //General var var string RefArrayName [4]; //ReferenceNameArray var string RefArrayDescription [4]; //ReferenceDescriptionArray var RepNotify string RefArrayStatus [4]; //ReferenceStatusArray var RepNotify int RefArrayAccessLevel [4]; //ReferenceAccessLevelArray var bool OSA; //OneStepAuthentication var int ArrayLength; var bool DebugMode; replication { if (bNetDirty && Role == ROLE_Authority) RefArrayStatus,RefArrayAccessLevel; } exec function AdminTool(string sToggleName, optional string sStatus, optional string iAccessLevel) { local string sStatusOut; local string iAccessLevelOut; local int x; local int y; //Filter bad sToggleName for (x = 0; x < ArrayLength ; x++) { if (RefArrayName[x] != sToggleName) { y=y++; if (y == ArrayLength) { sToggleName=""; sStatus=""; iAccessLevel=""; } } } // Swap if order is different if ( Len(sStatus) == 1 && Len(iAccessLevel) == 0 ) { iAccessLevel=(sStatus); sStatus="Skip"; } else if ( Len(iAccessLevel) > Len(sStatus) ) { sStatusOut=(iAccessLevel); (iAccessLevelOut)=(sStatus); iAccessLevel=(iAccessLevelOut); sStatus=(sStatusOut); } // Do status stuff if ( Len(iAccessLevel) == 0 && Len(sStatus) == 0 || "true" == sStatus || "false" == sStatus ) { ServerAdminToolStatus(sToggleName, sStatus); } //Do AccessLevel stuff if ( Len(iAccessLevel) == 1 && int(iAccessLevel) != 0 && int(iAccessLevel) > 0 && int(iAccessLevel) < 6) { ServerAdminToolAccessLevel(sToggleName, int(iAccessLevel)); } // Show summary if ( DebugMode == true ) { AdminToolInfo(); } } reliable server function ServerAdminToolStatus(string sToggleName, optional string sStatus) { local Rx_Mutator_AdminTool_Controller C; if ( DebugMode == true ) { ClientMessage("Started function ServerAdminToolAccessLevel with variables sToggleName: " $ sToggleName $ " sStatus: " $ sStatus); } /* * * * * * * * * * * * * * * * * * * * */ // DONT CHANGE - Start Authentication Check AdminToolAccessLevelAuth(RefArrayAccessLevel[0]); if (OSA == true && (RefArrayStatus[0]) == "true" ) { OSA=false; // DONT CHANGE - Stop Authentication Check /* * * * * * * * * * * * * * * * * * * * */ foreach WorldInfo.AllControllers(class'Rx_Mutator_AdminTool_Controller', C) { C.ServerAdminToolStatusDo(sToggleName, sStatus); } } else { foreach WorldInfo.AllControllers(class'Rx_Mutator_AdminTool_Controller', C) { ClientMessage(PlayerReplicationInfo.PlayerName $ " : You must be admin to use the ToggleStatus function"); } } } reliable server function ServerAdminToolAccessLevel(string sToggleName, int iAccessLevel) { local Rx_Mutator_AdminTool_Controller C; if ( DebugMode == true ) { ClientMessage("Started function ServerAdminToolAccessLevel with variables sToggleName: " $ sToggleName $ " iAccessLevel: " $ iAccessLevel); } /* * * * * * * * * * * * * * * * * * * * */ // DONT CHANGE - Start Authentication Check AdminToolAccessLevelAuth(RefArrayAccessLevel[0]); if (OSA == true && (RefArrayStatus[0]) == "true" ) { OSA=false; // DONT CHANGE - Stop Authentication Check /* * * * * * * * * * * * * * * * * * * * */ foreach WorldInfo.AllControllers(class'Rx_Mutator_AdminTool_Controller', C) { C.ServerAdminToolAccessLevelDo(sToggleName, iAccessLevel); } } else { foreach WorldInfo.AllControllers(class'Rx_Mutator_AdminTool_Controller', C) { ClientMessage(PlayerReplicationInfo.PlayerName $ " : You must be admin to use the ToggleAccessLevel function"); } } } exec function AdminToolInfo() { local int x; local string Msg; /* * * * * * * * * * * * * * * * * * * * */ // DONT CHANGE - Start Authentication Check AdminToolAccessLevelAuth(RefArrayAccessLevel[0]); if (OSA == true && (RefArrayStatus[0]) == "true" ) { OSA=false; // DONT CHANGE - Stop Authentication Check /* * * * * * * * * * * * * * * * * * * * */ ClientMessage(" "); ClientMessage(" Info: function AdminToolInfo"); ClientMessage(" "); ClientMessage(" Level: Status: Name: Description:"); ClientMessage(" "); for (x = 0; x < ArrayLength ; x++) { Msg = " " $ RefArrayAccessLevel[x] $ " " $ RefArrayStatus[x] $ " " $ RefArrayName[x] $ " " $ RefArrayDescription[x]; ClientMessage(Msg); } ClientMessage(""); } } function ServerAdminToolStatusDo(string sToggleName, optional string sStatus) // ToggleStatus Option: true,false,empty(autotoggle) { local int x; if ( DebugMode == true ) { ClientMessage("Started function ServerAdminToolStatusDo with variables sToggleName: " $ sToggleName $ " sStatus: " $ sStatus); } if ( DebugMode == true ) { ClientMessage("Jump in array with variable sToggleName: " $ sToggleName); } for (x = 0; x < ArrayLength ; x++) { if(sToggleName == RefArrayName[x] ) { if (sStatus == "true") { RefArrayStatus[x] = ("true"); if ( DebugMode == true ) ClientMessage( RefArrayStatus[x] $ " Found!" $ sToggleName ); } else if (sStatus == "false") { RefArrayStatus[x] = ("false"); if ( DebugMode == true ) ClientMessage( RefArrayStatus[x] $ " Found!" $ sToggleName ); } else if ("true" == RefArrayStatus[x] ) { RefArrayStatus[x] = ("false"); if ( DebugMode == true ) ClientMessage( RefArrayStatus[x] $ " Found!" $ sToggleName ); } else if ("false" == RefArrayStatus[x] ) { RefArrayStatus[x] = ("true"); if ( DebugMode == true ) ClientMessage( RefArrayStatus[x] $ " Found!" $ sToggleName ); } else { if ( DebugMode == true ) ClientMessage( RefArrayStatus[x] $ " None found!" $ sToggleName ); } } } } function ServerAdminToolAccessLevelDo(string sToggleName, int iAccessLevel){ local int x; if ( DebugMode == true ) { ClientMessage("Started function AdminToolAccessLevel with variables sToggleName: " $ sToggleName $ " iAccessLevel: " $ iAccessLevel); } for (x = 0; x < ArrayLength ; x++) { if( sToggleName == RefArrayName[x] ) { RefArrayAccessLevel[x] = (iAccessLevel); } } } function AdminToolAccessLevelAuth(int iAccessLevel) { local string GroupName; OSA=false; switch (iAccessLevel) { case 0: break; case 1: Groupname="None"; if (PlayerReplicationInfo.PlayerName == "") { OSA=true; } break; case 2: GroupName="All Users"; if (PlayerReplicationInfo.PlayerName != "") { OSA=true; } break; case 3: GroupName="Administrators"; if (PlayerReplicationInfo.bAdmin && PlayerReplicationInfo.PlayerName != "") { OSA=true; } break; case 4: GroupName="Developers"; if (PlayerReplicationInfo.PlayerName != "" && bIsDev) { OSA=true; } break; case 5: GroupName="Administrators or Developers"; if (PlayerReplicationInfo.bAdmin || bIsDev) { OSA=true; } break; } if ( OSA == true ) { ClientMessage( GroupName $ " Accepted with Level : " $ iAccessLevel ); } else if ( OSA == false ) { ClientMessage( GroupName $ " Denied with Level : " $ iAccessLevel ); } // Maybe later add here the modename in the clientmessage } defaultproperties { //General OSA=false DebugMode=false; //AuthMode=false; // AccessLevel 0 for None ArrayLength=4; // AccessLevel 1 for All Users // AccessLevel 2 for Administrators //ModeNames // AccessLevel 3 for Developers RefArrayName[0]="allmode"; RefArrayName[1]="mode1"; // RefArrayName (string) RefArrayName[2]="mode2"; // ModeNames : this variable is used to set the default Name for any Mode RefArrayName[3]="mode3"; // RefArrayStatus (string) //Modedescription // ModeStatus : This variable is used to set the default Status for any Mode. (false and False) RefArrayDescription[0]="All modes"; RefArrayDescription[1]="FutureSoldier"; // RefArrayAccessLevel (int) RefArrayDescription[2]="SandboxSpawn"; // Modesnames : This variable is used to set the default AccessLevel for any Mode. (0-4) RefArrayDescription[3]="SandboxGimme"; // TODO: create accesslevels that are static to users, for use in subfunctions //ModeStatus RefArrayStatus[0]="true"; RefArrayStatus[1]="true"; RefArrayStatus[2]="true"; RefArrayStatus[3]="true"; //ModeAccessLevel RefArrayAccessLevel[0]=2; RefArrayAccessLevel[1]=0; RefArrayAccessLevel[2]=0; RefArrayAccessLevel[3]=0; }
  13. View File Rx_Mutator_AdminTool Warning : This mutator can crash your server * This mutator will add a votemenu item, the submenu's contain items you can enable/disable during gameplay * For now i added the functions "FutureSoldier","Sandbox"........ Later i will add more options Modes : All modes can be enabled by entering the "Vote Menu" (Ctrl+V), then choose "Server GameTools" (9). The modes below will be displayed on the screen, choose the mode by number. Mode 1 : FutureSoldier Mode 2 : Sandbox (SandboxSpawn) Mode 3 : Sandbox (Gimme) After the vote successfully ended, the Mode Access-Level will be set to 2, the chosen mode will be activated en accessible by the command screen (F5 or ~) Commands: Mode 1 Command : Futuresoldier Mode 2 Command : SandboxSpawn SandboxKillOwned destroy all items spawned in Sandbox SandboxHelp Mode 3 Command : Gimme Commands (Only Admins) options: AdminToolHelp - Displays information about accesslevels AdminToolInfo - Displays the current status of all modes AdminTool {Mode} (Optional{Status}) (Optional{Level}) Command: Description: Admintool mode1 - toggle current status mode1 Admintool mode2 true - toggle current status mode2 to true Admintool mode3 false 1 - toggle current status mode3 to false and set mode1 access-level to 1 Admintool mode4 2 true - toggle current status mode4 to true and set mode1 access-level to 2 Admintool mode1 3 - set mode1 access-level to 3 Mode Acces-Levels : 1 = None 2 = All Users 3 = Administrators 4 = Developers 5 = Administrators and Developers Mode Status : true = mode is Enabled (All Users got access to the function depending on the Access-Level of the mode) false = mode is Disabled (Can only be enabled by command line) Version 1.0.0 Compatible with Renegade X v5.283 Submitter Ukill Submitted 02/25/2017 Category Modifications
  14. Version 1.1.0

    3308 downloads

    Warning : This mutator can crash your server * This mutator will add a votemenu item, the submenu's contain items you can enable/disable during gameplay * For now i added the functions "FutureSoldier","Sandbox"........ Later i will add more options Modes : All modes can be enabled by entering the "Vote Menu" (Ctrl+V), then choose "Server GameTools" (9). The modes below will be displayed on the screen, choose the mode by number. Mode 1 : FutureSoldier Mode 2 : Sandbox (SandboxSpawn) Mode 3 : Sandbox (Gimme) After the vote successfully ended, the Mode Access-Level will be set to 2, the chosen mode will be activated en accessible by the command screen (F5 or ~) Commands: Mode 1 Command : Futuresoldier Mode 2 Command : SandboxSpawn SandboxKillOwned destroy all items spawned in Sandbox SandboxHelp Mode 3 Command : Gimme Commands (Only Admins) options: AdminToolHelp - Displays information about accesslevels AdminToolInfo - Displays the current status of all modes AdminTool {Mode} (Optional{Status}) (Optional{Level}) Command: Description: Admintool mode1 - toggle current status mode1 Admintool mode2 true - toggle current status mode2 to true Admintool mode3 false 1 - toggle current status mode3 to false and set mode1 access-level to 1 Admintool mode4 2 true - toggle current status mode4 to true and set mode1 access-level to 2 Admintool mode1 3 - set mode1 access-level to 3 Mode Acces-Levels : 1 = None 2 = All Users 3 = Administrators 4 = Developers 5 = Administrators and Developers Mode Status : true = mode is Enabled (All Users got access to the function depending on the Access-Level of the mode) false = mode is Disabled (Can only be enabled by command line) Version 1.0.0 Compatible with Renegade X v5.283
  15. On this moment i did find out 2 solutions : 1. Just duplicate the votesystem, make it unique and disable old system. 2. Extend the current votesystem (In my opinion this one got more limitations, but is more easy to implement)
  16. Can anybody tell me why this does not work online Offline it added an extra option to the VoteMenu. (Compiled file : Rx_Mutator_VoteMenu.u ) How do i get it to run on my server ? Rx_Mutator_VoteMenu : (Content) // ***************************************************************************** // * * * * * * * * * * * * Rx_Mutator_VoteMenu * * * * * * * * * * * * * * // ***************************************************************************** class Rx_Mutator_VoteMenu extends Rx_Mutator; event PreBeginPlay() { local Rx_VoteMenuHandler VoteMod; super.PreBeginPlay(); VoteMod=Rx_VoteMenuHandler(GetDefaultObject(Class'Rx_VoteMenuHandler')); VoteMod.VoteChoiceClasses[8] = class'Rx_VoteMenuChoice_ExtraChoice'; } final static function object GetDefaultObject(class ObjClass) { return FindObject(ObjClass.GetPackageName()$".Default__"$ObjClass, ObjClass); } defaultproperties { } Rx_VoteMenuChoice_ExtraChoice : (Content) // ***************************************************************************** // * * * * * * * * * Rx_VoteMenuChoice_ExtraChoice * * * * * * * * * * * * * * // ***************************************************************************** class Rx_VoteMenuChoice_ExtraChoice extends Rx_VoteMenuChoice; function Init() { ToTeam = Handler.PlayerOwner.PlayerReplicationInfo.Team.TeamIndex; Finish(); } function string ComposeTopString() { return super.ComposeTopString() $ " is calling for turn mode1"; } function Execute(Rx_Game game) { // Do something } DefaultProperties { PercentYesToPass=0.20f MenuDisplayString = "ExtraChoice" } I did found the code below, maybe it help to solve the problem : if(Rx_Controller(PlayerOwner) !=none && Rx_Controller(PlayerOwner).VoteHandler != none) { if(Rx_Controller(PlayerOwner).VoteHandler.VoteChoiceClasses.Length < (8+ExtraVoteNum)) { Rx_Controller(PlayerOwner).VoteHandler.VoteChoiceClasses.AddItem(class'RenX_CommanderMod.Rx_VoteMenuChoice_Commander'); //1 } }
  17. I didnt know this server was able to run that much bots. Now you did got the opportunity @voltex to work on your K\D.
  18. The benefit of an 40+ player server is that more players play this game, instead of going to an other activity. I think this is one of the most important reasons to raise the current hardcap limit. I have not seen this many players as last weekend. Now, there are more than 80 people online on the same time. I am totally not satisfied with this amount, because I will never be, when there is some higher goal that is capable of being achieved =). I think the max player can be a tool to gain more people on the servers, since I have seen more Americans join the server because there a slot free in the evening compared to just being stuck at 40 players and people not bothering to wait for a slot. For myself the performance of the game decrease a little bit, and some maps were definately not designed to handle that many but I accept that is a price I have to pay to help the community to build back up. I have uploaded a good number of mutators to help promote different play styles and gameplay methods, and they are available to everyone, this included breaking the player cap to try playing with large bot count servers. I think people should be allowed to make the servers whatever size they feel their server can handle since not everyone has a server that can handle even 32 players. I think the acceptable limit is somewhere around 64 (previous hard cap), but even then I don't advise to just run a 64 player server, since not every server can run that many, but... there are servers that can handle it.
  19. Because this mutator is missing as only one in this list, i added it manually.
  20. Version 1.0.0

    477 downloads

    * This mutator will let you change the skin of your soldier in the Renegade X game * Later i will add more options Everything always starts with pressing F5 and typing : "GimmeSoldier {SoldierName}" The GimmeSoldierHelp command gives you the information shown below. GDI Soldiers : GDI_Soldier GDI_Shotgunner GDI_Officer GDI_RocketSoldier GDI_McFarland GDI_Deadeye GDI_Gunner GDI_Patch GDI_Havoc GDI_Sydney GDI_Mobius GDI_Hotwire Nod Soldiers : Nod_Soldier Nod_Shotgunner Nod_Officer Nod_RocketSoldier Nod_FlameTrooper Nod_BlackHandSniper Nod_StealthBlackHand Nod_LaserChainGunner Nod_Sakura Nod_Ravenshaw Nod_Mendoza Nod_ChemicalTrooper Nod_Engineer Nod_Technician Others : GDI_FutureSoldier GDI_FutureSoldier_Old Nod_FutureSoldier UT_Crowd_Robot Nod_Soldier_Green EXAMPLE : GimmeSoldier Nod_Soldier_Green Version 1.0.0 Compatible with Renegade X v5.282 Mutator : Rx_Mutator_GimmeSoldier.u (Download) Source :
  21. @Ukill has discovered the power of the messiah and can now float through the map! Too bad he didn't use it to win the game...
  22. Successful File: Rx_Mutator_Controller.uc (content) Now i like to find out how i do Keep the variable alive between Map Changes ? Do i need then to extend to an other class ? Any idea's @yosh56 or @Agent ?
  23. Thanks! @Agent, i am gonna search and try it out.
×
×
  • Create New...