Jump to content
Vasily.B

Weapon Skin - got textures, how to set them to override the default?

Recommended Posts

Hi, i wanna make Retexture mod for RHS AK's. Already got new textures, including RVmats, but i dont know how to set them as default for the AK's. I want this mod to be external (dont touch the RHS files), and all soldiers with AK would spawn with my weapon skin as default, not skin from RHS.

I got template for UH80 reskin, modified (edition I just started) to AK, there is a lot of AK's to reskin (much wariants).
 

 

class AK reskin {

units[] = {};

weapons[] = {};

requiredVersion = 0.1;

requiredAddons[] = {"rhs_weapons"};

};

class rhs_weap_ak74m_Base_F;

class rhs_weap_ak74m: rhs_weap_ak74m_Base_F

{

_generalMacro = "B_Heli_Transport_01_F";

scope = 2;

side = 1;

faction = "BLU_F"; //Change to your faction

displayName="UH-80 Crystalhawk (Foliage)";

hiddenSelections[]= {"camo1","camo2"};

hiddenSelectionsTextures[]= {"P:\UH80\Data\crystal.paa","P:\UH80\Data\crystal_tail.paa"};

typicalCargo[] = {"B_Helipilot_F"};

availableForSupportTypes[] = {"Drop","Transport"};

};

Can anybody tel me a little of retexturing? I found lot of guides, but there are tips for changing texture via some script in the mission, i wanted my mod work automaticly (just load it in the launcher, and you will have mine textures).

Share this post


Link to post
Share on other sites

Hi,

 

You can try something like this.

 

If you want to create a new, retextured rifle.

class new_classname : rhs_weap_ak74m_Base_F{
   displayName = "A New Name";
   hiddenSelections[] = {"body"};
   hiddenSelectionsTextures[] = {"yourtexture"};  
};

or, if you want to replace the existing ak74m

class rhs_weap_ak74m_Base_F: Rifle_Base_F {
   hiddenSelections[] = {"body"};
   hiddenSelectionsTextures[] = {"yourtexture"};  
};

Share this post


Link to post
Share on other sites

 

Hi,

 

You can try something like this.

 

If you want to create a new, retextured rifle.

class new_classname : rhs_weap_ak74m_Base_F{
   displayName = "A New Name";
   hiddenSelections[] = {"body"};
   hiddenSelectionsTextures[] = {"yourtexture"};  
};

or, if you want to replace the existing ak74m

class rhs_weap_ak74m_Base_F: Rifle_Base_F {
   hiddenSelections[] = {"body"};
   hiddenSelectionsTextures[] = {"yourtexture"};  
};

Ah, ok, so there is no hidden tricks, thanks a lot, i'll try it today :)

Share this post


Link to post
Share on other sites

Here is the error
12:40:44 Error context class rhs_weap_ak74m: rhs_weap_ak74m_Base_F {
ErrorMessage: File AK\config.cpp, line 16: '/CfgWeapons.': '{' encountered instead of '='

Here is  the full config:

 

class AK {

units[] = {};

weapons[] = {};

requiredVersion = 0.1;

requiredAddons[] = {"rhs_weapons"};

};
class CfgWeapons
{
	class Rifle_Base_F;
	{
			///////////////////////////////////////////////////////AK-74M
		class rhs_weap_ak74m: rhs_weap_ak74m_Base_F {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak74m_co_paa"};  
		};
		class rhs_weap_ak74m_camo: rhs_weap_ak74m {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak74mcamo_co_paa"};
			rhs_fold="rhs_weap_ak74m_camo_folded";
			rhs_npz="rhs_weap_ak74m_camo_npz";
			baseWeapon="rhs_weap_ak74m_camo";
		};
		class rhs_weap_ak74m_desert: rhs_weap_ak74m {
			hiddenSelectionsTextures[]= {"AK/ak74mpaint_co_paa"};
			rhs_fold="rhs_weap_ak74m_desert_folded";
			rhs_npz="rhs_weap_ak74m_desert_npz";
			baseWeapon="rhs_weap_ak74m_desert";
		};
		class rhs_weap_ak74m_plummag: rhs_weap_ak74m {
			hiddenSelectionsTextures[]= {"AK/ak74m_plum_co_paa"};
			rhs_fold="rhs_weap_ak74m_plummag_folded";
			rhs_npz="rhs_weap_ak74m_plummag_npz";
			baseWeapon="rhs_weap_ak74m_plummag";
		};
		class rhs_weap_ak74m_2mag: rhs_weap_ak74m {
			hiddenSelectionsTextures[]= {"AK/ak74mcamo_co_paa"};
			rhs_npz="rhs_weap_ak74m_2mag_npz";
			baseWeapon="rhs_weap_ak74m_2mag";
		};
		class rhs_weap_ak74m_2mag_camo: rhs_weap_ak74m_2mag {
			hiddenSelectionsTextures[]= {"AK/ak74mcamo_co_paa"};
			rhs_npz="rhs_weap_ak74m_2mag_camo_npz";
			baseWeapon="rhs_weap_ak74m_2mag_camo";
		};
			///////////////////////////////////////////////////////AK-74M_NPZ
		class rhs_weap_ak74m_npz: rhs_weap_ak74m {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak74m_plum_co_paa"};
			rhs_npz="rhs_weap_ak74m";
		};
		class rhs_weap_ak74m_camo_npz: rhs_weap_ak74m_npz {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak74mcamo_co_paa"}; 
			rhs_npz="rhs_weap_ak74m_camo";
		};
		class rhs_weap_ak74m_desert_npz: rhs_weap_ak74m_npz {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak74mpaint_co_paa"}; 
			rhs_npz="rhs_weap_ak74m_desert";
			baseWeapon="rhs_weap_ak74m_desert_npz";
		};
		class rhs_weap_ak74m_plummag_npz: rhs_weap_ak74m_npz {
			rhs_npz="rhs_weap_ak74m_plummag";
			hiddenSelectionsTextures[]= {"AK/ak74m_plum_co_paa"};
			weaponInfoType="rhs_rscOptics_ak74_plummag_npz";
			baseWeapon="rhs_weap_ak74m_plummag_npz";
		};	
		class rhs_weap_ak74m_2mag_npz: rhs_weap_ak74m_2mag {
			hiddenSelectionsTextures[]= {"AK/ak74mcamo_co_paa"};
			rhs_npz="rhs_weap_ak74m_2mag";
			baseWeapon="rhs_weap_ak74m_2mag_npz";
		};
		class rhs_weap_ak74m_2mag_camo_npz: rhs_weap_ak74m_2mag_npz {
			rhs_npz="rhs_weap_ak74m_2mag_camo";
			hiddenSelectionsTextures[]= {"AK/ak74mcamo_co_paa"};
		};
			///////////////////////////////////////////////////////AK-74M_FOLDED
		class rhs_weap_ak74m_folded: rhs_weap_ak74m {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak74m_co_paa"}; 
			rhs_fold="rhs_weap_ak74m";
			baseWeapon="rhs_weap_ak74m_folded";
		};
		class rhs_weap_ak74m_camo_folded: rhs_weap_ak74m_folded {
			hiddenSelectionsTextures[]= {"AK/ak74mcamo_co_paa"};
			rhs_fold="rhs_weap_ak74m_camo";
			baseWeapon="rhs_weap_ak74m_camo_folded";
		};
		class rhs_weap_ak74m_desert_folded: rhs_weap_ak74m_folded {
			hiddenSelectionsTextures[]= {"AK/ak74mpaint_co_paa"};
			rhs_fold="rhs_weap_ak74m_desert";
			baseWeapon="rhs_weap_ak74m_desert_folded";
		};
		class rhs_weap_ak74m_plummag_folded: rhs_weap_ak74m_folded {
			hiddenSelectionsTextures[]= {"AK/ak74m_plum_co_paa"};
			rhs_fold="rhs_weap_ak74m_plummag";
			baseWeapon="rhs_weap_ak74m_plummag_folded";
		};	
			///////////////////////////////////////////////////////AK-103
		class rhs_weap_ak103_base: rhs_weap_akm {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak103_co_paa"};
			rhs_npz="rhs_weap_ak103_npz";";
		};
		class rhs_weap_ak103_npz: rhs_weap_ak103 {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak103_co_paa"};
			rhs_npz="rhs_weap_ak103";
			baseWeapon="rhs_weap_ak103_npz";
		};
		class rhs_weap_ak103_1: rhs_weap_ak103_base	{
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak103_co_paa"};
			baseWeapon="rhs_weap_ak103_1";
		};
		class rhs_weap_ak103_2: rhs_weap_ak103_base	{
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak103_co_paa"};
			baseWeapon="rhs_weap_ak103_2";
		};	
			///////////////////////////////////////////////////////AK-104
		class rhs_weap_ak104: rhs_weap_ak103_base {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak104_co_paa"};
		};
		class rhs_weap_ak104_npz: rhs_weap_ak104 {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak104_co_paa"};
			rhs_npz="rhs_weap_ak104";
			baseWeapon="rhs_weap_ak104_npz";
		};
			///////////////////////////////////////////////////////AK-105
		class rhs_weap_ak105: rhs_weap_ak74m {
			baseWeapon="rhs_weap_ak105";
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[]= {"AK/ak105_co_paa"};
		};
		class rhs_weap_ak105_npz: rhs_weap_ak105{
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK/ak105_co_paa"};
			rhs_npz="rhs_weap_ak105";
			baseWeapon="rhs_weap_ak105_npz";
		};	
	};
};	

Share this post


Link to post
Share on other sites

Sorry but addon will be canceled.
1st reason i have not much time to LEARN something that others know, but cant (dont know why) share about it.
2nd Is limited support from community, specially original weapon authors. I wasted whole day to read about it, watched guides, and few people helped me with that. This is final code:

 

class CfgPatches
{
class AK {

units[] = {};

weapons[] = {};

requiredVersion = 0.1;

requiredAddons[] = {"rhs_weapons","rhs_weapons2","rhs_c_weapons"};

};
class CfgWeapons 
{
	class Rifle_Base_F;
	class rhs_weap_ak74m_Base_F;
	class rhs_weap_akm;
	class rhs_weap_ak103;
	
		class rhs_weap_ak74m: rhs_weap_ak74m_Base_F {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74m_co.paa"};  
		};
		class rhs_weap_ak74m_camo: rhs_weap_ak74m {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74mcamo_co.paa"};
			rhs_fold="rhs_weap_ak74m_camo_folded";
			rhs_npz="rhs_weap_ak74m_camo_npz";
			baseWeapon="rhs_weap_ak74m_camo";
		};
		class rhs_weap_ak74m_desert: rhs_weap_ak74m {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[]= {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74mpaint_co.paa"};
			rhs_fold="rhs_weap_ak74m_desert_folded";
			rhs_npz="rhs_weap_ak74m_desert_npz";
			baseWeapon="rhs_weap_ak74m_desert";
		};
		class rhs_weap_ak74m_plummag: rhs_weap_ak74m {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[]= {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74m_plum_co.paa"};
			rhs_fold="rhs_weap_ak74m_plummag_folded";
			rhs_npz="rhs_weap_ak74m_plummag_npz";
			baseWeapon="rhs_weap_ak74m_plummag";
		};
		class rhs_weap_ak74m_2mag: rhs_weap_ak74m {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[]= {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74mcamo_co.paa"};
			rhs_npz="rhs_weap_ak74m_2mag_npz";
			baseWeapon="rhs_weap_ak74m_2mag";
		};
		class rhs_weap_ak74m_2mag_camo: rhs_weap_ak74m_2mag {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[]= {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74mcamo_co.paa"};
			rhs_npz="rhs_weap_ak74m_2mag_camo_npz";
			baseWeapon="rhs_weap_ak74m_2mag_camo";
		};
		class rhs_weap_ak74m_npz: rhs_weap_ak74m {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74m_plum_co.paa"};
			rhs_npz="rhs_weap_ak74m";
		};
		class rhs_weap_ak74m_camo_npz: rhs_weap_ak74m_npz {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74mcamo_co.paa"}; 
			rhs_npz="rhs_weap_ak74m_camo";
		};
		class rhs_weap_ak74m_desert_npz: rhs_weap_ak74m_npz {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74mpaint_co.paa"}; 
			rhs_npz="rhs_weap_ak74m_desert";
			baseWeapon="rhs_weap_ak74m_desert_npz";
		};
		class rhs_weap_ak74m_plummag_npz: rhs_weap_ak74m_npz {
			rhs_npz="rhs_weap_ak74m_plummag";
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[]= {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74m_plum_co.paa"};
			weaponInfoType="rhs_rscOptics_ak74_plummag_npz";
			baseWeapon="rhs_weap_ak74m_plummag_npz";
		};	
		class rhs_weap_ak74m_2mag_npz: rhs_weap_ak74m_2mag {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[]= {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74mcamo_co.paa"};
			rhs_npz="rhs_weap_ak74m_2mag";
			baseWeapon="rhs_weap_ak74m_2mag_npz";
		};
		class rhs_weap_ak74m_2mag_camo_npz: rhs_weap_ak74m_2mag_npz {
			hiddenSelections[] = {"body"};
			rhs_npz="rhs_weap_ak74m_2mag_camo";
			hiddenSelectionsTextures[]= {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74mcamo_co.paa"};
		};
		class rhs_weap_ak74m_folded: rhs_weap_ak74m {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74m_co.paa"}; 
			rhs_fold="rhs_weap_ak74m";
			baseWeapon="rhs_weap_ak74m_folded";
		};
		class rhs_weap_ak74m_camo_folded: rhs_weap_ak74m_folded {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[]= {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74mcamo_co.paa"};
			rhs_fold="rhs_weap_ak74m_camo";
			baseWeapon="rhs_weap_ak74m_camo_folded";
		};
		class rhs_weap_ak74m_desert_folded: rhs_weap_ak74m_folded {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[]= {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74mpaint_co.paa"};
			rhs_fold="rhs_weap_ak74m_desert";
			baseWeapon="rhs_weap_ak74m_desert_folded";
		};
		class rhs_weap_ak74m_plummag_folded: rhs_weap_ak74m_folded {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[]= {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak74m_plum_co.paa"};
			rhs_fold="rhs_weap_ak74m_plummag";
			baseWeapon="rhs_weap_ak74m_plummag_folded";
		};	
		class rhs_weap_ak103_base: rhs_weap_akm {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak103_co.paa"};
			rhs_npz="rhs_weap_ak103_npz";
		};
		class rhs_weap_ak103_npz: rhs_weap_ak103 {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak103_co.paa"};
			rhs_npz="rhs_weap_ak103";
			baseWeapon="rhs_weap_ak103_npz";
		};
		class rhs_weap_ak103_1: rhs_weap_ak103_base	{
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak103_co.paa"};
			baseWeapon="rhs_weap_ak103_1";
		};
		class rhs_weap_ak103_2: rhs_weap_ak103_base	{
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak103_co.paa"};
			baseWeapon="rhs_weap_ak103_2";
		};	
		class rhs_weap_ak104: rhs_weap_ak103_base {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak104_co.paa"};
		};
		class rhs_weap_ak104_npz: rhs_weap_ak104 {
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak104_co.paa"};
			rhs_npz="rhs_weap_ak104";
			baseWeapon="rhs_weap_ak104_npz";
		};
		class rhs_weap_ak105: rhs_weap_ak74m {
			baseWeapon="rhs_weap_ak105";
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[]= {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak105_co.paa"};
		};
		class rhs_weap_ak105_npz: rhs_weap_ak105{
			hiddenSelections[] = {"body"};
			hiddenSelectionsTextures[] = {"AK\XXXXXXXXXXRetexturesXXXXXXXXXX\ak105_co.paa"};
			rhs_npz="rhs_weap_ak105";
			baseWeapon="rhs_weap_ak105_npz";
		};	
	};
};	

And its not working. Anyone who knows how to fix it, feel free to do it. I'm out of ideas, used every trick that was possible and weapon textures are still default.

Share this post


Link to post
Share on other sites

Sorry but addon will be canceled.

1st reason i have not much time to LEARN something that others know, but cant (dont know why) share about it.

2nd Is limited support from community, specially original weapon authors. I wasted whole day to read about it, watched guides, and few people helped me with that. This is final code:

 

The only alternative to learning how to do it is to have someone else do it FOR YOU. Not many people have the time themselves to complete their own work, much less to do other people's work for them. Besides that, you make out that no-one was willing to help you...Myself, Artenis and Hoverguy were all pointing out what was wrong (and more importantly WHY/HOW it was wrong) so you could correct the issues, and more important still hopefully learn something.
I have spent 15 years tinkering with this game series and I'm still learning new things. If you can't handle "wasting" a single day on learning and expanding your knowledge, then modding sure as shit is not a hobby you should take up. Go back to complaining about the addons and mods people release for free, made in their free time for no compensation other than a little gratitude...
 
Also, how many freakin' threads do you need for this subject? You've created two separate threads, and even posted about it in the RHS thread. Seriously...
  • Like 3

Share this post


Link to post
Share on other sites

 

The only alternative to learning how to do it is to have someone else do it FOR YOU. Not many people have the time themselves to complete their own work, much less to do other people's work for them. Besides that, you make out that no-one was willing to help you...Myself, Artenis and Hoverguy were all pointing out what was wrong (and more importantly WHY/HOW it was wrong) so you could correct the issues, and more important still hopefully learn something.
I have spent 15 years tinkering with this game series and I'm still learning new things. If you can't handle "wasting" a single day on learning and expanding your knowledge, then modding sure as shit is not a hobby you should take up. Go back to complaining about the addons and mods people release for free, made in their free time for no compensation other than a little gratitude...
 
Also, how many freakin' threads do you need for this subject? You've created two separate threads, and even posted about it in the RHS thread. Seriously...

 

I writed about you here, read post once again. Thanks for helping. I really wanted this addon get working, as today is the only day in the week i can do things like modding. I see people have problems with this. I also no complaining, just report if i see something. No problem, i'll switch to other mod/game. I see arma community is very overrated.

Share this post


Link to post
Share on other sites

172636.gif

I still dont get what problems you all have, i gently asked for help, and now everyone plays john wayne.

Share this post


Link to post
Share on other sites

Pretty sure in order to change the texture on some RHS guns you have to just put your new custom texture where the original one was located and keep it as the same name as the RHS texture file because it only uses that one texture because its defined in the object builder or something. So unfortunately you would have to "modify" the original RHS file. 

Utter rubbish. The majority of RHS assets (including 99.9% of the weapons - could be 100%, I'm not a mathematician) are deliberately set up to utilise hiddenselections to enable people to release re-textures without having to distribute edited models, or have to repack PBOs which would be massively frowned upon by the Poly-Bully himself (as well as the community as a whole). Also, the classes Vasily is attempting to modify are setup within RHS' very own configs using hiddenselections.

  • Like 1

Share this post


Link to post
Share on other sites

Utter rubbish. The majority of RHS assets (including 99.9% of the weapons - could be 100%, I'm not a mathematician) are deliberately set up to utilise hiddenselections to enable people to release re-textures without having to distribute edited models, or have to repack PBOs which would be massively frowned upon by the Poly-Bully himself (as well as the community as a whole). Also, the classes Vasily is attempting to modify are setup within RHS' very own configs using hiddenselections.

 

Yep you are completely right that is my bad, not sure what I was thinking about then. 

Share this post


Link to post
Share on other sites

Utter rubbish. The majority of RHS assets (including 99.9% of the weapons - could be 100%, I'm not a mathematician) are deliberately set up to utilise hiddenselections to enable people to release re-textures without having to distribute edited models, or have to repack PBOs which would be massively frowned upon by the Poly-Bully himself (as well as the community as a whole). Also, the classes Vasily is attempting to modify are setup within RHS' very own configs using hiddenselections.

Problem is, this is not working. There is no error, so code is OK, but it doesnt override the textures.

Share this post


Link to post
Share on other sites

I think you're missing a link to the actual RHS model itself, you have the class names, but I'm sure they need a model within that class name too.

Share this post


Link to post
Share on other sites

I think you're missing a link to the actual RHS model itself, you have the class names, but I'm sure they need a model within that class name too.

Thanks, gonna try this evening.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×