Перейти к контенту

[SoC] Ковыряемся в файлах


Рекомендуемые сообщения

@Colder 

Хранить сам объект в таблице - плохая идея, лучше хранить id.

Если список должен выглядеть примерно так:

 Аптечка

 Аптечка

 Аптечка

 АК-47

 АК-47

Сначала заполняем таблицу, как-то так:

     db.actor:iterate_inventory(function(dummy, item)
          if (IsPart(item)) then
               items[table.getn(items)+1] = {item:id(), item:section(), axr_base.get_inv_name_short(item:section())}
          end
      end)

Т.е. сохраняем в нумерованную таблицу ид предмета, секцию и краткое наименование. Последнее можно в таблицу не писать, а получать ниже, при заполнении собственно данных элемента таблицы.

Затем парсим таблицу и добавляем элементы в список:

    for k, v in ipairs(items) do
        local id = items[k][1]          -- id предмета
        local section = items[k][2]     -- секция предмета
        local sh_name =  items[k][3]    -- краткое наименование предмета

        ... здесь заполняем данными и добавляем элемент в список self.list_items

    end

 

  • Спасибо 1

@Colder 

Ну так в чем проблема? Сделать для одинаковых секций накопление счетчика, затем значение этого счетчика вывести как "хN". Что именно не получается? Давай свой код сюда, будем его доводить до рабочего, а то одна теория.

Да, и не плохо бы знать, для чего вообще твой список - только показать наличие определенных предметов, или все же какие-то действия игрока с предметами в списке?

  • Спасибо 1
  • Согласен 1

Всем привет! Подскажите пожалуйста, можно ли через диалог запустить функцию из скрипта?

Скрытый текст

-- Спавн для каждого уровня (вызывается из респавнера)
function level_spawn()
local level_name = level.name()

---- Болото ----
if level_name == "l14_swamp" then
    proceed_spawn("zombie_4_normal", vector():set(156.8, 1.75, -242.2), 324805,2978, 1, level_name.."_zombie_portion_1", "fake")
    proceed_spawn("zombie_5_normal", vector():set(115.5, 1.5, -229.6), 271759, 2978, 1, level_name.."_zombie_portion_2", "fake")
    proceed_spawn("zombie_6_normal", vector():set(117.6, 2.1, -252), 274325, 2978, 1, level_name.."_zombie_portion_3", "fake")
    proceed_spawn("zombie_immortal_2_normal", vector():set(87.5, 1.5, -249.9), 236228, 2978, 1, level_name.."_zombie_portion_4", "fake")
    proceed_spawn("zombie_7_normal", vector():set(129.5, 1.5, -259), 289597, 2978, 1, level_name.."_zombie_portion_5", "fake")
    proceed_spawn("parazit", vector():set(199.497086, 1.781619, -13.102522), 378693, 2982, 5, level_name.."_zombie_portion_6")
    proceed_spawn("korpus", vector():set(199.497086, 1.781619, -13.102522), 378693, 2982, 5, level_name.."_zombie_portion_7")
    proceed_spawn("m_controller_old", vector():set(199.497086, 1.781619, -13.102522), 378693, 2982, 1, level_name.."_controller_portion_1")
    proceed_spawn("parazit", vector():set(44.488670, 2.072286, -213.825104), 183686, 2969, 5, level_name.."_zombie_portion_8")
    proceed_spawn("korpus", vector():set(44.488670, 2.072286, -213.825104), 183686, 2969, 5, level_name.."_zombie_portion_9")
    proceed_spawn("m_controller_old", vector():set(44.488670, 2.072286, -213.825104), 183686, 2969, 1, level_name.."_controller_portion_2")
    proceed_spawn("parazit", vector():set(-120.058258, 5.545723, -56.413452), 11769, 2956, 5, level_name.."_zombie_portion_10")
    proceed_spawn("korpus", vector():set(-120.058258, 5.545723, -56.413452), 11769, 2956, 5, level_name.."_zombie_portion_11")
    proceed_spawn("m_controller_old", vector():set(-120.058258, 5.545723, -56.413452), 11769, 2956, 1, level_name.."_controller_portion_3")
    proceed_spawn("chimera_normal", vector():set(61.812492, 2.151937, -33.168354), 204545, 2972, 2, level_name.."_chimera_portion_1")
    proceed_spawn("bloodsucker_swamp", vector():set(61.812492, 2.151937, -33.168354), 204545, 2972, 3, level_name.."_bloodsucker_portion_1")
end

 

Изменено пользователем INNOCENT KILLAZ

@INNOCENT KILLAZ 

Вы бы почаще читали справочные материалы по моддингу Сталкера, к примеру тут, "Справочник по ф-циям и классам", "Уроки по модостроению". И было-бы меньше элементарных вопросов. И в чем проблема посмотреть оригинальные диалоги, как там сделано?

            <phrase id="7">
                <text>dialog_7</text>
                <action>имя_скрипт_файла.имя_ф-ции</action>
                <next>8</next>
            </phrase>

  • Спасибо 1
  • Нравится 1
  • Согласен 6

Всем привет! Кто бы еще подсказал как через диалог запустить квест из task_manager.ltx?

