MIDERY 0 Опубликовано 12 Октября 2011 Здравствуйте. Возникла такая потребность - заспавнить монстров через скрипт. Как это сделать? А если поточнее - какое имя задать в функцию? Ибо например для спавна сталкера можно всего лишь написать его имя из spawn_sections. А как быть с монстром? Заранее спасибо Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 12 Октября 2011 Хм, появилась еще парочка вопросов, не знаю, туда ли я их задам, но все-таки: Как сделать так, что бы сталкер после разговора умер; И как сделать так, что бы при первой встрече с ним он лежал на полу и просил аптечку? Знаю что надо что-то прописывать в логике, а что точно - непонятно. Был бы очень признателен, если бы вы мне объяснили. Спасибо. Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 13 Октября 2011 Чтобы НПС умер после разговора достаточно вызвать для него: oNPC:kill(oNPC) Чтобы лежал и просил аптечку - заспавнить раненым (т.е. с неполным здоровьем). Прописывать логику желательно, но не обязвтельно, если у тебя нет специфических запросов, т.к. будет использована дефолтная. Не могли бы вы поподробней расписать, как это сделать? Что и где прописать? И последний вопрос и я от вас отстану - как сделать так, что бы после какого-либо диалога начинала играть музыка? Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 6 Ноября 2011 Здравствуйте. Как проиграть в голове у актора некий звуковой файл (например музыку) после диалога, например? Через вот такую функцию function any() local snd = sound_object([[characters_voice\human_03\stalker\talk\leaves\leaves_42]]) snd:play_no_feedback(db.actor,sound_object.s2d, 0, vector():set(0, 0, 0), 2.0) end Не получается. Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 12 Февраля 2012 Здравствуйте. Сейчас делаю свой мод и возникла парочка вопросов: 1. Почему данный диалог все появляется и появляется, не исчезая, хотя инфопоршнь выполнен: <dialog id="escape_volk_ak74u_quest_completed"> <has_info>escape_volk_ak74u_start</has_info> <dont_has_info>escape_volk_ак74u_done</dont_has_info> <phrase_list> <phrase id="0"> <text>escape_volk_ak74u_quest_completed_0</text> <next>1</next> </phrase> <phrase id="1"> <text>escape_volk_ak74u_quest_completed_1</text> <next>2</next> </phrase> <phrase id="2"> <text>escape_volk_ak74u_quest_completed_2</text> <next>3</next> </phrase> <phrase id="3"> <text>escape_volk_ak74u_quest_completed_3</text> <give_info>escape_volk_ak74u_done</give_info> <action>yash.mather</action> </phrase> </phrase_list> </dialog> 2. Как заспавненным через скрипт неписям дать логику(а именно чтоб они просто стояли на месте и если понадобится, охраняли живность). Спавню я по старинке, через алайф. Может быть есть другие способы? 3. Как сделать так, чтоб раненному врагу можно было дать аптечку и он становился бы другом (помню, такое было в ТТ2). Заранее спасибо Надеюсь на быстрый ответ.. Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 12 Февраля 2012 1. Чтобы диалог не появлялся нужно чтобы стояла общая проверка (прекондишен) для диалога, а не в самм диалоге. Это или в скриптах или в логике НПС делается. Хм, а вроде бы все до этого работало. 2. При спавне скриптом НПС получает все то, что прописано ему в его секции спавна. Если озаботился, то там можно и кастомдату с логикой прописать. Если же используешь "пустые" секции спавна - то только нет-пакетами можно добавить после спавна требуемое ... Кроме спавна в all.spawn и скриптами (alife():creatr(...)) других способов спавна не существует. Не подскажете на примере, как спавеном через скрипт дать ему логику "no_move=true"? Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 12 Февраля 2012 gruber Спасибо за попытку помочь, но к сожалению, не помогло. Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 12 Февраля 2012 (изменено) Artos, gruber, ColR_iT, Огромное вам спасибо за помощь. Все понятно разъяснили и поправили мои ошибки. Виват Сообщение от модератора ColR_iT А вот благодарности писать в ЛС нужно. Да, правила не везде одинаковые... Изменено 12 Февраля 2012 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 13 Февраля 2012 (изменено) Здравствуйте еще раз. Возник вот такой вопросик - как с помощью скрипта сделать так, чтоб когда гг подобрал определенный предмет, на экран вылетело сообщение? Именно При подборе этого предмета, а не при разговоре/диалоге... Вопрос изъезженный. Как при поднятии/использовании/выкидывании предмета сделать какое-либо действие обсуждалось не раз. Учимся пользоваться поиском. ColR_iT Добавлено через 56 мин.: ColR_iT, что-то я поискал, поискал и так и не нашел... Поиск выдает лишь темы, в которых больше сотни страниц... Изменено 13 Февраля 2012 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 13 Февраля 2012 (изменено) Капрал Хикс Поискал, не нашел все равно. Только пару сообщений, в которых очень облачно всё описано... Интересно увидеть процесс поиска... Почему же я нашёл, а ты нет? Например вот: пост #5776 Ещё: пост #43. Здесь отдельно функции проверки поднятия предмета и вывод сообщения на экран. Совместишь - получишь желаемое. ColR_iT Добавлено через 111 мин.: Не уверен, правильно ли мы друг друга поняли, я имел ввиду вывод сообщения через news_manager... Попытался сделать как вы показали - не очень понял, что именно делать да и не очень получилось function actor_binder:on_item_take (quest_case_06) level_tasks.proceed(self.object) --game_stats.update_take_item (quest_case_06, self.object) news_manager.send_tip(db.actor, "%c[255,255,128,128]Непись:\n%c[default]Текст", nil, nil, 30000) end Сделал вот такое, и при получении любого предмета, будь то нож, патроны, или аптечка, выскакивает текст... Изменено 13 Февраля 2012 пользователем MIDERY Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 17 Февраля 2012 Здравствуйте. Пытался освоить рестрикторы - столкнулся с проблемой - почему-то он не работает. Ума не приложу почему. Вроде бы всё сделал правильно. Вот файлы: [874] ; cse_abstract properties section_name = space_restrictor name = kevsts position = =122.554,-26.236,-468.079 direction = 0,0,0 ; cse_alife_object properties game_vertex_id = 11 distance = 0 level_vertex_id = 130015 object_flags = 0xffffff3e custom_data = <<END [logic] active = sr_idle [sr_idle] on_actor_inside = %+stor% END ; cse_shape properties shapes = shape0 shape0:type = box shape0:axis_x = 6.5,0,0 shape0:axis_y = 0,6.5,0 shape0:axis_z = 0,0,6.5 shape0:offset = 0,0,0 ; cse_alife_space_restrictor properties restrictor_type = 3 <info_portion id="stor"> <action>text.tester</action> </info_portion> function tester(first_speaker, second_speaker) news_manager.send_tip(db.actor, "%c[255,255,128,128]Блаблабла:\n%c[default]Проверка", nil, nil, 30000) end Не подскажете, в чем может быть ошибка? Вроде бы всё правильно, но при заходе в точку ничего не происходит, текст не высвечивается. Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 17 Февраля 2012 (изменено) Идёт вылет, если пробывать сделать, как вы сказали Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: e:\s.t.a.l.k.e\gamedata\scripts\_g.script:21: bad argument #2 to 'format' (string expected, got no value) Перепрочти сообщения на этой странице пару раз - может тогда будет понятна никчемность твоего лога для понимания проблемы/ошибки и что же нужно для этого. --/Artos Изменено 17 Февраля 2012 пользователем Artos Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 17 Февраля 2012 Gun12, Ругаться начал как раз таки после исправления. Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 17 Февраля 2012 (изменено) Gun12 Вы меня не поняли. Я изменил "position = =122.554,-26.236,-468.079" на "position = 122.554,-26.236,-468.079" и после этого начались вылеты при начале новой игры Покажи ещё раз всё, что ты делаешь. И прочитай внимательно вот этот пост #8126. ColR_iT Изменено 17 Февраля 2012 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
MIDERY 0 Опубликовано 26 Февраля 2012 Столкнулся с новой сложностью. А именно: Как сделать так, что бы при убийстве NPC начинали играть титры? Вот файлы, что я задействовал, почему не работает, мне непонятно. [milsoldier_respawn_12]:stalker $spawn = "respawn\val_soldier_respawn_1" character_profile = sim_soldier_specnaz spec_rank = veteran community = military custom_data = milsol.ltx [logic] active = remark@search on_death = death [death] on_info = %+milsol% [remark@fire] combat_ignore_cond = {!is_sniper_enemy} radius = 0 anim = hide on_info = {=health_le(0.5)} remark@search wounded = wounded@work sniper = true [remark@search] combat_ignore_cond = true combat_ignore_keep_when_attacked = false anim = hide target = actor on_info = {=see_enemy} remark@fire wounded = wounded@work [smart_terrains] none = true [wounded@work] hp_state = 0|wounded_heavy@help_heavy hp_state_see = 0|wounded_heavy@help_heavy hp_victim = 0|nil hp_fight = 0|false hp_cover = 0|false <info_portion id="milsol"> <action>xr_effects.game_credits</action> </info_portion> Поделиться этим сообщением Ссылка на сообщение