Author Topic: adding to mod challenges  (Read 835 times)

Offline Andrissimo

  • Rank: Private
  • *
  • Posts: 145
adding to mod challenges
« on: October 29, 2010, 12:28:50 am »
hi all

how can i add all challenges to mod x4,or where i can set to on?

Offline DoomSlayer

  • Rank: Private
  • *
  • Posts: 506
    • http://www.pmcod.com
Re: adding to mod challenges
« Reply #1 on: October 29, 2010, 07:09:13 am »
go to your wmdcontrol.cfg and use settings below then rename your mod folder

//rank up and keep it like a stock ranked server only run ex_rank_stock when turn to 1
// Off = 0
// On = 1 (default)
set ex_rank_stock "1"

// instance wep unlocks instance rank up to level 55* only run ex_powerrank when turned to 1
// Off = 0
// On = 1 (default)
set ex_fullwarfare "0"

Offline Andrissimo

  • Rank: Private
  • *
  • Posts: 145
Re: adding to mod challenges
« Reply #2 on: October 29, 2010, 07:59:36 am »
i dont have these option in wmdcontrol.cfg.I must added it?



Code: [Select]
//******************************************************************************
// Call of Duty 4 - eXtreme+ modification
//******************************************************************************
// author   : eXtreme+ Support Crew
// email    : admin@mycallofduty.com
// website  : http://www.mycallofduty.com
//
// mod      : X4 : eXtreme+ Warfare
// version  : 2.0
// update   : June 2008
//******************************************************************************


//******************************************************************************
// X4 Ranks
//******************************************************************************
// Off = 0
// On = 1 (default)
set ex_ranks "1"

// 0 = off
// 1 = on (default)
set ex_wmd_notify "1"

// 0 = off (default)
// 1 = on
set ex_stock_notify "1"

//******************************************************************************
// Hardpoints
//******************************************************************************
set scr_hardpoint_allowuav "0"
set scr_hardpoint_allowartillery "0"
set scr_hardpoint_allowairstrike "1"
set scr_hardpoint_allowhelicopter "1"
set scr_hardpoint_allownapalm "0"
set scr_hardpoint_allowac13025mm "1"
set scr_hardpoint_allowac13040mm "1"
set scr_hardpoint_allowac130105mm "1"
set scr_hardpoint_allownnuke "1"




// Air Raid Siren - Global Alert
// 0 = Off (default)
// 1 = On
set ex_airraid_siren_global "1"


// WMD's on STREAKS / POINTS / KILLS
// You must have one and only one of these set to 1
// 0 = off
// 1 = on (default set on Streaks)
set ex_wmd_streaks "1"
set ex_wmd_kills "0"
set ex_wmd_points "0"


//******************************************************************************
// UAV -- Radar
//******************************************************************************
// UAV available at how many streaks/kills/points?
// min = 1, max = 999, default = 3
//set ex_wmd_uav "3" //Streaks
//set ex_wmd_uav 4" //Kills
//set ex_wmd_uav "30" //Points

// UAV Time (in seconds)
// Min = 5, max = 999 (default 30)
set ex_wmd_uav_time "30"


//******************************************************************************
// Artillery -- NOT AVAILABLE YET!
//******************************************************************************
// Artillery available at how many streaks/kills/points?
// min = 1, max = 999, default = 5
//set ex_wmd_artillery "3" //Streaks
//set ex_wmd_artillery "15" //Kills
//set ex_wmd_artillery "50" //Points


//******************************************************************************
// Airstrike -- Clusterbomb
//******************************************************************************
// Airstrike available at how many streaks/kills/points?
// min = 1, max = 999, default = 5
set ex_wmd_airstrike "5" //Streaks
//set ex_wmd_airstrike "6" //Kills
//set ex_wmd_airstrike "60" //Points


//******************************************************************************
// Helicopter
//******************************************************************************
// Helicopter available at how many streaks/kills/points?
// min = 1, max = 999, default = 7
set ex_wmd_chopper "5" //Streaks
//set ex_wmd_chopper "10" //Kills
//set ex_wmd_chopper "90" //Points


//******************************************************************************
// Airstrike -- Napalm
//******************************************************************************
// Napalm available at how many streaks/kills/points?
// min = 1, max = 999, default = 10
//set ex_wmd_napalm "12" //Streaks
//set ex_wmd_napalm "15" //Kills
//set ex_wmd_napalm "120" //Points
// Radius (default 3000)
// Min = 0
// Max = 9999
set ex_wmd_napalmradius "3000"

// Minimum Damage (default 30)
// Min = 0
// Max = 9999
set ex_wmd_napalmmin "200"

// Maximum Damage (default 200)
// Min = 0
// Max = 9999
//set ex_wmd_napalmmax "500"


//******************************************************************************
// AC130 Static
//******************************************************************************
// This will give the AC130 a Static like view
// Off = 0, On = 1, default = 0
set ex_ac130_static "1"


//******************************************************************************
// ATTN: You might want to set the next WMD's at high levels to avoid the
// players from getting the next WMD while in the AC130 gunship!!!!!!!!!!
//******************************************************************************
// AC130 Gunship -- 25mm Gun
//******************************************************************************
// AC130 available at how many streaks/kills/points?
 min = 1, max = 999, default = 10
set ex_wmd_ac130_25mm "7" //Streaks
//set ex_wmd_ac130_25mm "20" //Kills
//set ex_wmd_ac130_25mm "150" //Points

// Players Time (in seconds) in the AC130 with 25mm Gattling Gun
// Min = 10, max = 999 (default 30)
set ex_ac130_25mm_time "60"


//******************************************************************************
// AC130 Gunship -- 40mm Gun
//******************************************************************************
// AC130 available at how many streaks/kills/points?
// min = 1, max = 999, default = 10
set ex_wmd_ac130_40mm "9" //Streaks
//set ex_wmd_ac130_40mm "25" //Kills
//set ex_wmd_ac130_40mm "180" //Points

// Players Time (in seconds) in the AC130 with 40mm Cannon
// Min = 10, max = 999 (default 45)
set ex_ac130_40mm_time "60"


//******************************************************************************
// AC130 Gunship -- 105mm Gun
//******************************************************************************
// AC130 available at how many streaks/kills/point
min = 1, max = 999, default = 10
set ex_wmd_ac130_105mm "12" //Streaks
//set ex_wmd_ac130_105mm "30" //Kills
//set ex_wmd_ac130_105mm "210" //Points

// Players Time (in seconds) in the AC130 with 105mm Cannon
// Min = 10, max = 999 (default 60)
set ex_ac130_105mm_time "60"


//******************************************************************************
// Nuclear Drop
//******************************************************************************
// Nuke Drop available at how many streaks/kills/points?
// min = 1, max = 999, default = 10
set ex_wmd_nuke "15" //Streaks
//set ex_wmd_nuke "35" //Kills
//set ex_wmd_nuke "240" //Points

// Radius (default 3000)
// Min = 0
// Max = 9999
set ex_wmd_nukeradius "6000"

// Minimum Damage (default 30)
// Min = 0
// Max = 9999
set ex_wmd_nukemin "80"
//set ex_wmd_nukemin "30"

// Maximum Damage (default 200)
// Min = 0
// Max = 9999
set ex_wmd_nukemax "1000"
//set ex_wmd_nukemax "200"



and a next problem was with the killstreak messagies.I disabled the uav,helicopter and napalm ,but all time when you earned it,the mod posted the messagie:you have earned the UAV,or NAPALM,or HELICOPTER.Where i can it delete?

Offline DoomSlayer

  • Rank: Private
  • *
  • Posts: 506
    • http://www.pmcod.com
Re: adding to mod challenges
« Reply #3 on: October 29, 2010, 08:09:15 am »
have a look at this =)

http://mycallofduty.com/modules.php?name=Forums&file=viewtopic&t=5546


this is fixed in rc5 =)


