Dennis_Chikin 3 658 Опубликовано 7 Августа 2014 По использованию трупов смотрим xr_motivator, по точности стрельбы - таки да, конфиг актора, конфиги стреляющих + конфиги оружия. Все очень даже вполне изменяется. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 7 Августа 2014 "А детч_менеджер не подчистит ?" - а у кого-то кровососы стали неписями ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 11 Августа 2014 "При переходе на локацию некоторые НПС по новой выполняют действия: Шустрый респавниться в АТП". Переписать работы и логику. Типа вот так: -- Шустрый { section = "logic@esc_lager_shustryi_sleep", idle = 0, prior = 18, state = {0, 2}, in_rest = "", out_rest = "", predicate = function(obj_info) return ( obj_info["profile_name"] == "esc_shustryi" ) and has_alife_info( "tutorial_wounded_give_info" ) end }, { section = "logic@esc_lager_kamp1", idle = 0, prior = 18, state = {1}, in_rest = "", out_rest = "", predicate = function(obj_info) return ( obj_info["profile_name"] == "esc_shustryi" ) and has_alife_info( "tutorial_wounded_give_info" ) end }, { section = "logic@esc_lager_shustryi", idle = 0, prior = 17, state = {0, 1, 2}, in_rest = "", out_rest = "", predicate = function(obj_info) return ( obj_info["profile_name"] == "esc_shustryi" ) and has_alife_info( "tutorial_wounded_start" ) end }, { section = "logic@esc_lager_shustryi", idle = 0, prior = 16, state = {0, 1, 2}, in_rest = "", out_rest = "", online = false, predicate = function(obj_info) return obj_info["profile_name"] == "esc_shustryi" end }, -- резерв на случай смерти Шустрого { section = "logic@esc_lager_sleeper2", idle = 0, prior = 2, state = {0}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_kamp1", idle = 0, prior = 2, state = {1}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, { section = "logic@esc_lager_defend3", -- ХРЕНОВЫЙ. Но резерв. idle = 0, prior = 2, state = {2}, in_rest = "", out_rest = "esc_lager_guard_kill_zone" }, Sorry, это под "расширенный формат" - оригинальные скрипты не поймут, но идея в принципе должна быть понятна. Кстати, заодно вообще резервных работ добавить стоит. 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 12 Августа 2014 (изменено) типа такого: if sect == "treasure_item" then local gvid = actor:game_vertex_id() if gvid and game_graph():valid_vertex_id( gvid ) then local obj = sim:create( "m_inventory_box", actor:position(), actor:level_vertex_id(), gvid ) if obj then local t = amk.get_invbox_data( obj ) t.custom = "[logic]\ncfg = scripts\\treasure_inventory_box.ltx" amk.set_invbox_data( t, obj ) return end end sim:create( "treasure_item", vector(), 0, 0, 0 ) ... actor и sim определяются как обычно где-нибудь.Вешается на on_use() Изменено 18 Декабря 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 12 Августа 2014 Вопрос хороший и грамотный на самом деле. delta прилетает извне. Сколько прошло с предыдущего вызова. Для практического применения не очень чтобы пригодно, ибо значения неудобны и весьма неравномерны. watchdog - где-то в другом месте проверяется, и по результату что-то делается. Обычно любой скрипт во время апдейта пишет туда что-то свое, а если все закончил благополучно - 0. Если при проверке оказался не 0 - значит, предыдущий скрипт повис. Это все нужно для отладки. По ссылке - туда пишется строчка, которую передал скрипт при своей инициализации. Вместо amk.oau_watchdog можно было бы писать _G.watchdog, или завести отдельный пустой скрипт watchdog.script и писать watchdog.my_KeeWl_watchdog - без разницы. Главное, чтобы потом проверять его же. В амк/солянке скорее не работает, чем работает, поскольку крайне неудачно выбрано место, где производится проверка. По "Но все упирается в то, что очень часто мы просто не знаем (а очень хочется сделать...)" - нет. Проблема в подходе. Я вот, честно, тоже не знаю, как это организовать нормально. 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 21 Августа 2014 Способов куча на самом деле. Просто смотреть эту тему + скриптование и справочник по функциям и классам. И выбирать, какой подходит. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 21 Августа 2014 Например, xr_logic.pstor_store(). Или в нетпакет. Или создать специальное хранилище через factory. Или, если предмет уникален - через infoportion. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 21 Августа 2014 1. Да. 2. Формат нетпакета для каждого класса свой. Но это не значит, что данные нужно хранить именно в этом предмете. И, да, pstor - это для онлайна. Нетпакет - преимущественно для офлайна (хотя можно и в онлайне). Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 28 Августа 2014 (изменено) Для начала - уточнить: на локации, или в онлайне ? Если на локации - изучать amk_offline_alife из amk-мода. Или task_manager. Если в онлайне - они отсортированы в db.script, и дальше добавить проверку по clsid() для монстров/community() для неписей. Upd: Тогда лучше для начала se_respawn.script изучить тщательно. Правда там принцип совершенно обратный: если ГГ близко - ничего не спавнится. И это правильно: если монстры/неписи появляются из воздуха прямо перед игроком - это странно выглядит. Изменено 28 Августа 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 3 Сентября 2014 (изменено) Zander_driver, а это: return function(gulag) return 2 - вообще как ??? Оно даже запускаться не должно. А большую статью - ну вот как только руки дойдут - так и сразу. Изменено 3 Сентября 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 3 Сентября 2014 Sorry, моя невнимательность. Но теперь вопрос: проверялось все-таки с первым вариантом, или вот этот, с добавленными строками ? Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 3 Сентября 2014 (изменено) У меня такое не компилится. И, да, специально с этим не разбирался, но как раз general_lager может быть исключением: только state 0 и 1, где 1 - рэйд. Изменено 3 Сентября 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 3 Сентября 2014 Поздравляю. Заодно победил безлоговый вылет. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 3 Сентября 2014 Точнее, если для смарта в custom data по какой-то причине нет секции smart_terrain, то проверяются только стэйты 0 и 1. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 6 Сентября 2014 "Если отключить death_manager script, то предметы спавнятся через character_desc_#.xml. Проблема в том, что не все патроны спавнятся после смерти." А если точнее, то они удаляются, кроме, почему-то, пистолетных. На 1.006 это хорошо видно в его родном логе. 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 7 Сентября 2014 (изменено) "jaba_gulag _kamp_center" - сдается мне, джентльмены, что здесь странное. Ибо if path_field == "center_point" then local path_name = self.name .. "_" .. self.ltx:r_string( active_section, path_field ) if level.patrol_path_exists( path_name .. "_task" ) then return path_name .. "_task" else return path_name end else return self.name .. "_" .. self.ltx:r_string( active_section, path_field ) end Изменено 7 Сентября 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 11 Сентября 2014 Немножко срачика - это, в принципе, не хорошо, и не плохо. Плохо, когда много, или когда он совсем от темы уходит. Ну, в общем, я бы все-таки хотел сказать, что иногда, наверное, стоит и скрипты посмотреть (кстати, предыдущей темы про remark тоже касается). Там можно увидеть - как оно работает. Иногда гораздо лучше и понятнее, чем в вики расписано <<чтобы непись делал "ку", вот здесь с такой циферкой вот такая загогулина, а после нее нецензурное сочетание арифметических знаков с кракозябрами>>. А сам формат темы - он, к сожалению, определяется еще и форматом форумным. Базу данных, например, здесь не забабахать. cvs/snv встроенного, с дублирующим доступом через ftp - тоже нет. Логичный способ "а ну вот быстро сделали мне" - по понятной причине не проходит: ни кто ни кому не должен. И вот, кстати, выложить весь allspawn с "найдите 10 ошибок" - слава слонопотаму, не влезет. А влез бы - опять же ни кто смотреть не будет по той же причине, что и "а ну быстро сделали мне". Вопрос: что остается ? А остается таки смотреть, как сделано в оригинале/у кого-то еще, и пытаться понять, как оно работает. И вот когда остается совсем маленький кусочек, где, собственно, непонятный затык и происходит - тогда уже его - сюда. Чтобы разобрали и объяснили. Под это форум подходит идеально. К чему я это ? А тому, что хотелки ограничиваются прежде всего имеющимися техническими возможностями во-первых, интересностью этих самых хотелок кому-то еще - во-вторых. Осознав эти самые возможности - и наступает счастье. Не полное, но какое уж есть. Такие дела, да... 1 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 16 Сентября 2014 В разработке НС расписывал. Там ошибка в скрипте + параметры гвоздями прибитые. Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 21 Сентября 2014 (изменено) По респавну надо смотреть конкретный скрипт. Оригинальный работает, мягко говоря, странно. А лазили в них, кажется, все, кому было не лень. И добавляли своего странного. По сякоборщику - оригинальный сякоуборщик вроде бы не трогает то, у чего есть sid. И это правильно. Более того, я бы рекомендовал снести все таблицы к чертовой бабушке, и использовать эти самые sid'ы. Заодно и amk-офлайн будет меньше странного делать. Изменено 21 Сентября 2014 пользователем Dennis_Chikin Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение
Dennis_Chikin 3 658 Опубликовано 22 Сентября 2014 "! DetailPathManager has failed : from" Нет такого пути. НУ и 45 неписей под смартом - это, конечно, жесть. Дело тут даже не в памяти, а в самой идее работ (их назначения и апдейта). Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Поделиться этим сообщением Ссылка на сообщение