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

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

Приветствую товарищи, объясните мне недалекому человеку:

Есть две одинаковые секции в рюкзаке ГГ.

 

 

---это в апдейте

local slot_1
local slot_2
local full_slots

 

local tab = { --- таблица с секциями
    "...",
}

 

if slot_1 ~= nil and slot_2 ~= nil then
full_slots = true
else
full_slots = false
end


----- раздаем id

     for _, section in pairs (tab) do
           local item = db.actor:object(section)
                   if item then

                   if full_slots == false then

                      if slot_1 == nil then
                           slot_1 = item:id()
                           db.actor:give_game_news("Слот 1 занят", "ui\\ui_pda_news", Frect():set(0,300,180,100), 0, 10000)
 
                     end
                     if slot_2 == nil and item:id() ~= slot_1 then   -- ПОЧЕМУ ПРИ НАЛИЧИИ ОДНОГО ПРЕДМЕТА СРАБАТЫВАЕТ И ЭТО???
                           slot_2 = item:id()
                           db.actor:give_game_news("Слот 2 занят", "ui\\ui_pda_news", Frect():set(0,300,180,100), 0, 10000)
                      end

                   else

                      if item:id() ~= slot_1 and  item:id() ~= slot_2 then
                          alife():release(alife():object(item:id()), true)
                      end
                   end

                   end
     end

 

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

Спасибо за понимание...


Вообще, можно ли присвоить предмету индивидуальный номер, и по этому номеру удалить предмет???

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

kmsk

 

  if slot_2 == nil and item:id() ~= slot_1 then

Потому что item:id() будет давать одно и то же число, при выполнении цикла для каждого отдельного элемента вашей таблицы, то есть:

1 item -  item:id() = постоянное id что бы вы там не присваивали

2 item - аналогично, только id уже другой.

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

Как можно сделать динамическм указание [[путь\]], то есть к [[]] добавить окончание из переменной со строковым значением perem_string = "дин.окончание пути"?

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

к [[]] добавить окончание из переменной со строковым значением

Так же, как и к любой другой строке:

[[string1]]..'string2'

 

почему при нахождении одного предмета, срабатывает как два?

Потому что ты пытаешься получить объект из инвентаря по секции и функция возвращает один и тот же объект.

Используй либо iterate_inventory, либо цикл "for i=0, db.actor:object_count()-1 do...".

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

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

naxac.gif

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

Извиняюсь за глупый вопрос, просто первый раз к звукам притронулся.

Так вот, а зачем пути к звукам используют как [[abc/def]] ?

А не просто строкой "abc/def" ?

 

И ещё один вопрос в догонку, реально ли сделать так, чтобы при прокрутке игрового времени, допустим во время сна, чтобы вокруг(на тек. левеле) все действия ускорялись- то есть нпс быстрее бегали, физика ускоряла движения объектов и т.д и т.п., чтобы после того же сна, мы видели что было реальное увеличение скорости течения времени(а не как сейчас- всего лишь прокрутка циферок времени)

Понятное дело, что для этого придётся изменять двиг+ такое кратковременное ускорение течения времени повлечёт в такие моменты колоссальную нагрузку

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

@FonSwong,

обычно так пишут, когда в пути имеется "бэкслэш", т.е. символ "\". Этот символ специальный, в комбинации со следующим за ним он имеет определённый эффект. Например "\n" - это перевод строки, "\t" - символ табуляции и т.д. Набери в гугле "escape последовательности" и узнаешь больше. Так вот эти специальные комбинации в Lua работают только если строка заключена в кавычки. Чтобы не использовать эти специальные комбинации, а трактовать каждый символ строго как он есть в Lua можно заключить строку в двойные квадратные скобки. Для путей, где обратные слэши встречаются постоянно, это особенно удобно.

 

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

 

Плагины Total Commander для работы с игровыми архивами:

Архиваторный плагин (для работы с одиночным архивом): link1 link2

Системный плагин (для распаковки установленной игры): link1 link2

 

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

Уточню: офлайн-события вполне можно ускорить. То есть, неписи, которые куда-то бегут в офлайне - добегут, стэйты гулагов изменятся, и т.д.

В онлайне - отработают те события, которые привязаны к game_time.

 

Передвижения неписей в онлайне и бои между ними - нет.

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

Приветствую уважаемых специалистов. 

Сам ни разу не скриптёр\программер. Поэтому прошу помощи. Есть мод на ТЧ - "Ремкомплект" - там три скрипта:

https://cloud.mail.ru/public/EzpC/A5f3UbsKV

 

Хотел уменьшить количество деталей после "разборки" стволов, но не смог. Я так понял, что кол-во деталей зависит от кондиции ствола. Но не нашёл ту дельту которую нужно уменьшать. Буду очень признателен за помощь.

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

@FonSwong, так же можно использовать и путь в кавычках, только экранируя спец. символ "бэкслэш" еще одним "бэкслэшем":

строки из sound_theme.script

ph_snd_themes["prapor_music"] = {"characters_voice\\scenario\\prapor\\prapor_music_1",
				 "characters_voice\\scenario\\prapor\\prapor_music_2",
...}

ph_snd_themes["dolg_speech"] = {[[characters_voice\scenario\bar\barman_megafon\megaphone_barman_1]],
				[[characters_voice\scenario\megafon\megafon_music_1]],
...

Т.е. "characters_voice\\scenario..." идентичен [[characters_voice\scenario...]]

  • Полезно 1
 

10.png

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

@Kondr48, можно добавить в класс окна метод обновления.

function class_name:Update()
	CUIScriptWnd.Update(self)

	local h = level.get_time_hours()
	local m = level.get_time_minutes()
	self.st_time:SetText(string.format("%02d:%02d", h, m))
end
  • Спасибо 1
  • Полезно 1
Ссылка на комментарий

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

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

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

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

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

Войти

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

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

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