-
Постов
10 387 -
Зарегистрирован
-
Посещение
-
Победитель дней
417
Тип контента
Профили
Форумы
Баг Трекер
Предложения
Список изменений
Загрузки
Блоги
Магазин
Галерея
Весь контент Electr0
-
Прототип 0.7: Исправлен баг с сохранением бесплатной убеги из библиотеки после написания кода покупки убеги теперь при сохранении бесплатной убеги после выбора шаблона спрашивало купить ли за столько-то в такой-то шаблон и соотв покупало по выбору да )), теперь все норм сохраняет. Исправлен баг когда жмем нет при диалоге покупки убеги то меню закрывается вместо того чтобы перейти обратно к выбору шаблона в который купить постройку. В ходе тестирования с @Clarus выявлен и исправлен баг загрузкой объектов игрока на любой карте через рут команду. Реализован перевод денег после покупки убеги человеку который ее загрузил, потребовалось переписать базу данных магазина: https://ally.pro/suggestions_tracker/mega_surv/izmenit-sposob-sinhronizacii-magazina-s-bazoy-dannyh-r451/ Нужно сделать Продолжать искать баги и шероховатости Добавить инструкцию по библиотеке и шаблонам Добавить правила добавления построек Необходимо собрать тест группу из активной администрации и всех желающих и провести закрытое тестирование всех компонентов плагина потому что обновление затронуло многие части плагина.
-
Прототип 0.6: Открытие описания постройки сразу же после того она была добавлена в библиотеку, так человек сразу же может оценить описание, возможно что-то исправить тут же нажав кнопку изменить, думаю это удобно. Добавлено новое поле "Изменено:" показывает дату последнего изменения, если нету то значит не изменялась. Сделана сортировка отображения первыми построек которые были изменены/созданы позже всех Удалена логика отображения страницы по номеру последней страницы т.к. если в этот момент на другом сервере удалили убегу или изменили то у игрока возврат на страницу будет с нежелательным сдвигом, он тупо увидит не ту убегу =D, теперь возвращение идет только на страницу убеги вы всегда вернетесь туда куда надо независимо от того изменилось ли положение постройки в списке убег из нужной категории.
-
не проще обратится к valve?
-
Прототип 0.5: 95% библиотеки реализовано, осталось пройтись по коду найти моменты которые можно было бы сделать лучше, все проверить на стойкость к багоюзу Проведено тестирование с @Marysan выявленные недочеты исправлены Реализован антиспам который для построек от 10 до 50 объектов равен 2 секундам, от 50 до 100 равен 3 секундам, от 100 до 200 равен 5 секундам, оставшееся кол-во секунд показывается в кнопке показать предосмотр. Исправлены ошибочные действия после процедуры загрузки шаблонов Отображение кол-ва секунд задержки перед следующей попыткой загрузить превью:
-
Прототип 0.4 Принято решение отказатся от скриншотов т.к. мало кто будет разбиратся их заливать, нужно их обновлять еще же после обновления постройки, лучше вплотную занятся темой превью постройки которое позволит в игре увидеть то как выглядит постройка. По сути превью будет видеть только человек загрузивший его, оно не будет соприкасатся ни с кем, будет удалятся сразу же после закрытия меню построек, выхода спеки, выхода с сервера Реализовано: Превью, которое автоматически исчезает при нажатии пунктов меню, закрытии меню, исчезает Изменен стиль касательно превью теперь название кнопки отражает загружено превью или нет. Если цена платной постройки равняется 0$ что возможно после того как сменили тип постройки то ее нельзя купить в таком случае пока цена не будет выше нуля. Добавлены логи с инфой кто редактировал описание постройки и какое значение на какое менял. Реализована возможность купить платную постройку сначала выбираем шаблон, потом подтверждаем что хотим купить за столько-то денег, далее система снимает с вас цену постройки и выполняет сохранение из библиотеки в указанный шаблон, если во время этого произошла ошибка то она вернет деньги обратно.
-
Значение Статус изменено на: Исправлено
-
потому что введя раздельный контроль для каждого типа зараженных я забыл что это настраивается в конфиге теперь и забыл об этом, а конфиг однажды заменил с основного сервера когда обновлял его убирая несуществующие теперь квары которые были давно убраны из кода.
-
Урон все равно проходит как оказалось
-
Прототип 0.3 Перенесен вызов показа меню категории в которой была постройка с диалога подтверждения на время после того как запрос удаления на стороне базы данных будет исполнен. Реализована возможность сменить: название, тип, цену, категорию Переписаны все фразы в чат от библиотеки, теперь читабельность улучшилась. В панели изменения параметров построек при изменении значений теперь скрываются текущие значения. Нужно сделать: Добавить в описание постройки переход в галерею скриншотов, тоесть в описании построек в разделе скрины будет ссылка на скриншот1 и на "Все скриншоты" где уже будет меню с кнопками скриншот 1-7 Добавить в редактировании профиля постройки в библиотеке меню управления скриншотами. Скриншоты должны заливаться только в галерею и приниматся с других ресурсов кроме как с форума не должны, чтобы мы потом не искали эти картинки которые были удалены каким нибудь ресурсом который может вообще исчезнуть из интернета оставив за собой битые ссылки Подготовить и разместить в меню управления скриншотами инструкцию по загрузке скриншотов на форум
-
Составил сообщение разработчику, показал как уронить сорсмод и два варианта фикса через замену двухмерного массива и через дополнение свичей default кейзом.
-
думаю стоит сделать тестовый плагин где бы этот краш повторялся чтобы показать это разработчикам Sourcemod
-
Прототип 0.2.3.1 прошелся по switch конструкциям и добавил кейз для нестандартных значений default: проведены занудные испытания повторения бага на версии стройки предшествующей версии с библиотекой в ходе которых точно подтверждена последняя догадка что проблему вызывают двухмерные массивы вида g_iChoosedParam[ПАРАМЕТР 1][ПАРАМЕТР 2] которые я стал использовать в обработчиках нажатий меню, именно там они и крашат если само тело меню очень сложное и код в том числе не до конца описан. Фикс switch конструкций тоже помогает в этом случае, но все же это все странно. исправил баг сохранения настроек появившийся после обновы с шаблонами Реализована панель изменения описания постройки Реализована возможность пересохранить постройку в библиотеке через пункт изменить => пересохранить из файла database.sp вычлены в отдельные файлы функции по настройкам и по библиотеке чтобы не путаться в них: database_settings.sp database_library.sp Реализована возможность удалить постройку из библиотеки. Добавить логи где если изменение убеги произвел администратор то пишет кто и у какого игрока изменил, важно чтобы это было сохранено чтобы в случае чего администратор держал ответ за свои действия. Меню изменения описания постройки в библиотеке (пока что работает только кнопка назад): Бесплатной: Платной:
-
нужно пройтись по плагину и добавить заглушки на всякий случай, свичей там 407 на весь плагин вот и будет чем занятся..
-
Краш не исправлен, проблема в другом, как оказалось не во всех случаях работает упрощенная схема свичей: switch(iValue) { case 1,2: { } case 3: { } } где все значения мимо описанных кейзов просто игнорируются, например если в свич описанный выше идет значение 0, а описаны там кейзы 1,2,3!, НО ПОХОЖЕ НЕ ВСЕГДА это работает. помогло исправить краш добавление в свичи заглушки для значений отличных от описанных кейзов. switch(iValue) { case 1,2: { } case 3: { } default: { } }
-
краш в прототипе 0.2.3 локализован и исправлен, внедрена проверка препятствующая появлению таких крашей во всех трех меню где используется ручное выставление позиции меню идет проверка что позиция меню которую мы задали вообще существует.
-
как оказалось проблема в том что теперь когда я записываю последнее положение меню в глобальную переменную то значение не обнуляю и если перед переходом в другое меню и пунктов в этом новом меню меньше чем в предыдущем то сервер падает т.к. его просят отобразить меню с несуществующей позиции.
-
Прототип 0.2.3 обосрался.. Нужно исправить краш: 0 sourcepawn.jit.x86.dll!sp::CompilerBase::emit() [jit.cpp:105 + 0x29] 1 sourcepawn.jit.x86.dll!sp::CompilerBase::Compile(sp::PluginContext *,ke::RefPtr<sp::MethodInfo>,int *) [jit.cpp:64 + 0xf] 2 sourcepawn.jit.x86.dll!sp::Environment::Invoke(sp::PluginContext *,ke::RefPtr<sp::MethodInfo> const &,int *) [environment.cpp:270 + 0x15] 3 sourcepawn.jit.x86.dll!sp::PluginContext::Invoke(unsigned int,int const *,unsigned int,int *) [plugin-context.cpp:465 + 0x10] 4 sourcepawn.jit.x86.dll!sp::ScriptedInvoker::Invoke(int *) [scripted-invoker.cpp:296 + 0x1c] 5 sourcepawn.jit.x86.dll!sp::ScriptedInvoker::Execute(int *) [scripted-invoker.cpp:190 + 0x13] 6 sourcemod.logic.dll!CMenuHandler::OnMenuDisplayItem(SourceMod::IBaseMenu *,int,SourceMod::IMenuPanel *,unsigned int,SourceMod::ItemDrawInfo const &) [smn_menus.cpp:432 + 0x3f] 7 sourcemod.2.l4d2.dll!MenuManager::RenderMenu(int,SourceMod::menu_states_t &,SourceMod::ItemOrder) [MenuManager.cpp:463 + 0x19] 8 sourcemod.2.l4d2.dll!BaseMenuStyle::DoClientMenu(int,CBaseMenu *,unsigned int,SourceMod::IMenuHandler *,unsigned int) [MenuStyle_Base.cpp:531 + 0x27] 9 sourcemod.2.l4d2.dll!CRadioMenu::DisplayAtItem(int,unsigned int,unsigned int,SourceMod::IMenuHandler *) [MenuStyle_Radio.cpp:595 + 0x26] 10 sourcemod.2.l4d2.dll!CRadioMenu::Display(int,unsigned int,SourceMod::IMenuHandler *) [MenuStyle_Radio.cpp:571 + 0x12] 11 sourcemod.logic.dll!DisplayMenu [smn_menus.cpp:684 + 0x12] 12 sourcepawn.jit.x86.dll!sp::JitInvokeFrame::JitInvokeFrame(sp::PluginContext *,unsigned int) [stack-frames.cpp:75 + 0x57] 13 sourcepawn.jit.x86.dll!sp::Environment::Invoke(sp::PluginContext *,ke::RefPtr<sp::MethodInfo> const &,int *) [environment.cpp:282 + 0x6] 14 sourcepawn.jit.x86.dll!sp::PluginContext::Invoke(unsigned int,int const *,unsigned int,int *) [plugin-context.cpp:465 + 0x10] 15 sourcepawn.jit.x86.dll!sp::ScriptedInvoker::Invoke(int *) [scripted-invoker.cpp:296 + 0x1c] 16 sourcepawn.jit.x86.dll!sp::ScriptedInvoker::Execute(int *) [scripted-invoker.cpp:190 + 0x13] 17 sourcemod.logic.dll!CMenuHandler::OnMenuSelect2(SourceMod::IBaseMenu *,int,unsigned int,unsigned int) [smn_menus.cpp:375 + 0x40] 18 sourcemod.2.l4d2.dll!BaseMenuStyle::ClientPressedKey(int,unsigned int) [MenuStyle_Base.cpp:401 + 0x1b] 19 sourcemod.2.l4d2.dll!CRadioStyle::OnClientCommand(int,char const *,CCommand const &) [MenuStyle_Radio.cpp:158 + 0x9] 20 sourcemod.2.l4d2.dll!PlayerManager::OnClientCommand(edict_t *,CCommand const &) [PlayerManager.cpp:1105 + 0x10] 21 metamod.2.l4d2.dll + 0xb385 22 engine.dll + 0x116a60 23 engine.dll + 0x4d5d5 24 engine.dll + 0x4e5bd 25 engine.dll + 0x1b4d0a 26 engine.dll + 0x1b5210 27 engine.dll + 0x1c74cd 28 engine.dll + 0x137913 29 engine.dll + 0x1241c5 30 engine.dll + 0x18c6e8 31 engine.dll + 0x18df66 32 engine.dll + 0x18e6c3 33 engine.dll + 0x19ddbb 34 engine.dll + 0x19df0f 35 engine.dll + 0x19dfb4 36 engine.dll + 0x1fa884 37 engine.dll + 0x1f7ea1 38 dedicated.dll + 0x31ce 39 dedicated.dll + 0x3906 40 dedicated.dll + 0x27ede 41 dedicated.dll + 0x4976 42 srcds.exe + 0x11fd 43 srcds.exe + 0x1929 44 kernel32.dll + 0x18654 45 ntdll.dll + 0x64b17 46 ntdll.dll + 0x64ae7
-
Прототип 0.2.3: Написан обработчик сохранения постройки из библиотеки в указанный шаблон из кода убраны массивы: g_iSelectedSnapshot[MAXPLAYERS+1] g_iSelectedSnapshotAction[MAXPLAYERS+1] g_iSelected_Player[MAXPLAYERS+1] g_iSelectedSlot[MAXPLAYERS+1] g_iSelectedTwoSlot[MAXPLAYERS+1] вместо них добавлен один g_iChoosedParam[MAXPLAYERS+1][7] с энумерацией, т.к. потребовалось расширение кол-ва таких переменных для реализации меню библиотеки что снизило бы понятность кода засильем разных переменных: PARAM_TYPE_SLOT = 0, PARAM_TYPE_SLOT2, PARAM_TYPE_SLOT3, PARAM_TYPE_SNAPSHOT, PARAM_TYPE_SNAPSHOT_ACTION, PARAM_TYPE_PLAYER, PARAM_TYPE_MENU_POS остальные массивы меню тоже получили константы энумераторы т.к. в связи с увеличением кода очень сложно понимать / вспоминать что они хранят под цифрами которые спустя месяцы уже ничего не говорят пока не начнешь искать что туда записывают. Во всех местах где использовалось вручную указание позиции меню теперь применено сохранение позиции меню и передача ее через переменную, что позволит избежать нудного переписывания номеров при добавлении новых пунктов в большие меню такие как меню управления и меню наборов где важно возвращаться на ту страницу меню с которой пришел. Кнопка сохранить постройку теперь тоже работает, после нажатия игрок выберает шаблон в который сохранить, подтверждает и происходит процедура сохранения. Исправлен баг когда при сохранении в шаблон, нулевой предмет оказывался платным и в итоге шаблон не мог корректно загрузится. Внедрена проверка на случай если слот состоит только из платных предметов и в итоге в шаблон ничего нельзя сохранить Значительная оптимизация загрузки кол-ва предметов в слотах и шаблонах при входе игрока, раньше это делалось для каждого слота и шаблона отдельным запросом которых в общей сумме 40 по 20 на слоты и 20 на шаблоны, то теперь это делается одним запросом для слотов и одним для шаблонов, данная проблема решалась для загрузки меню категорий где тоже нужно было за один запрос узнать кол-во предметах в постройках разных категорий.
-
Успешно проведена первая цепочка действий публикации постройки из шаблона в библиотеку, загрузка из библиотеки в зону под курсором
-
Прототип 0.2.2.1: Устранены недоработки по части контроля, очистки статуса работы со шаблоном, постройкой добавлено сообщение об успешном сохранении убежища в библиотеку добавлен обработчик команды пересохранения постройки из указанного шаблона, меню пока что нет на этот пункт, этим займемся после окончания допиливания кода сохранения и загрузки построек в библиотеку. Добавлен обработчик загрузки шаблона из библиотеки по BUILD ID постройки в библиотеке проверка на кол-во ламп отключена для загрузок шаблонов и шаблонов из библиотеки т.к. невозможно сохранить в шаблон оружие и другое платное отпадает необходимость проверять это. Добавлен запрет использовать загрузку построек из библиотеки после старта паники.
-
нужно сегодня добить возможность загрузки постройки и сохранения постройки из библиотеки в шаблон игрока
-
не редактировал модельки, как я помню ее сначала можно в 3DMAX или MAYA нарисовать а потом импортировать и настроить и собрать уже под движок средствами authoring tools