Здравствуйте! Прошу сделать такую фичу как задавать свой кастомный радиус для актера, в общем объясню лучше так что к чему да почему. Есть актер Actor myActor 23233 { //дописав такую строку, редактор показывает радиус актера, как вот радиус у лампочки в 2д режиме, только в 3д //$Arg0CustomRadius //$Arg0 SetRadiusDamage States{ Spawn: TNT1 A 2 A_JumpIf(GetDistance(TRUE,AAPTR_PLAYER1)< Args[0], "damage") // если дистанция меньше чем арг0, дамажит loop damage: tnt1 a 1 goto spawn } } Ну а вот скрин для наглядности, на скрине стоит арг0 128, и обводка вокруг актера показывает как бы радиус.. таким образом выставляя такой объект в редакторе.. в общем думаю понятно зачем) Такой радиус можно применить не только в моем примере.. он был бы удобен и для A_RadiusGive и для других функций.
Добавлено спустя 8 часов 41 минуту 5 секунд:
Да, еще смотрю появилось новое окошко в редакторе скриптов.. Очень удобная вещь!! Спасибо большое) Но я не понял как редактировать код декорейта в таком окошке? Он не работает с pk3 архивами?
Это радиус куба\прямоугольника, я не об этом прошу. Я прошу добавить круглый радиус что бы такой радиус можно было связать с дистанцией или радиусом спавна к актеру вот как в примере выше, там я прописал в arg0 радиус 128, и gzdb в 3д режиме отрисовывает круглый радиус вокруг актера.
Но я не понял как редактировать код декорейта в таком окошке?
Ресурсы открываются в режиме "только чтение" в следующих случаях: 1. В свойствах карты включена опция "Open resources in readonly mode". 2. В свойствах ресурса включена опция "Exclude this resource from testing parameters". 3. Ресурс является вадом внутри PK3-ресурса. 4. Ресурс является официальным ИВАДом.
MaxED Спасибо, не внимательный я ) Только вот круг показывается, но он какой-то плоский, как сделать так что бы он вел себя аналогично спрайту? т.е. всегда смотрел в камеру?
Скрытый текст:
Да и можно ли как-то спрятать квадратный хитбокс, оставив только круг с центром?
А мышь тоже наводить на круглый хитбокс? (нет, вообще такая фича не помешала бы некоторым акторам и псевдоакторам, в частности было бы несоизмеримо проще выделять вершины в 3дрежиме, но кто сказал, что максед это делать будет?)
Да и можно ли как-то спрятать квадратный хитбокс, оставив только круг с центром?
2 раза нажать "Т" в 3д режиме.
ZZYZX:
в частности было бы несоизмеримо проще выделять вершины в 3дрежиме
Сейчас там считается пересечение с параллелепипедом. Я не очень понимаю как замена на пересечение с шаром того же размера сделает выделение вершин "несоизмеримо проще"...
Что-то в этом роде.. Ну или вообще не трогать эту коробку)
Для меня важен этот круглый радиус, но только если он себя будет вести как спрайт т.к. по сути GetDistance чекает в виде шара дистанцию, а не плоского круга. Ну и для радиусгиве удобно т.к. я всегда вижу до куда достает радиус, а куда не достанет, но опять же для удобства надо круг как спрайт потому что по X Y осям видно куда достанет, а по -Z и +Z не видно =(
Кстати я заметил что gzdb как-то медленнее стал переключаться в 3д режим после того как я прописал актеру: //$Arg0RenderStyle Circle
Сейчас там считается пересечение с параллелепипедом. Я не очень понимаю как замена на пересечение с шаром того же размера сделает выделение вершин "несоизмеримо проще"...
Несколько рядом стоящих вертексов будут меньше "пересекаться" с точки зрения редактора. В идеале ещё чтобы шар скейлился по расстоянию до вертекса. С паралеллепипедом такое сложно сделать. (точнее не сложно, но выглядеть будет бредово)
Не могу тестировать с портом Doom Retro. В чем загвоздка? Какой pk3 он требует, если DR основан на Chocolate Doom, где априори никаких пк3 быть не может
Что-то мне подсказывает, что у Вас в ресурсах карты или выбранной игровой конфигурации присутствуют PK3-архивы. Попробуйте их оттуда убрать, или в свойствах этих ресурсов включить опцию "Exclude this resource from testing parameters".
MaxED Вы добавите все рендерстили в окошко "edit thing" ? Просто в вики написано что есть еще AddStencil и прочие которых нет в том окошке.
Скрытый текст:
RenderStyle type Defines how this actor is rendered. Possible values include: "None" - actor is invisible. "Normal" - actor is visible and not translucent. "Fuzzy" - like the Spectre in Doom. "SoulTrans" - actor is translucent, to an amount determined by the transsouls CVAR. "OptFuzzy" - actor is fuzzy or translucent, based on user preference. "Stencil" - actor is drawn as a single color. Use StencilColor property to set the color to use. "AddStencil" - the same as Stencil, only additive. (New from 2.8.1) "Translucent" - actor is translucent. "Add" - actor uses additive translucency. "Subtract" - actor uses reverse-subtractive translucency. (New from 2.8.1) "Shaded" - treats 8-bit indexed images as an alpha map. Index 0 = fully transparent, index 255 = fully opaque. This is how decals are drawn. "AddShaded" - the same as Shaded, only additive. (New from 2.8.1) "Shadow" - equivalent to black translucent stencil with an alpha of 0.3. Default is Normal.
Еще интересно должна ли alpha актера влиять хоть как-то на рендерстиль stencil ? ну там сильнее окрашивать или слабее.. Просто сейчас кажется не влияет.
И что по этому вопросу, стоит ждать или нет?) //$Arg0Type 23 //$Arg0RenderStyle Circle Что бы рисовал круг на подобии спрайта который всегда смотрит в камеру ну или показывался примерно вот так:
Скрытый текст:
Т.е. что бы было видно радиус не только по X\Y оси, но и по -Z, +Z
И еще вопрос, можно как-то сделать var int user_MyVar публичными и приватными? Мне это надо что бы GZDB не показывал все переменные что есть у актера, т.е. показывал только те что будут публичными. да и еще GZDB не хочет присваивать переменной число с . т.е. в декорейте var float User_MyVar; и такой переменной в гздб не задается число 40.0
Хотел бы обратиться за помощью. Возникла проблема при сохранении. Я делаю проект очень крупной карты в UDMF формате. Изначально каждая из нескольких крупных частей (по 6-8 тысяч секторов) хранилась и редактировалась в отдельных файлах (для удобства). Но вот когда пришло время объединять всю геометрию в одном файле GZDoomBuilder выдал следующее сообщение при попытке сохранения:
Скрытый текст:
***********SYSTEM INFO*********** OS: Microsoft Windows 7 Ultimate GPU: AMD Radeon HD 7700 Series GZDB: R2758
********EXCEPTION DETAILS******** Выдано исключение типа "System.OutOfMemoryException". в System.String.GetStringForStringBuilder(String value, Int32 startIndex, Int32 length, Int32 capacity) в System.Text.StringBuilder.GetNewString(String currentString, Int32 requiredLength) в System.Text.StringBuilder.Append(String value) в CodeImp.DoomBuilder.IO.UniversalParser.OutputStructure(UniversalCollection cs, Int32 level, String newline, Boolean whitespace) в x:\Source\Core\IO\UniversalParser.cs:строка 696 в CodeImp.DoomBuilder.IO.UniversalStreamWriter.Write(ICollection`1 vertices, ICollection`1 linedefs, ICollection`1 sidedefs, ICollection`1 sectors, ICollection`1 things, Stream stream, String writenamespace) в x:\Source\Core\IO\UniversalStreamWriter.cs:строка 157 в CodeImp.DoomBuilder.IO.UniversalStreamWriter.Write(MapSet map, Stream stream, String writenamespace) в x:\Source\Core\IO\UniversalStreamWriter.cs:строка 117 в CodeImp.DoomBuilder.IO.UniversalMapSetIO.Write(MapSet map, String mapname, Int32 position) в x:\Source\Core\IO\UniversalMapSetIO.cs:строка 174 в CodeImp.DoomBuilder.MapManager.WriteMapToTempFile() в x:\Source\Core\General\MapManager.cs:строка 737 в CodeImp.DoomBuilder.MapManager.SaveMap(String newfilepathname, SavePurpose purpose) в x:\Source\Core\General\MapManager.cs:строка 795 в CodeImp.DoomBuilder.General.SaveMap() в x:\Source\Core\General\General.cs:строка 1426 в CodeImp.DoomBuilder.General.ActionSaveMap() в x:\Source\Core\General\General.cs:строка 1386 в CodeImp.DoomBuilder.Actions.Action.Begin() в x:\Source\Core\Actions\Action.cs:строка 256 в CodeImp.DoomBuilder.Actions.ActionManager.BeginActionByKey(Int32 key, Boolean repeated) в x:\Source\Core\Actions\ActionManager.cs:строка 557 в CodeImp.DoomBuilder.Actions.ActionManager.KeyPressed(Int32 key) в x:\Source\Core\Actions\ActionManager.cs:строка 496 в CodeImp.DoomBuilder.Windows.MainForm.MainForm_KeyDown(Object sender, KeyEventArgs e) в x:\Source\Core\Windows\MainForm.cs:строка 1371 в System.Windows.Forms.Control.OnKeyDown(KeyEventArgs e) в System.Windows.Forms.Control.ProcessKeyEventArgs(Message& m) в System.Windows.Forms.Control.ProcessKeyMessage(Message& m) в System.Windows.Forms.Control.WmKeyChar(Message& m) в System.Windows.Forms.Control.WndProc(Message& m) в System.Windows.Forms.ScrollableControl.WndProc(Message& m) в System.Windows.Forms.ContainerControl.WndProc(Message& m) в System.Windows.Forms.Form.WndProc(Message& m) в CodeImp.DoomBuilder.Windows.MainForm.WndProc(Message& m) в x:\Source\Core\Windows\MainForm.cs:строка 4078 в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Я в технических вопросах не компетентен, но предположил, что проблема в недостатке оперативной памяти... Значительное увеличение файла подкачки проблему не решило. Иные решения в голову не приходят.
Финальный объём карты должен быть таким: Vertexes: 77.337 Linedefs: 100.131 Sidedefs: 177.105 Sectors: 24.888
Я всё таки хотел выполнить проект в виде единой карты, поэтому интересуюсь способен ли GZDoomBuilder переварить подобный объём сейчас или в будущем. Или может быть проблема в чём-то ещё, что я упускаю? Вариант с использованием хаба рассматриваю как крайний. Опять много времени на переделку уйдёт...
4 гига + файл подкачки на 6 гиг. Сам процесс Builder.exe отъедает не более 1,2 гиг. Если не запускать визуальный режим то около 0,6 гиг.
Попробовал разфасовать сегменты на две отдельные карты. Обе сохраняются по началу, но ели начать что-то менять, то можно при попытке сохраниться или протестировать карту получить ту же ошибку. Методом тыка определил, что ошибка начинает появляться если зайти в визуальный режим (GZDB ещё может задуматься на минуту при этом). При попытке соединить две карты в одну сохраняться отказывается напрочь (само объединение геометрии после вставки проходит в течении 20-30 минут).
У меня - задается. Нужен пример, когда не задается.
StormCatcher77:
способен ли GZDoomBuilder переварить подобный объём сейчас или в будущем.
Способен. Проверил на карте, содержащей 2 копии ZDCMP2 (119050 vertices, 154632 Linedefs, 273693 Sidedefs, 33124 Sectors, 13300 Things). Сохранение карты занимает секунд 10, переход в 3д режим - 1-2 секунды.
Что делать, что делать. Перед запуском редактора убедиться, что доступно 2.4 Гб РАМ (больше ГЗДБ использовать не способен). Если это невозможно - докупать...