AndrewMor 530 Опубликовано 3 Января 2014 @AndrewMor, Первый аргумент - stori_id. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 3 Января 2014 Мне вот еще интересно стало. В ТЧ на Кордоне рядом с Петрухой стоят два новичка. Не разговаривают никогда. Вообще никакого диалога не появляется и вроде с ними даже не поторгуешь. Кто знает, отчего так? И где это можно изменить? понятно, но sid - уникальный или динамический? Ты его зарегистрировал? Откуда ты его взял? Я его прописал персу в all.spawn, в game_story_idx.ltx тоже зарегистрировал, тут все чин чинарем. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 3 Января 2014 Посмотри в файле character_desc_general.xml и попробуй прописать там диалоги новичкам. Новичкам там стандартные диалоги прописаны. У них в работах стоит meet = no meet, вот потому и молчали. Ты ее прописал в каком-то скрипте, но где-ты ее вызываешь (по инфопоршню\заходу на локацию или еще как)? Я пытался ее вызвать из скрипта при нажатии кнопки. Есть скрипт такой - в меню нажимаешь кнопку (Титры например) и он отрабатывает. Можно заспавнить чего-нибудь, координаты вытащить, а я хотел метку поставить. То есть, я прописал просто эту единственную строчку. Наверно неправильно, да? Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 4 Января 2014 (изменено) AndrewMor, смотри файл gulag_escape.ltx. Уже посмотрел и увидел, что у них написано meet = no meet. Еще вопросик: есть функция для проверки наличия у ГГ в инвентаре определенного предмета function weapon_have(task, objective) if db.actor ~= nil then return db.actor:object("wpn_fn2000u") ~= nil end return false end А как проверить, что в рюкзаке скажем не менее 10 предметов? Заменить nil на 10? Изменено 4 Января 2014 пользователем AndrewMor Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 5 Января 2014 @varan, я ведь не просто так спрашивал. Мне нужно сделать квест на поиск скажем, 10 рук бюрера. Я посмотрел, как это сделано в АМК - это ж тихий ужас. Из одной функции вызывается вторая, из второй - третья, из третьей - четвертая. Квест на поиск одного предмета - не проблема, а вот как именно осуществить подсчет собранных предметов и передать это в функцию, вызываемыю из tasks_имя_локации - вот в чем беда. Я был бы благодарен примеру, но только не из АМК, там для меня слишком сложно. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 6 Января 2014 Всем привет, возник вопрос: мод на базе ОГСМ ТЧ с добавленными локациями. Естественно, в подземках накрывает выброс. В ogsm_surge.script нашел строку if (level_name ~= "l03u_agr_underground") and (level_name ~= "l08u_brainlab") and (level_name ~= "l10u_bunker") and (level_name ~= "l04u_labx18") and (level_name ~= "l12u_sarcofag") and (level_name ~= "l12u_control_monolith") and (level_name ~= "l12_stancia") and (level_name ~= "l12_stancia_2") then db.FlagEsc = 0 То есть здесь как раз подземки, где выброс отключен. Пытаюсь добавить новые подземки аналогичным способом and (level_name ~= "peshera"), а выброс все равно происходит. В чем здесь причина? Вопрос по подземкам снимается, их еще в amk.script прописать надо было. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 7 Января 2014 (изменено) Еще возник вопрос: заспавнил сталкеров. Все заспавнились, свою работу выполняют. решил сменить им визуал на визуал охотников из Солянки. На синхронизации словил вылет: FATAL ERROR[error]Expression : ini->section_exist(imm_sect)[error]Function : CHitImmunity::LoadImmunities[error]File : E:\stalker\sources\trunk\xr_3da\xrGame\hit_immunity.cpp[error]Line : 22[error]Description : hunter_regular_resistancestack trace: Что сей вылет означает? И куда копать, мож подскажет кто? Изменено 7 Января 2014 пользователем AndrewMor Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 7 Января 2014 , не, здесь все в порядке. @NFSNeedForSpirt, Да, не было этой секции. И еще в damages.ltx костюм надо было прописать, и все заработало. Спасибо за ответы Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 18 Января 2014 Сталкеры, подскажите, что в логику рестриктора нужно прописать, чтобы отыграть звук, но только один раз? То есть звук должен отыграться единожды при первом заходе актера в рестриктор. [logic]active = sr_sound_act[sr_sound_act]snd = red_forest\red_forest_warning_1 Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 18 Января 2014 (изменено) @_Val_, Уже попробовал, не работает. Буду думать дальше. Вот раскопал в alife_l01_escape: on_actor_inside = {+esc_kill_gunslinger} nil %{+esc_kill_gunslinger =play_snd(red_forest\red_forest_warning_1)% Изменено 18 Января 2014 пользователем AndrewMor Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 18 Января 2014 (изменено) @_Val_, я ведь еще только учусь (с) Вот еще проблема: заспавнил рестриктор, а контролер не спавнится [spawner] cond = {+controller_spawn -dinka_escort} Правильно ли я ставлю условие для спавна? Здесь два поршня: один выдан, второй нет. А вот логика рестриктора: [logic]active = sr_idle[sr_idle]on_actor_inside = nil {+controller_spawn} Изменено 18 Января 2014 пользователем AndrewMor Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 31 Января 2014 Мод на базе ТЧ с маппаком локаций от Кости. С недавних пор стал случаться безлоговый вылет на самой первой локации в первую минуту-две. Можно ходить, можно просто стоять. Вылет - и лог совершенно пустой. Но вылет не у всех. После правки _g.script получаем часть лога: * Log file has been saved successfully! ! Unknown command: ***__atp_tushkano_--_State:_0_--_Total_population:_14/14_--_Non_exclusive_population:_0/0* Log file has been saved successfully!! Unknown command: ***__atp_flesh_--_State:_0_--_Total_population:_6/6_--_Non_exclusive_population:_0/0* Log file has been saved successfully!! Unknown command: ***__atp_pseudodog_--_State:_0_--_Total_population:_3/3_--_Non_exclusive_population:_0/0* Log file has been saved successfully!! Unknown command: ***__atp_snork_--_State:_0_--_Total_population:_3/3_--_Non_exclusive_population:_0/0* Log file has been saved successfully!! Unknown command: [smart_terrain_rad_bloodsucker]_register_called_obj=rad_bloodsucker_normal_gulag_type=rad_bloodsucker* Log file has been saved successfully!! Unknown command: [smart_terrain_rad_bloodsucker]_gulag:_object_setup_offline:_obj=rad_bloodsucker_normal* Log file has been saved successfully!! Unknown command: [smart_terrain_rad_bloodsucker]_gulag:_setJob:_obj=rad_bloodsucker_normal_job=1_logic@rad_bloodsucker_suck1* Log file has been saved successfully!! Unknown command: [smart_terrain_rad_bloodsucker]_gulag:_beginJob:_obj=rad_bloodsucker_normal_job=1_logic@rad_bloodsucker_suck1* Log file has been saved successfully!! Unknown command: ***__rad_bloodsucker_--_State:_0_--_Total_population:_1/1_--_Non_exclusive_population:_0/0 Дальше вылетает. Что означает сие Total_population, Non_exclusive_population? Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 10 Февраля 2014 Доброго времени суток всем. Подскажите, кто знает, за что отвечает/на что влияет строка visual_flags = 0x1 в секции cse_visual_properties в файле all.spawn? Встречается в секции некоторых дверей и почему-то в секции спавна Беса на Свалке. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 14 Февраля 2014 (изменено) Доброго времени всем. Кто подскажет, какой прогой можно изменить комментарии в ogg-файлах? Или это только в СДК сделать можно? Есть же спецтема. И там имеется то, что тебе необходимо. Здесь http://www.amk-team.ru/forum/index.php?showtopic=1481&p=797305 Здесь http://www.amk-team.ru/forum/index.php?showtopic=1481&p=808603 BFG Изменено 14 Февраля 2014 пользователем BFG Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 25 Февраля 2014 (изменено) Еще есть вопрос. Банальный, наверное, но я его так и не решил. Создал уникальный квестовый предмет и хочу его заспавнить через all.spawn. Искал возможные варианты спавна, но кроме скриптов и спавна физического объекта ничего не нашел. В итоге, остановился на этом варианте, который работает некорректно (невозможно подобрать предмет, а если в него выстрелить, то вообще проваливаешься под текстуры и начинаешь жестко лагать). Вот в качестве примера секция спавна ПДА из Солянки: [2157] ; cse_abstract properties section_name = physic_object name = bar_object_item_pda_b_1 position = 113.923637390137, -5.30530166625977, 20.6050510406494 direction = 0, 0, 0 id = 65535 version = 118 script_version = 6 ; cse_alife_object properties game_vertex_id = 1239 level_vertex_id = 33495 object_flags = 0xffffff3a ; cse_visual properties visual_name = physics\decor\item_pda_b ; cse_ph_skeleton properties ; cse_alife_object_physic properties physic_type = 0x3 mass = 10 В свою очередь задам вопрос: как заспавнить рычаг, когда отключаешь, например, выжигатель, или в Х-16 вырубаешь аппараты? Изменено 25 Февраля 2014 пользователем AndrewMor Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 27 Февраля 2014 (изменено) Такой вопрос возник: можно ли удалить аномалию, заспавненную через all.spawn, по выдаче инфопоршня? Или возможно ли в секции спавна аномалии прописать условие спавна? Изменено 27 Февраля 2014 пользователем AndrewMor Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 27 Февраля 2014 (изменено) Скорее всего возможно, вот пример(сам не проверял, но работать должно) Я сам не проверял, потому и спросил, может кто ответить точно. Просто вроде ни в одной секции аномалий такого не встречал. Будем пробовать. Ну вот, попробовал и могу сказать: не работает такой способ. Аномалия спавнится в любом случае, независимо от того, выдан поршень или нет. И не будет. Скрипты не читают секцию spawner в объектах отличных от НПС или мобов. ColR_iT Тогда такой вопрос: есть аномалия, спавненная скриптом. Как ее скриптом убрать? Известны ее координаты и вертексы. Масса способов: заспавнить уникальную секцию или запомнить где-то переменную с id этой аномалии, как самое простое. ColR_iT Масса способов: заспавнить уникальную секцию или запомнить где-то переменную с id этой аномалии, как самое простое. ColR_iT А примерчик не можете привести? Или ссылочку. Изменено 27 Февраля 2014 пользователем ColR_iT Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 27 Февраля 2014 В продолжение темы: вот скрипт, который спавнит аномалию. Как здесь вписать ее id? Чтобы он сохранялся и читался из нет-пакета? function get_story_id_not_replay() local ST ST = xr_logic.pstor_retrieve(db.actor, "ScriptAnomId", 0) if type(ST) ~= "number" or ST == nil then ST = 9000 xr_logic.pstor_store(db.actor, "ScriptAnomId", ST) end if type(ST) == "number" or ST ~= nil then ST = ST + 1 xr_logic.pstor_store(db.actor, "ScriptAnomId", ST) end return tonumber(ST)endfunction create_anom(name_anom, posit_anom, lvid_anom, gvid_anom, radius_anom, power_anom) local obj = alife():create(name_anom, posit_anom, lvid_anom, gvid_anom)-----------------------write----------------------local packet = net_packet()obj:STATE_Write(packet)-----------------------load------------------------- cse_alife_objectlocal game_vertex_id = packet:r_u16()local distance = packet:r_float()local direct_control = packet:r_u32()local level_vertex_id = packet:r_u32()local object_flags = packet:r_u32()local custom_data = packet:r_stringZ()local story_id = packet:r_u32()local spawn_story_id = packet:r_u32()-- cse_shapelocal shape_count = packet:r_u8()for i=1,shape_count dolocal shape_type = packet:r_u8()if shape_type == 0 then-- spherelocal center = packet:r_vec3()local radius = packet:r_float()else-- boxlocal box = packet:r_matrix()endend-- cse_alife_space_restrictorlocal restrictor_type = packet:r_u8()-- cse_alife_custom_zonelocal max_power = packet:r_float()local owner_id = packet:r_u32()local enabled_time = packet:r_u32()local disabled_time = packet:r_u32()local start_time_shift = packet:r_u32()-- cse_alife_anomalous_zonelocal offline_interactive_radius = packet:r_float()local artefact_spawn_count = packet:r_u16()local artefact_position_offset = packet:r_u32()-- se_zone_anomlocal last_spawn_time_present = packet:r_u8()if (string.find (name_anom, 'zone_zharka_static') ~= nilor string.find (name_anom, 'zone_witches_galantine') ~= nilor string.find (name_anom, 'zone_mosquito_bald') ~= nilor string.find (name_anom, 'zone_mincer') ~= nilor string.find (name_anom, 'zone_gravi_zone') ~= nilor string.find (name_anom, 'zone_buzz') ~= nil )and packet:r_elapsed() ~= 0 thenabort("left=%d", left)end---------------------------save---------------------- cse_alife_objectpacket:w_begin(game_vertex_id)packet:w_float(distance)packet:w_u32(direct_control)packet:w_u32(level_vertex_id)object_flags = bit_not(193)packet:w_u32(object_flags)packet:w_stringZ(custom_data)packet:w_u32(get_story_id_not_replay())packet:w_u32(get_story_id_not_replay())-- cse_shapepacket:w_u8(1) -- количество фигурpacket:w_u8(0) -- тип фигуры: сфераpacket:w_vec3(vector():set(0, 0, 0))if radius_anom ~= nil thenpacket:w_float(radius_anom)elsepacket:w_float(1.0)end-- cse_alife_space_restrictorpacket:w_u8(restrictor_type)-- cse_alife_custom_zoneif power_anom ~= nil thenpacket:w_float(power_anom)elsepacket:w_float(max_power)endpacket:w_u32(owner_id)packet:w_u32(enabled_time)packet:w_u32(disabled_time)packet:w_u32(start_time_shift)-- cse_alife_anomalous_zonepacket:w_float(offline_interactive_radius)packet:w_u16(artefact_spawn_count)packet:w_u32(artefact_position_offset)-- se_zone_anompacket:w_u8(last_spawn_time_present)------------------------read------------------------packet:r_seek(0)obj:STATE_Read (packet, packet:w_tell())end-----------------------------------спавним аномалии-----------------------------------function spawn_anom1()this.create_anom('zone_witches_galantine_strong', vector():set(132.84954833984,8.5610275268555,-19.224378585815),1152755,4019, 3, 0.7)end Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 27 Февраля 2014 Тут ты можешь можешь только все zone_witches_galantine_strong удалить. Как вариант можешь создать уникальную аномалию, или: Мне нужно удалить именно конкретные аномалии, которые я буду спавнить скриптом. Дать им уникальные id'ы, а потом по этим id/ам их удалить, также скриптово. Хотя я могу эти аномалии и через all.spawn заспавнить, а удалить скриптово. Так даже удобнее будет. Спасибо, буду пробовать. Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение
AndrewMor 530 Опубликовано 2 Марта 2014 Заспавнил дверь на Затоне, как в ЗП в Железном лесу. При подключении логики двери - вылет: Expression : motion_ID.valid()Function : CKinematicsAnimated::ID_CycleFile : E:\stalker\sources\trunk\xr_3da\SkeletonAnimated.cppLine : 136Description : ! MODEL: can't find cycle:Arguments : Чего-то не хватает, анимации, что ли? И где ее взять? Сталкер - наше всё! Поделиться этим сообщением Ссылка на сообщение