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

Вис691

Управление проектами
  • Публикаций

    1 470
  • Пожертвование

    0.00 руб 
  • Зарегистрирован

  • Посещение

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

    65

Вис691 стал победителем дня 2 декабря

Вис691 имел наиболее популярный контент!

Репутация

610 Очень добрый

Информация о Вис691

  • Звание
    Старожил
  • День рождения 19.08.1998

Контакты

  • Сайт
    https://www.youtube.com/user/zazaza691

Информация

  • Пол
    Мужчина
  • Город
    Москва

Посетители профиля

3 856 просмотров профиля
  1. Очень сильно сожЕлею, что люди не смогут полноценно насладиться качественным переводом.
  2. Могу только предположить, что MenuMode надо на GameMode поменять. Мне кажется, что сразу после нажатия на кнопку, мессаджбокс закрывается, и код обработки срабатывает только тогда, когда ты обратно какой-то мессаджбокс открываешь. Upd: по поводу глобальных переменных. Зашёл в Gameplay->Globals...->ПКМ в поле с переменными->New и создал переменную aaaTestGlobal. Затем создал тестовый скрипт: scn aaaTestScript begin GameMode if aaaTestGlobal == 0 let aaaTestGlobal := 1 endif end Всё сохранилось без проблем.
  3. Я бы наверно глобальную завёл, если квеста нет и он не нужен. Если какой-то квест уже есть со скриптом, то можно и там переменную завести. Так чтобы он кричал постоянно, а не только при входе в триггер (единожды), по идее, надо поменять на OnTrigger.
  4. Выглядит верно, но переменную RGLvar наверно надо сделать либо глобальной, либо в какой-то квест воткнуть. Ну и я вижу ты поменял на OnTriggerEnter - это будет срабатывать только при входе в триггер. Тебе разве так хочется?
  5. А у тебя между if и endif ничего нет. Команды-то надо внутрь заносить, а не после) if RGLstreetCrier2REF.GetDead == 0 if RGLstreetCrier2REF.IsTalking == 0 if RGLstreetCrier2REF.IsInCombat == 0 if RGLvar == 0 RGLstreetCrier2REF.Say RGLstcr0 set RGLvar to 1 endif if RGLvar == 1 RGLstreetCrier2REF.Say RGLstcr1 set RGLvar to 2 endif ... endif endif endif Но такой вариант тоже неправильный. Смотри, как будет идти скрипт. Считаем, что внешние 3 условия выполняются. Переменная 0? Да, она изначально 0, значит выполняем 2 команды внутри. Одна из команд переводит переменную в 1. Следующее условие - переменная 1? Да, мы её только что на 1 поставили. И вновь код внутри выполнится. И т.д. Т.е. он как бы за 1 проход активирует все реплики, а это неверно. В таком случае надо изучить, что конструкция if-endif может расширяться до if-elseif-endif. Взгляни вот на такой вариант: if RGLvar == 0 RGLstreetCrier2REF.Say RGLstcr0 set RGLvar to 1 elseif RGLvar == 1 RGLstreetCrier2REF.Say RGLstcr1 set RGLvar to 2 ... endif При таком подходе, у нас не много if-endif конструкций, а всего одна. Скрипт при проходе будет искать первое условие, которое выполнится. Как только он его найдёт, он выполнит команды внутри, и выйдет из конструкции (даже если дальнейшие условия тоже выполнялись бы). При такой схеме мы за 1 проход активируем всего одну реплику. P.S. Я обратил внимание, что среди внешних условий есть RGLstreetCrier2REF.IsTalking == 0, поэтому теперь вновь верю, что этот скрипт должен работать)
  6. Так как я с закрытыми глазами помочь смогу?) Ну давай подумаем. Надо решить, когда будет срабатывать блок, правильно? Если у нас Gamemode, то этот блок будет срабатывать всегда, когда мы "в игре" (не в меню или ещё где-то). Получается, что переменная в каждый новый проход скрипта будет 0. Как-то нехорошо. Если у нас OnTrigger, то срабатывание будет происходить всегда, когда мы внутри триггера. Т.е. опять в каждый новый проход (пока мы внутри триггера) переменная будет обнуляться. Наверно, тоже не очень хорошо. Как же быть? А всё очень просто. По умолчанию, когда ты пишешь "short RGLvar" переменная принимает значение 0. И это происходит ровно один раз. После этого ты можешь менять переменную как хочешь, она в 0 автоматически не сбросится. Поэтому всё, что нужно - убрать "set RGLvar to 0". Ничего сложного нет. На каждый if ты в конце ставишь endif. Я думаю, если ты посчитаешь, сколько у тебя if-ов и endif-ов, то заметишь, почему скрипт не сохраняется. Это называется добросовестный автор или нет. Сдвиг строк вправо делается для повышения читаемости кода. На работу скрипта никак не влияет. Когда их двигать? Не знаю даже как это правильно объяснить. Вот есть у тебя смысловые блоки begin-end, if-endif, также бывают циклы различные. В общем, всё, где ты ставишь какое-то условие. Вот для того, чтобы было понятно, что выполняется, когда условие проходит, это сдвигают вправо. Например: if (условие1) команда1 команда2 else команда3 команда4 endif команда5 Если посмотреть, то сразу становится понятно, что команды 1 и 2 выполняются. если условие1 срабатывает. Команды 3 и 4 выполняются, если условие не срабатывает. И команда5 выполняется всегда, т.к. она идёт после if-endif. Если вдруг нужно больше уровней вложенности, то не проблема: if (условие1) if (условие2) команда1 endif команда2 endif Тут команда1 выполняется, только если и условие1, и условие2 выполняются. Команда2 выполняется только если условие1 выполняется, на условие2 ей всё равно, она вне этого блока. Кстати, обрати внимание, что if и endif на одном уровне визуально находятся, если правильно сдвиги делать. Это опять же позволяет проверить, а не забыл ли ты что-то. Тут не "==", а "to". "==" используется для сравнения, а "to" для присвоения нового значения. Я, кстати, только сейчас задумался о потенциальной проблеме. По-хорошему надо подождать. пока НПС закончит свою последнюю реплику. Хмм, возможно подход через скрипт не будет работать. А как устроены другие зазывалы?
  7. Не знаю, как работают Link From/To, поэтому я бы всю логику перенёс в скрипт. Завёл бы переменную-счётчик, которую увеличивал бы после каждой реплики, а после последней сбрасывал бы её в 0.
  8. Если не ошибаюсь, наличие перка у НПС проверяется. Для ГГ вроде с Subject на Target поменять
  9. Здравствуйте у меня проблема с SFW Ruined America: когда я установил у меня проблема с интерфейсом. Не виден интерфейс выбора такие как  да или нет, или вообще за пределами поля где они должны стоят не возможно выбрать что либо, даже без RA SFW все равно та же проблема. Диалоги сообщения о квестах и т.д.  спуник круга меню
    4lkE4nClCRY.thumb.jpg.d9fd1b7a52813ffe976dfef1b0fb3c2f.jpg1253121848_CdhpfS5_S9U(1).thumb.jpg.d9d26c7b594b55c7b3f6c29363b88fba.jpg

  10. По первым 2ум не подскажу, а вот с именем есть несколько вариантов. Сразу предупреждаю. что сам не тестировал. Получить имя любого рефа можно через LNGetName, т.е. имя игрока должно быть player.LNGetName. Дальше уже надо смотреть, что тебе нужно. Если варианты замены имени у рефа и у базового объекта. Для рефа вроде походит LNSetName, для базового объекта SetName и SetActorFullNameAlt. Если надо расписать подробнее - пиши.
  11. Вот по идее она должна быть там, где сообщение вызывается, т.е.: Begin OnActivate if IsActionRef player == 1 If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 setTalkingActivatorActor BioReactorNPC activate else set bAwaitingInput to 1 ShowMessage BioReactorNoTalk endif endif End. А смысл у неё простой - сказать, мол, вот мы вам менюшку вывели, ждём, что же вы выберете. Это чтобы не крутить целиком блок в MenuMode 1001 постоянно, когда он активен.
  12. Один Endif забыл: scn BioReactorScript Begin OnActivate if IsActionRef player == 1 If NVDLC03DialogueHQBuddies.bBuddiesTalk == 1 setTalkingActivatorActor BioReactorNPC activate else ShowMessage NVDLC03HQBuddiesNoTalkMSG endif endif End
  13. Вис691

    GECK EXTENDER

    Не за что
  14. Вис691

    Процесс идёт

    Это не камень, это скорее призыв к тому, чтобы на это обратили внимание. Текст я читаю всегда, ибо иногда встречаются очепятки и пропущенные/лишние знаки препинания. Но вот на глаз определить тире или дефис передо мной (а Word оставляет и то, и то) не всегда получается. Да и про многоточия тоже иногда забывается. Ситуация реально неприятная выходит. Вроде и вычитываешь, и в игре пересматриваешь, но всё равно иногда проскакивают "пропуски". На днях, например, нашёл несколько тире в правилах крэпса, которые в игре уже не первый год лежат... Всё же проще избежать эту проблему изначально, мне кажется.
  15. Вис691

    Процесс идёт

    Всем привет! В прошлый раз я говорил, что забот у меня будет немало: работа, написание диплома и т.д. Что же, диплом я написал, защитил, образование получил и вновь поступил. На работе перешёл на полную рабочую неделю. В общем, дел и правда немало было. Но и немного ковырял мод, не без этого. Поэтому сегодня я хотел бы поднять две небольшие темы. Начнём с более интересной. Вы слышали про мод Book Menu Restored? С этой модификацией открывается возможность создавать полноценные книги, постеры и чертежи. И это только шаблоны! Можно придумать что-то своё, например карту. Лично меня этот релиз заинтересовал моментально, да и ребятам понравилось. Поэтому у нас в Каньоне будут книги. Надеюсь, не одна . Я потратил какое-то время на то, чтобы разобраться со шрифтами. Дело в том, что вы можете использовать любой шрифт, который есть в игре. Но! Вы также можете добавлять свои, если постараться... Во-первых, JIP добавляет дополнительные слоты. Но это не лучший вариант, т.к. неизвестно использовался ли этот слот в другом моде или нет. Шанс, конечно, невелик, но всё же. Я пошёл по другому пути. Я написал скрипт, который делает авто подмену шрифта при открытии нужной книги. А потом возвращает исходный. Схема довольно простая, но очень эффективная. И защищает от всевозможных конфликтов, что немаловажно. Кстати, для создания шрифта я использовал Oblivion Font Editor. Очень удобная вещь. К сожалению, не могу показать новый шрифт, ибо спойлеры, но могу показать картинку с ранними тестами, на которой представлены все стандартные шрифты. Жаль что, некоторые из них довольно кривые: Вторая тема связана с написанием диалогов. НЕ ИСПОЛЬЗУЙТЕ такие программы как Word и прочие, в которых встроено автоформатирование. Почему, спросите вы? Да, я соглашусь, что это очень удобно. Особенно когда можно выделить какие-то участки текста цветом или ещё как-то. Или посмотреть на ошибки, подсвечиваемые программой. Но вот уже сколько раз натыкался и всё ещё продолжаю натыкаться на то, что при копировании в GECK всё выглядит отлично, а в игре символы пропадают. Я вам сейчас 2 примера приведу. Сравните: – и -, … и ... И если с дефисом, превратившемся в тире, всё более-менее ясно, то различий во втором примере можно и не разглядеть сходу. А всё очень просто: первый символ - это один знак многоточия, а второй - это 3 точки. И конечно, в игре первый не поддерживается. И вот такие приколы меня, если честно, не радуют. Наверняка есть и другие примеры автозамен, на которые я ещё не наткнулся. В общем, надеюсь, мой посыл ясен - используйте другие редакторы текста или избавляйтесь от автозамен. А у вас были подобные случаи? Может, кто-то знает простое и изящное решение? Пишите комментарии, их я ещё проверяю . Не знаю, когда будет следующий пост и будет ли вообще... Всё-таки для постов нужна какая-то тема. Но посмотрим, я ещё не прощаюсь.

×
×
  • Создать...