Chameleon.h | inactive | new mods will ship with builds

Released modifications for the OpenSpades client.
Forum rules
Release, download, and praise or criticize completed modifications. For installation and creation help, please visit the OpenSpades general discussion forum.
142 posts Page 7 of 10 First unread post
Hobo Moses
Deuced Up
Posts: 59
Joined: Tue Aug 05, 2014 4:54 pm


Are my balls sposed to go in this deep?
bloodfox
Post Demon
Post Demon
Posts: 2206
Joined: Mon Oct 21, 2013 4:32 pm


Oi, I thought you would either: Be too young to have your balls doing weird things or: You are a woman/alien.
Post_Modernist
Deuced Up
Posts: 22
Joined: Sun Jan 19, 2014 6:02 am


How did you do animated weapon parts like bolts for som rifles?
Chameleon
Modder
Modder
Posts: 601
Joined: Thu Nov 22, 2012 6:41 pm


>open 7 page
>"Are my balls sposed to go in this deep?"
>wtf is happening
>2.4GHz proc, chrome runs slow as fuck
>it will take 3 mins to load page 6
>the suspense is killing me

Also for Post_modernist
>learn C++
>find "/Resources/Scripts/Weapons/WEAPON/View.as"
>find some autistic comments inside
>I wrote these parts of script. they're usually animations
yuiop
Veterans
Veterans
Posts: 75
Joined: Mon May 26, 2014 8:31 pm


Here's what I request:

Skins for both teams. That means you could do "humans vs. Zombies" skins. :)
Chameleon
Modder
Modder
Posts: 601
Joined: Thu Nov 22, 2012 6:41 pm


Impossible unless someone tells me how to compile on windows XP (some bugs will also be fixed).
Rainbow_Rambo
Deuced Up
Posts: 25
Joined: Wed May 07, 2014 7:21 pm


AKM is beautiful! Thank you!
Could you give AKM WITHOUT sounds? Answer please, i really like and want this weapon) Thanks)
Chameleon
Modder
Modder
Posts: 601
Joined: Thu Nov 22, 2012 6:41 pm


Without sounds ...?
You can always change the sounds in OpenSpades/Resources/Sounds/Weapons/SMG/ (or make them silent etc.)
Rainbow_Rambo
Deuced Up
Posts: 25
Joined: Wed May 07, 2014 7:21 pm


I want to use only model of AKM (its really cool).
But i cant just put content of Models/Weapon/SMG/ from your pack to same folder on my computer - in game parts of model is mixed up.
If I copy your folder Scripts to my comp then model in game is ok but one of theese scripts (View.as maybe) demands Sounds folder. (For example scripts for your M16 dont demand Sounds.)
Answer please how can i get only model of AKM without sounds.
Thank you and excuse me English)
Rainbow_Rambo
Deuced Up
Posts: 25
Joined: Wed May 07, 2014 7:21 pm


I want to explain myself: I want to use only model of AKM and sounds to stay default. Thanks.
Chameleon
Modder
Modder
Posts: 601
Joined: Thu Nov 22, 2012 6:41 pm


Here's the script file with default sound system (that you find in OS by default):
(I couldn't upload the view.as file here, forbidden)
Code: Select all
/*
 Copyright (c) 2013 yvt
 
 This file is part of OpenSpades.
 
 OpenSpades is free software: you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation, either version 3 of the License, or
 (at your option) any later version.
 
 OpenSpades is distributed in the hope that it will be useful,
 but WITHOUT ANY WARRANTY; without even the implied warranty of
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with OpenSpades.  If not, see <http://www.gnu.org/licenses/>.
 
 */
 
 namespace spades 
 {
	class ViewSMGSkin: 
	IToolSkin, IViewToolSkin, IWeaponSkin,
	BasicViewWeapon 
	{		
	
		private AudioDevice@ audioDevice;
		private Model@ gunModel;
		private Model@ gunModel2;
		private Model@ magazineModel;
		private Model@ sightModel1;
		private Model@ sightModel2;
		private Model@ sightModel3;
		private Model@ sightModel4;
		private Model@ movemodel;
		private Model@ flashmodel;
		
		private AudioChunk@[] fireSounds(4);
		private AudioChunk@ fireFarSound;
		private AudioChunk@ fireStereoSound;
		private AudioChunk@ reloadSound;
		
		float ReadyState;
		
		ViewSMGSkin(Renderer@ r, AudioDevice@ dev)
		{
			super(r);
			@audioDevice = dev;
			@gunModel = renderer.RegisterModel
				("Models/Weapons/SMG/WeaponNoMagazine.kv6");
			@gunModel2 = renderer.RegisterModel
				("Models/Weapons/SMG/WeaponNoMagazine2.kv6");
			@magazineModel = renderer.RegisterModel
				("Models/Weapons/SMG/Magazine.kv6");
			@sightModel1 = renderer.RegisterModel
				("Models/Weapons/SMG/Sight1.kv6");
			@sightModel2 = renderer.RegisterModel
				("Models/Weapons/SMG/Sight2.kv6");
			@sightModel3 = renderer.RegisterModel
				("Models/Weapons/SMG/Sight3.kv6");
			@sightModel4 = renderer.RegisterModel
				("Models/Weapons/SMG/Sight4.kv6");
			@movemodel = renderer.RegisterModel
				("Models/Weapons/SMG/WeaponMove.kv6");
			@flashmodel = renderer.RegisterModel
				("Models/Weapons/SMG/WeaponFlash.kv6");
				
			@fireSounds[0] = dev.RegisterSound
				("Sounds/Weapons/SMG/FireLocal1.wav");
			@fireSounds[1] = dev.RegisterSound
				("Sounds/Weapons/SMG/FireLocal2.wav");
			@fireSounds[2] = dev.RegisterSound
				("Sounds/Weapons/SMG/FireLocal3.wav");
			@fireSounds[3] = dev.RegisterSound
				("Sounds/Weapons/SMG/FireLocal4.wav");
			@fireFarSound = dev.RegisterSound
				("Sounds/Weapons/SMG/FireFar.wav");
			@fireStereoSound = dev.RegisterSound
				("Sounds/Weapons/SMG/FireStereo.wav");
			@reloadSound = dev.RegisterSound
				("Sounds/Weapons/SMG/ReloadLocal.wav");
				
		}
		
		void Update(float dt) {
			BasicViewWeapon::Update(dt);
		}
		
		void WeaponFired()
		{
			BasicViewWeapon::WeaponFired();	//NOTE i might be able to do firing animation by linking a function here
			
			if(!IsMuted)
			{
				Vector3 origin = Vector3(0.4f, -0.3f, 0.5f);
				AudioParam param;
				param.volume = 8.f;
				audioDevice.PlayLocal(fireSounds[GetRandom(fireSounds.length)], origin, param);
				
				param.volume = 4.f;
				audioDevice.PlayLocal(fireFarSound, origin, param);
				param.volume = 1.f;
				audioDevice.PlayLocal(fireStereoSound, origin, param);	
			}
		}
		
		void ReloadingWeapon() 
		{
			if(!IsMuted)
			{
				Vector3 origin = Vector3(0.f, -0.3f, 0.5f);
				AudioParam param;
				param.volume = 0.2f;
				audioDevice.PlayLocal(reloadSound, origin, param);
			}
		}
		
		float GetZPos() {
			return 0.2f - AimDownSightStateSmooth * 0.038f;
		}
		//	return 0.2f - AimDownSightStateSmooth * 0.038f;
		
		// rotates gun matrix to ensure the sight is in
		// the center of screen (0, ?, 0).
		Matrix4 AdjustToAlignSight(Matrix4 mat, Vector3 sightPos, float fade) 
		{
			Vector3 p = mat * sightPos;
			mat = CreateRotateMatrix(Vector3(0.f, 0.f, 1.f), atan(p.x / p.y) * fade) * mat;
			mat = CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), atan(p.z / p.y) * fade) * mat;
			return mat * CreateTranslateMatrix(0.f, 5.f, 0.f);
		}
		
		void Draw2D()
		{
		if (AimDownSightStateSmooth > 0.8f)
		{
			return;
		}
			BasicViewWeapon::Draw2D();
		}
		
		void AddToScene() {
			Matrix4 mat = CreateScaleMatrix(0.033f); //DEFAULT 0.033
			mat = GetViewWeaponMatrix() * mat;
			
			bool reloading = IsReloading;
			float reload = ReloadProgress;
			reload *= 2.5f;
			Vector3 leftHand, rightHand;
			
			leftHand = mat * Vector3(1.0f, 9.f, 0.75f);			//(x,y,z) (x+left/-right, y+further/-closer, z+down/-up)
			rightHand = mat * Vector3(1.f, -1.6f, -0.5f);			//(x,y,z) (x+left/-right, y+further/-closer, z+down/-up)
			///*
			Vector3 leftHando = mat * Vector3(-1.f, 8.f, 0.f); //original position
			Vector3 leftHand2 = mat * Vector3(5.f, -10.f, 4.f); //release magazine
			Vector3 leftHand3 = mat * Vector3(0.f, 8.f, -3.f);	//moves up from original postion
			Vector3 leftHand4 = mat * Vector3(0.f, 8.f, -4.f); //moves up more
			
			Vector3 rightHand2 = mat * Vector3(2.f, 0.f, 1.5f); //moves hand when removing magazine
			Vector3 rightHand3 = mat * Vector3(-2.5f, 10.f, -6.f); //moves when loading new bullet
			Vector3 rightHand4 = mat * Vector3(-2.5f, 5.f, -5.f); //moves backwards
			//*/
			if(AimDownSightStateSmooth > 0.8f)
			{
				mat = AdjustToAlignSight(mat, Vector3(0.f, -700.f, -4.9f), (AimDownSightStateSmooth - 0.8f) / 0.2f);
			}
			
			//HELP FOR MODDING; COMMENT 2 LINES BELOW TO PLAY
			//mat *= CreateTranslateMatrix(-17.f, 0.f, 0.f);
			//mat *= CreateRotateMatrix(Vector3(0.f, 0.f, -1.f), asin(1));
			
			//NEW ROTATION ANIMATION#------------------------------------###########ROTATION###########
			//
			//MY_WIKI/EXPLANATIONS
			//
			//CreateRotateMatrix(Vector3(0.f, 0.f, 0.f), tan(90.0f));
			//(left/right/up/down describes position of muzzle(farther end of weapon)) 
			//(x,y,z) (x+down/-up, y+rollright/-rollleft, z+turnleft?/-turnright?)
			//
			//CreateTranslateMatrix(0.f, 0.f, 0.f);
			//(x,y,z) (x+left/-right, y+further/-closer, z+down/-up)
			//
			if(reloading)
			{
				if(reload < 0.2f)
				{
					float per = reload / 0.2f;
					if (per < 0.8f)
					{
						mat *= CreateRotateMatrix(Vector3(0.f, 1.f, 0.f), per*0.375f); //>roll =0.3
						//
						mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), per*0.25f); //>lift =-0.2
					}
					else
					{
						mat *= CreateRotateMatrix(Vector3(0.f, 1.f, 0.f), 0.3f);	//roll =0.3
						//
						mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), 0.2f);	//lift =-0.2
					}
				}
				else if(reload < 0.4f) //removing magazine (move down)
				{
					float per = (reload - 0.2f) / 0.2f;
					mat *= CreateRotateMatrix(Vector3(0.f, 1.f, 0.f), 0.3f);		//roll =0.3
					//
					mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), 0.2f);		//lift 
					mat *= CreateRotateMatrix(Vector3(1.f, 0.f, 0.f), per*0.1f);	//>lift =-0.1
					//
					mat *= CreateTranslateMatrix(0.f, 0.f, per*2.f);				//>raise =2.0
				}
				else if(reload < 0.7f) //recovers from moving down
				{
					float per = (reload - 0.4f) / 0.3f;
					mat *= CreateRotateMatrix(Vector3(0.f, 1.f, 0.f), 0.3f);		//roll =0.3
					//
					mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), 0.1f);		//lift
					mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), per*0.1f);	//>lift =-0.2
					//
					mat *= CreateTranslateMatrix(0.f, 0.f, 2.f);					//raise
					mat *= CreateTranslateMatrix(0.f, 0.f, per*-0.6f);				//>raise =1.4
				}
				else if(reload < 1.2f) //idling
				{
					mat *= CreateRotateMatrix(Vector3(0.f, 1.f, 0.f), 0.3f);
					//
					mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), 0.2f);
					//
					mat *= CreateTranslateMatrix(0.f, 0.f, 1.4f);
				}
				else if(reload < 1.5f) //inserting magazine (move up)
				{
					float per = (reload - 1.2f) / 0.3f;
					mat *= CreateRotateMatrix(Vector3(0.f, 1.f, 0.f), 0.3f);		//roll
					mat *= CreateRotateMatrix(Vector3(0.f, -1.f, 0.f), per*0.2f);	//>roll =0.1
					//
					mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), 0.2f);		//lift
					mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), per*0.1f);	//>lift =-0.3
					//
					mat *= CreateTranslateMatrix(0.f, 0.f, 1.4f);					//raise
					mat *= CreateTranslateMatrix(0.f, 0.f, per*-1.4f);				//>raise =0					
				}
				else if(reload < 2.f) //rolls left, prepares for bolt
				{
					float per = (reload - 1.5f) / 0.5f;	
					mat *= CreateRotateMatrix(Vector3(0.f, 1.f, 0.f), 0.1f);		//roll
					mat *= CreateRotateMatrix(Vector3(0.f, -1.f, 0.f), per*0.2f);	//>roll =-0.1
					//
					mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), 0.3f);		//lift
					mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), per*0.1f);	//>lift	=-0.4
				}
				else if(reload < 2.2f) //bolt action (moves up)
				{
					float per = (reload - 2.f) / 0.2f;	
					mat *= CreateRotateMatrix(Vector3(0.f, -1.f, 0.f), 0.1f);			//roll 
					mat *= CreateRotateMatrix(Vector3(0.f, -1.f, 0.f), per*0.2f);	//>roll =-0.3
					//
					mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), 0.4f);		//lift
					mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), per*0.4f);	//>lift	=-0.8
				}
				else if(reload < 2.4f) //bolt action>original
				{
					float per = (reload - 2.2f) / 0.2f;
					mat *= CreateRotateMatrix(Vector3(0.f, -1.f, 0.f), 0.3f);		//roll 
					mat *= CreateRotateMatrix(Vector3(0.f, 1.f, 0.f), per*0.3f);	//>roll =0
					//
					mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), 0.8f);		//lift
					mat *= CreateRotateMatrix(Vector3(1.f, 0.f, 0.f), per*0.5f);	//>lift	=-0.3
				}
				else //going to original
				{
					float per = (reload - 2.4f) / 0.1f;
					mat *= CreateRotateMatrix(Vector3(-1.f, 0.f, 0.f), 0.3f);		//lift
					mat *= CreateRotateMatrix(Vector3(1.f, 0.f, 0.f), per*0.3f);	//>lift	=0
				}
			}
			/*
			Vector3 leftHando = mat * Vector3(-1.f, 8.f, 0.f); //original position
			Vector3 leftHand2 = mat * Vector3(5.f, -10.f, 4.f); //release magazine
			Vector3 leftHand3 = mat * Vector3(0.f, 8.f, -3.f);	//moves up from original postion
			Vector3 leftHand4 = mat * Vector3(0.f, 8.f, -4.f); //moves up more
			
			Vector3 rightHand2 = mat * Vector3(2.f, 0.f, 1.5f); //moves hand when removing magazine
			Vector3 rightHand3 = mat * Vector3(-1.0f, 5.f, -6.f); //moves when loading new bullet
			Vector3 rightHand4 = mat * Vector3(-1.0f, -3.f, -4.f); //moves backwards
			*/
			//GunModel
			ModelRenderParam param;
			Matrix4 weapMatrix = eyeMatrix * mat;
			
			param.matrix = weapMatrix * CreateScaleMatrix(0.5f) *
			CreateTranslateMatrix(-0.5f, 0.f, 0.f);
			param.depthHack = true;
			renderer.AddModel(gunModel, param);
			
			//GunModel_2
			param.matrix = weapMatrix * CreateScaleMatrix(0.5f) *
			CreateTranslateMatrix(0.f, 0.f, 0.f);
			param.depthHack = true;
			renderer.AddModel(gunModel2, param);
			
			//(x,y,z) (x+left/-right, y+further/-closer, z+down/-up)
			// draw sights
			Matrix4 sightMat = weapMatrix;
			
			sightMat *= CreateTranslateMatrix(0.25f/sqrt(2), 7.75f/sqrt(2), -7.6f/sqrt(2));
			sightMat *= CreateScaleMatrix(sqrt(2)/10);
			//sightMat *= CreateScaleMatrix(0.1f);
			//sightMat *= CreateRotateMatrix(Vector3(0.f, 1.f, 0.f), asin(sqrt(2)/2)); //all that time i could've just used arctangent... fk me >_<
			sightMat *= CreateRotateMatrix(Vector3(0.f, 1.f, 0.f), atan(1)); //acos((sqrt(2))/2)
			//sightMat *= CreateTranslateMatrix(0.25f, 5.f, 0.f);			
			param.matrix = sightMat;
			renderer.AddModel(sightModel1, param); // rear sight diagonal
			
			sightMat = weapMatrix;
			sightMat *= CreateTranslateMatrix(0.0f, 17.78f, -4.9f);
			sightMat *= CreateScaleMatrix(0.05f);
			param.matrix = sightMat;
			renderer.AddModel(sightModel3, param); // front pin
			
			sightMat = weapMatrix;
			sightMat *= CreateTranslateMatrix(0.025f, 5.f, -4.9f);
			sightMat *= CreateScaleMatrix(0.1f);
			param.matrix = sightMat;
			renderer.AddModel(sightModel2, param); // rear
			
			sightMat = weapMatrix;
			sightMat *= CreateTranslateMatrix(0.0f, 17.79f, -4.9f);
			sightMat *= CreateScaleMatrix(sqrt(2)/20);
			sightMat *= CreateRotateMatrix(Vector3(0.f, 1.f, 0.f), atan(1)); //acos((sqrt(2))/2)		
			param.matrix = sightMat;
			renderer.AddModel(sightModel4, param); //front diagonal
			
			// magazine/reload action
			mat *= CreateTranslateMatrix(0.f, 3.f, 1.f);
			if(reloading) 
			{
				if(reload < 0.7f)
				{
					// magazine release
					float per = reload / 0.7f;
					mat *= CreateTranslateMatrix(0.f, 0.f, per*per*50.f);
					leftHand = Mix(leftHand, leftHand2, SmoothStep(per));
					rightHand = Mix(rightHand, rightHand2, SmoothStep(per));
				}
				else if(reload < 1.5f) 												//1.4
				{
					// insert magazine
					float per = (1.5f - reload) / 0.8f;								//1.4; 0.7
					if(per < 0.3f) 
					{
						// non-smooth insertion
						per *= 4.f; 
						per -= 0.4f;
						per = Clamp(per, 0.0f, 0.3f);
					}
					mat *= CreateTranslateMatrix(0.f, 0.f, per*per*10.f);
					per = (reload - 0.7f) / 0.8f;
					leftHand = mat * Vector3(0.f, 0.f, 4.f);
					rightHand = Mix(rightHand2, rightHand, SmoothStep(per));
				}
				else if(reload < 1.9f)
				{
					// move the left hand to the original position
					// and start doing something with the "right" hand-INCORRECT
					float per = (reload - 1.5f) / 0.4f;								//1.4
					leftHand = mat * Vector3(0.f, 0.f, 4.f);
					leftHand = Mix(leftHand, leftHand3, SmoothStep(per)); //lefthand goes to original position
					rightHand = Mix(rightHand, rightHand3, SmoothStep(per));
				}
				else if(reload < 2.25f)
				{
					float per = (reload - 1.9f) / 0.35f;
					leftHand = Mix(leftHand3, leftHand4, SmoothStep(per));
					rightHand = Mix(rightHand3, rightHand4, SmoothStep(per));
				}
				else
				{
					float per = (reload - 2.2f) / 0.3f;
					leftHand = Mix(leftHand4, leftHand, SmoothStep(per)); //bring back to original position
					rightHand = Mix(rightHand4, rightHand, SmoothStep(per));
				}
			}
			
			param.matrix = eyeMatrix * mat; //* CreateScaleMatrix(0.5f);
			renderer.AddModel(magazineModel, param);
			
			LeftHandPosition = leftHand;
			RightHandPosition = rightHand;
			
			//NEW ANIMATION--------------------------------------------------------#-#-#-#-#
			//IGNORE LINES LIKE THIS - they are just comments
			//sightMat = weapMatrix;
			//sightMat *= CreateTranslateMatrix(1.f, 1.f, 1.f) * CreateScaleMatrix(0.5f);
			param.matrix = weapMatrix * CreateTranslateMatrix(-0.24f, 0.f, 0.01f) * CreateScaleMatrix(0.5f);
			param.depthHack = true;
			if(reloading) 
			{
				if(reload < 0.7f)
				{
					//magazine release - this actually does nothing,
					//but i'm afraid that removing this might break something :D
					float per = reload / 0.7f;
					//sightMat *= CreateTranslateMatrix(0.f, 0.f, 0.f);
				}
				else if(reload < 1.4f) 												//1.4
				{
					// insert magazine - does nothing
					float per = (1.4f - reload) / 0.7f;								//1.4; 0.7
					//sightMat *= CreateTranslateMatrix(0.f, 0.f, 0.f);
				}
				else if(reload < 1.9f)
				{
					// does nothing
					float per = (reload - 1.4f) / 0.5f;								//1.4
					//sightMat *= CreateTranslateMatrix(0.f, 0.f, 0.f);
				}
				else if(reload < 2.3f)
				{
					float per = (reload - 1.9f) / 0.4f;
					param.matrix *= CreateTranslateMatrix(0.f, per*-7.f, 0.f);
					//finally starts moving my WeaponMove.kv6 model
					//moves it closer to eye.
				}
				else if(reload < 2.4f)
				{
					param.matrix *= CreateTranslateMatrix(0.f, -7.f, 0.f);		
					//somehow the model resets while executing every else { },
					//so i make the game return the model to needed place
					//(with first line)
					//and THEN tell game to return it slowly to the default place 
					//(with the last line).
					float per = (reload - 2.3f) / 0.1f;
					param.matrix *= CreateTranslateMatrix(0.f, per*7.f, 0.f);
				}
			}
			
			if (ReadyState < 2.f)
			{
				if (ReadyState < 0.6f)
				{
					float per = (0.6f - ReadyState) / 0.6f;
					param.matrix *= CreateTranslateMatrix(0.f, per*-7.f, 0.f);
				}
				else if (ReadyState < 0.9f)
				{
					param.matrix *= CreateTranslateMatrix(0.f, -7.f, 0.f);
					float per = (0.9f - ReadyState) / 0.3f;
					param.matrix *= CreateTranslateMatrix(0.f, per*7.f, 0.f);
				}
			}
			
			//param.matrix = eyeMatrix * sightMat;
			renderer.AddModel(movemodel, param);
			
			//NEW ANIMATION--------------------------------------------------------#-#-#-#-#
			//WEAPON MUZZLE FLASH ANIMATION
			param.matrix = weapMatrix * CreateTranslateMatrix(-0.25f, 0.f, 0.f);
			param.depthHack = true;
			if (ReadyState < 0.25f)
			{
				param.matrix *= CreateScaleMatrix(0.5f);
				renderer.AddModel(flashmodel, param);
			}
			//else 
			//{
			//	param.matrix *= CreateScaleMatrix(0.0f);
			//}
			//param.matrix = eyeMatrix * sightMat;
			//renderer.AddModel(flashmodel, param);
		}
		
	}
	
	IWeaponSkin@ CreateViewSMGSkin(Renderer@ r, AudioDevice@ dev) {
		return ViewSMGSkin(r, dev);
	}
}



// MY OLD TRY AT ANIMATING MOVING PART
// Chameleon or aka Chameleon.hider
//
// i got 99 lil bugs in the code, take one down, path it around
// i got 117 lil bugs in the code
//
//ANIM 2
			/*if(reloading)
			{
				mat = CreateTranslateMatrix(0.0f, 0.0f, 0.0f);
				mat *= CreateTranslateMatrix(0.0f, 0.0f, -2.0f);
				//if(reload < 2.0f) //do nothing
				//{
				//	mat = CreateTranslateMatrix(0.0f, 0.0f, 0.0f);
				//}
				else if(reload < 2.2f)
				{
					float per = (reload - 2.0f) / 0.3f;
					mat *= CreateTranslateMatrix(0.f, per*per*-5.f, 0.f);
				}
				else
				{
					float per = (reload - 2.2f) / 0.3f;
					mat *= CreateTranslateMatrix(0.f, per*per*5.f, 0.f);
				}
			}*/
//
//
//
//
Rainbow_Rambo
Deuced Up
Posts: 25
Joined: Wed May 07, 2014 7:21 pm


Thank you very much! Its awesome)
FoobyDude
3 Years of Ace of Spades
3 Years of Ace of Spades
Posts: 74
Joined: Sun Apr 06, 2014 6:46 pm


Update plis? I wanna know how that revolver's comin'.
Omicronkill
Deuced Up
Posts: 87
Joined: Sat Oct 26, 2013 4:45 pm


He is stuck with animations for the moment :)
Chameleon
Modder
Modder
Posts: 601
Joined: Thu Nov 22, 2012 6:41 pm


Well I already forgot about revolver tbh.
It's been 2.5 months since active development.
142 posts Page 7 of 10 First unread post
Return to “OpenSpades MODs”

Who is online

Users browsing this forum: No registered users and 37 guests