Перейти к контенту

Рекомендуемые сообщения

Тема для обсуждения скриптов всего и всех в серии игр STALKER.


Задавая вопрос (!):
1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего;
2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме);
3. Изучите информацию которая может вам помочь:

  Информация (Показать)

4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос;
5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе;
6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода;
7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины.
8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ.
9. И помните: «Правильно заданный вопрос – половина ответа».

 

Какие вопросы следует задавать, а какие нет...

  Читать рекомендуется. (Показать)

И последнее: очень рекомендовано к прочтению Правила форума
 


  • Спасибо 1
  • Полезно 2
Ссылка на комментарий

Ребят, добрый вечер! Никто не подскажет, как убрать закрытие диалогового окна кнопкой "Esc"? Чтобы диалоги были как в Fallout 3/New Vegas - если завёл разговор, то до логичного конца.

  • Согласен 1

Пишу мод с неповторимым сюжетом.

Нужны "модельеры"

Заинтересованным писать в ЛС

J.A.A..gif

Ссылка на комментарий

Сильно подозреваю что ныне - без ковыряний в движке никак, ибо диалоговый интерфейс - штука движковая.

Ну или соорудить ему взамен скриптовый аналог и устанавливать свои правила. Какие вздумается.

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

Ссылка на комментарий

Кстати, о птичках, точнее - об этих самых кнопках из соседней темы:

w = CUIButton()

w:SetWindowName( "btn_next" )

w:SetAutoDelete( true )

w:Init( 250, 60, 50, 30 )

self:AttachChild( w )

self:AddCallback( "btn_next", ui_events.BUTTON_CLICKED, self.next, self )

w:Show( true )

 

Что здесь не так, что первое нажатие оно отрабатывает нормально, второе - 2 раза, а дальше - 4 и т.д.

Кнопку мы после каждого нажатия перерисовываем, но как бы вроде разве недостаточно w = CUIButton(), чтобы старая удалилась ?

Это надо еще какое-то волшебное слово сказать ?

 

 

2 abramcumner: в общем, да, DetachChild() помогает, но дешевле оказалось избавиться от перерисовки. Выяснилось, что нужные статики ложатся в нужном порядке, а оригинал был странен, но просто до подобной ситуации обычно не доживал.

Изменено пользователем Dennis_Chikin
Ссылка на комментарий
  09.04.2015 в 07:15, Dennis_Chikin сказал:

self:AttachChild( w )

Кнопку мы после каждого нажатия перерисовываем, но как бы вроде разве недостаточно w = CUIButton(), чтобы старая удалилась ?

Это надо еще какое-то волшебное слово сказать ?

Сслыка на кнопку в родительском окне не дает ей удалиться. Возможно поможет DetachChild.
Ссылка на комментарий
  J.A.A. писал(а):
как убрать закрытие диалогового окна кнопкой "Esc"?

Решил поковыряться  с этим вопросом, и вот чего наковырял.

Доступ к окну диалога(разговора - так точнее ?) получить можно, хотя и коряво:

  это добавим в info_portions.xml (Показать)
Изменено пользователем UnLoaded
Ссылка на комментарий

@UnLoaded, ты открываешь своё скриптовое окно и оно перехватывает управление ввода на себя.

Попробуй при входе в диалог разбиндить экшены use и quit, а на последней фразе диалога забиндить обратно. 

Ссылка на комментарий
  Charsi писал(а):
разбиндить экшены use и quit, а на последней фразе диалога забиндить обратно. 

А можно примерчик собственно как разбиндить\забиндить ?

Изменено пользователем UnLoaded
Ссылка на комментарий

Ага, разбиндить получается, но вот обратно - чтоб снова назначить указанную в настройках клавишу для "Действия", надо ее перед разбиндиванием получить и сохранить. Попробовал con:get_string("use") - не прокатывает, остальные get_... вообще к вылету приводят...

Ссылка на комментарий

@UnLoaded, возможно вот так:

local u_quit, b_quit = "unbind quit", "bind quit kESCAPE"

 

get_console():execute(u_quit)

...

get_console():execute(b_quit)

 

Правда зачем тебе сохранять условные константы мне не ясно.

Ссылка на комментарий
  09.04.2015 в 13:52, Сталкер-Стрелок сказал:

Правда зачем тебе сохранять условные константы мне не ясно.

Возможно за тем, что у игрока "quit" и "use" могут быть забиндены на другие кнопки?
Ссылка на комментарий
  abramcumner писал(а):
могут быть забиндены на другие кнопки?

Однозначно, у меня всегда "use" переназначено так, как мне нравится...

 

@Сталкер-Стрелок

Однако толку мало от предложенного Вами - надо сразу указать то, что может быть переназначено.

 

Вопрос остается открытым.

Изменено пользователем UnLoaded
  • Согласен 1
Ссылка на комментарий

@abramcumner, ну их тогда и указывать, или я чего не понял? В любом случае они же должны в каком-то массиве хранится.

Изменено пользователем Сталкер-Стрелок
Ссылка на комментарий
  09.04.2015 в 15:19, Сталкер-Стрелок сказал:

@abramcumner, ну их тогда и указывать, или я чего не понял? В любом случае они же должны в каком-то массиве хранится.

У каждого игрока они могут быть свои и надо восстановить именно их, а не абстрактные. А так в движке хранятся, еще в user.ltx

 

Можно разобрать user.ltx и запомнить оттуда настройки. Вроде папка к нему в fsgame.ltx прописана - по идее можно грузить через ini_file

Можно еще проверить, что возвращает get_console():execute("bind quit")

Изменено пользователем abramcumner
Ссылка на комментарий

 

 

  abramcumner писал(а):
Можно еще проверить, что возвращает get_console():execute("bind quit")

В "Справочнике ..." - void execute(string <команда консоли>); // выполнить команду консоли

Значит ничего не возвращает, плюс назначит на "quit" пустое значение(уже проверял).

 

 

 

  abramcumner писал(а):
по идее можно грузить через ini_file

Так ведь структура не ltx-кая, навряд-ли прочтет что-то. Да и все равно, даже если все срастется - нормально будет работать тока на правленом движке, где восстановлена выдача инфо-порций окна диалогов по нормальному.

 

Так, что для AndrewMor и J.A.A: похоже на исходном движке ТЧ бессмысленная затея, так что смотреть в сторону правленного движка.

Ссылка на комментарий

@abramcumner, она разве не из $game_config$ грузит? Т.е. я имею ввиду использовать getFS() (но он не читает такие файлы). Еще есть класс COptionsManager, через который это можно сделать, в целом он с этим и работает на самом деле.

 

 

 

  UnLoaded писал(а):
Так ведь структура не ltx-кая, навряд-ли прочтет что-то.

Можно распарсить в массив ключ значение.

Ссылка на комментарий
  UnLoaded писал(а):

плюс назначит на "quit" пустое значение(уже проверял).

Насколько я помню, если в консоли набрать "bind quit", то вернется забинденная клавиша.

 

  Цитата

Так ведь структура не ltx-кая, навряд-ли прочтет что-то.

Читать по строке и искать bind quit.

 

  Цитата

Да и все равно, даже если все срастется - нормально будет работать тока на правленом движке, где восстановлена выдача инфо-порций окна диалогов по нормальному.

Почему, unbind можно еще делать в коллбеке на юзе нпц, а обратный бинд в функции на выходе из диалога.
Ссылка на комментарий

 

 

  abramcumner писал(а):
Почему, unbind можно еще делать в коллбеке на юзе нпц

Гм, неплохо бы, вот только есть ли такой ? Глянул сейчас в константы C++ class callback в lua_help, не вижу какой из них ? Или я не туда\не о том ?

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...