Renegade Public Forums
C&C: Renegade --> Dying since 2003™, resurrected in 2024!
Home » Renegade Discussions » Mod Forum » [script]Code Release - Kamikaze Suit Crate
[script]Code Release - Kamikaze Suit Crate [message #302788] Wed, 12 December 2007 17:35 Go to previous message
Genesis2001
Messages: 1397
Registered: August 2006
Karma:
General (1 Star)
I'm feeling generous so here you guys are! Very Happy

This is for people who like to mod their Server Scripts.dll and are running SSGM.

Main code:

			else if	((RandomIntCrate <=	(percent+=Settings->CrateKamikaze)) && (Settings->CrateKamikaze > 0)) {
				Change_Character(sender,"CnC_Nod_Flamethrower_0_Secret");
				Commands->Attach_Script(sender, "zbl_Kamikaze_Suit_Crate", "");
				Commands->Set_Health(sender,150);
				StrFormat2(message2,"%ls picked up the kamikaze suit crate",Get_Wide_Player_Name(sender));
				StrFormat2(message1,"ppage %d [Crate] You just picked up the kamikaze suit crate. You will explode when you die killing anything around you whether it be friendly or foe.",Get_Player_ID(sender));
				Console_Input(StrFormat("msg Crate: Some crazy ass %ls guy just got an experimental Ion Suit, watch yourself %ls!",Get_Wide_Team_Name(Team),Get_Wide_Team_Name(PTTEAM(Team))).c_str());				//Commands->Create_2D_WAV_Sound("m00evag_dsgn0027i1evag_snd.wav");
				if (Settings->Gamelog)  {
					Vector3 pos	= Commands->Get_Position(sender);
					StrFormat2(message3,"CRATE;KAMIKAZESUIT;;0;0;%f;%f;%f;%f;%f;%f;%d",pos.Y,pos.X,pos.Z, Commands->Get_Facing(sender), Commands->Get_Max_Health(sender),Commands->Get_Max_Shield_Strength(sender),Get_Object_Type(sender));
				}
			}


Add the above after this crate's code in gmcrate.cpp:

			else if	((RandomIntCrate <=	(percent+=Settings->CrateThief))	&& (Settings->CrateThief	> 0)) {
				Commands->Give_Money(sender,(Commands->Get_Money(sender) * -1),false);
				StrFormat2(message2,"%ls picked up a Thief Crate.",Get_Wide_Player_Name(sender));
				StrFormat2(message1,"ppage %d [NS] [Crate] You got the Thief Crate, you have lost all of your credits.",Get_Player_ID(sender));
								Create_2D_Sound_Player(sender,"m00evag_dsgn0028i1evag_snd.wav");
				if (Settings->Gamelog) {
					Vector3	pos	= Commands->Get_Position(sender);
					StrFormat2(message3,"CRATE;THIEF;;%d;%s;%f;%f;%f;%f;%f;%f;%d", Commands->Get_ID(sender), Commands->Get_Preset_Name(sender), pos.Y,pos.X,pos.Z, Commands->Get_Facing(sender), Commands->Get_Max_Health(sender),Commands->Get_Max_Shield_Strength(sender),Get_Object_Type(sender));
				}
			}


----------------------------------------------

Now, inside the definition of "void Crate_Defaults()" copy and paste the following: (change any values needed to make them all add up to 100...I won't have them add up to 100 because I have more crates ^,^)

void Crate_Defaults() {
	Settings->CrateWeapon = 13;
	Settings->CrateMoney = 11;
	Settings->CratePoints = 10;
	Settings->CrateVehicle = 8;
	Settings->CrateDeath = 7;
	Settings->CrateTiberium = 4;
	Settings->CrateAmmo = 5;
	Settings->CrateArmor = 5;
	Settings->CrateHealth = 5;
	Settings->CrateCharacter = 4;
	Settings->CrateButterFingers = 3;
	Settings->CrateSpy = 3;
	Settings->CrateStealth = 3;
	Settings->CrateRefill = 4;
	Settings->CrateBeacon = 4;
	Settings->CrateThief = 2;
	Settings->CrateKamikaze = 9;
}


You'll need to add some entries under the [Crate] header in ssgm.ini also...

Under [Crate] add

Kamikaze=9


Now, find the definition of "void Crate_Level_Loaded()" inside gmcrate.cpp and replace the initialization of "Total" with the following line of code:

int	Total = Settings->CrateDeath + Settings->CrateVehicle + Settings->CrateWeapon + Settings->CrateCharacter + Settings->CrateMoney + Settings->CratePoints + Settings->CrateTiberium + Settings->CrateAmmo + Settings->CrateHealth + Settings->CrateArmor + Settings->CrateRefill + Settings->CrateButterFingers + Settings->CrateSpy + Settings->CrateThief + Settings->CrateBeacon + Settings->CrateStealth + Settings->CrateKamikaze;



Open up gmcrate.h now and find "struct CrateSettings : public virtual SettingsLoader" and add this to the bottom of the definition:

int CrateKamikaze;



Now that we've set that up, you'll need to add the script "zbl_Kamikaze_Suit_Crate" to your SSGM.

void zbl_Kamikaze_Suit_Crate::Created(GameObject *obj)
{
	Attach_Script_Once(obj, "JFW_Blow_Up_On_Death", "Explosion_IonCannonBeacon");
	float rand = Commands->Get_Random(29,301);
	Team = Get_Object_Type(obj);
	Commands->Start_Timer(obj, this, rand,0);
}
void zbl_Kamikaze_Suit_Crate::Timer_Expired(GameObject *obj, int number)
{
	if (number == 0)
	{
		float rand = Commands->Get_Random(0,100);
		if (rand >= 50.0f)
		{
			// nothing happens
		}
		else {
			Commands->Apply_Damage(obj, 9999.0f, "BlamoKiller", 0);
			Console_Input(StrFormat("msg Crate: Oh no! I guess that experimental kamikaze suit didn't work too well. I hope that %ls guy didn't get hurt. :(", Get_Wide_Team_Name(PTTEAM(Team))).c_str());
		}
	}
}

ScriptRegistrant<zbl_Kamikaze_Suit_Crate> zbl_Kamikaze_Suit_Crate_Registrant("zbl_Kamikaze_Suit_Crate", "");




Hope you enjoy this. Smile

Thanks,
MathK1LL

[Updated on: Fri, 30 January 2009 14:24] 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
Previous Topic: Editing Reborn
Next Topic: How to add an OBGun in SSGM
Goto Forum:
  


Current Time: Sun Jun 30 01:22:13 MST 2024

Total time taken to generate the page: 0.01240 seconds