Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Kirag 39 Опубликовано 12 Июля 2009 Поделиться Опубликовано 12 Июля 2009 Nekt Присоединяюсь к просьбе Monnoroch. Как эти схемы вызывать, желательно из совершенно левого файла? И как потом вернуть обратно, как было? Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
Monnoroch 6 Опубликовано 12 Июля 2009 Поделиться Опубликовано 12 Июля 2009 (изменено) Может глупый вопрос,но можно ли делать math.random(-1,-2)? Еще глупый вопрос (просто нигде такого не встречал) Можно ли так: local t = {2 + my_function(),3 + my_function()} или так: local t = {my_function(2),my_function(3)} Подозреваю,что да,но на всякий случай спрошу=) Изменено 12 Июля 2009 пользователем Monnoroch Ссылка на комментарий
Kirag 39 Опубликовано 12 Июля 2009 Поделиться Опубликовано 12 Июля 2009 Monnoroch В таком виде может и не понять, а вот math.random(-2,-1) точно можно. Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
Malandrinus 615 Опубликовано 12 Июля 2009 Поделиться Опубликовано 12 Июля 2009 (изменено) Может глупый вопрос,но можно ли делать math.random(-1,-2)? нельзя, будет ошибка с вылетом и сообщением "interval is empty". Можно ли так: local t = {2 + my_function(),3 + my_function()} или так: local t = {my_function(2),my_function(3)} А что тут вообще криминального? Обычный массив, обычные значения для его инициализации. Это получится. Я тебе искренне советую найти мой пост "тестирование скриптов без обрушения" и наладить подобный полигон. Для ТЧ он работает как часы. Ответ на подобные вопросы у тебя будет занимать секунд 20. Добавлено через 32 мин.: Как эти схемы вызывать, желательно из совершенно левого файла? И как потом вернуть обратно, как было? Есть там такая вещь, называется generic схемы. Или вроде как они же называются универсальными. generic схемы как раз и отвечают за панику, бой и пр. Выброс в АМК походу тоже реализован как такая схема. Суть универсальной схемы в том, что даже если непись находится под управлением гулага или свой собственной логики он прервётся, сделает что надо и затем вернётся к выполнению старой задачи. Схема - это весьма загадочная штука. Про схемы можно почитать здесь Я пока не всё понял, но попробую изложить в двух словах то, что мне уже понятно. Чисто технически схема - это файл скрипта, содержащий определенный набор функций и классов. Например, там должна быть функция add_to_binder с определённым списком аргументов, которая присобачит эту схему. Куда? Пока не знаю =) далее в схеме есть два ключевых класса первый - это условие (или евалуатор), унаследованный от property_evaluator второй - это действие (или action), унаследованный от action_base Точнее, там может быть набор таких классов. в евалуаторе главным является один метод evaluate, фактически, весь класс существует ради этого метода. Метод возвращает true, если надо перейти в новое состояние. Например, начался выброс и надо делать ноги в укрытие. action - это тоже класс, который существует главным образом ради одного своего метода execute. Это собственно то действие, которое и будет выполнено. Действий там может быть несколько и условий несколько. Например, выброс приближается - оглядеться выброс начался - даём дёру выброс продолжается - продолжаем прятаться и т.д. и соответственно существуют классы евалуаторов и действий на каждую пару. Ну и как-то там эти классы регистрируются. Это пока всё, что понял добавлено: надо ещё зарегистрировать схему в файле modules.script. Это делается функцией load_scheme Изменено 12 Июля 2009 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Bak 755 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 Активировать свою свою схему в нужный момент - ничего сложного. Потребуется использовать эвалуатор такого вида (простейший вариант): class "my_evaluator" (property_evaluator) function my_evaluator:__init(npc,name,storage) super (nil,name) self.st = storage self.st.active = false end function my_evaluator:evaluate() return self.st.active == true end Переключать из своего скрипта можно будет так: db.storage[npc:id()][my_scheme].active = true -- включаем db.storage[npc:id()][my_scheme].active = false -- выключаем my_scheme тут - это название схемы, указанное в modules.script Ссылка на комментарий
wolkolak 0 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 (изменено) Руся, Мне писал по кастом статикам, (кстати очень помогло )вот выкладываю .... Вывод на экран текста (картинки, видео даже, если видео в формате ogm) - это всё функции кастом статиков. То есть, в том худе который в ролике показан, на экран выводится картинка (кастом статик) экранчика, ещё отдельно - картинка шкалы вертикальной, и третья картинка - стрелка, которая перемещается. Двигает стрелку скрипт, который учитывает радиоактивность того места, где стоит игрок, или количество навешенных на игрока радиоактивных артефактов. Это я сейчас всё говорю про дозиметр, в кардиограмме отдельный скрипт. А накопленная радиация - хранится в скрипте в виде отдельного параметра, как вычисляется сейчас не суть, главное, что её вывод на экран - это просто работа с кастом статиком экранчика, вывод поверх кастом статика текста, который можно задать как переменной, так и вручную, любой текст вывести. Эти функции есть в скрипте, где перечислены ВСЕ игровые функции, выводимые движком в игру. Скрипт называется lua_help.script, лежит он в папке gamedata\scripts оригинальной игры. Он сам по себе ничего не делает - там только информация для ознакомления. Названия функций, типы их параметров перечисляются. Ну вот например, строки скрипта со строки 6429 по 6438: Код C++ class CUIGameCustom { function AddCustomMessage(string, number, number, number, CGameFont*, number, number); function AddCustomMessage(string, number, number, number, CGameFont*, number, number, number); function GetCustomStatic(string); function RemoveCustomStatic(string); function RemoveCustomMessage(string); function AddCustomStatic(string, boolean); function CustomMessageOut(string, string, number); function RemoveDialogToRender(CUIWindow*); function AddDialogToRender(CUIWindow*); чтобы использовать эти функции, надо прописать в файле кастом статиков (файл gamedata\config\ui\ui_custom_msgs.xml) новый кастом статик, с указанием текстуры. Глянь файл - там много кастом статиков. У некоторых прописана текстура, причём можно задать размер кастом статика не равный размеру текстуры, и заставить игру "растянуть" картинку до указанного тобой размера параметром stretch = 1. Можно прямо в кастом статике (в этом же xml-файле) задать текст - его шрифт, размер (у каждого шрифта есть свой размер, например шрифт22 и шрифт16 - раззные по размеру). А можно всё это задать скриптом, а не в xml-файле. Главное - чтобы кастом статик сам по себе существовал, и всё. Шрифт, текст, текстуру, её размер и положение на экране - всё можно задавыать и МЕНЯТЬ скриптом в любой нужный момент игры. Тут нужны команды которые можно видеть в строках lua_help.script начиная со строки 5989 до строки 6040: Код C++ class CUIButton : CUIStatic { CUIButton (); function SetHighlightColor(number); function GetTextY(); function Enable(boolean); function SetHeight(number); function GetText(); function GetColor() const; function GetWidth() const; function GetClipperState(); function DetachChild(CUIWindow*); function SetPPMode(); function SetFont(CGameFont*); function IsShown(); function Show(boolean); function GetHeight() const; function SetWidth(number); function GetTextX(); function IsEnabled(); function ResetPPMode(); function GetHeading(); function GetFont(); function SetStretchTexture(boolean); function EnableTextHighlighting(boolean); function ClipperOn(); function IsAutoDelete(); function SetAutoDelete(boolean); function SetTextX(number); function SetTextColor(number, number, number, number); function SetWndPos(number, number); function AttachChild(CUIWindow*); function SetWindowName(string); function GetStretchTexture(); function Init(number, number, number, number); function Init(Frect*); function Init(string, number, number, number, number); function GetTextAlign(); function SetTextST(string); function SetText(string); function WindowName(); function ClipperOff(); function SetTextY(number); function SetWndRect(Frect); function SetWndRect(number, number, number, number); function SetTextureOffset(number, number); function SetOriginalRect(number, number, number, number); function InitTexture(string); function SetHeading(number); function SetWndSize(number, number); function SetTextAlign(number); function SetColor(number); }; Обрати внимание - эти команды для класса кастом статика, CUI Static. Есть много похожих команд - для других классов, для кнопок меню, надписей меню, скриптовых окошек.. Короче - СМОТРИ НА КЛАСС когда что-то ищешь. Теперь, как это использовать. Тебе понадобится глобальная команда get_hud(). Она сканирует всё, что есть в данный момент на экране худа, и потом можно выяснять, что там имеется, а чего нету. Можно присвоить "экран" со всем содержимым переменной, вот так: local hud = get_hud() -- Здесь мы записали в переменную hud всё что есть. Теперь можно считывать оттуда, есть ли на экране кастом статик, и добавить, убрать и так далее. Код if hud:GetCustomStatic("wolkolak_static")==nil then hud:AddCustomStatic("wolkolak_static",true) end Этот кусок кода проверяет, есть ли на экране кастом статик с указанным именем (оно прописано тобой в файле ui_custom_msgs.xml). Если его нет - то такой статик добавляется. параметр true наверно означает что картинка добавится навсегда, не исчезая, пока её не уберут. Видимо, если поставить false - картинка появится на мгновение, или постепенно исчезнет - не знаю, не проверял. Я убираю статики сам, так надёжнее. Дальше. Теперь можно присвоить другой переменной наш кастом статик. И работать уже с переменной, чтобы строки кода были покороче. local pic = hud:GetCustomStatic("wolkolak_static") Всё, в переменной pic теперь хранится кастом статик, ЕСЛИ ОН ЕСТЬ на экране. если его нету - переменная равня nil, то есть она пустая. Так что логично перед таким присвоением прописать строки указанные выше - чтобы статик был. И дальше - начинаем с ним работать Вот некоторые команды, дальше сам поймёшь. pic:GetWidth() -- узнаём ширину кастом статика, в пикселах. pic:GetHeight() -- Узнаём высоту. И то и другое можно присвоить переменной. pic:SetWidth(100) -- Устанавливаем свою ширину. Можно цифрой, в пискелах. pic:SetHeight(100) -- Высота. И то и другое - можно не цифрой а числовой переменной pic:SetWndPos(300, 200) -- Устанавливаем положение кастом статика на экране. Считается от верхнего левого угла экрана, там координаты 0, 0. В нижнем правом углу координаты 1024, 768. При этом НЕЗАВИСИМО ОТ РАЗРЕШЕНИЯ ЭКРАНА вся область экрана поделена именно на 1024*768 пикселей условных. Даже если у тебя широкоформатное разрешение - всё раво координаты от 0,0 до 1024,768 pic:InitTexture([[w_tex\wolkolak_texture]]) -- Здесь мы устанавливаем кастом статику новую текстуру. Старая исчезает (или её могло вообще не быть). Обрати внимание, путь к текстуре gamedata\textures\w_tex\wolkolak_texture.dds, но указывается он начиная с папки, лежащей в textures - я предположил, что ты её назовёшь w_tex и кинешь туда текстуру в формате dds под названием wolkolak_texture.dds. Ещё момент важный - путь до самой текстуры указывается в игре без расширения. И поэтому запросто можнокинуть в папку w_tex видеофайл под названием wolkolak_texture.ogm - он выведется на экран как и текстура. И будет циклически проигрывать видео. pic:SetWndSize(100, 100) -- устанавливаем сразу, и ширину, и высоту. Одной командой. Тоже, можно цифрами, можно переменными. pic:SetTextST("Привет! Я - текст") -- вот оно, выводим над кастом статиком ПОСТОЯННЫЙ неменяющийся текст. Пока есть кастом статик - текст будет виден. Исчезнет вместе с кастом статиком. Можно прямо так прописать, можно опять же, переменную. pic:SetText("Привет! Я - текст") -- Это выводится НЕПОСТОЯННЫЙ, меняющийся текст - у меня так выводится переменная в которой записано, сколько Рентген я накопил. Этот текст можно изменить такой же конмандой, отданной ещё раз. pic:SetTextX(-15) -- отступ текста от какой-то (не помню, угол или от центра) точки на кастом статике, по горизонтали pic:SetTextY(-15) -- По вертикали. Тут надо поэкспериментировать, сам найдёшь, сколько отступать. pic:SetTextColor(255, 255, 0, 0) -- Это устанавливаем цвет текста, в формате ARGB, то есть альфа, красный, голубой, зелёный. В данном случае альфа равна 255, красного 255, остальных - нули. Получится текст ярко-красного цвета, совершенно непрозрачный. Сквозь него кастом статик не видно будет, только вокруг текста. А вот если сделать (128, 255, 0, 0) - получим полупрозрачный красный текст, альфа наполовину от максимума. Ну и если альфа равна нулю (0, 255, 0, 0) - то оставшиеся три числа не важны, текст будет абсолютно прозрачен, его вообще не видно будет. То есть альфа это прозрачность текста, от нуля (нулевая видимость) до 255 (полная видимость). полупрозрачный белый текст задать можно так (128,255,255,255). Экспериментируй Есть много и других команд, попробуй их сам. Изменено 13 Июля 2009 пользователем wolkolak Свободу всем Даром! Моя Зона Full Realism Mod STSoC by Wolkolak "Безвыходных ситуаций не существует в принципе."(с) Ред Шухов Ссылка на комментарий
buxoukot 0 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 возможен ли спавн станкового пулемёта ПКМ в сталкере? того который типа называется [mounted_weapon]. если возможно... то как он называется? ну всмысле в ал.спавне как писать путь к нему? возможно ли за него поставит НПС? или ты зону, или она тебя. Ссылка на комментарий
Jesh 3 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 (изменено) buxoukot никто тебе не запрещает, заспавнить станковый пулемёт, НПС за него поставить можно но над много пое***, поскольку эт новая схема поведения вроде как, в билде 1935 была возможность ГГ становится за него, так что wpn_pkm_trenoga.ogf с 1935 + конфиг и можно в ТЧ с ним повоевать Изменено 18 Декабря 2009 пользователем Jesh И сидели бы сейчас вышеозначенные любители больших подписей в маленьких файлах, в байт-коде ковырялись, если не в машинном... Ссылка на комментарий
awesom_e 0 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 buxoukot, в тч на сколько я знаю эго текстур нету я пробывал неполучилось, вылетает с логом типа не найден текстур, так что не мучейся ХАПАЕМ ВСЕ САМОЕ ЦЕННОЕ И ВАЛИМ Ссылка на комментарий
Jesh 3 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 awesom_e Бред, текстур там комплект, и для ПКМ-а тоже есть все. И сидели бы сейчас вышеозначенные любители больших подписей в маленьких файлах, в байт-коде ковырялись, если не в машинном... Ссылка на комментарий
awesom_e 0 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 Jesh иконки предмета нету и текстур я не нашёл! ХАПАЕМ ВСЕ САМОЕ ЦЕННОЕ И ВАЛИМ Ссылка на комментарий
Taroz 0 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 схемы все идут через xr_logic ... тама переключение идет в обычном виде. Ссылка на комментарий
Jesh 3 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 иконки предмета нету тяжело сделать? и текстур я не нашёл! то что ты их не нашёл, не значит, что их нет: wpn/wpn_pkm.dds И сидели бы сейчас вышеозначенные любители больших подписей в маленьких файлах, в байт-коде ковырялись, если не в машинном... Ссылка на комментарий
Отшель[НИК] 2 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 (изменено) Вопрос по логике. Вобщем пытаюсь сделать zoneguard-ов. Вот их логика в гулаге: [logic@work_scouts_transition] active = zoneguard@work_scouts_transition [zoneguard@work_scouts_transition] path_walk = walk_1 path_look = look_1 team = scouts_transition zone_guard = scouts_transition_attack1 zone_warn = scouts_transition_pred1 no_move = false snd_greet = threat_stop_stalker ignore_friends = false no_danger = false anim = guard_rac snd_anim_sync = false В игре вылета нет, НПС под гулаг берется, но почему то стоит на месте и не выполняет работу. Где ошибка? В работоспособности walk и look уверен на 100%. В качестве зон для zone_guard и zone_warn - рестрикторы. Изменено 13 Июля 2009 пользователем Отшель[НИК] Ссылка на комментарий
-=Krovosos=- 64 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 Народ, раз уш тут заговорили про текстуры, то у меня вопрос... Как модель мутанта (снорка скажем) связана с тестурой (для снорка это act_gazmask вроде)? И можно ли переписать эту связь (чтобы модель привязывалась к другой текстуре? Карусель-карусель - это радость для нас, прокатись на нашей ка-ру-се-ли!-=Krovosos Mod=- 4.0 Final для S.T.A.L.K.E.R. SHoC 1.0004 (336 Мб): Мод Финальный патч для -=Krovosos Mod=- (1 Мб): Патч Адаптация -=Krovosos Mod=- под S.T.A.L.K.E.R. SHoC 1.0006 (1 Мб): Адаптация Ссылка на комментарий
Taroz 0 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 открой модель в hex редакторе и смотри... Ссылка на комментарий
buxoukot 0 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 проблема ещё страшнее. переделал главное меню... есть такая текстура в стандарте ui_static_main_menu_background. вот наложил на стандартное. и все вроде нормально. но гадкий огонь. мне надо чтобы он горел. он появляется но выделяет сабой часть старой стены... короче скрин.: http://s42.radikal.ru/i097/0907/b3/5e58b9a0a39e.jpg огонь должен гореть. но стена-то вокруг почему старая? как я понял за огонь отвечает ui_mm_fire.ogm а как его открыть? и что это вообще за файл? или дело в другом. вопрос номер 2: возможно ли заменить видео в главном меню на свое. допустим там же чаэс и дождь идет... а если фрапсом заснять что-нибудь... и вставить в замену того? только какой должен быть формат видео? разрешение? и ещё может какие-нибудь параметры? и какой программой с видео работать? чтобы его в нужный формат перегнать. прошу помочь... пожалуйста. или ты зону, или она тебя. Ссылка на комментарий
Monnoroch 6 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 buxoukot, стена - часть видюшки с огнем. Ссылка на комментарий
buxoukot 0 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 Monnoroch а как эту видюшку изменить? и что насчёт второго вопроса или ты зону, или она тебя. Ссылка на комментарий
Prapor11 0 Опубликовано 13 Июля 2009 Поделиться Опубликовано 13 Июля 2009 Люди подскажите делаю я простой однотипный квест найти предмет для Волка. Добавил предмет для поиска и всё такое,но квест не появляется вообще!!!!! [wolf_eliminate_lager_1] type = find_item community = actor text = wolf_eliminate_lager_1_text description = wolf_eliminate_lager_1_descr parent = wolf target = vodka_sidora reward_money = 50 reward_reputation = 10 reward_rank = 4 ;reward_item = time = 86400 Почему квесты на тему find_item не идут?????? Я ДатчикХабара со stalker-portal Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти