Results 1 to 27 of 27

Thread: AIController

  1. #1

    Default AIController

    Hello ! im having this problem with my AIcontroller, the pawn , does follow, and behaves as it should, but the State that should trigg its firing mode in instant hit , doesnt work properly as it should atm.
    I have followed mougli`s tutorial on AIcontroller, and done it exact as it says in the tutorial site.
    And please, tell me how i use the code box prefix



    class SandboxAIController extends AIController;



    var Actor Target;
    var() Vector TempDest;


    event Possess(Pawn inPawn, bool bVehicleTransition)
    {
    super.Possess(inPawn, bVehicleTransition);
    Pawn.SetMovementPhysics();
    }



    auto state Idle
    {
    event SeePlayer (Pawn Seen)
    {
    super.SeePlayer(Seen);
    target = Seen;
    GotoState('Follow');
    }
    Begin:
    }



    state Follow
    {
    ignores SeePlayer;
    function bool FindNavMeshPath()
    {
    // Clear cache and constraints (ignore recycling for the moment)
    NavigationHandle.PathConstraintList = none;
    NavigationHandle.PathGoalList = none;

    // Create constraints
    class'NavMeshPath_Toward'.static.TowardGoal( NavigationHandle,target );
    class'NavMeshGoal_At'.static.AtActor( NavigationHandle, target,32 );

    // Find path
    return NavigationHandle.FindPath();
    }
    Begin:

    if( NavigationHandle.ActorReachable( target) )
    {
    FlushPersistentDebugLines();
    //Direct move
    MoveToward( target,target );
    }
    else if( FindNavMeshPath() )
    {

    NavigationHandle.SetFinalDestination(target.Locati on);
    FlushPersistentDebugLines();
    NavigationHandle.DrawPathCache(,TRUE);

    // move to the first node on the path
    if( NavigationHandle.GetNextMoveLocation( TempDest, Pawn.GetCollisionRadius()) )
    {
    DrawDebugLine(Pawn.Location,TempDest,255,0,0,true) ;
    DrawDebugSphere(TempDest,16,20,255,0,0,true);
    MoveTo( TempDest, target );
    }
    }
    else
    {
    //We can't follow, so get the hell out of this state, otherwise we'll enter an infinite loop.
    GotoState('Idle');
    }
    goto 'Begin';

    if (VSize(Pawn.Location - target.Location) <= 512)
    {
    GotoState('Shoot'); //Start shooting when close enough to the player.
    }
    else
    {
    goto 'Begin';
    }
    }

    state Shoot
    {
    function Aim()
    {
    local Rotator final_rot;

    final_rot = Rotator(vect(0,0,1)); //Look straight up
    Pawn.SetViewRotation(final_rot);
    }
    Begin:
    Pawn.ZeroMovementVariables();
    Sleep(1); //Give the pawn the time to stop.
    Aim();
    Pawn.StartFire(1);
    Pawn.StopFire(1);
    GotoState('Idle');

    }

    simulated event GetPlayerViewPoint(out vector out_Location, out Rotator out_Rotation)
    {
    // AI does things from the Pawn
    if (Pawn != None)
    {
    out_Location = Pawn.Location;
    out_Rotation = Rotation; //That's what we've changed
    }
    else
    {
    Super.GetPlayerViewPoint(out_Location, out_Rotation);
    }
    }

    DefaultProperties
    {
    }


    Any tips about this will be helpfull, im kinda new to programming.
    Thanks alot

  2. #2

    Default

    For the code prefix, you add "[C0DE]" before and "[/C0DE]" after what you want to make code. Except use a O instead of an 0

    I can't see anything wrong with your code at first glance, so I'd suggest adding a bunch of `log() statements to test execution. For example, before calling GotoState() you'd write `log("Going to state Shoot") or something like that, and the first line after Begin: you'd write `log("Arrived at state Shoot"). Then just look at your log to see what's working and what's not.
    Try my game Never End, now on the App Store! For more info, see the release thread.

    My Blog: WillyG Productions - Your Premiere UDK Resource
    My YouTube Channel: WillyG Productions
    My Facebook Page: WillyG Productions

  3. #3

    Default

    okay, ill try that at once, and reply the results as i have tested it a few times thnx ^^

  4. #4
    Banned
    Join Date
    Feb 2011
    Location
    BXL/Paris
    Posts
    2,169

    Default

    Remove first goto 'Begin'; from state Follow.

  5. #5

    Default

    okay, i have done that now, and then the pawn sees me, starts running, but stops. even if im going a long distance away from him.
    the pawn works just fine in movement, but it does not attack anything, thats my problem, it doesnt shoot (or in my case use instant hit dmg, since the SK will be replaced with a snake)
    so, the range in the pylons are also fine, it follows the nav mesh as it should.

  6. #6

    Default

    i have tried to implement some of some other scripts that are on the forum aswell, niandri had one with AI i saw you had helped him with mr vendor
    but then, the script works fine just down below idle state, then the UDK recompiler wont allow another state named follow, so i went back to moug`s and tried that further but ended up with no positiv result, only failure :P but thats positive feedback aswell xD

  7. #7
    Banned
    Join Date
    Feb 2011
    Location
    BXL/Paris
    Posts
    2,169

    Default

    Post your code...

  8. #8

    Default

    Code:
     class SandboxAIController extends AIController;
    
    
    
    var Actor Target;
    var() Vector TempDest;
    
    
    event Possess(Pawn inPawn, bool bVehicleTransition)
    {
        super.Possess(inPawn, bVehicleTransition);
        Pawn.SetMovementPhysics();
    }
    
    auto state Idle
    {
        event SeePlayer (Pawn Seen)
        {
            super.SeePlayer(Seen);
            target = Seen;
            GotoState('Follow');
        }
    Begin:
    	
        `log("ERROR");
    
    }   
       
    state Follow
    {
        ignores SeePlayer;
        function bool FindNavMeshPath()
        {
            // Clear cache and constraints (ignore recycling for the moment)
            NavigationHandle.PathConstraintList = none;
            NavigationHandle.PathGoalList = none;
    
            // Create constraints
            class'NavMeshPath_Toward'.static.TowardGoal( NavigationHandle,target );
            class'NavMeshGoal_At'.static.AtActor( NavigationHandle, target,32 );
    
            // Find path
            return NavigationHandle.FindPath();
        }
    Begin:
    
        if( NavigationHandle.ActorReachable( target) )
        {   
            FlushPersistentDebugLines();
            //Direct move
            MoveToward( target,target );
        }
        else if( FindNavMeshPath() )
        {
            NavigationHandle.SetFinalDestination(target.Location);
            FlushPersistentDebugLines();
            NavigationHandle.DrawPathCache(,TRUE);
            
            // move to the first node on the path
            if( NavigationHandle.GetNextMoveLocation( TempDest, Pawn.GetCollisionRadius()) )
            {
                DrawDebugLine(Pawn.Location,TempDest,255,0,0,true);
                DrawDebugSphere(TempDest,16,20,255,0,0,true);
                MoveTo( TempDest, target );
            }
        }
        else
        {
            //We can't follow, so get the hell out of this state, otherwise we'll enter an infinite loop.
            GotoState('Idle');
        }
        goto 'Begin';
    	`log("ERROR");
    }
    
      state Shoot
    {  
    
        function Aim()
        {   
            local Rotator final_rot;
            final_rot = Rotator(vect(0,0,1)); //Look straight up
            Pawn.SetViewRotation(final_rot);
        
        }
    
    Begin:
        Pawn.ZeroMovementVariables();
        Sleep(1); //Give the pawn the time to stop.
        Aim();
        Pawn.StartFire(1);
        Pawn.StopFire(1);
        GotoState('Idle');
    `log("ERROR");
    }
    
    simulated event GetPlayerViewPoint(out vector out_Location, out Rotator out_Rotation)
    {
        // AI does things from the Pawn
        if (Pawn != None)
        {
            out_Location = Pawn.Location;
            out_Rotation = Rotation; //That's what we've changed
        }
        else
        {
            Super.GetPlayerViewPoint(out_Location, out_Rotation);
        }
          `log("ERROR");
    }
    
    DefaultProperties
    {
    }

  9. #9

    Default

    i tried to log a few things, to see if i could find whats wrong, but i do not recieve any errors , and after i removed "GoTo" as you said, the pawn runned to me, but then it stopped when it had reached its target= playercontroller/me.
    And no matter how long in the pylon i ran it just stood there. no reaction.
    looked like it was hesitating ^^
    Last edited by Gytelaks; 04-25-2012 at 03:47 AM.

  10. #10
    Banned
    Join Date
    Feb 2011
    Location
    BXL/Paris
    Posts
    2,169

    Default

    Code:
    auto state Idle
    {
        event SeePlayer (Pawn Seen)
        {
            super.SeePlayer(Seen);
            target = Seen;
            GotoState('Follow');
        }
    Begin:
    	if( Target != None )
    		GotoState('Follow');
    }
    This is not like should be, but... Should work...
    Last edited by VendorX; 04-25-2012 at 05:00 AM.

  11. #11

    Default

    Quote Originally Posted by VendorX View Post
    Code:
    auto state Idle
    {
        event SeePlayer (Pawn Seen)
        {
            super.SeePlayer(Seen);
            target = Seen;
            GotoState('Follow');
        }
    Begin:
    	if( Target != None )
    		GotoState('Follow');
    }

    Thanks alot, now it works as it should again
    But, it still doesnt use the shoot statement, i have created custom weapon class for it, with instant hit dmg, but i thought it should give some feedback on the dmg without that. i might be wrong, so, now it follows as it should, but the shoot statement never triggs in the pawn.

    Code:
     
    state Shoot
    {  
    
        function Aim()
        {   
            local Rotator final_rot;
            final_rot = Rotator(vect(0,0,1)); //Look straight up
            Pawn.SetViewRotation(final_rot);
        
        }
    
    Begin:
        Pawn.ZeroMovementVariables();
        Sleep(1); //Give the pawn the time to stop.
        Aim();
        Pawn.StartFire(1);
        Pawn.StopFire(1);
        GotoState('Idle');
    `log("ERROR");
    }
    Because, in the idle state, shouldnt the player response to
    Code:
     
    auto state Idle
    {
        event SeePlayer (Pawn Seen)
        {
            super.SeePlayer(Seen);
            target = Seen;
            GotoState('Shoot');
        }
    Begin:
    	if( Target != None )
    		GotoState('Follow');
    }
    Instead of follow? because i want the pawn to attack, when im seen. it still doesnt do that.

  12. #12
    Banned
    Join Date
    Feb 2011
    Location
    BXL/Paris
    Posts
    2,169

    Default

    Let me explain how this code (mess...) work.

    ScriptLog: START MATCH - Bot is spawned...
    Bot:
    "What exactly i'm doing here..? It's boring, nothing happen..."

    Some time later... He see the player...
    Bot:
    "Wait a minute, you F***ing PC - i will kick your ass as soon as i get you..."

    Now he jump to the state Follow, pass through Begin: then he will ask NavMesh where he must go to get PC and start looping in this state until...- ETERNITY, because you've removed very important for him part of code from the end of this state:
    Code:
    if (VSize(Pawn.Location - target.Location) <= 512)
    	GotoState('Shoot'); //Start shooting when close enough to the player.
    else
    	goto 'Begin';
    Now he's angry...
    Exit: Preparing to exit.

    To be continued...
    Last edited by VendorX; 04-25-2012 at 10:24 AM.

  13. #13

    Default

    Quote Originally Posted by VendorX View Post
    Let me explain how this code (mess...) work.

    ScriptLog: START MATCH - Bot is spawned...
    Bot:
    "What exactly i'm doing here..? It's boring, nothing happen..."

    Some time later... He see the player...
    Bot:
    "Wait a minute, you F***ing PC - i will kick ass as soon as i get you..."

    Now he jump to the state Follow, pass through Begin: he will ask NavMesh where he must go to get PC and start looping in this state until...- ETERNITY, because you've removed very important for him part of code from the end of this state:
    Code:
    if (VSize(Pawn.Location - target.Location) <= 512)
    	GotoState('Shoot'); //Start shooting when close enough to the player.
    else
    	goto 'Begin';
    Now he's angry...
    Exit: Preparing to exit.

    To be continued...
    okay, i have implemented it, and that is basically what i tried first. but one last time befor im digging my self in this mess alone, because i will get this to work, this is a school project so i have to within this week, for reaching the other milestones.
    this is where it should be implemented right ?
    Code:
    state Follow
    {
        ignores SeePlayer;
        function bool FindNavMeshPath()
        {
            // Clear cache and constraints (ignore recycling for the moment)
            NavigationHandle.PathConstraintList = none;
            NavigationHandle.PathGoalList = none;
    
            // Create constraints
            class'NavMeshPath_Toward'.static.TowardGoal( NavigationHandle,target );
            class'NavMeshGoal_At'.static.AtActor( NavigationHandle, target,32 );
    
            // Find path
            return NavigationHandle.FindPath();
        }
    Begin:
    
        if( NavigationHandle.ActorReachable( target) )
        {   
            FlushPersistentDebugLines();
            //Direct move
            MoveToward( target,target );
        }
        else if( FindNavMeshPath() )
        {
            NavigationHandle.SetFinalDestination(target.Location);
            FlushPersistentDebugLines();
            NavigationHandle.DrawPathCache(,TRUE);
            
            // move to the first node on the path
            if( NavigationHandle.GetNextMoveLocation( TempDest, Pawn.GetCollisionRadius()) )
            {
                DrawDebugLine(Pawn.Location,TempDest,255,0,0,true);
                DrawDebugSphere(TempDest,16,20,255,0,0,true);
                MoveTo( TempDest, target );
            }
        }
        
    
        else
        {
            //We can't follow, so get the hell out of this state, otherwise we'll enter an infinite loop.
            GotoState('Idle');
        }
        goto 'Begin';
    	
        
        if (VSize(Pawn.Location - target.Location) <= 256)
    	GotoState('Shoot'); //Start shooting when close enough to the player.
    else
    	goto 'Begin';
        
        `log("ERROR");
    }
    This is where i understood it should be in the tutorial, i do not get any errors, and not a single warning on the script, i just can not get it to work properly. It wont kill me, ever.
    Thats the place i tried before i posted the first post in this forum, and you started to help me.

  14. #14
    Banned
    Join Date
    Feb 2011
    Location
    BXL/Paris
    Posts
    2,169

    Default

    Quote Originally Posted by Gytelaks View Post
    Thats the place i tried before i posted the first post in this forum, and you started to help me.
    ...and once again i will tell you to remove first goto 'Begin';
    Code:
    state Follow
    {
        ignores SeePlayer;
        function bool FindNavMeshPath()
        {
            // Clear cache and constraints (ignore recycling for the moment)
            NavigationHandle.PathConstraintList = none;
            NavigationHandle.PathGoalList = none;
    
            // Create constraints
            class'NavMeshPath_Toward'.static.TowardGoal( NavigationHandle,target );
            class'NavMeshGoal_At'.static.AtActor( NavigationHandle, target,32 );
    
            // Find path
            return NavigationHandle.FindPath();
        }
    Begin:
    
        if( NavigationHandle.ActorReachable( target) )
        {   
            FlushPersistentDebugLines();
            //Direct move
            MoveToward( target,target );
        }
        else if( FindNavMeshPath() )
        {
            NavigationHandle.SetFinalDestination(target.Location);
            FlushPersistentDebugLines();
            NavigationHandle.DrawPathCache(,TRUE);
            
            // move to the first node on the path
            if( NavigationHandle.GetNextMoveLocation( TempDest, Pawn.GetCollisionRadius()) )
            {
                DrawDebugLine(Pawn.Location,TempDest,255,0,0,true);
                DrawDebugSphere(TempDest,16,20,255,0,0,true);
                MoveTo( TempDest, target );
            }
        }
        
    
        else
        {
            //We can't follow, so get the hell out of this state, otherwise we'll enter an infinite loop.
            GotoState('Idle');
        }
    //    goto 'Begin'; <- This one...
    	
        
        if (VSize(Pawn.Location - target.Location) <= 256)
    	GotoState('Shoot'); //Start shooting when close enough to the player.
        else
    	goto 'Begin';
    }
    ...because code will never reach next condition.
    Last edited by VendorX; 04-25-2012 at 06:19 AM.

  15. #15

    Default

    Quote Originally Posted by VendorX View Post
    ...and once again i will tell you to remove first goto 'Begin';
    Code:
    state Follow
    {
        ignores SeePlayer;
        function bool FindNavMeshPath()
        {
            // Clear cache and constraints (ignore recycling for the moment)
            NavigationHandle.PathConstraintList = none;
            NavigationHandle.PathGoalList = none;
    
            // Create constraints
            class'NavMeshPath_Toward'.static.TowardGoal( NavigationHandle,target );
            class'NavMeshGoal_At'.static.AtActor( NavigationHandle, target,32 );
    
            // Find path
            return NavigationHandle.FindPath();
        }
    Begin:
    
        if( NavigationHandle.ActorReachable( target) )
        {   
            FlushPersistentDebugLines();
            //Direct move
            MoveToward( target,target );
        }
        else if( FindNavMeshPath() )
        {
            NavigationHandle.SetFinalDestination(target.Location);
            FlushPersistentDebugLines();
            NavigationHandle.DrawPathCache(,TRUE);
            
            // move to the first node on the path
            if( NavigationHandle.GetNextMoveLocation( TempDest, Pawn.GetCollisionRadius()) )
            {
                DrawDebugLine(Pawn.Location,TempDest,255,0,0,true);
                DrawDebugSphere(TempDest,16,20,255,0,0,true);
                MoveTo( TempDest, target );
            }
        }
        
    
        else
        {
            //We can't follow, so get the hell out of this state, otherwise we'll enter an infinite loop.
            GotoState('Idle');
        }
    //    goto 'Begin'; <- This one...
    	
        
        if (VSize(Pawn.Location - target.Location) <= 256)
    	GotoState('Shoot'); //Start shooting when close enough to the player.
        else
    	goto 'Begin';
    }
    ...because code will never reach next condition.


    Yes my friend, it is removed. But it still doesnt work properly, i do not understand why, i will take this further with my teacher, and discuss the problem. i think you have more knowledge, but in that way i can work on this team wise, but it should fire the gun?
    or give a sign of aggresion, i do not know why, it follows me like a puppy as it has done for quite a few days now.
    i find it wierd, since i have done moug`s tutorial twice, and gotten alot of help from you vendorX.
    Code:
     
    class SandboxAIController extends AIController;
    
    
    
    var Actor Target;
    var() Vector TempDest;
    
    
    event Possess(Pawn inPawn, bool bVehicleTransition)
    {
        super.Possess(inPawn, bVehicleTransition);
        Pawn.SetMovementPhysics();
    }
    
    auto state Idle
    {
        event SeePlayer (Pawn Seen)
        {
            super.SeePlayer(Seen);
            target = Seen;
            GotoState('Follow');
        }
    Begin:
    	if( Target != None )
    		GotoState('Follow');
    }
       
    state Follow
    {
        ignores SeePlayer;
        function bool FindNavMeshPath()
        {
            // Clear cache and constraints (ignore recycling for the moment)
            NavigationHandle.PathConstraintList = none;
            NavigationHandle.PathGoalList = none;
    
            // Create constraints
            class'NavMeshPath_Toward'.static.TowardGoal( NavigationHandle,target );
            class'NavMeshGoal_At'.static.AtActor( NavigationHandle, target,32 );
    
            // Find path
            return NavigationHandle.FindPath();
        }
    Begin:
    
        if( NavigationHandle.ActorReachable( target) )
        {   
            FlushPersistentDebugLines();
            //Direct move
            MoveToward( target,target );
        }
        else if( FindNavMeshPath() )
        {
            NavigationHandle.SetFinalDestination(target.Location);
            FlushPersistentDebugLines();
            NavigationHandle.DrawPathCache(,TRUE);
            
            // move to the first node on the path
            if( NavigationHandle.GetNextMoveLocation( TempDest, Pawn.GetCollisionRadius()) )
            {
                DrawDebugLine(Pawn.Location,TempDest,255,0,0,true);
                DrawDebugSphere(TempDest,16,20,255,0,0,true);
                MoveTo( TempDest, target );
            }
        }
        
    
        else
        {
            //We can't follow, so get the hell out of this state, otherwise we'll enter an infinite loop.
            GotoState('Idle');
        }
        
        if (VSize(Pawn.Location - target.Location) <= 256)
    	GotoState('Shoot'); //Start shooting when close enough to the player.
    else
    	goto 'Begin';
        
       
    }
    
      state Shoot
    {  
    
        function Aim()
        {   
            local Rotator final_rot;
            final_rot = Rotator(vect(0,0,1)); //Look straight up
            Pawn.SetViewRotation(final_rot);
        
        }
    
    Begin:
        Pawn.ZeroMovementVariables();
        Sleep(1); //Give the pawn the time to stop.
        Aim();
        Pawn.StartFire(1);
        Pawn.StopFire(1);
        GotoState('Idle');
    
    }
    
    simulated event GetPlayerViewPoint(out vector out_Location, out Rotator out_Rotation)
    {
        // AI does things from the Pawn
        if (Pawn != None)
        {
            out_Location = Pawn.Location;
            out_Rotation = Rotation; //That's what we've changed
        }
        else
        {
            Super.GetPlayerViewPoint(out_Location, out_Rotation);
        }
         
    }
    
    DefaultProperties
    {
    }


    ....Evolution? [/QUOTE]

  16. #16
    Banned
    Join Date
    Feb 2011
    Location
    BXL/Paris
    Posts
    2,169

    Default

    The Adventures of Bot part two.

    Now he's happy... Code is in place and he can jump to the state Shoot...
    Bot:
    "Now we'll see you F***ing PC who's the BOSS..."

    He reaches for a weapon and...
    Bot:
    "WTF..."

    ...he's furious, don't understand what he saying....
    Two options:
    1. ...where is my F***ing GUN!?
    2. ...oh no, not again - F***ing weapon has jam..!

    Exit: Preparing to exit.

    To be continued...

    AD 1. Make sure, HisPawn have right weapon - if any...
    Put `log(Self@"Pawn.Weapon:"@Pawn.Weapon); somewhere before Aim();

    AD 2. You need better aiming and firing code...
    Last edited by VendorX; 04-25-2012 at 08:12 AM.

  17. #17

    Default

    Quote Originally Posted by VendorX View Post
    The Adventures of Bot part two.

    Now he's happy... Code is in place and he can jump to the state Shoot...
    Bot:
    "Now we'll see you F***ing PC who's the BOSS..."

    He reaches for a weapon and...
    Bot:
    "WTF..."

    ...he's furious, don't understand what he saying....
    Two options:
    1. ...where is my F***ing GUN!?
    2. ...oh no, not again - F***ing weapon has jam..!

    Exit: Preparing to exit.

    To be continued...

    AD 1. Make sure, HisPawn have right weapon - if any...
    Put `log(Self@"Pawn.Weapon:"@Pawn.Weapon); somewhere before Aim();

    AD 2. You need better aiming and firing code...


    Yes, Thanks alot vendor, i will figure it out now i think

  18. #18

    Default

    But, to apply the weapon, that is the usual stuff right ? Weaponclass, attachmentclass and inventory manager?

  19. #19
    Banned
    Join Date
    Feb 2011
    Location
    BXL/Paris
    Posts
    2,169

    Default

    Quote Originally Posted by Gytelaks View Post
    But, to apply the weapon, that is the usual stuff right ? Weaponclass, attachmentclass and inventory manager?
    Nope... That depend on from which class your game and pawn is extended...

    BTW. You have YourOwnWeapon or you trying to use UTWeapons?

  20. #20
    Iron Guard
    Join Date
    Dec 2009
    Location
    Kirkcaldy, Scotland
    Posts
    832

    Default

    Im sorry if this sounds harsh but why are you being asked to do this for a class hand in if you dont understand any single part of it ? I mean, youve got bits of code peiced together from other peoples work and you dont understand the actual FLOW of the State Machine itself, nevermind how it works. Have you been missing classes or something ? I would imagien that if you look over your work from the class then these things will seem a bit more clear to you. Try reading up on basic Finite State machines, if you do that (which is lke an hour tops of reading) you'll understand everything A LOT more and then you can worry about the details like actually shooting a weapon. When you take it down to the more basics of what is involved and figure that out everything will fall into place. Good luck !

    Also even when using other peoples work (which is fine, why reinvent the wheel ?) a good excercise is to still write it out line by line yourself and dont go past any methods or functions you dont understand. Take it all in bit by bit.
    Last edited by McTavish; 04-26-2012 at 05:40 PM.
    Quote Originally Posted by 30morgh View Post
    I want to play Once Upon a Time in the time path Returns How do I do that?

  21. #21
    Banned
    Join Date
    Feb 2011
    Location
    BXL/Paris
    Posts
    2,169

    Default

    Don't be so rude, he's trying...

    BTW. Learning from others (i.e. by modifying existing code) is the best way...
    ...and most important is to have fun...
    Last edited by VendorX; 04-26-2012 at 06:13 PM.

  22. #22
    Iron Guard
    Join Date
    Dec 2009
    Location
    Kirkcaldy, Scotland
    Posts
    832

    Default

    I wasnt trying to be rude, I just think its a bad idea to try and learn something at level 4 or 5 before understanding level's 1,2 & 3. Its a dangerous way to learn by coming on here and asking how to finish those later levels and finding out how to, its only gonna trip you up later on
    Quote Originally Posted by 30morgh View Post
    I want to play Once Upon a Time in the time path Returns How do I do that?

  23. #23
    Banned
    Join Date
    Feb 2011
    Location
    BXL/Paris
    Posts
    2,169

    Default

    Yeah, you're right but no many people here on forum understands that sooner or later they must learn those missing levels too. Meanwhile, they will asking the questions...

  24. #24
    MSgt. Shooter Person
    Join Date
    Oct 2011
    Posts
    235

    Default

    Honestly, as a person who's still trying to learn UnrealScript, I can safely say that there's no way to learn it other than copying someone elses code and working with it, or someone hand holding your way all through it, or both. There is no Level 2, 3 & 4 in unrealscript. Its starts with 1 and goes into 5 right away. I guess thats the reality of having to fiddle with 200k+ loc API

  25. #25
    Banned
    Join Date
    Feb 2011
    Location
    BXL/Paris
    Posts
    2,169

    Default

    Quote Originally Posted by RNG View Post
    ...
    There is no Level 2, 3 & 4 in unrealscript. Its starts with 1 and goes into 5 right away.
    You will be surprised...

  26. #26
    MSgt. Shooter Person
    Join Date
    Apr 2012
    Posts
    38

    Default

    Quote Originally Posted by VendorX View Post
    You will be surprised...
    You're saying that because you have experience with it, for starters that know nothing about it (ie no experience with other Unreal games etc) it will overwhelm them unless they are experienced programmers themselves.

    Sure the more you use it the quicker it will "tick" but that doesn't change the fact that UnrealScript relies on the user to be aware of lots of things at first. Most of these things are specific to the library, not to the language itself.

  27. #27
    Iron Guard
    Join Date
    Dec 2009
    Location
    Kirkcaldy, Scotland
    Posts
    832

    Default

    I just think its good to have a core understanding of what you are working with, in this case a little reading on state machines would take someone 30 minutes ? and would go along way towards the understanding of the original question. This is kind of what I ment by levels of things.
    Quote Originally Posted by 30morgh View Post
    I want to play Once Upon a Time in the time path Returns How do I do that?


 

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
Copyright ©2009-2011 Epic Games, Inc. All Rights Reserved.
Digital Point modules: Sphinx-based search vBulletin skin by CompletevB.com.