Drum-kit

Drum-kit 1.0.5

Нет прав для скачивания
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
wellasgood добавил(а) новый ресурс:

Drum-kit - Барабанная установка

Плагин - Барабанная установка; Eng: "Drum kit" (дата создания этого файла: 16.11.2019)

Описание: На сервере через меню создаются модели барабанной установки из частей (тарелки, томы, хайхеты и тп). Далее игрок подходит к установке, нажимает на Е (use) и ему предлагается игра на барабанной установке в разных режимах (звуки). Как только игрок нажмет активировать палочки, он перемещается к установке и не сможет двигаться (эффект сидения на стуле), а также ему выдаются барабанные палочки.

Как...
Узнать больше об этом ресурсе...
 
Сообщения
142
Реакции
29
Even i didnt undestand fully how is it being used (played), to me it seems interesting and new. GJ!
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
jocasrb, good afternoon, try on the local server :) to get started. I'm glad that you were interested.
 
Сообщения
494
Реакции
109
Помог
16 раз(а)
Это просто гениально :D Я хз баг или нет. Создал установку,но она чуть в воздухе создалась,пробовал опустить вниз ее,шаг слишком большой,на глаз 32 юнита что ли. Слишком много короче,сложно выровнять нормально. А так прикольно конечно.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Да, нужно ставить наводя прицел при установке немного на землю, так же можно двигать установку с помощью функции перемещения.
10 Дек 2019
Когда при установке прицел направлен далеко или в воздух, могут быть смещения по осям..
 
Сообщения
3,331
Реакции
1,464
Помог
124 раз(а)
wellasgood, код уже гораздо лучше, чем раньше, но ещё есть некоторые моменты.

1. Использование хардкода:
Diff:
-g_szLogPath[64]
+g_szLogPath[MAX_RESOURCE_PATH_LENGTH]
Diff:
-new szMenu[512];
+new szMenu[MAX_MENU_LENGTH];
Diff:
-new iKeys = (1<<0|1<<1|1<<2|1<<3|1<<9);
+new iKeys = MENU_KEY_1|MENU_KEY_2|MENU_KEY_3|MENU_KEY_4|MENU_KEY_0;
И всё то же самое в других местах ниже.
Diff:
// в начале плагина
+enum _:XYZ
+{
+    X,
+    Y,
+    Z
+}
//во всех местах с координатами
-new Float:vOrigin[3];
-vOrigin[0] = str_to_float(szX)
-vOrigin[1] = str_to_float(szY)
-vOrigin[2] = str_to_float(szZ)

+new Float:vOrigin[XYZ];
+vOrigin[X] = str_to_float(szX)
+vOrigin[Y] = str_to_float(szY)
+vOrigin[Z] = str_to_float(szZ)
(enum можно использовать не только в качестве структуры, но и для убирания хардкода.)

То же самое можно сделать со строками 420-425, 651-659, и т.д.

2. В некоторых местах код можно было бы сделать читабельнее:
Diff:
-for(new p; p < DrumData-1; p++) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[%d] \y# \w%L \r[\y%L\r]^n", p+1, id, fmt("DRUM_MENU_ITEM_SETTINGS_%d", p+1), id, !g_eDrumData[id][p] ? "DRUM_ON" : "DRUM_OFF");
+for(new p; p < DrumData-1; p++)
+{
+    iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "\r[%d] \y# \w%L \r[\y%L\r]^n", p+1, id, fmt("DRUM_MENU_ITEM_SETTINGS_%d", p+1), id, !g_eDrumData[id][p] ? "DRUM_ON" : "DRUM_OFF");
+}
Diff:
-if(g_eCvarData[g_DrumSettings]) iKeys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<9);
-else iKeys = (1<<0|1<<1|1<<2|1<<3|1<<9);
+if(g_eCvarData[g_DrumSettings])
+{
+    iKeys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<9);
+}
+else
+{
+    iKeys = (1<<0|1<<1|1<<2|1<<3|1<<9);
+}
Diff:
-while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "1"))) check_ent = ent;
+while((ent = engfunc(EngFunc_FindEntityByString, ent, "classname", "1")))
+{
+    check_ent = ent;
+}
3. Строки 676-680 можно в switch().

4. ??
Diff:
-get_mapname(mapname, MAX_MAPNAME_LENGTH-1);
+get_mapname(mapname, charsmax(MAX_MAPNAME_LENGTH));
Далее мелочи, но всё же:

5. Почему бы, раз не заявлена совместимость с 1.8.2, не использовать reapi?

6. Не везде сохраняешь одинаковую стилистику кода. (Это уже совсем мелочь, но я, как перфекционист, не мог пройти мимо☺)

Если решил ставить точки с запятой, ставь после каждой строки.

Разный стиль скобок, на строках 649-660 и 675-681.

Почему бы, например на 610 строке используешь %l, а на 587 %L? И таких мест несколько. Если уж на то пошло, то на 587 лучше использовать LANG_SERVER, чтоб логи были на языке сервера.

7. В кварах то же можно было бы сделать мультиязычность.

8. Строка 169, и её вызов: почему cmdReadCvars(), когда это создание кваров?

9. В fakemeta_util входит fakemeta.
Diff:
-#include <fakemeta>
10 Дек 2019
10. В motd тоже нужно сделать мультиязычность.
 
Последнее редактирование:

Ayk

Сообщения
763
Реакции
476
Помог
19 раз(а)
ле: бред написал, сейчас заметил

Необычный плагин, не думал что кто то когда то сделает такое в ФПС-е.
 
Сообщения
3,331
Реакции
1,464
Помог
124 раз(а)
wellasgood, ещё лучше будет сделать возможность выбора размера шага для передвижения платформы.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Nordic Warrior, это сделано!
10 Дек 2019
C++:
g_Cvars = create_cvar("dr_move_settings", "30.0", FCVAR_NONE, "Drum move value settings", false, 0.0, false, 0.0);
    bind_pcvar_num(g_Cvars, g_eCvarData[g_MoveSettings]);
10 Дек 2019
g_eCvarData[g_MoveSettings] - это значение квара отвечает за передвижение

Меню создание доступно для 1 человека по сути, главного админа. (Он расставляет по картам модели). По этому в кваре сделал.
 
Сообщения
1,668
Реакции
1,493
Помог
24 раз(а)
Зачем так редактор смещений, если ставишь по прицелу и умышленно поднимаешь её на 22 юнита?

Класснейм с названиями от 1 до ~. Так не хорошо делать.
10 Дек 2019
+if(g_eCvarData[g_DrumSettings]) +{ + iKeys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<9); +} +else +{ + iKeys = (1<<0|1<<1|1<<2|1<<3|1<<9); +}
А константы кнопок?
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Что бы при создание не застрявало в текстурах..
10 Дек 2019
fl0wer, по поводу класснейма, так легче работать
10 Дек 2019
Можно перебирать циклами и тп, так легче работать сравнивать класснеймы (подставлять где надо)
 
Сообщения
3,331
Реакции
1,464
Помог
124 раз(а)
Меню создание доступно для 1 человека по сути, главного админа. (Он расставляет по картам модели). По этому в кваре сделал.
Это не удобно. Я имел в виду изменение в реальном времени, в меню.
10 Дек 2019
А константы кнопок?
Об этом писал в п. 1.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Nordic Warrior, а ну вообще можно добавить пункт в меню перемещения + избавиться от квара. В пункте выбирать на сколько перемещать..
10 Дек 2019
Ayk, сам от себя не ожидал)) просто за идею, увлекся и вот получилось
 
Сообщения
1,668
Реакции
1,493
Помог
24 раз(а)
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
fl0wer, да, понял... Ладно исправлю в обнове. Спасибо.
 
Сообщения
142
Реакции
29
Isnt it better to use drop_to_floor when creating the model?
 
Сообщения
1,668
Реакции
1,493
Помог
24 раз(а)
jocasrb, or maybe better is delete vOrigin[2] += 22.0?
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Зачем так редактор смещений, если ставишь по прицелу и умышленно поднимаешь её на 22 юнита?
fl0wer, если убрать выставление высоты при создании, то некоторые модели исчезают)
Установка создается неполная (если не выставлять чуть выше)

1576013771045.png

А вот с выставлением высоты при создании:

1576013981695.png
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу