hlmod.hu
https://hlmod.hu/

ReAPI - Admin Models
https://hlmod.hu/viewtopic.php?f=134&t=27894
Oldal: 1 / 1

Szerző:  kengurumancs [ 2017.07.05. 12:08 ]
Hozzászólás témája:  ReAPI - Admin Models

ReAPI - Admin Models
0.0.2


Leírás:
A plugin segítségével játékos kinézetet tudok adni jogokra.



Beállítások:
  1. "models/player/%s/%s.mdl"  // a mappának és a model névnek, meg kell egyeznie.
  2.  
  3. "Terrorist Model" "Counter-Terrorist Model" "Jog"   // így lehet még modelt hozzáírni.
  4.  
  5. Jelenleg ezek vannak:
  6. { "snowleet", "lolgign", ADMIN_BAN },
  7. { "viptt", "vipct", ADMIN_LEVEL_H },
  8. { "bomjtt", "bomjct", ADMIN_ALL },


Letöltés:
Rejtett tartalom
A tartalom csak bejelentkezett felhasználók részére látható.


Telepítés:
Fordításhoz ReAPI.inc szükséges!
Rejtett tartalom
A tartalom csak bejelentkezett felhasználók részére látható.

Amxx fájl a plugins mappába, majd a plugin nevét a plugins.ini-be írd be!
Sma-t scripting mappába. (nem szükséges)



Kompatibilis:
Amx Mod X 1.8.2(Re) Amx Mod X 1.8.3-dev


► Spoiler mutatása

Szerző:  theglorious [ 2017.07.28. 21:02 ]
Hozzászólás témája:  Re: ReAPI - Admin Models

Mivel nem letölthető, ezért itt a kód:
  1. #include <amxmodx>
  2. #include <reapi>
  3.  
  4. enum player_models { szTTModel[64], szCTModel[64], iFlag }
  5.  
  6. #define SET_MODELINDEX
  7. #define MAX_MODEL_PATH_LEN     128
  8.  
  9. /// FORMAT: "Terrorist Model" "Counter-Terrorist Model"  "Access Flag"
  10.  
  11. new const g_eModelsData[][player_models] =
  12. {
  13.     { "snowleet", "lolgign", ADMIN_LEVEL_B },
  14.     { "viptt", "vipct", ADMIN_LEVEL_H },
  15.     { "bomjtt", "bomjct", ADMIN_ALL },
  16.  
  17.     {"", "", -1}
  18. }
  19.  
  20. #define IsValidArrayIndex(%1)         (0 <= %1 <= sizeof(g_eModelsData)-1)
  21.  
  22. #if defined SET_MODELINDEX
  23.     new g_iTTModelIndex[sizeof(g_eModelsData)], g_iCTModelIndex[sizeof(g_eModelsData)]
  24. #endif
  25.  
  26.  
  27. public plugin_precache()
  28. {
  29.     if(g_eModelsData[0][iFlag] == -1)
  30.     {
  31.         set_fail_state("Array g_eModelsData are empty!")
  32.         return
  33.     }
  34.  
  35.     for(new i = 0; i < sizeof(g_eModelsData)-1; i++)
  36.     {
  37.     #if defined SET_MODELINDEX
  38.         g_iTTModelIndex[i] = precache_player_model(g_eModelsData[i][szTTModel])
  39.         g_iCTModelIndex[i] = precache_player_model(g_eModelsData[i][szCTModel])
  40.     #else
  41.         precache_player_model(g_eModelsData[i][szTTModel])
  42.         precache_player_model(g_eModelsData[i][szCTModel])
  43.     #endif
  44.     }
  45. }
  46.  
  47. public plugin_init()
  48. {
  49.     register_plugin("[ReAPI] Admin Models", "0.0.2", "Vaqtincha")
  50.  
  51.     RegisterHookChain(RG_CBasePlayer_SetClientUserInfoModel, "SetClientUserInfoModel", .post = false)
  52. }
  53.  
  54.  
  55. public SetClientUserInfoModel(const pPlayer, infobuffer[], szNewModel[])
  56. {
  57.     new iArrayIndex = get_user_model_by_flag(get_user_flags(pPlayer))
  58.  
  59.     if(!IsValidArrayIndex(iArrayIndex))
  60.         return HC_CONTINUE
  61.  
  62.     switch(get_member(pPlayer, m_iTeam))
  63.     {
  64.         case TEAM_TERRORIST: {
  65.         #if defined SET_MODELINDEX
  66.             set_member(pPlayer, m_modelIndexPlayer, g_iTTModelIndex[iArrayIndex])
  67.         #endif
  68.             SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szTTModel])
  69.         }
  70.         case TEAM_CT: {
  71.         #if defined SET_MODELINDEX
  72.             set_member(pPlayer, m_modelIndexPlayer, g_iCTModelIndex[iArrayIndex])
  73.         #endif
  74.             SetHookChainArg(3, ATYPE_STRING, g_eModelsData[iArrayIndex][szCTModel])
  75.         }
  76.         default: return HC_CONTINUE
  77.     }
  78.  
  79.     return HC_CONTINUE
  80. }
  81.  
  82.  
  83. get_user_model_by_flag(const iUserFlags)
  84. {
  85.     const INVALID_INDEX = -1
  86.  
  87.     for(new i = 0; i < sizeof(g_eModelsData)-1; i++)
  88.     {
  89.         if(iUserFlags & g_eModelsData[i][iFlag] || g_eModelsData[i][iFlag] == ADMIN_ALL)
  90.             return i
  91.     }
  92.  
  93.     return INVALID_INDEX // non admin player
  94. }
  95.  
  96. precache_player_model(const szModel[])
  97. {
  98.     new szFileToPrecache[MAX_MODEL_PATH_LEN], szErrMsg[MAX_MODEL_PATH_LEN + 64]
  99.  
  100.     formatex(szFileToPrecache, charsmax(szFileToPrecache), "models/player/%s/%s.mdl", szModel, szModel)
  101.  
  102.     if(!file_exists(szFileToPrecache))
  103.     {
  104.         formatex(szErrMsg, charsmax(szErrMsg), "[Admin Models] ERROR: Model ^"%s^" not found!", szFileToPrecache)
  105.         set_fail_state(szErrMsg)
  106.         return 0
  107.     }
  108.  
  109.     return precache_model(szFileToPrecache)
  110. }

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/