Случайная подборка модов
Сталкер "Диана"
2.0
MISERY 2.2
4.1
MDRK mod 1.0
4.0
The Project Medeiros
3.7
Lost World Troops of Doom
4.1
Hibernation Evil - Эпизод I
2.8
Последние обновленные темы Прямой эфир Самые популярные темы Последние новости
Архив - только для чтения
⚙ Модострой: Вопросница
Российская Федерация  Wolfstalker
Среда, 24.02.2016, 00:25 | Сообщение # 1
Статус:
Легенда:
Сообщений: 2258
Награды: 15
Регистрация: 05.04.2010

В данной теме вы можете задавать любые вопросы касательно S.T.A.L.K.E.R. моддинга


• Не флудить
• Предварительно просматривайте раздел, ведь ответ на ваш вопрос может быть там
• В своем вопросе указывайте платформу моддинга — Тень Чернобыля, Чистое небо или Зов Припяти




F.A.Q

  Злобная реклама
Среда, 24.02.2016, 00:25
Статус:
Сообщений: 666
Регистрация: 05.04.2010
Российская Федерация  atanda
Пятница, 06.10.2017, 12:20 | Сообщение # 8311
Статус:
Бывалый:
Сообщений: 672
Награды: 7
Регистрация: 12.07.2017

denis2000,
Окей, я продолжу. Раз костёр по описанию его в конфиге очень похож на аномалию, то это такой, как я понимаю, костыль -"псевдо-аномалия". Но всё же аномалия, тогда почему бы не применить к нему функцию disable_anomaly(), которая находится в классе game_object файла lua_help. Конечно я ещё не видал использования этой функции в других модификациях. Но я попробую и чуть позже отпишусь.
  Злобная реклама
Пятница, 06.10.2017, 12:20
Статус:
Сообщений: 666
Регистрация: 12.07.2017
Российская Федерация  denis2000
Пятница, 06.10.2017, 13:28 | Сообщение # 8312
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

buffy, Да это работает. Вполне можете использовать этот метод.
  Злобная реклама
Пятница, 06.10.2017, 13:28
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  atanda
Пятница, 06.10.2017, 15:00 | Сообщение # 8313
Статус:
Бывалый:
Сообщений: 672
Награды: 7
Регистрация: 12.07.2017

denis2000, вобщем тут возникла проблемка, чтобы точно знать какой костёр мне потушить, я задал ему story_id в файле alife_l01_escape, путём видоизменения следующей секции добавлением туда story_id:
Код

[2191]

; cse_abstract properties
section_name = lights_hanging_lamp
name = lights_camp_fire_omni_r1_r2_0000
position = 107.139472961426, -1.79265999794006, -0.583568632602692
direction = -2.27373675443232e-013, 0, 0
id = 65535
version = 118
script_version = 6
spawn_id = 585
story_id = 50

; cse_alife_object properties
game_vertex_id = 0
level_vertex_id = 594270
object_flags = 0xffffffba

; cse_visual properties

; cse_ph_skeleton properties

; cse_alife_object_hanging_lamp properties
main_color = 0xfffab807
main_brightness = 0.40000001
main_color_animator = koster
main_range = 6
light_flags = 0x2a
health = 100
main_virtual_size = 0.1
ambient_radius = 2
ambient_power = 0.40000001
main_cone_angle = 2.0943952
glow_radius = 0.69999999

После запаковал, к слову запаковка прошла успешно.

Далее инициализировал стори_ид в game_story_ids

Далее прописал в main_menu:OnKeyboard(dik, keyboard_action) файла ui_main_menu.script следующий код:
Код

if dik == DIK_keys.DIK_S then
    local o = level_object_by_sid("test_campfire_turn_off")
    o:disable_anomaly()
    local vec = vector()
    vec.x = 107.1
    vec.y = -1.8
    vec.z = -0.6
    db.actor:set_actor_position(vec)
end


И вообщем ловлю вылет на том, что переменная "o" - nil. Не понимаю почему, ведь я всё сделал как надо и инициализировал story_id.
  Злобная реклама
Пятница, 06.10.2017, 15:00
Статус:
Сообщений: 666
Регистрация: 12.07.2017
Российская Федерация  Overfirst
Пятница, 06.10.2017, 15:12 | Сообщение # 8314
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

Цитата buffy ()
local o = level_object_by_sid("test_campfire_turn_off")

Функция level_object_by_sid должна получать число, а не строку.
  Злобная реклама
Пятница, 06.10.2017, 15:12
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Российская Федерация  atanda
Пятница, 06.10.2017, 15:15 | Сообщение # 8315
Статус:
Бывалый:
Сообщений: 672
Награды: 7
Регистрация: 12.07.2017

BoBaH_671,
то есть мне просто прописать story_id?
  Злобная реклама
Пятница, 06.10.2017, 15:15
Статус:
Сообщений: 666
Регистрация: 12.07.2017
Российская Федерация  Overfirst
Пятница, 06.10.2017, 15:16 | Сообщение # 8316
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

Цитата buffy ()
local vec = vector()
vec.x = 107.1
vec.y = -1.8
vec.z = -0.6

А это ещё что?

Юзай сразу:
Код
db.actor:set_actor_position(vector():set(107.1, -1.8, -0.6))

По-хорошему бы так:
Код
if dik == DIK_keys.DIK_S then
    local o = level_object_by_sid(50)
    if o ~= nil then
         o:disable_anomaly()
         db.actor:set_actor_position(vector():set(107.1, -1.8, -0.6)) -- можно вынести за пределы блока if ... end
    end
end
  Злобная реклама
Пятница, 06.10.2017, 15:16
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Российская Федерация  atanda
Пятница, 06.10.2017, 15:21 | Сообщение # 8317
Статус:
Бывалый:
Сообщений: 672
Награды: 7
Регистрация: 12.07.2017

BoBaH_671,
Хм, теперь просто вылетает без лога, наверное всё-таки нельзя потушить костёр скриптовыми методами.
  Злобная реклама
Пятница, 06.10.2017, 15:21
Статус:
Сообщений: 666
Регистрация: 12.07.2017
Российская Федерация  Overfirst
Пятница, 06.10.2017, 15:30 | Сообщение # 8318
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

Не знаю, не ковырялся с ТЧ по этой теме. Показал лишь передачу стори айди в функцию, насчет метода disable_anomaly для костров ничего не знаю. Может, объект надо было иначе получить или ещё что. Жди знающих по ТЧ платформе.

В ЗП костёр получают методом get_campfire(), которого в ТЧ нет, а включаются/выключаются он при помощи turn_on() и turn_off().
  Злобная реклама
Пятница, 06.10.2017, 15:30
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Российская Федерация  denis2000
Пятница, 06.10.2017, 15:39 | Сообщение # 8319
Время Альянса
Статус:
Ветеран:
Сообщений: 4070
Награды: 16
Регистрация: 19.07.2013

Цитата buffy ()
section_name = lights_hanging_lamp

Это не аномалия!
Цитата buffy ()
наверное всё-таки нельзя потушить костёр скриптовыми методами.

Можно! Получите правильно клиентский объект и все будет работать. Приведенный BoBaH_671 код полностью рабочий.
Сообщение отредактировал denis2000 - Пятница, 06.10.2017, 15:40
  Злобная реклама
Пятница, 06.10.2017, 15:39
Статус:
Сообщений: 666
Регистрация: 19.07.2013
Российская Федерация  atanda
Пятница, 06.10.2017, 16:07 | Сообщение # 8320
Статус:
Бывалый:
Сообщений: 672
Награды: 7
Регистрация: 12.07.2017

denis2000,
тогда я что-то не понимаю
  Злобная реклама
Пятница, 06.10.2017, 16:07
Статус:
Сообщений: 666
Регистрация: 12.07.2017
Беларусь  Vladov
Пятница, 06.10.2017, 18:47 | Сообщение # 8321
Статус:
Отмычка:
Сообщений: 130
Награды: 2
Регистрация: 23.11.2016

Что нужно изменить в конфиге что бы я покупал за одну и ту же цену? ЗП
  Злобная реклама
Пятница, 06.10.2017, 18:47
Статус:
Сообщений: 666
Регистрация: 23.11.2016
Российская Федерация  Ferveks
Пятница, 06.10.2017, 18:59 | Сообщение # 8322
Игра Душ: Начало
Статус:
Бывалый:
Сообщений: 646
Награды: 5
Регистрация: 29.06.2017

buffy, метод set_actor_position должен принимать в качестве аргументов еще и level_vertex_id и game_vertex_id
  Злобная реклама
Пятница, 06.10.2017, 18:59
Статус:
Сообщений: 666
Регистрация: 29.06.2017
Российская Федерация  Overfirst
Пятница, 06.10.2017, 19:03 | Сообщение # 8323
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

Ferveks, нет, не должен.
Код
function set_actor_position(vector);
  Злобная реклама
Пятница, 06.10.2017, 19:03
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Российская Федерация  Ferveks
Пятница, 06.10.2017, 19:12 | Сообщение # 8324
Игра Душ: Начало
Статус:
Бывалый:
Сообщений: 646
Награды: 5
Регистрация: 29.06.2017

BoBaH_671, Всё верно, прошу прощения, не должен.

Добавлено (06.10.2017, 19:12)
---------------------------------------------
buffy, уверен, что story_id в alife-файле не дублируется?

  Злобная реклама
Пятница, 06.10.2017, 19:12
Статус:
Сообщений: 666
Регистрация: 29.06.2017
Российская Федерация  Overfirst
Пятница, 06.10.2017, 19:13 | Сообщение # 8325
Статус:
Бывалый:
Сообщений: 1081
Награды: 19
Регистрация: 11.06.2015

Ferveks, дубли айдишников влекут за собой вылет с соответствующим логом, а у него такого вылета не было, раз дело дошло до использования этого стори айди.
  Злобная реклама
Пятница, 06.10.2017, 19:13
Статус:
Сообщений: 666
Регистрация: 11.06.2015
Поиск: