Перейти к содержанию

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

 
 

Как сделать полоску хп у определённого нпс/мутанта?

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


Ссылка на сообщение
Поделиться на другие сайты
 

its boomer Смотрите мод SGM 2.2 функция show_boss_health_bar:

Спойлер

-- 'Вывод на экран полосы прогресса. Жизнь босса.
function show_boss_health_bar(hud_name,xml_name,xml_sect,show_func)
   local hud=get_hud()
   local xml=CScriptXmlInit()
   if hud:GetCustomStatic(hud_name)==nil then
        add_hud(hud_name)
        xml:ParseFile(xml_name)
        boss_health_bar=xml:InitProgressBar(xml_sect,hud:GetCustomStatic(hud_name):wnd())
        if hud:GetCustomStatic(hud_name)~=nil then
            add_hud(hud_name)
            bar_level=show_func
            if bar_level~=nil then
              boss_health_bar:Show(true)
              boss_health_bar:SetProgressPos(bar_level)
            end
        end
   elseif hud:GetCustomStatic(hud_name)~=nil then
        xml:ParseFile(xml_name)
        add_hud(hud_name)
        bar_level=show_func
        if bar_level~=nil then
           boss_health_bar:Show(true)
           boss_health_bar:SetProgressPos(bar_level)
        end
    end
end

 

 

Изменено пользователем denis2000
  • Лайк 2

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


Ссылка на сообщение
Поделиться на другие сайты
 

Такой вопрос, есть у меня слепая собака с поясом с взрывчаткой (модель конечно же), можно-ли сделать, чтобы она подбегала к ГГ и взрывалась, если не убить раньше, чем она приблизится к ГГ на N-ное расстояние? Этакие собаки Монолита. 

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

Волк волку- волк, человек человеку- собутыльник.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Ayden Что-то типа такого в bind_monster.script:

Спойлер

local expl_monster_dist = 2
local monster_name = "expl_monster_name"
local expl_id = 0

function generic_object_binder:update(delta)
	
	....

	if not object_alive then
		return
	end
	
	--если имя секции монстра содержит monster_name
	if string.find( self.object:name(), monster_name ) ~= nil then
		--если расстояние до такого монстра менее expl_monster_dist
		if distance_between_safe(db.actor,self.object) < expl_monster_dist then
			monster_pos = self.object:position()
			--спавн взрывчатого объекта expl_charge в координатах монстра
			expl_id = create_explosive_on_level("expl_charge",monster_pos.x,monster_pos.y,monster_pos.z+0.01,self.object:level_vertex_id(),self.object:game_vertex_id())
			--подрыв взрывчатого обхъекта
			if expl_id ~= 0 then
				detonate_explosive(expl_id)
				--убить монстра
				self.object:kill(db.actor)
                expl_id = 0
				return
			end
		end
	end
	
	....
	
end


--Установка взрывчатки
function create_explosive_on_level(who,x,y,z,lv,gv)
	obj=alife():create(who,vector():set(x,y,z),lv,gv)
	if obj then
		return obj.id
	end
	return 0
end

--Детонация взрывоопасного предмета, по ID.
function detonate_explosive(obj_id)
	if obj_id~=nil and level.object_by_id(obj_id)~=nil then
		level.object_by_id(obj_id):explode(0)
	end
end

 

 

Изменено пользователем denis2000
  • Лайк 1

Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


Ссылка на сообщение
Поделиться на другие сайты
 

прописал несколько предметов чтобы их продавать тогровцам

проверяю и при попытке торговать вылетает ошибка trade_don't_ make даже если предмет оригинальный, но если я покупаю и него что-то него к примеру булат стоимостью 30000 то он покупает товар на эти 30000 

что делать?

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


Ссылка на сообщение
Поделиться на другие сайты
 

стрелок_2009 скинь файл трейда торговца, проверь все связанные файлы на орфографические ошибки


176072166_.png.a2e29737873a8e94c0ee4916cca82542.png

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


Ссылка на сообщение
Поделиться на другие сайты
 
5 минут назад, Ostrov 64 bit сказал:

стрелок_2009 проверь все связанные файлы на орфографические ошибки

прикол в том что это происходит даже с обычными нпс, поэтому скорее поломалось что-то в файлах торговли

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


Ссылка на сообщение
Поделиться на другие сайты
 

стрелок_2009 проверяй файлы торговли, либо удали их. Ибо скорее всего ты что-то не то изменил

  • Жму руку 1

176072166_.png.a2e29737873a8e94c0ee4916cca82542.png

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


Ссылка на сообщение
Поделиться на другие сайты
 
7 минут назад, Ostrov 64 bit сказал:

стрелок_2009 проверяй файлы торговли, либо удали их.

переместил файлы в другое место, все так же не работает

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


Ссылка на сообщение
Поделиться на другие сайты
 

стрелок_2009 пересмотри файлы которые ты редактировал, где-то есть ошибка из-за которой у тебя вылет


176072166_.png.a2e29737873a8e94c0ee4916cca82542.png

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


Ссылка на сообщение
Поделиться на другие сайты
 
11 минут назад, Ostrov 64 bit сказал:

стрелок_2009 где-то есть ошибка из-за которой у тебя вылет

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

стрелок_2009 так у тебя проблема с вылетом или с чем?


176072166_.png.a2e29737873a8e94c0ee4916cca82542.png

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


Ссылка на сообщение
Поделиться на другие сайты
 
2 минуты назад, Ostrov 64 bit сказал:

стрелок_2009 так у тебя проблема с вылетом или с чем?

 пытаюсь продать предмет кому либо - ошибка trade_don't_ make

покупаю у него предмет - могу продать только на ту сумму что заплатил за предмет

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


Ссылка на сообщение
Поделиться на другие сайты
 

стрелок_2009 попробуй все файлы трейда удалить и вставить новые


176072166_.png.a2e29737873a8e94c0ee4916cca82542.png

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


Ссылка на сообщение
Поделиться на другие сайты
 
Только что, Ostrov 64 bit сказал:

стрелок_2009 попробуй все файлы трейда удалить и вставить новые

пробовал, толку 0!!!


Дополнено 0 минут спустя
1 минуту назад, Ostrov 64 bit сказал:

стрелок_2009 попробуй все файлы трейда удалить и вставить новые

чтобы понятней было

ss_user_05-01-26_13-27-41_(zaton).jpg

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


Ссылка на сообщение
Поделиться на другие сайты
 

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

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

 1540412914_ezgif.com-optimize(1).gif.ec7250e918399802d8fe85d6d4fd7081.gif

«Если долго мучиться, что-нибудь получится»
Охотник за артефактами

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


Ссылка на сообщение
Поделиться на другие сайты
 
9 минут назад, Pavel2000 сказал:

стрелок_2009 у вас баланс отрицательный

типо слишком много денег? если будет меньше то заработает?


Дополнено 13 минуты спустя
23 минуты назад, Pavel2000 сказал:

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

реально помогло, спасибо большое за помощь

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


Ссылка на сообщение
Поделиться на другие сайты
 

стрелок_2009 да ты че мужик с такими деньгами конечно у тебя вылет будет,авхваххвахахва


176072166_.png.a2e29737873a8e94c0ee4916cca82542.png

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


Ссылка на сообщение
Поделиться на другие сайты
 
54 минуты назад, Ostrov 64 bit сказал:

стрелок_2009 да ты че мужик с такими деньгами конечно у тебя вылет будет

1 - не вылет а ошибка

2 - я для тестов брони и ее апгрейдов делал еще лет 100 назад

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


Ссылка на сообщение
Поделиться на другие сайты
 

Всем привет. Ответьте пожалуйста, существует ли исходный код редактора X-Ray SDK 0.7 для ЗП.
Чистый. Без супер-пупер правок и всего такого. Просто оригинальный исходный код?
И если есть, то где его можно скачать?

Изменено пользователем Фёдор М.

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


Ссылка на сообщение
Поделиться на другие сайты
 

Можно ли как-то "зафиксировать" труп рандомного сталкера с уникальным предметом в инвентаре, чтобы уборщик его не удалял, пока этот предмет не забрал игрок? То есть, допустим, есть бандит, у которого в инвентаре лежит записка. Мы его убили. Пока мы не забрали записку, труп бандита удаляться не должен, даже если игрок с локации ушёл. Как только забрали, труп становится обычным и рано или поздно удаляется.

 

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


Ссылка на сообщение
Поделиться на другие сайты
 
46 минут назад, Hounfor сказал:

Можно ли как-то "зафиксировать" труп рандомного сталкера с уникальным предметом в инвентаре, чтобы уборщик его не удалял, пока этот предмет не забрал игрок? То есть, допустим, есть бандит, у которого в инвентаре лежит записка. Мы его убили. Пока мы не забрали записку, труп бандита удаляться не должен, даже если игрок с локации ушёл. Как только забрали, труп становится обычным и рано или поздно удаляется.

 

config\misc\death_generic.ltx 

Перечисляются уникальные, квестовые предметы, которые не должны удаляться, если они есть у нпс, секция:

 

[keep_items]

Тут впиши свои.

 

  • Лайк 1
  • Жму руку 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Фёдор М. В одном архиве вместе с исходным кодом движка вроде выкладывали.


Путь во мгле. Связь времен.
"Он ловко выхватил из-под себя табуретку и очень метко и сильно бросил ее в докладчика..." (Чугунный всадник)

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


Ссылка на сообщение
Поделиться на другие сайты
 

Всем добра. Сталкиваюсь с таким впервые в жизни: level_changer никак не хочет работать. Пытался добавлять его и напрямую в секцию спавна на локации, и через скрипт после события, и сам-то переход появляется, метки рабочие, но при нахождении главного героя внутри него ничего не происходит. Меня мучает мысль, что я допустил какую-то глупую ошибку и топчусь вокруг решения. Если что, делается всё это на движке ЗовП.

 

Спойлер

[9057]
; cse_abstract properties
section_name = level_changer
name = yan_to_agroprom
position = -67.359397888184,1.073881983757,-356.98132324219
direction = 0,0,2.2000000171829e-005
cse_abstract__unk1_h16 = 0x1

; cse_alife_object properties
game_vertex_id = 42
distance = 67.1999969482422
level_vertex_id = 33205
object_flags = 0xffffff3e
custom_data = <<END
[story_object]
story_id = yan_to_agroprom
END

; cse_shape properties
shapes = shape0
shape_0:type = sphere
shape_0:offset = 0,0,0
shape_0:radius = 7.674519002437592

; cse_alife_space_restrictor properties
restrictor_type = 3

; cse_alife_level_changer properties
dest_game_vertex_id = 39
dest_level_vertex_id = 5792
dest_position = -248.83865356445,4.0241374969482,177.24537658691
dest_direction = -0.0372739993035793,4.0937013626099,-0.0588079988956451
dest_level_name = garbage
dest_graph_point = garbage_graph_point
silent_mode = 1

; se_level_changer properties

И скрипт:

function create_level_changer(p_story_id, p_position, p_lvertex_id, p_gvertex_id, game_vertext_id, p_dest_lv, p_dest_gv, p_dest_pos, p_dest_dir, p_dest_level, p_silent) 
local obj = alife():create("level_changer", p_position, p_lvertex_id, p_gvertex_id)

level.map_add_object_spot(obj.id, "level_changer_down", "")

local packet = net_packet() 
obj:STATE_Write(packet)
local game_vertex_id = packet:r_u16() 
local cse_alife_object__unk1_f32 = packet:r_float() 
local cse_alife_object__unk2_u32 = packet:r_u32() 
local level_vertex_id = packet:r_u32() 
local object_flags = packet:r_u32() 
local custom_data = packet:r_stringZ() 
local story_id = packet:r_u32() 
local spawn_story_id = packet:r_u32()


local shape_count = packet:r_u8() 
for i=1,shape_count do 
local shape_type = packet:r_u8() 
if shape_type == 0 then 

local center = packet:r_vec3() 
local radius = packet:r_float() 
else 

local axis_x_x = packet:r_float() 
local axis_x_y = packet:r_float() 
local axis_x_z = packet:r_float() 
local axis_y_x = packet:r_float() 
local axis_y_y = packet:r_float() 
local axis_y_z = packet:r_float() 
local axis_z_x = packet:r_float() 
local axis_z_y = packet:r_float() 
local axis_z_z = packet:r_float() 
local offset_x = packet:r_float() 
local offset_y = packet:r_float() 
local offset_z = packet:r_float() 
end 
end


local restrictor_type = packet:r_u8()
local dest_game_vertex_id = packet:r_u16() 
local dest_level_vertex_id = packet:r_u32() 
local dest_position = packet:r_vec3() 
local dest_direction = packet:r_vec3() 
local dest_level_name = packet:r_stringZ() 
local dest_graph_point = packet:r_stringZ() 
local silent_mode = packet:r_u8()

packet:w_begin(game_vertex_id) 
packet:w_float(cse_alife_object__unk1_f32) 
packet:w_u32(cse_alife_object__unk2_u32) 
packet:w_u32(level_vertex_id)
packet:w_u32( bit_not(193) ) 
packet:w_stringZ(custom_data) 
packet:w_u32(p_story_id) 
packet:w_u32(spawn_story_id)

packet:w_u8(1)
packet:w_u8(1) 
packet:w_float(2) 
packet:w_float(0)
packet:w_float(0) 
packet:w_float(0) 
packet:w_float(4)
packet:w_float(0) 
packet:w_float(0)
packet:w_float(0) 
packet:w_float(4) 
packet:w_float(0)
packet:w_float(0) 
packet:w_float(0) 

packet:w_u8(3)

packet:w_u16(p_dest_gv)
packet:w_s32(p_dest_lv) 
packet:w_vec3(p_dest_pos)
packet:w_vec3(p_dest_dir) 
packet:w_stringZ(p_dest_level)
packet:w_stringZ("start_actor_02") 
packet:w_u8(p_silent)

packet:r_seek(0) 
obj:STATE_Read(packet, packet:w_tell()) 
end 

function create_changer_yantogar() 
if (not has_alife_info( "teleported" )) then 
dialogs_yantar.create_level_changer("yan_to_agroprom", vector():set(-67.359397888184,1.073881983757,-356.98132324219),33205,42, 
5792, 
39, 
vector():set(-248.83865356445,4.0241374969482,177.24537658691), 
vector():set(0.0,1.5,0.0),"garbage",0) 
db.actor:give_info_portion("teleported") 
end 
end 

Пожалуйста, если кто-то сталкивался или знает, как решить проблему, отзовитесь.

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   1 пользователь онлайн

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек. Оставаясь на сайте, вы подтверждаете свое согласие на их использование. Политика конфиденциальности | Условия использования