Renegade Public Forums
C&C: Renegade --> Dying since 2003™, resurrected in 2024!
Home » Renegade Discussions » Mod Forum » Weapon Drops/Keeping the Weapon
Re: Weapon Drops/Keeping the Weapon [message #363147 is a reply to message #361001] Sun, 14 December 2008 13:00 Go to previous messageGo to previous message
Gen_Blacky is currently offline  Gen_Blacky
Messages: 3250
Registered: September 2006
Karma:
General (3 Stars)
Your code

void Backpack_Weapon_Drop::Created(GameObject *obj) {
	Commands->Start_Timer(obj,this,8.0f,1);
	Commands->Start_Timer(obj,this,6.0f,2);
	GameObject *player = Get_GameObj(Get_Int_Parameter("ID"));

	if (Has_Weapon(player,"Weapon_AutoRifle_Player"))
		this->miniGunGdi = true;
	else
		this->miniGunGdi = false;
	if (Has_Weapon(player,"Weapon_AutoRifle_Player_Nod"))
		this->miniGunNod = true;
	else
		this->miniGunNod = false;
	if (Has_Weapon(player,"Weapon_Chaingun_Player"))
		this->chainGunGdi = true;
	else
		this->chainGunGdi = false;
	if (Has_Weapon(player,"Weapon_Chaingun_Player_Nod"))
		this->chainGunNod = true;
	else
		this->chainGunNod = false;
	if (Has_Weapon(player,"Weapon_ChemSprayer_Player"))
		this->chemSprayer = true;
	else
		this->chemSprayer = false;
	if (Has_Weapon(player,"CNC_Weapon_Flamethrower_Player"))
		this->flameThrower = true;
	else
		this->flameThrower = false;
	if (Has_Weapon(player,"Weapon_GrenadeLauncher_Player"))
		this->grenadeLauncher = true;
	else
		this->grenadeLauncher = false;
	if (Has_Weapon(player,"Weapon_LaserChaingun_Player"))
		this->laserChainGun = true;
	else
		this->laserChainGun = false;
	if (Has_Weapon(player,"Weapon_LaserRifle_Player"))
		this->laserRifle = true;
	else
		this->laserRifle = false;
	if (Has_Weapon(player,"Weapon_MineProximity_Player"))
		this->mineProxy = true;
	else
		this->mineProxy = false;
	if (Has_Weapon(player,"Weapon_PersonalIonCannon_Player"))
		this->persIonCannon = true;
	else
		this->persIonCannon = false;
	if (Has_Weapon(player,"Weapon_Railgun_Player"))
		this->railGun = true;
	else
		this->railGun = false;
	if (Has_Weapon(player,"Weapon_RamjetRifle_Player") || Has_Weapon(player,"CnC_Weapon_RamjetRifle_Player"))
		this->ramjet = true;
	else
		this->ramjet = false;
	if (Has_Weapon(player,"Weapon_RepairGun_Player") || Has_Weapon(player,"CnC_Weapon_RepairGun_Player_Special"))
		this->repairGun = true;
	else
		this->repairGun = false;
	if (Has_Weapon(player,"Weapon_RocketLauncher_Player"))
		this->rocketLauncher = true;
	else
		this->rocketLauncher = false;
	if (Has_Weapon(player,"CnC_Weapon_RocketLauncher_Player"))
		this->rocketGunner = true;
	else
		this->rocketGunner = false;
	if (Has_Weapon(player,"Weapon_Shotgun_Player"))
		this->shotGun = true;
	else
		this->shotGun = false;
	if (Has_Weapon(player,"Weapon_SniperRifle_Player"))
		this->sniperRifle = true;
	else
		this->sniperRifle = false;
	if (Has_Weapon(player,"Weapon_TiberiumAutoRifle_Player"))
		this->tibAutoRifle = true;
	else
		this->tibAutoRifle = false;
	if (Has_Weapon(player,"Weapon_TiberiumFlechetteGun_Player"))
		this->flechetteGun = true;
	else
		this->flechetteGun = false;
	if (Has_Weapon(player,"Weapon_VoltAutoRifle_Player"))
		this->voltAutoRifleGdi = true;
	else
		this->voltAutoRifleGdi = false;
	if (Has_Weapon(player,"Weapon_VoltAutoRifle_Player_Nod"))
		this->voltAutoRifleNod = true;
	else
		this->voltAutoRifleNod = false;
}

void Backpack_Weapon_Drop::Custom(GameObject *obj, int message, int param, GameObject *sender) {
	//if (message == 1000000025) {
	if (message == 1000000025) 
	{
		Create_2D_WAV_Sound_Player(sender,"m00psbk_aqob0004i1evag_snd.wav");
		if (this->miniGunGdi)       Commands->Give_Powerup(sender,"POW_AutoRifle_Player",false);
		if (this->miniGunNod)       Commands->Give_Powerup(sender,"POW_AutoRifle_Player_Nod",false);
		if (this->chainGunGdi)      Commands->Give_Powerup(sender,"POW_Chaingun_Player",false);
		if (this->chainGunNod)      Commands->Give_Powerup(sender,"POW_Chaingun_Player_Nod",false);
		if (this->chemSprayer)      Commands->Give_Powerup(sender,"POW_ChemSprayer_Player",false);
		if (this->flameThrower)     Commands->Give_Powerup(sender,"POW_Flamethrower_Player",false);
		if (this->grenadeLauncher)  Commands->Give_Powerup(sender,"POW_GrenadeLauncher_Player",false);
		if (this->laserChainGun)    Commands->Give_Powerup(sender,"POW_LaserChaingun_Player",false);
		if (this->laserRifle)       Commands->Give_Powerup(sender,"POW_LaserRifle_Player",false);
		if (this->mineProxy)        Commands->Give_Powerup(sender,"POW_MineProximity_Player",false);
		if (this->persIonCannon)    Commands->Give_Powerup(sender,"POW_PersonalIonCannon_Player",false);
		if (this->railGun)          Commands->Give_Powerup(sender,"POW_Railgun_Player",false);
		if (this->ramjet)           Commands->Give_Powerup(sender,"POW_RamjetRifle_Player",false);
		if (this->repairGun)        Commands->Give_Powerup(sender,"POW_RepairGun_Player",false);
		if (this->rocketLauncher)   Commands->Give_Powerup(sender,"POW_RocketLauncher_Player",false);
		if (this->rocketGunner)     Commands->Give_Powerup(sender,"CnC_POW_RocketLauncher_Player",false);
		if (this->shotGun)          Commands->Give_Powerup(sender,"POW_Shotgun_Player",false);
		if (this->sniperRifle)      Commands->Give_Powerup(sender,"POW_SniperRifle_Player",false);
		if (this->tibAutoRifle)     Commands->Give_Powerup(sender,"POW_TiberiumAutoRifle_Player",false);
		if (this->flechetteGun)     Commands->Give_Powerup(sender,"POW_TiberiumFlechetteGun_Player",false);
		if (this->voltAutoRifleGdi) Commands->Give_Powerup(sender,"POW_VoltAutoRifle_Player",false);
		if (this->voltAutoRifleNod) Commands->Give_Powerup(sender,"CnC_POW_VoltAutoRifle_Player_Nod",false);
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_POW_MineRemote_02")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pac4_aqob0004i1evag_snd.wav");
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_AutoRifle_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwar_aqob0004i1evag_snd.wav");
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_AutoRifle_Player_Nod")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwar_aqob0004i1evag_snd.wav");
		}		
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_Chaingun_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwcg_aqob0004i1evag_snd.wav");
		}				
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_Chaingun_Player_Nod")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwcg_aqob0004i1evag_snd.wav");
		}				
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_ChemSprayer_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwcs_aqob0004i1evag_snd.wav");
		}		
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_Flamethrower_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwft_aqob0001i1evag_snd.wav");
		}		
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_GrenadeLauncher_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwgl_aqob0004i1evag_snd.wav");
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_LaserChaingun_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwlc_aqob0004i1evag_snd.wav");
		}		
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_LaserRifle_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwlr_aqob0004i1evag_snd.wav");
		}				
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_RepairGun_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwrp_aqob0001i1evag_snd.wav");
		}						
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_PersonalIonCannon_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwpi_aqob0004i1evag_snd.wav");
		}		
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_Railgun_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwrg_aqob0004i1evag_snd.wav");
		}		
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_RamjetRifle_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwrj_aqob0004i1evag_snd.wav");
		}		
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_RocketLauncher_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwrl_aqob0004i1evag_snd.wav");
		}	
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_Shotgun_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwps_aqob0004i1evag_snd.wav");
		}			
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_SniperRifle_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwsr_aqob0004i1evag_snd.wav");
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_SniperRifle_Player_Nod")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwsr_aqob0004i1evag_snd.wav");
		}							
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_TiberiumAutoRifle_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwtr_aqob0004i1evag_snd.wav");
		}							
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_TiberiumFlechetteGun_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwtf_aqob0004i1evag_snd.wav");
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"POW_VoltAutoRifle_Player")) 
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwvr_aqob0004i1evag_snd.wav");
		}		
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_POW_VoltAutoRifle_Player_Nod"))
		{
			Create_2D_WAV_Sound_Player(sender,"m00pwvr_aqob0004i1evag_snd.wav");

		Commands->Start_Timer(obj,this,6.0f,2);
		}
	}