@INNOCENT KILLAZ вообще для этого используются уникальные квесты, а не типовые. Но как вариант наверно можно попробовать через infoportion.  Создаешь свой infoportion, вставляешь его активацию в диалог. А в файл task_manager.ltx вставляешь в нужный тебе квест: init_condition = {твой infoportion}. Этот схема когда задания выдаются при переходе на локу, но должна и с infoportion работать. Ну в теории конечно, проверять надо.

Изменено пользователем Lieutenant Novikov
Дописал инфу
  • Спасибо 1
  • Согласен 1
  • Полезно 1

@INNOCENT KILLAZ Для рандомных тасков попробуй, может заработает. Вызывай из диалога

 

<action>имя_твоего_скрипта.имя_твоей_ф-ии</action>

 

function (имя_твоей_ф-ии)

   local new_task = CGameTask()
   new_task:load("ид_таска")
   db.actor:give_task(new_task, 3600*1000, true)

end

  • Полезно 1
  • Сомнительно 1

Сталкер - наше всё!

@INNOCENT KILLAZ , из скриптов:

function funcname()

  local mgr = task_manager.get_random_task()

  mgr:action_give_task(db.actor, nil, nil, mgr.task_info["id_таска"].yes_phrase_id)

end

А функцию, соответственно, вызвать из диалога через action.

  • Полезно 3

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

15 минут назад, Купер сказал:

При выкладывании/выбрасывании квестового предмета информация о стадии задания не изменяется

В ТЧ так и должно быть. Если подзадание выполнилось/провалилось, то оно больше не обновляется.

Изменено пользователем naxac
  • Полезно 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

@Купер , насколько знаю - нет. Для этого вроде правка движка нужна.

Изменено пользователем naxac
  • Согласен 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub/Тема на AP-PRO

naxac.gif

33 минуты назад, Купер сказал:

уточню, что хотелось-бы

Выложил квестовый предмет в нычку - задание провалено. :WhiteVoid_2:

  • Не согласен 1

Отношения между людьми- главная ценность в человеческом обществе.
Любая полученная информация- это только повод для размышлений, а не побуждение к действию.
Это должен знать каждый: уроки боевой подготовки Дяди Саши https://yadi.sk/d/60Ec2B06goLAE
Накопано и накнопано:https://yadi.sk/d/mzVY5jQEspwpt

Подскажите, пожалуйста, как можно одним скриптом перенести все предметы в инвентаре Меченого в ящик, чтобы, в дальнейшем, была предусмотрена возможность забрать их оттуда? Нужно это сделать без скриптов АМК.

Изменено пользователем Rod_K
12 часов назад, Купер сказал:

При выкладывании/выбрасывании квестового предмета

 

11 часов назад, Купер сказал:

3. На сдавая задания - предмет "потеряли"

 

11 часов назад, aromatizer сказал:

Выложил квестовый предмет в нычку - задание провалено

 

Господа ЕМНИП - специально для этого есть 

quest_item  = true

чтобы ни продать, ни потерять, ни в нычку выкласть.

  • Согласен 3
38 минут назад, Купер сказал:

разговор про "циклички":

 Сорян не доглядел, тогда только искать движкоправки

или писать свои коды с кучей проверок.

13 часов назад, aromatizer сказал:

Выложил квестовый предмет в нычку - задание провалено.

Зачем такое? Задача в квесте - сдать предмет задания заказчику, а каким макаром - это проблема игрока. Откуда такая тяга издеваться над игроком, обставляя его высосанными из известного пальца дурацкими ограничениями?

 

@Rod_K 

db.actor:transfer_item(game_object* <что>, game_object* <кому>) -- передать предмет, работает только для объектов, находящихся он-лайн.

  • Согласен 2
  • Полезно 1

@ted.80 Насколько помню, цикличка моим кодом выдавалась. Дальше не проверял. Да и код не мой, кто-то подсказал в свое время.

Сталкер - наше всё!

Что-то я никак не разберусь, что отвечает за инерцию оружия при стрейфе в прицеливании? OGSR двигло, есть такое и в самом ogsr и модах на его основе. 

Нарыл 

\gamedata\config\external.ltx

 

; Инерция при прицеливании. По умолчанию эффект не сильный, не навязчивый.
default_allow_zoom_inertion = true

; Наклоны оружия при стрейфах. По умолчанию эффект не сильный, не навязчивый.
default_strafe_enabled = true

 

Поменял на false - нет эффекта. Что еще можно глянуть?

 

1 час назад, mmindwork сказал:

нет эффект

Вот-вот! Тоже не найду где это отключить.

  • Жуть! 1
  • Сомнительно 1

Можно попробовать добавить дополнительные параметры да и пообнулять их нафинг:

 

; Инерция при прицеливании. По умолчанию эффект не сильный, не навязчивый.
default_allow_zoom_inertion = true

strafe_aim_transition_time = 0.00
strafe_aim_hud_offset_pos = 0.00,0.0,0.00
strafe_aim_hud_offset_rot = 0.0,0.0,0.0

 

; Наклоны оружия при стрейфах. По умолчанию эффект не сильный, не навязчивый.
default_strafe_enabled = true

strafe_transition_time = 0.00
strafe_hud_offset_pos = 0.00,0.0,0.00
strafe_hud_offset_rot = 0.0,0.0,0.0

 

Это моя в ЗП посмотрел:

hhh.png

 

 

  • Жуть! 1

AMD Athlon II X2 250, NVIDIA GTS 450, RAM 8.0 GB, WIN 7/64  правки Золотой Шар

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...