SoC. Не бесконечные болты — различия между версиями
Материал из S.T.A.L.K.E.R. Inside Wiki
Строка 1: | Строка 1: | ||
− | + | Итак тут я опишу как реализовать болты которые будут заканчиваться. Сразу пишу о том, что будем делать основываясь на гранатах, то есть не исключено, что болт может рвануть (не нанеся урон и только через продолжительный участок времени, так что гг навряд ли будет по близости.), а также, если бросим болт под ноги НПСу, он шуганётся, как от грены (это на самом деле не плохо, если отключены глаза на затылке, можно попробовать их таким образом отвлечь).���ӧݧ֧��). | |
− | + | ||
− | + | ||
− | + | ||
����ѧ�, ���ڧ����ڧ�.<br> | ����ѧ�, ���ڧ����ڧ�.<br> |
Версия 05:29, 15 марта 2015
Итак тут я опишу как реализовать болты которые будут заканчиваться. Сразу пишу о том, что будем делать основываясь на гранатах, то есть не исключено, что болт может рвануть (не нанеся урон и только через продолжительный участок времени, так что гг навряд ли будет по близости.), а также, если бросим болт под ноги НПСу, он шуганётся, как от грены (это на самом деле не плохо, если отключены глаза на затылке, можно попробовать их таким образом отвлечь).���ӧݧ֧��).
����ѧ�, ���ڧ����ڧ�.
����էԧ���ӧ�� ��ѧۧݧ�:
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<=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<=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 �ߧѧ٧ӧѧߧڧ� �ߧѧ�֧� ���ߧܧ�ڧ� escape_dialog.use_bolt_box_oz(obj) --�ӧ�٧�� ���ߧܧ�ڧ� use_bolt_box_oz(obj) �ڧ� ��ѧۧݧ� escape_dialog.script end --��ܧ�ߧ�ѧߧڧ� ���ߧܧ�ڧ�
���� �ӧ�� �� �ӧ��, �����ѧߧ�֧� �� �٧ѧܧ��ӧѧ֧� �էѧߧߧ�� ��ѧۧ�. ���ѧ��էڧ� �� �ڧԧ��, ��, �֧�ݧ� �� �ߧڧԧէ� �ߧ� ���ڧҧ��, �ߧѧҧݧ�էѧ֧� �ߧ� �ҧ֧�ܧ�ߧ֧�ߧ�� �ҧ�ݧ� �� �ߧѧ�ѧݧ� �ڧԧ��. �����ҧ� �ҧ�ݧ� �ҧ�� �ߧ� ��էڧ�, �ڧէڧ�� �� ����ݧܧ�, ��� �էѧ�� �ӧѧ� �֧�� 1 �ҧ�ݧ� �� ��֧ݧ�� �ܧ���ҧܧ� �ҧ�ݧ���. �����ҧ� �ڧ٧���� �ҧ�ݧ�� �ڧ� �ܧ���ҧܧ�, ������� �ӧ����ݧ�٧�ۧ�֧�� �֧�, �ܧݧڧܧߧڧ�� ��� �ߧ֧� 2 ��ѧ٧�. ���ѧէ֧���, ���� ���ѧ��� ��ܧѧ٧ѧݧѧ�� �ӧѧ� ���ݧ֧٧ߧ�.
���ӧ���: Dj Ultor ���� �ߧ֧��ߧ��ߧ�� ��ڧާӧ�ݧ� �ڧ٧ӧڧߧ����� �ߧ� �ҧ�է�, ������ �ڧ٧ӧڧߧ�֧��� ���� �ڧާҧڧ�ڧ� ���� �٧ѧԧѧէڧ� �ӧ�� ���ѧ���, �ާ�ا֧� �ܧѧ� �ߧڧҧ�է� �ڧ���ѧӧݧ�.
[[���ѧ�֧ԧ��ڧ�:���ܧ�ڧ���]]