Перейти к содержанию

РСФСР

Разработчики
  • Публикаций

    107
  • Зарегистрирован

  • Посещение

Весь контент РСФСР

  1. Подскажите как в gulag_dark_valley.script в тамошнее месиво из динамических .лтх вписать обычные скрипты смарт-террейнов что в gulag_escape, garbage и прочих. Например это в function load_job(sj, gname, type, squad, groups) if type == "esc_ambush" then t = { section = "logic@esc_ambush1", idle = 0, prior = 8, state = {0}, in_rest = "", out_rest = "esc_ambush_out_restrictor" } table.insert(sj, t) t = { section = "logic@esc_ambush2", idle = 0, prior = 8, state = {0}, in_rest = "", out_rest = "esc_ambush_out_restrictor" } table.insert(sj, t) end Это - в function load_states(gname, type) if type == "esc_ambush" then return function(gulag) return 0 end end Вот так же выглядит начало этого злополучного скрипта куда надо вставить: local mob_spring_count = 20 -------------------------------------------------------------------------- -- States -------------------------------------------------------------------------- local state_normal = 0 local state_alarm = 1 local state_alarm_actor_inside = 2 local state_fight = 1 -------------------------------------------------------------------------- -- General -------------------------------------------------------------------------- local t = {} local gulags = {val_escort = {comm = {"bandit", "dolg"}}, val_sacrifice = {comm = {"bandit", "dolg"}}, val_prisoner = {comm = {"dolg"}}, val_sos = {}, val_rob = {comm = true}, val_lager_bandits = {comm = {"bandit"}}, val_watchtower = {comm = true}, val_soldiers_raid = {comm = {"military"}}, offline_group = {}} -- Job ------------------------------------------------------------------- function load_job(sj, gname, type, squad, groups) local g = gulags[type] if g then g.job(sj, gname, type, squad, groups) end end -- State ----------------------------------------------------------------- function check_state_stub(gulag) return 0 end function load_states(gname, type) local g = gulags[type] if g then return g.state or check_state_stub end return nil end
  2. какова функция зоны sr_dunger? Пример - в ней стоят долговец и расстреливающие его бандиты в долине val_sacrifice_danger_zone [logic] active = sr_danger [sr_danger] on_info = {+val_sacrifice_victim_dead} nil
  3. а вот эту часть не подскажешь как вписать в функцию чтоб работало? телепортация после удара в вейпоинт, выдача некоторых инфо и выключение управления на некоторое время: st.dest_walk = patrol("val_ambush_dest_walk"):point(0) st.dest_look = utils.vector_copy_by_val( patrol("val_ambush_dest_look"):point(0)):sub(st.dest_walk) st.info = { "val_prisoner_plr_captured", "val_prisoner_door_unlocked", "val_prisoner_door_unlocked_demo" } -- "val_prisoner_door_unlocked_demo", "val_sacrifice_start" } st.disable_input_tm = 15000
  4. было бы классно! Может и ошибка там, ведь разница между билдовым и финальным файлом в несколько лет
  5. подскажите как подправить скрипт из 2205 билда для финалки с ударом игроку в морду и последующей телепортацией и изыманием вещей. function val_punch_ambush(first_speaker, second_speaker) —abort("KICK ASS !!!!") —xr_punch.punch[first_speaker:id()] = second_speaker db.storage[db.actor:id()].punch = {} local st = db.storage[db.actor:id()].punch st.dest_walk = patrol("val_ambush_dest_walk"):point(0) st.dest_look = utils.vector_copy_by_val( patrol("val_ambush_dest_look"):point(0)):sub(st.dest_walk) st.info = { "val_prisoner_plr_captured", "val_prisoner_door_unlocked", "val_prisoner_door_unlocked_demo" } — "val_prisoner_door_unlocked_demo", "val_sacrifice_start" } st.dump_inventory_pos = patrol("val_ambush_inventory_dump_place"):point(0) st.disable_input_tm = 15000 db.storage[second_speaker:id()].punch.enabled = true — xr_punch.put_actor_to_sleep_instantly() end При этом часть где барахло актора вываливается в точке заменить на эту функцию где барахло убирается в ящик или как-то добавить отдельно вызов этой функции(она рабочая): function val_ambush_rob_actor(actor, npc, p) inv_box_1 = level_object_by_sid(440) local function transfer_object_item(item) —# Секции, которые не перемещать if item:section() ~= "detector_fake" — and item:section() ~= "wpn_knife" and item:section() ~= "device_torch" and item:section() ~= "device_pda" then db.actor:transfer_item(item, inv_box_1) end end actor:inventory_for_each(transfer_object_item) end Сейчас вылет: FATAL ERROR [error]Expression : fatal error [error]Function : CScriptEngine::lua_error [error]File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp [error]Line : 73 [error]Description : <no expression> [error]Arguments : LUA error: ...a.l.k.e.r\gamedata\scripts\dialogs_darkvalley.script:51: attempt to index field 'punch' (a nil value) stack trace: Вылет ссылается на эту строчку: db.storage[second_speaker:id()].punch.enabled = true
  6. догнал как эта хрень работает. Чтобы при создании группы она имела нулевые координаты надо чтобы половина или больше объектов которые в нее входят имели эти нулевые координаты. Дополнено 20 минуты спустя аа все понял. После создания группы надо в поле что внизу справа нажать align to object и выбрать объект который будет центром координат. Выбираем объект с нулевыми координатами и вауля
  7. Такой вопрос - как сделать в сдк тч группу чтобы она имела нулевые координаты? Сейчас пытаюсь объединить несколько объектов для переноса с одной локации на другую но получается хрень с ненулевыми координатами. Нормально с ними перенести не получается. Вроде работал способ включения в группу объекта с нулевыми координатами и поворотами, но что-то никак.
  8. круглый, метров 10 Движок да, оригинальный. Возможно есть некоторые изменения из xray_extentions кажется
  9. ошибка оказалась в том что вписал в задание инфопоршион_фэйл и функшион_фэйл использующий туже инфопорцию
  10. с чем связан такой вылет: stack trace: 0023:007AEDE0 xrCore.dll, str_container::dock() [error][ 183] : Невозможно создать файл, так как он уже существует.
  11. Подскажите как реализовать следующее: Есть квестовый предмет, который нужно подобрать в инвентарь, затем пойти и выбросить в определенном рестрикторе и далее постреляв по нему он должен разрушиться(соответственно подменяется модель на разрушенную) и выдать инфо. Не знаю, можно ли разрушать квестовые предметы. Скорее всего объект должен быть destroyble_object
  12. Как выдать инфо при перемещении в рестриктор объекта или тела непися?
  13. меньше или равно? Попробовал прописать сталкерам под логикой уход в смарт по инфо - ничего не произошло, также сидят под логикой при получении инфо.
  14. Поясните, если вписать это нпс: [smart_terrains] smart = {+info} что будет если в смарте уже все места заняты будут
  15. бесполезно - они все выдают ошибки на первых строках, где русский текст начинается
  16. этот файл во-первых не трогал, во вторых открыв файл оригинала- там число строк меньше. нету 87
  17. Есть способ как-нибудь локализовать ошибки в .xml - файлах? кроме [error]Line : 87 [error]Description : XML file:text\rus\string_table_includes.xml value: errDescr:Error reading Attributes. ничего не ясно. Изменял сразу много файлов и теперь понять где наебнулся не могу.Вручную вроде посмотрел - ошибок нет. Через .xml- валидатор тоже прогонял, но он бракует вообще большую часть хмл сталкера
  18. Вот функция, которая при разговоре с арни перемещает барохло актора в ящик и спавнит всяких хлам для выступлений в инвентарь: function bar_arena_teleport ( actor, npc) db.actor:give_info_portion("bar_arena_entrance") inv_box_1 = level_object_by_sid (573) out_object = actor in_object = inv_box_1 actor:inventory_for_each(transfer_object_item) local spawn_items = {} if has_alife_info("bar_arena_fight_1") then table.insert(spawn_items, "wpn_pm") table.insert(spawn_items, "ammo_9x18_pmm") table.insert(spawn_items, "ammo_9x18_pmm") table.insert(spawn_items, "wpn_knife") elseif has_alife_info("bar_arena_fight_2") then table.insert(spawn_items, "wpn_mp5") table.insert(spawn_items, "ammo_9x19_pbp") table.insert(spawn_items, "wpn_knife") elseif has_alife_info("bar_arena_fight_3") then table.insert(spawn_items, "wpn_toz34") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "ammo_12x70_buck") table.insert(spawn_items, "wpn_knife") elseif has_alife_info("bar_arena_fight_4") then table.insert(spawn_items, "wpn_ak74") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "bandage") table.insert(spawn_items, "bandage") elseif has_alife_info("bar_arena_fight_5") then table.insert(spawn_items, "wpn_abakan") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "ammo_5.45x39_ap") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "bandage") table.insert(spawn_items, "medkit") table.insert(spawn_items, "svoboda_light_outfit") elseif has_alife_info("bar_arena_fight_6") then table.insert(spawn_items, "wpn_groza") table.insert(spawn_items, "ammo_9x39_ap") table.insert(spawn_items, "ammo_9x39_ap") table.insert(spawn_items, "ammo_9x39_ap") table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "grenade_f1") table.insert(spawn_items, "specops_outfit") elseif has_alife_info("bar_arena_fight_7") then table.insert(spawn_items, "wpn_knife") table.insert(spawn_items, "bandage") table.insert(spawn_items, "grenade_f1") table.insert(spawn_items, "grenade_f1") table.insert(spawn_items, "grenade_f1") table.insert(spawn_items, "grenade_f1") elseif has_alife_info("bar_arena_fight_8") then table.insert(spawn_items, "wpn_g36") table.insert(spawn_items, "ammo_5.56x45_ap") table.insert(spawn_items, "ammo_5.56x45_ap") table.insert(spawn_items, "ammo_5.56x45_ap") table.insert(spawn_items, "ammo_5.56x45_ap") table.insert(spawn_items, "exo_outfit") table.insert(spawn_items, "wpn_knife") end local k,v = 0,0 for k,v in pairs(spawn_items) do alife():create(v, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end end Пытаюсь сделать на основе нее функцию, вызываемую через логику рестриктора для простого перемещения всего барахла в ящик. Получилось пока такое, и само собой не рабочее: function escape_rob_actor ( actor, npc) inv_box_1 = level_object_by_sid (051) out_object = actor in_object = inv_box_1 actor:inventory_for_each(transfer_object_item) end
  19. а нельзя если прописано [smart_terrains] none= true в другой смарт по инфо?
  20. нельзя, пробовал. Можно вроде только если создать квестовый предмет-артефакт