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

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

Anonim, чекнуть в смысле установить? Из логики рестриктора вызови:

function set_indoor_weather()
  level.set_weather("indoor")
end

---
Вопрос по таймерам Artos`а. Называется идиотизм там, где его не ждал, никак не могу заставить их сохранятся, при сейв/лоаде с активным таймером - безлог. Что прописывать, если мне не нужен se_stor вообще? Желательно их сохранять в скриптовом хранилище (7 патч), но пока хотя бы в пстор актора чисто что б работало :)

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

 

 

Что прописывать, если мне не нужен se_stor вообще? Желательно их сохранять в скриптовом хранилище (7 патч), но пока хотя бы в пстор актора чисто что б работало
Просто не подключай se_stor и запись будет через пстор.

 

 

 

 

при сейв/лоаде с активным таймером - безлог.

Может что-то неправильно подключил, все заново подключи.

  • Спасибо 1
Ссылка на комментарий

Доброго времени суток. Такой вопрос, как обновить содержимое gui окна? Платформа ЗП.

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

Помогите с кодом. Нужно что бы по нажатию на кнопку save происходило сохранение с именем из текста введенного в edit1, дело в том, что стандартная функция из скрипта возвращает пустую строку.
скрипт 

 

class "season" (CUIScriptWnd)

function season:__init() super()
	self:InitControls()
	self:InitCallBacks()
end

function season:__finalize()
end

function season:InitControls()
	local xml = CScriptXmlInit()
	self:Init(0,0,1024,768)
	xml:ParseFile("season.xml")
	self.frame1 = xml:InitFrame("frame1", self)
	self.edit1 = xml:InitEditBox("edit1", self)
	self.Static1 = xml:InitStatic("Static1", self)
	self:Register(xml:Init3tButton("frame1:save", self.frame1), "save")
	self:Register(xml:Init3tButton("frame1:otmena", self.frame1), "otmena")
	self:Register(xml:Init3tButton("frame1:next", self.frame1), "next")

end

function season:InitCallBacks()
	self:AddCallback("save", ui_events.BUTTON_CLICKED, self.save_button_clicked, self)
	self:AddCallback("otmena", ui_events.BUTTON_CLICKED, self.otmena_button_clicked, self)
	self:AddCallback("next", ui_events.BUTTON_CLICKED, self.next_button_clicked, self)
end

function season:edit1_GetText()    --/получить введенный текст в edit1
	self.text = self.edit1:GetText()
end

function season:save_button_clicked()
	get_console():execute("save" .. self.edit1:GetText())
end

function season:otmena_button_clicked()
	self:GetHolder():start_stop_menu(self, true) 
end

function season:next_button_clicked()
	get_console():execute	("disconnect")	
	level.start_stop_menu(var, true)
end

function season:Hide()
	self:GetHolder():start_stop_menu(self, true)
end
 

 

 

Изменено пользователем Graff46
Ссылка на комментарий
@Graff46, если текст введён, то не может GetText возвращать пустую строку. А не сохраняется игра, потому что после команды save нужен пробел. Изменено пользователем naxac

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

naxac.gif

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

День добрый, комрады. 
Ковыряю ЧН, смотрю схему ограбления на блокпостах на Свалке. Там в sr.robbery вызывается схема с изъятием всего инвентаря у Гг через     db.actor:inventory_for_each(get_actor_inv)

Возникает вопрос: нельзя сделать изъятие по классу снаряжения, чтобы изымали автомат\пистолет\броню и т.д.?

Не соответствует. N6260

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

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

А если есть желание изъятие восстановить, то ничто не мешает сделать нужный фильтр. Например, в функцию get_actor_inv добавить проверку на класс и в список для изъятия помещать только удовлетворяющие условиям предметы. Или сделать то же самое уже после, при переборе списка. Весь нужный код там уже практически есть, надо только доработать напильником согласно своим требованиям.

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

Kirgudu

Закомментировано после патча 1.5.03, я же хочу вернуть оригинальную схему с доработками.

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

 local function transfer_object_item(item)
        if item:section() ~= "wpn_binoc" and item:section() ~= "wpn_knife" and item:section() ~= "device_torch" and item:section() ~= "wpn_g36" then

        db.actor:transfer_item(item, inv_box_1) 

Но не могу придумать как сделать, чтобы вместо item:section() ~= "wpn_g36"  и т.д. вид оружия брался из таблицы, что то типо item:section() ~= "wpn_table", чтобы не увеличивать размеры кода. Никто не подскажет код?

Не соответствует. N6260

Ссылка на комментарий
    local table = {
                    "wpn_knife",
                    "device_torch",
                    "wpn_pm",
                    }
...
    for k,v in pairs(table) do
        if item:section() ~= v then
...

Первое, что в голову приходит. :russian_ru:

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

@ZeeK,

local tbl = {
  ["wpn_knife"] = true,
  ["wpn_torch"] = true,
  ["wpn_pm"]    = true
}
...
if not tbl[item:section()] then
...
end
Изменено пользователем Kirgudu
Ссылка на комментарий
Kirgudu

Из огня да в полымя, с твоим кодом вылетает с такой аргументацией:

xr_logic: can't call sr_robbery.set_scheme()
Arguments     : LUA error: ....А.Л.К.Е.Р. - Чистое Небо\gamedata\scripts\_g.script:975: bad argument #2 to 'format' (string expected, got nil)
 
Сам я сделал в стиле совета Jurok, но тоже столкнулся с проблемами:
local table = {
                                        "wpn_colt1911_up2",
                                        "wpn_g36",
                                        }
 
for k,v in pairs(table) do
        if item:section() ~= v then

С таким кодом не изымается у ГГ объект из таблицы, если он только там один прописан. Если же их 2 и более, то изымается все.

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

Не соответствует. N6260

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

Камрады, здравствуйте!

Прошу помощи у скриптовиков. Есть у меня в xr_motivator-е, в колбеке на смерть непися, вот такой кусок кода:

 

if bind_power_supply then
		local sobj = alife():object(self.object:id())
		local np = net_packet()
		local vis = ""

		sobj:STATE_Write(np)
		np:r_seek(4)
		vis = np:r_stringZ() -- profile
		np:r_advance(4)
		vis = np:r_stringZ() -- class
		np:r_advance(12)
		vis = np:r_stringZ() -- charname
		np:r_advance(18)
		vis = np:r_stringZ() -- custom
		np:r_advance(8)
		vis = np:r_stringZ() -- visual
		if string.find(vis,"exo") then
			spawn.inv("power_supply",self.object:id())
			local batt_max = math.random (0,2)
			for i = 1, batt_max do
				spawn.inv("power_core",self.object:id())
			end
		end
	end

 

 

 

В некоторых ситуациях, при смерти непися, sobj в строке sobj:STATE_Write(np) возвращает nil и естественно крашит игру.

 

Помогите забороть, пожалуйста

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

---------------------------------

www.amk-zone.de

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

Wlad777, 

сам вылет побороть достаточно легко, просто поставив проверку типа if sobj:STATE_Write(np) ~= nil then, но естественно и батарейка у экзоскелетчиков(судя по коду) спавнится в таких случаях тоже не будет. :) 

 


А как в GUI вывести список предметов из инвентаря? То есть нужен кликабельный список, при нажатии на элемент чтобы вызывалась функция.

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

@Kondr48, прежде чем советовать, неплохо бы самому подучить матчасть. Очевидно, что sobj = nil, а не результат вызова серверного метода. И проверка нужна такая:

local sobj = alife():object(self.object:id())
if sobj ~= nil then
...
end
@Wlad777, если серверный объект не найден, значит и спавнить негде. Так что такая проверка вполне подойдёт.

 

нужен кликабельный список, при нажатии на элемент чтобы вызывалась функция

Поищи здесь информацию по CUIListWnd и CUIListItem (CUIListItemEx). На элементы списка можно будет повесить коллбек ui_events.LIST_ITEM_CLICKED - вот и возможное решение искомой задачи.
  • Согласен 1
  • Полезно 1
Ссылка на комментарий

 

 

Wlad777, если серверный объект не найден, значит и спавнить негде. Так что такая проверка вполне подойдёт.

 

Это первое, что мне пришло в голову.

 

Меня просто приводит в недоумение, куда серверный объект делся то.

Вот ходит непись, под логикой, всё нормально делает, реагирует на окружение и ГГ.

Стреляю ему в голову - вылет.

Если удаётся его ранить, валяется, как ему положено, стонет. Среляю ему раненному в голову - вылет. Даю ему аптечку - вылечивается, ходит дальше как ни в чём не бывало.

Куда пропадает серверный объект при его смерти?

---------------------------------

www.amk-zone.de

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

Удаляется, вестимо.
Надо смотреть, что идёт перед добавленным куском кода. Причём не только в скрипте, но и, например, в секции on_death логики НПС, если обработка логики в мотиваторе идёт перед своим кодом.

В общем, надо внимательно проинспектировать свои правки.

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

 

 

Kondr48, прежде чем советовать, неплохо бы самому подучить матчасть. Очевидно, что sobj = nil

Да, так и есть, прошу прощения, ну собственно потому и спрятал под спойлер)

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

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

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

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

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

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

Войти

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

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

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