Настройки толпы в MobControl не менял?
удалил вообще начали появлятся танки но засоряет чат игрок tank покидает игру и так далее
Отправлено 28 Март 2020 - 15:02
Настройки толпы в MobControl не менял?
удалил вообще начали появлятся танки но засоряет чат игрок tank покидает игру и так далее
Отправлено 29 Март 2020 - 1:20
public Action HinT(int client, int args) // создаем функцию для комманды) { Menu menu = CreateMenu(MeleeMenuHandler); SetMenuTitle(menu, "Твои деньги %d", g_iCredits[client]); AddMenuItem(menu, "option1", "Оружие"); AddMenuItem(menu, "option2", "Рукопашное"); AddMenuItem(menu, "option3", "Остальное"); DisplayMenu(menu, client, MENU_TIME_FOREVER); SetMenuExitButton(menu, true); // Timer int currentTime = GetTime(); if (cooldownTimes[client] != -1 && cooldownTimes[client] > currentTime) { ReplyToCommand(client, "Эй, ты слишком часто используешь магазин, подожди ка!"); return Plugin_Handled; } cooldownTimes[client] = currentTime + 240; //End Timer return Plugin_Handled; }
Ребята, я наверно часа два потратил на это, учитывая что мои навыки уходят не дальше перевода строки PrinttoChat...
Код который выше, он и создает меню, и начинает отсчет КД, одновременно.
Как сделать правильно, что бы либо открывалось меню, либо запускался КД? Это что то связанное с условными операторами.
Сообщение отредактировал RyanAnderson: 29 Март 2020 - 1:22
Отправлено 29 Март 2020 - 1:34
А в чем проблема то? Код не компилируется? Какие ошибки пишет? Компьютер и роутер перезагружать пробовал?
Отправлено 29 Март 2020 - 1:45
public Action HinT(int client, int args) // создаем функцию для комманды) { Menu menu = CreateMenu(MeleeMenuHandler); SetMenuTitle(menu, "Твои деньги %d", g_iCredits[client]); AddMenuItem(menu, "option1", "Оружие"); AddMenuItem(menu, "option2", "Рукопашное"); AddMenuItem(menu, "option3", "Остальное"); DisplayMenu(menu, client, MENU_TIME_FOREVER); SetMenuExitButton(menu, true); // Timer int currentTime = GetTime(); if (cooldownTimes[client] != -1 && cooldownTimes[client] > currentTime) { ReplyToCommand(client, "Эй, ты слишком часто используешь магазин, подожди ка!"); return Plugin_Handled; } cooldownTimes[client] = currentTime + 240; //End Timer return Plugin_Handled; }Ребята, я наверно часа два потратил на это, учитывая что мои навыки уходят не дальше перевода строки PrinttoChat...
Код который выше, он и создает меню, и начинает отсчет КД, одновременно.
Как сделать правильно, что бы либо открывалось меню, либо запускался КД? Это что то связанное с условными операторами.
А в чем проблема то? Код не компилируется? Какие ошибки пишет? Компьютер и роутер перезагружать пробовал?
посмеялся от души. Спасибо! Да плагин не компилировался, и я описывал проблему, что и таймер и меню запускались одновременно.
Но я уже исправил, правильный код, либо таймер (КД) либо меню:
public Action HinT(int client, int args) // создаем функцию для комманды) { // Timer int currentTime = GetTime(); if (cooldownTimes[client] != -1 && cooldownTimes[client] > currentTime) { ReplyToCommand(client, "Эй, ты слишком часто используешь магазин, подожди ка!"); return Plugin_Handled; } cooldownTimes[client] = currentTime + 240; //End Timer Menu menu = CreateMenu(MeleeMenuHandler); SetMenuTitle(menu, "Твои деньги %d", g_iCredits[client]); AddMenuItem(menu, "option1", "Оружие"); AddMenuItem(menu, "option2", "Рукопашное"); AddMenuItem(menu, "option3", "Остальное"); DisplayMenu(menu, client, MENU_TIME_FOREVER); SetMenuExitButton(menu, true); return Plugin_Handled; }
L4D2 Store.sp 19,78К 11 Количество загрузок: L4D2 Store.smx 9,09К 1 Количество загрузок:
Сообщение отредактировал RyanAnderson: 29 Март 2020 - 1:55
Отправлено 29 Март 2020 - 2:53
А нафиг этот магазин? Оружие на карте разбросано
Отправлено 29 Март 2020 - 3:31
А нафиг этот магазин? Оружие на карте разбросано
Открою маленькую тайну, есть сервера где не разбросаны вещи на картах. И любое топ оружие и вещи ценится игроками.
Есть много модификаций. У меня например вещи падают только с зараженных боссов + !buy магазин.
По сути !buy идет как хорошее решение донната для оплаты аренды сервера на хостинге
Сообщение отредактировал dr_lex: 29 Март 2020 - 3:32
Отправлено 29 Март 2020 - 3:48
А нафиг этот магазин? Оружие на карте разбросано
Ты издеваешься? Я впервые не просто перевел плагин на русский язык, не просто поменял переменные, а действительно внес существенное изменение, влияющее на геймплей. Сам! Да для меня это теперь лучший плагин на свете!
Отправлено 29 Март 2020 - 21:47
PrintToChat(target, "[L4D2Noob.RU] %s передал тебе %i", client, paymoney);
static int iLastTime[MAXPLAYERS+1]; // Timer int currentTime = GetTime(); if( currentTime - iLastTime[client] < 90 ) { ReplyToCommand(client, "Эй, ты слишком часто используешь магазин, подожди ка!"); return Plugin_Handled; } iLastTime[client] = currentTime;
Menu menu = CreateMenu(Weapon_Menu_Handle, MenuAction_Select | MenuAction_Cancel | MenuAction_End);
case MenuAction_End: delete menu;
SetMenuExitButton(menu, true);
FindTarget(client, arg1);
Отправлено 29 Март 2020 - 22:01
То, что кода сохранения денег пока нет ты и так знаешь, но вот то что деньги по выходу из сервера не обнуляются - при входе другого игрока под тем же индексом, ему присвоятся деньги другого игрока.
Для обнуления можешь воспользоваться ивентом: player_disconnect https://wiki.alliedm...ayer_disconnect
Вот за это спасибочки!
RyanAnderson, сам писал?
Оригинальный Store автор выпустил где то недели 2 назад. Там указано в исходнике кто автор оригинала. Потом я взялся за него, сначала перевел просто на русский язык. Потом заметил что когда кто то покупает адреналин, покупка дублируется, исправлял это, потом вчера два час на кулдаун убил. Сейчас кто то в теме автора попросил добавить кнопку назад, если уж с кулдауном плагин надо использовать. Не просил помощи тут, потому что сам хочу сделать.
Как уже писал, пока сам не начну через сотню неудачных попыток получать что то рабочее, так и не научусь.
Я нашел тысячу неверных решений, осталось найти теперь одно верное.
В большинстве случаев, он у тебя в коде даже ничего не делает.
Скорее всего автор оригинала, ну тут уже неясно что оригинал, а что нет, взял уже какой то существующий плагин (как и я), и на основе его делал что то для себя.
Отправлено 29 Март 2020 - 23:09
Для обнуления можешь воспользоваться ивентом: player_disconnect https://wiki.alliedm...ayer_disconnect
А этот ивент разве не срабатывает в тот момент когда карта меняется? Я его не использовал, конечно, еще. Просто, если юзать стандартный OnPlayerDisconnect, то он срабатывает у всех игроков, при смене карты.
Сообщение отредактировал 8rutu5: 29 Март 2020 - 23:10
Отправлено 29 Март 2020 - 23:39
Форвард OnPlayerDisconnect - да, срабатывает при смене карты, т.к. технически все игроки отключаются, и затем подключаются сервером заново.
А ивент player_disconnect вызывается только, когда игрок реально отключается от сервера.
Отправлено 30 Март 2020 - 0:04
Отправлено 30 Март 2020 - 5:38
Кстати, есть такой плагин или способ узнать на сколько процентов пройден путь? Такой функции скорее всего в сурсмоде или движке нет случайно? Или Надо тупо чекать области карты в координатах куда дошел игрок?
Отправлено 30 Март 2020 - 5:41
Кстати, есть такой плагин или способ узнать на сколько процентов пройден путь? Такой функции скорее всего в сурсмоде или движке нет случайно? Или Надо тупо чекать области карты в координатах куда дошел игрок?
Отправлено 30 Март 2020 - 6:51
Блин а что с АМ, уже почти целый день лежит, bag gatevay
Отправлено 30 Март 2020 - 16:59
Блин а что с АМ, уже почти целый день лежит, bag gatevay
Да он уже каждый день с разной периодичностью падает на несколько минут.
Отправлено 04 Апрель 2020 - 18:38
Ребят как правильно вызывать команды (стандартные а так же свои) из плагины , с админским флагом?
Отправлено 04 Апрель 2020 - 18:48
Если хочешь вызвать команду из другого плагина, выполняешь FakeClientCommand(клиент, "команда").
Если нужно выполнить не от конкретного клиента, то либо рандомно выбираешь клиента, либо через ServerCommand("команда").
Если хочешь вызвать команду своего же плагина, то проще вызвать функцию напрямую:
// регистрация RegConsoleCmd ( "sm_test", CmdTest ); // вызов CmdTest(client, 0); // либо напрямую зовёшь функцию foo(); public Action CmdTest (int client, int args) { foo(); return Plugin_Handled; } void foo() {}
Отправлено 04 Апрель 2020 - 18:49
Там же обязтаельно нужен клиент живой, от которого идет вызов команды? и он должен иметь админ права или я что-то не так понимаю?
вызывать нужно из другого плагина
Сообщение отредактировал Goldfish: 04 Апрель 2020 - 18:50
Отправлено 04 Апрель 2020 - 19:02
Сложно что-либо посоветовать без конкретики. Что за команда, что она делает...
У ServerCommand и так максимальные права, но индекс клиента будет передан как 0, поэтому нужно понимать, как колбек команды обрабатывает такое и что он вообще делает.
И да, FakeClientCommand просто выполнит команду от имени другого игрока (с его правами), не более того.
А, кажется понял, что требуется, вы хотите выполнить админскую команду от имени юзера который к ней не имеет доступа?
Поможет, временное повышение прав этого юзера:
void ExecuteAdminCmd(int client, char[] sCmd) { int flags = GetUserFlagBits(client); SetUserFlagBits(client, flags | ADMFLAG_ROOT); FakeClientCommand(client, sCmd); SetUserFlagBits(client, flags); }
Сообщение отредактировал dragokas: 04 Апрель 2020 - 18:55
Игровые сервера →
Left 4 Dead →
Сохранение модели и оружия (cookies)Автор wwdbear , 20 авг 2023 модели, оружие, плагин |
|
|
||
Игровые сервера →
Counter-Strike: Global Offensive →
Настройка databases.cfgАвтор POISONone , 13 янв 2023 databases, настройка сервера и 8 еще... |
|
|
||
Игровые сервера →
Counter-Strike: Global Offensive →
Фикс респавна после перезахода на серверАвтор Viper993 , 08 янв 2022 Плагин, Рекорд, Фикс, mg, Респавн |
|
|
||
Игровые сервера →
Counter-Strike: Global Offensive →
Не грузит плагин + Баг с Shop BallsАвтор Viper993 , 01 янв 2022 Плагин, Баг, Shop, Shop Balls и 1 еще... |
|
|
||
Игровые сервера →
Counter-Strike: Source →
Нужная помощь с установкой деревьев на картеАвтор Console , 22 сен 2021 Плагин, Деревья |
|
|
0 пользователей, 0 гостей, 0 анонимных