Дичь какая то...
Зачем делать это:
Format(CfgFile, sizeof(CfgFile), "sourcemod/%s.cfg", CFG_NAME);
LoadCfg();
void LoadCfg()
{
AutoExecConfig(true, CFG_NAME);
}
Когда можно просто так:
AutoExecConfig(true, "Modify_Weapon_Damage");
Зачем делать цикл, к тому же неправильно написанный в OnPluginStart, если уже есть хук на OnClientPutInServer?
Непонятно зачем такая проверка:
if (!attacker || attacker > MaxClients || !IsClientInGame(attacker))
{
return Plugin_Continue;
}
Почему старый синтаксис?
public Plugin:myinfo =
И с какого перепугу один квар объявлен хендлом, а второй конваром?
ConVar g_damage;
Handle g_modifyw;
Вместо
StrContains используй
StrEqual в данном случае лучше
Почему у этих двух переменных разный размер, когда они хранят одну и туже строку?
char sWeapon[32],hostname_name[128];
Если бы не было написано, что плагин меняет урон, то я бы увидев скриншоты так и не понял что делает плагин, потому что там нет явной демонстрации работы
Я бы вместо конфига сделал через ключи и добавил возможность менять урон не только на одном оружии но и нескольких, вплоть до всех