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

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


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

3 часа назад, андрей дронав сказал:

    sound_for_eat.use_snd(obj) --* озвучка еды     teleportator.use_tele(obj) --* 'полетушка'

Типа, съел чего-то и телепортировался? Это, получается, реклама галюциногенных грибочков? Или что-то иже с ними?

  • Нравится 1
  • Смешно 5
Ссылка на комментарий
10 часов назад, Купер сказал:

Тут вон за один только метод вызова коллбека целая дискуссия разгорелась.

Это да :) Но в общем для конкретного человека эта дискуссия на пользу в итоге пошла. А значит, не зря дискутировали. Оффтоп, конечно... В итоге, человек понял все правильно, и рабочий код накропал.

 

Zander_driver, возможно я изначально неправильно истолковал суть вопроса...

 

Изменено пользователем AndrewMor
  • Нравится 1
  • Согласен 1

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

Ссылка на комментарий

Снова я с глупым вопросом...

Расковырял all.spawn нашел такой это:

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

[8653]

; cse_abstract properties
section_name = physic_object
name = bun_physic_object_1
position = 7.3154182434082, -23.4360427856445, 12.6732168197632
direction = 0, 0, 0
id = 65535
version = 118
script_version = 6
spawn_id = 8652

; cse_alife_object properties
game_vertex_id = 2661
level_vertex_id = 2773
object_flags = 0xffffff3a

; cse_visual properties
visual_name = physics\stol\stol_4

; cse_ph_skeleton properties

; cse_alife_object_physic properties
physic_type = 0x3
mass = 10

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

[8654]

; cse_abstract properties
section_name = physic_destroyable_object
name = bun_surprise_box_0034
position = 7.2837252616882, -22.537614822388, 12.900428771973
direction = 0, 0, 0
id = 65535
version = 118
script_version = 6
spawn_id = 8653

; cse_alife_object properties
game_vertex_id = 2773
level_vertex_id = 7695
object_flags = 0xffffff3a
custom_data = <<END
[drop_box]
community = def_box
items = ammo_gauss, 10, wpn_gravigun
END

; cse_visual properties
visual_name = physics\box\box_wood_01

; cse_ph_skeleton properties

; cse_alife_object_physic properties
physic_type = 0x3
mass = 10

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Суть в том, если spawn_id отличается от номера секции, ( как должно быть) спавнится только стол, если указываю все одинаково, все указанное спавнится, в полном обьеме.

Вопрос, на Inside Wiki сказано что числа строго должны отличаться, можно ли так что то сломать?

Ссылка на комментарий

@андрей дронав Это в оригинальной игре? Не знал, что в деревянном ящике можно wpn_gravigun взять. Кстати, что за пушка (конфигов под рукой нет, пишу с работы)?

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

Ссылка на комментарий
1 час назад, AndrewMor сказал:

Это в оригинальной игре?

Нет, это из Legacy of the ogsm 1.0

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

Кстати, что за пушка

Гравитационный захват

Изменено пользователем андрей дронав
  • Спасибо 1
Ссылка на комментарий

По образу гравигана из HL-2. Артефакты с БТРами кидать и всё такое. Весело было подурачиться в своё время. 

Изменено пользователем mole venomous
  • Нравится 1

Здесь могла быть ваша реклама.

Ссылка на комментарий

 Помогите вывести в гуи окне количество предметов с одинаковой секцией.

 

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

function UIrepair:FillListPart()
    self.list_items = self:GetListWnd("list_window_part")
    self.items = {}
    db.actor:iterate_inventory(function(dummy, item)
    local section = item:section()

    if (IsPart(item)) then
    table.insert(self.items, section)
    local item_static = part_items()
    item_static.item_name:SetTextST(axr_base.get_inv_name_short(section))
    item_static.item_id = item:id()
    self.list_items:AddItem(item_static)
end
end)
end

 

 

Ссылка на комментарий
1 час назад, AndreySol сказал:

@Colder 

Задача просто вывести список или сначала собрать нужное в таблицу, а потом из таблицы вывести в список?

собрать в таблици и вывести в список

Изменено пользователем Colder
Ссылка на комментарий

@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
Ссылка на комментарий

@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.

  • Полезно 4

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий

Вводные: task_manager, циклические задания типа "найти объект" (арт, конечность etc).

При выкладывании/выбрасывании квестового предмета информация о стадии задания не изменяется (pda, ньюсы)

Что-то нашкодил или действительно имеет место быть? Если всё-таки второе, где-то можно посмотреть культурное исправление этого безобразия?

 

Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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