Fixed original models not restored when using zr_human on a player.
This commit is contained in:
		| @@ -101,8 +101,19 @@ bool:ClassApplyModel(client, classindex, cachetype = ZR_CLASS_CACHE_PLAYER) | ||||
|     // Check if the user specified no change. | ||||
|     else if (strcmp(modelpath, "default", false) == 0) | ||||
|     { | ||||
|         // Don't change the model. | ||||
|         return true; | ||||
|         // Get current model. | ||||
|         GetClientModel(client, modelpath, sizeof(modelpath)); | ||||
|          | ||||
|         // Restore original model if not already set. | ||||
|         if (!StrEqual(ClassOriginalPlayerModel[client], modelpath)) | ||||
|         { | ||||
|             strcopy(modelpath, sizeof(modelpath), ClassOriginalPlayerModel[client]); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             // Wanted model is already set, don't change. | ||||
|             return true; | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     SetEntityModel(client, modelpath); | ||||
|   | ||||
| @@ -69,6 +69,10 @@ ClassOnClientDisconnect(client) | ||||
|  */ | ||||
| ClassOnClientSpawn(client) | ||||
| { | ||||
|     decl String:originalmodel[PLATFORM_MAX_PATH]; | ||||
|     decl String:steamid[16]; | ||||
|     decl String:classname[64]; | ||||
|      | ||||
|     // Check if the player is alive. | ||||
|     if (!IsPlayerAlive(client)) | ||||
|     { | ||||
| @@ -85,10 +89,12 @@ ClassOnClientSpawn(client) | ||||
|     // Reset attributes by triggering death event. | ||||
|     ClassOnClientDeath(client); | ||||
|      | ||||
|     // Cache original player model. | ||||
|     GetClientModel(client, originalmodel, sizeof(originalmodel)); | ||||
|     strcopy(ClassOriginalPlayerModel[client], PLATFORM_MAX_PATH, originalmodel); | ||||
|      | ||||
|     // Get random class setting. | ||||
|     new bool:randomclass = GetConVarBool(g_hCvarsList[CVAR_CLASSES_RANDOM]); | ||||
|  | ||||
|     decl String:steamid[16]; | ||||
|     decl String:classname[64]; | ||||
|      | ||||
|     // Assign random classes if enabled. Always do it for bots. | ||||
|     GetClientAuthString(client, steamid, sizeof(steamid)); | ||||
|   | ||||
| @@ -366,6 +366,12 @@ new bool:ClassPlayerAdminMode[MAXPLAYERS + 1]; | ||||
|  */ | ||||
| new ClassPlayerNextAdminClass[MAXPLAYERS + 1]; | ||||
|  | ||||
| /** | ||||
|  * Cache for storing original model path before applying custom models. Used | ||||
|  * when restoring to old model. | ||||
|  */ | ||||
| new String:ClassOriginalPlayerModel[MAXPLAYERS + 1][PLATFORM_MAX_PATH]; | ||||
|  | ||||
| #include "zr/playerclasses/filtertools" | ||||
| #include "zr/playerclasses/attributes" | ||||
| #include "zr/playerclasses/apply" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user