Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Unnamed Black Wolf 4 Опубликовано 9 Января 2010 Поделиться Опубликовано 9 Января 2010 Real Wolf, получаешь содержимое через нет_пакет, распарсиваешь табличку, и сверяешь с секционным именем. И если не изменяет память через скрипт, и тоже сравниваешь с именем секции. А вот если нужен оригинальный именной по иду, то тогда только по сравнению с идом. P.S. Так как вопрос был задан "как?", предвижу рецидив, и отвечу. Иди читай статьи, а по лс не отвечу, далее здесь можно продолжить обществу задавать вопросы. Но с вопросами как и зачем не очень рекомендую, здесь ведуют один не очень адекватный и нормальный модер n6260, так что... Забанить может в раз. Ой ну надо-же я наверно нарушил какой-то пункт плавающего правила. Сообщение от модератора n6260 Ой, меня получается несколько за раз? Ссылка на комментарий
Malandrinus 615 Опубликовано 9 Января 2010 Поделиться Опубликовано 9 Января 2010 А конкретней? Это вопрос к моему ответу про ящики? Если так, то не знаю, что добавить. Мой ответ и так конкретней некуда. Или о чём другом речь? получаешь содержимое через нет_пакет, распарсиваешь табличку, и сверяешь с секционным именем. И если не изменяет память через скрипт, и тоже сравниваешь с именем секции. Чтобы определить, что предмет в ящике? А чем по parent_id не устраивает? Вообще, нетпакеты - это последний аргумент. По возможности лучше избегать. здесь ведуют один не очень адекватный и нормальный модер ... Забанить может в раз.Какое самодостаточное наблюдение =) Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Garry_Galler 7 Опубликовано 9 Января 2010 Поделиться Опубликовано 9 Января 2010 Real Wolf передаешь в функцию юзердату объекта function get_parent_id(obj) if obj then local sobj = alife():object(obj.id) if sobj and sobj.parent_id then return sobj.parent_id end end end на выходе получаешь его парент ид. далее сравниваешь этот ид с идом конкретного ящика. Если совпадает - значит предмет в ящике. в общем это дело не совсем для новичков - тут надо все нужные данные в таблички писать - если умеешь работать с таблицами Lua то поймешь как и что. Ссылка на комментарий
Starter 238 Опубликовано 9 Января 2010 Поделиться Опубликовано 9 Января 2010 кровоSTALKER огромное спасибо за поучение, но только я чтот не видел папки dynamics и в конфигах калаша item_visual, может ты имел ввиду это всё для ЧН или ЗП, в тч такого нету просто. в принцепе я итак понял что ты имел ввиду, мировая модель и модель в руках, а вот про последее, чёт не дошло "И в той же секции с худом пишешь anm_reload = ak74_reload_right и anm_reload_g = или ak74_reload_right_w_gl или ak74_reload_right_w_gl_rot или ak74_reload_right_w_rot" Поясни, по конкретней что за? ЯДиск папка с крутым схроном! Ссылка на комментарий
Malandrinus 615 Опубликовано 9 Января 2010 Поделиться Опубликовано 9 Января 2010 (изменено) Garry_Galler, избыточный код. Зачем так сложно? У тебя по коду на входе функции и так подразумевается серверный объект. Зачем по нему получать серверный ещё раз? Ничего другого не получишь, уж точно =) Этого достаточно: function get_parent_id(obj) if obj then return sobj.parent_id end end И потом, с точки зрения безопасности и надёжности проверка if obj then ... на самом деле ничего не даёт. Ну проверил, что объекта на самом деле нет, а дальше что? Функция в этом случае возвращает nil. Хуже всего, что этот nil в последствие приводит к непредсказуемым результатам (и не обязательно сразу к вылету). И в итоге ты получаешь отложенную ошибку, которая естественно приведёт к сбою, но совсем не там, где надо, не там где можно понять её источник. На самом деле эту проверку надо делать до вызова этой функции. Именно то место, где вызывается подобная функция - это место, где можно принять решение, что делать с этой ошибкой. Так что без всяких функций: if obj then --делать что-то с obj.parent_id else --обрабатывать ошибку end В современных языках программирования эти вопросы решаются с использованием механизма исключений: ошибка выявляется в одном месте, а механизм исключений переправляет её обработку в вышестоящий уровень, где имеются полномочия для принятия решения. В Lua исключений в явном виде нет (хотя некое подобие в виде pcall есть), так что придётся по старинке, самому выявлять нужное место обработки ошибки. Изменено 10 Января 2010 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Monnoroch 6 Опубликовано 10 Января 2010 Поделиться Опубликовано 10 Января 2010 (изменено) malandrinus, вот кстати чисто на практике nil как 0 не интерпритируется обычно... (то есть постоянно идут ошибки типа compare with nil и подобное) Изменено 10 Января 2010 пользователем Monnoroch Ссылка на комментарий
Malandrinus 615 Опубликовано 10 Января 2010 Поделиться Опубликовано 10 Января 2010 Monnoroch, ну хорошо, не в большинстве случаев, а иногда (предыдущий пост поправил). Вроде бы nil в с точки зрения Lua должен быть не значением, а его отсутствием. Поэтому вызов функции fun(nil) вроде как эквивалентен вызову fun(), но так ли происходит всегда, я не знаю. Но такие случаи я точно встречал. К примеру вызов level.object_by_id(nil), как и без аргумента возвращает объект с нулевым идентификатором, т.е. актора. А вызов alife():object(nil) приводит к вылету. А вызов db.actor:object(nil), который вроде как должен вернуть объект по индексу, возвращает вместо этого число 0. В итоге, ситуация еще хуже, поскольку реакция функций игры на вызов без аргумента (или с nil) попросту непредсказуемая. Так что мой предыдущий спич полностью остаётся в силе =) Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Monnoroch 6 Опубликовано 10 Января 2010 Поделиться Опубликовано 10 Января 2010 (изменено) malandrinus, это значит всего лишь,что в функции level.object_by_id(id) в начале код if not id then id = 0 end с другими аналогично.посему это зависит от функции - и nil-у никогда не присвоится 0 автоматически. но твой спич в силе - тут я поспорить не могу. Изменено 10 Января 2010 пользователем Monnoroch Ссылка на комментарий
lekzd 1 Опубликовано 10 Января 2010 Поделиться Опубликовано 10 Января 2010 malandrinus, ну ПЫСы предусмотрели "тупого юзера" - и оградили все карты непробиваемой колючей проволокой и полным отсутствием чего-либо интересного - но вот от "бешеного скриптера", который все раскопает они не предусмотрели защиты в скриптах АМК встречал ответ на твой вопрос - при проверки аргументов функции не введенные аргументы считались за nil и проверялись исходя из этого но скрипты скриптами а С++ и С# таких обращений с аргументами не воспринимают, потому функции, которые напрямую вызывают движковые функции и передают им аргументы, естественно приводят в вылетам. i-igroman.ru - Мой, принципиально новый сайт о компьютерных играх Ссылка на комментарий
Storyteller 2 Опубликовано 10 Января 2010 Поделиться Опубликовано 10 Января 2010 Доброго времени суток. Уважаемые Знатоки, помогите с одним вопросиком: Где и что нужно прописать, что бы завести машину. И можноли сделать так, чтоб она не фонила? Мои работы ТЫЦ Ссылка на комментарий
iDreD 5 Опубликовано 10 Января 2010 Поделиться Опубликовано 10 Января 2010 Фонила? Смысле? Радиация?! О том как нэв опцию добавить читай вики, об этом не раз писалось... Добавлено через 9 мин.: А вообще чтобы без гемороя - в консоли введи bind turn_engine kB. Ну может _ в другом месте, а так, в игре жмешь В и машина заводицо. Передачи переключаюцо шифтом и ктрлом. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Ссылка на комментарий
Garry_Galler 7 Опубликовано 10 Января 2010 Поделиться Опубликовано 10 Января 2010 (изменено) malandrinus Спич в силе. :ny_ph34r_1: Раз уж речь зашла об ошибках - то вот мне интересно было бы узнать как скриптовый парсер игры обрабатывает ошибки. Вот например вчера получил полный неадекват этого парсера по отношению к моему файлу со скриптами. Каждая функция в этом файле - доселе рабочая и проверенная объявлялась nil value - в порядке очередности вызовов. первыми попали под раздачу апдейтовые функции - когда убрал их вызов, игра загрузилась но ругнулась на первый же вызов следущей функции и т.д. Ошибку (которая и была причиной всех nil value) я нашел - просто в добавленной в файл таблице отсутствовали кавычки у строковых индексов заключенных в [] ну и тож самое было в функции которая данные из таблицы получала то есть было local verb = word[verb][math.random(#word[verb])] вместо local verb = word["verb"][math.random(#word["verb"])] И все. Почему бы парсеру было просто на это не указать? :ny_dry: Ну по крайне мере споткнуться на чтении(вызове) именно этой функции, а не объявлять nil value рабочие. Monnoroch может я не так выразился но логи были такие: : attempt to call field 'gratva' (a nil value) attempt to call field 'uny_spawn_1' (a nil value) attempt to call field 'on_actor_update' (a nil value) : attempt to call field 'get_object' (a nil value) все это имена функций из этого файла которые при их вызове давали крэш игры. Изменено 10 Января 2010 пользователем Garry_Galler Ссылка на комментарий
Monnoroch 6 Опубликовано 10 Января 2010 Поделиться Опубликовано 10 Января 2010 (изменено) Garry_Galler, он нилом обьявляет не функцию,а скрипт. ни разу не видел,чтобы конкретную функцию. Изменено 10 Января 2010 пользователем Monnoroch Ссылка на комментарий
tor62 6 Опубликовано 10 Января 2010 Поделиться Опубликовано 10 Января 2010 можно ли изменить цвет СМС с заданиями и как? Оптимисты изучают английский язык, пессимисты - китайский. А реалисты - автомат Калашникова Ссылка на комментарий
Starter 238 Опубликовано 10 Января 2010 Поделиться Опубликовано 10 Января 2010 Всем СПАСИБО ЗА СОВЕТЫ И ОТВЕТЫ!!! Особенно кровоSTALKERу! Извините что потратил ваше время но я всё-таки справился сам. единственное что помогло это совет насчёт партикла, но всё равно спасибо за помощь!!! НО ТЕПЕРЬ ДРУГОЙ ВОПРОС: а тут может модер сделать тему типа моды ковыряния наработки для сетевой игры ТЧ? Просто у мня много чего именно для сетевой и желаю поделиться, ну а если кому не лень то милости просим на наш сайтик buhalker.narod.ru конешно сайт полная фигня но он для того чтобы зырить наши моды))) ВСЕМ СПАСИБО!!! Строгое предупреждение от модератора n6260 "Капсом" не пишите. Добавлено через 32 мин.: n6260 былин...забыл. Всё больше не буду. ЯДиск папка с крутым схроном! Ссылка на комментарий
lekzd 1 Опубликовано 10 Января 2010 Поделиться Опубликовано 10 Января 2010 Starter, такую бы энергию да в трезвое русло)) ЗЫ: на будущее - пожалуйста, пишите, какие моды вы юзаете при создании собственных - авторам иначе обидно i-igroman.ru - Мой, принципиально новый сайт о компьютерных играх Ссылка на комментарий
Starter 238 Опубликовано 11 Января 2010 Поделиться Опубликовано 11 Января 2010 калаши скачал из темы AAza автора Weapon packs от Jackal файл Автоматы АК74 и АКМС. "Starter, такую бы энергию да в трезвое русло))" - это куда например? ЯДиск папка с крутым схроном! Ссылка на комментарий
_Призрак_ 11 Опубликовано 11 Января 2010 Поделиться Опубликовано 11 Января 2010 (изменено) люди прошу помочь. хочу заспавнить рюкза по шаблону жеки из темы Уроки по модостроению. Первый пункт там такой: Создаём файл ваше_название_скрипта.script в папке gamedata/scripts и пишем в него: Код function ваше_название_функции() $$$НАЗВАНИЕ ФУНКЦИИ$$$ alife():create(section,position,levelvertex,gamevertex) $$$ЭТО ТОЧКА ГДЕ СПАВНИТСЯ ПРЕДМЕТ$$$ end Так вот что означает section,position,levelvertex,gamevertex? И какие там должны быть цыфры что-бы рюкзак появился на этой точке Строгое предупреждение от модератора n6260 Полноразмерное изображение размещать в сообщении запрещено. Заливаем картинку на любой фотохостинг и копируем в текст код "превью по клику". Изменено 11 Января 2010 пользователем n6260 Freedom Ссылка на комментарий
Monnoroch 6 Опубликовано 11 Января 2010 Поделиться Опубликовано 11 Января 2010 Garry_Galler, Чесслово, 1 раз такое вижу О_о Всегда если уж ругалось,то на ВЕСЬ скрипт... Ссылка на комментарий
Starter 238 Опубликовано 11 Января 2010 Поделиться Опубликовано 11 Января 2010 Подскажите пожалуйста! Я знаю, что в ЧН в сетевой игре если изменяешь текстуры, то игра идёт спокойно и заходит на любой сервер. Что нужно сделать, чтобы и ТЧ тоже так заходил свободно с текстурами? (Замечание: ТЧ со звуком входит без всяких проблем на любой сервер без перестоновки папок gamedata, как это делают читерв). Заранее Спасибо за ответ! Добавлено через 5 мин.: Подскажите пожалуйста! Я знаю, что в ЧН в сетевой игре если изменяешь текстуры, то игра идёт спокойно и заходит на любой сервер. Что нужно сделать, чтобы и ТЧ тоже так заходил свободно с текстурами? (Замечание: ТЧ со звуком входит без всяких проблем на любой сервер без перестоновки папок gamedata, как это делают читерв). Заранее Спасибо за ответ! ЯДиск папка с крутым схроном! Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти