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

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

4 минуты назад, Шипэтя сказал:

Извиняюсь за не знание, не судите я начинаю осваивать скрипты и по это много ошибаюсь, а может есть статейка где что то подобное рассказывается ?

Не видел я такой статьи, могу только скинуть пример как это сделано

Ссылка на комментарий
Поделиться на других сайтах

Подскажите, пожалуйста, как прописать логику враждебному нпс так, чтобы он не атаковал актора при приближении к нему, не сходил с точки спавна и постоянно проигрывал анимацию состояния транса (trans_0_idle_0)? Короче, примерно тоже самое, что и в тч, когда монолитовцы сидят вокруг кучи мусора и вращают головами.

Изменено пользователем Rod_K
Ссылка на комментарий
Поделиться на других сайтах

Подскажите, как добавить новую кнопку в пда?  Делаю по аналогии с кнопкой "центр на меченом", но кнопки не появляется. Пробовал удалить секцию кнопки "центр на меченом", но вылета не было, просто кнопка не появилась. Значит - её нигде не требуют. Но моя кнопка даже с готовой секцией не появляется. Неужели это тоже движковая тема? Всем спасибо

 OBNs8aTWS9M.jpg?size=1158x236&quality=96

God save Hatsune Miku!

Ссылка на комментарий
Поделиться на других сайтах

3 часа назад, Labadal сказал:

Неужели это тоже движковая тема?

Да.

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

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

naxac.gif

Ссылка на комментарий
Поделиться на других сайтах

6 часов назад, Labadal сказал:

Пробовал удалить секцию кнопки "центр на меченом", но вылета не было, просто кнопка не появилась. Значит - её нигде не требуют.

Часть элементов движковых интерфейсов строится по принципу

if (uiXml.NavigateToNode("какая-то нода xml", 0)) {	

Т.е. если их удалить из xml-конфига, элемент исчезает без вылета. Вернуть на место - появляется. Другие элементы требуются без проверок и их удаление из конфигов вызовет вылет.

Но в любом случае, и те и другие спрашивает движок. Чтобы эта "какая-то нода" была прочитана, движок должен ее запросить. В дефолтном ТЧ, емнип, чтением xml-конфигов любых в принципе, только движок и занимается.

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

Мод, где не бывает одинаковых путей - Судьба Зоны. На базе модифицированного движка OGSR Engine.

Полагаю, любой мод изначально стоит делать максимально хардкорным. Потому что, желающих оказуалить всегда хоть отбавляй - и без вас найдутся те, кто это сделает.

Не понимаю, что люди находят в модах без аномалий и без мутантов. Какой интерес бродить по абсолютно пустой и не меняющейся зоне?... Однако, таких много...

 

Ссылка на комментарий
Поделиться на других сайтах

Подскажите, почему получается вылет при определении переменной ini-файла:

local ltx="weapons\\upgrade.ltx"

local ini=ini_reader.iniReader(ltx) --вылет

local ini=ini_file(ltx) --тоже вылет

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

[error]Expression    : fatal error
[error]Function      : CInifile::r_section
[error]File          : Xr_ini.cpp
[error]Line          : 397
[error]Description   : Can't open section '%s'
[error]Arguments     : wpn_ak74

...

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

[wpn_ak74_kalibr]:wpn_ak74
ammo_class             = ammo_5.56x45_ss190, ammo_5.56x45_ap, ammo_5.56x45_gd
inv_name                = wpn-ak74_kalibr
description            = enc_kalibr_wpn_ak74
inv_grid_x         = 41
inv_grid_y         = 9
cost                    = 3200
silencer_name                  = wpn_addon_sil_556_ar
silencer_x                     = 225
silencer_y                     = 15
cheat_item = true

 

Думается, из-за ":wpn_ak74" после имени секции. Но как тогда явно указать такой файл для чтения из него?

Ссылка на комментарий
Поделиться на других сайтах

Только что, phalcor сказал:

Подскажите, почему получается вылет при определении переменной ini-файла:

Потому, что это надо делать как-то так:

local kn_ini = ini_file([[weapons\\upgrade.ltx]])

 

Только что, phalcor сказал:

Думается

А думается неправильно.

Наследовать секции в файлах, подключаемых таким образом, можно так же как и в обычных конфигах.

Мод, где не бывает одинаковых путей - Судьба Зоны. На базе модифицированного движка OGSR Engine.

Полагаю, любой мод изначально стоит делать максимально хардкорным. Потому что, желающих оказуалить всегда хоть отбавляй - и без вас найдутся те, кто это сделает.

Не понимаю, что люди находят в модах без аномалий и без мутантов. Какой интерес бродить по абсолютно пустой и не меняющейся зоне?... Однако, таких много...

 

Ссылка на комментарий
Поделиться на других сайтах

@Zander_driver Всё тоже самое - тот же вылет!

Пробовал так:

local kn_ini = ini_file([[weapons\\upgrade.ltx]]) --так вылета нет, но в log пишет: WARNING: CLocatorAPI::check_for_file file not found file z:\op21-repack\gamedata\config\weapons\\upgrade.ltx in files list (size = 83322) 

соответственно, так как файл не найден, то и чтения из него не будет...  Пробуем убрать один слэш:

local kn_ini = ini_file([[weapons\upgrade.ltx]]) --так вылет.  

Как же сделать присвоение переменной ini?!

Ссылка на комментарий
Поделиться на других сайтах

@phalcor, может так:

local kn_ini = ini_file("weapons\\upgrade.ltx")

 

P.S. Ищи примеры кода в папке "scripts", там всё есть.

Изменено пользователем WinCap
Ссылка на комментарий
Поделиться на других сайтах

Ситуация немного проясняется. Дело всё-таки в наследуемой секции.

Вот у меня в файле upgrade.ltx такая запись: [wpn_ak74_kalibr]:wpn_ak74

Если добавить наследуемую секцию [wpn_ak74] в ЭТОТ ЖЕ файл, всё работает! Если она в другом файле - вылет, расписанный мною выше.

Получается, подключить такой файл через переменную ini = ini_file(имя) невозможно?  

 

Ссылка на комментарий
Поделиться на других сайтах

@phalcor, нужно выбрать "вышестоящий" файл, тот в котором подключен upgrade.ltx. Рискну предположить, что это:

local kn_ini = ini_file("weapons.ltx")

Изменено пользователем WinCap
Ссылка на комментарий
Поделиться на других сайтах

@WinCap, попробовал weapons.ltx - там тоже вылет. 

В общем, у меня задача стояла такая - определить, является ли запрашиваемый параметр оружия "родным" (прописанным непосредственно под секцией это оружия), или же он наследуемый.

Пока решения не вижу.

 

Ссылка на комментарий
Поделиться на других сайтах

Только что, phalcor сказал:

Если добавить наследуемую секцию [wpn_ak74] в ЭТОТ ЖЕ файл, всё работает!

Естественно, родитель для наследования должен быть виден там, где ты его наследуешь.

Если ты хочешь, чтобы все выше-объявленные секции конфига были видны для твоей, то и подключай его к system.ltx, и доступ получай через system_ini().

Файлы, доступ к которым получается через ini_file(), подключаются как отдельная система конфига, независимая и несвязанная с system_ini. К ним может быть тоже что-то подключено через #include, но это все равно будет обособленная система.

Только что, phalcor сказал:

В общем, у меня задача стояла такая - определить, является ли запрашиваемый параметр оружия "родным" (прописанным непосредственно под секцией это оружия), или же он наследуемый.

Есть такая идея...

local ltx = system_ini()
function found_line(section, line)
  local lc = ltx:line_count(section)
  local a = 1
  while a < lc do
    local key = ''
    local value = ''
    local r = ltx:r_line(section, a, key, value)
    if r and key == line then
      return true
    end
    a = a + 1
  end
  return false
end

Методы line_count и r_line точно есть в OGSR (Это не я добавил). Есть ли они в оригинальном ТЧ, честно говоря не помню. Если есть, то должно сработать.

Если же нету, то боюсь, не существует способа узнать то что тебе нужно из скриптов.

Мод, где не бывает одинаковых путей - Судьба Зоны. На базе модифицированного движка OGSR Engine.

Полагаю, любой мод изначально стоит делать максимально хардкорным. Потому что, желающих оказуалить всегда хоть отбавляй - и без вас найдутся те, кто это сделает.

Не понимаю, что люди находят в модах без аномалий и без мутантов. Какой интерес бродить по абсолютно пустой и не меняющейся зоне?... Однако, таких много...

 

Ссылка на комментарий
Поделиться на других сайтах

@Zander_driver , спасибо за идею, методы у меня работают (ОП 2.1), вот только функция всегда выдаёт "true",

т.е. какой параметр ей в line не укажи, она его всегда найдёт в system_ini() - оно и правильно, ведь это обобщённое, так сказать хранилище всех параметров данной секции. 

Ну что жеж, констатируем - нет у нас методов против Кости Сапрыкина для решения моей задачи по определению, оригинален или наследуем параметр.

Ссылка на комментарий
Поделиться на других сайтах

7 минут назад, phalcor сказал:

вот только функция всегда выдаёт "true"

Это естественно. После прочтения ini-файла, наследуемые параметры копируются в конечную секцию, и присутствую в ней в полном составе.

 

7 минут назад, phalcor сказал:

нет у нас методов ... по определению, оригинален или наследуем параметр.

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

 

 

Изменено пользователем WinCap
Ссылка на комментарий
Поделиться на других сайтах

8 минут назад, WinCap сказал:

Если точно знать имя конечной секции, а также имя наследуемой, то можно прочитать параметр дважды - из одной и из другой секции.

А вот это идея. Остаётся узнать, а есть ли способ прочитать в переменную parent-секцию (то, что после двоеточия) - [wpn_ak74_m1]:wpn_ak74 ?

Ссылка на комментарий
Поделиться на других сайтах

4 минуты назад, phalcor сказал:

есть ли способ прочитать в переменную parent-секцию

Нет.

Если это действительно необходимо для реализации какой-то мега крутой идеи, то можно вручную составить таблицу наследований секций:

local tbl = {
  ["wpn_ak74_m1"] = "wpn_ak74",
  и т.д.
}

 

Изменено пользователем WinCap
Ссылка на комментарий
Поделиться на других сайтах

Только что, WinCap сказал:

можно вручную составить таблицу наследований секций:

Или написать некий алгоритм парсера, который просканирует конфиги и составит такую таблицу автоматически.

Реализацию можно подсмотреть во всяческих редакторах конфигов сталкера, которых уже множество расплодилось.

Мод, где не бывает одинаковых путей - Судьба Зоны. На базе модифицированного движка OGSR Engine.

Полагаю, любой мод изначально стоит делать максимально хардкорным. Потому что, желающих оказуалить всегда хоть отбавляй - и без вас найдутся те, кто это сделает.

Не понимаю, что люди находят в модах без аномалий и без мутантов. Какой интерес бродить по абсолютно пустой и не меняющейся зоне?... Однако, таких много...

 

Ссылка на комментарий
Поделиться на других сайтах

Здравствуйте. Как определить, принадлежит ли определенный гейм-вертекс текущей локации? ЗП.

Ссылка на комментарий
Поделиться на других сайтах

Присоединиться к обсуждению

Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.

Гость
Ответить в этой теме...

×   Вы вставили отформатированный текст.   Удалить форматирование

  Допустимо не более 75 смайлов.

×   Ваша ссылка была автоматически заменена на медиа-контент.   Отображать как ссылку

×   Ваши публикации восстановлены.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

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

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

AMK-Team.ru

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