Перейти к содержанию

Electr0

Администраторы
  • Постов

    10 372
  • Зарегистрирован

  • Посещение

  • Победитель дней

    414

Весь контент Electr0

  1. if(iChangeAxis == 2) { GetEdictClassname(entity, class, sizeof(class)); if (StrEqual(class, "prop_minigun") || StrEqual(class, "prop_minigun_l4d1")) { continue; } } не выставляет статус ошибки, в итоге она игнорируется, в принципе не критично учитывая отключенные миниганы.
  2. Electr0

    Кнопки

    прототип 2.2 добавлено предсказание позиций предметов после действий для фикса троллинга (как у обычных функций редактирования позиции и углов) добавлена отправку команды на выключение / включение анимации выключателя если не пройдена проверка на позиции предметов на шаг вперед добавлена поддержка поворотов. добавлена поддержка копирования кнопок для root админов серьезные оптимизации в импорте кеша кнопок из MYSQL вместо 49 строк теперь 2 =)
  3. Electr0

    Кнопки

    прототип 2.1 добавлена поддержка настройки скорости анимации у кнопок, после чего ускорена кнопка в виде щита с автоматом в 3 раза, т.к. была слишком вальяжная добавлена поддержка переключения яркости ламп добавлена поддержка действий для обычных кнопок (Push) добавлено ограничение по дальности от кнопки в 100 юнитов, если игрок находится дальше то операции с кнопками не выполняются.
  4. Electr0

    Кнопки

    Получена первая версия 2 прототипа, эхей оно научилось раздвигать двери, следующая на очереди задача заставить сие включать и выключать лампы
  5. Electr0

    Кнопки

    прототип 2: действия сложности: необходим просчет всех действий на шаг вперед для исключения троллинга еще до разрешения на нажатие кнопки, необходимо написать здоровенный свич в который придется копировать функционал поворотов, передвижения по осям предметов и многое другое. для исключения разрыва логики с системой отмены повтора для кнопок будет доступно только передвижение предметов по их собственным осям для исключения проблем при перемещении убег в пространстве или поворотах убег целиком
  6. Electr0

    Кнопки

    написан прототип кнопок, пока они не умеют ничего кроме как переключатся. Реализация: Сделано полностью на базе prop_dynamic, дополнительный проп func_button не понадобился, а значит лимиты на дополнительные ентити тратится не будут. Типы: Кнопка ( просто кликаем, и она отжимается обратно) Выключатель ( работает как обычный выключатель ) Все кнопки на данный момент поддерживают оба режима, это было сложновато но получилось. Анимации: У кнопок есть полноценные анимации включения / выключения Звуки: У кнопок на текущий момент есть звук тапа по кнопке Сохранение / загрузка: На текущий момент кеш данных кнопок успешно сохраняется и загружается из базы данных, для кнопок типа выключатель сохраняется положение включен / выключен, так например если вы оставили кнопку включенной на момент сохранения то она запомнит статус и когда загрузите слот то и она будет включенной. Модельки: На данный момент их две, стандартный щиток белый и кнопка от лифта, взяты потому что у них есть анимации нажатий и переключений. Скрины: Следующий прототип будет направлен на реализацию действий, а уже после него будет писаться код настройки кнопок игроком через меню, после чего будет скорее затишье потому что очень много нюансов которые предстоит еще устранить, я говорил о них когда раньше отказывался это реализовывать, но это очень интересный в плане возможностей проект, подумать только сколько сценариев использования.
  7. Electr0

    Кнопки

    как уже говорил в посте в другой теме, делать буду через симуляцию, соотв придется делать побочку внутри плагина ради экономии лимитов пропов и затрат на хранение данных о том какой кнопке принадлежит какой func_button, но есть и другие проблемы, нет нормальных кнопок: Есть вот это: выключен. Включен: такой себе вариант, огромный слишком. в игре такие кнопки переключатся анимацией в данном случае ON, OFF и текущую анимацию узнать нельзя.
  8. данное предложение выдвинуто в рамках проекта по кнопкам, в связи с тем что плодить ентити func_button на каждую кнопку я не собираюсь в и так сжатых лимитах, будем на нажатиях кнопки USE делать трассер и выяснять куда тогда смотрел игрок если на оружие или кнопку то делаем то-то. По крайней мере после этого изменения будет выработана логика работы с муляжами с которыми может взаимодействовать игрок.
  9. причин на это две: боты, для них движок создает кеш хватабельных предметов у которого есть лимиты, и допустим если ты заспавнишь 300 аптечек то сервер упадет из-за переполнения этого кеша. физика, у оружия есть физика коллизий с предметами что в некоторых ситуациях провоцирует проблемы с производительностью, движок игры ведь не рассчитывался на то что кто-то будет грузить по 50 пушек в одном месте на бильярдном столе, при загрузке таких построек иногда идет дым который как раз по этой части физика 2, у оружия есть физика нахождения в пространстве, в частности если пострелять по находящейся в врздухе коробке с феерверками она опустится вниз, если заспавнить лазеры в воздухе они упадут вниз, для этих проблем создано много костылей и это не есть хорошо если предметы всеравно не выдают оружие сами.
  10. Electr0

    Кнопки

    Возможности Описание: Кнопки представляют из себя полностью анимированые переключатели, которые можно настроить на выполнение разных действий над предметами. Применение: Контроль освещения построек, можно как включать выключать, так и менять цвет освещения нажимая на кнопки Создание разных интересных вариантов входных дверей с удаленным управлением через кнопку Создание сложных развлекательных лабиринтов с большим количеством ловушек Много чего можно придумать, ограничение лишь в фантазии Ограничения: Лимит действий на кнопку: 20 Лимит действий над одним предметом в рамках одной кнопки: 10 Типы: Переключатель ( работает как обычный выключатель, действия совершенные при включении, при выключении выполняются в обратной последовательности ) Кнопка ( при нажатии выполняет действия которые нужно делать при включении и отжимается обратно ) Примеры моделей кнопок: Выключено: Включено: Настройки кнопки (!f - Управление => Настройки кнопки): Название Тип Заблокировать после использования Пароль Обзор действий Добавление действий Тип медленного передвижения Скопировать действия с другой кнопки Сбросить настройки Настройки действий: Типы действий над предметами: Передвинуть по осям предмета Передвинуть по осям предмета [Медленно] Повернуть по осям предмета Повернуть по осям предмета [Медленно] Заблокировать (Дверь / Кнопку) Разблокировать (Дверь / Кнопку) Открыть дверь Закрыть дверь Выставить яркость Выставить цвет по названию Выставить RGB цвет Выставить скин Выставить анимацию Выставить статус ВКЛ. (Кнопке) Выставить статус ВЫКЛ. (Кнопке) Перенастройка (вы можете перенастроить уже добавленное действие над предметом, в таком случае выбирать курсором, как при добавлении не придется) Добавить еще (вы можете добавить еще одно действие к предмету) Очередность (если у вас в рамках одной кнопки выполняется несколько действий над одним предметом, вы можете менять очередность их выполнения, для этого есть кнопки вверх / вниз в меню обзора действий) Удаление Подсветка (красная): При заходе в меню настроек, если выбрана кнопка, то она подсвечивается. В меню обзора действий, предметы действий подсвечиваются. При добавлении предмета в действия кнопки, если выбран предмет который можно добавить то он так же подсвечивается Предварительные проверки: Перед запуском выполнения действий кнопки на передвижение и повороты, выполняется проверка на то попадет ли предмет действия в игрока, так же действие не начнут выполнятся если игрок стоит на предмете действия или прыгает на нем. Если предметом действия являются двери и пока они открываются / закрываются кнопку нельзя нажать. Если предметом действия является кнопка, пока она включается / выключается кнопку нельзя нажать. Сохранение Конечно же все это сложно настроенное кнопочное хозяйство вы можете сохранить себе в слот, поддерживаются снимки конца раунда и смены карты. Как найти?: !f => Предметы => Наборы => Кнопки !f => Предметы => Часто используемое => Кнопки Цена: 100 игровых $ Меню: О визуальном виде меню можно посмотреть ниже, разделе стили меню, применен тот же стиль меню что и в библиотеке. Стили меню Меню настройки кнопки: Настройка кнопки UUID: 4bf6ab2b-8226-413c-84b6-14249bd16bdb 1. Обновить Название - Переключатель света в холле 2. Сменить Тип - Переключатель 3. Сменить Заблокировать после использования 4. Сменить Действия (4 / 20) 5. Обзор (если 0 действий то серая) 6. Добавить (если 20 действий уже есть то серая) 8. Назад Меню обзора действий: Действие 1 / 4 UUID: 4bf6ab2b-8226-413c-84b6-14249bd16bdb Тип предмета: Лампа (Люминесцентная) Тип действия: Выставить яркость Включено: 500 / На 500 (Если тип кнопка) Выключено: 0 (Если тип кнопка не показывать) 1. Перенастроить Очередность 1 / 2 2. Вверх 3. Вниз 4. Удалить 8. Назад 9. Далее Действие 2 / 4 UUID: 4bf6ab2b-8226-413c-84b6-14249bd16bdb Тип предмета: Лампа (Люминесцентная) Тип: Выставить яркость Включено: 500 / На 500 (Если тип кнопка) Выключено: 0 (Если тип кнопка не показывать) 1. Перенастроить Очередность 2 / 2 2. Вверх 3. Вниз 4. Удалить 8. Назад 9. Далее Действие 3 / 4 UUID: 4bf6ab2b-8226-413c-84b6-14249bd16bdb Тип предмета: Дверь Тип: Передвинуть предмет по его ОСИ Ось: Y (Если тип кнопка не показывать) Включено: -54.51 / На -54.51 по оси Y (Если тип кнопка) Выключено: 54.51 (Если тип кнопка не показывать) 1. Перенастроить Очередность 1 / 2 2. Вверх 3. Вниз 4. Удалить 8. Назад 9. Далее Действие 4 / 4 UUID: 4bf6ab2b-8226-413c-84b6-14249bd16bdb Тип предмета: Дверь Тип: Передвинуть предмет по его ОСИ Ось: Y (Если тип кнопка не показывать) Включено: -54.51/ На -54.51 по оси Y (Если тип кнопка) Выключено: 54.51 (Если тип кнопка не показывать) 1. Перенастроить Очередность 2 / 2 2. Вверх 3. Вниз 3. Удалить 8. Назад Благодарности: @raziEiL идея выставления обратной скорости воспроизведения анимации, которая очень подошла для организации анимации выключения щитового переключателя и голубой кнопки, модели которых не имеют анимации выключения. @asha, @Marysan, @EskimoCallboy тестирование
  11. Electr0

    UUID для предметов

    исправлено отсутствие генерации нового UUIDv4 для предмета который скопирован.
  12. согласно бенчмарку по старому загрузка информации из ответа сервера в строку, убежки на 216 прежметов занимает time: 0.001121 seconds по новому: time: 0.000678 seconds конвертация числа в строку занимает больше времени чем строка в строку. Изменялись подобные куски кода на: IntToString(SQL_FetchInt(hndl, 3), sSavedObjectInfo[obj_info_solid], OBJ_INFO_MAX_SIZE); // [obj_info_solid] solid (3) На такие: SQL_FetchString(hndl, 3, sSavedObjectInfo[obj_info_solid], OBJ_INFO_MAX_SIZE); // [obj_info_solid] solid (3)
  13. Реализован способ сохранения через KeyValue Значение Статус изменено на: Тестируется
  14. Похоже изобретать велосипед не нужно, оказалось в sourcepawn есть неописанная функция в docgen но она есть в keyvalues.inc // Exports a KeyValues tree to a string. The string is dumped from the current position. // // @param buffer Buffer to write to. // @param maxlength Max length of buffer. // @return Number of bytes that can be written to buffer. public native int ExportToString(char[] buffer, int maxlength); использование: char sString[6000]; KeyValue.ExportToString(sString, sizeof(sString)); можно будет keyvalue использовать .
  15. судя по всему то что мне нужно это json, нужно освоить.
  16. Или XML подобный вариант.. (описано раздвигание двух предметов по их осям y, получается своего рода дверь как в супермаркетах, створки которой отъезжают по сторонам) <actions> <action> <uuid>0a1315d1-ce1b-11e8-88bc-00163e010904</uuid> <name>Дверь 1</name> <act_id>3</act_id> <arg1>y</arg1> <arg2>100</arg2> </action> <action> <uuid>0a131a69-ce1b-11e8-88bc-00163e010904</uuid> <name>Дверь 2</name> <act_id>3</act_id> <arg1>y</arg1> <arg2>100</arg2> </action> </actions> В сжатом виде: <actions><action><uuid>0a1315d1-ce1b-11e8-88bc-00163e010904</uuid><name>Дверь 1</name><act_id>3</act_id><arg1>y</arg1><arg2>100</arg2></action><action><uuid>0a131a69-ce1b-11e8-88bc-00163e010904</uuid><name>Дверь 2</name><act_id>3</act_id><arg1>y</arg1><arg2>100</arg2></action></actions> только вот парсить это дело и работать с этим, придется вручную везде, но смотрится читабельно Есть так же вариант c json, описанная структура выше будет выглядеть вот так: { "actions": { "action": [ { "uuid": "0a1315d1-ce1b-11e8-88bc-00163e010904", "name": "Дверь 1", "act_id": "3", "arg1": "y", "arg2": "100" }, { "uuid": "0a131a69-ce1b-11e8-88bc-00163e010904", "name": "Дверь 2", "act_id": "3", "arg1": "y", "arg2": "100" } ] } } В сжатом виде: {"actions":{"action":[{"uuid":"0a1315d1-ce1b-11e8-88bc-00163e010904","name":"Дверь 1","act_id":"3","arg1":"y","arg2":"100"},{"uuid":"0a131a69-ce1b-11e8-88bc-00163e010904","name":"Дверь 2","act_id":"3","arg1":"y","arg2":"100"}]}}
  17. как выяснилось keyvalue не умеет в строку выгружатся ><, так что если ничего не удастся найти альтернативного, придется самому собирать строку.
  18. Electr0

    UUID для предметов

    в первой версии выдавало 37 символов, а нужно 36. пересгенерировал uuid для всех предметов в базе.
  19. Надо найти способ хранить действия в памяти для кнопки. К примеру действия над пятью предметами: Требования: Как это будет хранится в MYSQL до едрени фени, лишь бы было в строку и без запрещенных для запросов символов, скорее всего придется кодировать получившееся в base64 Легкость добавления, удаления, обновления информации т.к. по ходу придется делать все это на разных этапаж жизни кнопки Как вариант: "" { "0a1315d1-ce1b-11e8-88bc-00163e010904" { "name" "Дверь 1" "action_type" "3" "arg1" "r" "arg2" "100" } "0a1317d8-ce1b-11e8-88bc-00163e010904" { "name" "Дверь 2" "action_type" "3" "arg1" "r" "arg2" "100" } } Подобное можно записать в base64: IiIKewoJIjBhMTMxNWQxLWNlMWItMTFlOC04OGJjLTAwMTYzZTAxMDkwNCIKCXsKCQkibmFtZSIJCQkJItCU0LLQtdGA0YwgMSIKCQkiYWN0aW9uX3R5cGUiCQkiMyIKCQkiYXJnMSIJCQkJInIiCgkJImFyZzIiCQkJCSIxMDAiCgl9CgkiMGExMzE3ZDgtY2UxYi0xMWU4LTg4YmMtMDAxNjNlMDEwOTA0IgoJewoJCSJuYW1lIgkJCQki0JTQstC10YDRjCAyIgoJCSJhY3Rpb25fdHlwZSIJCSIzIgoJCSJhcmcxIgkJCQkiciIKCQkiYXJnMiIJCQkJIjEwMCIKCX0KfQ==
  20. одна из проблем решена, теперь будет на кого указывать. осталось придумать как сохранять, загружать и хранить описание действий над предметами у пропа кнопки, ведь унифицированный загрузчик принимает массив свойств предметов 33 строки и размер строки 128, но на описание того что нужно будет описать может уйти намного больше символов, нельзя ради одного жирного параметра раздувать размер всех остальных, это просто дико)
  21. нет смысла его сохранять для каждого прежмета, ведь при групповых действиях предметы 100% игрока который их пометил и выполняет над ними действия. это улучшает результаты при сохранении передвижения 341 предмета вот такие показатели: до: 0.016212 secondsпосле: 0.013063 seconds
×
×
  • Создать...