@@ -15,6 +15,7 @@ new g_rgszDefaultPlayerModel[MAX_PLAYERS + 1][32];
1515new g_rgszCurrentPlayerModel[MAX_PLAYERS + 1 ][256 ];
1616new g_rgszCustomPlayerModel[MAX_PLAYERS + 1 ][256 ];
1717new g_rgiPlayerAnimationIndex[MAX_PLAYERS + 1 ];
18+ new bool: g_rgbPlayerUseDefaultModel[MAX_PLAYERS + 1 ];
1819
1920new Trie: g_itPlayerSequenceModelIndexes = Invalid_Trie;
2021new Trie: g_itPlayerSequences = Invalid_Trie;
@@ -46,6 +47,7 @@ public plugin_init() {
4647public plugin_natives () {
4748 register_library (" api_player_model" );
4849 register_native (" PlayerModel_Get" , " Native_GetPlayerModel" );
50+ register_native (" PlayerModel_GetCurrent" , " Native_GetCurrentPlayerModel" );
4951 register_native (" PlayerModel_Set" , " Native_SetPlayerModel" );
5052 register_native (" PlayerModel_Reset" , " Native_ResetPlayerModel" );
5153 register_native (" PlayerModel_Update" , " Native_UpdatePlayerModel" );
@@ -58,6 +60,11 @@ public Native_GetPlayerModel(iPluginId, iArgc) {
5860 set_string (2 , g_rgszCustomPlayerModel[pPlayer], get_param (3 ));
5961}
6062
63+ public Native_GetCurrentPlayerModel (iPluginId, iArgc) {
64+ new pPlayer = get_param (1 );
65+ set_string (2 , g_rgszCurrentPlayerModel[pPlayer], get_param (3 ));
66+ }
67+
6168public Native_SetPlayerModel (iPluginId, iArgc) {
6269 new pPlayer = get_param (1 );
6370 get_string (2 , g_rgszCustomPlayerModel[pPlayer], charsmax (g_rgszCustomPlayerModel[]));
@@ -156,11 +163,14 @@ public @Player_UpdateAnimationModel(this) {
156163}
157164
158165public @Player_UpdateCurrentModel (this) {
166+ g_rgbPlayerUseDefaultModel[this] = false ;
167+
159168 if (equal (g_rgszCustomPlayerModel[this], NULL_STRING)) {
160169 if (! equal (g_rgszDefaultPlayerModel[this], NULL_STRING)) {
161170 static szModel[MAX_RESOURCE_PATH_LENGTH];
162171 format (szModel, charsmax (szModel), " models/player/%s /%s .mdl" , g_rgszDefaultPlayerModel[this], g_rgszDefaultPlayerModel[this]);
163172 copy (g_rgszCurrentPlayerModel[this], charsmax (g_rgszCurrentPlayerModel[]), szModel);
173+ g_rgbPlayerUseDefaultModel[this] = true ;
164174 }
165175 } else {
166176 copy (g_rgszCurrentPlayerModel[this], charsmax (g_rgszCurrentPlayerModel[]), g_rgszCustomPlayerModel[this]);
@@ -171,9 +181,14 @@ public @Player_UpdateCurrentModel(this) {
171181
172182public @Player_UpdateModel (this) {
173183 new iAnimationIndex = g_rgiPlayerAnimationIndex[this];
174- new iModelIndex = engfunc (EngFunc_ModelIndex, g_rgszCurrentPlayerModel[this]);
175- @Player_SetModelIndex (this, iAnimationIndex ? iAnimationIndex : iModelIndex);
176- set_pev (g_pPlayerModel[this], pev_modelindex, iAnimationIndex ? iModelIndex : 0 );
184+
185+ if (! g_rgbPlayerUseDefaultModel[this] || iAnimationIndex) {
186+ new iModelIndex = engfunc (EngFunc_ModelIndex, g_rgszCurrentPlayerModel[this]);
187+ @Player_SetModelIndex (this, iAnimationIndex ? iAnimationIndex : iModelIndex);
188+ set_pev (g_pPlayerModel[this], pev_modelindex, iAnimationIndex ? iModelIndex : 0 );
189+ } else {
190+ set_pev (g_pPlayerModel[this], pev_modelindex, 0 );
191+ }
177192}
178193
179194public @Player_ResetModel (this) {
0 commit comments