FeLLoN 0 Опубликовано 5 Октября 2012 как сделать чтоб при подходе к нпс, он кидал тебе диалог как коряга на Скадовске.... И если можно то распишите как это делать в мельчайших деталях... просто я пока нуб... и ещё где есть уроки по диалогом для Зов Припяти... можно ссылку пожалуйста Поделиться этим сообщением Ссылка на сообщение
FeLLoN 0 Опубликовано 15 Марта 2013 (Зов Припяти) есть один вопрос... но блин по нему уроков нету... Связан с [animpoint] и смарт коверами! есть смарт pripyat_fmg3. Он на первом этаже здания. На крыше я хочу поставить квестового НПС. Что-бы он там стоял с определенной анимацией! в сдк смарт коверах нету просто stay или это не там прописывается? мне нужно, что-бы он там стоял! как это писать в логике? и в настройках смарта ? А то чет не догоняю... в squad_descr_pripyat в разделе отряда есть spawn_point. Что там писать? спейс рестриктор? или ещё что нить? мне нужно что-бы он проспавнился сразу на крыше, а не шел с 1 этажа.. как в ЗП скадовск... смотрел примеры Скадовска плохо понял... Если есть урок то скинь ссылку! заранее спс.. и если будете писать, пишите подробнее... заранее спс! Поделиться этим сообщением Ссылка на сообщение
FeLLoN 0 Опубликовано 21 Марта 2013 (изменено) Привет! есть один вопросик по скриптам... На счет вызова сообщения. Мне нужно, что-бы при получении опр инфо поршня выдавалось сообщение 1 раз. Пытался сделать функцию... но словил вылет вот она: function give_prov_mess()if not db.actor:has_info("test_1")if db.actor:has_info("give_mess")thendb.actor:give_game_news("Неизвестно", "Грач это Проводник! Нужно встретится в подвале Гастронома", "ui_iconsTotal_lost_thing", 3000, 30000)db.actor:give_info_portion("test_1")--выдача инфопоршняendend Но поскольку мои знания в скриптах равны 0, у меня ничего не получилось... Так как можно реализовать это? я убрал строчку if not db.actor:has_info("test_1") и функция работала.. я поставил её в update в stalker_binder... но после получения инфопоршня give_mess, это сообщение выдавалось бесконечно... Заранее спс! и как можно запустить какую нибудь функцию через рестриктор %тут%... или там можно использовать функции заранее написанные в движке? ( ну или в др месте.. я незнаю просто ) Изменено 21 Марта 2013 пользователем FeLLoN Поделиться этим сообщением Ссылка на сообщение
FeLLoN 0 Опубликовано 22 Марта 2013 Происходит вылет, при подходе к одному месту! там есть смарт и спейсрестриктор начала ( выдача квеста ) и рестриктор для квеста ( айди ), так-же это рестриктор вызывает выброс и прочее... Вот вылет лога: * Saving spawns... * Saving objects... * 556 objects are successfully saved * Game Никита - quicksave.scop is successfully saved to file 'c:\users\public\docume~1\stalke~1.-\savedgames\Никита - quicksave.scop' stack trace: 0023:0884E8B3 xrGame.dll, CDialogHolder::CDialogHolder() 0023:0884FB45 xrGame.dll, CDialogHolder::CDialogHolder() 0023:0570A5B4 lua.JIT.1.1.4.dll, lua_getinfo() 0023:0570A898 lua.JIT.1.1.4.dll, lua_getinfo() 0023:057020A5 lua.JIT.1.1.4.dll, lua_call() 0023:0570AAE8 lua.JIT.1.1.4.dll, lua_yield() 0023:030C9DC6 luabind.beta7-devel.rc4.dll, luabind::detail::pcall() [error][ 183] : Невозможно создать файл, так как он уже существует. Это вылет текущего билда... прогрузил старый! ( вчерашний.. ). Там тоже есть этот вылет! но лог немного другой. Вот он: intro_start intro_game intro_delete ::update_game_intro compiling shader particle_alphaonly compiling shader model_distort_1 compiling shader model_distort_2 * [win32]: free[2709660 K], reserved[183260 K], committed[1301320 K] * [ D3D ]: textures[374111 K] * [x-ray]: crt heap[331506 K], process heap[13922 K], game lua[10540 K], render[2876 K] * [x-ray]: economy: strings[9883 K], smem[10215 K] * Saving spawns... * Saving objects... * 614 objects are successfully saved * Game Никита - выброс.scop is successfully saved to file 'c:\users\public\docume~1\stalke~1.-\savedgames\Никита - выброс.scop' stack trace: 0023:085AE8B3 xrGame.dll, CDialogHolder::CDialogHolder() 0023:085AFB45 xrGame.dll, CDialogHolder::CDialogHolder() 0023:056CA5B4 lua.JIT.1.1.4.dll, lua_getinfo() 0023:056CA898 lua.JIT.1.1.4.dll, lua_getinfo() 0023:056C20A5 lua.JIT.1.1.4.dll, lua_call() 0023:056CAAE8 lua.JIT.1.1.4.dll, lua_yield() 0023:02F79DC6 luabind.beta7-devel.rc4.dll, luabind::detail::pcall() [error][ 8] : Недостаточно памяти для обработки команды. Из-за чего они происходят?? Мне хотяб приблизительно знать... фишка в том, что вылет происходит только в том месте! Поделиться этим сообщением Ссылка на сообщение
FeLLoN 0 Опубликовано 22 Марта 2013 (изменено) Добавлю: После выброса выдается инфопоршень, вот все, что написано в логике этого поршня: Код [logic] active = sr_idle@dolg_go [sr_idle@dolg_go] on_info = {=actor_in_zone(pripyat_sr_vibros)} %+dolg_go_fmg2% sr_idle@wait_info [sr_idle@wait_info] on_info = {+dialog_prov_vse} %=start_surge% sr_idle@wait_end_surge [sr_idle@wait_end_surge] on_info = {!surge_started} %+vibros_proshel -dialog_prov_vse% sr_idle@kill_otrad [sr_idle@kill_otrad] on_info = {+vibros_proshel} %=remove_npc(pri_fmg_prov) =remove_squad(dolg_nachalo_squad)% sr_idle@nil [sr_idle@nil] Если вбежать в эту зону во время выброса ( там есть укрытие ), то вылета нет! после выброса, вылета тоже нет! но если убежать из этой зоны, а затем вернуться... вылет! и скорее всего из-за смарта... У смарта есть ексклюзивная логика 3 НПС. Суть такова, после в хода в Этот спей рестриктор ( его код выше ) выдается поршень +dolg_go_fmg2. И отряд идет на 2 смарт. После выброса этот отряд удаляется! логика НПС 3 ниже: ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;Логика Главоря Долга;;;;;;;;;;;; [logic@fellon] active = walker@vstrecha suitable = {=check_npc_name(fellon)} true [walker@vstrecha] meet = meet@fellon_nach path_walk = fellon_1_walk path_look = fellon_1_look on_info = {+dolg_dialog_done} animpoint@fellon [animpoint@fellon] cover_name = pripyat_fmg1_fellon_animpoint meet = no_meet use_camp = false on_info = {+vibros_proshel} nil [meet@fellon_nach] use = self meet_state = nil mmet_state_wpn = nil victim = 8|actor victim_wpn = 8|actor ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;Логика Долга 1;;;;;;;;;;;; [logic@jora] active = walker@vstrecha2 suitable = {=check_npc_name(jora)} true [walker@vstrecha2] meet = meet@jora path_walk = jora_1_walk path_look = jora_1_look on_info = {+dolg_dialog_done} animpoint@jora [animpoint@jora] cover_name = pripyat_fmg1_jora_animpoint meet = no_meet use_camp = true on_info = {+vibros_proshel} nil [meet@jora] use = false victim = 8|actor victim_wpn = 8|actor ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;Логика Долга 2;;;;;;;;;;;; [logic@maik] active = walker@vstrecha1 suitable = {=check_npc_name(maik)} true [walker@vstrecha1] meet = meet@maik path_walk = maik_1_walk path_look = maik_1_look on_info = {+dolg_dialog_done} animpoint@maik [animpoint@maik] cover_name = pripyat_fmg1_maik_animpoint meet = no_meet use_camp = true on_info = {+vibros_proshel} nil [meet@maik] use = false victim = 8|actor victim_wpn = 8|actor Мб это из-за этого? мол смарт ищет отряд, а их нет? on_info = {+vibros_proshel} nil без этого то-же происходит вылет... Максимум подробно расписал... Заранее СПС! Это все относится к билду! то-есть ко 2 логу! или ошибки у них разные? теперь вылет в билде, такой же как и в 1 логе... вот на всякий случай лог вылета: * RM_Dump: vs : 81 * RM_Dump: ps : 83 * RM_Dump: dcl : 20 * RM_Dump: states : 78 * RM_Dump: tex_list : 1807 * RM_Dump: matrices : 0 * RM_Dump: lst_constants: 0 * RM_Dump: v_passes : 2355 * RM_Dump: v_elements: 2356 * RM_Dump: v_shaders : 1292 * GPU shading: vs(fffe0300/3.0/30), ps(ffff0300/3.0/30) * GPU vertex cache: unrecognized, 16 * NVidia MGPU: Logical(1), Physical(1) * Starting rendering as 2-GPU. *** RESET [106 ms] * MEMORY USAGE: 331713 K * End of synchronization A[1] R[1] * [win32]: free[2756080 K], reserved[178664 K], committed[1259496 K] * [ D3D ]: textures[373086 K] * [x-ray]: crt heap[331754 K], process heap[13410 K], game lua[12692 K], render[3605 K] * [x-ray]: economy: strings[9837 K], smem[10212 K] * Saving spawns... * Saving objects... * 606 objects are successfully saved * Game Никита - quicksave.scop is successfully saved to file 'c:\users\public\docume~1\stalke~1.-\savedgames\Никита - quicksave.scop' stack trace: 0023:0869E8B3 xrGame.dll, CDialogHolder::CDialogHolder() 0023:0869FB45 xrGame.dll, CDialogHolder::CDialogHolder() 0023:0679A5B4 lua.JIT.1.1.4.dll, lua_getinfo() 0023:0679A898 lua.JIT.1.1.4.dll, lua_getinfo() 0023:067920A5 lua.JIT.1.1.4.dll, lua_call() 0023:0679AAE8 lua.JIT.1.1.4.dll, lua_yield() 0023:031C9DC6 luabind.beta7-devel.rc4.dll, luabind::detail::pcall() [error][ 183] : Невозможно создать файл, так как он уже существует. Изменено 22 Марта 2013 пользователем FeLLoN Поделиться этим сообщением Ссылка на сообщение
FeLLoN 0 Опубликовано 22 Марта 2013 (изменено) FeLLoN, когда происходит вылет, отряд ещё жив? они удаляются! =remove_squad(их айди) в логике Спейс Рестриктора!Без ремув Сквада вылет из 2 лога первого сообщения, после ремов сквад вылет из 1 лога 1сообщения Не нужно цитировать предыдущие сообщения целиком! ColR_iT Изменено 22 Марта 2013 пользователем ColR_iT Поделиться этим сообщением Ссылка на сообщение
FeLLoN 0 Опубликовано 22 Марта 2013 (изменено) Вопрос по вылету закрыт! Причина была следующая ( скорее всего так, но вылета нет! ) Рядом был смарт, там было 2 отряда ( симуляционныйх ). У них не было таргет смарт, там были нпс_рандом. Ну короч сим отряд. У того смарта где они были, не-было укрытия от выброса. У всех смартах Откл была симуляция, кроме 1! Там симуляция разрешалась, после окончания выброса. Так-вот после выброса, когда я шел на смарт где были эти отряды, там было пусто! выброс их убил.. или не знаю что! и видимо, эти сим отряды должны были идти на тот смарт ( возле которого был вылет), а их то не-было.. ну короч вылет пропал, после удаления этих отрядов из simulations.ltx Изменено 22 Марта 2013 пользователем FeLLoN Поделиться этим сообщением Ссылка на сообщение
FeLLoN 0 Опубликовано 7 Апреля 2013 (изменено) Есть один вопрос. Пытался сам реализовать, но не получилось. Суть такова. Есть здание ( большое ). Есть один смарт. Нужно, что-бы вокруг здания находилось 3 отряда собак! в разных точках. Здание от начала новый игры далеко ( собаки при старте новой игры оффлайн ), нужно, что-бы при переходе в онлайн, собачки оказались на своих местах. Что я делал: В squad_descr_pripyat, в секции отряда писал spawn_point = pripyat_fmg4_spawn_point_1 ( и ставил вей поинт с таким-же именем. В итоге когда я прихожу на смарт, собаки появляются в центре смарта, а не на spawn_pont. Ставил 3 точки ( pripyat_fmg4_dog_home_1,2,3 ). В логике смарта писал: [smart_terrain];собачки! перед КБО! squad_id = 4 max_population = 4 [exclusive] dog_1 = fmg\pripyat\logic_dog_kbo.ltx dog_2 = fmg\pripyat\logic_dog_kbo.ltx dog_3 = fmg\pripyat\logic_dog_kbo.ltx dog_4 = fmg\pripyat\logic_dog_kbo.ltx dog_5 = fmg\pripyat\logic_dog_kbo.ltx dog_6 = fmg\pripyat\logic_dog_kbo.ltx dog_7 = fmg\pripyat\logic_dog_kbo.ltx dog_8 = fmg\pripyat\logic_dog_kbo.ltx dog_9 = fmg\pripyat\logic_dog_kbo.ltx dog_10 = fmg\pripyat\logic_dog_kbo.ltx dog_11 = fmg\pripyat\logic_dog_kbo.ltx dog_12 = fmg\pripyat\logic_dog_kbo.ltx Вот логика собачек: ;********************** 1 *************** [logic@dog_1] active = mob_home@dog_1 suitable = {=target_squad_name(sim_fmg_dog_squad_1)} true prior = 200 monster_job = true out_restr = pripyat_fmg4_sr_dombita [mob_home@dog_1] path_home = pripyat_fmg4_god_home_1 home_min_radius = 30 home_max_radius = 45 aggressive_home ;********************** 2 *************** [logic@dog_2] active = mob_home@dog_2 suitable = {=target_squad_name(sim_fmg_dog_squad_1)} true prior = 200 monster_job = true out_restr = pripyat_fmg4_sr_dombita [mob_home@dog_2] path_home = pripyat_fmg4_god_home_1 home_min_radius = 30 home_max_radius = 45 aggressive_home ;********************** 3 *************** [logic@dog_3] active = mob_home@dog_3 suitable = {=target_squad_name(sim_fmg_dog_squad_1)} true prior = 200 monster_job = false out_restr = pripyat_fmg4_sr_dombita [mob_home@dog_3] path_home = pripyat_fmg4_god_home_1 home_min_radius = 30 home_max_radius = 45 aggressive_home ;********************** 4 *************** [logic@dog_4] active = mob_home@dog_4 suitable = {=target_squad_name(sim_fmg_dog_squad_1)} true prior = 200 monster_job = false out_restr = pripyat_fmg4_sr_dombita [mob_home@dog_4] path_home = pripyat_fmg4_god_home_1 home_min_radius = 30 home_max_radius = 45 aggressive_home ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;*****************5*********************** [logic@dog_5] active = mob_home@dog_5 suitable = {=target_squad_name(sim_fmg_dog_squad_2)} true prior = 200 monster_job = false out_restr = pripyat_fmg4_sr_dombita [mob_home@dog_5] path_home = pripyat_fmg4_god_home_2 home_min_radius = 30 home_max_radius = 45 aggressive_home ;*****************6*********************** [logic@dog_6] active = mob_home@dog_6 suitable = {=target_squad_name(sim_fmg_dog_squad_2)} true prior = 200 monster_job = false out_restr = pripyat_fmg4_sr_dombita [mob_home@dog_6] path_home = pripyat_fmg4_god_home_2 home_min_radius = 45 home_max_radius = 100 aggressive_home ;*****************7*********************** [logic@dog_7] active = mob_home@dog_7 suitable = {=target_squad_name(sim_fmg_dog_squad_2)} true prior = 200 monster_job = false out_restr = pripyat_fmg4_sr_dombita [mob_home@dog_7] path_home = pripyat_fmg4_god_home_2 home_min_radius = 65 home_max_radius = 110 aggressive_home ;*****************8*********************** [logic@dog_8] active = mob_home@dog_8 suitable = {=target_squad_name(sim_fmg_dog_squad_2)} true prior = 200 monster_job = false out_restr = pripyat_fmg4_sr_dombita [mob_home@dog_8] path_home = pripyat_fmg4_god_home_2 home_min_radius = 22 home_max_radius = 48 aggressive_home ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;*****************9*********************** [logic@dog_9] active = mob_home@dog_9 suitable = {=target_squad_name(sim_fmg_dog_squad_3)} true prior = 200 monster_job = false out_restr = pripyat_fmg4_sr_dombita [mob_home@dog_9] path_home = pripyat_fmg4_god_home_3 home_min_radius = 60 home_max_radius = 89 aggressive_home ;*****************10*********************** [logic@dog_10] active = mob_home@dog_10 suitable = {=target_squad_name(sim_fmg_dog_squad_3)} true prior = 200 monster_job = false out_restr = pripyat_fmg4_sr_dombita [mob_home@dog_10] path_home = pripyat_fmg4_god_home_3 home_min_radius = 54 home_max_radius = 84 aggressive_home ;*****************11*********************** [logic@dog_11] active = mob_home@dog_11 suitable = {=target_squad_name(sim_fmg_dog_squad_3)} true prior = 200 monster_job = false out_restr = pripyat_fmg4_sr_dombita [mob_home@dog_11] path_home = pripyat_fmg4_god_home_3 home_min_radius = 71 home_max_radius = 96 aggressive_home ;*****************12*********************** [logic@dog_12] active = mob_home@dog_12 suitable = {=target_squad_name(sim_fmg_dog_squad_3)} true prior = 200 monster_job = false out_restr = pripyat_fmg4_sr_dombita [mob_home@dog_12] path_home = pripyat_fmg4_god_home_3 home_min_radius = 23 home_max_radius = 47 aggressive_home Если написать в squad_descr_pripyat, в секции отряда target_smart = pripyat_fmg4, то происходит вот такой вылет: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ...Ð. Çîâ Ïðèÿïÿòè\gamedata\scripts\bind_monster.script:262: attempt to index local 'smart_task' (a nil value) Там, что-то связанно с работой... Ставил 12 валкеров в смарте... в логике собачек писал monster_job = false (там это в коде есть ). Мб я, что-то не так делаю? В оригинальном ЗП видел, как отряд монстров пришел на смарт, некоторые кабаны начали патрулировать, другие спать... смотрел в СДК смарт... вроде стандартный, с гуардами, валкерами, кемпом, коверами... Помогите пожалуйста! Изменено 7 Апреля 2013 пользователем FeLLoN Поделиться этим сообщением Ссылка на сообщение