Avatar billede baxos Nybegynder
08. oktober 2007 - 21:18 Der er 1 løsning

Cod2 mod problemer

Hej eksperter har fundet dette script til cod2 som der tilføjer bots de sutter godt nok men hvordan ændre jeg det så de joiner både Axis & Allies her er koden :
init()
{
    setCVar("g_antilag","0");

    precacheItem("mp44_bot_far_mp");
    precacheItem("mp44_bot_close_mp");
    precacheItem("mp40_bot_far_mp");
    precacheItem("mp40_bot_close_mp");
    precacheItem("kar98k_bot_far_mp");
    precacheItem("kar98k_bot_close_mp");

    if(getcvar("scr_bots_number") == "")
        setcvar("scr_bots_number", "5");
    level.botsnumber = getcvarInt("scr_bots_number");

        if(getCvar("scr_teambalance") == "")
        setCvar("scr_teambalance", "1");
        level.teambalance = getCvarInt("scr_teambalance");

    if(getcvar("scr_bots_skill") == "")
        setcvar("scr_bots_skill", "0.1");
    level.botsskill = getcvarFloat("scr_bots_skill");

//    if(getcvar("scr_bots_team") == "")
//        setcvar("scr_bots_team", "mixed");
//    if(getcvar("scr_bots_team") == "allies")
//        level.botsteam = 2;
//    else if(getcvar("scr_bots_team") == "axis")
        level.botsteam = 1;
//    else
//        level.botsteam = 0;

    level thread addBots();

}

addBots()
{
    wait 5;
    //iprintln(level.botsnumber);

    for(i = 0; i < level.botsnumber; i++)
    {
        ent[i] = addtestclient();

        if(level.botsteam == 1)
            team = "axis";
        else if(level.botsteam == 2)
            team = "allies";
        else
        {
            if(i & 1)
                team = "axis";
            else
                team = "allies";
        }
       
        ent[i] thread spawnBots(team);
        ent[i] thread botAim();
    }
}



