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

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


Halford

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

(изменено)

Heroin Zero

вот так:

function GetHandling(section)
 local ltx = system_ini()
 local condition_shot_dec = ltx:r_float(section,"condition_shot_dec")
 local n = 0.01
 return normalize(n/condition_shot_dec)
end

1

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

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


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

Активировать свою свою схему в нужный момент - ничего сложного.

 

Потребуется использовать эвалуатор такого вида (простейший вариант):

class "my_evaluator" (property_evaluator)
function my_evaluator:__init(npc,name,storage) super (nil,name)
    self.st = storage
    self.st.active = false
end
function my_evaluator:evaluate()    
    return self.st.active == true
end

Переключать из своего скрипта можно будет так:

 

db.storage[npc:id()][my_scheme].active = true -- включаем
db.storage[npc:id()][my_scheme].active = false -- выключаем

my_scheme тут - это название схемы, указанное в modules.script

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


Ссылка на сообщение
Вылет: No such operator defined

Для game_object не определен оператор сравнения, так что сравнивать их нельзя.

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


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

Garry_Galler,

function teleport()
    local dist = 20
    local want_pos = device().cam_pos:add(device().cam_dir:mul(dist))
    local lvid = level.vertex_id(want_pos)
    local lpos = level.vertex_position(lvid)
    if want_pos:distance_to(lpos) < dist/2 then
        db.actor:set_actor_position(lpos)
        return
    end
    lvid = level.vertex_in_direction(db.actor:level_vertex_id(),db.actor:direction(),dist)
    lpos = level.vertex_position(lvid)
    db.actor:set_actor_position(lpos)
end

телепортирует только туда, где есть лэвэл вертексы.

Работает на ЧН и ЗП.

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

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


Ссылка на сообщение
(изменено)
malandrinus, Касательно отношений монстр-группировка,я знаю ,что репутация у монстров только нпс и актору меняется,а как в таком случае селана взаимная нейтральность монстров и "Монолита" ,а так же зомбированых или они то же монстрами считаются как Сидор

Это правильно заметил. Монстры разделены на виды, по ним и считаются отношения. У каждого монстра в конфиге есть параметр

 

species                = bloodsucker

у сталкеров

species                = human

 

SCRIPT,

тут все просто - делаешь новый вид, прописываешь его своему сталкеру, настраиваешь отношения.

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

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


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

@UnLoaded, функции нет, но можно прочитать через нетпакет.







function get_npc_name(obj)
	local m_s_name = ""
	if (obj) then
		if (isGameObject(obj)) then
			if (obj.character_name) then
				m_s_name = obj:character_name()
			end
		else
			local ob = get_obj(obj.id)
			if (ob and ob.character_name) then
				m_s_name = ob:character_name()
			else
				if (amk and amk.read_stalker_params and IsNpcStalker(obj)) then
					local tbl = amk.read_stalker_params(obj)
					if(tbl and tbl.charname) then
						m_s_name = tbl.charname
					end
				end
			end
		end
	end
	if (m_s_name == nil) then
		m_s_name = ""
	end
	if (m_s_name == "") then
		--m_s_name = get_npc_community(obj)
	end
	return m_s_name
end

 

 

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


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

@Max_Raf, Есть способ проверить расстояние\угол от камеры до головы.

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


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

 

 

Затем в логику НПС прописываю: snd = zvuk_ot_npc Но в итоге в игре ни звука от НПС, ни вылета. Молчит как рыба.   Что не так?  Спасибо.
 

Параметр snd доступен только для схемы remark, для других случаев есть функция play_snd_now

 

 

Касательно звуков - сделать %=play_snd_from_obj("звук")% по нужному условию - не ?

Для звука пука оно может и пойдёт, а для речи есть своя метода.

  • Согласен 1

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


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

@Max_Raf, можно проверить, прошел ли уже апдейт актора (загружаемые вещи должны идти до первого апдейта).


@Dennis_Chikin, то есть то, что людина не будет шевелить губами при разговоре, и звук будет идти из левой пятки - это нормально, и всем так стоит делать?


@HellRatz, функция для единичного проигрывания звука от НПС, не нужно ничего никуда прописывать:



-- персонаж толкает речь
function npc_play_snd(actor, npc, p)
	if p[1] then
		local id = sound_theme.id()
		local character_prefix = npc:sound_prefix()
		npc:sound_prefix("characters_voice\\")
		local cnt = npc:add_sound(p[1], 64, snd_type.talk, 2, 1, id, "bip01_head")
		npc:sound_prefix(character_prefix)
		if cnt == 0 then
			printf("npc_play_snd[%s] cant find sound [%s]",npc:name(),tostring(p[1]))
			return
		end
		npc:play_sound(id, 0, 0, 1, 0, 0)
	end
end


%=npc_play_snd(scenario\agroprom\agr_base_commander_1)%
  • Спасибо 2

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


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

@UriZzz, в конфиге аномалии ищи. Скрипт только вызывает движковую функцию спавна по времени.

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

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


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

dPlayer, он просто виснет в первой ремарке и на этом, собственно, все. Это, такая, на самом деле, подлость в ТЧ.

Что за подлость, а я не в курсе? По-моему разрабам просто не приходила в голову идея, что кому-нибудь через далёкие года захочется перевооружить того зелёненького человечка, и они, как это ни удивительно, сделали ему анимацию только для обреза.

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


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

Короче, переделывать всю систему от начала и до конца.

В ЧНЗП вполне удобная система, хоть и требует некоторой доработки. А этого уродца лучше отправить на свалку.

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


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

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

На самом деле там таких схем 2 штуки: одна для алайфа, другая для комбата. Подбирается только оружие, если определится, что оно "лучше" имеющегося.

  • Полезно 1

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


Ссылка на сообщение
(изменено)
14 часов назад, =VENOM= сказал:

Анимация работает только с оружием класса WP_BM16

Класс не имеет значения. За тип используемой анимации для оружия отвечает параметр animation_slot

Конкретно у этой анимации отсутствуют варианты для разных слотов.

 

Изменено пользователем Bak
  • Спасибо 1
  • Полезно 1

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


Ссылка на сообщение
17 часов назад, Jekyll сказал(а):

пищалку детектора при приближении к аномалии и треск радиометра

В движке, смотри CustomDetector.cpp Частота сигнала настраивается в конфиге отдельно для каждой зоны.

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

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


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

@Houdini_one Удали строку small_object, и у объекта и у обломков. Если нужно также, чтобы обломки контактировали друг с другом, убери not_collide_parts.

  • Полезно 1

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


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

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

AMK-Team.ru

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