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

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


Halford

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

(изменено)

@editor46

 

 

snd_obj:play_at_pos(db.actor, vector():set(0,0,0), -- позиция, на которой проигрывается звук, замени на db.actor:position() 0, -- задержка в миллисекундах перед проигрыванием звука sound_object.s2d) -- тип звука

распространённая ошибка - сие верно для, сообщений - но не звуков.

Просто попробуй задать время так: 

 

function message_wolf()
local sactor = alife():actor()
local cactor = level.object_by_id(sactor.id)
local time_out = math.random(2,5)

cactor:give_game_news("%c[255,160,160,160]Сообщение:\\n%c[default]Это Волк,надо встретится.",
"ui\\ui_npc_unique",Frect():set(335,329,154,103),time_out*1000,5000)

local snd_obj = xr_sound.get_safe_sound_object([[device\decoder]])
snd_obj:play_no_feedback(db.actor, sound_object.s2d, time_out, vector(),1)

end

 

:D 

Изменено пользователем ted.80
  • Спасибо 1
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

@Han Sola, Вместо конкретного   

obj:set_condition(0.5) --состояние предмета 50%

пиши 

obj:set_condition(math.random(0.2,0.7)) --состояние предмета от 20% до 70%
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение

@dsh,  Сорри тогда вот так

obj:set_condition(math.random(2,7)/10) --состояние предмета от 20% до 70%
  • Полезно 2

Поделиться этим сообщением


Ссылка на сообщение

@Houdini_one, если я не ошибаюсь, тут косяк логики - если ты для нпс стал врагом, он на тебя обижен,

даже после выдачи поршня - "друг", ему нужно время "забыть обиду", тут либо перезагрузка нужна,

либо чтоб нпс потерял тебя из виду, на какое-то время

 

Поделиться этим сообщением


Ссылка на сообщение
(изменено)

@Змея, Оптимизируем и уберем все лишнее:

local tbl_novis_ruk={
 {-98.530151,-16.045967,-95.289208},
 {-105.350449,-16.292326,-22.830494},
 {-78.414719,-16.496992,-117.061790}
}

function novis_ruk_spawn()
 local a = tbl_novis_ruk[math.random(#tbl_novis_ruk)]
 alife():create("novis_ruk", vector():set(a[1],a[2],a[3])) 
end

 

Изменено пользователем ted.80
  • Согласен 2
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, Houdini_one сказал:

Нужна функция, во время который будет чёрный экран

 

58 минут назад, Змея сказал:

Как-то так наверное.


level.add_pp_effector("dark.ppe", 2003, false)

 

каков вопрос - таков ответ: Ты просил черный экран - тебе написали как запустить эффект,

 

37 минут назад, Houdini_one сказал:

твою функцию нужно дополнительно убирать ещё скриптом.

все правильно, эффект нужно отключать - это уже другая функция  :grin2:

если тебе надо все как на видео - тут куча функций

нанесение хита

эффект радиации

затемнение экрана

перенос актора

удаление затемнения

это уже 

45 минут назад, Змея сказал:

[sr_cutscene]

каждая катсцена срабатывает при определённых условиях

если тебе нужна своя, придется писать ручками или адаптировать имеющуюся

под свои нужды

  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение

@Возрождённый, Мамины бусы, пустышки, пружины и колобки не прописаны в спавне,

так как это "Абсолюты" (не знаю как правильно пишется)  Арты без отрицательных показателей,

я так думаю что-бы не ломать баланс, а спавнится мелочь - Хабар :grin2:

Поделиться этим сообщением


Ссылка на сообщение

 

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

В моде просто есть уже use

 

if obj:section() == "repair_kit" then
	alife():create("repair_kit", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
end

примерно так

  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение

@alex5773

Эта функция, вообще никакого отношения к ремкомплекту, не имеет

function actor_binder:on_use_car(obj)

 

Первую строчку либо удали, либо закоменти -- толку от неё ноль

--self.object:set_callback(callback.use_object, nil)
self.object:set_callback(callback.use_object, self.use_object, self)

 

Тут функция называется: use_callback(), а коллбэк вызывает: use_object 

function actor_binder:use_callback(obj, who)

 

вот и поставь в название функции

function actor_binder:use_object(obj)
    if string.find(obj:section(),"repkit_") then
        repair_kits.check_repair(obj)
    end
end

дальше смотри в скрипте 

repair_kits.check_repair(obj)

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, Dead_Land сказал:

[error]Description   : dBodyStateValide(b)

Кажется трабла с анимками

Поделиться этим сообщением


Ссылка на сообщение

@Robbie's Mods

Способ 1)

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


local Crank = db.actor:character_rank()

	if Crank < 300 then
		db.actor:give_info_portion("Выдача_инфопоршня")
	elseif Crank >= 300 and Crank < 600 then
		db.actor:give_info_portion("Выдача_инфопоршня")
	elseif Crank >= 600 and Crank < 900 then
		db.actor:give_info_portion("Выдача_инфопоршня")
	elseif Crank >= 900 then
		db.actor:give_info_portion("Выдача_инфопоршня")
	end

 

 

Способ 2)

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


local Crank = ranks.get_obj_rank_name(db.actor)

	if Crank == "novice" then
		db.actor:give_info_portion("Выдача_инфопоршня")
	elseif Crank == "experienced" then
		db.actor:give_info_portion("Выдача_инфопоршня")
	elseif Crank == "veteran" then
		db.actor:give_info_portion("Выдача_инфопоршня")
	elseif Crank == "master" then
		db.actor:give_info_portion("Выдача_инфопоршня")
	end

 

 

  • Полезно 4

Поделиться этим сообщением


Ссылка на сообщение

@Norman Eisenherz

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

; куртки
[novice_outfit_q]:novice_outfit
quest_item = true
[outfit_novice_m1_q]:outfit_novice_m1
quest_item = true
[bandit_outfit_q]:bandit_outfit
quest_item = true
[outfit_bandit_m1_q]:outfit_bandit_m1
quest_item = true

; броня наемников
[killer_outfit_q]:killer_outfit
quest_item = true
[outfit_killer_m1_q]:outfit_killer_m1
quest_item = true

; броня сталкеров
[stalker_outfit_q]:stalker_outfit
quest_item = true
[outfit_stalker_m1_q]:outfit_stalker_m1
quest_item = true
[outfit_stalker_m2_q]:outfit_stalker_m2
quest_item = true

; научные комбезы
[ecolog_outfit_q]:ecolog_outfit
quest_item = true
[protection_outfit_q]:protection_outfit
quest_item = true
[scientific_outfit_q]:scientific_outfit
quest_item = true

; броня "свободы"
[svoboda_light_outfit_q]:svoboda_light_outfit
quest_item = true
[outfit_svoboda_m1_q]:outfit_svoboda_m1
quest_item = true
[svoboda_heavy_outfit_q]:svoboda_heavy_outfit
quest_item = true

; броня "долга"
[dolg_outfit_q]:dolg_outfit
quest_item = true
[outfit_dolg_m1_q]:outfit_dolg_m1
quest_item = true
[dolg_scientific_outfit_q]:dolg_scientific_outfit
quest_item = true

; броня "монолита"
[monolit_outfit_q]:monolit_outfit
quest_item = true

; броня военных
[soldier_outfit_q]:soldier_outfit		; недовырезанная куртка x2 на 1-м блокпосте (Кордон)
quest_item = true
[specops_outfit_q]:specops_outfit
quest_item = true
[outfit_specnaz_m1_q]:outfit_specnaz_m1
quest_item = true
[military_outfit_q]:military_outfit
quest_item = true

; экзоскелеты
[exo_outfit_q]:exo_outfit
quest_item = true
[outfit_exo_m1_q]:outfit_exo_m1
quest_item = true

 

по крайней мере так все пашет )))