void Backpack_Weapon_Drop::Timer_Expired(GameObject *obj, int number) {
	if (number == 1) {
		Commands->Expire_Powerup(obj);
		Commands->Destroy_Object(obj);
	}
	else if (number == 2) {
		Commands->Create_Object("Spawner Created Special Effect",Commands->Get_Position(obj));
	}
}



ssgm Player with your script attached


void MDB_SSGM_Player::Destroyed(GameObject *obj) {
	if (Settings->DestroyPlayerVeh && Get_Vehicle(obj)) {
		GameObject *Veh = Get_Vehicle(obj);
		if (Get_Vehicle_Driver(Veh) == obj) {
			Commands->Apply_Damage(Veh,99999,"Death",false);
		}
	}

	if (!Data->Mod && Settings->DropWeapons && WasKilled) {
		WasKilled = false;
		Vector3 DeathPlace = Commands->Get_Position(obj);
		int RandomNum = Commands->Get_Random_Int(1,5);
		GameObject *BackpackScript = 0;
		if (strstr(Commands->Get_Preset_Name(obj),"CnC_GDI_MiniGunner_0")) {
			BackpackScript = Commands->Create_Object("Weapon_AutoRifle_Player",DeathPlace);
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_Minigunner_0")) {
			BackpackScript = Commands->Create_Object("Weapon_AutoRifle_Player_Nod",DeathPlace);
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_GDI_MiniGunner_1Off")) {
			if (RandomNum == 1 || RandomNum == 2 || RandomNum == 3) {
				BackpackScript = Commands->Create_Object("POW_Chaingun_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_MiniGunner_1Off")) {
			if (RandomNum == 1 || RandomNum == 2 || RandomNum == 3) {
				BackpackScript = Commands->Create_Object("POW_Chaingun_Player_Nod",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_FlameThrower_1Off")) {
			if (RandomNum == 1 || RandomNum == 2 || RandomNum == 3) {
				BackpackScript = Commands->Create_Object("POW_ChemSprayer_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_FlameThrower_0")) {
			BackpackScript = Commands->Create_Object("POW_Flamethrower_Player",DeathPlace);
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_GDI_Grenadier_0")) {
			BackpackScript = Commands->Create_Object("POW_GrenadeLauncher_Player",DeathPlace);
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_RocketSoldier_2SF")) {
			if (RandomNum == 1 || RandomNum == 2) {
				BackpackScript = Commands->Create_Object("POW_LaserChaingun_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_FlameThrower_2SF")) {
			if (RandomNum == 1 || RandomNum == 2) {
				BackpackScript = Commands->Create_Object("POW_LaserRifle_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_Technician_0")) {
			if (RandomNum == 1 || RandomNum == 2 || RandomNum == 3) {
				BackpackScript = Commands->Create_Object("POW_RepairGun_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_GDI_Engineer_2SF")) {
			if (RandomNum == 1 || RandomNum == 2 || RandomNum == 3) {
				BackpackScript = Commands->Create_Object("POW_RepairGun_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_Engineer_0")) {
			BackpackScript = Commands->Create_Object("CnC_POW_MineRemote_02",DeathPlace);
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_GDI_Engineer_0")) {
			BackpackScript = Commands->Create_Object("CnC_POW_MineRemote_02",DeathPlace);
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Sydney_PowerSuit")) {
			if (RandomNum == 1) {
				BackpackScript = Commands->Create_Object("POW_PersonalIonCannon_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_RocketSoldier_3Boss")) {
			if (RandomNum == 1) {
				BackpackScript = Commands->Create_Object("POW_Railgun_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_Minigunner_3Boss")) {
			if (RandomNum == 1) {
				BackpackScript = Commands->Create_Object("POW_RamjetRifle_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_GDI_MiniGunner_3Boss")) {
			if (RandomNum == 1) {
				BackpackScript = Commands->Create_Object("POW_RamjetRifle_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_GDI_RocketSoldier_1Off")) {
			if (RandomNum == 1 || RandomNum == 2 || RandomNum == 3) {
				BackpackScript = Commands->Create_Object("POW_RocketLauncher_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_RocketSoldier_1Off")) {
			if (RandomNum == 1 || RandomNum == 2 || RandomNum == 3) {
				BackpackScript = Commands->Create_Object("POW_RocketLauncher_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_GDI_RocketSoldier_2SF")) {
			if (RandomNum == 1 || RandomNum == 2) {
				BackpackScript = Commands->Create_Object("CnC_POW_RocketLauncher_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_GDI_RocketSoldier_0")) {
			BackpackScript = Commands->Create_Object("POW_Shotgun_Player",DeathPlace);
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_RocketSoldier_0")) {
			BackpackScript = Commands->Create_Object("POW_Shotgun_Player",DeathPlace);
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_GDI_MiniGunner_2SF")) {
			if (RandomNum == 1 || RandomNum == 2) {
				BackpackScript = Commands->Create_Object("POW_SniperRifle_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_Minigunner_2SF")) {
			if (RandomNum == 1 || RandomNum == 2) {
				BackpackScript = Commands->Create_Object("POW_SniperRifle_Player_Nod",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Sydney")) {
			if (RandomNum == 1 || RandomNum == 2 || RandomNum == 3) {
				BackpackScript = Commands->Create_Object("POW_TiberiumAutoRifle_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_Minigunner_2SF")) {
			if (RandomNum == 1 || RandomNum == 2) {
				BackpackScript = Commands->Create_Object("POW_SniperRifle_Player_Nod",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_GDI_Grenadier_2SF")) {
			if (RandomNum == 1 || RandomNum == 2) {
				BackpackScript = Commands->Create_Object("POW_TiberiumFlechetteGun_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Ignatio_Mobius")) {
			if (RandomNum == 1) {
				BackpackScript = Commands->Create_Object("POW_VoltAutoRifle_Player",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else if (strstr(Commands->Get_Preset_Name(obj),"CnC_Nod_FlameThrower_3Boss")) {
			if (RandomNum == 1) {
				BackpackScript = Commands->Create_Object("CnC_POW_VoltAutoRifle_Player_Nod",DeathPlace);
			}
			else {
				BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
			}
		}
		else {
			BackpackScript = Commands->Create_Object("POW_Armor_100",DeathPlace);
		}
		Commands->Attach_Script(BackpackScript,"Backpack_Weapon_Drop","");
	}
	if (Find_My_Veh(obj)) {
		Commands->Send_Custom_Event(obj,Find_My_Veh(obj),1111,0,0);
	}
}


Im not sure if im even close of doing this right but it was something I tried.

I would have to edit the drop script but i was just trying to find out why its crashing


http://s18.postimage.org/jc6qbn4k9/bricks3.png

[Updated on: Sun, 14 December 2008 13:01]

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
Previous Topic: How to animate a flag?
Next Topic: Help installing LUA 5?
Goto Forum:
  


Current Time: Sat Dec 21 23:56:05 MST 2024

Total time taken to generate the page: 0.01330 seconds