Перейти к содержимому


Фотография

Единая тема поиска плагинов L4D2

плагин

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3676

#2661 Sin133

Sin133

    Новичок

  • Пользователь
  • Pip
  • 13 сообщений

Отправлено 28 Март 2020 - 15:02

Настройки толпы в MobControl не менял?

удалил вообще начали появлятся танки но засоряет чат  игрок tank покидает игру и так далее



#2662 RyanAnderson

RyanAnderson

    Пользователь

  • Пользователь
  • PipPipPip
  • 303 сообщений

Отправлено 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


#2663 adacer

adacer

    Новичок

  • Пользователь
  • Pip
  • 44 сообщений

Отправлено 29 Март 2020 - 1:34

А в чем проблема то? Код не компилируется? Какие ошибки пишет? Компьютер и роутер перезагружать пробовал?


  • RyanAnderson и Goldfish это нравится

#2664 RyanAnderson

RyanAnderson

    Пользователь

  • Пользователь
  • PipPipPip
  • 303 сообщений

Отправлено 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


#2665 adacer

adacer

    Новичок

  • Пользователь
  • Pip
  • 44 сообщений

Отправлено 29 Март 2020 - 2:53

А нафиг этот магазин? Оружие на карте разбросано



#2666 dr_lex

dr_lex

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 1 053 сообщений

Отправлено 29 Март 2020 - 3:31

А нафиг этот магазин? Оружие на карте разбросано

Открою маленькую тайну, есть сервера где не разбросаны вещи на картах. И любое топ оружие и вещи ценится игроками.

Есть много модификаций. У меня например вещи падают только с зараженных боссов + !buy магазин.

По сути !buy идет как хорошее решение донната для оплаты аренды сервера на хостинге


Сообщение отредактировал dr_lex: 29 Март 2020 - 3:32

  • RyanAnderson и Goldfish это нравится

#2667 RyanAnderson

RyanAnderson

    Пользователь

  • Пользователь
  • PipPipPip
  • 303 сообщений

Отправлено 29 Март 2020 - 3:48

А нафиг этот магазин? Оружие на карте разбросано

Ты издеваешься? Я впервые не просто перевел плагин на русский язык, не просто поменял переменные, а действительно внес существенное изменение, влияющее на геймплей. Сам! Да для меня это теперь лучший плагин на свете!



#2668 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 29 Март 2020 - 21:47

RyanAnderson, сам писал?
Несколько замечаний в помощь:
 
Здесь ошибочка, вместо %s нужно %N:
PrintToChat(target, "[L4D2Noob.RU] %s передал тебе %i", client, paymoney);
 
И в других местах соответственно, GetClientName() нет нужды использовать.
В большинстве случаев, он у тебя в коде даже ничего не делает.
 
Код кулдауна можешь упростить, например так:
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);
третий аргумент желательно поставить true, ты ведь не хочешь передавать деньги боту.
 
То, что кода сохранения денег пока нет ты и так знаешь, но вот то что деньги по выходу из сервера не обнуляются - при входе другого игрока под тем же индексом, ему присвоятся деньги другого игрока.
Для обнуления можешь воспользоваться ивентом: player_disconnect https://wiki.alliedm...ayer_disconnect

  • RyanAnderson это нравится

#2669 RyanAnderson

RyanAnderson

    Пользователь

  • Пользователь
  • PipPipPip
  • 303 сообщений

Отправлено 29 Март 2020 - 22:01

То, что кода сохранения денег пока нет ты и так знаешь, но вот то что деньги по выходу из сервера не обнуляются - при входе другого игрока под тем же индексом, ему присвоятся деньги другого игрока.

Для обнуления можешь воспользоваться ивентом: player_disconnect https://wiki.alliedm...ayer_disconnect

Вот за это спасибочки!

 

RyanAnderson, сам писал?

Оригинальный Store автор выпустил где то недели 2 назад. Там указано в исходнике кто автор оригинала. Потом я взялся за него, сначала перевел просто на русский язык. Потом заметил что когда кто то покупает адреналин, покупка дублируется, исправлял это, потом вчера два час на кулдаун убил. Сейчас кто то в теме автора попросил добавить кнопку назад, если уж с кулдауном плагин надо использовать. Не просил помощи тут, потому что сам хочу сделать.

Как уже писал, пока сам не начну через сотню неудачных попыток получать что то рабочее, так и не научусь.

Я нашел тысячу неверных решений, осталось найти теперь одно верное.

В большинстве случаев, он у тебя в коде даже ничего не делает.

Скорее всего автор оригинала, ну тут уже неясно что оригинал, а что нет, взял уже какой то существующий плагин (как и я), и на основе его делал что то для себя.



#2670 8rutu5

8rutu5

    Пользователь

  • Пользователь
  • PipPipPip
  • 397 сообщений

