Skip to content
  • 0 Unread 0
  • 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 9.1k 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.
  • VERsingthegamez Offline
    VERsingthegamez Offline
    VERsingthegamez
    wrote on last edited by
    #15

    My guy keep it going. I am so excited for this you cannot even believe.

    1 Reply Last reply
    1
    • S3VDITO 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

      Thanatos Offline
      Thanatos 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
      • ViTaLC0D3R Offline
        ViTaLC0D3R Offline
        ViTaLC0D3R
        wrote on last edited by
        #17

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

        S3VDITO 1 Reply Last reply
        0
        • ViTaLC0D3R ViTaLC0D3R

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

          S3VDITO Offline
          S3VDITO 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
          • VERsingthegamez Offline
            VERsingthegamez Offline
            VERsingthegamez
            wrote on last edited by
            #19

            Any new updates on these bots?

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

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

              VERsingthegamez 1 Reply Last reply
              1
              • S3VDITO S3VDITO

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

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

                S3VDITO limitations or just problems that you have not learned?

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

                  VERsingthegamez
                  limitations

                  VERsingthegamez 1 Reply Last reply
                  0
                  • S3VDITO S3VDITO

                    VERsingthegamez
                    limitations

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

                    S3VDITO limitations you think you can overcome?

                    S3VDITO 1 Reply Last reply
                    0
                    • VERsingthegamez VERsingthegamez

                      S3VDITO limitations you think you can overcome?

                      S3VDITO Offline
                      S3VDITO 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
                      • VERsingthegamez Offline
                        VERsingthegamez Offline
                        VERsingthegamez
                        wrote on last edited by
                        #25

                        any new updates?

                        S3VDITO 1 Reply Last reply
                        0
                        • VERsingthegamez VERsingthegamez

                          any new updates?

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

                          VERsingthegamez not yet

                          VERsingthegamez 1 Reply Last reply
                          0
                          • S3VDITO S3VDITO

                            VERsingthegamez not yet

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

                            S3VDITO the anticipation is killing me. 😧

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

                              Cool work!

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

                                any update?

                                1 Reply Last reply
                                0
                                • S3VDITO Offline
                                  S3VDITO 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.

                                  VERsingthegamez 1 Reply Last reply
                                  0
                                  • S3VDITO S3VDITO

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

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

                                    S3VDITO what update?

                                    S3VDITO 1 Reply Last reply
                                    0
                                    • VERsingthegamez VERsingthegamez

                                      S3VDITO what update?

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

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

                                      1 Reply Last reply
                                      0
                                      • RmRs Offline
                                        RmRs 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
                                        • S3VDITO 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;
                                          }
                                          
                                          
                                          dimssaditya Offline
                                          dimssaditya Offline
                                          dimssaditya
                                          wrote on last edited by
                                          #34

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

                                          1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          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
                                          • Unread 0
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Donate