| 
 
 
 
	
	
		
			|   | Page 1 of 1 
 | [ 9 posts ] |  |   Script: Delay on weapon switch? [Solved] 
        
        
            | Author | Message |  
			| Gotcha! 
					Joined: Tue Apr 01, 2008 4:49 pm
 Posts: 1972
 Location: The Netherlands
   |   Script: Delay on weapon switch? [Solved]Hello people, Could anyone somehow change this script in a way that it takes 2 seconds for it to change to the other weapon? Code: function SteyrAUGSwitchMain(actor)local gun = ToAHuman(actor).EquippedItem;
 if gun ~= nil then
 gun.Sharpness = 1;
 end
 end
 
 function SteyrAUGSwitchAlt(actor)
 local gun = ToAHuman(actor).EquippedItem;
 if gun ~= nil then
 gun.Sharpness = 2;
 end
 end
 
 function Create(self)
 
 self.weaponNameTable = {"Steyr AUG", "Steyr AUG Alt Fire"};
 self.weaponClassTable = {"HDFirearm", "HDFirearm"};
 self.switchPhase = 0;
 
 end
 
 function Update(self)
 
 if self.Sharpness ~= 0 then
 if self.switchPhase == 0 then
 local actor = MovableMan:GetMOFromID(self.RootID);
 if MovableMan:IsActor(actor) then
 self.parent = ToAHuman(actor);
 if self.weaponClassTable[self.Sharpness] == "HDFirearm" then
 local switchGun = ToActor(self.parent):AddInventoryItem(CreateHDFirearm(self.weaponNameTable[self.Sharpness]));
 elseif self.weaponClassTable[self.Sharpness] == "TDExplosive" then
 local switchGun = ToActor(self.parent):AddInventoryItem(CreateTDExplosive(self.weaponNameTable[self.Sharpness]));
 elseif self.weaponClassTable[self.Sharpness] == "HeldDevice" then
 local switchGun = ToActor(self.parent):AddInventoryItem(CreateHeldDevice(self.weaponNameTable[self.Sharpness]));
 end
 ToActor(self.parent):GetController():SetState(Controller.WEAPON_DROP,true);
 self.switchPhase = 1;
 else
 self.Sharpness = 0;
 end
 
 else
 if MovableMan:IsActor(self.parent) then
 if ToActor(self.parent):IsInventoryEmpty() == false then
 ToActor(self.parent):GetController():SetState(Controller.WEAPON_CHANGE_PREV,true);
 end
 end
 self.ToDelete = true;
 end
 end
 
 end
 
 
    							Last edited by Gotcha! on Sun Sep 18, 2011 6:51 pm, edited 1 time in total. 
 
 |  
			| Sun Sep 18, 2011 2:10 pm | 
					
					   |  
		|  |  
			| CaveCricket48 
					Joined: Tue Jun 12, 2007 11:52 pm
 Posts: 13144
 Location: Here
   |   Re: Script: Delay on weapon switch?Try: Code: function SteyrAUGSwitchMain(actor)local gun = ToAHuman(actor).EquippedItem;
 if gun ~= nil then
 gun.Sharpness = 1;
 end
 end
 
 function SteyrAUGSwitchAlt(actor)
 local gun = ToAHuman(actor).EquippedItem;
 if gun ~= nil then
 gun.Sharpness = 2;
 end
 end
 
 function Create(self)
 
 self.weaponNameTable = {"Steyr AUG", "Steyr AUG Alt Fire"};
 self.weaponClassTable = {"HDFirearm", "HDFirearm"};
 self.switchPhase = 0;
 
 self.switchTimer = Timer();
 self.flipTimer = false;
 self.switchDelay = 2000; -- This is the time delay
 
 end
 
 function Update(self)
 
 if self.Sharpness ~= 0 then
 
 if self.flipTimer == false then
 self.flipTimer = true;
 self.switchTimer:Reset();
 end
 
 if self.switchTimer:IsPastSimMS(self.switchDelay) then
 if self.switchPhase == 0 then
 local actor = MovableMan:GetMOFromID(self.RootID);
 if MovableMan:IsActor(actor) then
 self.parent = ToAHuman(actor);
 if self.weaponClassTable[self.Sharpness] == "HDFirearm" then
 local switchGun = ToActor(self.parent):AddInventoryItem(CreateHDFirearm(self.weaponNameTable[self.Sharpness]));
 elseif self.weaponClassTable[self.Sharpness] == "TDExplosive" then
 local switchGun = ToActor(self.parent):AddInventoryItem(CreateTDExplosive(self.weaponNameTable[self.Sharpness]));
 elseif self.weaponClassTable[self.Sharpness] == "HeldDevice" then
 local switchGun = ToActor(self.parent):AddInventoryItem(CreateHeldDevice(self.weaponNameTable[self.Sharpness]));
 end
 ToActor(self.parent):GetController():SetState(Controller.WEAPON_DROP,true);
 self.switchPhase = 1;
 else
 self.Sharpness = 0;
 end
 
 else
 if MovableMan:IsActor(self.parent) then
 if ToActor(self.parent):IsInventoryEmpty() == false then
 ToActor(self.parent):GetController():SetState(Controller.WEAPON_CHANGE_PREV,true);
 end
 end
 self.ToDelete = true;
 end
 end
 
 end
 
 end
 
Also, lol: 
 
 |  
			| Sun Sep 18, 2011 2:25 pm | 
					
					   |  
		|  |  
			| Gotcha! 
					Joined: Tue Apr 01, 2008 4:49 pm
 Posts: 1972
 Location: The Netherlands
   |   Re: Script: Delay on weapon switch?Strange, there's no difference. Also, no error messages.
 Also: Wow, for a moment there I felt pretty 1337. *feels warm and fuzzy*
 
 
 |  
			| Sun Sep 18, 2011 3:07 pm | 
					
					   |  
		|  |  
			| CaveCricket48 
					Joined: Tue Jun 12, 2007 11:52 pm
 Posts: 13144
 Location: Here
   |   Re: Script: Delay on weapon switch?It seems to work for me. Also, do you have your weapons' sharpness set to 0 in INI? 
 
 |  
			| Sun Sep 18, 2011 3:24 pm | 
					
					   |  
		|  |  
			| Gotcha! 
					Joined: Tue Apr 01, 2008 4:49 pm
 Posts: 1972
 Location: The Netherlands
   |   Re: Script: Delay on weapon switch?No.    Did so now, but no change though. Well, it works for you so I must be forgetting something somewhere. Thanks.   No.    Did so now, but no change though. Well, it works for you so I must be forgetting something somewhere. Thanks.   Edit: Nope, didn't forget anything, except that I have one less 'end' at the end. But if I add one then the console tells me it did not expect one. Code: function SteyrAUGSwitchMain(actor)local gun = ToAHuman(actor).EquippedItem;
 if gun ~= nil then
 gun.Sharpness = 1;
 end
 end
 
 function SteyrAUGSwitchAlt(actor)
 local gun = ToAHuman(actor).EquippedItem;
 if gun ~= nil then
 gun.Sharpness = 2;
 end
 end
 
 function Create(self)
 
 self.weaponNameTable = {"Steyr AUG", "Steyr AUG Alt Fire"};
 self.weaponClassTable = {"HDFirearm", "HDFirearm"};
 self.switchPhase = 0;
 self.BurstTimer = Timer()
 self.switchTimer = Timer();
 self.flipTimer = false;
 self.switchDelay = 2000;
 end
 
 function Update(self)
 
 if self.Sharpness ~= 0 then
 if self.flipTimer == false then
 self.flipTimer = true;
 self.switchTimer:Reset();
 end
 if self.switchPhase == 0 then
 local actor = MovableMan:GetMOFromID(self.RootID);
 if MovableMan:IsActor(actor) then
 self.parent = ToAHuman(actor);
 if self.weaponClassTable[self.Sharpness] == "HDFirearm" then
 local switchGun = ToActor(self.parent):AddInventoryItem(CreateHDFirearm(self.weaponNameTable[self.Sharpness]));
 elseif self.weaponClassTable[self.Sharpness] == "TDExplosive" then
 local switchGun = ToActor(self.parent):AddInventoryItem(CreateTDExplosive(self.weaponNameTable[self.Sharpness]));
 elseif self.weaponClassTable[self.Sharpness] == "HeldDevice" then
 local switchGun = ToActor(self.parent):AddInventoryItem(CreateHeldDevice(self.weaponNameTable[self.Sharpness]));
 end
 ToActor(self.parent):GetController():SetState(Controller.WEAPON_DROP,true);
 self.switchPhase = 1;
 else
 self.Sharpness = 0;
 end
 
 else
 if MovableMan:IsActor(self.parent) then
 if ToActor(self.parent):IsInventoryEmpty() == false then
 ToActor(self.parent):GetController():SetState(Controller.WEAPON_CHANGE_PREV,true);
 end
 end
 self.ToDelete = true;
 end
 end
 if self:IsActivated() and self.Magazine then
 if not self.burst then
 self.burst = self.Magazine.RoundCount
 self.BurstTimer:Reset()
 elseif self.burst - 3 >= self.Magazine.RoundCount then
 self:Deactivate()
 if self.BurstTimer:IsPastSimMS(400) then
 self.burst = nil
 end
 end
 else
 self.burst = nil
 end
 end
 
 
    							Last edited by Gotcha! on Sun Sep 18, 2011 4:20 pm, edited 1 time in total. 
 
 |  
			| Sun Sep 18, 2011 3:58 pm | 
					
					   |  
		|  |  
			| CaveCricket48 
					Joined: Tue Jun 12, 2007 11:52 pm
 Posts: 13144
 Location: Here
   |   Re: Script: Delay on weapon switch?Here's the RTE I have with the modifications, perhaps I missed something in my post. 
 
 |  
			| Sun Sep 18, 2011 4:16 pm | 
					
					   |  
		|  |  
			| Gotcha! 
					Joined: Tue Apr 01, 2008 4:49 pm
 Posts: 1972
 Location: The Netherlands
   |   Re: Script: Delay on weapon switch?Yeah, found the missing line. It works now.    Thanks. During the 2 second changing period the actor is still allowed to fire his gun. Is it also possible to add a line in there that would somehow 'jam' the gun during those two seconds?
 
 |  
			| Sun Sep 18, 2011 4:52 pm | 
					
					   |  
		|  |  
			| CaveCricket48 
					Joined: Tue Jun 12, 2007 11:52 pm
 Posts: 13144
 Location: Here
   |   Re: Script: Delay on weapon switch?Here you go. 
 
 |  
			| Sun Sep 18, 2011 6:06 pm | 
					
					   |  
		|  |  
			| Gotcha! 
					Joined: Tue Apr 01, 2008 4:49 pm
 Posts: 1972
 Location: The Netherlands
   |   Re: Script: Delay on weapon switch?Thaaaanks! Works like a charm.  
 
 |  
			| Sun Sep 18, 2011 6:34 pm | 
					
					   |  
		|  |  
		|  |  
	
		
			|   | Page 1 of 1 
 | [ 9 posts ] |  |  
 
	
		| Who is online |  
		| Users browsing this forum: No registered users |  
 
	|  | You cannot post new topics in this forum You cannot reply to topics in this forum
 You cannot edit your posts in this forum
 You cannot delete your posts in this forum
 You cannot post attachments in this forum
 
 |  
 |