Helló!
Valaki tudna nekem segíteni?Azt szeretném, ha nem az adminoknak hanem csak a játékosoknak cserélné le a skint a plugint előre is Köszönöm!
Kód: #include <amxmodx> #include <fakemeta> #include <hamsandwich> new const PLUGIN[] = "Admin Weapon Skins"; new const VERSION[] = "1.0"; new const AUTHOR[] = "mforce"; #define ACCESS_FLAG ADMIN_KICK const m_pPlayer = 41 const m_iId = 43 const XO_WEAPON = 4 new Trie:weaponlist #define get_weapon_owner(%1) get_pdata_cbase(%1, m_pPlayer, XO_WEAPON) #define get_weapon_id(%1) get_pdata_int(%1, m_iId, XO_WEAPON) public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR); } public plugin_precache() { weaponlist = TrieCreate() new sBuffer[256], sFile[64], sData[2][32], pFile; get_localinfo("amxx_configsdir", sFile, charsmax(sFile)); format(sFile, charsmax(sFile), "%s/admin_weapon_skins.ini", sFile); pFile = fopen(sFile, "rt"); if(pFile) { while(!feof(pFile)) { fgets(pFile, sBuffer, charsmax(sBuffer)); trim(sBuffer); if(sBuffer[0] == ';') continue; parse(sBuffer, sData[0], charsmax(sData[]), sData[1], charsmax(sData[])); if((containi(sData[0], "weapon_") != -1) && (containi(sData[1], ".mdl") != -1) && (!TrieKeyExists(weaponlist, sData[0]))) { precache_model(sData[1]) RegisterHam(Ham_Item_Deploy, sData[0], "ItemDeploy_Post", true); TrieSetString(weaponlist, sData[0], sData[1]) } } fclose(pFile); } else fprintf(pFile, ";^"weapon_ak47^" ^"models/adminskins/v_ak47.mdl^"^n"); } public ItemDeploy_Post(Ent) { if(Ent <=0) return HAM_IGNORED; new id = get_weapon_owner(Ent) if((id > 0) && (get_user_flags(id) & ACCESS_FLAG)) { new szWeapon[32], WeaponPath[32]; get_weaponname(get_weapon_id(Ent), szWeapon, charsmax(szWeapon)); TrieGetString(weaponlist, szWeapon, WeaponPath, charsmax(WeaponPath)); set_pev(id, pev_viewmodel2, WeaponPath); } return HAM_IGNORED; } public plugin_end() { TrieDestroy(weaponlist); }
|