spawnBots(team)
{
    while(!isdefined(self.pers["team"]))
        wait .05;

    self notify("menuresponse", game["menu_team"], team);
    wait 0.5;

    if(team == "allies")
    {
        if(game["allies"] == "american")
        {
            alliedguns[0] = "m1carbine_mp";
            alliedguns[1] = "m1garand_mp";
            alliedguns[2] = "thompson_mp";
            alliedguns[3] = "bar_mp";
            alliedguns[4] = "springfield_mp";
            alliedguns[5] = "greasegun_mp";
            alliedbotsweapon = alliedguns[randomInt(6)];
           
            self notify("menuresponse", game["menu_team"], "allies");
            wait 0.5;
           
            if(alliedbotsweapon == "thompson_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "thompson_mp");
            else if(alliedbotsweapon == "greasegun_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "greasegun_mp");
              else if(alliedbotsweapon == "springfield_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "springfield_mp");
            else if(alliedbotsweapon == "bar_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "bar_mp");
            else if(alliedbotsweapon == "m1garand_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "m1garand_mp");
            else if(alliedbotsweapon == "m1carbine_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "m1carbine_mp");
        }
        if(game["allies"] == "british")
        {
            alliedguns[0] = "enfield_mp";
            alliedguns[1] = "sten_mp";
            alliedguns[2] = "bren_mp";
            alliedguns[3] = "enfield_scope_mp";
            alliedguns[4] = "thompson_mp";
            alliedguns[5] = "enfield_mp";
            alliedbotsweapon = alliedguns[randomInt(6)];
           
            self notify("menuresponse", game["menu_team"], "allies");
            wait 0.5;
           
            if(alliedbotsweapon == "sten_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "sten_mp");
            else if(alliedbotsweapon == "bren_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "bren_mp");
            else if(alliedbotsweapon == "enfield_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "enfield_mp");
            else if(alliedbotsweapon == "enfield_scope_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "enfield_scope_mp");
            else if(alliedbotsweapon == "thompson_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "thompson_mp");
        }
        if(game["allies"] == "russian")
        {
            alliedguns[0] = "mosin_nagant_mp";
            alliedguns[1] = "ppsh_mp";
            alliedguns[2] = "mosin_nagant_sniper_mp";
            alliedguns[3] = "svt40_mp";
            alliedguns[4] = "pps42_mp";
            alliedguns[5] = "mosin_nagant_mp";
            alliedbotsweapon = alliedguns[randomInt(6)];
           
            self notify("menuresponse", game["menu_team"], "allies");
            wait 0.5;
           
            if(alliedbotsweapon == "pps42_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "pps42_mp");
            else if(alliedbotsweapon == "svt40_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "svt40_mp");
            else if(alliedbotsweapon == "mosin_nagant_sniper_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "mosin_nagant_sniper_mp");
            else if(alliedbotsweapon == "ppsh_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "ppsh_mp");
            else if(alliedbotsweapon == "mosin_nagant_mp")
                self notify("menuresponse", game["menu_weapon_allies"], "mosin_nagant_mp");
        }
    }
    else if(team == "axis")
    {
        axisguns[0] = "kar98k";
        axisguns[1] = "mp40";
        axisguns[2] = "mp44";
//        axisguns[3] = "kar98k_sniper_mp";
//        axisguns[4] = "g43_mp";
//        axisguns[5] = "kar98k_mp";
        self.botsweapon = axisguns[randomInt(3)];
        self notify("menuresponse", game["menu_team"], "axis");
        wait 0.5;

        if(self.botsweapon == "mp40")
            self notify("menuresponse", game["menu_weapon_axis"], "mp40_mp");
        else if(self.botsweapon == "mp44")
            self notify("menuresponse", game["menu_weapon_axis"], "mp44_mp");
        else if(self.botsweapon == "kar98k")
            self notify("menuresponse", game["menu_weapon_axis"], "kar98k_mp");

//        else if(axisbotsweapon == "kar98k_sniper_mp")
//          self notify("menuresponse", game["menu_weapon_axis"], "kar98k_sniper_mp");
//          else if(axisbotsweapon == "g43_mp")
//              self notify("menuresponse", game["menu_weapon_axis"], "gewehr43_mp");

    }
}

changeWeapon(weapon)
{
//            wait 5;
        self takeallweapons();
        self.pers["weapon"] = weapon;
//    self notify("spawned");
//    self notify("end_respawn");

        self giveWeapon(self.pers["weapon"]);
//    self notify("spawned_player");

//        self giveWeapon(self.pers["weapon"]);
        self giveMaxAmmo(self.pers["weapon"]);

        self setSpawnWeapon(self.pers["weapon"]);
//        self setWeaponSlotWeapon("primary", "mp40_mp");
//        self setWeaponSlotWeapon("primaryb", "kar98k_mp");
//        self GiveMaxAmmo("mp40_mp");
//        self GiveMaxAmmo("kar98k_mp");
        self switchToWeapon(self.pers["weapon"]);
}

botAim()
{
    self.closestplayer = self;
    enemyeye = self getEye();
    self.eye = self getEye();
    spray0 = 0;
    spray1 = 0;
//    vertical = 0;
    horizontal = 0;
    depth = 0;
    i=0;

    for(;;)
    {
        if(self.sessionstate == "dead")   
        {

            self.movement = 0;
            self waittill("spawned_player");
            self takeallweapons();
        }

        enemyplayers = [];

        players = getentarray("player", "classname");
        for(i = 0; i < players.size; i++)
        {
            if(players[i].sessionstate == "spectator" || players[i].sessionstate == "dead" || players[i] == self || players[i].pers["team"] == self.pers["team"])       
                continue;
            else
            {
                enemyplayers[enemyplayers.size] = players[i];
            }
        }

        if(i==0)
        {
            depth = 0;
            horizontal = 0;
//            vertical = 15;
        }
        else if(i==1)
        {
            depth = -15;
            horizontal = 15;
//            vertical = 0;
        }
        else if(i==2)
        {
            horizontal = -15;
        }
        else if(i==3)
        {
            horizontal = 15;
            depth = 15;
        }
        else if(i==4)
        {
            horizontal = -15;
            i = -1;
        }

       
        for(i=0; i< enemyplayers.size; i++)
        {
            self.closestdist = 33554432;
            self.closestplayer = self;
            enemyeye = enemyplayers[i] getEye() + (0,0,15);
            self.eye = self getEye() + (horizontal,depth,15);
       
            dist = (distance(self.origin, enemyplayers[i].origin));
            trace = bullettrace(self.eye, enemyeye, false, undefined);

            if(dist < self.closestdist && trace["surfacetype"]=="none")
            {
                self.closestplayer = enemyplayers[i];
                self.closestdist = dist;
            }
        }
        if(self.closestplayer != self)
        {
            if(self.closestdist < 600)
            {
                changeWeapon(self.botsweapon + "_bot_close_mp");
                self.movement = 2;
            }
            else
            {
                changeWeapon(self.botsweapon + "_bot_far_mp");
                self.movement = 3;
            }
           
            if(!isdefined(self.closestplayer.ex_eyemarker) && isdefined(self.closestplayer))
            {
                //self.ex_eyemarker unlink();
                //self.ex_eyemarker delete();
                self.closestplayer.ex_eyemarker = spawn("script_origin",(0,0,0));
                self.closestplayer.ex_eyemarker linkto (self.closestplayer, "tag_eye",(0,0,0),(0,0,0));
            }
           
            //self.aimfor = randomInt(2); //aim for head or body
               
            for(i=0; i<6; i++)
            {
                if(self.closestdist < 600)
                {
                    spray0 = randomInt(20)-10;
                    spray1 = randomInt(20)-10;
                }
                else
                {
                    spray0 = 0;
                    spray1 = 0;
                }
                                self.eye = self getEye();
                target_direction = vectorNormalize( ( self.closestplayer.ex_eyemarker.origin[0] - self.eye[0] + spray0, self.closestplayer.ex_eyemarker.origin[1] - self.eye[1] +spray1, self.closestplayer.ex_eyemarker.origin[2] - self.eye[2] - 20)); // - (self.closestplayer getEye()[2] - self.closestplayer.origin[2])/2*self.aimfor) );
                self setPlayerAngles(vectorToAngles( target_direction ));
            }
        }
        else
        {
            self takeallweapons();
            self.movement = 1;
        }
       
        wait level.botsskill;
        i++;
    }
}

botMove()
{
    for(;;)
    {
        if(self.movement == 0)
            self waittill("spawned_player");

        if(self.movement == 1)
        {
            //pathfinding
        }

        if(self.movement == 2)
        {       
            //jump
        }

        if(self.movement == 3)
        {       
            //side step
        }

        wait level.botskill*3;
    }
}
Avatar billede baxos Nybegynder
16. november 2007 - 18:42 #1
lukke tid
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester