Иконка ресурса

[VIP] Weapons Modifier 2.0

Kruzya

Участник
Сообщения
12,970
Реакции
10,920
  • Команда форума
  • Автор ресурса
  • #1
Пользователь CrazyHackGUT разместил новый ресурс:

[VIP] Weapons Modifier - Небольшой набор визуальных улучшений для VIP-игроков

Добавляет три возможных варианта модификации оружия VIP-игроков.
  • Оружие из Австралия. Если оружие поддерживает режим Австралиевского скина, то оно будет перекрашено в золотой вариант. По умолчанию, поддерживаются следующие оружия:
    • Разведчик
      • Обрез
    • Солдат
      • Ракетомёт
      • Чёрный ящик
    • Поджигатель
      • Огнемёт
      • Огнетопор
    • Подрывник
      • ...

Узнать больше об этом ресурсе...
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #2
@CrazyHackGUT,
PHP:
VIP_GetClientFeatureStatus(iClient, szFeaturesNames[1]) == ENABLED
Для более простой и быстрой проверки есть натив VIP_IsClientFeatureUse(iClient, szFeaturesNames[1])

PHP:
 bool bState = (EOldStatus  == DISABLED) ? true : false;
Тут лучше сделать так:

PHP:
 bool bState = (ENewStatus == ENABLED) ? true : false;
т.к. старым статусом может быть NO_ACCESS ( при входе игрока)

PHP:
  int iPrimary    = GetPlayerWeaponSlot(iClient, TFWeaponSlot_Primary);
    int iSecondary  = GetPlayerWeaponSlot(iClient, TFWeaponSlot_Secondary);
    int iMelee      = GetPlayerWeaponSlot(iClient, TFWeaponSlot_Melee);
   
    if (iPrimary > MaxClients && IsValidEntity(iPrimary))
        ChangeGoldStatuesAttributes(iPrimary, bEnable);
   
    if (iSecondary > MaxClients && IsValidEntity(iSecondary))
        ChangeGoldStatuesAttributes(iSecondary, bEnable);
   
    if (iMelee > MaxClients && IsValidEntity(iMelee))
        ChangeGoldStatuesAttributes(iMelee, bEnable);
Сделай циклом.

Твоя ошибка заключается вот тут:
PHP:
public void Event_PlayerSpawn(Handle event, const char[] name, bool dontBroadcast) {
    if (!VIP_IsVIPLoaded())
        return;

    VIP_OnPlayerSpawn(VIP_IsClientVIP(GetClientOfUserId(GetEventInt(event, "userid"))), -1, true);
}

public int VIP_OnPlayerSpawn(int iClient, int iTeam, bool bIsVIP) {
    if (bIsVIP) {
        if (VIP_GetClientFeatureStatus(iClient, szFeaturesNames[0]) != NO_ACCESS)
            ChangeAustraliumState(iClient, ((VIP_GetClientFeatureStatus(iClient, szFeaturesNames[0]) == ENABLED) ? true : false));
       
        if (VIP_GetClientFeatureStatus(iClient, szFeaturesNames[1]) != NO_ACCESS)
            ChangeInspectState(iClient, ((VIP_GetClientFeatureStatus(iClient, szFeaturesNames[1]) == ENABLED) ? true : false));
       
        if (VIP_GetClientFeatureStatus(iClient, szFeaturesNames[2]) != NO_ACCESS)
            ChangeGoldStatuesState(iClient, ((VIP_GetClientFeatureStatus(iClient, szFeaturesNames[1]) == ENABLED) ? true : false));
    }
}

VIP_OnPlayerSpawn Это player_spawn с задержкой. В Tf2 его видимо нет, потому сделай просто вот так:
PHP:
public void Event_PlayerSpawn(Handle event, const char[] name, bool dontBroadcast) {
    int iClient = GetClientOfUserId(GetEventInt(event, "userid"));
    if (VIP_IsClientVIP(iClient)) {
        if (VIP_IsClientFeatureUse(iClient, szFeaturesNames[0]))
            ChangeAustraliumState(iClient, true);
       
        if (VIP_IsClientFeatureUse(iClient, szFeaturesNames[1]))
            ChangeInspectState(iClient, true);
       
        if (VIP_IsClientFeatureUse(iClient, szFeaturesNames[2]))
            ChangeGoldStatuesState(iClient, true);
    }
}
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,920
  • Команда форума
  • Автор ресурса
  • #3
VIP_OnPlayerSpawn Это player_spawn с задержкой. В Tf2 его видимо нет
Нет, он есть, просто есть ещё эвент post_inventory_application, который вызывается, когда игрок использует шкафчик с патронами и т.д.. При вызове этого эвента, у игрока пересоздаются оружия, если они были изменены по дефолту, и, соответственно, требуется ещё обрабатывать этот эвент.
И ещё вопросик, если не против. VIP_OnPlayerSpawn() вызывается при смене класса игроком (эвент player_changeclass)?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
VIP_OnPlayerSpawn() вызывается при смене класса игроком (эвент player_changeclass)?
он вызывается только при player_spawn.
@CrazyHackGUT, тогда уж так:
PHP:
public void Event_PlayerSpawn(Handle event, const char[] name, bool dontBroadcast) {
    int iClient = GetClientOfUserId(GetEventInt(event, "userid"));
    VIP_OnPlayerSpawn(iClient, GetClientTeam(iClient), VIP_IsClientVIP(iClient));
}

public int VIP_OnPlayerSpawn(int iClient, int iTeam, bool bIsVIP) {
    if (bIsVIP) {
        if (VIP_IsClientFeatureUse(iClient, szFeaturesNames[0]))
            ChangeAustraliumState(iClient, true);
       
        if (VIP_IsClientFeatureUse(iClient, szFeaturesNames[1]))
            ChangeInspectState(iClient, true);
       
        if (VIP_IsClientFeatureUse(iClient, szFeaturesNames[2]))
            ChangeGoldStatuesState(iClient, true);
    }
}
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,920
  • Команда форума
  • Автор ресурса
  • #5
Пользователь CrazyHackGUT обновил ресурс [VIP] Weapons Modifier новой записью:

Оптимизация

  • Произведена оптимизация кода (спасибо @R1KO).
  • Убрана сковорода из исходника (по некоторым причинам, невозможно заменять обычную сковороду на золотую).
  • Добавлена обработка события смены класса.

Узнать больше об этом обновлении...
 
  • Мне нравится
Реакции: R1KO

Jugheadbomb

CTFPlayer
Сообщения
168
Реакции
24
@Kr1kuzya, может обновишь плагин? Убери осмотр оружия, думаю сам знаешь почему.
В обнове 21 октября добавили осмотр всех оружий.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,920
  • Команда форума
  • Автор ресурса
  • #7
@-JUGHEAD, в курсе.
У меня два варианта для "обновления" плагина по этому поводу:
  1. Отжать у не VIP игроков возможность осматривать оружие Оффтоп
  2. Просто вырезать эту функцию)
 

Jugheadbomb

CTFPlayer
Сообщения
168
Реакции
24
@Kr1kuzya, 2 вариант, имхо не каждому понравится лишняя функция, мне лично нужны золотые оружия и трупы, а осмотр все таки вырезать нужно
Оффтоп
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,920
  • Команда форума
  • Автор ресурса
  • #9

Kruzya

Участник
Сообщения
12,970
Реакции
10,920
  • Команда форума
  • Автор ресурса
  • #10

Jugheadbomb

CTFPlayer
Сообщения
168
Реакции
24
@Kr1kuzya , можешь сделать подобное, пожалуйста, только через флаг/команду?(без вип ядра), можно даже шоп модуль, если можешь.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,920
  • Команда форума
  • Автор ресурса
  • #12
@-JUGHEAD, отвязал от ядра.
Weapons Modifier
Флаги (если надо) повесишь через оверрайды.
Для Шопа позже.
 

Похожие темы

  • Закрыта
  • Закреплено
Ответы
36
Просмотры
26К
Сверху Снизу