Drum-kit

Drum-kit 1.0.5

Нет прав для скачивания
Сообщения
57
Реакции
154
Помог
1 раз(а)
Задумка шикарная, но есть ряд недочётов:
1. Музыку слышит только играющий.
2. Нож не даётся перед посадкой, в итоге можно сесть с пистолетом, модель его заменится на палочки, игрок будет недоумевать.
3. У площадки какая-то непонятная модель коллизии, не отвечающая реальным размерам и имеющая какую-то странную "выемку" позади неё.
4. Если в настройках выключить музыкальные инструменты, можно ударять палочками на их место и всё слышать их звук. Или это подразумевалось как визуальная настройка?
5. Если выключить в меню часть инструментов и пересоздать площадку, часть моделей будет в одном месте, часть - в другом. То же самое будет, если создавать площадку, находясь в движении.
6. Если играть на кнопках, нажимать на них надо очень быстро и отрывисто, иначе получается мешанина из звука, отправляющегося каждый фрейм, но это уже издержки самого по себе метода игры "на кнопках"
7. Удаляя и создавая площадку, можно нарваться на segmentation fault
8. Чтобы вылезти с установки, надо выключить палочки. Пункт меню под названием выход сбивает с толку.
Ещё, конечно, сброс предыдущего звука и отправка нового не дают сыграть полноценную мелодию, но это уже ограничения движка и аудиоканалов, я так полагаю.
Полностью вещи вроде "два человека с доступом могут сесть за одну установку друг в друга", "удалить установку можно, когда на ней кто-то играет" и прочее отсутствие "защиты от дурака" не стану полностью перечислять, а то и так похоже на стену претензий, хотя всего лишь хотел оставить отзыв и пожелать развитию уникальному плагину.
 
Последнее редактирование:
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
gordon9k, доброе утро, по поводу размеров сзади установки, выемки, так надо, иначе если бы я не настроил размеры для каждой части именно так как настроил, то при наводке прицела на часть установки звук бы не проигрывался, так как при создании установки все размерности каждой части (ощутимости) съезжают и пришлост настраивать вручную именно так как настроил.

Далее, по поводу других недочетов, нужно с осторожнустью создавать установку, так как если навести прицел слишком высоко, то модели съезжают, а если далеко, тоже возможно что съедут, нужно найти золотую середину при создании, тогда все модели выстраются так как надо. Зачем Вы наводите при создании фиг знает куда прицел? Наводите чуть ниже чем по центру и все получится, а дальше после создания установки, можно ее передвинуть куда хотите через меню перемещения.

С остальным: при тестировании некоторые баги (не то что баги, а спецификв самого движка), были допущены до эксплуатации. Т.е например связанное со звуков или смещение моделей если не туда навести прицел, вполне нормальная история, с учётом что можно сделать по красоте, разместить куда нужно, переместить и сохранить, после сохранения установки, уже ничего делать не придётся.
11 Дек 2019
Далее, по поводу что музыка играется одному, а представьте что сразу несколько человек будет играть на установке? Тогда будет каша мала из звуков или вовсе сервер упадет.
11 Дек 2019
СПАСИБО конечно за критику, но 80% ваших замечаний не особо критично или вовсе не баги, или специфика движка. Но я учту некоторые моменты
11 Дек 2019
"удалить установку можно, когда на ней кто-то играет"
Шта?? Зачем Вам это!!) Ее нужно расставлять по картам в нужные места, сохранять потом, и все. Больше меню создания не нужно юзать. Кажется Вы не совсем поняли для чего этот плагин.
11 Дек 2019
Если выключить в меню часть инструментов и пересоздать
Опять же Вы не поняли, это лишь меню костимизации а не звуков, т.е отключение видимости части установки. ВИДНО НЕ ВИДНО, ВИДНО НЕ ВИДНО.

Ваши замечания, скорей всего прозвучали бы правильно так: Я хочу что бы было по-моему!! СДЕЛАЙТЕ КАК Я ХОЧУ
 
Последнее редактирование:
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Чтобы вылезти с установки, надо выключить палочки. Пункт меню под названием выход сбивает с толку.
Так было сделано специально, палочки взял, ты перемещаешься к барабанам и не можешь двигаться, для перехвата клавишь: вперед, назад, влево, вправося что бы ты не отходил и не смог при перехвате звуков через клавиши двигаться.

Как только ты уберешь палочки, выкл, то сразу сможешб двигаться и прекратятся звуки
 
Сообщения
57
Реакции
154
Помог
1 раз(а)
Ваши замечания, скорей всего прозвучали бы правильно так: Я хочу что бы было по-моему!! СДЕЛАЙТЕ КАК Я ХОЧУ
Ни в коем случае. Я лишь столкнулся с тем, что описал, и посчитал, что тестирование и подробный отзыв Вам поможет в ходе доработки плагина. Несмотря на то, что часть проблем в реальной игровой ситуации произойдёт с очень маленькой вероятностью (например, удаление установки в момент, когда она кем-то занята), тем не менее, она существует. Прислушаться к представленной мной информации или нет — Ваше право, на которое я не посягаю.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
gordon9k, ладно, спасибо конечно)) у меня проблемы с принятием критики в свой адрес
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
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 тоже нужно сделать мультиязычность.
C++:
-get_mapname(mapname, MAX_MAPNAME_LENGTH-1);
+get_mapname(mapname, charsmax(MAX_MAPNAME_LENGTH));
тут вместо charsmax(MAX_MAPNAME_LENGTH) нужно charsmax(mapname) :wacko: :yes3: :dntknw:
 

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

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