iDreD 5 Опубликовано 28 Декабря 2009 В диалоге пишешь <action>my_sound_play.play</action>, затем создаёшь скрипт snd_obj = {} snd_obj = xr_sound.get_safe_sound_object([[soundtrack\escape_theme]]) function s_stop() if snd_obj:playing()==true then snd_obj:stop() end end function s_play(path) s_stop() snd_obj = xr_sound.get_safe_sound_object(path) snd_obj:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d) end -- device\pda\pda_tip - это путь до файла без расширения .ogg local sound_types = {"[[device\pda\pda_objective]]"} function play() s_play(sound_types) end содержания и всё, когда клацнешь на реплику диалога заиграет нужный тебе звук. Добавлено через 1 мин.: Функцию любезно предостаил DEXXX. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 28 Декабря 2009 (изменено) Вроде бы нет, напиши путь до амбиента затона (sounds/music/ambients/zaton_amb пишу с телефона поэтому может путь или название файла неправельные, сами найдете думаю ;-) ) Изменено 18 Октября 2011 пользователем ColR_iT Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 6 Февраля 2010 Пропиши ему вот эту логику: [logic] active = remark1 danger = danger_ignore [danger_ignore] ignore_distance = 5 [remark1] invulnerable = true anim = sit_ass no_move = true meet = meet_guide [meet_guide] abuse = false use = true allow_break = false meet_on_talking = false Так же он будет бессмертен. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 6 Февраля 2010 Верно. Добавлено через 1 мин.: Тобишь в файле где прописаны спавн секции НПС (не характер деск, и не нпс_профиль а в спаун сектионс.лтх). Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 6 Февраля 2010 Ты где прописывал? Добавлено через 1 мин.: Путь до файла: gamedata\config\creatures\spawn_sections_***.ltx Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 6 Февраля 2010 Хм... Ты логику правильно назвал? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 10 Февраля 2010 А в custom_msgs.xml добавил всё? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 11 Февраля 2010 (изменено) function vvod_antirada() if db.actor.radiation >= 0.1 and db.actor:object"medkit" then local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Выполняю:%c[255,230,0,0]Ввожу в организм противорадиационные препараты%c[default]" db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 3000) db.actor:eat(db.actor:object("medkit")) end end На досуге попробывал эту функцию. В ЗП ничего не работает. Я вешал апдейт на дельту. function actor_binder:update(delta) ... if lck3_auto then chimera_mod.vvod_antirada() end Что подскажите? Изменено 11 Февраля 2010 пользователем кровоSTALKER Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 11 Февраля 2010 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_stalker.script:402: attempt to index global 'chimera_mod' (a nil value) Вылет. Может нужно поставить if? function actor_binder:update(delta) ... if chimera_mod.vvod_antirada() end Добавлено через 5 мин.: Тоже вылет: Expression : !m_error_code Function : raii_guard::~raii_guard File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp Line : 748 Description : ....e.r. - Зов Припяти\gamedata\scripts\xr_logic.script:1272: attempt to index local 'obj' (a nil value) Хм... Как же её на апдейт повесить? Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 11 Февраля 2010 function vvod_antirada() if db.actor.radiation >= 0.1 and db.actor:object"medkit" then local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Выполняю:%c[255,230,0,0]Ввожу в организм противорадиационные препараты%c[default]" db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 3000) db.actor:eat(db.actor:object("medkit")) end В этой функции не хватает скобок, там где "medkit". Maks_K, да, в ЗП это есть. Попробывать можно так: function vvod_antirada() if db.actor.radiation >= 0.1 and db.actor:object("medkit") then local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Выполняю:%c[255,230,0,0]Ввожу в организм противорадиационные препараты%c[default]" db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 3000) db.actor:eat(db.actor:object("medkit")) end Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 23 Февраля 2010 Подскажите пожалуйста функцию проверки, целится ли гг и из какого оружия, и с каким состоянием ствол. Второй день мучаюсь... Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 3 Марта 2010 function wpn_class() local active_item=db.actor:active_item() if active_item ~= nil then active_item:section() == "wpn_vintorez" or active_item:section() == "wpn_svu" or active_item:section() == "wpn_svd" and if math.ceil(db.actor:accuracy()*1000) == 1 then get_hud():AddCustomStatic("din_pric", true) end end end end он верный? И ещё, в какой апдейтер его присоединить? Пробывал в дельту - вылет без лога. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 5 Марта 2010 Влад, заюзал, вылет такой: 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_stalker.script:322: attempt to index global 'chimera_mod' (a nil value) В bind_stalker апдейтер был таков: chimera_mod.din_scope() Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 5 Марта 2010 Обижаешь. Поправил ошибку синтаксиса, получил вылет: 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_stalker.script:322: attempt to call field 'din_scope' (a nil value) Кастом статик тоже сделал. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 5 Марта 2010 (изменено) Содержание chimera_mod: snd_obj = {} --это нужно для воспроизведеня звука, должен быть в каждом скрипте где будет использоватся команда "s_play" snd_obj = xr_sound.get_safe_sound_object([[$no_sound]]) function s_stop() if snd_obj:playing()==true then snd_obj:stop() end end function s_play(path) --сюда передается путь файла, и он ево играет s_stop() snd_obj = xr_sound.get_safe_sound_object(path) snd_obj:play_at_pos(db.actor, vector ():set (0, 0, 0), 0, sound_object.s2d) end ------Copyright DEXXX------- -- device\pda\pda_tip --это путь до файла без расширения .ogg local sound_types = {"([[device\pda\pda_tip]])", "([[device\pda\pda_tip]])", "[device\pda\pda_news]", "[[device\pda\pda_objective]]"} --со скобками нада поэксперементировать, function name_script() --твой скрипт s_play(sound_types[math.random(4)]) --четыре это максимальное значение, от 1 до 4. скока файлов стока и максимальное значение end function add_new_lc(levch,levchn,levchm,info) --спауним левел ченджер local objt = alife():story_object(levch) if not objt then alife():create(levchn) end local obj = alife():story_object(levch) if obj then level.map_add_object_spot(obj.id, "level_changer",levchm) db.actor:give_info_portion(info) info_received() end end -- Апдейтер динамических прицелов function din_scope() local hud = get_hud() local custom_static = hud:GetCustomStatic("din_pric") local active_item=db.actor:active_item() if active_item then if (active_item:section() == "wpn_vintorez" or active_item:section() == "wpn_svu" or active_item:section() == "wpn_svd") and math.ceil(db.actor:accuracy()*1000) == 1 then if custom_static == nil then hud:AddCustomStatic("din_pric", true) end end end end Строка апдейтера в bind_stalker: function actor_binder:update(delta) object_binder.update(self, delta) if string.find(command_line(), "-designer") then return end if self.already_jumped==false and jump_level.need_jump==true and (device().frame > self.spawn_frame+2000) then -- jump_level.try_to_jump() self.already_jumped = true return end -- Вызов апдейта переноса игрока проводником if travel_func ~= nil then travel_func() end -- DEBUG slowdown local time = time_global() game_stats.update (delta, self.object) -- апдейт погоды self.weather_manager:update() --' Апдейт саундменеджера xr_sound.update(self.object:id()) -- Обновление отключения ввода с клавиатуры. if self.st.disable_input_time ~= nil and game.get_game_time():diffSec(self.st.disable_input_time) >= self.st.disable_input_idle then level.enable_input() self.st.disable_input_time = nil end -- Апдейт прятание оружия игрока во время диалога if self.object:is_talking() then if self.weapon_hide_in_dialog == false then self.object:hide_weapon() printf("hiding weapon!!!") self.weapon_hide_in_dialog = true end else if self.weapon_hide_in_dialog == true then printf("restoring weapon!!!") self.object:restore_weapon() self.weapon_hide_in_dialog = false end end -- Апдейт прятание оружия игрока в зоне sr_no_weapon if check_for_weapon_hide_by_zones()==true then if self.weapon_hide == false then printf("hiding weapon!!!") self.object:hide_weapon() self.weapon_hide = true end else if self.weapon_hide == true then printf("restoring weapon!!!") self.object:restore_weapon() self.weapon_hide = false end end -- обновление пси-антенны if sr_psy_antenna.psy_antenna then sr_psy_antenna.psy_antenna:update(delta) end if self.bCheckStart then printf("SET DEFAULT INFOS") if not has_alife_info("global_dialogs") then self.object:give_info_portion("global_dialogs") end if not has_alife_info("level_changer_icons") then self.object:give_info_portion("level_changer_icons") end self.bCheckStart = false end if not self.loaded_slot_applied then self.object:activate_slot(self.loaded_active_slot) self.loaded_slot_applied = true end xr_s.on_actor_update(delta) -- ARS MOD -------------------------- ars.on_actor_update(self) -- обработчик всяческих менеджеров четыре раза в секунду. if TimeTrigger1<time then TimeTrigger1=time+250 self:check_detective_achievement() self:check_mutant_hunter_achievement() if(level_anomaly)then self.anomaly_manager:update() end end -- ARS MOD -------------------------- -- Chimera addon. Dinamic scopes update chimera_mod.din_scope() if(self.surge_manager) then if(self.f_surge_manager_loaded ~= true) then self.surge_manager:initialize() self.f_surge_manager_loaded = true end if(self.surge_manager.levels_respawn[level.name()]) then self.surge_manager:respawn_artefacts_and_replace_anomaly_zone() end self.surge_manager:update() end -- Апдейт доступности для симуляции. simulation_objects.get_sim_obj_registry():update_avaliability(alife():actor()) if not self.loaded then get_console():execute("dump_infos") self.loaded = true end treasure_manager.get_treasure_manager():update() if not(primary_objects_filled) then pda.fill_primary_objects() primary_objects_filled = true end pda.fill_sleep_zones() end Содержание ui_custom_msgs: <!--Chimera addon to ARS CoP--> <din_pric x="640" y="512" stretch="1"> <texture>chimera\anim_cube</texture> </din_pric> anim_cube тестовая, файл .seq. Изменено 5 Марта 2010 пользователем кровоSTALKER Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 5 Марта 2010 Влад, тоже 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_stalker.script:322: attempt to call field 'din_scope' (a nil value) Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 5 Марта 2010 Не вру. Ты апдейт куда записывал? Так как у меня? chimera_mod.din_scope()? Да и какой мне смысл врать? Я же заинтересованное лицо.))) Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 5 Марта 2010 Влад, сейчас проверим... Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 6 Марта 2010 (изменено) Влад, а ты на ТЧ тестил? Я ведь речь о ЗП веду. Изменено 6 Марта 2010 пользователем кровоSTALKER Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение
iDreD 5 Опубликовано 7 Марта 2010 Влад, странно... Ничего не работает. ЗП 1.6.02, ARS 0.5 + Path. Работа в Sculptris 3D [туториал] Страничка на Проза.ру Поделиться этим сообщением Ссылка на сообщение