Это популярное сообщение. Dennis_Chikin 3 665 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-847221
Gonarh 5 Опубликовано 14 Июня 2009 Поделиться Опубликовано 14 Июня 2009 хмм, похоже отвечает за формы, тестуры и размеры окна мессаджбокс в главном меню, ПЫСовцы делали его похожим на системное Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-235121
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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-235188
Monnoroch 6 Опубликовано 14 Июня 2009 Поделиться Опубликовано 14 Июня 2009 Gonarh, если будете отвечать на пост выше,отвечайте прямо тут,не в ЛС.... Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-235198
Gonarh 5 Опубликовано 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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-235217
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, который устанавливает его значения. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-235256
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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-235586
Виталий Зверь 7 Опубликовано 15 Июня 2009 Поделиться Опубликовано 15 Июня 2009 Подскажите пожалуйста,как отключить монолог Сидоровича в начале игры и титры обучения. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-235673
Kirag 40 Опубликовано 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, но с ними я не разбирался Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-235685
Monnoroch 6 Опубликовано 15 Июня 2009 Поделиться Опубликовано 15 Июня 2009 А в НЕХ-редакторе можно править путь так: ...............tre es\vetka_1.. на ...............trс сс\vetka_1.. ? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-235882
Гость 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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-236018
DiXares 1 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 У меня была такая ошибка, и у меня она была связана с файлом alife.ltx, так как я в нём пытался увеличить дистанцию алайфа до 2 км. Ну и даже 600 м. У тебя случаем не стоят новые локации? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-236050
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 добавить локи в исключения (на которых не планируется спавн артов) Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-236095
IQDDD 5 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 я сделал так: packet = net_packet() obj = db.actor obj:STATE_Write(packet) direction = packet:r_vector() у меня ругается на то, что метод STATE_Write () неизвестен. Что делать? Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-236101
Тёмный 0 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 Скорее всего, вопрос не в тему, но не нашел где бы это еще спросить. Можно ли худы костюмов перетащить на чистую игру без всяких АМК? На эффект дыхания, поломку и проч мне в общем-то плевать (хотя не отказался бы), но очень хотелось бы. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-236105
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) Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-236111
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' Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-236120
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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-236121
wolkolak 0 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 (изменено) камрады расскажите подробно о том как происходит лечение НПС когда ему дает аптечку ГГ и когда НПС , как отличается действие разных аптечек (если отличается ) в каком скрипте что отвечает ... з.ы. читать шпаргалку не надо предлагать и так моя настольная книга Изменено 16 Июня 2009 пользователем wolkolak Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-236157
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 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-236270
cc31 0 Опубликовано 16 Июня 2009 Поделиться Опубликовано 16 Июня 2009 я acdc.pl блокнотом открываю. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/50/#findComment-236275
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти