Home » Renegade Discussions » Mod Release Forum » AirStrike ported to 4.0
AirStrike ported to 4.0 [message #471796] |
Tue, 17 July 2012 05:57 |
|
Distrbd21
Messages: 743 Registered: September 2008
Karma: 0
|
Colonel |
|
|
I finaly ported over reborns airstrike script.
AirStrike Script
void DSG_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 DSG_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);
}
}
ScriptRegistrant<DSG_GDI_a10_strike> DSG_GDI_a10_strike_Registrant("DSG_GDI_a10_strike","");
void DSG_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 DSG_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<DSG_Nod_Jet_strike> DSG_Nod_Jet_strike_Registrant("DSG_Nod_Jet_strike","");
AirStrike code for your .h
class DSG_GDI_a10_strike : public ScriptImpClass {
void Created(GameObject *obj);
void Timer_Expired(GameObject *obj,int number);
int BuildingID;
int A10ID;
};
class DSG_Nod_Jet_strike : public ScriptImpClass {
void Created(GameObject *obj);
void Timer_Expired(GameObject *obj,int number);
int BuildingID;
int A10ID;
};
Get random building code, goes in engine_game.cpp
GameObject SCRIPTS_API *Get_Random_Building(int Team) {
SList<GameObject> Buildings;
SLNode<BuildingGameObj> *x = GameObjManager::BuildingGameObjList.Head();
while (x)
{
GameObject *obj = (GameObject *)x->Data();
if (obj && (Get_Object_Type(obj) == Team) && !Is_Building_Dead(obj)) {
Buildings.Add_Head(obj);
}
x = x->Next();
}
if (!Buildings.Is_Empty()) {
SLNode<GameObject> *x = Buildings.Head();
int Rand = Commands->Get_Random_Int(0,Buildings.Get_Count());
int Counter = 0;
while (x)
{
GameObject *o = x->Data();
if(o && Rand == Counter)
{
return o;
}
Counter ++;
x = x->Next();
}
return NULL;
}
return NULL;
}
and this in engine_game.h for it to work
GameObject SCRIPTS_API *Get_Random_Building(int Team);
Link to Cin text.
http://dsgaming.us/distrbd21/AirStrike.zip
I believe that is all, If I forgot something let me know.
And yes I changed reb to DSG, as a worked hard to port it over with the help of these guys.
EDIT: When I get the Cin to work right with the planes looped I will update this topic.
for now just use this instead.
Reborn: | They just stay there, but no loop?
That makes sense I guess, it's just stuck on the last frame of the animation...
They are all real objects, so you can destroy them. I can't remember from memory what the right syntax is, but it is most likely something simple like destroy_object;
Or you could attach a script to it that destroys the object after x amount of time...
void reb_timed_destroy::Created(GameObject *obj){
Commands->Start_Timer(obj,this,31.0f,1);
}
void reb_timed_destroy::Timer_Expired(GameObject *obj, int number){
if(number ==1){
Commands->Destroy_Object(obj);
}
}
ScriptRegistrant<reb_timed_destroy> reb_timed_destroy_Registrant("reb_timed_destroy","");
class reb_timed_destroy : public ScriptImpClass {
void Created(GameObject *obj);
void Timer_Expired(GameObject *obj,int number);
};
Just change the float value 31.0f to however many seconds you want it to wait until it destroys the object it is attached to.
|
Credits go to.
Reborn for making the script.
robbyke for helping with the Get_Random_Building to somewhat work.
JonWil for helping me fix the Get_Randdom_Building to work with 4.0
And me for porting it over to 4.0.
Quote: | Note to anyone that thinks I'm a pro at C++ OR Perl I'm not, all I do is what I can to get things working for the rest of the community, if you don't like it to fucking bad cause I'm gonna do it anyway...
|
Live Your Life Not Some one Else's.| Sharing Is Caring
Cookie Jar<glome> Who stole the cookie from the cookie jar?!
<content> glome stole the cookie from the cookie jar!
<glome> Who me?!
<content> Yes you!
<glome> Couldn't be!
<content> Then WHO?!!
<glome> Woody stole the cookie from the cookie jar!
*** glome has been kicked by DrWoody (fuck you i didn't touch the motherfucking cookie, bitch
Suicide<TB> I was depressed last night so I called the Suicide Life Line.
<TB> I reached a call center in Pakistan.
<TB> I told them I was suicidal.
<TB> They got all excited and asked if I could drive a truck
[Updated on: Tue, 17 July 2012 06:38] Report message to a moderator
|
|
|
Re: AirStrike ported to 4.0 [message #471799 is a reply to message #471796] |
Tue, 17 July 2012 07:05 |
robbyke
Messages: 348 Registered: September 2010 Location: Belgium
Karma: 0
|
Recruit |
|
|
i know the fix for the loop thing
-1 Play_Animation, 8, "X1A_FP10_A0.X1A_FP10_A0" , 0
use the zero to stop animations from looping one to make them loop
-1 Play_Animation, 7, "VF_GDI A10.VF_GDI A10" , 1
this one needs a loop else the plane wont be rendered
that should fix the plane loop flying over and over again
Owner of kambot TT server
kambot.freeforums.org
|
|
|
Re: AirStrike ported to 4.0 [message #471816 is a reply to message #471796] |
Tue, 17 July 2012 10:32 |
|
Ethenal
Messages: 2532 Registered: January 2007 Location: US of A
Karma: 0
|
General (2 Stars) |
|
|
This is actually pretty cool, I remember seeing this airstrike plugin when he released it but I never personally used it. Hopefully some more people will use it.
I do find it entertaining that you renamed this to DSG even though you didn't change a SINGLE line of code in the actual airstrike files other than renaming the reb_airstrike to DSG_airstrike. Sounds like "porting" to me. (there is a different Get_Random_Building function, but someone else made that)
-TLS-DJ-EYE-K wrote on Mon, 18 March 2013 07:29 | Instead of showing us that u aren't more inteligent than a Toast, maybe you should start becomming good in renegade
|
[Updated on: Tue, 17 July 2012 14:40] Report message to a moderator
|
|
|
|
Re: AirStrike ported to 4.0 [message #471840 is a reply to message #471832] |
Tue, 17 July 2012 17:01 |
|
Distrbd21
Messages: 743 Registered: September 2008
Karma: 0
|
Colonel |
|
|
Xpert wrote on Tue, 17 July 2012 17:37 | Can't really call it porting.
Could of also used Find_Random_Preset_By_Team or Find_Random_Preset and check if it's a building object.
There's also a Find_Building_By_Team and a Find_Building_By_Preset in 4.0 already. I don't know why jonwil didn't just point you to that, lol.
|
Thought about those I might look into that.
Live Your Life Not Some one Else's.| Sharing Is Caring
Cookie Jar<glome> Who stole the cookie from the cookie jar?!
<content> glome stole the cookie from the cookie jar!
<glome> Who me?!
<content> Yes you!
<glome> Couldn't be!
<content> Then WHO?!!
<glome> Woody stole the cookie from the cookie jar!
*** glome has been kicked by DrWoody (fuck you i didn't touch the motherfucking cookie, bitch
Suicide<TB> I was depressed last night so I called the Suicide Life Line.
<TB> I reached a call center in Pakistan.
<TB> I told them I was suicidal.
<TB> They got all excited and asked if I could drive a truck
|
|
|
|
Re: AirStrike ported to 4.0 [message #471855 is a reply to message #471848] |
Tue, 17 July 2012 18:52 |
|
Distrbd21
Messages: 743 Registered: September 2008
Karma: 0
|
Colonel |
|
|
Xpert wrote on Tue, 17 July 2012 19:43 |
Distrbd21 wrote on Tue, 17 July 2012 20:01 |
Xpert wrote on Tue, 17 July 2012 17:37 | Can't really call it porting.
Could of also used Find_Random_Preset_By_Team or Find_Random_Preset and check if it's a building object.
There's also a Find_Building_By_Team and a Find_Building_By_Preset in 4.0 already. I don't know why jonwil didn't just point you to that, lol.
|
Thought about those
|
You probably didn't know they exist.
|
I did know they did, I'm not a dumbass I know how to read.
And thats it I'm done helping out the community if they need something they can come find me and ask.
All you guys do is bitch when someone else does something that you didn't, instead of bitching you should do it yourself.
And reborn hasn't said a dam thing to me about changing it, if he does I would be more then happy to change it back..
Live Your Life Not Some one Else's.| Sharing Is Caring
Cookie Jar<glome> Who stole the cookie from the cookie jar?!
<content> glome stole the cookie from the cookie jar!
<glome> Who me?!
<content> Yes you!
<glome> Couldn't be!
<content> Then WHO?!!
<glome> Woody stole the cookie from the cookie jar!
*** glome has been kicked by DrWoody (fuck you i didn't touch the motherfucking cookie, bitch
Suicide<TB> I was depressed last night so I called the Suicide Life Line.
<TB> I reached a call center in Pakistan.
<TB> I told them I was suicidal.
<TB> They got all excited and asked if I could drive a truck
|
|
|
Re: AirStrike ported to 4.0 [message #471860 is a reply to message #471796] |
Tue, 17 July 2012 19:58 |
robbyke
Messages: 348 Registered: September 2010 Location: Belgium
Karma: 0
|
Recruit |
|
|
dont even get why you guys are falling over something like a function name.....
he didnt make a plugin about it so why even bother to talk about that....
dont like the rename copy the code name it back wow
i ported over the same code and tbh that airstrike thing takes more than just that code in the original post was even noted that that code wasnt 100% and the txt files needed were bugged
gratz guys you just chased of someone that did dirty work for you.....
am i glad i only come to ask help and not post my code (which i actually can)
Owner of kambot TT server
kambot.freeforums.org
|
|
|
Re: AirStrike ported to 4.0 [message #471862 is a reply to message #471860] |
Tue, 17 July 2012 21:32 |
|
Ethenal
Messages: 2532 Registered: January 2007 Location: US of A
Karma: 0
|
General (2 Stars) |
|
|
robbyke wrote on Tue, 17 July 2012 21:58 | dont even get why you guys are falling over something like a function name.....
he didnt make a plugin about it so why even bother to talk about that....
dont like the rename copy the code name it back wow
i ported over the same code and tbh that airstrike thing takes more than just that code in the original post was even noted that that code wasnt 100% and the txt files needed were bugged
gratz guys you just chased of someone that did dirty work for you.....
am i glad i only come to ask help and not post my code (which i actually can)
|
Do you know why all the JFW scripts are named as such?
Because he made them
You can get upset and say I'm being a jackass, I DID say that this is indeed a good script and hopefully somebody will find a use for it (because to simulate an airstrike in Renegade is not very easy), I'm just pointing out that the only lines of code changed from the original is literally the change of name. Forgive me for pointing that out.
-TLS-DJ-EYE-K wrote on Mon, 18 March 2013 07:29 | Instead of showing us that u aren't more inteligent than a Toast, maybe you should start becomming good in renegade
|
[Updated on: Tue, 17 July 2012 21:34] Report message to a moderator
|
|
|
Re: AirStrike ported to 4.0 [message #471873 is a reply to message #471796] |
Wed, 18 July 2012 04:37 |
robbyke
Messages: 348 Registered: September 2010 Location: Belgium
Karma: 0
|
Recruit |
|
|
i know that the names of scripts are from the people that wrote them i also know that ALOT of scripts are made double or even triple because those scripters dont do enough effort like some others to search for already existing code
and why is there a need to point such a dumb detail it isnt like he asked TT to import that script
and if the ppl from TT consider it a port they can just rename it back if they import it into scripts.dll
Owner of kambot TT server
kambot.freeforums.org
|
|
|
Goto Forum:
Current Time: Sat Nov 23 13:19:03 MST 2024
Total time taken to generate the page: 0.00770 seconds
|