SoC. Не бесконечные болты — S.T.A.L.K.E.R. Inside Wiki

SoC. Не бесконечные болты

Материал из S.T.A.L.K.E.R. Inside Wiki

Перейти к: навигация, поиск

Итак тут я опишу как реализовать болты которые будут заканчиваться. Сразу пишу о том, что будем делать основываясь на гранатах, то есть не исключено, что болт может рвануть (не нанеся урон и только через продолжительный участок времени, так что гг навряд ли будет по близости.), а также, если бросим болт под ноги НПСу, он шуганётся, как от грены (это на самом деле не плохо, если отключены глаза на затылке, можно попробовать их таким образом отвлечь).

Итак, приступим.
Нам потребуются такие файлы:
gamedata\config\weapons\w_rgd5.ltx
gamedata\config\weapons\w_bolt.ltx
gamedata\config\misc\items.ltx
gamedata\scripts\escape_dialog.script
gamedata\scripts\bind_stalker.script

В первую очередь лезем в файл w_bolt.ltx, там самая первая строка, которая за что-то отвечает:

[bolt]:identity_immunities

Меняем её вот так:

[old_bolt]:identity_immunities

Сохраняем и закрываем. Затем, открываем файл w_rgd5.ltx, спускаемся в самый низ и пишем это:

 
[bolt]:grenade_rgd5 
visual				= weapons\bolt\wpn_bolt.ogf
inv_name			= "Болт"
inv_name_short		= "Болт"
inv_weight			= 0.05
cost				= 1
slot                                 = 5
hud					= bolt_hud2
ef_weapon_type		= 1
description			= "Обычный металлический болт"
destroy_time		= 5000000;3500
 
attach_position_offset	= -0.021,-0.075,0.0
attach_angle_offset		= 0,0,0
attach_bone_name		= 
 
blast				= 0
blast_r				= 0
blast_impulse		= 0
;delete
blast_impulse_factor = 1
 
frags				= 0
frags_r				= 0
frag_hit			= 0
frag_hit_impulse	= 0
 
;звуки
snd_explode = monsters\biting\def_0    ;rgd5_explode
snd_checkout = monsters\biting\def_0
explode_particles	= weapons\wg-hit-ground
 
inv_grid_width		= 1
inv_grid_height		= 1
inv_grid_x			= 22
inv_grid_y			= 6
 
light_color		         = 0.0,0.0,0.0
light_range		         = 0.0
light_time 		         = 0.0
 
[bolt_hud2]
fire_point          = 0.05, 0.0, 0.1
fire_bone           = bolt_0
orientation         = 0,0,0
position            = 0,0,0
visual              = weapons\bolt\wpn_bolt_hud.ogf
 
throw_point			= 0,0.4,0.3
throw_dir			= 0,0,0
 
anim_show			= draw3
anim_hide			= holster_0
anim_idle			= idle_0
anim_playing		= idle_01
anim_throw_begin	              = attack_0_begin
anim_throw_idle		= attack_0_idle
anim_throw_act		= attack_0_act	
anim_throw_end		= attack_0_end
 

Подробно:

 
[bolt]:grenade_rgd5 ;--секция с отсылкой на секцию grenade_rgd5
visual				= weapons\bolt\wpn_bolt.ogf ;--визуал, в данном случае модель болта
inv_name			= "Болт" ;--название
inv_name_short		= "Болт" ;--название болта лежащего на земле
inv_weight			= 0.05 ;�ӧ֧�
cost				= 1 ;цена за штуку
slot                                 = 5 ;--��ݧ�� �էݧ� �ҧ�ݧ���
hud					= bolt_hud2 ;--����ݧܧ� �ߧ� ����
ef_weapon_type		= 1 ;��ڧ� ����اڧ� (�ߧ� �ާ֧ߧ��� �ߧ� �� �ܧ�֧� ��ݧ��ѧ�, �ާ�اߧ� ��ݧ�ާѧ�� �էӧڧԧݧ�)
description			= "���ҧ��ߧ�� �ާ֧�ѧݧݧڧ�֧�ܧڧ� �ҧ�ݧ�" ;--���ڧ�ѧߧڧ� ���֧էާ֧��
destroy_time		= 5000000;3500 ;�ݧ���� ����ѧӧڧ�� �ܧѧ� �֧���, �� ��ѧ� ���� �ӧ�֧ާ� ��֧�֧� �ܧ������ �ҧ�ݧ� �����ѧէק�
 