as for your last qustion x4 2.0 dosent support challanges =(

Offline Andrissimo

  • Rank: Private
  • *
  • Posts: 145
Re: adding to mod challenges
« Reply #4 on: October 29, 2010, 11:14:15 am »
okay,thx!
server was run without challanges,no problem but i have next problem :-)

with killstreak ac all,and nuke.When i shoot the enemy,and i get the next killstreak i must die before  call the next killstreak...do you understand what i mean?Sorry for my english,im from slovakia,and run it on my server x4 2.0 sniper mod with cod2 snipers

Offline Sammy

  • Rank: Private
  • *
  • Posts: 105
Re: adding to mod challenges
« Reply #5 on: October 29, 2010, 01:32:57 pm »
I think he means that if a new ks is awarded while in the ac130 it is no longer there when the player is detached.  This is a guess, but in the ac130 script in the detach player function look for the giveloadout() call. Add this line after it.

level.ac130Player thread maps\mp\gametypes\_hardpoints::giveHardpointItemForStreak();

Maybe that will work?

Offline Andrissimo

  • Rank: Private
  • *
  • Posts: 145
Re: adding to mod challenges
« Reply #6 on: October 29, 2010, 08:39:54 pm »
my ac130.gsc pls write me where i must add these line what you mean,becouse im dont understand it....


Code: [Select]
#include maps\mp\_utility;

init()
{
   precacheModel("c130_zoomrig");
   precacheModel("vehicle_ac130_low");
    
   precacheShader("ac130_overlay_25mm");
   precacheShader("ac130_overlay_40mm");
   precacheShader("ac130_overlay_105mm");
   precacheShader("ac130_overlay_grain");
    
   precacheItem("ac130_25mm_mp");
   precacheItem("ac130_40mm_mp");
   precacheItem("ac130_105mm_mp");
    
   level.physicsSphereRadius["ac130_25mm_mp"] = 200;
   level.physicsSphereRadius["ac130_40mm_mp"] = 600;
   level.physicsSphereRadius["ac130_105mm_mp"] = 1000;

   level.physicsSphereForce["ac130_25mm_mp"] = 0.5;
   level.physicsSphereForce["ac130_40mm_mp"] = 3.0;
   level.physicsSphereForce["ac130_105mm_mp"] = 6.0;

   level.ac130_rotationSpeed = 40;
}

main()
{
   ac130Origin = level.ex_playArea_Centre;
   ac130Origin = getAboveBuildingsLocation(ac130Origin);    

   level.ac130 = spawn("script_model", ac130Origin);
   level.ac130 setModel("c130_zoomrig");
   level.ac130.angles = (0,75,0);
   level.ac130 hide();
    
   level.ac130model = spawn("script_model", ac130Origin);
   level.ac130model setModel("vehicle_ac130_low");
   level.ac130.angles = (0,75,0);
   level.ac130model linkTo(level.ac130, "tag_player", (000,0,0), (0,0,0));
   level.ac130model hide();    
    
   thread rotatePlane(true);
}

getAboveBuildingsLocation(location)
{
   trace = bullettrace(location + (0,0,10000), location, false, undefined);
   startorigin = trace["position"] + (0,0,-514);
    
   zpos = 0;
    
   maxxpos = 13; maxypos = 13;
   for (xpos = 0; xpos < maxxpos; xpos++)
   {
      for (ypos = 0; ypos < maxypos; ypos++)
      {
         thisstartorigin = startorigin + ((xpos/(maxxpos-1) - .5) * 1024, (ypos/(maxypos-1) - .5) * 1024, 0);
         thisorigin = bullettrace(thisstartorigin, thisstartorigin + (0,0,-10000), false, undefined);
         zpos += thisorigin["position"][2];
      }
   }

   zpos = zpos / (maxxpos*maxypos);
   zpos = zpos + 1000;
    
   return (location[0], location[1], zpos);
}

rotatePlane(toggle)
{
   level notify("stop_rotatePlane_thread");
   level endon("stop_rotatePlane_thread");
    
   if(toggle)
   {
      for(;;)
      {
         level.ac130 rotateyaw( 360, level.ac130_rotationSpeed );
         wait level.ac130_rotationSpeed;
      }
   }
   else level.ac130 rotateyaw( level.ac130.angles[2], 0.05 );
}

ac130_attachPlayer()
{
   self endon("end_respawn");
   self endon("spawn");
   level endon("ex_gameover");
   self endon("disconnect");
   self endon("death");
    
   if(level.inPrematchPeriod) return;
   if(isDefined(level.ac130Player)) return;
    
   self hide();
   level.ac130model show();
    
   level.ac130Player = self;
   level.ac130Player.ac130 = true;
   level.ac130Player hide();
    
   if(isDefined(self.ex_healthbar)) self.ex_healthbar destroy();
   if(isDefined(self.ex_healthback)) self.ex_healthback destroy();
   if(isDefined(self.ex_healthcross)) self.ex_healthcross destroy();
   level.ac130Player.health = 9000;  
    
   self [[level.ex_clientcmd]]("gocrouch");
   level.ac130Player linkTo(level.ac130, "tag_player", (4000,0,0), (0,0,0));
   self playLoopSound( "ambient_ac130_int1_sur" );
    
   thread changeWeapons();
   thread shotFired();
}

ac130_attachPlayer_25mm()
{
   self endon("end_respawn");
   self endon("spawn");
   level endon("ex_gameover");
   self endon("disconnect");
   self endon("death");
   self endon("ex_dead");
   self endon("joined_spectators");
    
   if(level.inPrematchPeriod) return;
   if(isDefined(level.ac130Player)) return;
  
    
   //Record weapons and ammo before we take them away.
    ammoClipList = [];
    ammoStockList = [];
      weaponsList = self GetWeaponsList();
      
      for (i = 0; i < weaponsList.size; i++)
      {
      ammoClipList[ammoClipList.size] = self GetWeaponAmmoClip( weaponsList[i] );
      ammoStockList[ammoStockList.size] = self GetWeaponAmmoStock( weaponsList[i] );
    }
    
    //Record health before we bump it skyhigh ;)
    originalHealth = self.health;
    //logprint("self.health = " + originalhealth);
    
   level.ac130model show();  
    
   level.ac130Player = self;
   level.ac130Player.ac130 = true;
   level.ac130Player hide();
    
   if(isDefined(self.ex_healthbar)) self.ex_healthbar destroy();
   if(isDefined(self.ex_healthback)) self.ex_healthback destroy();
   if(isDefined(self.ex_healthcross)) self.ex_healthcross destroy();
   level.ac130Player.health = 9000;  
        
   self [[level.ex_clientcmd]]("gocrouch");
   level.ac130Player linkTo(level.ac130, "tag_player", (4000,0,0), (0,0,0));
   self hide();
    
   thread changeWeapons_25mm();
   thread shotFired();
    
   if(level.ex_air_raid_global) thread extreme\_ex_utils::playSoundLoc("air_raid",(0,0,0));
   if(level.ex_air_raid_team) thread extreme\_ex_utils::playSoundOnPlayers("air_raid");
    
   //self iprintlnbold("You have " + level.ex_ac130_25mm_timer + " Seconds");
  
if (!isdefined(self.ac130timer))
{
self.ac130timer = newClientHudElem(self);
self.ac130timer.sort = -1;
self.ac130timer.archived = false;
self.ac130timer.alignX = "center";
self.ac130timer.alignY = "middle";
self.ac130timer.fontscale = 2.0;
self.ac130timer.x = 320;
self.ac130timer.y = 420;
}
self.ac130timer SetTimer( level.ex_ac130_25mm_timer );
  
   iprintln("^3AC130 25MM GUNSHIP INBOUND ^1TAKE COVER!");
    
   wait level.ex_ac130_25mm_timer;
        
   level.ac130Player unlink();
   level.ac130model hide();    

   thread ac130_detachPlayer();
    
   //Put weapons and health back
   self resetWeapons(weaponsList, ammoClipList, ammoStockList);
   self.health = originalHealth;
   //logprint("self.health = " + originalhealth);
    
   self show();
    
   if(level.ex_healthbar) self thread extreme\_ex_healthbar::start();
}

ac130_attachPlayer_40mm()
{
   self endon("end_respawn");
   self endon("spawn");
   level endon("ex_gameover");
   self endon("disconnect");
   self endon("death");
   self endon("ex_dead");
   self endon("joined_spectators");
    
   if(level.inPrematchPeriod) return;
   if(isDefined(level.ac130Player)) return;
    
   //Record weapons and ammo before we take them away.
    ammoClipList = [];
    ammoStockList = [];
      weaponsList = self GetWeaponsList();
      
      for (i = 0; i < weaponsList.size; i++)
      {
      ammoClipList[ammoClipList.size] = self GetWeaponAmmoClip( weaponsList[i] );
      ammoStockList[ammoStockList.size] = self GetWeaponAmmoStock( weaponsList[i] );
    }
    
    //Record health before we bump it skyhigh ;)
    originalHealth = self.health;
    
   level.ac130model show();  
    
   level.ac130Player = self;
   level.ac130Player.ac130 = true;
   level.ac130Player hide();
    
   if(isDefined(self.ex_healthbar)) self.ex_healthbar destroy();
   if(isDefined(self.ex_healthback)) self.ex_healthback destroy();
   if(isDefined(self.ex_healthcross)) self.ex_healthcross destroy();
   level.ac130Player.health = 9000;  
    
   self [[level.ex_clientcmd]]("gocrouch");
   level.ac130Player linkTo(level.ac130, "tag_player", (4000,0,0), (0,0,0));
   self hide();  
    
   thread changeWeapons_40mm();
   thread shotFired();
    
   if(level.ex_air_raid_global) thread extreme\_ex_utils::playSoundLoc("air_raid",(0,0,0));
   if(level.ex_air_raid_team) thread extreme\_ex_utils::playSoundOnPlayers("air_raid");
    
   //self iprintlnbold("You have " + level.ex_ac130_40mm_timer + " Seconds");
  
   if (!isdefined(self.ac130timer))
{
self.ac130timer = newClientHudElem(self);
self.ac130timer.sort = -1;
self.ac130timer.archived = false;
self.ac130timer.alignX = "center";
self.ac130timer.alignY = "middle";
self.ac130timer.fontscale = 2.0;
self.ac130timer.x = 320;
self.ac130timer.y = 420;
}
self.ac130timer SetTimer( level.ex_ac130_40mm_timer );
  
   iprintln("^3AC130 40MM GUNSHIP INBOUND ^1TAKE COVER!");
    
   wait level.ex_ac130_40mm_timer;
        
   self show();
   level.ac130Player unlink();
   level.ac130model hide();    
    
   thread ac130_detachPlayer();
    
   //Put weapons and health back
   self resetWeapons(weaponsList, ammoClipList, ammoStockList);
   self.health = originalHealth;
    
   self show();
    
   if(level.ex_healthbar) self thread extreme\_ex_healthbar::start();
}

ac130_attachPlayer_105mm()
{
   self endon("end_respawn");
   self endon("spawn");
   level endon("ex_gameover");
   self endon("disconnect");
   self endon("death");
   self endon("ex_dead");
   self endon("joined_spectators");
    
   if(level.inPrematchPeriod) return;
   if(isDefined(level.ac130Player)) return;
    
    //Record weapons and ammo before we take them away.
    ammoClipList = [];
    ammoStockList = [];
      weaponsList = self GetWeaponsList();
      
      for (i = 0; i < weaponsList.size; i++)
      {
      ammoClipList[ammoClipList.size] = self GetWeaponAmmoClip( weaponsList[i] );
      ammoStockList[ammoStockList.size] = self GetWeaponAmmoStock( weaponsList[i] );
    }
    
    //Record health before we bump it skyhigh ;)
    originalHealth = self.health;
    
   level.ac130model show();  

   level.ac130Player = self;
   level.ac130Player.ac130 = true;
   level.ac130Player hide();
    
   if(isDefined(self.ex_healthbar)) self.ex_healthbar destroy();
   if(isDefined(self.ex_healthback)) self.ex_healthback destroy();
   if(isDefined(self.ex_healthcross)) self.ex_healthcross destroy();
   level.ac130Player.health = 9000;  
    
   self [[level.ex_clientcmd]]("gocrouch");
   level.ac130Player linkTo(level.ac130, "tag_player", (4000,0,0), (0,0,0));
   self hide();
    
   thread changeWeapons_105mm();
   thread shotFired();
    
   if(level.ex_air_raid_global) thread extreme\_ex_utils::playSoundLoc("air_raid",(0,0,0));
   if(level.ex_air_raid_team) thread extreme\_ex_utils::playSoundOnPlayers("air_raid");
    
   //self iprintlnbold("You have " + level.ex_ac130_105mm_timer + " Seconds");
  
   if (!isdefined(self.ac130timer))
{
self.ac130timer = newClientHudElem(self);
self.ac130timer.sort = -1;
self.ac130timer.archived = false;
self.ac130timer.alignX = "center";
self.ac130timer.alignY = "middle";
self.ac130timer.fontscale = 2.0;
self.ac130timer.x = 320;
self.ac130timer.y = 420;
}
self.ac130timer SetTimer( level.ex_ac130_105mm_timer );
  
   iprintln("^3AC130 105MM GUNSHIP INBOUND ^1TAKE COVER!");
    
   wait level.ex_ac130_105mm_timer;
    
   level.ac130Player unlink();
   level.ac130model hide();    
    
   thread ac130_detachPlayer();
    
   //Put weapons and health back
   self resetWeapons(weaponsList, ammoClipList, ammoStockList);
   self.health = originalHealth;
    
   self show();
      
   if(level.ex_healthbar) self thread extreme\_ex_healthbar::start();
}

ac130_detachPlayer()
{
   self endon("end_respawn");
   self endon("spawn");
   level endon("ex_gameover");
   self endon("disconnect");
   self endon("death");
   self endon("ex_dead");
   self endon("joined_spectators");
    
   if(!isDefined(level.ac130Player)) return;

   level.ac130Player notify("ac130_detached");

   level.ac130Player stopLoopSound("ambient_ac130_x4");
  
   if (isDefined(self.ac130timer)) self.ac130timer destroy();
    
   self thread CleanupSpawned();

   self show();
   level.ac130Player unlink();
   level.ac130model hide();    

   [[level.onSpawnPlayer]]();  

   level.ac130Player.ac130 = undefined;
   level.ac130Player = undefined;
}

changeWeapons()
{
   level endon("ex_gameover");
   self endon("disconnect");
   self endon("death");
   self endon("ac130_detached");

   weapon = [];
    
   weapon[0] = spawnstruct();
   weapon[0].weapon = "ac130_40mm_mp";
   weapon[0].overlay = "ac130_overlay_40mm";
    
   weapon[1] = spawnstruct();
   weapon[1].weapon = "ac130_25mm_mp";
   weapon[1].overlay = "ac130_overlay_25mm";
    
   weapon[2] = spawnstruct();
   weapon[2].weapon = "ac130_105mm_mp";
   weapon[2].overlay = "ac130_overlay_105mm";
    
   currentWeapon = -1;

   for(;;)
   {
      if(currentWeapon != -1)
         while(!level.ac130Player useButtonPressed()) wait 0.05;
        
      currentWeapon++;
      if (currentWeapon >= weapon.size) currentWeapon = 0;
        
      level.ac130Player takeAllWeapons();
      level.ac130Player giveWeapon( weapon[currentWeapon].weapon );
      level.ac130Player switchToWeapon( weapon[currentWeapon].weapon );
      level.ac130Player SetWeaponAmmoClip( weapon[currentWeapon].weapon, 999 );        
      thread setOverlay(weapon[currentWeapon].overlay);

      while(level.ac130Player useButtonPressed()) wait 0.05;
   }
}