Поделиться этим сообщением


Ссылка на сообщение
5 часов назад, AndrewMor сказал:

Все бы ничего, но с началом выброса вылетает.

Выброса там и в помине нет, я скрестил только панорамик и динамическую погоду, загрузил эту сборку - выставил таймфактор "30000" ! 

прокрутил несколько месяцев погоды, все ок, ни выбросов - ни вылетов!

Ты эту сборку накатывал на какой-то мод? или что-то сверху накинул?

 

Поделиться этим сообщением


Ссылка на сообщение
3 минуты назад, AndrewMor сказал:

А тайм-фактор 30000 обязателен???

Нет -  это только для тестов

что пишется в логе при вылете?

Поделиться этим сообщением


Ссылка на сообщение
10 часов назад, nasar75 сказал:

Что где надо дописать?

Скинь оба файла   .script   и  .xml

 

Поделиться этим сообщением


Ссылка на сообщение
12 часов назад, nasar75 сказал:

Что где надо дописать?

Замени скрипт и все будет ок

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

local is_extensions = (log1~=nil)
console = get_console()

function start_menu(self)
	if level.present() and (db.actor ~= nil) and db.actor:alive() then
		console:execute("main_menu off")
	local wnd = ui_konsol_comand.konsol_comand(get_hud())
	level.start_stop_menu(wnd, true)
	end
end


class "konsol_comand" (CUIScriptWnd)

function konsol_comand:__init() super()
	self:InitControls()
	self:InitCallBacks()
	self:checkbox1_GetCheck()
end

function konsol_comand:__finalize()
end

function konsol_comand:InitControls()
	local xml = CScriptXmlInit()
	self:Init(0,0,1024,768)
	xml:ParseFile("ui_konsol_comand.xml")
	self.Static1 = xml:InitStatic("Static1", self)
	self.Static2 = xml:InitStatic("Static1:Static2", self.Static1)
	self.checkbox1 = xml:InitCheck("Static1:checkbox1", self.Static1)
	self:Register(self.checkbox1, "checkbox1")
	self:Register(xml:Init3tButton("Static1:button1", self.Static1), "button1")
end

function konsol_comand:InitCallBacks()
	self:AddCallback("checkbox1", ui_events.BUTTON_CLICKED, self.checkbox1_button_clicked, self)
	self:AddCallback("button1", ui_events.BUTTON_CLICKED, self.button1_button_clicked, self)
end

function konsol_comand:checkbox1_GetCheck()    --/true/false - включен/отключен checkbox1
	local mode = console:get_string("rs_stats")
	if mode == "off" then
		self.checkbox1:SetCheck(false)
	elseif mode == "on" then
		self.checkbox1:SetCheck(true)
	end
	return self.checkbox1:GetCheck()
end

function konsol_comand:checkbox1_button_clicked()
	local mode = self:checkbox1_GetCheck()
	if mode then 
		console:execute("rs_stats off")
		self.checkbox1:SetCheck(false)
	else
		console:execute("rs_stats on")
		self.checkbox1:SetCheck(true)
	end
end

function konsol_comand:button1_button_clicked()
	self:Hide()
end

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

function konsol_comand:OnKeyboard(dik, keyboard_action)
	CUIScriptWnd.OnKeyboard(self,dik,keyboard_action)
	if keyboard_action == ui_events.WINDOW_KEY_PRESSED then
		if dik == DIK_keys.DIK_ESCAPE then
			self:Hide()
		end
	end
	return true
end

 

 

  • Спасибо 1
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение
1 час назад, UriZzz сказал:

функции позволяющие отследить состояние (окр/закр) окон - инвентарь, пда, обыск, торг?

	return (db.actor:is_talking() or has_alife_info("ui_car_body") or has_alife_info("ui_inventory") or has_alife_info("ui_pda"))

а вот функцию принудительного закрытия надо покурить

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

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