Отправлено 29 Март 2020 - 23:09

Для обнуления можешь воспользоваться ивентом: player_disconnect https://wiki.alliedm...ayer_disconnect
 

А этот ивент разве не срабатывает в тот момент когда карта меняется? Я его не использовал, конечно, еще. Просто, если юзать стандартный OnPlayerDisconnect, то он срабатывает у всех игроков, при смене карты.


Сообщение отредактировал 8rutu5: 29 Март 2020 - 23:10


#2671 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 29 Март 2020 - 23:39

Форвард OnPlayerDisconnect - да, срабатывает при смене карты, т.к. технически все игроки отключаются, и затем подключаются сервером заново.

 

А ивент player_disconnect вызывается только, когда игрок реально отключается от сервера.



#2672 Sin133

Sin133

    Новичок

  • Пользователь
  • Pip
  • 13 сообщений

Отправлено 30 Март 2020 - 0:04

что из этого можно удалить или обновить чтобы чат не засоряла  игрок boomer покидает игру итак  со всеми боссами
 
 
[SM] Listing 79 plugins:
  01 "Color Chat" (1.4) by AlexMy & Figa
  02 "RCON Lock" (0.6.7) by devicenull
  03 "SpeakingList" (1.3) by Accelerator
  04 "Playerlist Panel" (1.6) by OtterNas3
  05 "Admin Help" (1.9.0.6260) by AlliedModders LLC
  06 "[L4D & L4D2] MultiTanks" (1.6) by Red Alex 
  07 "Client Preferences" (1.9.0.6260) by AlliedModders LLC
  08 "Admin List" (1.2) by Fredd
  09 "Blind Luck" (1.1.1) by James Richardson (grandwazir)
  10 "[L4D2]Defib_Fix" (2.0) by Lux
  11 "[L4D2] Incapped Crawling with Animation" (2.4) by SilverShot, mod by Lux
  12 "[L4D2] Charger Steering" (1.5) by SilverShot
  13 "[L4D2] Fireworks Party" (1.7.1) by SilverShot
  14 "[L4D & L4D2] Sappy Fix" (2.0beta) by raziEiL [disawar1]
  15 "Sound Commands" (1.9.0.6260) by AlliedModders LLC
  16 "Fly Infected" (1.5) by Pan Xiaohai
  17 "L4D2 Infinite Ammo" (1.5.5) by Machine
  18 "Tank Health Panel" (c.) by skyrpg.donations@gmail.com
  19 "AFK Manager" (2.0) by Accelerator
  20 "Basic Votes" (1.9.0.6260) by AlliedModders LLC
  21 "L4DSwitchPlayers" (1.4) by SkyDavid (djromero)
  22 "L4D Door Lock" (0.0.1) by NiCo-op
  23 "L4D2 Monster Bots" (1.2.0) by Machine, Modified by Fwoosh
  24 "Automatic Campaign Switcher (ACS)" (v1.2.3) by Chris Pringle
  25 "[L4D2] Knife Unlock" (1.0) by SilverShot, Dr!fter
  26 "AdminConnectmsg" (0.0.3) by R-Hehl
  27 "[L4D2] PowerUps rush" (2.0.0) by Dusty1029 (a.k.a. {L.2.K} LOL)
  28 "L4D_Cloud_Damage" (2.20) by  AtomicStryker
  29 "L4D2 Health Glows" (1.0.1) by Buster "Mr. Zero" Nielsen
  30 "[L4D2] superBoss" (1.0.0) by Pan Xiaohai
  31 "NoPenaltyForFatigue.smx"
  32 " Bots Control In Coop Mode" (2.0) by Pan XiaoHai, fix by raziEiL [disawar1]
  33 "Admins Manager" (1.2.1) by FrozDark (HLModders.ru LLC)
  34 "Game Mode Config Loader" (1.6.j) by Thraka
  35 "[L4D2] Defib using bots" (1.6) by DeathChaos25
  36 "[L4D2] Weapon Unlock" (0.8.1) by Crimson_Fox
  37 "L4D Loading Bug Removal" (2.0.1) by lilDrowOuw
  38 "[L4D2] Healing Gnome" (1.2) by SilverShot
  39 "Fun Votes" (1.9.0.6260) by AlliedModders LLC
  40 "Basic Chat" (1.9.0.6260) by AlliedModders LLC
  41 "[L4D2] Custom admin commands" (1.0.9) by honorcode23
  42 "Basic Info Triggers" (1.9.0.6260) by AlliedModders LLC
  43 "Self Help " (1.0.1) by Pan Xiaohai
  44 "[L4D] Counters" (1.1.7) by Jonny
  45 "[L4D2] LAST BOSS" (2.0) by ztar
  46 "[L4D2] Hard Mod" (0.3.0) by Jonny
  47 "BoxRandom.smx"
  48 "[L4D2] ScavengeBotsDS" (2.1) by Machine/Xanaguy
  49 "Melee In The Saferoom" (2.0.7) by N3wton
  50 "Admin File Reader" (1.9.0.6260) by AlliedModders LLC
  51 "All4Dead" (2.0.0) by James Richardson (grandwazir)
  52 "Basic Commands" (1.9.0.6260) by AlliedModders LLC
  53 "Incapped Magnum" (1.4) by Oshroth
  54 "Advertisements" (0.5.5) by Tsunami
  55 "PermaMute" (0.1) by Ryan "FLOOR_MASTER" Mannion
  56 "[L4D2] Bots Pickup T3s" (1.1) by DeathChaos25
  57 "RP Tools" (1.0.0.1) by Krim
  58 "[L4D2] Tank Buster 2 Menu" (1.2.1) by Teddy Ruxpin
  59 "Fun Commands" (1.9.0.6260) by AlliedModders LLC
  60 "L4D2 Boomer Bitch Slap" (1.0.1) by  AtomicStryker
  61 "L4D Black and White Notifier" (1.31) by DarkNoghri, madcap
  62 "[L4D2] Loot of Zombies" (1.9.1) by Jonny
  63 "Survivor Bot Takeover" (0.8) by Mikko Andersson (muukis)
  64 "[L4D & L4D2] Gear Transfer" (1.5.10) by SilverShot
  65 "Basic Ban Commands" (1.9.0.6260) by AlliedModders LLC
  66 "L4D_Splash_Damage" (1.0.7) by  AtomicStryker
  67 "[L4D2] Weapon/Zombie Spawner" (1.0a) by Zuko
  68 "L4D SM Respawn" (1.9.3) by AtomicStryker & Ivailosp
  69 "Admin Menu" (1.9.0.6260) by AlliedModders LLC
  70 "Map Config Loader" (1.3.Lite) by Jonny
  71 "Player Commands" (1.9.0.6260) by AlliedModders LLC
  72 "Stuck Zombie Melee Fix" (1.0.4) by AtomicStryker
  73 "L4D2 Finale UnBlocker" (1.1.0) by AtomicStryker
  74 "Anti-Flood" (1.9.0.6260) by AlliedModders LLC
  75 "Basic Comm Control" (1.9.0.6260) by AlliedModders LLC
  76 "Guardian" (1.4) by Jonny
  77 "Survivor Chat Select" (1.3) by DeatChaos25 & Mi123456
  78 "Reserved Slots" (1.9.0.6260) by AlliedModders LLC
  79 "[L4D(2)] MultiSlots" (1.0) by SwiftReal, MI 5


#2673 Goldfish

Goldfish

    Пользователь

  • Пользователь
  • PipPipPip
  • 388 сообщений

Отправлено 30 Март 2020 - 5:38

Кстати, есть такой плагин или способ узнать на сколько процентов пройден путь? Такой функции скорее всего в сурсмоде или движке нет случайно? Или Надо тупо чекать области карты в координатах куда дошел игрок?



#2674 Game Over - L4D2 - CS:GO

Game Over - L4D2 - CS:GO

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 574 сообщений

Отправлено 30 Март 2020 - 5:41

Кстати, есть такой плагин или способ узнать на сколько процентов пройден путь? Такой функции скорее всего в сурсмоде или движке нет случайно? Или Надо тупо чекать области карты в координатах куда дошел игрок?


  • Goldfish это нравится

#2675 Goldfish

Goldfish

    Пользователь

  • Пользователь
  • PipPipPip
  • 388 сообщений

Отправлено 30 Март 2020 - 6:51

Блин а что с АМ, уже почти целый день лежит, bag gatevay



#2676 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 30 Март 2020 - 16:59

Блин а что с АМ, уже почти целый день лежит, bag gatevay

 

Да он уже каждый день с разной периодичностью падает на несколько минут.



#2677 Goldfish

Goldfish

    Пользователь

  • Пользователь
  • PipPipPip
  • 388 сообщений

Отправлено 04 Апрель 2020 - 18:38

Ребят как правильно вызывать команды (стандартные а так же свои) из плагины , с админским флагом?



#2678 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 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() {}


#2679 Goldfish

Goldfish

    Пользователь

  • Пользователь
  • PipPipPip
  • 388 сообщений

Отправлено 04 Апрель 2020 - 18:49

Там же обязтаельно нужен клиент живой, от которого идет вызов команды? и он должен иметь админ права или я что-то не так понимаю?

 

вызывать нужно из другого плагина


Сообщение отредактировал Goldfish: 04 Апрель 2020 - 18:50


#2680 dragokas

dragokas

    Постоянный пользователь

  • Пользователь
  • PipPipPipPipPip
  • 792 сообщений

Отправлено 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




Темы с аналогичным тегами плагин

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных