PHP Kod:
#pragma semicolon 1
#include <amxmodx>
#include <reapi>
new const g_szC4Model[] = "models/eosm/v_c4eosm.mdl";
#define iPermission ADMIN_KICK
new const g_szFile[] = "addons/amxmodx/configs/SilahModelleri2.ini"; // Modeli değiştirilecek silahların bulunduğu dosya.
enum any:ModelsData
{
aWeaponCode[32],
aWeaponViewModel[MAX_FMT_LENGTH],
aWeaponPlayerModel[MAX_FMT_LENGTH]
};
new Array:g_aModels;
public plugin_init()
{
register_plugin("Change the Model for Weapons", "0.1", "` BesTCore;");
RegisterHookChain(RG_CBasePlayerWeapon_DefaultDeploy, "RG_CBasePlayerWeapon_DefaultDeploy_Pre", .post = false);
}
public plugin_precache()
{
precache_model(g_szC4Model);
g_aModels = ArrayCreate(ModelsData);
new iFile = fopen(g_szFile, "rt");
if(iFile)
{
enum _:Models
{
szWeaponCode[32],
szWeaponViewModel[MAX_FMT_LENGTH],
szWeaponPlayerModel[MAX_FMT_LENGTH]
};
new szBuffer[MAX_FMT_LENGTH],
szModels[Models],
aData[ModelsData];
while(fgets(iFile, szBuffer, charsmax(szBuffer)))
{
trim(szBuffer);
if(szBuffer[0] == EOS || szBuffer[0] == ';')
{
continue;
}
parse(szBuffer, szModels[szWeaponCode], charsmax(szModels), szModels[szWeaponViewModel], charsmax(szModels), szModels[szWeaponPlayerModel], charsmax(szModels));
copy(aData[aWeaponCode], charsmax(aData), szModels[szWeaponCode]);
copy(aData[aWeaponViewModel], charsmax(aData), szModels[szWeaponViewModel]);
copy(aData[aWeaponPlayerModel], charsmax(aData), szModels[szWeaponPlayerModel]);
ArrayPushArray(g_aModels, aData);
new iFirstLen = strlen(aData[aWeaponViewModel]), iSecondLen = strlen(aData[aWeaponPlayerModel]);
if(iFirstLen > 0)
{
precache_model(aData[aWeaponViewModel]);
}
if(iSecondLen > 0)
{
precache_model(aData[aWeaponPlayerModel]);
}
}
fclose(iFile);
}
}
public plugin_end()
{
ArrayDestroy(g_aModels);
}
public RG_CBasePlayerWeapon_DefaultDeploy_Pre(const iWeapon, szViewModel[], szWeaponModel[], iAnim, szAnimExt[], skiplocal)
{
new iWeaponIdType = get_member(iWeapon, m_iId), iSize = ArraySize(g_aModels), id = get_member(iWeapon, m_pPlayer);
if(get_member(iWeapon, m_iId) == WEAPON_C4)
{
SetHookChainArg(2, ATYPE_STRING, g_szC4Model);
}
if(~get_user_flags(id) & iPermission)
{
return;
}
for(new i = 0, aData[ModelsData]; i < iSize; i++)
{
ArrayGetArray(g_aModels, i, aData);
if(iWeaponIdType != get_weaponid(aData[aWeaponCode]))
{
continue;
}
SetHookChainArg(2, ATYPE_STRING, aData[aWeaponViewModel]);
SetHookChainArg(3, ATYPE_STRING, aData[aWeaponPlayerModel]);
break;
}
}
Bu pluginden yetkiyi kaldırabilir miyiz ? Değiştirilen tüm modellerin herkese açık olmasını istiyorum.
Yardımlarınızı rica ederim.