Jump to content

Recommended Posts

lordmuzer    722

Можно проще

local is_running = get_actor_obj():is_actor_sprinting()

if is_running then

end

Spoiler

.def("is_actor_normal",                        &CActor::is_actor_normal)
.def("is_actor_crouch",                        &CActor::is_actor_crouch)
.def("is_actor_creep",                        &CActor::is_actor_creep)
.def("is_actor_climb",                        &CActor::is_actor_climb)
.def("is_actor_walking",                    &CActor::is_actor_walking)
.def("is_actor_running",                    &CActor::is_actor_running)
.def("is_actor_sprinting",                    &CActor::is_actor_sprinting)
.def("is_actor_crouching",                    &CActor::is_actor_crouching)
.def("is_actor_creeping",                    &CActor::is_actor_creeping)
.def("is_actor_climbing",                    &CActor::is_actor_climbing)
.def("is_actor_moving",                        &CActor::is_actor_moving)

 

  • Thanks 1

Share this post


Link to post
Share on other sites
Fenrir02    196

Как можно заставить этот статик мигать -

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

	hud = get_hud()
	act = db.actor
	if act.health < 0.8 and act.health > 0.4 then
		hud:AddCustomStatic("hud_health_static", true):wnd():SetColor(GetARGB(255,0,255,0))
	else
		hud:RemoveCustomStatic("hud_health_static")
	end

 

 


Важнейшая задача цивилизации - научить человека мыслить.

Share this post


Link to post
Share on other sites
AndreySol    100
21 минуту назад, Fenrir02 сказал:

заставить этот статик мигать

В xml-описании "hud_health_static" добавить соответствующие теги. Подсмотреть в оригинальных статиках как это сделать.

  • Thanks 1

Share this post


Link to post
Share on other sites
Overfirst    610
<text_on_screen_center x="212" y="300" width="600" height="68" complex_mode="1" light_anim="ui_slow_blinking_alpha">
	<text font="graffiti32"  r="240" g="217" b="182" a="255" align="c"/>
</text_on_screen_center>

Световая анимация ui_slow_blinking_alpha. Не знаю, есть ли она в ТЧ, если вопрос по этой платформе.

  • Thanks 1

Ранее был известен под ником BoBaH_671.

Share this post


Link to post
Share on other sites
dPlayer    345

Что-то не доходит, как выдать поршень при подборе предмета в чистом поле без задания? Нужны какие-то аргументы в подобной ф-ции?

function have_krots_flash(task, objective)
    if db.actor:object("krot_flash") ~= nil then
       db.actor:give_info_portion ("agr_krot_task_complete")
       return true
    end   
	return false
end

 


westwood.gif

Share this post


Link to post
Share on other sites
Fenrir02    196

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

function release_random_item(num)
	local actor = db.actor
	local cnt = actor:object_count()
	if cnt < num then return end
	for i=1,num do
		local item = actor:object(math.random(0, cnt-1))
		local sobj = alife():object(item:id())
		if sobj then
			alife():release(sobj,true)
			cnt = actor:object_count()
		end
	end
end

Помогите сделать таблицу предметов, которые нельзя удалять.


Важнейшая задача цивилизации - научить человека мыслить.

Share this post


Link to post
Share on other sites

Здравствуйте, подскажите как в момент спавна скриптом обьекта, задать ему направление?

Share this post


Link to post
Share on other sites
Graff46    417

@Fenrir02, Как предметы указывать будите? (ид, имя секции, .... ?)

 

@stalkergoshawk, Если x-ray extensions есть в движке, то у серверного объекта есть свойство angle, к нему нужно приравнять вектор, который укажет направление.

alife():create("stalker", vector():set(0,0,0,), 0, 0).angle = vector():set(0, 1.5, 0)

Если x-ray extensions нет, то нэт-пакетами.


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

x-ray extensions нет, про net_packet я уже думал но пока не смог разобраться. нет готовых вариантов как сделать с net_packet?

Share this post


Link to post
Share on other sites
Fenrir02    196
5 минут назад, Graff46 сказал:

Как предметы указывать будите? (ид, имя секции, .... ?)

Имя секции.


Важнейшая задача цивилизации - научить человека мыслить.

Share this post


Link to post
Share on other sites
Charsi    436
7 часов назад, dPlayer сказал:

как выдать поршень при подборе предмета в чистом поле без задания

Создай предмет на классе II_DOC и в его свойстве Info portion можешь указать нужный поршень.

Share this post


Link to post
Share on other sites
dPlayer    345

@Charsi, а это на тч работает? Не нашел примера в оригинале. Вот так что-то нет, хотя предмет спавнится в трупе:

class = II_DOC

info_portion = info_1

 

Edited by dPlayer

westwood.gif

Share this post


Link to post
Share on other sites
Kirgudu    645

@dPlayer, как вариант - событие on_item_take, дальнейший анализ взятого и выдача инфопорции при необходимости.

Share this post


Link to post
Share on other sites
dPlayer    345

@Kirgudu, это надо вставлять проверку в бинд_сталкер на скрипт с выдачей поршня?

  • Согласен 1

westwood.gif

Share this post


Link to post
Share on other sites
Kirgudu    645

@dPlayer, ну конечно. Вот сюда: actor_binder:on_item_take (obj). А дальше через секцию объекта или по другим нужным критериям.

Возможно, метод @Charsi более оптимален, но это я подтвердить или опровергнуть не могу.

Share this post


Link to post
Share on other sites
Graff46    417

@stalkergoshawk

function set_dir(id, dir) -- установка дирекции (поворота) объекта через нэт-пакет (нужны правки скриптов с типами объектов)
local sobj = alife2:object(id) 
	if sobj then 
		local pk = get_netpk(sobj, 0) 
		if pk:isOk() then 
			return pk:setCallback( { direction = dir } )
		end
	end
	return false
end

Нужно подключить модуль m_netpk.script

 


fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites
Graff46    417

@Fenrir02

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

function release_random_item(num)
	local Tabl = {["section"] = true, ["section2"] = true} -- таблица необрабатываемых предметов по их секциям
	
	local actor = db.actor
	local cnt = actor:object_count()
	if cnt < num then return end
	for i=1, num do
		local item = actor:object(math.random(0, cnt-1))
		local sobj = alife():object(item:id()) 
		if sobj and not Tabl[sobj:section_name()] then
			alife():release(sobj,true)
			cnt = actor:object_count()
		end
	end
end

 

Edited by Graff46
  • Thanks 1
  • Полезно 1

fe2f085fa6ec930af82f5856df7e561b.jpg

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


AMK-Team.ru

×
×
  • Create New...