Chameleon.h | inactive | new mods will ship with builds
Forum rules
Release, download, and praise or criticize completed modifications. For installation and creation help, please visit the OpenSpades general discussion forum.
Release, download, and praise or criticize completed modifications. For installation and creation help, please visit the OpenSpades general discussion forum.
-
Hobo Moses
Deuced Up - Posts: 59
- Joined: Tue Aug 05, 2014 4:54 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?
>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
>"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
Have you always wanted a sound tinnitus effect in AoS?
No?
Anyway, here it is for OpenSpades!
Here's what I request:
Skins for both teams. That means you could do "humans vs. Zombies" skins. :)
Skins for both teams. That means you could do "humans vs. Zombies" skins. :)
Armory coming soon!
Impossible unless someone tells me how to compile on windows XP (some bugs will also be fixed).
Have you always wanted a sound tinnitus effect in AoS?
No?
Anyway, here it is for OpenSpades!
-
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)
Could you give AKM WITHOUT sounds? Answer please, i really like and want this weapon) Thanks)
Without sounds ...?
You can always change the sounds in OpenSpades/Resources/Sounds/Weapons/SMG/ (or make them silent etc.)
You can always change the sounds in OpenSpades/Resources/Sounds/Weapons/SMG/ (or make them silent etc.)
Have you always wanted a sound tinnitus effect in AoS?
No?
Anyway, here it is for OpenSpades!
-
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)
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)
-
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.
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)
(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);
}
}*/
//
//
//
//
Have you always wanted a sound tinnitus effect in AoS?
No?
Anyway, here it is for OpenSpades!
-
Deuced Up - Posts: 25
- Joined: Wed May 07, 2014 7:21 pm
Update plis? I wanna know how that revolver's comin'.
clik for lel:
Spoiler:
-
Omicronkill
Deuced Up - Posts: 87
- Joined: Sat Oct 26, 2013 4:45 pm
He is stuck with animations for the moment :)
Keep in mind that I'm french, so my english isn't perfect and I apologize for that.
I make MODs on OpenSpades, take a look here
Well I already forgot about revolver tbh.
It's been 2.5 months since active development.
It's been 2.5 months since active development.
Have you always wanted a sound tinnitus effect in AoS?
No?
Anyway, here it is for OpenSpades!
Who is online
Users browsing this forum: No registered users and 37 guests