Colder 12 Опубликовано 5 Декабря 2020 Всем привет! Подскажите пж функцию на сброс визуала гг рабочую! Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 7 Декабря 2020 Вообщем писал я в этой теме где то месяц назад! Была у меня проблемы с модом такие как: пропадала анимация бега, сброс визуала и т.п искал проблему почти меся) т.к много файлов подключено в моде. Оказалось это из-за скрипта не помню от кого НА РЕСПАВН АРТЕФАКТОВ какие там ошибки не знаю, ковыряться не стал. Откл. скрипт и все заработало/бред. Может кто посмотрит его! https://yadi.sk/d/7tHdc9vjT7BfSQ 1 Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 8 Декабря 2020 (изменено) Парни помогите сделать что бы инфопорция выдавалась рандомно по 1 а не сразу 4 вот скрипт: Скрытый текст local post_info = 1 local m_post_info = "" local info_news = { db.actor:give_info_portion("encyclopedy_zone_artifact_af-cristall-flower"), db.actor:give_info_portion("encyclopedy_zone_artifact_af-night-star"), db.actor:give_info_portion("encyclopedy_zone_artifact_af-vyvert"), db.actor:give_info_portion("encyclopedy_zone_artifact_af-gravi") } function actor_on_map_info(obj) if (obj:section() == "maps_kit") then if math.random() < post_info then m_post_info = info_news[math.random(table.getn(info_news))] end end end Изменено 8 Декабря 2020 пользователем Colder Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 13 Декабря 2020 Парни такой вопрос! Как можно скриптово сделать что бы при двойном клике по аптечке, было написано не использовать а например выпить или сьесть! Может есть у кого наглядный пример или подскажет кто что и где нужно поучить! Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 25 Декабря 2020 Парни подскажите функцию на проверку аномании в определеных метрах. Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 28 Января 2021 Всем привет! Парни подскажите функцию на проверку рядом активной аномалии. Например: если аномалия ЖАРКА рядом с гг находится в радиусе 2 метров происходит то или иное действие! Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 29 Января 2021 Изменяюсь спросить а может кто скинуть bind_anomaly? Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 30 Января 2021 @AndreySol Сделал так : Скрытый текст function radiation_anomaly_binder:update(delta) object_binder.update(self, delta) local actor = db.actor if actor then local dist = actor:position():distance_to(self.object:position()) if dist <= 10 then local hud = get_hud() hud:AddCustomStatic("radiation_hud_static", true) else local hud = get_hud() hud:RemoveCustomStatic("radiation_hud_static", false) end end end Но она почему то не горит а маргает Скрытый текст local actor = db.actor if actor then local dist = actor:position():distance_to(self.object:position()) if dist <= 15 then local hud = get_hud() hud:AddCustomStatic("radiation_hud_static", true) elseif dist <= 25 then local hud = get_hud() hud:RemoveCustomStatic("radiation_hud_static", false) Вот так нормально, можно даже наверно попроще! Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 30 Января 2021 @naxac не работает И не вылетает Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 1 Февраля 2021 Скрытый текст function treasure_take_item() local veroyatnos_podriva = 0.2 --// вероятность подрыва по умолчанию local location = level.name() local sila_podriva = 0.3 --// сила подрыва по умолчанию local be_or_not_to_be --// не трогать if location == "l01_escape" then veroyatnos_podriva = 0.1 sila_podriva = 0.4 end if location == "l02_garbage" then veroyatnos_podriva = 0.15 sila_podriva = 0.4 end if location == "l03_agroprom" then veroyatnos_podriva = 0.15 sila_podriva = 0.4 end if location == "l03u_agr_underground" then veroyatnos_podriva = 0.35 sila_podriva = 0.6 end if location == "l04_darkvalley" then veroyatnos_podriva = 0.25 sila_podriva = 0.4 end if location == "l04u_LabX18" then veroyatnos_podriva = 0.25 sila_podriva = 0.6 end if location == "05_bar" then veroyatnos_podriva = 0.25 sila_podriva = 0.4 end if location == "l06_rostok" then veroyatnos_podriva = 0.35 sila_podriva = 0.4 end if location == "l08_yantar" then veroyatnos_podriva = 0.35 sila_podriva = 0.4 end if location == "l08u_brainlab" then veroyatnos_podriva = 0.3 sila_podriva = 0.5 end if location == "l07_military" then veroyatnos_podriva = 0.35 sila_podriva = 0.4 end if location == "l10_radar" then veroyatnos_podriva = 0.3 sila_podriva = 0.4 end if location == "l11_pripyat" then veroyatnos_podriva = 0.35 sila_podriva = 0.4 end if location == "l12_stancia" then veroyatnos_podriva = 0.1 sila_podriva = 0.4 end if location == "l12_stancia_2" then veroyatnos_podriva = 0.1 sila_podriva = 0.4 end if location == "l12u_control_monolith" then veroyatnos_podriva = 0.1 sila_podriva = 0.4 end if location == "l12u_sarcofag" then veroyatnos_podriva = 0.1 sila_podriva = 0.4 end --// Снижаем шанс подрыва если есть кусачки if db.actor:object("kysazki") ~= nil then veroyatnos_podriva = veroyatnos_podriva - 0.1 end be_or_not_to_be = math.random(0,100) if be_or_not_to_be < veroyatnos_podriva * 100 then local lv,gv local a = vector() local radius = math.random(0,4) a = db.actor:position() a.x = a.x + radius a.z = a.z + radius a.y = a.y + math.random(0,1) lv = db.actor:level_vertex_id() gv = db.actor:game_vertex_id() local h2 = hit() h2.power = sila_podriva h2.direction = vector():set(0,0,0) h2.type = hit.explosion h2.impulse = 1 h2.draftsman = db.actor db.actor:hit(h2) sound_object("weapons\\mine_1"):play_at_pos(db.actor,vector():set(0,0,0),0,sound_object.s2d) particles_object("explosions\\explosion_mine"):play_at_pos(vector():set(a.x,a.y,a.z),lv,gv,65535) end end Всем привет! Есть функция на заминирование тайников! Проблема в том что, минируються не только тайники но и РЮКЗАК ДЛЯ ЗАКЛАДКИ СВОЕГО ТАЙНИКА! Можно ли как то заблочить функцию что бы она работала только с уже имеющими тайниками а не которые делает гг сам! Заранее спасибо! Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 1 Февраля 2021 (изменено) @AndreySol Вызываеться из treasure_manager function take_item_from_box(box, box_story_id) printf("!!! take item from box %s", tostring(box:is_inv_box_empty())) if box:is_inv_box_empty() == true then get_treasure_manager():treasure_empty(box, box_story_id) end axr_treasure.treasure_take_item() --// сама функция end Скрытый текст function take_item_from_box(box, box_story_id) printf("!!! take item from box %s", tostring(box:is_inv_box_empty())) if box:is_inv_box_empty() == true then get_treasure_manager():treasure_empty(box, box_story_id) local box_name = box:name() printf("-"..box_name) if (math.random() < 0.75) then axr_sounds.play_sound([[weapons\generic_checkout]]) mine_box = box mine_timer = time_global()+3000 end end end function actor_on_update() if (mine_timer) and (mine_timer < time_global()) then local blow_particle = particles_object("explosions\\explosion_mine") blow_particle:play_at_pos(mine_box:position()) local h = hit() h.type = hit.explosion h:bone("bip01_spine") h.power = 1 h.impulse = 2 h.direction = vector():set(0,0,1) h.draftsman = db.actor if db.actor:position():distance_to(mine_box:position()) < 3 then db.actor:hit(h) end mine_timer = nil mine_box = nil end end Сделал проще! Все это влежит в treasure_manager. Но эффект тот же. Закладываю свой тайник И ОН ТОЖЕ БАХАЕТ! Изменено 1 Февраля 2021 пользователем Colder Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 1 Февраля 2021 Я не понимаю что ты пишешь. Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 1 Февраля 2021 (изменено) сейчас https://yadi.sk/d/KSdvyhfZwD7I7Q Изменено 1 Февраля 2021 пользователем Colder Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 1 Февраля 2021 Это оригинальный файл! Там только функция добавлена и все! Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 2 Февраля 2021 @Купер Спасибо большое! Добавил так: if not string.find(box_name, "active_ruck") and not string.find(box_name, "active_box") and not string.find(box_name, "active_system") and (math.random() < 0.75) then Ещё бы добавить что бы с кусачками, снижался шанс заминировании тайника! Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 3 Февраля 2021 "Вывести окно извлечь" Если не ошибаюсь это движковая правка. Скрытый текст function start_repair_out(cond,num) local itm = db.actor:item_in_slot(num) local kit = kits[num] local s = cond-2 local sect = obj:section() local name = tostring(system_ini():r_string(obj:section(),"inv_name_short")) if itm ~= nil then axr_effects_data.devices_anim() alife():release(alife():object(itm:id()), true) axr_sounds.play_sound([[item_sounds\inv_repair_sewing]]) send_tip("%c[d_green]"..game.translate_string("st_dis_text_7").." "..game.translate_string(tostring(name))) create_repkit(kit..s) else send_tip("[d_red]Разбор невозможен!\\nОтсутствует объект для разбора!") create_repkit(kit..cond) end end Парни помогите вывести Сообщение разобраного обьекта! Сообщение не приходит а вылетает с "attempt to index global 'obj' (a nil value)" Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 3 Февраля 2021 Да работает спасибо! @ted.80 А нет! Не работает! Скрытый текст Arguments : LUA error: ...ü ×åðíîáûëÿ\gamedata\scripts\bind_stalker_ext.script:62: attempt to index global 'axr_sewing' (a nil value) Когда обьекта в слоте нету Ругаеться на сам скрипт Ой не то вот вылет Arguments : LUA error: ... - Òåíü ×åðíîáûëÿ\gamedata\scripts\axr_sewing.script:39: attempt to index local 'itm' (a nil value) 69 строка " if itm ~= nil then " 2 Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 6 Февраля 2021 Парни подскажите функцию, что бы получить весь список оружия и брони имеющийся в инвентаре ГГ. Поделиться этим сообщением Ссылка на сообщение
Colder 12 Опубликовано 6 Февраля 2021 Скрытый текст local spawns_devices = { "part_lighter", "part_banka", "part_nitki", "part_kley", "part_cutler", "part_core", "part_ver", "part_grease", "part_fankt", "part_gunoil", "part_ramrod", "part_kitss", "part_kitrr", "part_jar", "part_weapons_light", "part_weapons_heavy", "part_outfit_heavy", "part_outfit_light", "part_electro" } function actor_on_random_devices_new() local text_new = "" for i = 2, 4 do--// ОТ 2 DO 4 local item = spawns_devices[math.random(table.getn(spawns_devices))] alife():create(item, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) local a_name = game.translate_string(system_ini():r_string(item,"inv_name_short")) text_new = text_new.."\\n"..a_name end send_tip_devices("\\n%c[d_cyan]"..game.translate_string("st_dis_text_9").."\\n".."%c[ui_white]"..text_new) end Может кто помочь получить количество получаемых деталей? Т.е если после разбора обьекта получаешь 2 ОДИНАКОВЫХ предмета, то в сообщении это не указываеться. ВОТ СКРИН https://yadi.sk/i/G3C88dOd1juczw Поделиться этим сообщением Ссылка на сообщение