changeWeapons_25mm()
{
   level endon("ex_gameover");
   self endon("disconnect");
   self endon("death");
   self endon("ac130_detached");

   wait(0.2);
   level.ac130Player takeAllWeapons();
   level.ac130Player giveWeapon( "ac130_25mm_mp" );
   level.ac130Player switchToWeapon( "ac130_25mm_mp" );
   level.ac130Player SetWeaponAmmoClip( "ac130_25mm_mp", 999 );
   thread setOverlay( "ac130_overlay_25mm");
}

changeWeapons_40mm()
{
   level endon("ex_gameover");
   self endon("disconnect");
   self endon("death");
   self endon("ac130_detached");

   wait(0.2);
   level.ac130Player takeAllWeapons();
   level.ac130Player giveWeapon( "ac130_40mm_mp" );
   level.ac130Player switchToWeapon( "ac130_40mm_mp" );
   level.ac130Player SetWeaponAmmoClip( "ac130_40mm_mp", 999 );
   thread setOverlay( "ac130_overlay_40mm" );
}

changeWeapons_105mm()
{
   level endon("ex_gameover");
   self endon("disconnect");
   self endon("death");
   self endon("ac130_detached");

   wait(0.2);
   level.ac130Player takeAllWeapons();
   level.ac130Player giveWeapon( "ac130_105mm_mp" );
   level.ac130Player switchToWeapon( "ac130_105mm_mp" );
   level.ac130Player SetWeaponAmmoClip( "ac130_105mm_mp", 999 );
   thread setOverlay( "ac130_overlay_105mm" );
}

setOverlay(overlay)
{
   level endon("ex_gameover");
   self endon("end_respawn");
   self endon("spawn");
   self endon("disconnect");
   self endon("death");
   self endon("ac130_detached");
    
   if(!isDefined(self.ac130_overlay))
   {
      self.ac130_overlay = newClientHudElem( self );
      self.ac130_overlay.x = 0;
      self.ac130_overlay.y = 0;
      self.ac130_overlay.alignX = "center";
      self.ac130_overlay.alignY = "middle";
      self.ac130_overlay.horzAlign = "center";
      self.ac130_overlay.vertAlign = "middle";
      self.ac130_overlay.foreground = true;
   }
   self.ac130_overlay setshader(overlay, 640, 480);

   if(level.ex_ac130grain)
   {
      if(!isDefined(self.ac130_grain))
      {
         self.ac130_grain = newClientHudElem( self );
         self.ac130_grain.x = 0;
         self.ac130_grain.y = 0;
         self.ac130_grain.alignX = "left";
         self.ac130_grain.alignY = "top";
         self.ac130_grain.horzAlign = "fullscreen";
         self.ac130_grain.vertAlign = "fullscreen";
         self.ac130_grain.foreground = true;
         self.ac130_grain.alpha = 0.5;
      }
      self.ac130_grain setshader("ac130_overlay_grain", 640, 480);
   }
   self waittill("spawned_player");
    
   self.ac130_overlay destroy();
   self.ac130_grain destroy();
}

shotFired()
{
   level endon("ex_gameover");
   self endon("disconnect");
   self endon("death");
   self endon("ac130_detached");

   for(;;)
   {
      level.ac130Player waittill("projectile_impact", weapon, position, radius);

      thread shotFiredScreenShake( weapon );
      thread shotFiredPhysicsSphere(position, weapon);
      wait 0.05;
   }
}

shotFiredScreenShake(weapon)
{
   level endon("ex_gameover");
   self endon("disconnect");
   self endon("death");
   self endon("ac130_detached");

   switch(weapon)
   {
      case "ac130_105mm_mp":
         duration = 1;
         break;
      case "ac130_40mm_mp":
         duration = 0.5;
         break;
      default:
         duration = 0;
         break;
   }

   if(duration) earthquake(duration, 1, level.ac130Player.origin, 1000);
}