attach_position_offset	= -0.021,-0.075,0.0
attach_angle_offset		= 0,0,0
attach_bone_name		= 
 
blast				= 0 ;�ާ��ߧ���� �ӧ٧��ӧ�, ��ѧ� �ܧѧ� ���� �ҧ�ݧ�, ������ �ҧ�է֧� 0
blast_r				= 0 ; ��ѧէڧ�� �ӧ٧��ӧ�
blast_impulse		= 0 ;�ڧާ��ݧ�� ��� �ӧ٧��ӧ� (����ѧاѧ֧��� �ߧ� �էѧݧ�ߧ���� ���ݧק�� ����� ��� �ާ֧��� �ӧ٧��ӧ�)
;delete
blast_impulse_factor = 1
 
frags				= 0 ;�ܧ��-�ӧ� ���ܧ�ݧܧ��
frags_r				= 0 ; ��ѧէڧ�� ��ѧ٧ݧק�� ���ܧ�ݧܧ��
frag_hit			= 0 ; ����� ��� 1 ����ѧӧ�֧ԧ� ���ܧ�ݧܧ�
frag_hit_impulse	= 0 ; �ڧާ��ݧ�� ��� 1 ����ѧӧ�֧ԧ� ���ܧ�ݧܧ�
 
;�٧ӧ�ܧ�
snd_explode = monsters\biting\def_0    ;rgd5_explode �٧ӧ�� �ӧ٧��ӧ�
snd_checkout = monsters\biting\def_0 ;�٧ӧ�� �ҧ���ܧ�
explode_particles	= weapons\wg-hit-ground ; ��ѧ��ڧܧ� �ӧ٧��ӧ� (�� �էѧߧߧ�� ��ݧ��ѧ� �����ѧӧݧ֧� ��ѧ��ڧܧ� �ߧڧ�֧ԧ� �ߧ� ���ܧѧ٧�ӧѧ��ڧ�)
 
inv_grid_width		= 1 
inv_grid_height		= 1
inv_grid_x			= 22
inv_grid_y			= 6
 
light_color		         = 0.0,0.0,0.0 ;��ӧ֧� ���ӧ֧�֧ߧڧ� �ӧ� �ӧ�֧ާ� �ӧ٧��ӧ� ��� RGB
light_range		         = 0.0 ;�ߧѧ���֧ߧߧ���� �ߧ� ��ܧ�ݧ�ܧ� �� ���ߧڧާѧ�
light_time 		         = 0.0 ;�ӧ�֧ާ� ���է�ӧ֧�ܧ�
 
[bolt_hud2] ;��֧ܧ�ڧ� ���է�
fire_point          = 0.05, 0.0, 0.1
fire_bone           = bolt_0
orientation         = 0,0,0
position            = 0,0,0
visual              = weapons\bolt\wpn_bolt_hud.ogf ;���ڧ٧�ѧ� �ҧ�ݧ�� �� ���ܧѧ� �ԧ�
 
throw_point			= 0,0.4,0.3
throw_dir			= 0,0,0
 
anim_show			= draw3
anim_hide			= holster_0
anim_idle			= idle_0
anim_playing		= idle_01
anim_throw_begin	              = attack_0_begin
anim_throw_idle		= attack_0_idle
anim_throw_act		= attack_0_act	
anim_throw_end		= attack_0_end
 

�����, �����ѧߧ�֧�, �٧ѧܧ��ӧѧ֧�. ������ ��ѧۧ� �ߧѧ� �ҧ�ݧ��� �ߧ� �ߧ�ا֧�. ���֧�֧�� �ݧ֧٧֧� �� ��ѧۧ� items.ltx �� �� �ܧ�ߧ֧� ��ڧ�֧�:

 
[bolt_box]:identity_immunities
GroupControlSection	= spawn_group
discovery_dependency = 
$spawn 				= "food and drugs\kolbasa"
;$prefetch 			= 32
class				= II_FOOD
cform				= skeleton
visual				= physics\box\box_metall_01.ogf
radius				= 1
;script_binding		= escape_dialog.use_snd
 
