1
1
using CounterStrikeSharp . API . Core ;
2
2
using CounterStrikeSharp . API . Modules . Admin ;
3
3
using CounterStrikeSharp . API ;
4
+ using Newtonsoft . Json ;
5
+ using Spawn_Loadout_GoldKingZ . Config ;
4
6
5
7
namespace Spawn_Loadout_GoldKingZ ;
6
8
7
9
public class Helper
8
10
{
11
+ public static readonly string [ ] WeaponsList =
12
+ {
13
+ "weapon_ak47" , "weapon_aug" , "weapon_awp" , "weapon_bizon" , "weapon_cz75a" , "weapon_deagle" , "weapon_elite" , "weapon_famas" , "weapon_fiveseven" , "weapon_g3sg1" , "weapon_galilar" ,
14
+ "weapon_glock" , "weapon_hkp2000" , "weapon_m249" , "weapon_m4a1" , "weapon_m4a1_silencer" , "weapon_mac10" , "weapon_mag7" , "weapon_mp5sd" , "weapon_mp7" , "weapon_mp9" , "weapon_negev" ,
15
+ "weapon_nova" , "weapon_p250" , "weapon_p90" , "weapon_revolver" , "weapon_sawedoff" , "weapon_scar20" , "weapon_sg556" , "weapon_ssg08" , "weapon_tec9" , "weapon_ump45" , "weapon_usp_silencer" , "weapon_xm1014" ,
16
+ "weapon_decoy" , "weapon_flashbang" , "weapon_hegrenade" , "weapon_incgrenade" , "weapon_molotov" , "weapon_smokegrenade" , "item_defuser" , "item_cutters" , "weapon_knife"
17
+ } ;
9
18
public static bool IsPlayerInGroupPermission ( CCSPlayerController player , string groups )
10
19
{
11
20
var excludedGroups = groups . Split ( ',' ) ;
@@ -27,15 +36,145 @@ public static bool IsPlayerInGroupPermission(CCSPlayerController player, string
27
36
28
37
public static void ClearVariables ( )
29
38
{
30
- Globals . VipsFlag . Clear ( ) ;
31
- Globals . Gived . Clear ( ) ;
32
- Globals . NadeGived . Clear ( ) ;
33
- Globals . VipGived . Clear ( ) ;
34
- Globals . VipNadeGived . Clear ( ) ;
39
+ Globals . loadoutsGivenPerPlayer . Clear ( ) ;
35
40
}
36
41
public static List < CCSPlayerController > GetAllController ( )
37
42
{
38
43
var playerList = Utilities . FindAllEntitiesByDesignerName < CCSPlayerController > ( "cs_player_controller" ) . Where ( p => p != null && p . IsValid && ! p . IsBot && ! p . IsHLTV && p . Connected == PlayerConnectedState . PlayerConnected ) . ToList ( ) ;
39
44
return playerList ;
40
45
}
46
+
47
+ public static void GiveWeaponsToPlayer ( CCSPlayerController player , string weapons )
48
+ {
49
+ if ( player != null && player . IsValid )
50
+ {
51
+ string [ ] weaponList = weapons . Split ( ',' ) ;
52
+ foreach ( var weapon in weaponList )
53
+ {
54
+ Configs . Shared . CustomFunctions ! . PlayerGiveNamedItem ( player , weapon ) ;
55
+
56
+ foreach ( var entity in Utilities . FindAllEntitiesByDesignerName < CBaseEntity > ( weapon ) )
57
+ {
58
+ if ( entity . DesignerName != weapon ) continue ;
59
+ if ( entity == null ) continue ;
60
+ if ( entity . Entity == null ) continue ;
61
+ if ( entity . OwnerEntity == null ) continue ;
62
+ if ( entity . OwnerEntity . IsValid ) continue ;
63
+
64
+ entity . AcceptInput ( "Kill" ) ;
65
+ break ;
66
+ }
67
+ }
68
+ }
69
+ }
70
+
71
+ public static void ClearGroundWeapons ( )
72
+ {
73
+ foreach ( string Weapons in WeaponsList )
74
+ {
75
+ foreach ( var entity in Utilities . FindAllEntitiesByDesignerName < CBaseEntity > ( Weapons ) )
76
+ {
77
+ if ( entity == null ) continue ;
78
+ if ( entity . Entity == null ) continue ;
79
+ if ( entity . OwnerEntity == null ) continue ;
80
+ if ( entity . OwnerEntity . IsValid ) continue ;
81
+
82
+ entity . AcceptInput ( "Kill" ) ;
83
+ }
84
+ }
85
+ }
86
+
87
+ public static void DropAllWeapons ( CCSPlayerController player )
88
+ {
89
+ if ( player == null || ! player . IsValid ) return ;
90
+ if ( player . PlayerPawn == null || ! player . PlayerPawn . IsValid ) return ;
91
+ if ( ! player . PawnIsAlive ) return ;
92
+ if ( player . PlayerPawn . Value == null || ! player . PlayerPawn . Value . IsValid ) return ;
93
+ if ( player . PlayerPawn . Value . WeaponServices == null || player . PlayerPawn . Value . WeaponServices . MyWeapons == null ) return ;
94
+
95
+ foreach ( var weapon in player . PlayerPawn . Value . WeaponServices . MyWeapons )
96
+ {
97
+ if ( weapon is { IsValid : true , Value . IsValid : true } && ! weapon . Value . DesignerName . Contains ( "weapon_knife" ) )
98
+ {
99
+ player . DropActiveWeapon ( ) ;
100
+
101
+ weapon . Value . Remove ( ) ;
102
+ }
103
+ }
104
+
105
+ }
106
+ public static void CreateDefaultWeaponsJson ( )
107
+ {
108
+ if ( Configs . Shared . CookiesModule == null ) return ;
109
+ var FolderConfig = Path . Combine ( Configs . Shared . CookiesModule , "../../plugins/Spawn-Loadout-GoldKingZ/config/" ) ;
110
+ var configcfg = Path . Combine ( FolderConfig , "weapons.json" ) ;
111
+
112
+ if ( ! Directory . Exists ( FolderConfig ) || ! File . Exists ( configcfg ) )
113
+ {
114
+ if ( ! Directory . Exists ( FolderConfig ) )
115
+ {
116
+ Directory . CreateDirectory ( FolderConfig ) ;
117
+ }
118
+
119
+ var weaponsData = new
120
+ {
121
+ ANY = new
122
+ {
123
+ LOADOUT_1 = new
124
+ {
125
+ FLAGS = "@css/root,@css/admin,@css/vip,#css/admin,#css/vip" ,
126
+ CT = "weapon_taser,weapon_decoy" ,
127
+ T = "weapon_taser,weapon_decoy" ,
128
+ CT_Refill_Nades = "weapon_decoy" ,
129
+ CT_Refill_Time_InSec = 30 ,
130
+ T_Refill_Nades = "weapon_decoy" ,
131
+ T_Refill_Time_InSec = 30
132
+ } ,
133
+ LOADOUT_2 = new
134
+ {
135
+ GiveThisLoadOutPerRoundOnly = true ,
136
+ CT = "weapon_hkp2000,weapon_knife,weapon_smokegrenade" ,
137
+ T = "weapon_hkp2000,weapon_knife,weapon_smokegrenade"
138
+ }
139
+ } ,
140
+ hns_ = new
141
+ {
142
+ LOADOUT_1 = new
143
+ {
144
+ FLAGS = "@css/root,@css/admin,@css/vip,#css/admin,#css/vip" ,
145
+ CT_Refill_Nades = "weapon_decoy" ,
146
+ CT_Refill_Time_InSec = 30 ,
147
+ T_Refill_Nades = "weapon_decoy" ,
148
+ T_Refill_Time_InSec = 30
149
+ } ,
150
+ LOADOUT_2 = new
151
+ {
152
+ GiveThisLoadOutPerRoundOnly = true ,
153
+ CT = "weapon_decoy,weapon_knife" ,
154
+ T = "weapon_decoy,weapon_knife"
155
+ }
156
+ } ,
157
+ awp_lego_2_cs2 = new
158
+ {
159
+ ForceStripPlayers = true ,
160
+ DeleteGroundWeapons = true ,
161
+ LOADOUT_1 = new
162
+ {
163
+ FLAGS = "@css/root,@css/admin,@css/vip,#css/admin,#css/vip" ,
164
+ CT = "weapon_deagle" ,
165
+ T = "weapon_deagle"
166
+ } ,
167
+ LOADOUT_2 = new
168
+ {
169
+ CT = "weapon_awp,weapon_knife" ,
170
+ T = "weapon_awp,weapon_knife"
171
+ }
172
+ }
173
+ } ;
174
+
175
+ var jsonContent = JsonConvert . SerializeObject ( weaponsData , Formatting . Indented ) ;
176
+
177
+ File . WriteAllText ( configcfg , jsonContent ) ;
178
+ }
179
+ }
41
180
}
0 commit comments