Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
UnLoaded 313 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 А вот второй параметр spawn_id Вроде то-же, добавляется ACDC. Как использовать - где-то в описании ACDC что-то было на эту тему. 1 Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 alife():create( 15228 ) - такого барахла тонким слоем по полусотне скриптов. Почему, собственно, владеющий олспавном соли - диктует всем, на каких задних цырлах на какую высоту подпрыгивать, ага. Добавлено BFG, 19 Августа 2015 Я не скриптер. Ничо не понял Денис. Какие прыжки ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Nazgool 250 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 (изменено) @BFG, попробую объяснить. Как известно спавнить из all.spawn можно по имени секции : alife():create(100) -- т.е. спавним секцию [100] Но после перекомпиляции all.spawn-а нумерация секций может измениться, поэтому никогда нельзя быть уверенным в том, что в секции (напр.) [100] останется то же самое содержимое. Поэтому нужен ID этой секции для спавна именно её, который и задется в 'spawn_id'. И по нему тоже можно спавнить : alife():create(какой-то_spawn_id) Тут нужно либо точно знать какой именно 'какой-то_spawn_id', либо узнать методом : alife():spawn_id('какой-то_story_id') В этом случае для секции, которую необходимо спавнить подобным образом, кроме 'spawn_id', нужно задавать и значение 'story_id' (которое нужно не забыть прописать в game_story_ids.ltx). Ну и теперь можно спавнить : local story_id = story_ids.какой_там_записан_ключ_в_game_story_ids local spawn_id = alife():spawn_id(story_id) local obj = alife():create(spawn_id) Изменено 19 Августа 2015 пользователем Nazgool 1 Ссылка на комментарий
BFG 7 582 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 (изменено) alife():create(Я проверил все скрипты ( 66 штук ) по этому тэгу. Просмотрел все такие строки и нигде не нашёл, чтобы спавн происходил с явным указанием числа. Обычно указывается нормальное имя итема и координаты. local spawn_id = alife():spawn_id(story_id) local obj = alife():create(spawn_id) Проверил также все скрипты на эту комбинацию. Таких строк нет. Значит ли это что привязки к spawn_id нет ? Стало быть и в оллспавне без разницы какие числа там стоят. Или эта привязка может быть запрятана ещё каким либо хитроумным скриптерским способом ? Если не сложно приведите пожалуйста пару таких примеров. Изменено 19 Августа 2015 пользователем BFG "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
Карлан 1 049 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 (изменено) @BFG, число там ставит компилятор, поэтому можешь ставить там абсолютно любое число, оно роли можно сказать не играет и его лучше не использовать в скриптах, как, к слову, и секцию с координатами. Дополню ответ тем, что еще есть поле spawn_story_ids, которое, если не вдаваться в подробности, является аналогией вышеуказанного поля (но на мой взгляд это поле более гибкое что-ли, из него можно больше информации выудить при меньших затратах). Но тем не менее эти параметры все же разные и надо знать где и когда использовать тот или иной (см. задания). Изменено 19 Августа 2015 пользователем Карлан 1 Ссылка на комментарий
Dennis_Chikin 3 658 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 (изменено) "Я проверил все скрипты" Да ну ? amk_mod.script: if amk.load_variable("amk_13",0)==0 then -- pri_space_restrictor_0011 local obj = alife():story_object(830) if obj then alife():release(obj) alife():create(10776) end ну и т.д. sak.script, *_dialog.script и т.д. Изменено 19 Августа 2015 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
abramcumner 1 160 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 Значит ли это что привязки к spawn_id нет ? Стало быть и в оллспавне без разницы какие числа там стоят. Или эта привязка может быть запрятана ещё каким либо хитроумным скриптерским способом ? Если не сложно приведите пожалуйста пару таких примеров.Скорее всего такой привязки нет. Ею наелись еще во времена АМК.На всякий случай сделай поиск не по "alife():create(", а по ":create(", чтобы обработать случай: local a = alife() a:create(... 1 Ссылка на комментарий
Карлан 1 049 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 (изменено) @abramcumner, ну если глянуть в сторону оберток, то твой ответ тоже не раскрывает всей сути, в амк есть обертка spawn_item и иже с ней, тогда надо делать поиск и по этим функциям, причем не только по созданию, но и по удалению, как выше заметил Денис. Это причем я еще не знаю какие есть подобные обертки в дочерних модах, а тем более в каком-нибудь ОП-2. Изменено 19 Августа 2015 пользователем Карлан Ссылка на комментарий
abramcumner 1 160 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 (изменено) Безотносительно модов и почему у Дениса нашлись вызовы, а у BFG нет. Теория была правильной: проверить вызовы alife():create(. Вызывается ли она с одним параметром типа alife():create(11016) или вызывается с набором секция, координаты, лв, гв. Это будет видно и в функциях типа spawn_item. Изменено 19 Августа 2015 пользователем abramcumner 1 Ссылка на комментарий
BFG 7 582 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 (изменено) Да ну ? Денис, если я говорю что НЕТ, значит НЕТ. Проверил. НЕТ числовых id-привязок в скриптах. Вычистили всё. Полностью. Значит так. На всякий случай сделай поиск Тоже нет. в амк есть обертка spawn_itemПожалуйста приведи простой пример, если не трудно, с использованием данной "обёртки". Изменено 19 Августа 2015 пользователем BFG "Кругом зомби.....у меня кончаются патроны...." Ссылка на комментарий
Карлан 1 049 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 (изменено) @BFG, пример прост - spawn_item(number), но скорее всего таких случаев не будет, так как это обертка видно что была только под секцию и координаты, но я более чем уверен что таких случаев не встретится. Упомянул к тому, что в солянках могли в глобальное пространство добавить похожие функции и там уже могут дела обстоять иначе, но я коды солянки не изучал, мне ни к чему. Изменено 19 Августа 2015 пользователем Карлан Добавлено BFG, 19 Августа 2015 Понятно. Спасибо. Ссылка на комментарий
Vadyanchikus 5 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 Подскажите, пожалуйста, такую вещь.Рассматривал файл _g.script, в конце файла нашёл такое: ammo_section = {} ammo_section["ammo_9x18_fmj"]=true ammo_section["ammo_9x18_pbp"]=true ammo_section["ammo_9x18_pmm"]=true ammo_section["ammo_9x19_fmj"]=true ammo_section["ammo_9x19_pbp"]=true ammo_section["ammo_5.45x39_fmj"]=true ammo_section["ammo_5.45x39_ap"]=true ammo_section["ammo_5.56x45_ss190"]=true ammo_section["ammo_5.56x45_ap"]=true ammo_section["ammo_5.7x28_fmj"]=true ammo_section["ammo_5.7x28_ap"]=true ammo_section["ammo_7.62x54_7h1"]=true ammo_section["ammo_7.62x54_ap"]=true ammo_section["ammo_7.62x54_7h14"]=true ammo_section["ammo_9x39_pab9"]=true ammo_section["ammo_gauss"]=true ammo_section["ammo_9x39_ap"]=true ammo_section["ammo_9x39_sp5"]=true ну и т.д. идут оставшиеся патроны Эта конструкция (массив или таблица: что это?) вообще читается игрой? Просто я не знаю, как определить, задействована ли функция в игре или нет.Также ниже есть такая же конструкция, но в ней указаны квестовые предметы. Ссылка на комментарий
Zander_driver 10 334 Опубликовано 19 Августа 2015 Поделиться Опубликовано 19 Августа 2015 и секцию с координатами. А это еще почему? Ну написал я alife():create("medkit", ля-ля-тополя где хочу там спавню) - кому и где от этого плохо? массив или таблица: что это? Ну вообще следуя общепринятой терминологии это таблица. Только тут она сначала создается, а затем уже заполняется значениями. вообще читается игрой? Ну раз она находится в _g.script И не под комментарием, то очевидно да. Просто я не знаю, как определить, задействована ли функция в игре или нет. А причем тут функции, если это таблица Как вариант, можно взять на вооружение Total Commander, вбить в поиск название искомой таблицы/функции/чего-то еще, и поискать в папке скриптов. Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine. Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист. AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD. Ссылка на комментарий
Roman_Dmitrov2 0 Опубликовано 20 Августа 2015 Поделиться Опубликовано 20 Августа 2015 Определись конкретнее: тебе надо изменить отношение этих "красных военных" ко всем остальным, или просто сделать сюжетный запрет на агрессию, как, к примеру, у Кузнецова с его группой солдат под мостом на Кордоне ? Именно! Запрет на агрессию Ссылка на комментарий
AndrewMor 527 Опубликовано 20 Августа 2015 Поделиться Опубликовано 20 Августа 2015 Подскажите, пожалуйста, такую вещь. Рассматривал файл _g.script, в конце файла нашёл такое: Если будешь вводить в игру новый патрон - прописка его в _g.script обязательна. В противном случае будет вылет. Сам столкнулся с этим. Именно! Запрет на агрессию Смотри, как это сделано в оригинале с Кузнецовым под мостом на Кордоне. Там ничего сложного нету. Сталкер - наше всё! Ссылка на комментарий
Vadyanchikus 5 Опубликовано 20 Августа 2015 Поделиться Опубликовано 20 Августа 2015 @AndrewMor, а что насчёт таблицы с квестовыми предметами? Я вроде как новый ввёл, в таблицу не добавлял, вылета не было. Ссылка на комментарий
UnLoaded 313 Опубликовано 20 Августа 2015 Поделиться Опубликовано 20 Августа 2015 По правильному в функции alife():create не должно быть вообще лв/гв - это внутренности системы навигации. Должны быть только координаты. А лв/гв пусть эта самая система навигации и считает, если они ей нужны. Хм, а ничего, что одни и те-же координаты могут быть на куче разных локаций ? Как бы все не спорили, а реальность есть такова, что имея только координаты заспавнить объект не получится - по любому нужен gv, который определяет целевую локацию. а что насчёт таблицы с квестовыми предметами? Я вроде как новый ввёл, в таблицу не добавлял, вылета не было. Таблица "quest_section" в игре используется в единственном месте: function relocate_item_section(victim, section, type) if db.actor and victim then if type == "in" then -- Трансферить нужно только квестовые предметы -- if quest_section[section] == true and victim:object(section) ~= nil then victim:transfer_item(victim:object(section), db.actor) else -- остальные - спаунить в инвентарь актеру -- alife():create(section, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end elseif type == "out" then db.actor:transfer_item(db.actor:object(section), victim) end news_manager.relocate_item(db.actor, type, section) end end Из пояснений в коде ф-ции надеюсь ты сам поймешь, зачем нужна эта таблица. Ссылка на комментарий
Vadyanchikus 5 Опубликовано 20 Августа 2015 Поделиться Опубликовано 20 Августа 2015 Извините, если не в эту тему написал, но по-моему этому вопросу место именно здесь.В общем, получил вылет. Вылет происходит при убийстве NPC (новичок у костра из деревни, стрелял прямо в голову): [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...\s.t.a.l.k.e.r\gamedata\scripts\death_manager.script:139: attempt to index field '?' (a nil value) Весь прикол в том, что указанный в логе файл я не трогал ВООБЩЕ (я его даже сравнил с файлом из "чистой" gamedata - полностью совпадает). Не подскажете, в чём дело. Накануне только 2 новых ранга ввёл. Но вряд ли это как-то связано. Ссылка на комментарий
Vadyanchikus 5 Опубликовано 20 Августа 2015 Поделиться Опубликовано 20 Августа 2015 (изменено) Vadyanchikus, патчи проверь, сидишь на 4 а файл от 6, или наоборот. @Карлан, сижу на 6-ом + недавнее (ну как недавнее) обновление из-за закрытия серверов GameSpy. Изменено 20 Августа 2015 пользователем Kirgudu Ссылка на комментарий
Kirgudu 1 218 Опубликовано 20 Августа 2015 Поделиться Опубликовано 20 Августа 2015 (изменено) @Карлан, @abramcumner, @UnLoaded, вся дискуссия про спавн и координаты перенесена в «Курилку программистов». Изменено 20 Августа 2015 пользователем Kirgudu 1 Инструмент Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти