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

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

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

@mole venomous почему? Смотря что за телепорт. К стати, а что за телепорт?

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

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

@UriZzz я не знаю, какая схема у пользователя. А я использую скриптовую систему переходов. С модулем от артоса она надёжно работает. Я не говорю, что она лучше или хуже, но главное, надежная, стабильная и простая. 

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

Ссылка на комментарий
33 минуты назад, UriZzz сказал:

@mole venomous а что за телепорт?

UNIVERSAL TELEPORT V2.0 Автор: naxac

Ставлю на Ivg_brest скрипт приёма пищи из OGSM ТЧ

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

@андрей дронав скинь ссылочку, если не затруднит. Буду за компом, гляну. Хотя у этого автора всегда качественные работы

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

Ссылка на комментарий
7 минут назад, mole venomous сказал:

@андрей дронав У этого автора всегда качественные работы. 

Согласен! Телепорт работает отлично! Вот проблема неожиданно в одинаковых калбэках... 

https://synthira.ru/load/s_t_a_l_k_e_r/ten_chernobylja_mody/universal_teleport_v2_0/19-1-0-3239

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

@андрей дронав , а что мешает или не работает в таком варианте?

function actor_binder:net_destroy()
...
self.object:set_callback(callback.use_object, nil)
...
end

function actor_binder:reinit()
...
self.object:set_callback(callback.use_object, self.use_object, self)
...
end

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

 

Вместо:

function actor_binder:reinit()
...
self.object:set_callback(callback.use_object, self.use_object, self) --* 2 одинаковых
self.object:set_callback(callback.use_object, self.on_use_object, self) --* вызова одного коллбека
...
end

function actor_binder:use_object(obj)
    sound_for_eat.use_snd(obj)    
end

function actor_binder:on_use_object(obj, who)
    teleportator.use_tele(obj)
end

 

А, вообще, прицепить использование телепорта к верхней функции.

Изменено пользователем Купер
  • Нравится 1
  • Полезно 1
Ссылка на комментарий

@Купер Про разно поименованный колбек - понятно. Вопрос был в другом: 

 

"Можно в самом обработчике указать оба действия, с делением по ситуации, если действия не происходят совместно." - имелось в виду, использовать один синтаксис колбека, а уже в обработчике обрабатывать ситуации по-разному, так?

  • Жуть! 1

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

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

@AndrewMor , прошу пардону, вышесказанное больше к @андрей дронав относится.

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

 

Как видишь, даже после всего, что накропали, у камрада определённые вопросы всё-таки остались.

А по поводу "...использовать один синтаксис колбека, а уже в обработчике обрабатывать ситуации по-разному"(c). Вот перевели бы вы всё это на хотя бы русский алгоритмический. Терминология - она такая :biggrin:. Тут вон за один только метод вызова коллбека целая дискуссия разгорелась.

 

 

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

Всем спасибо за помощь!  Без вас яб ни как!!!

Скрытый текст
function actor_binder:net_destroy()
...
self.object:set_callback(callback.use_object, nil)
...
end

function actor_binder:reinit()
...
self.object:set_callback(callback.use_object, self.use_object, self)
...
end

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

 

Изменено пользователем андрей дронав
  • Нравится 4
Ссылка на комментарий
3 часа назад, андрей дронав сказал:

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

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

  • Нравится 1
  • Смешно 5
Ссылка на комментарий

@AndreySol как вариант истории с доктором, лекарством и пещерой. 

  • Согласен 1

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

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

 

 

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

@Colder 

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

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

×
×
  • Создать...