inv_name			        = "������ҧܧ� �ҧ�ݧ���"
inv_name_short		        = "������ҧܧ� �ҧ�ݧ���"
description			= "������ҧܧ� �� �ҧ�ݧ�ѧާ�, ���է֧�اڧ� �� ��֧ҧ� 25 �ҧ�ݧ���."
inv_weight			= 1.35
can_trade			= on
inv_grid_width		= 2
inv_grid_height		= 1
inv_grid_x			= 8
inv_grid_y			= 18
cost				= 30
 
; eatable item
eat_health = 0
eat_satiety = 0
eat_power = 0
eat_radiation = 0
wounds_heal_perc = 0
eat_portions_num = -1
 
; food item
slot				= 4
animation_slot		= 4
 
;hud item
hud = wpn_vodka_hud
 
attach_angle_offset		= 0.440521, 1.378287, -0.644026
attach_position_offset	= 0.104196, -0.010821, 0.076969
attach_bone_name		= bip01_r_hand
auto_attach				= false
 
// should be deleted after update
bone_name				= bip01_r_hand
position_offset			 = 0.0,0.0,0.0
angle_offset			 = 1.570790,1.570790,3.92699
 

������ѧߧ�֧�, �٧ѧܧ��ӧѧ֧�. ���ѧݧ��� �ާ� �է�ݧاߧ� ���ܧ���� ��ѧۧ� escape_dialog.script �� �ܧ�ߧ֧� ��ѧۧݧ� �ӧߧ֧�ק� ��ӧ�� ���ߧܧ�ڧ�:

 
function use_bolt_box_oz(obj)
    if obj ~= nil then
        if obj:section() == "bolt_box" then
            for i = 1, 25 do --����ӧ֧��ѧ֧� ���ѧӧ� 25 ��ѧ�
    	        alife():create("bolt", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id())
    	    end
	end
    end
end
 

����է��ҧߧ�:

 
function use_bolt_box_oz(obj) --���ߧܧ�ڧ� �� �ߧѧ٧ӧѧߧڧ֧� use_bolt_box_oz(obj)
    if obj ~= nil then
        if obj:section() == "bolt_box" then -- ��ҧ�֧ܧ� �ܧ������ �է�ݧاߧ� �ާ� �ڧ���ݧ�٧�ӧѧ�� (�ܧ���ҧܧ� �ҧ�ݧ���)
            for i = 1, 25 do --����ӧ֧��ѧ֧� ���ѧӧ� 25 ��ѧ�
    	        alife():create("bolt", db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) -- ���ѧӧ� �ҧ�ݧ�� �� �ڧߧӧ֧ߧ�ѧ�� �ԧ�
    	    end -- ��ܧ�ߧ�ѧߧڧ� ��ڧܧݧ� for i =...
	end --��ܧ�ߧ�ѧߧڧ� if
    end --��ܧ�ߧ�ѧߧڧ� if
end --��ܧ�ߧ�ѧߧڧ� ���ߧܧ�ڧ�
 

�� ����� �ا� ��ѧۧݧ� �ߧѧ��էڧ� ���ߧܧ�ڧ� give_weapon_to_actor �� �ӧߧ��ڧ� ��ѧܧڧ� ������ܧ� ��֧�֧� end:

dialogs.relocate_item_section(trader, "bolt_<a href="http://cityadspix.com/tsclick-MIQCWPUV-GECAQBFF?url=http%3A%2F%2Fwww.sotmarket.ru%2Fproduct%2Fdls-m112-in-box.html&sa=mh&sa1=&sa2=&sa3=&sa4=&sa5=&bt=20&pt=9&lt=2&tl=3&im=ODI1LTAtMTQyNjE0ODU5Ni0xMzA1OTUyMA%3D%3D&fid=NDQ1NzU2Nzc1&prdct=043406310234013604&kw=box%22%2C%20%22in" target="_blank" alt="M112 in box" title="M112 in box" style=""><a href="http://cityadspix.com/tsclick-MIQCWPUV-GECAQBFF?url=http%3A%2F%2Fwww.sotmarket.ru%2Fproduct%2Fdls-m110-in-box.html&sa=mh&sa1=&sa2=&sa3=&sa4=&sa5=&bt=20&pt=9&lt=2&tl=3&im=ODI1LTAtMTQyNjE0ODU5Ny0xODczNDgyOQ%3D%3D&fid=NDQ1NzU2Nzc1&prdct=34033b053104&kw=box%22%2C%20%22in" target="_blank" alt="M110 in box" title="M110 in box" style="">box", "in</a></a>")  
dialogs.relocate_item_section(trader, "bolt", "in")

�� ����� ��ѧۧݧ� ���ا� �ӧ��. ���֧�֧�� �ݧ�ާڧާ�� �� bind_stalker.script ���ڧ�֧� �� ���ߧܧ�ڧ� function actor_binder:net_destroy() ����:

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

�� �� ���ߧܧ�ڧ� actor_binder:reinit() ����:

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

�� �ܧ�ߧ֧� ��ѧۧݧ� �է�ҧѧӧݧ�֧� �ߧѧ�� ���ߧܧ�ڧ�:

 
function actor_binder:use_object(obj)
    escape_dialog.use_bolt_box_oz(obj)
end
 

����է��ҧߧ�:

 
function actor_binder:use_object(obj) -- function &#65533;&#2023;&#1127;&#1639;&#1255;&#1127;&#2023;&#1703;&#65533; &#65533;&#2023;&#1127;&#65533;&#1447;&#65533; &#65533;&#65533;&#65533;&#2023;&#1831;&#65533;&#1703;&#65533;
    escape_dialog.use_bolt_box_oz(obj) --&#65533;&#1255;&#65533;&#1639;&#65533;&#65533; &#65533;&#65533;&#65533;&#2023;&#1831;&#65533;&#1703;&#65533; use_bolt_box_oz(obj) &#65533;&#1703;&#65533; &#65533;&#65533;&#1127;&#1767;&#1895;&#65533; escape_dialog.script
end --&#65533;&#65533;&#1831;&#65533;&#2023;&#65533;&#1127;&#2023;&#1703;&#65533; &#65533;&#65533;&#65533;&#2023;&#1831;&#65533;&#1703;&#65533;
 

���� �ӧ�� �� �ӧ��, �����ѧߧ�֧� �� �٧ѧܧ��ӧѧ֧� �էѧߧߧ�� ��ѧۧ�. ���ѧ��էڧ� �� �ڧԧ��, ��, �֧�ݧ� �� �ߧڧԧէ� �ߧ� ���ڧҧ��, �ߧѧҧݧ�էѧ֧� �ߧ� �ҧ֧�ܧ�ߧ֧�ߧ�� �ҧ�ݧ� �� �ߧѧ�ѧݧ� �ڧԧ��. �����ҧ� �ҧ�ݧ� �ҧ�� �ߧ� ��էڧ�, �ڧէڧ�� �� ����ݧܧ�, ��� �էѧ�� �ӧѧ� �֧�� 1 �ҧ�ݧ� �� ��֧ݧ�� �ܧ���ҧܧ� �ҧ�ݧ���. �����ҧ� �ڧ٧���� �ҧ�ݧ�� �ڧ� �ܧ���ҧܧ�, ������� �ӧ����ݧ�٧�ۧ�֧�� �֧�, �ܧݧڧܧߧڧ�� ��� �ߧ֧� 2 ��ѧ٧�. ���ѧէ֧���, ���� ���ѧ��� ��ܧѧ٧ѧݧѧ�� �ӧѧ� ���ݧ֧٧ߧ�.

���ӧ���: Dj Ultor ���� �ߧ֧��ߧ��ߧ�� ��ڧާӧ�ݧ� �ڧ٧ӧڧߧ����� �ߧ� �ҧ�է�, ������ �ڧ٧ӧڧߧ�֧��� ���� �ڧާҧڧ�ڧ� ���� �٧ѧԧѧէڧ� �ӧ�� ���ѧ���, �ާ�ا֧� �ܧѧ� �ߧڧҧ�է� �ڧ���ѧӧݧ�.

[[���ѧ�֧ԧ��ڧ�:���ܧ�ڧ���]]

Другие места
LANGUAGE