Это популярное сообщение. 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/67/#findComment-847221
Prapor11 0 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 (изменено) TREWKO это для чего функция чтобы излом друг был чтоли??? Добавлено: А понял для того чтобы удалить.Спасибо Добавлено через 7 мин.: Вот когда стреляешь в излома игра вылетает в _g.скрипт всё добавил про излома что и к какой групе. Expression : fatal error Function : CScriptEngine::lua_error File : D:\xray-svn\xr_3da\xrGame\script_engine.cpp Line : 74 Description : <no expression> Arguments : LUA error: c:\games\stalker\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value) Изменено 10 Июля 2009 пользователем Prapor11 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250649
RvP 1 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 Prapor11, Вылет при убийстве Это знаменитая ошибка: Arguments : LUA error: e:\stalker\gamedata\scripts\_g.script:20 ........ Самое просто и неправильное решение - закоментировать 20-ю строку скрипта _g.script, вылет исчезнет, но ошибка никуда не денется. Я не могу сказать с уверенностью, к чему игнорирование этого факта может привести, так как исправлял причину, а не следствие. Путем нехитрых логических размышлений решение было найдено. Вернее тупым перебором всего, что относилось к делу, криками на форумах, битьем головой о стенку... Потом пришло озарение, вместе с сакраментальным вопросом "что происходит после смерти?" А происходит добавление в статистику убитого объекта (монстра, нпс-а). Поэтому лезем в скрипт xr_statistic.script. В самом начале видим объявление переменной local killCountProps = {...} в которой кошек нет. Поэтому добавляем их туда (например, в конец), для начисления очков опыта: cat_weak = 1, cat_normal = 2, cat_strong = 3, Хотя мы сделали только cat_weak, но на будущее добавим и остальных. Затем идет перечисление используемых классов монстров: monster_classes = { кошек нет и здесь, добавляем: [clsid.cat_s] = "cat", Смотрим дальше, видим функцию addKillCount(npc), которая определяет сообщество (community) убитого. Функция вызывает getNpcType(npc), которая находится в этом же скрипте. А там идет обращение к функции IsStalker(npc), и возвращает сообщество и ранг убиенного. Но тут про мостров ни слова, а значит идем дальше. Функция IsStalker(npc) обнаруживается в скрипте _g.script. Просматривая его обнаруживаем следующие интересующие нас функции: · is_object_monster(obj) кошек нет, добавляем рядом с собаками: otype == clsid.cat or · IsMonster (object, class_id) кошки есть, ничего не трогаем. Для страховки проверим еще одни файл, class_registrator.script. Находим в нем строку cs_register (object_factory, "CCat", "se_monster.se_monster", "SM_CAT_S", "cat_s") и успокаиваемся на этом. Запускаем, убиваем, подходим, пытаемся обыскать - вылетаем. Потому что случился Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250656
Prapor11 0 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 Клас.А ещё вопрос про иконку там написана ui_npc_monster_fracture как правильно нарисовать ему иконку???Точнее как правильно узнать координаты иконок,так как я умею их рисовать Добавлено: RvP спасибо тебе Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250663
RvP 1 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 Prapor11, только ето не последний вылет, дальше будет вылет при обыске. для иконок http://www.amk-team.ru/forum/index.php?showtopic=1506 а вообще лутше почитай еще статьи на вики и сталкер-портале Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250666
Prapor11 0 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 RvP а с отношения так и не получилось в таблице отношений только два параметра для монстра излома хюман-человек актор-эктор меченный Добавлено: Ну излом у меня друг теперь Добавлено через 5 мин.: Всё разобрался тебе спасибо там был файл ui_npc_monster и в него заносяться координаты Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250670
RvP 1 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 Prapor11, не знаю,но свобода, долг и екологи ето ж вроде как люди, да и еще можно попробовать расширить таблицу Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250674
Prapor11 0 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 (изменено) RvP это я знаю.Я имел виду для монстряков.А расширить таблицу это увеличить разрешение? Изменено 10 Июля 2009 пользователем Prapor11 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250688
RvP 1 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 Prapor11, нет, попробовать добавить секцию с изломом в таблицу групировок Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250690
Prapor11 0 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 RvP я тебе про картинку излома говорил.А насчёт отношений добавить секцию с изломом в таблицу группировок я пробывал ничего не получилось. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250700
Jesh 3 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 Prapor11 В моде ABC+ЭЮЯ в последней версии можно было "нанимать" монстров, ознакомься в тамошней реализацией, может пригодится. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250857
Monnoroch 6 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 (изменено) Нужно вызывать действие примерно раз в 10 секунд. (не 10 раз в секунду) Не подскажете,как это можно сделать? З.Ы, Забыл,я имел ввиду именно через actor_update. Изменено 10 Июля 2009 пользователем Monnoroch Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250921
Министр 4 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 Monnoroch, как вариант, это можно реализовать таймером Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250956
Prapor11 0 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 (изменено) Получилось сделать излома другом для human и actor,а добавление строчки fracture со своим номером в раздел ;названия группировок communities не помогло.Надо чтобы излом атаковал солдат,бандит,монолит,зомби Изменено 10 Июля 2009 пользователем Prapor11 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250963
Monnoroch 6 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 (изменено) local tbl = { "a" = 1, "b" = 2, "c" = 3 } function set() local s for k,v in pairs(tbl) do if db.actor:object(k) then s = v end end return s end Надо: получить 2е значение из таблицы при наличии у ГГ обьекта с секцией = 1му значению из таблицы. Я все правильно сделал? (у меня просто еще нет опыта работы с таблицами,вот и спрашиваю) Изменено 10 Июля 2009 пользователем Monnoroch Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-250972
Push85 5 Опубликовано 10 Июля 2009 Поделиться Опубликовано 10 Июля 2009 (изменено) Monnoroch, если тебе надо получить "1" Если у ГГ есть предмет "a", ну и так далее, то все правильно, но кавычки в таблице не нужны, по-моему, у меня без кавычек работает такая фишка: local tbl = { a = 1, b = 2, c = 3 } Изменено 10 Июля 2009 пользователем 8push5 Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-251066
Malandrinus 615 Опубликовано 11 Июля 2009 Поделиться Опубликовано 11 Июля 2009 Нужно вызывать действие примерно раз в 10 секунд. (не 10 раз в секунду) З.Ы, Забыл,я имел ввиду именно через actor_update. как вариант, это можно реализовать таймером Таймер и сделан на апдейте актора, но таймер - это здесь как из пушки по воробьям. Я бы так поступил: last_time = 0 time_delta = 5000 -- пауза в миллисекундах function actor_binder:update(delta) local tg = time_global() --local tg = game.time() -- а это в игровых еденицах if (tg - last_time) > time_delta then last_time = tg -- твоё действие end ... end не помогло.Надо чтобы излом атаковал солдат,бандит,монолит,зомби Одними файлами конфигурации не выйдет. Все монстры к людям одинаково относятся. Вроде как это в движок зашито. В принципе, можно залезть в логику монстра и заставить его игнорировать часть врагов в зависимости от человеческой группировки. Но это надо лезь достаточно глубоко в скрипты. local tbl = { "a" = 1, "b" = 2, "c" = 3 } Надо: получить 2е значение из таблицы при наличии у ГГ обьекта с секцией = 1му значению из таблицы. Допустим, есть у тебя есть имя секции. Это строка, так что с кавычками - это правильно. Пусть имя секции будет "b". Теперь из таблицы можно получить число два для этого имени так: local vvv = tbl["b"] -- в vvv запишется число 2 Таблица - это ассоциативный массив. Первое значение - это ключ (должен быть уникален), второе - любое значение. Если в таблице нет такого ключа (в данном случае имени секции), то получим nil. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-251080
Monnoroch 6 Опубликовано 11 Июля 2009 Поделиться Опубликовано 11 Июля 2009 (изменено) malandrinus, то,что ты написал я знаю.Это я б и не спросил. Мне надо именно мой случай - так,как написал ты, там не подступишься (vvv = tbl["b"] -- вот так). У меня придется делать for...do. И я спрашивал,правильно ли я сделал? Собственно я просто хочу заменить конструкцию: local t = 0 if db.acror:object("a") then t = 1 end if db.acror:object("b") then t = 2 end if db.acror:object("c") then t = 3 end return t На более грамотную.И общую. И еще вопрос:если я все сделал правильно,то как будет вести себя функция,если есть и "a" и "с" у ГГ? Вышеприведенный код вернет наибольшее число(и это правильно), а что будет с обработкой таблицы? Изменено 11 Июля 2009 пользователем Monnoroch Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-251176
Push85 5 Опубликовано 11 Июля 2009 Поделиться Опубликовано 11 Июля 2009 Monnoroch, функция вернет последнее обработанное и удовлетворяющее условиям, то есть если есть "a" и "b" то скорее всего (если "b"=2) вернет 2, но сначала завершиться обработка таблицы. Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-251192
IQDDD 5 Опубликовано 11 Июля 2009 Поделиться Опубликовано 11 Июля 2009 (изменено) Народ, делайте как раньше (и как проще): в массивах с числовыми индексами. Вот и всё. Вместо for k,v in pairs (asd) do используйте обычный цикл for k,v do. Так надёжнее. Monnoroch, local t = 0 if db.acror:object("a") then t = 1 end if db.acror:object("b") then t = 2 end if db.acror:object("c") then t = 3 end return t Вотъ(таблица ТОЛЬКО с числовыми индексами): function what_for_this_function (tbl) if tbl ~= nil then for k,v in pairs (tbl) do if db.actor:object(tbl[k]) then return tbl[2] end end else return false end end Изменено 11 Июля 2009 пользователем IQDDD Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-251351
Monnoroch 6 Опубликовано 11 Июля 2009 Поделиться Опубликовано 11 Июля 2009 (изменено) IQDDD, return tbl[2] - это че? Может return tbl[v] ? Ато вдруг у меня так: local t = 0 if db.acror:object("a") then t = 79 end if db.acror:object("b") then t = 90 end if db.acror:object("c") then t = 24 end return t Изменено 11 Июля 2009 пользователем Monnoroch Ссылка на комментарий https://www.amk-team.ru/forum/topic/15045-soc-kovyrjaemsja-v-fajlah/page/67/#findComment-251356
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти