Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Gonarh 3 Опубликовано 14 Июня 2009 Поделиться Опубликовано 14 Июня 2009 хмм, похоже отвечает за формы, тестуры и размеры окна мессаджбокс в главном меню, ПЫСовцы делали его похожим на системное 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Ссылка на комментарий
IQDDD 5 Опубликовано 14 Июня 2009 Поделиться Опубликовано 14 Июня 2009 (изменено) Gonarh, а вот такой вопрос: 1. Как в Lua писать данные в файл, как читать данные из файла? 2. Что такое NET пакеты и зачем они нужны? (это случай не что-то по типу winAPI) 3. Что за Frect():set(0,658,83,47)? 4. В стандартном news_manager: actor:give_game_news(news_caption, news_text, texture, timeout*1000, showtime) У вас на месте таймаута стоит Frect():set(0,658,83,47)? 5. Расскажите о методах GetHolder() и start_stop_menu(self,true). (Как я понимаю, start_stop_menu (self,true) открывает или закрывает элемент self, в нашем случае инвентарь.) Изменено 14 Июня 2009 пользователем IQDDD Ссылка на комментарий
Monnoroch 6 Опубликовано 14 Июня 2009 Поделиться Опубликовано 14 Июня 2009 Gonarh, если будете отвечать на пост выше,отвечайте прямо тут,не в ЛС.... Ссылка на комментарий
Gonarh 3 Опубликовано 14 Июня 2009 Поделиться Опубликовано 14 Июня 2009 (изменено) 1. Писать нельзя только читать. По крайней мере в классе ini_file в lua_help.script нет объявлений методов записи C++ class ini_file { ini_file (string); function line_count(string); function r_bool(string, string); function section_exist(string); function r_float(string, string); function r_clsid(string, string); function r_s32(string, string); function r_line(ini_file*, string, number, string&, string&); function r_token(string, string, const token_list&); function r_vector(string, string); function r_u32(string, string); function r_string_wq(string, string); function r_string(string, string); function line_exist(string, string); }; создаем в папке gamedata\config\misc файлег moi_dannye.ltx следующего содержания: [general_data] my_param = 1.5 Примерная функция чтения этого параметра function get_parametr() result = 0 local sini = ini_file("misc\\moi_dannye.ltx") if sini and sini:section_exist("general_data") then if sini:line_exist("general_data","my_param") then result = sini:r_float("general_data","my_param") end end return result end учтите что это функция чтения числа с плавающей точкой, для чтения других типов данных используйте соответствующие методы 2. нетпакет это примерно 7,5-8килобайт пользовательских данных куда можно писать/читать свои данные, превышение данного объема ведет к вылетам, на основе этой фичи построены моды, без нетпакета жизнь мододелов была бы существенно затруднена. практически все фишки которых нет в оригинале с деланы при помощи этой хрени. 3. Это координаты куска текстуры gamedata\textures\ui\ui_iconstotal.dds для отображения иконки того кто послал Меченому сообщение 4. Нет не на месте таймаута а на месте "texture" 5. У GetHolder() нет методов ибо это и есть метод 3-х классов ЕМНИП, если чесно влом писать, то чего сам толком не понимаю, действовал сам методом научного тыка читая lua_help.script, все возможные функции, классы, методы, константы игры описаны в этом файле... так шо дерзайте Изменено 14 Июня 2009 пользователем Gonarh 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Ссылка на комментарий
Malandrinus 615 Опубликовано 14 Июня 2009 Поделиться Опубликовано 14 Июня 2009 1. Как в Lua писать данные в файл, как читать данные из файла? 2. Что такое NET пакеты и зачем они нужны? (это случай не что-то по типу winAPI) 3. Что за Frect():set(0,658,83,47)? 1. Вообще говоря в стандартном Lua есть функции работы с файлами, но их наличие в конкретной реализации зависит от разработчика. Поскольку Lua фактически является частью хост-приложения, то в нём будут только те библиотеки, которые пожелает оставить разработчик. Вот в данном случае все стандартные библиотеки для работы с файлами были убраны. Если вопрос в том, есть ли способ записи в ltx файл, предоставленный в API самой игры, то походу тоже нет. 2. нетпакет - это класс движка игры, экспортированный в Lua. Каждый объект этого класса содержит буфер. Любой серверный объект можно записать в этот буфер и считать из него. Кроме того, в этом классе есть функции для последовательного разбора этого буфера. Техника работы с нетпакетом следующая: а) создаем объект класса нетпакет, вот так: local packet = net_packet() б) читаем в него состояние объекта вот так: sobj:STATE_Write(packet) в) разбираем нетпакет на части, читая последовательно все его поля в переменные Lua. Здесь требуется знать внутреннее представление нетпакета для каждого класса. acdc в руки... local game_vertex_id = packet:r_u16() local distance = packet:r_float() local direct_control = packet:r_s32() local level_vertex_id = packet:r_s32() ... и т.д. г)меняем значения полученные переменных, как нам надо, и затем записываем обратно в нетпакет в том же порядке так: res:w_u16(game_vertex_id) res:w_float(distance) res:w_s32(direct_control) ... и т.д. д) записываем нетпакет обратно в объект вот так: local size = res:w_tell() res:r_seek(0) sobj:STATE_Read(res,size) Делать всё это можно только с объектами в оффлайне. Если вдаваться в лирику, то нетпакет - это похоже часть движка, связанная с процессом синхронизации между клиентской и серверной частью. Можно предположить, что при синхронизации клиентской и серверной части объектов клиент записывает в этот самый нетпакет себя и затем посылает этот буфер на серверную сторону (потому и net-пакет). А может сервер клиенту... чёрт его знает. 3. Frect():set(0,658,83,47) - это синтаксис создания неименованного объекта пользовательского типа, экспортированного в Lua. В данном случае Frect. Это класс для хранения координат прямоугольника. Сразу после создания для объекта вызывается его метод set, который устанавливает его значения. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
IQDDD 5 Опубликовано 15 Июня 2009 Поделиться Опубликовано 15 Июня 2009 (изменено) malandrinus, Gonarh, в faction commander для ЧН как-то сделали запись в файл и чтение из него. Вот кусок кода: class "Setting" function Setting:__init() self.settingFileName = "gamedata\\faction_commander_setting.txt" self.settingTable = { command = { value = "", pattern = ".+", defaultValue = "default" }, magnitude = { value = "", pattern = "%d+", defaultValue = "0" }, ai = { value = "", pattern = "%a+", defaultValue = "disable" }, commission = { value = "", pattern = "%a+", defaultValue = "commission_off" }, } local file = io.open( self.settingFileName, "r" ) if file ~= nil then for name, info in pairs( self.settingTable ) do info.value = file:read( "*line" ) or "" end file:close() end for name, setting in pairs( self.settingTable ) do self:_checkIntegrity( name ) end end function Setting:__finalize() local file = io.open( self.settingFileName, "w" ) if file ~= nil then for name, setting in pairs( self.settingTable ) do file:write( setting.value, "\n" ) end file:close() end end function Setting:getValue( name ) return self.settingTable[ name ].value end function Setting:setValue( name, value ) self.settingTable[ name ].value = value self:_checkIntegrity( name ) end Изменено 22 Июня 2009 пользователем Pxan Ссылка на комментарий
Виталий Зверь 7 Опубликовано 15 Июня 2009 Поделиться Опубликовано 15 Июня 2009 Подскажите пожалуйста,как отключить монолог Сидоровича в начале игры и титры обучения. Ссылка на комментарий
Kirag 39 Опубликовано 15 Июня 2009 Поделиться Опубликовано 15 Июня 2009 Отключение монолога Сидоровича: В файле config\scripts\esc_trader.ltx в самом начале заменить [logic] active = {+esc_trader_hello_played} mob_trader@new_idle1, mob_trader@new_start_wait на [logic] active = mob_trader@new_idle1 Титры обучения - похоже, надо ковырять config\ui\game_tutorials.xml, но с ними я не разбирался Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
Monnoroch 6 Опубликовано 15 Июня 2009 Поделиться Опубликовано 15 Июня 2009 А в НЕХ-редакторе можно править путь так: ...............tre es\vetka_1.. на ...............trс сс\vetka_1.. ? Ссылка на комментарий
Гость Borsalino Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 (изменено) За что отвечает эта функция? function generate_test(lname) if level_vertexes[lname] == 0 then return nil end local gvn,gvx,lvx = game_vertexes[lname][1], game_vertexes[lname][2], level_vertexes[lname] local new_lv=math.random(1,lvx) local pos = level.vertex_position(new_lv) if not check_coordinates_arts(pos,lname) then return false end И, что не нравится игре? FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...\games\s.t.a.l.k.e.r\gamedata\scripts\amk_mod.script:131: attempt to index global 'amk_anoms' (a nil value) Спасибо. TREWKO Стоят родимые, при загрузке Болот как раз ентот вылет и происходит. На Солянке. switch_distance = 150 WAWKA Спасибо, пошёл ковырять дальше. Изменено 16 Июня 2009 пользователем Borsalino Ссылка на комментарий
DiXares 1 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 У меня была такая ошибка, и у меня она была связана с файлом alife.ltx, так как я в нём пытался увеличить дистанцию алайфа до 2 км. Ну и даже 600 м. У тебя случаем не стоят новые локации? Ссылка на комментарий
Wawka 5 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 Borsalino, а эти самые новые локации добавлены в amk_anoms.script? Если нет, то необходимо добавить в: local level_vertexes (указать имя локации = вертекс уровня) local level_number (указать имя локации = порядковый номер) local game_vertexes (указать имя локации = вертекс игры от и до) level_anoms (если нужны динамически спавнящиеся аномалии) level_arts (если нужны динамически спавнящиеся артефакты) local levelname В items.ltx добавить псевдобинты с названиями лок вида testsak_имялокации В sak.script в функцию add_tail добавить локи в исключения (на которых не планируется спавн артов) Ссылка на комментарий
IQDDD 5 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 я сделал так: packet = net_packet() obj = db.actor obj:STATE_Write(packet) direction = packet:r_vector() у меня ругается на то, что метод STATE_Write () неизвестен. Что делать? Ссылка на комментарий
Тёмный 0 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 Скорее всего, вопрос не в тему, но не нашел где бы это еще спросить. Можно ли худы костюмов перетащить на чистую игру без всяких АМК? На эффект дыхания, поломку и проч мне в общем-то плевать (хотя не отказался бы), но очень хотелось бы. Ссылка на комментарий
IQDDD 5 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 я создал свой файл скриптов: MyScripts.script там написал функцию: BlaBlaBla(oneparam,twoparam) ... end вызвал её из другого скрипта вот так: MyScripts.BlaBlaBla (oneargument,towargument) у меня вылазит: [error]Arguments : LUA error: .... - чистое небо\gamedata\scripts\ui_main_menu.script:117: attempt to index global 'MyScripts' (a nil value) Ссылка на комментарий
Sierra-1 0 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 Люди как из чн перегнать модельку в тч,пытался перегнать и получил вот такой лог Expression : fatal error Function : CSkeletonX::_Load File : E:\stalker\patch_1_0004\xr_3da\SkeletonX.cpp Line : 380 Description : <no expression> Arguments : Invalid vertex type in skinned model 'dynamics\outfit\neutral_assault_outfit:1' Ссылка на комментарий
Malandrinus 615 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 (изменено) IQDDD, у меня ругается на то, что метод STATE_Write () неизвестен. Что делать? Объект серверный? в faction commander для ЧН как-то сделали запись в файл и чтение из него. Ну значит в ЧН пространство имён io экспортировали. В ТЧ этого точно не было, я спецом проверял. Это как раз и есть стандартные функции Lua для работы с файлами. Смотри справочник по Lua, как с ними работать. attempt to index global 'MyScripts' (a nil value) Кроме банальной ошибки в какой-либо букве могу предположить, что не вышел из игры перед попыткой вызвать новый скрипт. Изменено 16 Июня 2009 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
wolkolak 0 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 (изменено) камрады расскажите подробно о том как происходит лечение НПС когда ему дает аптечку ГГ и когда НПС , как отличается действие разных аптечек (если отличается ) в каком скрипте что отвечает ... з.ы. читать шпаргалку не надо предлагать и так моя настольная книга Изменено 16 Июня 2009 пользователем wolkolak Свободу всем Даром! Моя Зона Full Realism Mod STSoC by Wolkolak "Безвыходных ситуаций не существует в принципе."(с) Ред Шухов Ссылка на комментарий
Taroz 0 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 (изменено) Borsalino, Поставить activeperl, как легкий способ. Потом запустить, батник в папке который лежит скрипт и ехе перла. Если конечно таковой имеется. http://strawberry-perl.googlecode.com/file...erl-5.8.8.4.exe к примеру, конечно я беру упакованный скрипт, вытряхиваю и пускай по своему усмотрению через батники. Потом распакаются содержимое олл.спану, потом смотришь через блокнот или иной текстовый редактор..... wolkolak, xr_wounded.script пример использования... в dialogs_escape.xml, диалоге с толиком <action>dialogs.transfer_medkit</action> / Надеюсь ясно и понятно. IQDDD, показывай в спройлере, скрипт... Иначе не понятно почему у тебя там нулевая переменная. Мб, не передается, может не определяется..... Итп. Изменено 16 Июня 2009 пользователем Taroz Ссылка на комментарий
cc31 0 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 я acdc.pl блокнотом открываю. Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти