Skip to content
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Donate
Collapse

Plutonium

  1. Home
  2. MW3 Modding Releases & Resources
  3. [Preview][Animated movement(not fully)] AIBots

[Preview][Animated movement(not fully)] AIBots

Scheduled Pinned Locked Moved MW3 Modding Releases & Resources
34 Posts 13 Posters 4.9k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S3VDITOundefined S3VDITO

    The walking animation has been added, it is primitive, but I can explain it with the limitations of the scripting language(ChaiScript), but I hope that the errors will be removed and the possibilities will be expanded.

    Post updated

    Demo video:
    https://www.youtube.com/watch?v=3brC8vSBS1w&t=8s

    Thanatosundefined Offline
    Thanatosundefined Offline
    Thanatos
    wrote on last edited by
    #16

    S3VDITO definitely more concrete ! Looking forward to your updates man ! Keep it up

    1 Reply Last reply
    0
    • ViTaLC0D3Rundefined Offline
      ViTaLC0D3Rundefined Offline
      ViTaLC0D3R
      wrote on last edited by
      #17

      Is there a way for to actually move they just stand there for me.

      S3VDITOundefined 1 Reply Last reply
      0
      • ViTaLC0D3Rundefined ViTaLC0D3R

        Is there a way for to actually move they just stand there for me.

        S3VDITOundefined Offline
        S3VDITOundefined Offline
        S3VDITO
        wrote on last edited by
        #18

        ViTaLC0D3R
        No, in COD 4 and MW2 they use separately models to create motion animation. (mod makers hiding bots and use model for this)

        Probably C++ could emulate button presses of the movement (or using Notify, but I do not think that this is possible)...

        Something like this

        1 Reply Last reply
        0
        • VERsingthegamezundefined Offline
          VERsingthegamezundefined Offline
          VERsingthegamez
          wrote on last edited by
          #19

          Any new updates on these bots?

          1 Reply Last reply
          0
          • S3VDITOundefined Offline
            S3VDITOundefined Offline
            S3VDITO
            wrote on last edited by
            #20

            VERsingthegamez
            not yet.
            I can’t implement some functions for bots due to problems in Chai.

            VERsingthegamezundefined 1 Reply Last reply
            1
            • S3VDITOundefined S3VDITO

              VERsingthegamez
              not yet.
              I can’t implement some functions for bots due to problems in Chai.

              VERsingthegamezundefined Offline
              VERsingthegamezundefined Offline
              VERsingthegamez
              wrote on last edited by
              #21

              S3VDITO limitations or just problems that you have not learned?

              1 Reply Last reply
              0
              • S3VDITOundefined Offline
                S3VDITOundefined Offline
                S3VDITO
                wrote on last edited by
                #22

                VERsingthegamez
                limitations

                VERsingthegamezundefined 1 Reply Last reply
                0
                • S3VDITOundefined S3VDITO

                  VERsingthegamez
                  limitations

                  VERsingthegamezundefined Offline
                  VERsingthegamezundefined Offline
                  VERsingthegamez
                  wrote on last edited by
                  #23

                  S3VDITO limitations you think you can overcome?

                  S3VDITOundefined 1 Reply Last reply
                  0
                  • VERsingthegamezundefined VERsingthegamez

                    S3VDITO limitations you think you can overcome?

                    S3VDITOundefined Offline
                    S3VDITOundefined Offline
                    S3VDITO
                    wrote on last edited by
                    #24

                    VERsingthegamez I can’t say it in advance, but until my efforts bearing works results

                    1 Reply Last reply
                    0
                    • VERsingthegamezundefined Offline
                      VERsingthegamezundefined Offline
                      VERsingthegamez
                      wrote on last edited by
                      #25

                      any new updates?

                      S3VDITOundefined 1 Reply Last reply
                      0
                      • VERsingthegamezundefined VERsingthegamez

                        any new updates?

                        S3VDITOundefined Offline
                        S3VDITOundefined Offline
                        S3VDITO
                        wrote on last edited by
                        #26

                        VERsingthegamez not yet

                        VERsingthegamezundefined 1 Reply Last reply
                        0
                        • S3VDITOundefined S3VDITO

                          VERsingthegamez not yet

                          VERsingthegamezundefined Offline
                          VERsingthegamezundefined Offline
                          VERsingthegamez
                          wrote on last edited by
                          #27

                          S3VDITO the anticipation is killing me. 😧

                          1 Reply Last reply
                          0
                          • INeedGamesundefined Offline
                            INeedGamesundefined Offline
                            INeedGames
                            wrote on last edited by
                            #28

                            Cool work!

                            1 Reply Last reply
                            0
                            • VERsingthegamezundefined Offline
                              VERsingthegamezundefined Offline
                              VERsingthegamez
                              wrote on last edited by
                              #29

                              any update?

                              1 Reply Last reply
                              0
                              • S3VDITOundefined Offline
                                S3VDITOundefined Offline
                                S3VDITO
                                wrote on last edited by
                                #30

                                Further development is on hold, i am waiting for the PlutoIW5 update to continue what i started.

                                VERsingthegamezundefined 1 Reply Last reply
                                0
                                • S3VDITOundefined S3VDITO

                                  Further development is on hold, i am waiting for the PlutoIW5 update to continue what i started.

                                  VERsingthegamezundefined Offline
                                  VERsingthegamezundefined Offline
                                  VERsingthegamez
                                  wrote on last edited by
                                  #31

                                  S3VDITO what update?

                                  S3VDITOundefined 1 Reply Last reply
                                  0
                                  • VERsingthegamezundefined VERsingthegamez

                                    S3VDITO what update?

                                    S3VDITOundefined Offline
                                    S3VDITOundefined Offline
                                    S3VDITO
                                    wrote on last edited by
                                    #32

                                    VERsingthegamez updating the script engine, which is unlikely, but possible

                                    1 Reply Last reply
                                    0
                                    • RmRsundefined Offline
                                      RmRsundefined Offline
                                      RmRs
                                      wrote on last edited by
                                      #33

                                      I'm actually looking forward to the development of this. I really want bots to move, even if its just walking. So I can use them as target practice. Good luck

                                      1 Reply Last reply
                                      2
                                      • S3VDITOundefined S3VDITO

                                        Since I try to make Survival Mod, the first thing I started is the bots, or rather their logic of movement and attack.

                                        At the moment I only implemented LookLogic (not fully)

                                        This is just a preview, I think in the future I can give the bots full logic, but my plans are only related to Survival Mod, I do not consider other modes yet (FFA is currently working)

                                        Send me PM, if you have any ideas for realizing

                                        Watching logic
                                        https://www.youtube.com/watch?v=RDlMABVC9Vw

                                        Move logic
                                        https://www.youtube.com/watch?v=N81LXQvNl3k

                                        Animated move
                                        https://www.youtube.com/watch?v=3brC8vSBS1w

                                        Implemeted:

                                        1. Look logic (default target player with num 0)
                                        2. Move logic (default target player with num 0) IF BOT SEE YOU
                                        3. Animated movement

                                        [this list will be updated]

                                        Download only look logic

                                        Download move logic added

                                        Download movement animation added

                                        Source:

                                        // This is preview version 
                                        // This is only the beginning of creating bots with the logic of movement and attack, 
                                        // but first of all I want to create Survival mode, so do not expect bots that can play in TDM, FFA, DZ and other.
                                        // I guess I would do it after creating this script
                                        
                                        // AIBots by S3VDITO
                                        // Ver 0.0.0.3
                                        // Realized: 
                                        // 1 - watching for player function (not works now)
                                        // 2 - move logic [not fully] [without check collision] (in progress...)
                                        // 3 - animated movement
                                        
                                        gsc.setDvar("testClients_doAttack", 0);
                                        gsc.setDvar("testClients_doCrouch", 0);
                                        gsc.setDvar("testClients_doMove", 0);
                                        gsc.setDvar("testClients_doReload", 0);
                                        gsc.setDvar("testClients_doWatchKillcam", 0);
                                        
                                        gsc.setDvarIfUninitialized("testClients_doSpeed", 4);
                                        
                                        global bot_speed = to_float(gsc.getDvar("testClients_doSpeed"));
                                        
                                        global bots_list = [];
                                        
                                        global player_target_list = [];
                                        
                                        level.onNotify("connected", fun(args) {
                                        	var player = args[0];
                                        	print(player.getGuid().find("bot"));
                                        	if(player.getGuid().find("bot") != 0)
                                        	{
                                        		print("Player connected");
                                        		player_target_list.push_back_ref(player);
                                        	}
                                        });
                                        
                                        level.onNotify("prematch_done", fun(args) {
                                        	if(gsc.getDvar("g_gametype") == "dm") {
                                        		for(var entRef = 0; entRef < 18; ++entRef)
                                        		{
                                        			var tempEntBot = gsc.getEntByNum(entRef);
                                        			if(tempEntBot.getGuid().find("bot") == 0)
                                        			{
                                        				var animBody = gsc.spawn("script_model", tempEntBot.getOrigin());
                                        				animBody.setmodel("mp_body_delta_elite_assault_ab");
                                        				animBody.notsolid();
                                        				
                                        				animBody.LinkTo(tempEntBot, "tag_origin", [-4, 0, -1], [-4, 0, -1]);
                                        				
                                        				bots_list.push_back_ref(tempEntBot);
                                        				
                                        				setInterval(fun[tempEntBot, animBody]() { 
                                        					botMove(tempEntBot, gsc.getEntByNum(0), animBody); 
                                        				}, 50);
                                        				
                                        				setInterval(fun[animBody]() { 
                                        					animBody.scriptModelPlayAnim("pb_stumble_pistol_walk_forward");
                                        				}, 1000);
                                        			}
                                        		}
                                        	}
                                        });
                                        
                                        def botMove(bot, target, animModel)
                                        {		
                                        	var bot_weapon_origin = bot.getTagOrigin("tag_weapon_left");
                                        
                                        	HideTestClientParts(bot);
                                        	
                                        	if(LockSightTest(bot, target) == false)
                                        	{
                                        		// animModel.scriptModelPlayAnim("pb_stand_alert_pistol");
                                        		return;
                                        	}
                                        	else
                                        	{
                                        		
                                        	
                                        		var angle = gsc.vectorToAngles([target.getTagOrigin("j_helmet")[0] - bot_weapon_origin[0], target.getTagOrigin("j_helmet")[1] - bot_weapon_origin[1], target.getTagOrigin("j_helmet")[2] - bot_weapon_origin[2]]);
                                        		bot.setPlayerAngles(angle);
                                        		
                                        		// Spaming field bug =(
                                        		//animModel.set("angles", bot.getPlayerAngles());
                                        	}
                                        	
                                        	var moveTarget = target.getOrigin();
                                        	var distance = gsc.distanceSquared(moveTarget, bot.getOrigin());
                                        	if(gsc.distance(moveTarget, bot.getOrigin()) <= 64)
                                        	{
                                        		// bot_speed = 0;
                                        	}
                                        	else
                                        	{
                                        		bot_speed = to_float(gsc.getDvar("testClients_doSpeed"));
                                        		var normalize = gsc.vectorNormalize([moveTarget[0] - bot.getOrigin()[0], moveTarget[1] - bot.getOrigin()[1], moveTarget[2] - bot.getOrigin()[2]]);
                                        		bot.setOrigin([bot.getOrigin()[0] + normalize[0] * bot_speed, bot.getOrigin()[1] + normalize[1] * bot_speed, bot.getOrigin()[2] + normalize[2] * bot_speed]);
                                        	}
                                        }
                                        
                                        def HideTestClientParts(bot)
                                        {
                                        	bot.hidepart("j_ankle_le");
                                        	bot.hidepart("j_hiptwist_le");
                                        	bot.hidepart("j_head");
                                        	bot.hidepart("j_helmet");
                                        	bot.hidepart("j_eyeball_le");
                                        	bot.hidepart("j_clavicle_le");
                                        }
                                        
                                        
                                        // Stolen from _stinger.gsc :)
                                        def LockSightTest(self, target)
                                        {
                                        	var eyePos = self.GetEye();
                                        	
                                        	var passed = gsc.SightTracePassed(eyePos, target.getOrigin(), false, target);
                                        	if ( passed == 1)
                                        	{
                                        		return true;
                                        	}
                                        
                                        	var front = target.GetPointInBounds(1, 0, 0);
                                        	passed = gsc.SightTracePassed( eyePos, front, false, target );
                                        	if (passed == 1)
                                        	{
                                        		return true;
                                        	}	
                                        
                                        	var back = target.GetPointInBounds(-1, 0, 0);
                                        	passed = gsc.SightTracePassed( eyePos, back, false, target );
                                        	if (passed == 1)
                                        	{
                                        		return true;
                                        	}
                                        
                                        	return false;
                                        }
                                        
                                        
                                        dimssadityaundefined Offline
                                        dimssadityaundefined Offline
                                        dimssaditya
                                        wrote on last edited by
                                        #34

                                        please fix only logic bots mod link, because it's error

                                        1 Reply Last reply
                                        0
                                        Reply
                                        • Reply as topic
                                        Log in to reply
                                        • Oldest to Newest
                                        • Newest to Oldest
                                        • Most Votes


                                        • 1
                                        • 2
                                        • Login

                                        • Don't have an account? Register

                                        • Login or register to search.
                                        • First post
                                          Last post
                                        0
                                        • Recent
                                        • Tags
                                        • Popular
                                        • Users
                                        • Groups
                                        • Donate