Renegade Public Forums
C&C: Renegade --> Dying since 2003™, resurrected in 2024!
Home » Renegade Discussions » Mod Release Forum » [script]AirStrike function  () 1 Vote
[script]AirStrike function [message #301136] Wed, 05 December 2007 05:34 Go to previous message
reborn is currently offline  reborn
Messages: 3231
Registered: September 2004
Location: uk - london
Karma:
General (3 Stars)
I made an airstrike funtion. Again I called it via a chat hook but it can be called in a number of ways.
The function chooses a working enemy building at random (this part is thanks to WhiteDragon, you have no idea how long and how many attempts it took to actually get that part right). Then either Nod lear jets or a10 bombers start flying over. One of them drops off a small payload to the random building an causes it to lose 50% of it's health.
The sounds and the rest of the planes flying over make it really realistic to be honest, I think it's quite smooth.

I set the a10 and lear jet to un-teamed via the objects.gm file because they count towards the vehichle limit otherwise. There are other ways of getting around that, but this seemed easiest.
I think I remember a slight issue with it with regards to the cinematics looping after being called. I'm sure that's just changing a 1 to a 0 in the text file somewhere after the animation.

Here's a video of it, it's 21mb long, but you should get a half decent download speed. It's worth watching even if you arean't going to put it on your server, just to see it in-game. It's a bit long, and I sound half asleep (because I was), but it's fun to see if you havn't before:

http://www.mp-gaming.com/reborn/movies/air_strike2.wmv


Here's how I made it work:

/////////////////////////
/////////////////////////
//// GDI A10 strike /////
/////////////////////////
/////////////////////////


void reb_GDI_a10_strike::Created(GameObject *obj) {
Commands->Create_2D_WAV_Sound("m00evan_dsgn0073i1evan_snd.wav");
		Console_Input("msg Warning!!!");
		Console_Input("msg A-10 strike inbound at Nod's position");

		GameObject *BuildingObj = Get_Random_Building(0);
                BuildingID = Commands->Get_ID(BuildingObj);
		A10ID = Commands->Get_ID(Commands->Create_Object("Invisible_Object",Commands->Get_Position(BuildingObj)));

		Commands->Start_Timer(obj,this,3.0f,1);
		Commands->Start_Timer(obj,this,6.0f,2);
		Commands->Start_Timer(obj,this,9.0f,3);
		Commands->Start_Timer(obj,this,10.0f,4);
		Commands->Start_Timer(obj,this,17.5f,5);
		Commands->Start_Timer(obj,this,25.5f,6);
}

void reb_GDI_a10_strike::Timer_Expired(GameObject *obj, int number) {
GameObject *thebuilding = Commands->Find_Object(BuildingID);
GameObject *a101 = Commands->Find_Object(A10ID);

Vector3 position = Commands->Get_Position(thebuilding);

	if (number == 1){
Commands->Create_2D_WAV_Sound("m00evan_dsgn0014i1evan_snd.wav");
	}
	if (number == 2){
Commands->Create_2D_WAV_Sound("m00evan_dsgn0066i1evan_snd.wav");
	}
	if (number == 3){
		Commands->Attach_Script(a101,"Test_Cinematic","a-10_1.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","a-10_2.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","a-10_3.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","a-10_4.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","a-10_5.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","a-10_6.txt");
	}
	if (number == 4){
		Commands->Attach_Script(a101,"Test_Cinematic","A-10_bomb.txt");
	}
	if (number == 5){
		    Commands->Create_2D_WAV_Sound("mx0_a-10_166.wav");
			Commands->Attach_Script(a101,"Test_Cinematic","a-10_1.txt");
            Commands->Attach_Script(a101,"Test_Cinematic","a-10_4.txt");
            Commands->Attach_Script(a101,"Test_Cinematic","a-10_5.txt");
            Commands->Attach_Script(a101,"Test_Cinematic","a-10_6.txt");
	}
	if (number == 6){
			Commands->Create_Explosion("Air_Explosion_Death",position,a101);
			Commands->Attach_Script(a101,"Test_Cinematic","a-10_2.txt");
			Commands->Attach_Script(a101,"Test_Cinematic","a-10_3.txt");

		float buildinghealth = Commands->Get_Health(thebuilding);
		Commands->Set_Health(thebuilding,(buildinghealth/2));
		Commands->Destroy_Object(a101);

	}
}


/////////////////////////
/////////////////////////
//// Nod Jet strike /////
/////////////////////////
/////////////////////////



void reb_Nod_Jet_strike::Created(GameObject *obj) {
		Commands->Create_2D_WAV_Sound("m00evan_dsgn0073i1evan_snd.wav");
		Console_Input("msg Warning!!!");
		Console_Input("msg Lear Jet strike inbound at GDI's position");

		GameObject *BuildingObj = Get_Random_Building(1);
                BuildingID = Commands->Get_ID(BuildingObj);
		A10ID = Commands->Get_ID(Commands->Create_Object("Invisible_Object",Commands->Get_Position(BuildingObj)));

		Commands->Start_Timer(obj,this,3.0f,1);
		Commands->Start_Timer(obj,this,6.0f,2);
		Commands->Start_Timer(obj,this,9.0f,3);
		Commands->Start_Timer(obj,this,10.0f,4);
		Commands->Start_Timer(obj,this,23.5f,5);
		Commands->Start_Timer(obj,this,25.5f,6);
}

void reb_Nod_Jet_strike::Timer_Expired(GameObject *obj, int number) {

GameObject *thebuilding = Commands->Find_Object(BuildingID);
GameObject *a101 = Commands->Find_Object(A10ID);

Vector3 position = Commands->Get_Position(thebuilding);

	if(number == 1){

		Commands->Create_2D_WAV_Sound("m00gnod_hesx0007r3nors_snd.wav");
	}
	if(number == 2){
		Commands->Create_2D_WAV_Sound("m00evan_dsgn0014i1evan_snd.wav");
	}
	if(number == 3){
		Commands->Attach_Script(a101,"Test_Cinematic","jet_1.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","jet_2.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","jet_3.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","jet_4.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","jet_5.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","jet_6.txt");
	}
	if(number == 4){
		Commands->Attach_Script(a101,"Test_Cinematic","Jet_bomb.txt");
	}
	if(number == 5){
		Commands->Create_2D_WAV_Sound("m00itoc_010in_ners_snd.wav");
		Commands->Attach_Script(a101,"Test_Cinematic","jet_1.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","jet_2.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","jet_6.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","jet_3.txt");
		Commands->Attach_Script(obj,"reb_Nod_Jet_strike7","");
	}
	if(number == 6){
		Commands->Create_Explosion("Air_Explosion_Death",position,a101);
		Commands->Attach_Script(a101,"Test_Cinematic","jet_6.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","jet_3.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","jet_4.txt");
		Commands->Attach_Script(a101,"Test_Cinematic","jet_5.txt");

		float buildinghealth = Commands->Get_Health(thebuilding);
		Commands->Set_Health(thebuilding,(buildinghealth/2));
	}
}


ScriptRegistrant<reb_GDI_a10_strike> reb_GDI_a10_strike_Registrant("reb_GDI_a10_strike","");

ScriptRegistrant<reb_Nod_Jet_strike> reb_Nod_Jet_strike_Registrant("reb_Nod_Jet_strike","");


class reb_GDI_a10_strike : public ScriptImpClass {
	void Created(GameObject *obj);
	void Timer_Expired(GameObject *obj,int number);
	int BuildingID;
	int A10ID;
};



class reb_Nod_Jet_strike : public ScriptImpClass {
	void Created(GameObject *obj);
	void Timer_Expired(GameObject *obj,int number);
	int BuildingID;
	int A10ID;
};


This goes in the engine_gm.cpp file, and is worth making a topic about all by itself. WhiteDragon made the final solution after some really good coders looked at the problem. The function returns a working building for the team specified at random:


GameObject * Get_Random_Building(int Team) {
	std::vector<GameObject*> Buildings;
	GenericSLNode *x = BuildingGameObjList->HeadNode;
	while (x != 0) {
		GameObject *obj = (GameObject *)x->NodeData;
		if (obj && (Get_Object_Type(obj) == Team || Team == 2) && !Is_Building_Dead(obj)) {
			Buildings.push_back(obj);
		}
		x = x->NodeNext;
	}
	if (!Buildings.empty()) {
		int Rand = Commands->Get_Random_Int(0,Buildings.size());
		return Buildings[Rand];
	}
	return 0;
}


GameObject * Get_Random_Building(int Team);


Here are the conematic files that are called:

Jet_bomb.txt
;_________________________________________
;
; Available Cinematic Script Commands
;
; time/frame	Create_Object,	id (slot), preset_name, x, y, z, facing, animation
; id can be -1 to mean do not store this object, and do not destroy
; 0 Create_Object, 0, .44 Magnum, 0, 0, 0, 180, "Human.jump"
;
; time/frame	Destroy_Object, id (slot)
; 0 Destroy_Object, 0
;
; time/frame	Play_Animation, id (slot), animation_name, looping, sub_obj_name
; 0 Play_Animation, 0, "Human.Jump", false
;
; time/frame	Control_Camera,	id ( slot )
; use id -1 for disabling control;
; note this will also disable star control and disbale the hud
; 0 Control_Camera,	0
;
;_________________________________________

;*******************  CHEAT SHEET ******************************

;Start frame	create_object	slot number	model	x,y,z,facing	animation name( model*hierarchy*.anim )
;Start frame	Play_Animation 	slot number	anim name ( model*hierarchy*.anim )	looping		Sub Object
;Start frame	Play_Audio	wave filename	slot number	bone name
;								* no slot # / bone name = 2D Audio
;0= NO LOOP ( kills object when finshed )	1= LOOP

;************************* LEVEL 1: Solo A10 X1A_FP10_A0  ************************
;  This is a solo A10.  
; 
;***************************************************************************************


; ****************************** Vehicle

-1	Create_Object,	7, 	"v_jet"
-1    	Attach_Script,          7, "M01_Flyover_Generic_Script_JDG", "FUSELAGE"
-1	Play_Animation,		7, "VF_GDI A10.VF_GDI A10", 1
-470	Destroy_Object,		7

; ****************************** Flying Animation

-1	Create_Object,		8, "X1A_FP10_A0"
-1	Play_Animation,		8, "X1A_FP10_A0.X1A_FP10_A0", 1
-470	Destroy_Object,		8
-1	Attach_To_Bone,		7, 8, "BN_FP10_A0"

; ****************************** Nuke Cloud



; ****************************** Nuke Smoke

-495	Create_Object,		9, "ag_nuke_smoke"
-500	Destroy_Object,		9

; ****************************** Signal Flare

-1	Create_Real_Object,	10, "Refinery_Evac_Point"
-450	Destroy_Object,		10

;******************************* A-10 Bomb Drop

-380	Create_Object,		11, "X5D_PARACHUTE",
-380	Play_Animation,		11, "X5D_PARACHUTE.X5D_PARAC_2"


A-10_bomb.txt
;_________________________________________
;
; Available Cinematic Script Commands
;
; time/frame	Create_Object,	id (slot), preset_name, x, y, z, facing, animation
; id can be -1 to mean do not store this object, and do not destroy
; 0 Create_Object, 0, .44 Magnum, 0, 0, 0, 180, "Human.jump"
;
; time/frame	Destroy_Object, id (slot)
; 0 Destroy_Object, 0
;
; time/frame	Play_Animation, id (slot), animation_name, looping, sub_obj_name
; 0 Play_Animation, 0, "Human.Jump", false
;
; time/frame	Control_Camera,	id ( slot )
; use id -1 for disabling control;
; note this will also disable star control and disbale the hud
; 0 Control_Camera,	0
;
;_________________________________________

;*******************  CHEAT SHEET ******************************

;Start frame	create_object	slot number	model	x,y,z,facing	animation name( model*hierarchy*.anim )
;Start frame	Play_Animation 	slot number	anim name ( model*hierarchy*.anim )	looping		Sub Object
;Start frame	Play_Audio	wave filename	slot number	bone name
;								* no slot # / bone name = 2D Audio
;0= NO LOOP ( kills object when finshed )	1= LOOP

;************************* LEVEL 1: Solo A10 X1A_FP10_A0  ************************
;  This is a solo A10.  
; 
;***************************************************************************************


; ****************************** Vehicle

-1	Create_Object,	7, 	"VF_GDI A10"
-1    	Attach_Script,          7, "M01_Flyover_Generic_Script_JDG", "FUSELAGE"
-1	Play_Animation,		7, "VF_GDI A10.VF_GDI A10", 1
-470	Destroy_Object,		7

; ****************************** Flying Animation

-1	Create_Object,		8, "X1A_FP10_A0"
-1	Play_Animation,		8, "X1A_FP10_A0.X1A_FP10_A0", 1
-470	Destroy_Object,		8
-1	Attach_To_Bone,		7, 8, "BN_FP10_A0"

; ****************************** Nuke Cloud



; ****************************** Nuke Smoke

-495	Create_Object,		9, "ag_nuke_smoke"
-500	Destroy_Object,		9

; ****************************** Signal Flare

-1	Create_Real_Object,	10, "Refinery_Evac_Point"
-450	Destroy_Object,		10

;******************************* A-10 Bomb Drop

-380	Create_Object,		11, "X5D_PARACHUTE",
-380	Play_Animation,		11, "X5D_PARACHUTE.X5D_PARAC_2"


jet_1.txt
;_________________________________________
;
; Available Cinematic Script Commands
;
; time/frame	Create_Object,	id (slot), preset_name, x, y, z, facing, animation
; id can be -1 to mean do not store this object, and do not destroy
; 0 Create_Object, 0, .44 Magnum, 0, 0, 0, 180, "Human.jump"
;
; time/frame	Destroy_Object, id (slot)
; 0 Destroy_Object, 0
;
; time/frame	Play_Animation, id (slot), animation_name, looping, sub_obj_name
; 0 Play_Animation, 0, "Human.Jump", false
;
; time/frame	Control_Camera,	id ( slot )
; use id -1 for disabling control;
; note this will also disable star control and disbale the hud
; 0 Control_Camera,	0
;
;_________________________________________

;*******************  CHEAT SHEET ******************************

;Start frame	create_object	slot number	model	x,y,z,facing	animation name( model*hierarchy*.anim )
;Start frame	Play_Animation 	slot number	anim name ( model*hierarchy*.anim )	looping		Sub Object
;Start frame	Play_Audio	wave filename	slot number	bone name
;								* no slot # / bone name = 2D Audio
;0= NO LOOP ( kills object when finshed )	1= LOOP

;************************* LEVEL 3: HOVERCRAFT EXPLODE AT BEACH  ************************



; ****************************** Character Bone

-1	Create_Real_Object,	1, "Nod_Jet"
-1	Play_Animation,		1, "vf_gdi a10.vf_gdi a10", 1
-600	destroy_object,		1

; ****************************** Path

-1	Create_Object,		2, "X3_a10_dep1",			0, 0, 0, 0
-1	Play_Animation,		2, "X3_a10_dep1.X3_a10_dep1", 1
-600 	Destroy_Object,		2
-1	Attach_To_Bone,		1, 2, "BN_a-10_004"


Jet_2.txt
;_________________________________________
;
; Available Cinematic Script Commands
;
; time/frame	Create_Object,	id (slot), preset_name, x, y, z, facing, animation
; id can be -1 to mean do not store this object, and do not destroy
; 0 Create_Object, 0, .44 Magnum, 0, 0, 0, 180, "Human.jump"
;
; time/frame	Destroy_Object, id (slot)
; 0 Destroy_Object, 0
;
; time/frame	Play_Animation, id (slot), animation_name, looping, sub_obj_name
; 0 Play_Animation, 0, "Human.Jump", false
;
; time/frame	Control_Camera,	id ( slot )
; use id -1 for disabling control;
; note this will also disable star control and disbale the hud
; 0 Control_Camera,	0
;
;_________________________________________

;*******************  CHEAT SHEET ******************************

;Start frame	create_object	slot number	model	x,y,z,facing	animation name( model*hierarchy*.anim )
;Start frame	Play_Animation 	slot number	anim name ( model*hierarchy*.anim )	looping		Sub Object
;Start frame	Play_Audio	wave filename	slot number	bone name
;								* no slot # / bone name = 2D Audio
;0= NO LOOP ( kills object when finshed )	1= LOOP

;************************* LEVEL 3: HOVERCRAFT EXPLODE AT BEACH  ************************



; ****************************** Character Bone

-1	Create_Real_Object,	1, "Nod_Jet"
-1	Play_Animation,		1, "vf_gdi a10.vf_gdi a10", 1
-1200	destroy_object,		1

; ****************************** Path

-1	Create_Object,		2, "X3_a10_dep2",			0, 0, 0, 0
-1	Play_Animation,		2, "X3_a10_dep2.X3_a10_dep2", 1
-1200 	Destroy_Object,		2
-1	Attach_To_Bone,		1, 2, "BN_a-10_005"


Jet_3.txt
;_________________________________________
;
; Available Cinematic Script Commands
;
; time/frame	Create_Object,	id (slot), preset_name, x, y, z, facing, animation
; id can be -1 to mean do not store this object, and do not destroy
; 0 Create_Object, 0, .44 Magnum, 0, 0, 0, 180, "Human.jump"
;
; time/frame	Destroy_Object, id (slot)
; 0 Destroy_Object, 0
;
; time/frame	Play_Animation, id (slot), animation_name, looping, sub_obj_name
; 0 Play_Animation, 0, "Human.Jump", false
;
; time/frame	Control_Camera,	id ( slot )
; use id -1 for disabling control;
; note this will also disable star control and disbale the hud
; 0 Control_Camera,	0
;
;_________________________________________

;*******************  CHEAT SHEET ******************************

;Start frame	create_object	slot number	model	x,y,z,facing	animation name( model*hierarchy*.anim )
;Start frame	Play_Animation 	slot number	anim name ( model*hierarchy*.anim )	looping		Sub Object
;Start frame	Play_Audio	wave filename	slot number	bone name
;								* no slot # / bone name = 2D Audio
;0= NO LOOP ( kills object when finshed )	1= LOOP

;************************* LEVEL 3: HOVERCRAFT EXPLODE AT BEACH  ************************



; ****************************** Character Bone

-1	Create_Real_Object,	1, "Nod_Jetr"
-1	Play_Animation,		1, "vf_gdi a10.vf_gdi a10", 1
-600	destroy_object,		1

; ****************************** Path

-1	Create_Object,		2, "X3_a10_strk1",			0, 0, 0, 0
-1	Play_Animation,		2, "X3_a10_strk1.X3_a10_strk1", 1
-600 	Destroy_Object,		2
-1	Attach_To_Bone,		1, 2, "BN_a-10_000"


Jet_4.txt
;_________________________________________
;
; Available Cinematic Script Commands
;
; time/frame	Create_Object,	id (slot), preset_name, x, y, z, facing, animation
; id can be -1 to mean do not store this object, and do not destroy
; 0 Create_Object, 0, .44 Magnum, 0, 0, 0, 180, "Human.jump"
;
; time/frame	Destroy_Object, id (slot)
; 0 Destroy_Object, 0
;
; time/frame	Play_Animation, id (slot), animation_name, looping, sub_obj_name
; 0 Play_Animation, 0, "Human.Jump", false
;
; time/frame	Control_Camera,	id ( slot )
; use id -1 for disabling control;
; note this will also disable star control and disbale the hud
; 0 Control_Camera,	0
;
;_________________________________________

;*******************  CHEAT SHEET ******************************

;Start frame	create_object	slot number	model	x,y,z,facing	animation name( model*hierarchy*.anim )
;Start frame	Play_Animation 	slot number	anim name ( model*hierarchy*.anim )	looping		Sub Object
;Start frame	Play_Audio	wave filename	slot number	bone name
;								* no slot # / bone name = 2D Audio
;0= NO LOOP ( kills object when finshed )	1= LOOP

;************************* LEVEL 3: HOVERCRAFT EXPLODE AT BEACH  ************************



; ****************************** Character Bone

-1	Create_Real_Object,	1, "Nod_Jet"
-1	Play_Animation,		1, "vf_gdi a10.vf_gdi a10", 1
-600	destroy_object,		1

; ****************************** Path

-1	Create_Object,		2, "X3_a10_strk2",			0, 0, 0, 0
-1	Play_Animation,		2, "X3_a10_strk2.X3_a10_strk2", 1
-600 	Destroy_Object,		2
-1	Attach_To_Bone,		1, 2, "BN_a-10_001"


Jet_5.txt
;_________________________________________
;
; Available Cinematic Script Commands
;
; time/frame	Create_Object,	id (slot), preset_name, x, y, z, facing, animation
; id can be -1 to mean do not store this object, and do not destroy
; 0 Create_Object, 0, .44 Magnum, 0, 0, 0, 180, "Human.jump"
;
; time/frame	Destroy_Object, id (slot)
; 0 Destroy_Object, 0
;
; time/frame	Play_Animation, id (slot), animation_name, looping, sub_obj_name
; 0 Play_Animation, 0, "Human.Jump", false
;
; time/frame	Control_Camera,	id ( slot )
; use id -1 for disabling control;
; note this will also disable star control and disbale the hud
; 0 Control_Camera,	0
;
;_________________________________________

;*******************  CHEAT SHEET ******************************

;Start frame	create_object	slot number	model	x,y,z,facing	animation name( model*hierarchy*.anim )
;Start frame	Play_Animation 	slot number	anim name ( model*hierarchy*.anim )	looping		Sub Object
;Start frame	Play_Audio	wave filename	slot number	bone name
;								* no slot # / bone name = 2D Audio
;0= NO LOOP ( kills object when finshed )	1= LOOP

;************************* LEVEL 3: HOVERCRAFT EXPLODE AT BEACH  ************************



; ****************************** Character Bone

-1	Create_Real_Object,	1, "Nod_Jet"
-1	Play_Animation,		1, "vf_gdi a10.vf_gdi a10", 1
-600	destroy_object,		1

; ****************************** Path

-1	Create_Object,		2, "X3_a10_strk3",			0, 0, 0, 0
-1	Play_Animation,		2, "X3_a10_strk3.X3_a10_strk3", 1
-600 	Destroy_Object,		2
-1	Attach_To_Bone,		1, 2, "BN_a-10_002"


Jet_6.txt
;_________________________________________
;
; Available Cinematic Script Commands
;
; time/frame	Create_Object,	id (slot), preset_name, x, y, z, facing, animation
; id can be -1 to mean do not store this object, and do not destroy
; 0 Create_Object, 0, .44 Magnum, 0, 0, 0, 180, "Human.jump"
;
; time/frame	Destroy_Object, id (slot)
; 0 Destroy_Object, 0
;
; time/frame	Play_Animation, id (slot), animation_name, looping, sub_obj_name
; 0 Play_Animation, 0, "Human.Jump", false
;
; time/frame	Control_Camera,	id ( slot )
; use id -1 for disabling control;
; note this will also disable star control and disbale the hud
; 0 Control_Camera,	0
;
;_________________________________________

;*******************  CHEAT SHEET ******************************

;Start frame	create_object	slot number	model	x,y,z,facing	animation name( model*hierarchy*.anim )
;Start frame	Play_Animation 	slot number	anim name ( model*hierarchy*.anim )	looping		Sub Object
;Start frame	Play_Audio	wave filename	slot number	bone name
;								* no slot # / bone name = 2D Audio
;0= NO LOOP ( kills object when finshed )	1= LOOP

;************************* LEVEL 3: HOVERCRAFT EXPLODE AT BEACH  ************************



; ****************************** Character Bone

-1	Create_Real_Object,	1, "Nod_Jet"
-1	Play_Animation,		1, "vf_gdi a10.vf_gdi a10", 1
-600	destroy_object,		1

; ****************************** Path

-1	Create_Object,		2, "X3_a10_strk4",			0, 0, 0, 0
-1	Play_Animation,		2, "X3_a10_strk4.X3_a10_strk4", 1
-600 	Destroy_Object,		2
-1	Attach_To_Bone,		1, 2, "BN_a-10_003"


The a-10_1(2,3,4,5,6) are the exact same as this, other then object created should be changed from "Nod_Jet" to "GDI_A10_Flyover".

I hope you like it, and if you want to reply, I suggest no quotng Razz



[Updated on: Fri, 30 January 2009 14:16] by Moderator

Report message to a moderator

 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: [skin]Codename Havoc - hotwire replacement
Next Topic: [script]Parachute function
Goto Forum:
  


Current Time: Sat Apr 27 23:13:01 MST 2024

Total time taken to generate the page: 0.01312 seconds