1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Помощь в освoении Mapster32 и скриптов EDuke32, а также других его редакторов

Тема в разделе "Мастерская", создана пользователем LipSheZ, 27 дек 2007.

?

Играя в Duke Nukem, пробовали ли вы когда-нибудь редактировать его con-файлы?

  1. Да, конечно!

    50,0%
  2. Было несколько раз, но я в них ничего не понял(а), там всё так сложно...

    20,6%
  3. Нет, даже и не думал(а) об этом никогда.

    29,4%
  1. LipSheZ Пахан

    LipSheZ

    Регистрация:
    1 окт 2007
    Сообщения:
    908
    Вызвать окно с номерами, наименованиями и координатами всех объектов, перечисленных выше.
    Просто путаница. Кое-где получились дублированные, где-то нет связей из-за того, что неправильно выставлены таги. Хочу просто навести порядок.
     
  2. New Beast

    New Beast

    Регистрация:
    7 янв 2005
    Сообщения:
    21
    А толку? На доске походу намного понятнее всё выглядит, тем более что необходимые спрайты всегда можно изолировать и работать с ними отдельно.

    Ну дык это только вручную делается, с небольшой посторонней помощью. Чтобы остальные спрайты (без тагов) не мешались, их достаточно заморозить. В окне статистики карты выдаётся минимальный свободный ло-таг переключателя, а также минимальные свободные хай-таги некоторых секторэффекторов. Ими и руководствуйся. Можно навести мышу на спрайт и нажать W, чтобы перейти к подобному (с такими же тагами или тайлом), иногда помогает сориентироваться. В конце концов все таги можно сбросить и задать заново.
     
  3. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    а как в Eduke32 сделать поддержку 6 ключей? например у ключей есть 3 палитры: 0, 21 и 23, если берешь ключ, я так понял прога сравнивает палитру ключа и замка и дает команду на открытие двери. вот может написать скрипт, чтобы прога делала тоже самое с палитрой 22 например?
     
  4. New Beast

    New Beast

    Регистрация:
    7 янв 2005
    Сообщения:
    21
    M210, угу, Дюк сам по себе поддерживает только три цвета ключа. Для поддержки остальных необязательно добавлять несколько per-player переменных и программировать свои ключи с замками, вот эта переменная http://wiki.eduke32.com/wiki/Got_access хранит по битам имеющиеся у Дюка карты... достаточно перепрограммировать actor ACCESSCARD, реализовав там прямое присвоение этой переменной через операцию orvar вместо addinventory, а через EVENT_GAME добавить описания этих новых карт для замков (их два вида), используя команды operateactivators, operatemasterswitches, operaterespawns и operatesectors для данного спрайта, чтобы замок активировать. Как-то так. Если нужны примеры - попробую сделать.
     
  5. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    New Beast,
    да конечно.попробуй плиз,а если че, я дальше по аналогии делать буду :) просто я только начал изучать кон скрипты и мне сложно пока связать все эти комманды вместе,я пока догадался как сделать разбивающиеся спрайты:)

    Добавлено через 6 минут
    Да и еще. Хорошо бы связать эти ключи с HUD'ом,чтобы как в SW,если ключей много,то они перекрывали друг друга. А еще лучше,что бы было видно все...лежали также лесенкой,но из под одного виднелся край другого,типа в два слоя. Если не понятно, могу потом сделать скрин как должно выглядеть :)
     
    Последнее редактирование: 31 мар 2008
  6. LipSheZ Пахан

    LipSheZ

    Регистрация:
    1 окт 2007
    Сообщения:
    908
    В каком углу экрана ты хочешь отображать ключи? Прикрепи-ка рисунок, чтобы всем всё было понятно, а я потом через некоторое время я выложу тебе код.

    Да, сделай, пожалуйста, мне самому интересно.

    New Beast, я чего-то всё никак не могу понять действие нескольких команд: orvar, xorvar, modvar, andvar, ifvarand, shiftvar(r/l). Просто не понимаю, хоть ты всё рухни. Вики читал, но всё без толку, поалуйста, попробуй это мне объяснить.
     
  7. New Beast

    New Beast

    Регистрация:
    7 янв 2005
    Сообщения:
    21
    Двоичное представление числа себе преставляешь?

    Угу, вот только нельзя походу поверх статуса ещё иконки рисовать, только рядом...
     
  8. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Начиная с самого простенького, я столкнулся с такими вот командами:
    Код:
    ifactioncount
    ifcount
    ifp palive
    ifpdistl
    ifp phigher
    palfrom
    ifrnd
    
    ну и еще я понял что
    Код:
    ifcount 32
      {
       resetcount
        ifp palive
          ifpdistl 1480
            ifp phigher
      {
          addphealth -1
          palfrom 16 16
          ifrnd 96
            sound DUKE_LONGTERM_PAIN
        }
      }
    
    вместе дают ущерб игрока на чисто равное addphealth -1, от какого-либо объекта
    Объясните мне действие каждой из этих команд
     
  9. LipSheZ Пахан

    LipSheZ

    Регистрация:
    1 окт 2007
    Сообщения:
    908
    Ладненько, давай по-порядку, начиная с простого:
    • ifp palive <do something> - действие <do something> выполняется, если игрок (далее APLAYER) жив, т. е. если здоровье его > 0.
    • ifp phigher <do something> - действие выполняется, если центральная точка APLAYER'го спрайта выше ц. точки актора, в пределах кода которого применяется данное условие.
    • ifpdistl <value> <do something> - код <do somthing> выполняется, если 2d-расстояние между APLAYER'ом и actor'ом, внутри кода которого применяется это условие, меньше заданного <value>. Расстояние измеряется в Build Unit'ах (далее BU).
    • ifactioncount <value> <do something> - если смена фреймов (картинок) в анимации текущего action'на произошла <value> кол-во раз, то выполняется <do something>. Скорость перелистывания фреймов определяется последним числом во время определения самого action'на. В action MYACTION 0 7 1 1 10 число 10 и влияет на скорость смены картинок. Измеряется она также в BU. Так, если ты напишишь ниже: ifactioncount 38 <тыры-пыры>, то <тыры пыры> начнётся, когда пройдёт три цикла смены картинок и поменяются восемь фреймов из следующего цикла.
    • ifcount <value> <do something> - по истечении времени <value>, загружается код <do something>. Измеряется время в BU.
    • palfrom <value_i> <value_r> <value_g> <value_b> - впышки на экране, которые возникают, когда, например, APLAYER получает повреждения. Здесь <value_i> - это яркость вспышки (интенсивность), остальные три значения определят цвет вспышки: <value_r> - сочетание красного цвета с залёным и синим, которые могут быть заданы как <value_g> и <value_b> соответственно. Все value могут быть от 0 до 64. Причём необязательно задавать все три цвета, можно какой-нибудь один или два любых. Интенсивность должна быть указана во всех случаях. Примеры: palfrom 60 0 0 64 - яркая вспышка синего цвета, palfrom 25 64 32 - слабая ораньжевая, palfrom 64 64 64 64 - ослепляющая белая (типа, как после использования Flash Bomb в ShadowWarrior'e).
    • ifrnd <value> <do something> - значит с вероятностью <value от 1 до 255> сделать что-либо. Иногда нам в школе ставят оценки по пятибальной шкале, реже по десятибальной. У нас, у людей, вероятность измеряется в процентах, т. е. от 1 до 100, а у Дюка немного по-другому - от 1 до 255 (забавно, что эти величины тоже называются BU, вот такой универсальный термин!). Там другая "шкала" оценивания вероятности: 100 наших процентов соответствуют 255ти Дюковским.

    Ну что, всё понятно по этим командам? Если нет, спрашивай ещё. По поводу вил - скажи мне, какой *.art-файл последний в твоём TC? Мне надо знать его номер, чувствую, надо будет вставлять новый TilesXXX.art. Ну, ты жми на кнопку "спасибо" хоть иногда, плз...
    Чтобы этого избежать, можно заблокировать HUD и на его месте нарисовать бладовский через rotatesprite. Правда, палево потом начнётся несусветное с рисованием циферек для ammo в каждой ячеечке - это долгое и скучное занятие. Но это возможно...
    Нет, я окончил 9 классов, учусь в музыкальном университете, а там высшей математики у нас нет... Но что же это за команды всё-таки (с переменными)?

    Для особо интересующихся посетителей этой темы даю ссылки на посты из другой темы, тоже по вопросам скриптования EDuke32:
    http://old-games.ru/forum/showthread.php?p=376501#post376501
    http://old-games.ru/forum/showthread.php?p=376672#post376672
    http://old-games.ru/forum/showthread.php?p=375113#post375113
    http://old-games.ru/forum/showthread.php?p=375648#post375648
    http://old-games.ru/forum/showthread.php?p=375857#post375857
    http://old-games.ru/forum/showthread.php?p=376845#post376845

    Вопрос к хозяевам форума: можно я продублирую посты, на которые только что выложил ссылки, в этой теме? Это было бы полезно для гостей, чтобы не шарить в разных темах и ничего в них не искать.
     
    Последнее редактирование: 2 апр 2008
    M210 нравится это.
  10. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Я всегда об этом подумывал, просто никак руки не доходили=) Извини, уже исправил :)

    пока что 21й, естественно,их будет больше :) Если надо, могу сделать арт файлы со всеми спрайтами оружия в HUD'е, ну или на крайняк текстуры вил
    Ну и на всякий случай выкладываю это:
    [​IMG]
    И кстати спасибо за ссылки! Я уверен, что они мне помогут!:good:
     
  11. LipSheZ Пахан

    LipSheZ

    Регистрация:
    1 окт 2007
    Сообщения:
    908
    Конечно, давай. Всё, что нужно для редактирования, всё давай, рано или поздно пригодится! Создай новый файл, назови его tiles022.art.
     
  12. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    Выложил :) HUDW
    Если че, я там добавил скриншоты к каждому оружию и описание

    Добавлено через 6 часов 16 минут
    я тут наткнулся на одну интересную вещь
    http://wiki.eduke32.com/wiki/EVENT_LOGO
    Поидее с помощью этих команд можно убирать или изменять всю начальную заставку в игре, вот только я никак не могу понять как работают эти ФЛАГи, хочу удалить LOGO_TITLE, там где картинка с самим дюком нюкемом, который стоит на монстре и появляется надпись Duke Nukem 3d Atomic
     
    Последнее редактирование: 16 июн 2013
  13. LipSheZ Пахан

    LipSheZ

    Регистрация:
    1 окт 2007
    Сообщения:
    908
    Вечером разберёмся... Мне в универ бежать надо.
    Мы будем очень тебе признательны.
    Когда-то об этом слышал, но ничего о нём не знаю. Но очень хочется понять, что делают те команды...
     
  14. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    1+1=10 больше тут представлять нечего:baby:
     
  15. New Beast

    New Beast

    Регистрация:
    7 янв 2005
    Сообщения:
    21
    Хы, объяснять долго. Здесь вроде всё объясняется http://ru.wikipedia.org/wiki/Битовые_операции; modvar это вот это: http://ru.wikipedia.org/wiki/Деление_по_модулю. shiftvarr/l это битовый сдвиг, аналогичный делению и умножению на степень двойки.
     
    LipSheZ нравится это.
  16. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
  17. Grue13 вице-дегенералиссимус

    Grue13

    Регистрация:
    26 апр 2006
    Сообщения:
    10.111
    LipSheZ нравится это.
  18. M210

    M210

    Регистрация:
    19 мар 2008
    Сообщения:
    670
    А можно ли сделать новый спрайт-актор,который обьединял бы в себе 3 секторэффектора?предлагаю сделать спрайт с SЕ7 41 и 43, и 2й спрайт с SЕ7 40 и 42. Это намного упростит создание ROR на картах.еще хорошо было бы,чтобы этот спрайт распространял секторэффекторы 40,41,42,43 на сосодние секторы,но это нюансы,надо попробовать:)
     
  19. LipSheZ Пахан

    LipSheZ

    Регистрация:
    1 окт 2007
    Сообщения:
    908
    А ты предлагаешь свежие идеи! :) Главное - полезные! Что такое SE7? Зачем семёрка? Если я правильно понимаю, ты предлагаешь создать актор, имеющий свойства нескольких СекторЭффекторов с разными тагами. Для этого нам надо заскриптовать "фективный" спрайт так, чтобы он рожал несколько разных(!) побочных псевдо-СекторЭффектов в момент начала игры (точнее - когда начинается уровень). Те в свою очередь будут спавнинговать настоящие SE'ы с заданными в CON'ах тагами. Я прикрепил art-файл с нужными спрайтами и на примере этих картинок буду комментировать код. Придётся юзать события EVENT_EGS и EVENT_SPAWN - штука серьёзная.

    Сперва определяем спрайты и переменные:
    Код:
    define GLOBAL_SHAM_SE <value1>
    define SPAWNED_SHAM_SE1 <value1>
    define SPAWNED_SHAM_SE2 <value1>
    define SPAWNED_SHAM_SE3 <value1>
    define SPAWNED_SHAM_SE4 <value1>
    
    gamevar pal_var 0 0
    gamevar lotag_var 0 0
    gamevar picnum_var 0 0
    
    GLOBAL_SHAM_SE: Посмотреть вложение 7af88fcbb812ee6f6d00c260a14a866e.bmp_.jpg
    SPAWNED_SHAM_SE1: Посмотреть вложение 73cc86cff81aed2feb4094db81f3e200.bmp_.jpg
    SPAWNED_SHAM_SE2: Посмотреть вложение 6630aee8961761d4c37cbec67bf16730.bmp_.jpg
    SPAWNED_SHAM_SE3: Посмотреть вложение c808cc98fbd6dcbaaa29717fbfad579c.bmp_.jpg
    SPAWNED_SHAM_SE4: Посмотреть вложение 1a858d20e5eceeeb893281c44718c96d.bmp_.jpg

    Код:
    onevent EVENT_EGS
    getactor[THISACTOR].picnum picnum_var
    switch picnum_var
    case GLOBAL_SHAM_SE
      cstat 32768
      getactor[THISACTOR].pal pal_var
      ifvare pal_var 1 
      {
        spawn SPAWNED_SHAM_SE1
        spawn SPAWNED_SHAM_SE2
      }
      else ifvare pal_var 2 
      {
        spawn SPAWNED_SHAM_SE3
        spawn SPAWNED_SHAM_SE4
      }
    break
    case SPAWNED_SHAM_SE1
    case SPAWNED_SHAM_SE2
    case SPAWNED_SHAM_SE3
    case SPAWNED_SHAM_SE4
      cstat 32768
      spawn SECTOREFFECTOR
    break
    endswitch
    endevent
    
    onevent EVENT_SPAWN
    ifactor SECTOREFFECTOR
    {
      ifspawnedby SPAWNED_SHAM_SE1 setactor[THISACTOR].lotag 41
      else ifspawnedby SPAWNED_SHAM_SE2 setactor[THISACTOR].lotag 43
      else ifspawnedby SPAWNED_SHAM_SE3 setactor[THISACTOR].lotag 40
      else ifspawnedby SPAWNED_SHAM_SE4 setactor[THISACTOR].lotag 42
    }
    endevent
    
    В Mapster32 ставь спайты GLOBAL_SHAM_SE. если pal GLOBAL_SHAM_SE'а равен "1" (синий), то он будет объединять свойства двух СекторЭффекторов с ло-тагами 41 и 43, если "2" (красный) - то с 40 и 42. P. S. Я этот код не проверял, могут быть ошибки. А насчёт распространения SE'в на соседние сектора надо подумать.
     

    Вложения:

    • Effectors.rar
      Размер файла:
      260 байт
      Просмотров:
      41
    Последнее редактирование: 10 апр 2008
    M210 нравится это.
  20. New Beast

    New Beast

    Регистрация:
    7 янв 2005
    Сообщения:
    21
    Я делал автоматический позиционировщик SE 41/43, который позволяет избавиться от повсеместного добавления этих спрайтов. Вроде даже что-то получилось. Но надо будет попробовать через EVENT_GAME.
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление