[SWGM] VIP

Seconds

Участник
Сообщения
19
Реакции
1
Я ни черта не понял. Может оно и к лучшему.

Возможно тебе нужен фикс SWGM_VIP под Keys VIP.

Вряд ли будет работать, либо будет работать не так, либо еще что-то. Еще не разобрался с ключами.

В vip_modules.phrases.txt:

C-подобный:
    "SWGM_VIP_Keys_Warn"
    {
        "ru"            "Сначала купите VIP."
    }
Не компилится:

// SWGM_VIP.sp(42) : error 092: number of arguments does not match definition
// SWGM_VIP.sp(51) : error 092: number of arguments does not match definition
 

Dreizehnt

Доминик
Сообщения
1,160
Реакции
798
@Someone, если не занят, можешь посмотреть?) Вывод на сайт, обязательно ставить тег, чтобы получить VIP:
PHP:
#pragma semicolon 1

#include <vip_core>
#include <cstrike>
#include <swgm>

public Plugin myinfo =
{
    name = "[SWGM] VIP",
    author = "Someone",
    description = "Выдача VIP-статуса для игроков, состоящих в Steam группе.",
    version = "1.4 MySQL TAG",
    url = "http://hlmod.ru"
};

ConVar CVAR;

char g_VIPTAGGroup[32];

bool g_bVIP[MAXPLAYERS+1];

public void OnPluginStart()
{
   
    (CVAR = CreateConVar("sm_swgm_vip_tag_group",        "vip2",        "VIP группа для игроковс тэгом.")).AddChangeHook(ChangeCvar_TagGroup);
    CVAR.GetString(g_VIPTAGGroup, sizeof(g_VIPTAGGroup));
   
    AutoExecConfig(true, "swgm_vip");
}

public void ChangeCvar_TagGroup(ConVar convar, const char[] oldValue, const char[] newValue)
{
    convar.GetString(g_VIPTAGGroup, sizeof(g_VIPTAGGroup));
}

public void OnClientSettingsChanged(int iClient)
{
    if(IsClientInGame(iClient) && VIP_IsClientVIP(iClient) && g_bVIP[iClient])
    {
        char sTag[64];
        CS_GetClientClanTag(iClient, sTag, sizeof(sTag));
       
        if(!StrEqual(sTag, g_VIPTAGGroup))
        {
            VIP_RemoveClientVIP(iClient, false, false);
            VIP_PrintToChatClient(iClient, "%t", "SWGM_VIP_Change");
        }
    }

}

public int VIP_OnClientLoaded(int iClient, bool bIsVIP)
{
    g_bVIP[iClient] = false;
    if(!IsFakeClient(iClient) && !bIsVIP && SWGM_InGroup(iClient))
    {
        char sTag[64];
        CS_GetClientClanTag(iClient, sTag, sizeof(sTag));
       
        if(StrEqual(sTag, g_VIPTAGGroup))
        {
            VIP_SetClientVIP(iClient, 0, _, g_VIPTAGGroup, false);
        }
       
        g_bVIP[iClient] = true;
    }
}

public void SWGM_OnJoinGroup(int iClient, bool IsOfficer)
{
    if(!VIP_IsClientVIP(iClient))
    {
        char sTag[64];
        CS_GetClientClanTag(iClient, sTag, sizeof(sTag));
       
        if(StrEqual(sTag, g_VIPTAGGroup))
        {
            VIP_SetClientVIP(iClient, 0, _, g_VIPTAGGroup, true);
        }
       
        g_bVIP[iClient] = true;
        VIP_PrintToChatClient(iClient, "%t", "SWGM_VIP_Give");
    }
}

public void SWGM_OnLeaveGroup(int iClient)
{
    if(VIP_IsClientVIP(iClient) && g_bVIP[iClient])
    {
        g_bVIP[iClient] = false;
        VIP_RemoveClientVIP(iClient, false, true);
        VIP_PrintToChatClient(iClient, "%t", "SWGM_VIP_Take");
    }
}
 
Последнее редактирование:

Dreizehnt

Доминик
Сообщения
1,160
Реакции
798
@Someone, фразы верные или не совсем?
C-подобный:
    "SWGM_VIP_Give"
    {
        "en"            "You got VIP because you join our Steam group."
        "ru"            "Вы получили премиум за вступление в нашу Steam-группу."
    }
    "SWGM_VIP_Take"
    {
        "en"            "You lost VIP because you leave our Steam group."
        "ru"            "Вы потеряли премиум, потому что вышли из нашей Steam-группы."
    }
    "SWGM_VIP_Keys_Warn"
    {
        "ru"            "Сначала приобретите премиум."
    }
    "SWGM_VIP_Change"
    {
        "ru"            "Ваша группа премиума была снята из-за смены префикса в ТАБе."
    }

C-подобный:
L 06/15/2017 - 15:07:21: [SM] Exception reported: Language phrase "SWGM_VIP_Give" not found (arg 4)
L 06/15/2017 - 15:07:21: [SM] Blaming: vip/VIP_Core.smx
L 06/15/2017 - 15:07:21: [SM] Call stack trace:
L 06/15/2017 - 15:07:21: [SM]   [0] FormatNativeString
L 06/15/2017 - 15:07:21: [SM]   [1] Line 107, vip/natives.sp::Native_PrintToChatClient
L 06/15/2017 - 15:07:21: [SM]   [3] VIP_PrintToChatClient
L 06/15/2017 - 15:07:21: [SM]   [4] Line 89, D:\Program Files (x86)\HL_compiler\addons\sourcemod\scripting\SWGM_VIP_Edit_2.sp::SWGM_OnJoinGroup
L 06/15/2017 - 15:07:21: [SM]   [6] Call_Finish
L 06/15/2017 - 15:07:21: [SM]   [7] Line 247, C:\csgo\1.7\addons\sourcemod\scripting\1.8\SWGM.sp::Forward_OnJoinCheck
L 06/15/2017 - 15:07:21: [SM]   [8] Line 174, C:\csgo\1.7\addons\sourcemod\scripting\1.8\SWGM.sp::SteamWorks_OnClientGroupStatus
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
@Dreizehnt,
@Someone, фразы верные или не совсем?
C-подобный:
    "SWGM_VIP_Give"
    {
        "en"            "You got VIP because you join our Steam group."
        "ru"            "Вы получили премиум за вступление в нашу Steam-группу."
    }
    "SWGM_VIP_Take"
    {
        "en"            "You lost VIP because you leave our Steam group."
        "ru"            "Вы потеряли премиум, потому что вышли из нашей Steam-группы."
    }
    "SWGM_VIP_Keys_Warn"
    {
        "ru"            "Сначала приобретите премиум."
    }
    "SWGM_VIP_Change"
    {
        "ru"            "Ваша группа премиума была снята из-за смены префикса в ТАБе."
    }

C-подобный:
L 06/15/2017 - 15:07:21: [SM] Exception reported: Language phrase "SWGM_VIP_Give" not found (arg 4)
L 06/15/2017 - 15:07:21: [SM] Blaming: vip/VIP_Core.smx
L 06/15/2017 - 15:07:21: [SM] Call stack trace:
L 06/15/2017 - 15:07:21: [SM]   [0] FormatNativeString
L 06/15/2017 - 15:07:21: [SM]   [1] Line 107, vip/natives.sp::Native_PrintToChatClient
L 06/15/2017 - 15:07:21: [SM]   [3] VIP_PrintToChatClient
L 06/15/2017 - 15:07:21: [SM]   [4] Line 89, D:\Program Files (x86)\HL_compiler\addons\sourcemod\scripting\SWGM_VIP_Edit_2.sp::SWGM_OnJoinGroup
L 06/15/2017 - 15:07:21: [SM]   [6] Call_Finish
L 06/15/2017 - 15:07:21: [SM]   [7] Line 247, C:\csgo\1.7\addons\sourcemod\scripting\1.8\SWGM.sp::Forward_OnJoinCheck
L 06/15/2017 - 15:07:21: [SM]   [8] Line 174, C:\csgo\1.7\addons\sourcemod\scripting\1.8\SWGM.sp::SteamWorks_OnClientGroupStatus
Кто плагин до меня редактировал ?

Там в OnPluginStart() впихни:

PHP:
LoadTranslations("vip_modules.phrases");
 

Dreizehnt

Доминик
Сообщения
1,160
Реакции
798
@Someone, сейчас поставлю... тот что я кодом скидывал, это версия tag с вырванной обычной группой vip1, - это я пытался :D Просто vip1 не нужна, а плагин её будет давать за вступление... хотел чтоб условием получения помимо вступления был и тег, снял тег = снял премиум.
--- Добавлено позже ---
@Someone, не выдаёт по тегу, главное сообщает что выдал, но VIP нет :( Нет ли тут проблемы с ядром? - один игрок на рабочей версии тоже сказал что он в группе, но не выдало.
--- Добавлено позже ---
Иногда прошибает выданый VIP ранее, меняет на тот что идёт бонусом от группы Steam, в логах ничего особенного... Но SWGM начисляет всем и успевает применить как я понял выданный ранее VIP, с флагами думаю годное решение, которое было в обсуждении, чтобы админов не касалось хотя бы или как-то вести проверку на наличие...
PHP:
L 06/16/2017 - 01:02:31: [vip/VIP_Core.smx] Администратор Console<0><Console><Console> добавил премиум-идентификатор СТИ_ИД_МОЙ (Срок: 20:03, Истекает: 16/06/2017 - 01:22, Группа: Prem_BONUS)
L 06/16/2017 - 01:22:50: [vip/VIP_Core.smx] Права премиум-игрока ИГРОК<260><СТИ_ИД_МОЙ><> истекли, удаление игрока...
L 06/16/2017 - 02:19:55: [vip/VIP_Core.smx] Администратор Console<0><Console><Console> добавил премиум-идентификатор СТИ_ИД_МОЙ (Срок: 20:03, Истекает: 16/06/2017 - 02:39, Группа: Prem_BONUS)
L 06/16/2017 - 02:40:19: [vip/VIP_Core.smx] Права премиум-игрока ИГРОК<334><СТИ_ИД_МОЙ><> истекли, удаление игрока...
L 06/16/2017 - 02:40:19: [vip/VIP_Core.smx] Премиум-игрок (ID: 1072) успешно удален
L 06/18/2017 - 02:17:46: [vip/VIP_Core.smx] Администратор Console<0><Console><Console> добавил премиум-идентификатор СТИ_ИД_МОЙ (Срок: 20:03, Истекает: 18/06/2017 - 02:37, Группа: Prem_BONUS)
L 06/18/2017 - 02:39:05: [vip/VIP_Core.smx] Права премиум-игрока ИГРОК<371><СТИ_ИД_МОЙ><> истекли, удаление игрока...
L 06/18/2017 - 02:39:05: [vip/VIP_Core.smx] Премиум-игрок (ID: 1105) успешно удален
L 06/19/2017 - 01:22:42: [vip/VIP_Core.smx] Права премиум-игрока ИГРОК<411><СТИ_ИД_МОЙ><> истекли, удаление игрока...
L 06/19/2017 - 01:22:42: [vip/VIP_Core.smx] Премиум-игрок (ID: 1125) успешно удален
L 06/19/2017 - 02:17:50: [vip/VIP_Core.smx] Администратор Console<0><Console><Console> добавил премиум-идентификатор СТИ_ИД_МОЙ (Срок: 20:03, Истекает: 19/06/2017 - 02:37, Группа: Prem_BONUS)
L 06/19/2017 - 02:37:54: [vip/VIP_Core.smx] Права премиум-игрока ИГРОК<425><СТИ_ИД_МОЙ><> истекли, удаление игрока...
L 06/19/2017 - 02:37:54: [vip/VIP_Core.smx] Премиум-игрок (ID: 1126) успешно удален
L 06/20/2017 - 02:06:32: [vip/VIP_Core.smx] Администратор Console<0><Console><Console> добавил премиум-идентификатор СТИ_ИД_МОЙ (Срок: 20:03, Истекает: 20/06/2017 - 02:26, Группа: Prem_BONUS)
L 06/20/2017 - 02:26:37: [vip/VIP_Core.smx] Права премиум-игрока ИГРОК<377><СТИ_ИД_МОЙ><> истекли, удаление игрока...
L 06/20/2017 - 02:26:37: [vip/VIP_Core.smx] Премиум-игрок (ID: 1145) успешно удален
L 06/20/2017 - 12:51:07: [vip/VIP_Core.smx] Администратор Dreizehnt<44><СТИ_ИД_ИГРОКА><> установил группу премиум-игроку ИГРОК (Группа: Prem_ADM)
L 06/20/2017 - 12:51:11: [vip/VIP_Core.smx] Администратор {1} установил длительность премиум-статуса игроку {2} до {3}
L 06/22/2017 - 20:02:03: [vip/VIP_Core.smx] Администратор Dreizehnt<298><СТИ_ИД_ИГРОКА><> установил группу премиум-игроку ИГРОК (Группа: Prem_ADM)
 
Последнее редактирование:

MePro69

Участник
Сообщения
28
Реакции
1
Как сделать выдачу например на 1 или 2 дня?
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
Иногда прошибает выданый VIP ранее, меняет на тот что идёт бонусом от группы Steam, в логах ничего особенного... Но SWGM начисляет всем и успевает применить как я понял выданный ранее VIP, с флагами думаю годное решение, которое было в обсуждении, чтобы админов не касалось хотя бы или как-то вести проверку на наличие...
Лучше бы тогда в ЛС написал. Тут ведь после обновления сообщения уведомление не приходит.

Как сделать выдачу например на 1 или 2 дня?
Попробуй: [SWGM] VIP
 

The_C@t

Слабоумие и отвага
Сообщения
272
Реакции
142
Да, трабла есть. Состою в своей группе и за это прилетает (после установки плагина) урезанный вип/по сравнении с выданным себе же випом полноценным.
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
Да, трабла есть. Состою в своей группе и за это прилетает (после установки плагина) урезанный вип/по сравнении с выданным себе же випом полноценным.
Там проверка стоит. Не выдает тем у кого уже есть любая группа VIP.
 

The_C@t

Слабоумие и отвага
Сообщения
272
Реакции
142
перепроверил группы, права, отключил вип за стим. зашел - обычный вип цепляется.
вернул вип за стим, прегрузил серв, захожу - полного випа снова нет.
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
перепроверил группы, права, отключил вип за стим. зашел - обычный вип цепляется.
вернул вип за стим, прегрузил серв, захожу - полного випа снова нет.
Либо версию VIP старую используешь, либо старую версию SWGM VIP.

Хотя есть другой вариант. Попробуй:
 

Вложения

  • SWGM_VIP.sp
    1.5 КБ · Просмотры: 18

Someone

Участник
Сообщения
1,933
Реакции
1,653
Там баг при заходе игрока есть, забыл обновить.

Нужно при SWGM_OnJoinGroup добавить проверку VIP_IsVIPClientLoaded, а то может выдавать группу раньше, чем это сделает VIP.
 
Последнее редактирование:

Fox1qqq

Крякнем, плюнем и надежно склеим скотчем!
Сообщения
247
Реакции
145
как понять VIP не будет выдаваться до загрузки игрока?
Написать маленький плагин, который будет отслеживать время когда игрок начал подключатся и полностью зашёл, а так же когда выдаётся VIP и отправлять это в лог. (Как пример)
 
Сверху Снизу