For direct access use https://forums.oldunreal.com
It's been quite a while since oldunreal had an overhaul, but we are moving to another server which require some updates and changes. The biggest change is the migration of our old reliable YaBB forum to phpBB. This system expects you to login with your username and old password known from YaBB.
If you experience any problems there is also the usual "password forgotten" function. Don't forget to clear your browser cache!
If you have any further concerns feel free to contact me: Smirftsch@oldunreal.com

"Keys" & misc. in Unreal

The section related to UnrealScript and modding. This board is for coders to discuss and exchange experiences or ask questions.
User avatar
BrakeDanceJ
OldUnreal Member
Posts: 114
Joined: Sun Feb 08, 2004 10:00 pm

"Keys" & misc. in Unreal

Post by BrakeDanceJ »

There's a few things many other games have that Unreal is missing. I think a number of these implementations would REALLY improve online gameplay. I do lack the coding knowledge to cook them up. Many times in the past I've tried to pick up UScript, asking Wolf and others for advice; though I've failed every time. So, here are my ideas, I'd love to see someone code them; or better, point me in the right direction so I can work on them myself

Keys.
Even Goldeneye for N64 had keys. I really believe that a 'key' mod would enhance the game play of unreal. It would allow mappers to add 'special access' areas to their maps. Keys could continously respawn at a specific point, could only spawn once in a location, and/or could be configured to drop if you kill someone with a key.

