В файле addons/sourcemod/configs/shop/settings.txt есть строчка Main_Menu, в неё через кому прописывайте команды на открытие менюМожно ли изменить !shop например на !казино?)
это уже дописывать ядро нада, не думаю что автор вынес подобное в конфиг@iLoco, а можно ли всё содержимое "Функции" перенести на категорию назад, или чтобы при написании !shop открывалась сразу категория "Функции"?
C-подобный:"functions" { "ru" "Функции" }
Я на двух серверах делал, все было ок.Ребят, ни в коем случает не повторяйте мою ошибку. Перевод из SQLite в MYSQL и привязка к новой БД mysql не привела ни к чему хорошему, не смотря на то, что плагин был и рабочий с модулями. Легче снести БД и привязать к новой
Игрокам в чате писало типо "Ваши данные загружаются". Плюс идентификаторы в бд новые не записывались, бред короче.Я на двух серверах делал, все было ок.
А это добавить в плагин shop или в плагин модуля? Как выглядит код выдачи кредитов игроку? Я не селен в этом(Добавить такую проверку перед выдачей кредитов игроку IsFakeClient · clients · SourceMod Scripting API Reference
Пример:if(client && IsClientIndGame(client) && !IsFakeClient(client)) { Shop_GiveClientCredits(client, count); }
скинь её (полностью)
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 нужно добавить проверку на бота.Ошибка: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 нужно добавить проверку на бота.
просто это единственный нормальный вариант.Как вариант. Если найду время, допишу и выложу.
Да, я с тобой полностью согласен.просто это единственный нормальный вариант.
Проверка в коре дает предсказуемое поведение, схожее со стандартными функциями SM.
Когда игрок не валиден/не подходящий - ошибка.
А если в шопе просто добавить проверки на бота то результат станет не предсказуемым, потому что на разные действия и ф-и разные возвращаемые значения, это придется документировать, следить за этим, плодить вариации. К тому же бота нельзя сохранить в бд и загрузить. Поэтому лучше двойная проверка (в модулей и в коре) чем столько непредсказуемости.
В чат пишет "Ваши данные загружаются" при подключении к базе + идёт поиск игрока и получение данных. Если данные так и не загружаются, проверь структуру базы.Игрокам в чате писало типо "Ваши данные загружаются". Плюс идентификаторы в бд новые не записывались, бред короче.
Вот написал, но всёравно не помогло. Посмотри код, возможно что-то не так.просто это единственный нормальный вариант.
Проверка в коре дает предсказуемое поведение, схожее со стандартными функциями SM.
Когда игрок не валиден/не подходящий - ошибка.
А если в шопе просто добавить проверки на бота то результат станет не предсказуемым, потому что на разные действия и ф-и разные возвращаемые значения, это придется документировать, следить за этим, плодить вариации. К тому же бота нельзя сохранить в бд и загрузить. Поэтому лучше двойная проверка (в модулей и в коре) чем столько непредсказуемости.
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, не вижу чтобы он проверялся на ботаВот написал, но всёравно не помогло. Посмотри код, возможно что-то не так.
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"); } } }
Нет, не нагружает.Здравствуйте! Думаю добавить на свой сервер. Не подскажет кто, сильно ли нагружается сервак?