55#pragma semicolon 1
66#pragma newdecls required
77
8- Handle forwardHandle ;
8+ Handle armsHandle ;
9+ Handle modelHandle ;
910
1011char defaultArms [][] = { " models/weapons/ct_arms.mdl" , " models/weapons/t_arms.mdl" };
1112char defaultModels [][] = { " models/player/ctm_fbi.mdl" , " models/player/tm_phoenix.mdl" };
@@ -27,7 +28,8 @@ public void OnMapStart() {
2728public void OnPluginStart () {
2829
2930 RegPluginLibrary (" n_arms_fix" );
30- forwardHandle = CreateGlobalForward (" ArmsFix_OnArmsSet" , ET_Ignore , Param_Cell );
31+ armsHandle = CreateGlobalForward (" ArmsFix_OnArmsSafe" , ET_Ignore , Param_Cell );
32+ modelHandle = CreateGlobalForward (" ArmsFix_OnModelSafe" , ET_Ignore , Param_Cell );
3133
3234 HookEvent (" player_spawn" , Event_Spawn , EventHookMode_Post );
3335}
@@ -68,15 +70,34 @@ public Action Event_Spawn(Event event, const char[] name, bool dontBroadcast) {
6870 SetEntPropString (client , Prop_Send , " m_szArmsModel" , defaultArms [0 ]);
6971 }
7072
71- CallArmsForward ( client );
73+ CreateTimer ( 0.2 , Timer_CallForward , GetClientUserId ( client ), TIMER_FLAG_NO_MAPCHANGE );
7274 }
7375
7476 return Plugin_Continue ;
7577}
7678
77- void CallArmsForward (int client )
78- {
79- Call_StartForward (forwardHandle );
79+
80+ public Action Timer_CallForward (Handle timer , int userid ) {
81+
82+ CallArmsForward (GetClientOfUserId (userid ));
83+ CreateTimer (0.0 , Timer_CallModelForward , userid , TIMER_FLAG_NO_MAPCHANGE );
84+ }
85+
86+ public Action Timer_CallModelForward (Handle timer , int userid ) {
87+
88+ CallModelForward (GetClientOfUserId (userid ));
89+ }
90+
91+ void CallModelForward (int client ) {
92+
93+ Call_StartForward (modelHandle );
94+ Call_PushCell (client );
95+ Call_Finish ();
96+ }
97+
98+ void CallArmsForward (int client ) {
99+
100+ Call_StartForward (armsHandle );
80101 Call_PushCell (client );
81102 Call_Finish ();
82103}
0 commit comments