Results 1 to 10 of 10

Thread: Kill/Shoot Bot

  1. #1
    Private First Class thOuMta's Avatar
    Join Date
    Oct 2012
    Location
    France
    Posts
    191
    Thanks
    139
    Thanked 35 Times in 28 Posts

    Kill/Shoot Bot

    Hey,

    Can you explain me how i can kill/shoot the bot plz ?
    Click image for larger version. 

Name:	cod2mp-20130717-113858.png 
Views:	155 
Size:	1.27 MB 
ID:	344

    Thx

  2. #2
    Assadministrator kung foo man's Avatar
    Join Date
    Jun 2012
    Location
    trailerpark
    Posts
    2,011
    Thanks
    2,102
    Thanked 1,084 Times in 753 Posts
    In my extension is the setAlive-function, or you could make some "fake detection". The extension is just another thing which doesn't work on Windows.

    http://killtube.org/showthread.php?1...light=setalive
    timescale 0.01

  3. #3
    Private First Class thOuMta's Avatar
    Join Date
    Oct 2012
    Location
    France
    Posts
    191
    Thanks
    139
    Thanked 35 Times in 28 Posts
    Hmmm ok :/

  4. #4
    Assadministrator kung foo man's Avatar
    Join Date
    Jun 2012
    Location
    trailerpark
    Posts
    2,011
    Thanks
    2,102
    Thanked 1,084 Times in 753 Posts
    Well, you can also do it like all the other bot-mods, just spawning 32 hurt-trigger and link them to the xmodels
    timescale 0.01

  5. #5
    Private First Class RobsoN's Avatar
    Join Date
    Jan 2013
    Location
    /home/cod2/
    Posts
    230
    Thanks
    119
    Thanked 95 Times in 64 Posts
    Use BulletTrace function?

  6. #6
    Private First Class thOuMta's Avatar
    Join Date
    Oct 2012
    Location
    France
    Posts
    191
    Thanks
    139
    Thanked 35 Times in 28 Posts
    I show this script by BraX on modonline:

    PHP Code:
    damageModel()
    {
        
    bullet spawn"script_model"self.origin );
        
    bullet setModel"xmodel/tombstone1" );
        
    bullet.angles = ( 00);

        
    bullet setCanDamage(1); // turn damage monitor on
        
    bullet setContents(1); // bullet will collide with model
        
    bullet.health 1000;

        while( 
    bullet.health )
        {
            
    // wait for damage...
            
    bullet waittill("dmg"dmgwhoweappointmod);
            
    bullet.health -= dmg;

            
    iPrintln("dmg:" dmg "; who:" who.name "; mod:" mod);
        }
    }

    setCanDamageflag )
    {
        if( !
    isDefinedself.bashradius ) )
            
    self.bashradius 32;

        if( !
    flag )
        {
            
    self notify("kill_damagemonitor");
            return;
        }
        else
            
    self thread setCanDamage2();
    }


    setCanDamage2()
    {
        
    self endon("kill_damagemonitor");

        
    trace undefined;

        while( 
    )
        {

            
    players getEntArray"player""classname" );
            for( 
    0players.sizei++ )
            {
                
    players[i];

                if( !
    isDefinedp.bash_delay ) )
                    
    p.bash_delay false;

                
    forward vectorscaleanglesToForward(p getPlayerAngles()), 10000 );
                
    startOrigin p getEye() + (0,0,20);
                
    endOrigin startOrigin forward;

                
    trace bulletTracestartOriginendOrigintrue);
                
    distance distance self.originp.origin ) ;

                
    wait 0.05;

                if( 
    isDefinedtrace["entity"] ) && trace["entity"] == self )
                {
                    if( 
    p attackButtonPressed() && isWeaponp getCurrentWeapon() ) && p getWeaponSlotClipAmmo(p getCurrentSlot()) > 0)
                    {
                        
    weap p getCurrentWeapon();
                        
    dmg getDamageweap );
                        
    who p;
                        
    point trace["position"];
                        
    mod damageModweap );

                        
    self notify("dmg"dmgwhoweappointmod);
                    }
                    if ( 
    p meleeButtonPressed() && !p.bash_delay && distancep.originself.origin ) < self.bashradius )
                    {
                        
    p thread bash_delay0.6 );
                        
    weap p getCurrentWeapon();
                        
    dmg getDamageweap );
                        
    who p;
                        
    point trace["position"];
                        
    mod "MOD_MELEE";

                        
    self notify("dmg"dmgwhoweappointmod);
                    }

                }

            }
            
    wait 0.05;
        }
    }

    bash_delaytime )
    {
        
    self endon("disconnected");
        
    self.bash_delay true;
        
    wait time;
        
    self.bash_delay false;
    }

    getDamage(weapon)
    {
        switch(
    weapon)
        {
        case 
    "springfield_mp":
            return 
    50;
        case 
    "enfield_scope_mp":
            return 
    50;
        case 
    "mosin_nagant_sniper_mp":
            return 
    50;
        case 
    "kar98k_sniper_mp":
            return 
    50;
        case 
    "mosin_nagant_mp":
            return 
    50;
        case 
    "kar98k_mp":
            return 
    50;
        case 
    "m1carbine_mp":
            return 
    38;
        case 
    "m1garand_mp":
            return 
    38;
        case 
    "enfield_mp":
            return 
    50;
        case 
    "SVT40_mp":
            return 
    38;
        case 
    "g43_mp":
            return 
    38;
        case 
    "bar_mp":
            return 
    40;
        case 
    "bren_mp":
            return 
    40;
        case 
    "mp44_mp":
            return 
    40;
        case 
    "thompson_mp":
            return 
    35;
        case 
    "sten_mp":
            return 
    33;
        case 
    "greasegun_mp":
            return 
    34;
        case 
    "mp40_mp":
            return 
    36;
        case 
    "ppsh_mp":
            return 
    30;
        case 
    "PPS42_mp":
            return 
    40;
        case 
    "shotgun_mp":
            return 
    40;
        case 
    "panzerschreck_mp":
            return 
    400;
        case 
    "TT30_mp":
            return 
    20;
        case 
    "webley_mp":
            return 
    20;
        case 
    "colt_mp":
            return 
    20;
        case 
    "luger_mp":
            return 
    20;
        default:
            return 
    70;
        }
    }

    damageMod(weapon)
    {
        switch(
    weapon)
        {
        case 
    "springfield_mp":
        case 
    "enfield_scope_mp":
        case 
    "mosin_nagant_sniper_mp":
        case 
    "kar98k_sniper_mp":
        case 
    "mosin_nagant_mp":
        case 
    "kar98k_mp":
        case 
    "enfield_mp":
            return 
    "MOD_RIFLE_BULLET";

        case 
    "m1carbine_mp":
        case 
    "m1garand_mp":
        case 
    "SVT40_mp":
        case 
    "g43_mp":
        case 
    "bar_mp":
        case 
    "bren_mp":
        case 
    "mp44_mp":
        case 
    "thompson_mp":
        case 
    "sten_mp":
        case 
    "greasegun_mp":
        case 
    "mp40_mp":
        case 
    "ppsh_mp":
        case 
    "PPS42_mp":
        case 
    "shotgun_mp":
            return 
    "MOD_RIFLE_BULLET";

        case 
    "TT30_mp":
        case 
    "webley_mp":
        case 
    "colt_mp":
        case 
    "luger_mp":
            return 
    "MOD_PISTOL_BULLET";

        case 
    "panzerschreck_mp":
        case 
    "panzerfaust_mp":
            return
    "MOD_PROJECTILE";

        default:
            return 
    "MOD_UNKNOWN";
        }

    But don't work.
    It made some errors..

  7. #7
    Brigadier General
    Join Date
    Oct 2012
    Posts
    994
    Thanks
    20
    Thanked 588 Times in 388 Posts
    Quote Originally Posted by thOuMta View Post
    I show this script by BraX on modonline:

    PHP Code:
    damageModel()
    {
        
    bullet spawn"script_model"self.origin );
        
    bullet setModel"xmodel/tombstone1" );
        
    bullet.angles = ( 00);

        
    bullet setCanDamage(1); // turn damage monitor on
        
    bullet setContents(1); // bullet will collide with model
        
    bullet.health 1000;

        while( 
    bullet.health )
        {
            
    // wait for damage...
            
    bullet waittill("dmg"dmgwhoweappointmod);
            
    bullet.health -= dmg;

            
    iPrintln("dmg:" dmg "; who:" who.name "; mod:" mod);
        }
    }

    setCanDamageflag )
    {
        if( !
    isDefinedself.bashradius ) )
            
    self.bashradius 32;

        if( !
    flag )
        {
            
    self notify("kill_damagemonitor");
            return;
        }
        else
            
    self thread setCanDamage2();
    }


    setCanDamage2()
    {
        
    self endon("kill_damagemonitor");

        
    trace undefined;

        while( 
    )
        {

            
    players getEntArray"player""classname" );
            for( 
    0players.sizei++ )
            {
                
    players[i];

                if( !
    isDefinedp.bash_delay ) )
                    
    p.bash_delay false;

                
    forward vectorscaleanglesToForward(p getPlayerAngles()), 10000 );
                
    startOrigin p getEye() + (0,0,20);
                
    endOrigin startOrigin forward;

                
    trace bulletTracestartOriginendOrigintrue);
                
    distance distance self.originp.origin ) ;

                
    wait 0.05;

                if( 
    isDefinedtrace["entity"] ) && trace["entity"] == self )
                {
                    if( 
    p attackButtonPressed() && isWeaponp getCurrentWeapon() ) && p getWeaponSlotClipAmmo(p getCurrentSlot()) > 0)
                    {
                        
    weap p getCurrentWeapon();
                        
    dmg getDamageweap );
                        
    who p;
                        
    point trace["position"];
                        
    mod damageModweap );

                        
    self notify("dmg"dmgwhoweappointmod);
                    }
                    if ( 
    p meleeButtonPressed() && !p.bash_delay && distancep.originself.origin ) < self.bashradius )
                    {
                        
    p thread bash_delay0.6 );
                        
    weap p getCurrentWeapon();
                        
    dmg getDamageweap );
                        
    who p;
                        
    point trace["position"];
                        
    mod "MOD_MELEE";

                        
    self notify("dmg"dmgwhoweappointmod);
                    }

                }

            }
            
    wait 0.05;
        }
    }

    bash_delaytime )
    {
        
    self endon("disconnected");
        
    self.bash_delay true;
        
    wait time;
        
    self.bash_delay false;
    }

    getDamage(weapon)
    {
        switch(
    weapon)
        {
        case 
    "springfield_mp":
            return 
    50;
        case 
    "enfield_scope_mp":
            return 
    50;
        case 
    "mosin_nagant_sniper_mp":
            return 
    50;
        case 
    "kar98k_sniper_mp":
            return 
    50;
        case 
    "mosin_nagant_mp":
            return 
    50;
        case 
    "kar98k_mp":
            return 
    50;
        case 
    "m1carbine_mp":
            return 
    38;
        case 
    "m1garand_mp":
            return 
    38;
        case 
    "enfield_mp":
            return 
    50;
        case 
    "SVT40_mp":
            return 
    38;
        case 
    "g43_mp":
            return 
    38;
        case 
    "bar_mp":
            return 
    40;
        case 
    "bren_mp":
            return 
    40;
        case 
    "mp44_mp":
            return 
    40;
        case 
    "thompson_mp":
            return 
    35;
        case 
    "sten_mp":
            return 
    33;
        case 
    "greasegun_mp":
            return 
    34;
        case 
    "mp40_mp":
            return 
    36;
        case 
    "ppsh_mp":
            return 
    30;
        case 
    "PPS42_mp":
            return 
    40;
        case 
    "shotgun_mp":
            return 
    40;
        case 
    "panzerschreck_mp":
            return 
    400;
        case 
    "TT30_mp":
            return 
    20;
        case 
    "webley_mp":
            return 
    20;
        case 
    "colt_mp":
            return 
    20;
        case 
    "luger_mp":
            return 
    20;
        default:
            return 
    70;
        }
    }

    damageMod(weapon)
    {
        switch(
    weapon)
        {
        case 
    "springfield_mp":
        case 
    "enfield_scope_mp":
        case 
    "mosin_nagant_sniper_mp":
        case 
    "kar98k_sniper_mp":
        case 
    "mosin_nagant_mp":
        case 
    "kar98k_mp":
        case 
    "enfield_mp":
            return 
    "MOD_RIFLE_BULLET";

        case 
    "m1carbine_mp":
        case 
    "m1garand_mp":
        case 
    "SVT40_mp":
        case 
    "g43_mp":
        case 
    "bar_mp":
        case 
    "bren_mp":
        case 
    "mp44_mp":
        case 
    "thompson_mp":
        case 
    "sten_mp":
        case 
    "greasegun_mp":
        case 
    "mp40_mp":
        case 
    "ppsh_mp":
        case 
    "PPS42_mp":
        case 
    "shotgun_mp":
            return 
    "MOD_RIFLE_BULLET";

        case 
    "TT30_mp":
        case 
    "webley_mp":
        case 
    "colt_mp":
        case 
    "luger_mp":
            return 
    "MOD_PISTOL_BULLET";

        case 
    "panzerschreck_mp":
        case 
    "panzerfaust_mp":
            return
    "MOD_PROJECTILE";

        default:
            return 
    "MOD_UNKNOWN";
        }

    But don't work.
    It made some errors..
    setContents() doesn't work with a model unless it is compiled with high collision. However, if you spawn a trigger_radius at the same origin as the bot/model, and setContents() to 1 for the trigger, it will take damage:

    PHP Code:
    SetUp()
    {
        
        
    //--- This is the only way to get an entity to take damage ---
        
    self.model_damage spawn"trigger_radius"bot.origin05050 );
        
    self.model_damage.health self.health;
        
    self.model_damage.maxhealth self.maxhealth;
        
    self.model_damage thread modelDamagebot );
        
    self.model_damage thread MonitorForDamage();

    }

    modelDamagebot )
    {
        
    self endon"death" );

        
    self setContents);

        while( 
    isDefinedself ) )
        {
            
    self waittill"dmg"dmg );
            
            
    self.health -= dmg;
            
    bot.health -= dmg;

            if( 
    self.health 10 )
            {    
                
    bot.health -= dmg;
                
                if( 
    bot.health )
                {
                    
    bot suicide();

                    if( 
    isdefinedself ) )
                    {
                        
    self setContents);
                        
    self delete();
                    }
                }
            }
        }
    }

    MonitorForDamage()
    {
        
    self endon"death" );
        
        while( 
    isDefinedself ) )
        {
            
    players getEntArray"player""classname" );
            for( 
    0players.sizei++ )
            {
                
    player players[i];

                
    forward maps\mp\_utility::vector_scaleanglesToForwardplayer getPlayerAngles() ), 10000 );
                
    startOrigin player getEye() + (0,0,20);
                
    endOrigin startOrigin forward;
                
    trace bulletTracestartOriginendOrigintrueplayer );

                
    wait0.05 );

                if( 
    isDefinedtrace["entity"] ) && trace["entity"] == self )
                {
                    if( 
    player attackButtonPressed() && player getAmmoCountplayer getCurrentWeapon() ) > )
                    {
                        
    iDamage player getDamageAmount();
                        
    iDamage intiDamage );
                        
    player iprintln"Damage: " iDamage );

                        
    self notify"dmg"iDamage );
                    }
                }
            }
            
            
    wait (0.05);
        }
    }

    getDamageAmount()
    {
        
    amount undefined;
        if( 
    maps\mp\gametypes\_weapons::isPrimaryWeaponself getCurrentWeapon() ) )
            
    amount 20;
        
        if( 
    maps\mp\gametypes\_weapons::isPistolself getCurrentWeapon() ) )
            
    amount 10;
            
        return 
    amount;

    Last edited by Tally; 27th July 2013 at 23:24.

  8. The Following 2 Users Say Thank You to Tally For This Useful Post:

    kung foo man (28th July 2013),thOuMta (28th July 2013)

  9. #8
    Private First Class thOuMta's Avatar
    Join Date
    Oct 2012
    Location
    France
    Posts
    191
    Thanks
    139
    Thanked 35 Times in 28 Posts
    Its made error:

    PHP Code:
    unknown function: (file 'thoumta/thoumta.gsc'line 208)
        if( 
    maps\mp\gametypes\_weapons::isPrimaryWeapon(self getCurrentWeapon())) 
    Last edited by thOuMta; 28th July 2013 at 11:12.

  10. #9
    Assadministrator kung foo man's Avatar
    Join Date
    Jun 2012
    Location
    trailerpark
    Posts
    2,011
    Thanks
    2,102
    Thanked 1,084 Times in 753 Posts
    Just write this function into thoumta.gsc:

    PHP Code:
    vector_scale(vectorscale)
    {
        
    vector[0] * scale;
        
    vector[1] * scale;
        
    vector[2] * scale;
        return (
    xyz);

    And remove in front of the call: maps\mp\_utility::
    timescale 0.01

  11. #10
    Private First Class thOuMta's Avatar
    Join Date
    Oct 2012
    Location
    France
    Posts
    191
    Thanks
    139
    Thanked 35 Times in 28 Posts
    Ah sorry i edited my post, because it was vector_scale() and it need vectorscale()

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •