Prime Natives

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #1
Пользователь Someone разместил новый ресурс:

Prime Natives - Ядро для контроля игроков без Prime статуса.

Данный плагин предоставляет API для удобного управления игроками, не имеющих Prime-статуса. Работает как ядро, а это значит, что весь функционал заключается в его модульности.


PHP:
enum PRIME_STATUS            // Статусы клиента
{
    PRIME,                    // Клиент имеет Prime статус.
    NO_PRIME,                // Клиент не имеет Prime статус.
    NO_AUTH,                // Не удалось получить Prime статус игрока.
    VERIFICATION,            // Игрок...

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

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #2
Можешь объяснить, в чём принципиальная разница SteamWorks_HasLicenseForAppId() от SteamWorks_HasLicenseForApp(), если они обе возвращают один и тот же тип данных, принимают на вход тот же AppID, но первый в качестве идентификатора игрока берёт Account ID, а второй - Client ID?
Изначально в попытках скомпилировать, нарвался на то, что SteamWorks у меня был довольно древний в инклудах, и в нём не было используемого натива, зато был тот, который я упомянул.
 

All

Random
Сообщения
553
Реакции
228
Очень классный плагин и модули. Не хватает только одного - доступ на сервер с определенного уровня приватного ранга. К примеру если у игрока 2 lvl то 90% что он читер, если 10+lvl то 10% что он читер, обычно до таких уровней читеры не доживают.
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #4
Можешь объяснить, в чём принципиальная разница SteamWorks_HasLicenseForAppId() от SteamWorks_HasLicenseForApp()
Да просто так, захотелось.

PHP:
static cell_t sm_UserHasLicenseForApp(IPluginContext *pContext, const cell_t *params)
{
    ISteamGameServer *pServer = GetGSPointer();

    if (pServer == NULL)
    {
        return k_EUserHasLicenseResultNoAuth;
    }
   
    int client = gamehelpers->ReferenceToIndex(params[1]);
    IGamePlayer *pPlayer = playerhelpers->GetGamePlayer(client); /* Man, including GameHelpers and PlayerHelpers for this native :(. */
    if (pPlayer == NULL || pPlayer->IsConnected() == false)
    {
        return pContext->ThrowNativeError("Client index %d is invalid", params[1]);
    }
   
    CSteamID checkid = CreateCommonCSteamID(pPlayer, params, 3, 4);
    return pServer->UserHasLicenseForApp(checkid, params[2]);
}

static cell_t sm_UserHasLicenseForAppId(IPluginContext *pContext, const cell_t *params)
{
    ISteamGameServer *pServer = GetGSPointer();

    if (pServer == NULL)
    {
        return k_EUserHasLicenseResultNoAuth;
    }

    CSteamID checkid = CreateCommonCSteamID(params[1], params, 3, 4);
    return pServer->UserHasLicenseForApp(checkid, params[2]);
}

К примеру если у игрока 2 lvl то 90% что он читер, если 10+lvl то 10% что он читер
Или он просто сбросил свой уровень.
 

All

Random
Сообщения
553
Реакции
228
Да просто так, захотелось.

PHP:
static cell_t sm_UserHasLicenseForApp(IPluginContext *pContext, const cell_t *params)
{
    ISteamGameServer *pServer = GetGSPointer();

    if (pServer == NULL)
    {
        return k_EUserHasLicenseResultNoAuth;
    }
  
    int client = gamehelpers->ReferenceToIndex(params[1]);
    IGamePlayer *pPlayer = playerhelpers->GetGamePlayer(client); /* Man, including GameHelpers and PlayerHelpers for this native :(. */
    if (pPlayer == NULL || pPlayer->IsConnected() == false)
    {
        return pContext->ThrowNativeError("Client index %d is invalid", params[1]);
    }
  
    CSteamID checkid = CreateCommonCSteamID(pPlayer, params, 3, 4);
    return pServer->UserHasLicenseForApp(checkid, params[2]);
}

static cell_t sm_UserHasLicenseForAppId(IPluginContext *pContext, const cell_t *params)
{
    ISteamGameServer *pServer = GetGSPointer();

    if (pServer == NULL)
    {
        return k_EUserHasLicenseResultNoAuth;
    }

    CSteamID checkid = CreateCommonCSteamID(params[1], params, 3, 4);
    return pServer->UserHasLicenseForApp(checkid, params[2]);
}


Или он просто сбросил свой уровень.
Игрок может получить медаль и сбросить ранг только при достижении 40го приватного ранга. А это уже автоматически даёт прайм...
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #6
Игрок может получить медаль и сбросить ранг только при достижении 40го приватного ранга. А это уже автоматически даёт прайм...
Тогда посмотрю, но позже. Не знаю ни одного метода получения приватного ранга.
 
Последнее редактирование:

Rezder

Участник
Сообщения
153
Реакции
8
Тогда посмотрю, но позже. Не знаю ни одного метода получения приватного ранга.
Считаю это лишнее, т.к 100% будет конфликт и так красиво сделал, если людям нужен пропуск с 10 лвл пусть отключают прайм кик и следят за читерами.
И ещё вопросик, тут же нет бага при котором игрок получивший прайм сам(после 21 лвл), кикался с сервера типо прайма нет, а у тех которым выдался автоматом с обновой - всё окей заходит?
 

All

Random
Сообщения
553
Реакции
228
Считаю это лишнее, т.к 100% будет конфликт и так красиво сделал, если людям нужен пропуск с 10 лвл пусть отключают прайм кик и следят за читерами.
И ещё вопросик, тут же нет бага при котором игрок получивший прайм сам(после 21 лвл), кикался с сервера типо прайма нет, а у тех которым выдался автоматом с обновой - всё окей заходит?
Ну по вашей логике вообще не нужен этот плагин... Зачем тогда модуль который проверяет дату регистрации? И про какой конфликт вообще речь?
 

Rezder

Участник
Сообщения
153
Реакции
8
Псс тут баг как я и думал, игрока который апнул сам прайм не пускает на сервер типо прайма нет, можно как-то починить?
 

Вложения

  • L-IjOga2NCQ.jpg
    L-IjOga2NCQ.jpg
    83.4 КБ · Просмотры: 80
  • N2WCtBDMlFA.jpg
    N2WCtBDMlFA.jpg
    170.5 КБ · Просмотры: 82

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #10
@Rezder, заставить Валвов добавить функционал для получения Прайм статуса.
 

Arthur Don

Участник
Сообщения
1,696
Реакции
256
@Someone, не мог бы сделать модуль, который будет давать доступ к серверу на 30 мин, а потом кикать? И так раз в день.
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #12

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
@Someone, не вижу смысла в этом плагине, так как если ущемить права игроков без прайма на сервере, то они пойду покупать игру, давая Габену свои денюшки и получая на сервере полные права игрока, серверу профита от этого не будет, если не продавать ключи к ксго со своего сайта)). Хотя такого игрока нужно ещё будет найти, который из-за дискриминации будет покупать игру. Хотя если чисто поржать, то можно взять данный плагин в пару с другими плагинами.
 

Kruzya

Участник
Сообщения
12,970
Реакции
10,914
  • Команда форума
  • #14
@Loco, ну, спорно.
Т.к. игра бесплатная, то и читеру избавиться от Вака - ничего не стоит. Создал новый акк, да пошёл снова в бой... А так, будет отсеивать таких.
 

Davidos

Участник
Сообщения
97
Реакции
41
@Someone Спамит ерорками
L 02/20/2019 - 20:00:46: [SM] Blaming: Prime_Natives.smx
L 02/20/2019 - 20:00:46: [SM] Call stack trace:
L 02/20/2019 - 20:00:46: [SM] [0] ThrowNativeError
L 02/20/2019 - 20:00:46: [SM] [1] Line 118, C:\csgo\1.7\addons\sourcemod\scripting\1.8 Weapon Restrict\scripting\Prime_Natives.sp::CheckClient
L 02/20/2019 - 20:00:46: [SM] [2] Line 42, C:\csgo\1.7\addons\sourcemod\scripting\1.8 Weapon Restrict\scripting\Prime_Natives.sp::Native_SetPlayerStatus
L 02/20/2019 - 20:00:46: [SM] [4] PN_SetPlayerStatus
L 02/20/2019 - 20:00:46: [SM] [5] Line 88, C:\csgo\1.7\addons\sourcemod\scripting\1.8 Weapon Restrict\scripting\Prime_Natives_VIP_Access.sp::CheckWhiteListAccess
L 02/20/2019 - 20:00:46: [SM] [6] Line 60, C:\csgo\1.7\addons\sourcemod\scripting\1.8 Weapon Restrict\scripting\Prime_Natives_VIP_Access.sp::PN_OnPlayerStatusChange
L 02/20/2019 - 20:00:46: [SM] [8] Call_Finish
L 02/20/2019 - 20:00:46: [SM] [9] Line 76, C:\csgo\1.7\addons\sourcemod\scripting\1.8 Weapon Restrict\scripting\Prime_Natives.sp::OnStatusChange
L 02/20/2019 - 20:00:46: [SM] [10] Line 55, C:\csgo\1.7\addons\sourcemod\scripting\1.8 Weapon Restrict\scripting\Prime_Natives.sp::SteamWorks_OnValidateClient
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #17
не вижу смысла в этом плагине, так как если ущемить права игроков без прайма на сервере, то они пойду покупать игру
Интересно, а где ты увидел ущемление ? Я или кто-то другой написал плагин, который как-то усложняет игру игрока без Prime статуса ? Уменьшает им HP, урон или еще что-то ? Кто захочет, тот так и сделает, ибо это личное дело каждого.

Или может ставить тэг в табе ныне ущемление прав ?

@Someone Спамит ерорками
L 02/20/2019 - 20:00:46: [SM] Blaming: Prime_Natives.smx
L 02/20/2019 - 20:00:46: [SM] Call stack trace:
L 02/20/2019 - 20:00:46: [SM] [0] ThrowNativeError
L 02/20/2019 - 20:00:46: [SM] [1] Line 118, C:\csgo\1.7\addons\sourcemod\scripting\1.8 Weapon Restrict\scripting\Prime_Natives.sp::CheckClient
L 02/20/2019 - 20:00:46: [SM] [2] Line 42, C:\csgo\1.7\addons\sourcemod\scripting\1.8 Weapon Restrict\scripting\Prime_Natives.sp::Native_SetPlayerStatus
L 02/20/2019 - 20:00:46: [SM] [4] PN_SetPlayerStatus
L 02/20/2019 - 20:00:46: [SM] [5] Line 88, C:\csgo\1.7\addons\sourcemod\scripting\1.8 Weapon Restrict\scripting\Prime_Natives_VIP_Access.sp::CheckWhiteListAccess
L 02/20/2019 - 20:00:46: [SM] [6] Line 60, C:\csgo\1.7\addons\sourcemod\scripting\1.8 Weapon Restrict\scripting\Prime_Natives_VIP_Access.sp::PN_OnPlayerStatusChange
L 02/20/2019 - 20:00:46: [SM] [8] Call_Finish
L 02/20/2019 - 20:00:46: [SM] [9] Line 76, C:\csgo\1.7\addons\sourcemod\scripting\1.8 Weapon Restrict\scripting\Prime_Natives.sp::OnStatusChange
L 02/20/2019 - 20:00:46: [SM] [10] Line 55, C:\csgo\1.7\addons\sourcemod\scripting\1.8 Weapon Restrict\scripting\Prime_Natives.sp::SteamWorks_OnValidateClient
Ну так пиши в теме с проблемный модулем, а не в теме ядра.
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
@Someone, я не вижу других путей использования данного плагина, игроки без прайма - они такие же игроки как и с ним относительно сервера, прайм статус не решает быть ли NoPrime игроку в худшем положении чем другие. Prime-статус решает только в оригинальном ксго и не более. Оффтоп
Раз уж пошла такая тема, то добавьте пару модулей:Оффтоп
  1. TeamManager, будет позволяет ставить ограничение на количество NoPrime игроков в команде.
  2. CommandManager, будет позволяет делать над NoPrime игроками разные манипуляции с командами, которые выполняются каждый раунд/респавн.
  3. WeaponRestrict, ограничивает по количеству оружию между NoPrime игроками.
  4. Иконка над игроком.
  5. Ограничение по вещам в шопе/випке.
  6. Ban/mute в повышенным значением. К примеру если дали на 60 сек, а в кфг плагина стоит 1.5, то дастся на 90 сек.
  7. Мешьше шанс выпадения валюты в кейсе и казино. Больше комиссия в Модуль плагина - [Shop] Games и рулетке шопа.
  8. Выпадение опяты/валюты для LR и Shop'a.
 

Someone

Участник
Сообщения
1,933
Реакции
1,653
  • Автор ресурса
  • #19
я не вижу других путей использования данного плагина
Ну изначально была задумка фильтрования игроков без Prime статуса. Вместо того, чтобы не пускать всех игроков, используя квар - не пускать конкретных, которые не подходят по "фильтрам". К примеру Модуль плагина - [Prime Natives] Account Lifetime, множество игроков без Prime это типичные читеры новореги, которые только-только зарегали аккаунт и спавнулись с одной учетки Steam на другую.

Раз уж пошла такая тема, то добавьте пару модулей: Оффтоп Для полной картины ущемления прав NoPrime игроков самое то.

  1. TeamManager, будет позволяет ставить ограничение на количество NoPrime игроков в команде.
    CommandManager, будет позволяет делать над NoPrime игроками разные манипуляции с командами, которые выполняются каждый раунд/респавн.
    WeaponRestrict, ограничивает по количеству оружию между NoPrime игроками.
    Иконка над игроком.
    Ограничение по вещам в шопе/випке.
    Ban/mute в повышенным значением. К примеру если дали на 60 сек, а в кфг плагина стоит 1.5, то дастся на 90 сек.
    Мешьше шанс выпадения валюты в кейсе и казино. Больше комиссия в Модуль плагина - [Shop] Games и рулетке шопа.
    Выпадение опяты/валюты для LR и Shop'a.
Это уже маразм. От себя скажу, что за такое браться не стану.
В 4-ом может еще есть смысл, но скорее только для админов, для наблюдения.
 

wayLANder

Где AlmazON?
Сообщения
1,742
Реакции
577
То ли я дурак, то ли лыжи не едут. Залил ядро, кик, админ оверрайд, попробовал на фейке без прайма - зайти не могу (на сервере включена защита от входа нон праймеров sv_prime_accounts_only 1)
И вот сижу и думаю, либо эту функцию надо оффнуть, но как тогда проверить, что ядро работает как нужно?

В оверрайдсах прописал
"sm_prime_natives_admin_access" "b"
"sm_prime_natives_admin_access" "z"
Но на сервер попасть не могу, отключив sv_prime... 1 - зашел, но уверенности в правильной работе нет.
Нужно ли всё таки отключать sv_prime_accounts_only 1 для нормальной работы ядра и модулей?
 
Сверху Снизу