Svoboда 3 Опубликовано 23 Апреля 2009 Поделиться Опубликовано 23 Апреля 2009 Тема для обсуждения скриптов всего и всех в серии игр STALKER. Задавая вопрос (!): 1. Внимательно изучите суть вопроса. Вопрос должен соответствовать выбранной Вами темы. Это поможет сохранить порядок и читабельность темы, а также облегчит поиск и понимание сего; 2. Изучите то, что уже есть в теме (пролистайте "руками", воспользуйтесь поиском на форуме); 3. Изучите информацию которая может вам помочь: Stalkerin. Там есть много хороших статей касательно данной темы.Уроки по модостроению. Есть рабочие примеры готовых скриптов различного назначения. Справочное руководство по языку Lua 5.1https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual/ruСправочник по функциям и классам. Собрано много информации по функциям и классам, не всем, но по основные сведения предоставлены. Логика со вступлением и четырьмя частями: ВступлениеЧасть перваяЧасть втораяЧасть третьяЧасть четвертая. Smart_terrain (в простонароде - гулаг)Интересный способ настроики логики для гулаговСкриптовая часть игровой логики 4. Дабы не превращать обсуждение в "кашу" разной информативной направленности, задавайте несколько вопросов по порядку (в разных постах) после того, как получите ответ на предыдущий вопрос; 5. "Спасибо" и тому подобное - будьте так любезны в ПМ. Если не любите писать в ПМ, в конце вопроса напишите фразу: "Заранее спасибо!" - или что-то в этом духе; 6. ПОЖАЛУЙСТА! Указывайте, для какой игры Вам необходима информация (ТЧ, ЧН, ЗП), если стоит мод - укажите название мода; 7. Если Вы что-то сделали и результат не такой, какой Вами задумывался, то, пожалуйста, приводите коды которые Вы изменяли/писали целиком! Это поможет другим правильно ответить на Ваш вопрос, а также оградит Вас от лишней писанины. 8. Оформляйте сообщение. Пользуйтесь тегами для того, чтобы отделить код от текста. Пишите грамотно - ПОЛЬЗУЙТЕСЬ ЗНАКАМИ ПРЕПИНАНИЯ. 9. И помните: «Правильно заданный вопрос – половина ответа». Какие вопросы следует задавать, а какие нет... Задавайте вопросы, которые касаются непосредственно скриптов и их работы, т.е. Вы что-то делаете, а у Вас что-то не получается, при этом у Вас на руках должен быть хотя бы какой-то код, свидетельствующий о Вашей причастности к вопросу. Вопросы которые будут удалятся, следовательно их задавать не нужно:-- Где находится та или иная функция? Для ответа используем поиск по словам среди файлов оригинальной игры или мода, если объект поиска относится к нему, при помощью программы, которая Вам наиболее симпатизирует;-- Как сделать что-то/то-то? С подобными вопросами, либо в "ковырялки", где Вам вероятнее всего так же не ответят, либо выдвигаем мысли, подкреплённые теорией, практикой (идеальный вариант) и здравым рассудком;-- Вопросы со смыслом: "сделайте", "совместите" и подобными глаголами повелительного наклонения.-- К тому же удалению будут подвергаться вопросы, в которых масштабно не используются теги, для отделения кода и цитат от основного текста, а также не вписан в спойлер код размером превышающие семь строк.Ответ на возможно возникший вопрос: В какую тему можно обратиться по поводу логики и спавна объектов? В тему "ковырялок" соответствующей версии игры, для которой Вы задаёте вопрос. И последнее: очень рекомендовано к прочтению Правила форума 1 2 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/
Graff46 621 Опубликовано 19 Августа 2017 Поделиться Опубликовано 19 Августа 2017 1 час назад, TIGER_VLAD сказал: Вот только тогда игрок сможет выйти за пределы локации и упасть например) Ставите невидимую стену или пишите скрипт который будет вызывать нужные эффекты когда ГГ входит в заданную область координат Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113572
Graff46 621 Опубликовано 19 Августа 2017 Поделиться Опубликовано 19 Августа 2017 3 часа назад, Graff46 сказал: Нету Нету в чистом ТЧ в Экстейсшоне есть, но у меня не робит... Выходом из этой ситуации я вижу только составление математического выражения которое из расчета длины строки передаваемой в статик будет задавать статику высоту... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113573
=VENOM= 51 Опубликовано 20 Августа 2017 Поделиться Опубликовано 20 Августа 2017 (изменено) Согласен с TIGER_VLAD, для себя такую проблему решал давным-давно - похоже, тем же способом, что и в ЧН на болотах (точно не помню, в ЧН не играл с момента выхода игры, наверное ). 2 варианта: первый попроще, если вокруг левелчейнджера есть много свободного места, "накрываем" его рестриктором, с шейпом, бОльшим, чем у левелчейнджера. В его логике выставляем условия, при которых рестриктор будет "возвращать" игрока в заданную (заданные) точки функцией set_actor_position+set_actor_direction, не давая ему "добраться" до левелчейнджера. И, может быть, даже с соответствующим сообщением, типа "дорога закрыта" . Второй вариант, если пространство у перехода ограничено, и рестриктором не получается надёжно перекрыть левелчейнждер - логику рестриктора, перемещающую игрока оставляем, как и в первом случае, а вот сам левелчейнджер придётся спонить/удалять уже либо из логики рестриктора (что очень удобно, в общем-то), либо где-то в другом месте, где удобнее разработчику. Изменено 20 Августа 2017 пользователем =VENOM= 1 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113588
Graff46 621 Опубликовано 20 Августа 2017 Поделиться Опубликовано 20 Августа 2017 (изменено) Можно ли на ТЧ получить имя шрифта или размер шрифта в GUI статике? GUIWindow:GetFont() Возвращает непонятный объект\класс Изменено 20 Августа 2017 пользователем Graff46 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113748
UnLoaded 313 Опубликовано 20 Августа 2017 Поделиться Опубликовано 20 Августа 2017 6 минут назад, Graff46 сказал: Возвращает непонятный объект\класс С объектом\классом все понятно - CGameFont. Вот только толку от этого мало - в скрипты из этого класса ничего не экспортировано, кроме флагов выравнивания текста. Цитата Выходом из этой ситуации я вижу только составление математического выражения которое из расчета длины строки передаваемой в статик будет задавать статику высоту... Не выйдет у Вас ни чего, т.к. для этого надо много чего иметь экспортированного в скрипты - а нету ! Ну не нужно это было ПЫСам... Самый простой вариант - правка движка. Я вот у себя экспортнул AdjustHeightToText() - проверил, все прекрасно работает. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113755
macron 1 905 Опубликовано 20 Августа 2017 Поделиться Опубликовано 20 Августа 2017 В 19.08.2017 в 23:23, Lebedev30 сказал: В 19.08.2017 в 23:19, nego сказал: Здравствуйте ВАМ. Как можно в ТЧ...04 сделать арты, увеличивающие переносимый вес? Меня этот вопрос интересовал и давно, но для ТЧ даже таких модов не встречалось или инструкций. Лучше на ЧН или ЗП переходи. Сразу видно, в OLR не играли. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113765
nego 35 Опубликовано 21 Августа 2017 Поделиться Опубликовано 21 Августа 2017 (изменено) Цитата Сразу видно, в OLR не играли Я не играю. Я делаю мелкие модификации для мальчишек. Вот они играют. Изменено 21 Августа 2017 пользователем nego Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113841
Graff46 621 Опубликовано 21 Августа 2017 Поделиться Опубликовано 21 Августа 2017 (изменено) В 20.08.2017 в 23:38, UnLoaded сказал: Не выйдет у Вас ни чего, Вот реализация ввода строки с переносами в кастом статик и его растягивание под текст function start(t, fntName, kegl) -- t - вводимый текст: fntName* - шрифт; kegl* - размер шрифта var = doc_viewer.DocUI() level.start_stop_menu(var, true) str_ln_px = string.len(t)*(0.35*kegl) cnt_str = math.ceil(str_ln_px/list:GetWidth()) for str in string.gmatch(t, "\\n") do cnt_str = cnt_str+1 end offst_ht = math.ceil(cnt_str*30) list:SetHeight(offst_ht) --list:SetFont(GetFontGraffiti22()) list:SetText(t) end list это объект статика Изменено 22 Августа 2017 пользователем Graff46 Ошибки исправлял Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113854
UnLoaded 313 Опубликовано 21 Августа 2017 Поделиться Опубликовано 21 Августа 2017 2 часа назад, Graff46 сказал: Вот реализация ввода строки... И где это будет работать ? Т.е. под какую версию исходного движка ? 2 часа назад, Graff46 сказал: list это объект статика doc_viewer.DocUI() - а это что ? "kegl" каким образом задается\вычисляется ? GetFontGraffiti22() - это из какой версии движка ? Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113875
Graff46 621 Опубликовано 22 Августа 2017 Поделиться Опубликовано 22 Августа 2017 (изменено) 9 часов назад, UnLoaded сказал: И где это будет работать ? ТЧ оригинал. doc_viewer.script Скрытый текст local var, list, str_ln local str_ln_px, offst_ht, cnt_str = 0, 0, 1 --*************************************************************** function start(t, fntName, kegl) var = doc_viewer.DocUI() level.start_stop_menu(var, true) str_ln_px = string.len(t)*(0.35*kegl) cnt_str = math.ceil(str_ln_px/list:GetWidth()) for str in string.gmatch(t, "\\n") do cnt_str = cnt_str+1 end offst_ht = math.ceil(cnt_str*30) list:SetHeight(offst_ht) --list:SetFont(GetFontGraffiti22()) list:SetText(t) end --*************************************************************** class "DocUI" (CUIScriptWnd) function DocUI:__init() super() self:InitControls() self:InitCallBacks() end function DocUI:__finalize() end function DocUI:InitControls() local xml = CScriptXmlInit() self:Init(0,0,1024,768) xml:ParseFile("DocUI.xml") self.frame1 = xml:InitFrame("frame1", self) self.st = xml:InitStatic("frame1:Static1", self.frame1) self.descr_scroll = xml:InitScrollView("frame1:Static1:descr_scroll", self.st) list = xml:InitStatic("frame1:Static1:Static2", self.descr_scroll) self:Register(xml:Init3tButton("frame1:button1", self.frame1), "button1") end function DocUI:InitCallBacks() self:AddCallback("button1", ui_events.BUTTON_CLICKED, self.button1_button_clicked, self) end function DocUI:button1_button_clicked() self:Hide() end function DocUI:Hide() self:GetHolder():start_stop_menu(self, true) end Кегль задаём сами - это как правило число в конце названия шрифта. Изменено 22 Августа 2017 пользователем Graff46 Описал кегль Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113913
UnLoaded 313 Опубликовано 22 Августа 2017 Поделиться Опубликовано 22 Августа 2017 @Graff46 Беру свои слова обратно. Хотя так и не получил ответа: "kegl" - как вычисляется\откуда берется, + смущают как всегда "волшебные" числа str_ln_px = string.len(t)*(0.35*kegl) и offst_ht = math.ceil(cnt_str*30)... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113920
UnLoaded 313 Опубликовано 22 Августа 2017 Поделиться Опубликовано 22 Августа 2017 Только что, Graff46 сказал: Кегль задаём сами - это как правило число в конце названия шрифта. Понятно. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113921
Graff46 621 Опубликовано 22 Августа 2017 Поделиться Опубликовано 22 Августа 2017 (изменено) 31 минуту назад, UnLoaded сказал: Хотя так и не получил ответа: Числа подбирал и пользовался конвертерами из пунктов в пиксели + некоторые свои расчёты... Всё это очень приблизительно с округлением в большую сторону, т. е. скролл возмет весь текст + немного пустого места снизу будет. _________________ Хотел бы получить разъяснения как писать шрифты в метод :SetFont(СFont*). Изменено 22 Августа 2017 пользователем Graff46 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113933
Graff46 621 Опубликовано 22 Августа 2017 Поделиться Опубликовано 22 Августа 2017 Внимание в моём посте была ошибка: параметр t - это не какой не шрифт, а вводимый в статик текст! Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113936
UnLoaded 313 Опубликовано 22 Августа 2017 Поделиться Опубликовано 22 Августа 2017 44 минуты назад, Graff46 сказал: Хотел бы получить разъяснения как писать шрифты в метод :SetFont(СFont*). local font = GetFontGraffiti22Russian() какой-то-статик:SetFont(font) Список шрифтов, доступных в скриптах(нашел поиском в движке, то что экспортировано(в 1.0007rc1)), в виде ф-ций их получения: "GetFontSmall" "GetFontMedium" "GetFontDI" "GetFontGraffiti19Russian" "GetFontGraffiti22Russian" "GetFontLetterica16Russian" "GetFontLetterica18Russian" "GetFontGraffiti32Russian" "GetFontGraffiti50Russian" "GetFontLetterica25" 1 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113964
Graff46 621 Опубликовано 22 Августа 2017 Поделиться Опубликовано 22 Августа 2017 В дополнение... Что бы в ГУИ элементах работали переносы строк стоит провести такое преобразование: function inline_str (str) return string.gsub(str, "[\r\n]",'\\n') end Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1113966
Graff46 621 Опубликовано 22 Августа 2017 Поделиться Опубликовано 22 Августа 2017 (изменено) Подскажите что за число возвращает метод? какоетоЧисло, ключ, секция = ini_file:r_line(string) Изменено 22 Августа 2017 пользователем Graff46 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1114020
7.9 174 Опубликовано 22 Августа 2017 Поделиться Опубликовано 22 Августа 2017 6 часов назад, UnLoaded сказал: писок шрифтов, доступных в скриптах(нашел поиском в движке, то что экспортировано(в 1.0007rc1)), в виде ф-ций их получения: "GetFontSmall" "GetFontMedium" "GetFontDI" "GetFontGraffiti19Russian" "GetFontGraffiti22Russian" "GetFontLetterica16Russian" "GetFontLetterica18Russian" "GetFontGraffiti32Russian" "GetFontGraffiti50Russian" "GetFontLetterica25" Мне, в своё время, удалось реально задействовать только эти: GetFontLetterica16Russian()) GetFontLetterica18Russian()) GetFontGraffiti19Russian()) GetFontGraffiti22Russian()) GetFontArialN21Russian()) GetFontHeaderRussian()) GetFontBigDigit()) Вообще, неплохо-бы если-б ещё шрифтов добавили... Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1114022
Graff46 621 Опубликовано 22 Августа 2017 Поделиться Опубликовано 22 Августа 2017 Только что, 7.9 сказал: если-б ещё шрифтов добавили... Так вроде шрифты можно конфигурировать и наследовать в файле fonts.ltx. И я находил сборку шрифтов для больших экранов на ТЧ и они работали. Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1114024
7.9 174 Опубликовано 22 Августа 2017 Поделиться Опубликовано 22 Августа 2017 (изменено) Я больше про сам набор символов имел в виду, про сами текстуры шрифтов. Помню "смайлы" хотел что-бы в текст вставить можно было, чего-то ещё то-же хотел... Изменено 22 Августа 2017 пользователем 7.9 Ссылка на комментарий https://www.amk-team.ru/forum/topic/6185-skriptovanie/page/429/#findComment-1114036
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти