Denisad

Участник
Сообщения
165
Реакции
7
Можно ли изменить !shop например на !казино?)
 
Последнее редактирование:

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323

Denisad

Участник
Сообщения
165
Реакции
7
@iLoco, а можно ли всё содержимое "Функции" перенести на категорию назад, или чтобы при написании !shop открывалась сразу категория "Функции"?
C-подобный:
    "functions"
    {
        "ru"        "Функции"
    }
 

iLoco

Пишу плагины за печеньки 🍪🍪🍪
Сообщения
2,265
Реакции
1,323
@iLoco, а можно ли всё содержимое "Функции" перенести на категорию назад, или чтобы при написании !shop открывалась сразу категория "Функции"?
C-подобный:
    "functions"
    {
        "ru"        "Функции"
    }
это уже дописывать ядро нада, не думаю что автор вынес подобное в конфиг
 

SLAME

Флуд/Оффтоп
Сообщения
351
Реакции
222
Ребят, ни в коем случает не повторяйте мою ошибку. Перевод из SQLite в MYSQL и привязка к новой БД mysql не привела ни к чему хорошему, не смотря на то, что плагин был и рабочий с модулями. Легче снести БД и привязать к новой
 

Amirsz

Релаксируем... Ну хотя бы пытаемся
Сообщения
261
Реакции
81
Ребят, ни в коем случает не повторяйте мою ошибку. Перевод из SQLite в MYSQL и привязка к новой БД mysql не привела ни к чему хорошему, не смотря на то, что плагин был и рабочий с модулями. Легче снести БД и привязать к новой
Я на двух серверах делал, все было ок.
 

V Λ C U U M

Участник
Сообщения
39
Реакции
13
Добавить такую проверку перед выдачей кредитов игроку IsFakeClient · clients · SourceMod Scripting API Reference