shotFiredPhysicsSphere(center, weapon)
{
   wait 0.1;
   physicsExplosionSphere(center, level.physicsSphereRadius[weapon], level.physicsSphereRadius[weapon] / 2, level.physicsSphereForce[weapon]);
}

CleanupSpawned()
{
   if (isDefined(self.ac130_overlay)) self.ac130_overlay destroy();
   if (isDefined(self.ac130_grain)) self.ac130_grain destroy();
   if (isDefined(self.ac130timer)) self.ac130timer destroy();
}

resetWeapons(weaponsList, ammoClipList, ammoStockList) // =[SUPER]=Gadjex
{
  useAltMode = true;
  self takeAllWeapons();
  
   class = self.class;
  self maps\mp\gametypes\_class::setClass( class );
    
   // initialize specialty array
   self.specialty = [];
   self.specialty[0] = self.pers[class]["loadout_perk1"];
   self.specialty[1] = self.pers[class]["loadout_perk2"];
   self.specialty[2] = self.pers[class]["loadout_perk3"];

   self maps\mp\gametypes\_class::register_perks();
  
  if ( getDvarInt( "scr_enable_nightvision" ) )
      self setActionSlot( 1, "nightvision" );
      
  for( i = 0; i < weaponsList.size; i++ )
   {
     if ( !AC130Weapons(weaponsList[i]) )
     {
         //logprint("weaponGivenBack " + i + " = " + weaponsList[i] + " ");
         //logprint("Clip " + i + " = " + ammoClipList[i] + " ");
         //logprint("StockPile " + i + " = " + ammoStockList[i] + "
");
         self giveWeapon( weaponsList[i] );
      }
      
      //Set primary weapon to spawn with.
      if ( isPrimaryWeapon (weaponsList[i]) && WeaponType( weaponsList[i] ) == "bullet" )
          {
        self setSpawnWeapon( weaponsList[i] );
        //logprint(weaponsList[i] + " " + WeaponType(weaponsList[i]) + "
");
        }
      
      switch ( weaponsList[i]) //Set offhand setttings
      {
      case "frag_grenade_mp":
        self switchToOffhand( "frag_grenade_mp" );
        break;
      case "flash_grenade_mp":
        self setOffhandSecondaryClass("flash");
        break;
      case "smoke_grenade_mp":
      case "concussion_grenade_mp":
        self setOffhandSecondaryClass("smoke");
        break;
    }
      
      switch ( weaponsList[i] ) //Setup ammo sizes and action slots 3,4
     {
        case "claymore_mp":
        case "rpg_mp":
        case "c4_mp":
           self maps\mp\gametypes\_class::setWeaponAmmoOverall( weaponsList[i], ammoClipList[i] );
           self setActionSlot( 3, "weapon", weaponsList[i] );
           self setActionSlot( 4, "" );
           useAltMode = false;
           break;
        default:
          self setWeaponAmmoClip( weaponsList[i], ammoClipList[i] );
          self setWeaponAmmoStock( weaponsList[i], ammoStockList[i] );
           break;
     }
   }
   if ( useAltMode ) //Set to altmode if alt. weapon is not claymore, rpg, or c4
   {
    self setActionSlot( 3, "altMode" );
     self setActionSlot( 4, "" );
  }
  // cac specialties that require loop threads
   self maps\mp\gametypes\_class::cac_selector();
}

AC130Weapons(weapon)
{
  switch(weapon)
  {
    case "ac130_25mm_mp":
    case "ac130_40mm_mp":
    case "ac130_105mm_mp":
      return true;
    default:
      return false;
  }
}

isPrimaryWeapon( weaponname )
{
   return isdefined( level.primary_weapon_array[weaponname] );
}



when i have a killstreak ac 130 25mm,and go to the sky shoot the enemys,and with ac130 25 mm earned the next ac 40mm.The time limit go out from ac 130 25mm and return to the map,but i dont call the acquired ac13 40mm,i must first die.
im a noob with english sorry PLS HELP ME