Selective Triggers/Portals (I'm going to try to code this one myself tonight...wish me luck)
TDM Games are so fun when you have even teams of friends. My most fun playing was back in the day in hLk clan practices. I've created several team maps before, but realized I really want to take TDM in a different direction on my server. It would be cool to have team-biased triggers for movers or other events. For example, only a member on the red team could open a door to a red-team base or ammo locker. Of course the mapper has to use common sense to make gameplay fair; but I think it would greatly enhance the sense of team play. Also, maybe portals that have different views and 'end locations' for the King in KOTH. Walking through a portal as non-king might bring you no-where, walking through it as King might bring you to a literal hill, or high place. You could hold this high place as king, and when you were sniped off or killed, the new king could enter the king-only zone. This would be pretty cool.


Input/Output interaction with objects
There are some times when as a mapper, I want to allow a player to interact with an object in my map. Currently the only way to really do this is with triggers. A really cool example of what I want to do is in one of Mr. T's (Old YS player from Canada) maps. In a version of one of his club maps, there's a room where you can control the lighting and music on the dance floor by 'touching' triggers in the room. Instead, it would be easier if an object triggered some sort of menu or input gathering method from the player. Other uses might include, 'access code doors', 'buying weapons or items from a store in-game (like that other mod I forget, though that's a gametype, and i'd like this ingame), 'triggering actions based on input. etc.


Just my random thoughts and ideas I've had for this game for a long while,
BrakeDanceJ
Last edited by BrakeDanceJ on Tue Aug 07, 2007 10:03 pm, edited 1 time in total.
User avatar
BrakeDanceJ
OldUnreal Member
Posts: 114
Joined: Sun Feb 08, 2004 10:00 pm

Re: "Keys" & misc. in Unreal

Post by BrakeDanceJ »

Ok, Here's my first release of the TeamTrigger mod!!! I plan on adding a few more things tomorrow.

Code: Select all

//=============================================================================
// TeamTrigger.
// Only the OwningTeam can activate this trigger
//=============================================================================
class TeamTrigger expands Trigger;

//
// Called when something touches the trigger.
//

// Thinking I should declare the variable that I called in defaultproperties
// Yup!!!

// Value of team.
var() localized int OwningTeam;

function Touch( actor Other )
{
      local actor A;
      if( IsRelevant( Other ) )
      {
            // Broadcast the Trigger message to all matching actors.
            if( Event != '' )
            
                  //START IF TEAM MATCHES BRACKET
                  //Other is a Pawn, so then go the replicationinfo. Not sure what would happen if a bot touched this?
                  if(Other.Instigator.PlayerReplicationInfo.Team == OwningTeam) {
                  
                  foreach AllActors( class 'Actor', A, Event )
                        A.Trigger( Other, Other.Instigator );

                  if ( Other.IsA('Pawn') && (Pawn(Other).SpecialGoal == self) )
                  Pawn(Other).SpecialGoal = None;
                              
                  
                  if( Message != "" )
                  // Send a string message to the toucher.
                  Other.Instigator.ClientMessage( Message );
                  
                  if( bTriggerOnceOnly )
                  // Ignore future touches.
                  SetCollision(False);
                  
                  //END IF TEAM MATCHES BRACKET
                  }
                  

                  
      }
}

//
// When something untouches the trigger.
//
function UnTouch( actor Other )
{
      local actor A;
      if( IsRelevant( Other ) )
      {
      
      //START IF TEAM MATCHES BRACKET            
      if(Other.Instigator.PlayerReplicationInfo.Team == OwningTeam) {      
            
            // Untrigger all matching actors.
            if( Event != '' )
                  foreach AllActors( class 'Actor', A, Event )
                        A.UnTrigger( Other, Other.Instigator );
                        
      //END IF TEAM MATCHES BRACKET
      }
                  
                        

      }
}

defaultproperties
{
     OwningTeam=1
}
Last edited by BrakeDanceJ on Sun Feb 09, 2014 5:24 pm, edited 1 time in total.
User avatar
BrakeDanceJ
OldUnreal Member
Posts: 114
Joined: Sun Feb 08, 2004 10:00 pm

Re: "Keys" & misc. in Unreal

Post by BrakeDanceJ »

I can't figure out version 2 :-(. No matter what team hits the trigger, the event is called :-(

Code: Select all

//=============================================================================
// TeamTrigger.
// Each team has a trigger now in V2
//=============================================================================
class TeamTrigger expands Trigger;

//
// Called when something touches the trigger.
//

// Thinking I should declare the variable that I called in defaultproperties
// Yup!!!

// Value of team.
//var() localized string RedEvent;
var(Events) name RedEvent;            
var(Events) name BlueEvent;
var(Events) name GreenEvent;            
var(Events) name GoldEvent;
var() localized string RedTeamMessage;
var() localized string BlueTeamMessage;
var() localized string GreenTeamMessage;
var() localized string GoldTeamMessage;

function Touch( actor Other )
{
      local actor A;
      if( IsRelevant( Other ) )
      {
            
                  //Red Team
                  if(Other.Instigator.PlayerReplicationInfo.Team == 0) {
                  
                  foreach AllActors( class 'Actor', A, RedEvent )
                        A.Trigger( Other, Other.Instigator );

                              //msg team
                              Other.Instigator.TeamMessage( Other.Instigator.PlayerReplicationInfo, RedTeamMessage, 'Say' );


                  if ( Other.IsA('Pawn') && (Pawn(Other).SpecialGoal == self) )
                  Pawn(Other).SpecialGoal = None;
                              
                  
                  if( Message != "" )
                  Other.Instigator.ClientMessage( Message );                  
                  if( bTriggerOnceOnly )
                  SetCollision(False);
                  
                  }
                  //Red Team

                  //Blue Team
                  if(Other.Instigator.PlayerReplicationInfo.Team == 1) {
                  
                  foreach AllActors( class 'Actor', A, BlueEvent )
                        A.Trigger( Other, Other.Instigator );

                              //msg team
                              Other.Instigator.TeamMessage( Other.Instigator.PlayerReplicationInfo, BlueTeamMessage, 'Say' );


                  if ( Other.IsA('Pawn') && (Pawn(Other).SpecialGoal == self) )
                  Pawn(Other).SpecialGoal = None;
                              
                  
                  if( Message != "" )
                  Other.Instigator.ClientMessage( Message );                  
                  if( bTriggerOnceOnly )
                  SetCollision(False);
                  
                  }
                  //Blue Team

                  //Green Team
                  if(Other.Instigator.PlayerReplicationInfo.Team == 2) {
                  
                  foreach AllActors( class 'Actor', A, GreenEvent )
                        A.Trigger( Other, Other.Instigator );

                              //msg team
                              Other.Instigator.TeamMessage( Other.Instigator.PlayerReplicationInfo, GreenTeamMessage, 'Say' );


                  if ( Other.IsA('Pawn') && (Pawn(Other).SpecialGoal == self) )
                  Pawn(Other).SpecialGoal = None;
                              
                  
                  if( Message != "" )
                  Other.Instigator.ClientMessage( Message );                  
                  if( bTriggerOnceOnly )
                  SetCollision(False);
                  
                  }
                  //Green Team

                  //Gold Team
                  if(Other.Instigator.PlayerReplicationInfo.Team == 3) {
                  
                  foreach AllActors( class 'Actor', A, GoldEvent )
                        A.Trigger( Other, Other.Instigator );

                              //msg team
                              Other.Instigator.TeamMessage( Other.Instigator.PlayerReplicationInfo, GoldTeamMessage, 'Say' );


                  if ( Other.IsA('Pawn') && (Pawn(Other).SpecialGoal == self) )
                  Pawn(Other).SpecialGoal = None;
                              
                  
                  if( Message != "" )
                  Other.Instigator.ClientMessage( Message );                  
                  if( bTriggerOnceOnly )
                  SetCollision(False);
                  
                  }
                  //Gold Team


                  

                  
      }
}

//
// When something untouches the trigger.
//
function UnTouch( actor Other )
{
      local actor A;
      if( IsRelevant( Other ) )
      {
      
      //red      
      if(Other.Instigator.PlayerReplicationInfo.Team == 0) {
      
            // Untrigger all matching actors.
                  foreach AllActors( class 'Actor', A, RedEvent )
                        A.UnTrigger( Other, Other.Instigator );
            }
      //red

      //blue      
      if(Other.Instigator.PlayerReplicationInfo.Team == 1) {
      
            // Untrigger all matching actors.
                  foreach AllActors( class 'Actor', A, BlueEvent )
                        A.UnTrigger( Other, Other.Instigator );
            }
      //blue

      //green      
      if(Other.Instigator.PlayerReplicationInfo.Team == 2) {
      
            // Untrigger all matching actors.
                  foreach AllActors( class 'Actor', A, GreenEvent )
                        A.UnTrigger( Other, Other.Instigator );
            }
      //green

      //gold      
      if(Other.Instigator.PlayerReplicationInfo.Team == 3) {
      
            // Untrigger all matching actors.
                  foreach AllActors( class 'Actor', A, GoldEvent )
                        A.UnTrigger( Other, Other.Instigator );
            }
      //gold
                  
                        

      }
}

defaultproperties
{
      RedEvent=
      BlueEvent=
      GreenEvent=
      GoldEvent=
      RedTeamMessage=
      BlueTeamMessage=
      GreenTeamMessage=
      GoldTeamMessage=
}
 
Last edited by BrakeDanceJ on Sun Feb 09, 2014 5:24 pm, edited 1 time in total.
User avatar
Smirftsch
Administrator
Posts: 9008
Joined: Wed Apr 29, 1998 10:00 pm
Location: NaPali

Re: "Keys" & misc. in Unreal

Post by Smirftsch »

great ideas ! I really would love such enhancements too.
I can't really help here, because I'm no very skilled uscripter, but if you need some assistance from the native side, i may can add it.
Sometimes you have to lose a fight to win the war.
User avatar
TCP_Wolf
Administrator
Posts: 1078
Joined: Sun Mar 03, 2002 12:04 pm

Re: "Keys" & misc. in Unreal

Post by TCP_Wolf »

Well... I actually started on the key thingy but as usual other things are more important. Making a key itself that can do triggers when used is a piece of cake. The tricky part is all the stuff around it, making sure there are only X keys total, destroyed keys are reset/dropped etc etc blah....

If it ever reaches any state of usability I will give it out for somebody to add a mesh and texture (maybe next year) :-)
-=]HONESTY PAYS[=-
StalwartUK

Re: "Keys" & misc. in Unreal

Post by StalwartUK »

Klingon Honor Guard (KHG) has a system very similar to what you are describing. In KHG keys exist that open up certain areas to player that can be only be used with their corresponding lock. There are several types such as a retinal scanner and a passcard. These exist as subclasses of "Keys" and "Locks".

Here's the "locks" class:
-code snipped since no one wants it-

And here's the "keys" class:
-code snipped since no one wants it-

I guess that these would need some adaption before they could be used in Unreal. KlingonTrigger, which extends from Trigger, contains no new code and KlingonPickups which, you guessed it, extends from Pickup appears to be inconsequential to this script. What you make of it is now up to you.
Last edited by StalwartUK on Tue Sep 04, 2007 1:18 pm, edited 1 time in total.
User avatar
BrakeDanceJ
OldUnreal Member
Posts: 114
Joined: Sun Feb 08, 2004 10:00 pm

Re: "Keys" & misc. in Unreal

Post by BrakeDanceJ »

Well hmm, wtf does "Keys" the inventory item come in? It's in that code, but you said theirs nothing new under inventory? Wierd.

Wolf, how much of a donation would be required to get you motivated on this? :D

Smirftsch, I sent you an email a bit ago about the Editor in 227; My messenger feature here on the board seems to be broken, did you ever get it?
User avatar
Hyper
OldUnreal Member
Posts: 3558
Joined: Fri Oct 11, 2002 5:41 pm

Re: "Keys" & misc. in Unreal

Post by Hyper »

The Unreal City map of J4Unreal already has doors that only open if you are a Nali or Skaarj player.
http://www.geocities.com/j4unreal/
Last edited by Hyper on Mon Sep 03, 2007 6:44 am, edited 1 time in total.
Alter your reality...forever.

http://www.hypercoop.tk
unreal://hypercoop.tk
User avatar
Turboman.
OldUnreal Member
Posts: 898
Joined: Tue Feb 04, 2003 6:40 pm

Re: "Keys" & misc. in Unreal

Post by Turboman. »

The Unreal City map of J4Unreal already has doors that only open if you are a Nali or Skaarj player.
http://www.geocities.com/j4unreal/
which does not involve coding, infact it is a standard feature of triggers
you can make doors that open to specific player classes if you want, for example set triggertype to class proximity=male3 and the door will exclusively open for male3 characters, same can be done for skaarj, rabbits, or flares (the invisibility door at temple of vandora).
FYI this feature is used on every door in unreal since triggers don't open for pawns by default.
however making a trigger that detects player teamtype is abit different, i guess taking a look at classproximity might help though.
Last edited by Turboman. on Mon Sep 03, 2007 2:16 pm, edited 1 time in total.
User avatar
TCP_Wolf
Administrator
Posts: 1078
Joined: Sun Mar 03, 2002 12:04 pm

Re: "Keys" & misc. in Unreal

Post by TCP_Wolf »

LOL Brake, I don't need money to be motivated but free time :) I have a 8-12 hour workday EVERY DAY so I am usually beat when I am home and in no mood of continuing to code - mind you I am a professional software engineer (but of course if you want to waste money just send it to my GMX address via Paypal ;) :D). When and IF I code anything it is usually at weekends when very often other things are in the way too. I'm pretty sure if Dots or some other skilled coder took up the challenge he could beat me to completing it easily as well.

As for the KHG code, sorry but it's way too primitive. From the looks of it that was only meant for single player offline use because there is no environmental regard in the code whatsoever, and THAT is what makes the whole topic complicated.

Also, I think I can do it without "locks", as normal triggers can serve as these. The difference then is that you have to USE the key in the proximity of a door manually instead of just walking up a door that needs it. But maybe something can be done so both is possible, don't know yet.
-=]HONESTY PAYS[=-
User avatar
BrakeDanceJ
OldUnreal Member
Posts: 114
Joined: Sun Feb 08, 2004 10:00 pm

Re: "Keys" & misc. in Unreal

Post by BrakeDanceJ »

LOL Brake, I don't need money to be motivated but free time :) I have a 8-12 hour workday EVERY DAY so I am usually beat when I am home and in no mood of continuing to code - mind you I am a professional software engineer (but of course if you want to waste money just send it to my GMX address via Paypal ;) :D). When and IF I code anything it is usually at weekends when very often other things are in the way too. I'm pretty sure if Dots or some other skilled coder took up the challenge he could beat me to completing it easily as well.
:) I hear yah, there's just never enough time. But somehow, even though there's not enough time, ironically there's never enough money to buy fun things to fill it with.
Also, I think I can do it without "locks", as normal triggers can serve as these. The difference then is that you have to USE the key in the proximity of a door manually instead of just walking up a door that needs it. But maybe something can be done so both is possible, don't know yet.
Well how about this. Have a pickup called "Key". It does nothing, the only property it has is doorname, or something of the sort. Otherwise, there is no code. Then a modified trigger that simply cycles through the inventory of the pawn activating it, if it finds a key, checks the doorname, and matches it with a doorname of it's own then activates, or otherwise, triggers another user-configurable action?

Also, Wolf, is there a way I can 'reference' the King in KOTH and also detect gametype (to make sure it is KOTH). I'm pretty new at the whole uscripting thing, and haven't been able to figure out how to access those little pieces. I'm assuming I have to go through player replicator info? Is that changed at all in UTeam? I can't seem to see any 'variables' under Player, that would indicate 'king status', I'm thinking it's not kept track of (in non-uteam unreal anyway). Would it be easier to just check how the player is 'glowing' seeing as KOTH changes how the player glows?
User avatar
Bane
OldUnreal Member
Posts: 493
Joined: Sun Mar 03, 2002 6:32 pm

Re: "Keys" & misc. in Unreal

Post by Bane »

Also, Wolf, is there a way I can 'reference' the King in KOTH and also detect gametype (to make sure it is KOTH). I'm pretty new at the whole uscripting thing, and haven't been able to figure out how to access those little pieces.

Code: Select all

if (KingOfTheHill(level.game) != none && SomePawn == KingOfTheHill(level.game).king)
        DoSomething();
This will only work serverside. level.game doesn't exist on the client (or SOMETHING. Could someone please explain to me how the hell level.game works clientside?). Even if level.game does exist, king isn't replicated, so it'll only work serverside.
Author of Hide and Seek mod, and the NALIBALL mod

Hide and Seek can be downloaded from:
http://HideNSeek.5u.com
User avatar
BrakeDanceJ
OldUnreal Member
Posts: 114
Joined: Sun Feb 08, 2004 10:00 pm

Re: "Keys" & misc. in Unreal

Post by BrakeDanceJ »

Hey Thanks Bane!!

I've been able to make a 'lock'. I'm using the flashlight as a 'key' right now to test, that will change real quick.

Code: Select all

//=============================================================================
// Lock. Version 1
//=============================================================================
class Lockv1 expands Trigger;


function Touch( actor Other )
{
      local actor A;
      if( IsRelevant( Other ) )
      {

            if(Other.Instigator.FindInventoryType(class'Flashlight') != none) {
                  Other.Instigator.ClientMessage("TEST");
            }

      }
}
Last edited by BrakeDanceJ on Sun Feb 09, 2014 5:25 pm, edited 1 time in total.
User avatar
TCP_Wolf
Administrator
Posts: 1078
Joined: Sun Mar 03, 2002 12:04 pm

Re: "Keys" & misc. in Unreal

Post by TCP_Wolf »

Well I am a perfectionist, so I wouldn't go for such "simple" keys. Your ideas are valid and good, and if it was all you wanted to have a key and a lock somewhere (a respawning key mind you which several players may have) then you'd already have your solution.