Пример:
if(client && IsClientIndGame(client) && !IsFakeClient(client))
{
    Shop_GiveClientCredits(client, count);
}
А это добавить в плагин shop или в плагин модуля? Как выглядит код выдачи кредитов игроку? Я не селен в этом(
 

xyligan

Паркетный пол трещит под моей крышкой черепной
Сообщения
900
Реакции
432
Как исправить ошибку в логе, которая жалуется на то, что клиент является ботом? Может какое-либо условие написать нужно?
 

xyligan

Паркетный пол трещит под моей крышкой черепной
Сообщения
900
Реакции
432
скинь её (полностью)
Ошибка:
L 10/20/2020 - 01:10:47: [SM] Exception reported: Client index 1 is a bot
L 10/20/2020 - 01:10:47: [SM] Blaming: shop.smx
L 10/20/2020 - 01:10:47: [SM] Call stack trace:
L 10/20/2020 - 01:10:47: [SM]   [0] ThrowNativeError
L 10/20/2020 - 01:10:47: [SM]   [1] Line 275, addons/sourcemod/scripting/shop/player_manager.sp::PlayerManager_IsClientHasItem
L 10/20/2020 - 01:10:47: [SM]   [3] Shop_IsClientHasItem
L 10/20/2020 - 01:10:47: [SM]   [4] Line 72, F:\SourcePawn 1.10\addons\sourcemod\scripting\shop_watereffect.sp::Event_OnPlayerHurt
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
Ошибка:
L 10/20/2020 - 01:10:47: [SM] Exception reported: Client index 1 is a bot
L 10/20/2020 - 01:10:47: [SM] Blaming: shop.smx
L 10/20/2020 - 01:10:47: [SM] Call stack trace:
L 10/20/2020 - 01:10:47: [SM]   [0] ThrowNativeError
L 10/20/2020 - 01:10:47: [SM]   [1] Line 275, addons/sourcemod/scripting/shop/player_manager.sp::PlayerManager_IsClientHasItem
L 10/20/2020 - 01:10:47: [SM]   [3] Shop_IsClientHasItem
L 10/20/2020 - 01:10:47: [SM]   [4] Line 72, F:\SourcePawn 1.10\addons\sourcemod\scripting\shop_watereffect.sp::Event_OnPlayerHurt
получается что шоп производит валидацию игроков. следовательно в shop_watereffect.sp нужно добавить проверку на бота.
 

xyligan

Паркетный пол трещит под моей крышкой черепной
Сообщения
900
Реакции
432
получается что шоп производит валидацию игроков. следовательно в shop_watereffect.sp нужно добавить проверку на бота.
Как вариант. Если найду время, допишу и выложу.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
Как вариант. Если найду время, допишу и выложу.
просто это единственный нормальный вариант.
Проверка в коре дает предсказуемое поведение, схожее со стандартными функциями SM.
Когда игрок не валиден/не подходящий - ошибка.
А если в шопе просто добавить проверки на бота то результат станет не предсказуемым, потому что на разные действия и ф-и разные возвращаемые значения, это придется документировать, следить за этим, плодить вариации. К тому же бота нельзя сохранить в бд и загрузить. Поэтому лучше двойная проверка (в модулей и в коре) чем столько непредсказуемости.
 

xyligan

Паркетный пол трещит под моей крышкой черепной
Сообщения
900
Реакции
432
просто это единственный нормальный вариант.
Проверка в коре дает предсказуемое поведение, схожее со стандартными функциями SM.
Когда игрок не валиден/не подходящий - ошибка.
А если в шопе просто добавить проверки на бота то результат станет не предсказуемым, потому что на разные действия и ф-и разные возвращаемые значения, это придется документировать, следить за этим, плодить вариации. К тому же бота нельзя сохранить в бд и загрузить. Поэтому лучше двойная проверка (в модулей и в коре) чем столько непредсказуемости.
Да, я с тобой полностью согласен.
Сообщения автоматически склеены:

Игрокам в чате писало типо "Ваши данные загружаются". Плюс идентификаторы в бд новые не записывались, бред короче.
В чат пишет "Ваши данные загружаются" при подключении к базе + идёт поиск игрока и получение данных. Если данные так и не загружаются, проверь структуру базы.
 

xyligan

Паркетный пол трещит под моей крышкой черепной
Сообщения
900
Реакции
432
просто это единственный нормальный вариант.
Проверка в коре дает предсказуемое поведение, схожее со стандартными функциями SM.
Когда игрок не валиден/не подходящий - ошибка.
А если в шопе просто добавить проверки на бота то результат станет не предсказуемым, потому что на разные действия и ф-и разные возвращаемые значения, это придется документировать, следить за этим, плодить вариации. К тому же бота нельзя сохранить в бд и загрузить. Поэтому лучше двойная проверка (в модулей и в коре) чем столько непредсказуемости.
Вот написал, но всёравно не помогло. Посмотри код, возможно что-то не так.
C-подобный:
public void Event_OnPlayerHurt(Event event, const char[] name, bool dontBroadcast)
{
    int iClient = GetClientOfUserId(GetEventInt(event, "userid"));
    if(iClient && IsClientInGame(iClient) && !IsFakeClient(iClient))
    {
        int client = GetClientOfUserId(event.GetInt("attacker"));
        if (client && Shop_IsClientHasItem(client, id) && Shop_IsClientItemToggled(client, id))
        {
            SetVariantString("WaterSurfaceExplosion");
            AcceptEntityInput(GetClientOfUserId(event.GetInt("userid")), "DispatchEffect");
        }
    }
}
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
Вот написал, но всёравно не помогло. Посмотри код, возможно что-то не так.
C-подобный:
public void Event_OnPlayerHurt(Event event, const char[] name, bool dontBroadcast)
{
    int iClient = GetClientOfUserId(GetEventInt(event, "userid"));
    if(iClient && IsClientInGame(iClient) && !IsFakeClient(iClient))
    {
        int client = GetClientOfUserId(event.GetInt("attacker"));
        if (client && Shop_IsClientHasItem(client, id) && Shop_IsClientItemToggled(client, id))
        {
            SetVariantString("WaterSurfaceExplosion");
            AcceptEntityInput(GetClientOfUserId(event.GetInt("userid")), "DispatchEffect");
        }
    }
}
Shop_IsClientHasItem и Shop_IsClientItemToggled вызываются для client, не вижу чтобы он проверялся на бота
 

v1xxxyoff

Участник
Сообщения
34
Реакции
2
Здравствуйте! Думаю добавить на свой сервер. Не подскажет кто, сильно ли нагружается сервак?
 

Митюха

Я - Енотик-Потаскун
Сообщения
144
Реакции
20
Работает всё супер, но кредиты за убийство не даёт.... Что делать
 
Сверху Снизу