Checking KOTH:
The code Bane posted may work in regular KOTH. It certainly will NOT work in EDM or UTF, because there KOTH are mutators. It wouldn't work if they were gametypes either, because who says the new KOTH gametype is a subclass of the existing gametype?
I believe there is a variable in the default replication info bKing but maybe I am wrong and it only exists in my own replication info, I would have to check that.
Your idea of checking the glow is fair and good, I only have a small caveat: you will detect people with activated AMPLIFIER wrongly as King too. You could go for the damage scaling as well, but I'm afraid some other mods use and modify that as well so you could again get false positives.

If you're serious about making a King trigger or something you will need something reliable that works with any kind of mod and truly only detects KINGs. If there is a bKing variable somewhere which exists in normal Unreal, you're set... if not, it gets complicated ;-)
-=]HONESTY PAYS[=-
User avatar
BrakeDanceJ
OldUnreal Member
Posts: 114
Joined: Sun Feb 08, 2004 10:00 pm

Re: "Keys" & misc. in Unreal

Post by BrakeDanceJ »

Hey Wolf,
Just thought of something! bKing isn't in the original KOTH code, so I'm going to detect glow; and also detect if the player has an amplifier. If the player has an amplifier, it won't count em as king. And I'm not sure it modifies the glow the same 'amount' King does, I'll have to check

Code: Select all

if(Other.Instigator.FindInventoryType(class'Amplifier') == none) {
    if(Other.Instigator.Glow .....

  }
}
User avatar
BrakeDanceJ
OldUnreal Member
Posts: 114
Joined: Sun Feb 08, 2004 10:00 pm

Re: "Keys" & misc. in Unreal

Post by BrakeDanceJ »

Actually, there's a difference in glow between king and amplifier

Code: Select all

      NewKing.bUnLit = true; 
      NewKing.LightEffect=LE_NonIncidence;
      NewKing.LightBrightness=255;
      NewKing.LightHue=0;
      NewKing.LightRadius=10;
      NewKing.LightSaturation=0;
      NewKing.AmbientGlow = 200;
      NewKing.bUnlit = true;
      NewKing.LightType=LT_Steady;
vs.

Code: Select all

      Owner.LightType=LT_Steady;      
      Owner.LightRadius=6;
      Owner.LightEffect=LE_NonIncidence;
      Owner.LightSaturation=40;
      Owner.LightHue=225;
      Owner.LightBrightness=255;
      Owner.AmbientGlow=255;
User avatar
Smartball
Global Moderator
Posts: 241
Joined: Fri Mar 22, 2002 4:01 am

Re: "Keys" & misc. in Unreal

Post by Smartball »

I know Wolf specifically mentioned the amplifier, but I think the more general point is that checking lighting is not a concrete way of detecting a king, as opposed to some sort of "bKing" variable, which is. Checking lighting leaves the possibility open for other mods to have modified a player's lighting which could potentially lead to false positives. For the most part it would probably work, but it's just not preferred coding practice due to potentially detecting the wrong person as king.
Of all the things I've lost, I miss my mind the most.
User avatar
Oldsparky
OldUnreal Member
Posts: 176
Joined: Sun Mar 21, 2004 11:47 am

Re: "Keys" & misc. in Unreal

Post by Oldsparky »

Clarification of the topic

What is KOTH anyway?

King Of The Hill:
What is a King Of The Hill Server Anyway? King of the hill is a variation of the standard death match. The King glows very bright red or green and is quite visible and it is also very difficult for the king to hide. In the beginning part of the game, the first player to make a kill becomes king and gets 6 kills for getting the first kill of the game. As long as you are red and King your weapons have 2 times normal hitting power and thus the king can kill a player with one rifle shot. The object of this variation is to kill the King and that is the same as 6 regular kills. There are lots of different strategies to win at the KOTH match. The main one is to become King 6 times and you win the match.  You may want to think about strategies like letting the weakest player kill you when you are king and then rapidly kill him to gain 6 points. Lots of ways to play the KOTH, and a newbie can get in a lucky shot and win the game.


We at Newbies playground are the oldest long running KOTH server on line and have the most experience at what it takes to make them work.  Been KOTH since about 1999.  We like what we have and it sounds what your discussing here would take a whole new family of maps.  We are pretty happy with KOTH mods as they now exist.  My concern is more the scripting and fancy keybinds that give players an advantage and with the kings power makes them very difficult to stop.  The last mod we implemented other than UTEAM was the pure koth mod, which works well and has been met with mixed approval.  It is a good way to get people to shoot the king and not the old guy.  I am always open for ways to detect cheats.  Some players are just to good.  We are open to any thing that keeps old unreal alive and kicking.  People, by nature, oppose change and new modifications and variations are often difficult to find a way to make people gladly accept them.  Functionalilty and protection of fair play of the exisiting servers somehow seems more important than more modifications to me.  I am quite taken back by the success of Woofersville running the Monster mash mod.  We have been able to run a mod and show over 2000 maps on this server.  It is very frequently occupied much more than I thought.  It seems to me by my personal observations, that monstermash and co op have out ran the DM type servers in popularity.  Perhaps coding in the direction of what is showing the most use on line would be the best route for future coding projects.  The unreal community is changing again I think.  Just a old guys opinion.
Last edited by Oldsparky on Fri Sep 07, 2007 2:37 pm, edited 1 time in total.
User avatar
BrakeDanceJ
OldUnreal Member
Posts: 114
Joined: Sun Feb 08, 2004 10:00 pm

Re: "Keys" & misc. in Unreal

Post by BrakeDanceJ »

Sparky,
While I agree with all of the points you've made, I'm going to have to still push for game 'modifications'. First off, 99.9% of my play time is at newbies. I like the people, and KOTH is my favorite gametype. I'm not a fan of monstermash, and therefore wouldn't try to write anything for it. Second, I lack any sort of decent uscripting knowledge; I feel that efficient protection should be made by people very efficient and knowledgeable in uscript. Which brings me to my last point. I don't see cheating as a real threat to the server. Being a former cheater/bot-user, I can say that most of that is stomped out now. In EDM the user's ubrowser is replaced completely (not sure if it's like this in UTeam too or not), and tools out there that monitor for hacks, like Neyphsis, are top-quality. IIRC Uteam blocks 'tauntstrafing'. To go off on another semi-related point, I disagree with this block, as I do not see that as cheating; I think an option should be in place to allow the admin to choose. I already know you, Sparky, will choose to have it blocked; however it is a series of commands available to all players, and all players have the ability to bind keys. I was using this bind until it was blocked, on my home computer, I believe it is still in place but now rendered unusable.

While I do agree 'security' is a big deal. I just don't see a threat. I can come into the server on any given night and climb pretty near the top of the scoreboard. I see everyone above me play, and I see they have SKILL; not 31337 script hax. You know someone's cheating when they nail all headshots, but have no clue how to strafe or asmd moving combo. I haven't see a cheater in ages.

Again though, what's going to keep players in the game? Two things: Friendly faces/the community and more/new content. I have to tell you, I'm getting pretty tired of the maps on newbies. There will always be classics (Observatory, DeCyberChurch, etc.) that I will cheer inside when they come on, but maps like CO3R or whatever with the big circle and no gravity. Yuck! My point in starting this entire thread, was to create new kinds of maps. Maps that involve some strategy other than "bang bang shoot 'em up". I'm not pushing for an RPG here; but as you see when I play, I use every item, weapon, and part of the map to my advantage. Accessing areas by ASMD-Jumping or Rocket Jumping, strategic spot camping, shadow crawling, and whatnot. While all of those are frowned upon by some, I say they make for a truly skilled player, and an interesting play experience. I want players to have to worry about not getting killed, finding the king, watching their health and ammo levels, while at the same time, trying to find a pickup that will allow them to access another part of the map, finding secrets, and at the same time admiring the beautiful eyecandy the map provides.

That's why I'm trying to take my mapping in a new direction. The other day I told turok that I'd have a few new maps for newbies. Unfortunately, I've scrapped all three because of BSP errors, too many polys. Krull makes amazing maps without the errors. I'm going for that, but a little bit more. Keys, secret areas, STRATEGY! In the past my maps were partly slopped together, but fun to play. I want the whole deal now. That's why I posted this thread.

If you're still concerned that people won't accept the change. Don't be. My maps will come bundled with everything needed, no modifications necessary by the admin or to the server. Keys, King/Team Triggers etc. will only affect the maps they're in, not the rest of the maps. Obviously my new maps will encompass some of them. The users will then either like or dislike the map. Zeitkind has land-mines, Redwood has 'flight-of-the-pheonix', "Kill room" has a switch that kills everyone but the person who pressed it, need I go on? Certain things can make or break a map. In each of those above examples, it makes it.

So what if most people are digging coop/monster mash? What more needs to be done on those fronts? Nothing really. Just because 90% of American teenagers and sleeping with anything that walks, doesn't mean I'm going to. KOTH for me, and KOTH/DM my work will be oriented. That should be good news to you anyway, seeing as newbies *is* a KOTH server. Not that you really play my old maps that much anyway ;)... oh, and not that you should, some were pretty low quality ;D lol
Last edited by BrakeDanceJ on Sat Sep 08, 2007 1:18 am, edited 1 time in total.
User avatar
BrakeDanceJ
OldUnreal Member
Posts: 114
Joined: Sun Feb 08, 2004 10:00 pm

Re: "Keys" & misc. in Unreal

Post by BrakeDanceJ »

I know Wolf specifically mentioned the amplifier, but I think the more general point is that checking lighting is not a concrete way of detecting a king, as opposed to some sort of "bKing" variable, which is. Checking lighting leaves the possibility open for other mods to have modified a player's lighting which could potentially lead to false positives. For the most part it would probably work, but it's just not preferred coding practice due to potentially detecting the wrong person as king.
It would be cool if you both made the same bKing variable available in both UTEAM/EDM. That way something could be written to detect 'game mod', and see if it's default koth, or otherwise. I suppose in the mean time I could manually detect each, and with conditional statements check king differently. Obviously I want my map/modifications playable on all types of servers.

Two questions then:
-How do I access the current 'King variable' in EDM?
-How do I check which mod it is?
Last edited by BrakeDanceJ on Sat Sep 08, 2007 1:10 am, edited 1 time in total.
User avatar
Smartball
Global Moderator
Posts: 241
Joined: Fri Mar 22, 2002 4:01 am

Re: "Keys" & misc. in Unreal

Post by Smartball »

I know Wolf specifically mentioned the amplifier, but I think the more general point is that checking lighting is not a concrete way of detecting a king, as opposed to some sort of "bKing" variable, which is. Checking lighting leaves the possibility open for other mods to have modified a player's lighting which could potentially lead to false positives. For the most part it would probably work, but it's just not preferred coding practice due to potentially detecting the wrong person as king.
It would be cool if you both made the same bKing variable available in both UTEAM/EDM. That way something could be written to detect 'game mod', and see if it's default koth, or otherwise. I suppose in the mean time I could manually detect each, and with conditional statements check king differently. Obviously I want my map/modifications playable on all types of servers.

Two questions then:
-How do I access the current 'King variable' in EDM?
-How do I check which mod it is?
As far as I know, there is no "king" variable in regular Unreal and I did not add one in EDM since it would be inaccessible due to obfuscation anyway. The only reason I mentioned the hypothetical "king" variable was just to clarify Wolf's point. There wouldn't be any way to make a universal variable between UTeam and EDM since they are both completely separate mods. To check which mod is running, you could most likely convert the server's gametype to a string (with something such as String(Level.Game.Class) or something similar, my UScript is unbelievably rusty....) and just see if "UTeamFix" or "EDM5_Server" is present. Although I guess the question is sort of useless now since the "king" variable doesn't exist anyway. Your best bet would be to go with the lighting checking solution since it would work all round, but just be aware of the potential false positives.
Of all the things I've lost, I miss my mind the most.
User avatar
Bane
OldUnreal Member
Posts: 493
Joined: Sun Mar 03, 2002 6:32 pm

Re: "Keys" & misc. in Unreal

Post by Bane »

vanilla KOTH has a King variable that can be treated as a bKing variable.  I don't see how you could possibly make KOTH without having a king variable. The whole point is that the king is tougher but a more worthwile kill. How are you gonna make him a more worthwhile kill if you don't keep track of who the king is?
While I do agree 'security' is a big deal. I just don't see a threat. I can come into the server on any given night and climb pretty near the top of the scoreboard. I see everyone above me play, and I see they have SKILL; not 31337 script hax. You know someone's cheating when they nail all headshots, but have no clue how to strafe or asmd moving combo. I haven't see a cheater in ages.
I have no idea how the hell cheating came into this thread... but I feel like correcting you here.
Only a poorly designed bot (or a botter flaunting his bot) will always headshot. A well designed bot will just make you think that the person is really good. They'll even deliberately miss, just to make it less obvious that they're cheating. Oh, and it is possible to use an aimbot on a tazerproj, so a botter could also bot his way into being a total combowhore.
Author of Hide and Seek mod, and the NALIBALL mod

Hide and Seek can be downloaded from:
http://HideNSeek.5u.com
User avatar
Smartball
Global Moderator
Posts: 241
Joined: Fri Mar 22, 2002 4:01 am

Re: "Keys" & misc. in Unreal

Post by Smartball »

Doh Bane's right, the original KOTH tracks the king in the gametype. I said my UScript is rusty, hahaha. Either way you still can't track it through EDM due to obfuscation (unless you're going to argue that blank dummy classes can be made to be placeholders during compilation, but I'm not explaining that). I dunno about UTeam.
Of all the things I've lost, I miss my mind the most.
User avatar
TCP_Wolf
Administrator
Posts: 1078
Joined: Sun Mar 03, 2002 12:04 pm

Re: "Keys" & misc. in Unreal

Post by TCP_Wolf »

It's a mutator and not a gametype, so you could access the variable of the KOTH gametype but the value is not stored there, so it's useless. The KOTH mutator has a (non-obfuscated) king variable but the point is really moot... there just is no (obvious) ONE SINGLE way to properly detect the king regardless of the mod running.

If that is your goal, I do suggest using the glow in conjunction with the DamageScaling variable of the pawn. This is still not 100% fool proof but should be quite accurate in all but the most exotic of situations.
-=]HONESTY PAYS[=-
User avatar
TCP_Wolf
Administrator
Posts: 1078
Joined: Sun Mar 03, 2002 12:04 pm

Re: "Keys" & misc. in Unreal

Post by TCP_Wolf »

IIRC Uteam blocks 'tauntstrafing'. To go off on another semi-related point, I disagree with this block, as I do not see that as cheating; I think an option should be in place to allow the admin to choose. I already know you, Sparky, will choose to have it blocked; however it is a series of commands available to all players, and all players have the ability to bind keys.
Well what you also say is this:

All players get the editor with the game and can use it (since everyone can learn to code) so everyone is entitled to write himself an aimbot. Your words! LOL :-P

For me, an exploit is when somebody uses a "feature" of a game that was not intended to be used that way. And common, the taunting definitely was not created to enable you to move silently at full speed.

But enough digressing... all in all I consider your ideas and late work with respect.
-=]HONESTY PAYS[=-

Return to “UScript Board”