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

Уроки по модостроению

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

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

Вот: https://yadi.sk/d/OzLu-NeoeAFaY

Добавлено  Murarius,

Готово.

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

Работы на Artstationhttps://www.artstation.com/artist/stalker_lom

Ссылка на комментарий

Товарищи - скриптеры, помогите разобраться со скриптом.

В проблема с одним из примеров от @amik,

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

local obj = alife():story_object( 6 ) -- 6 - сид Волка

local obj_id = obj.id

function add_spot_on_map(obj_id,type,text)

    if obj_id then        

       if not text then text = "no_text" end

        level.map_add_object_spot_ser(obj_id, type, text)

    end

end

Вызываем:

function add_spot_on_map2(obj_id,type,text)    

 имя_файла.add_spot_on_map(obj.id,"green_location","Текст")

end

Метку можно убрать вот так:

local obj = alife():story_object( 6 )

local obj_id = obj.id

function remove_spot_from_map(obj_id,type)

    if obj_id and level.map_has_object_spot(obj_id, type) ~= 0 then        

       level.map_remove_object_spot(obj_id, type)

    end

end

эту вызывать:

function remove_spot()    

 this.remove_spot_from_map(obj.id,"green_location")

end

Во первых в функциях вызова допущена ошибочка - аргумент obj.id точку нужно заменить на видимый пробел, иначе будет вылет с руганью на index global 'obj'.

Во вторых, скрипт работает но метку вешает по чему-то на гг, а не на того на кого хочу повесить - на Толика, в чём причина?

Рассматриваю код уже пол часа и не понимаю в чём причина, функции простые как автомат Калашникова, всё вроде правильно...:unknw::kez_12:

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

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий

@UriZzz, вот так попробуй

 

function add_spot()
  local sid = 6
  local obj = alife():story_object(sid)
  if obj then
    level.map_add_object_spot_ser(obj.id, "blue_location", obj:name())
  else
    get_console():execute("load ~~~ object with story_id "..tostring(sid).."not found")
  end
end
--------------------
function remove_spot()
  local sid = 6
  local obj = alife():story_object(sid)
  if obj then
    level.map_remove_object_spot(obj.id, "blue_location")
  else
    get_console():execute("load ~~~ object with story_id "..tostring(sid).."not found")
  end
 end

Вместо sid пишешь нужный story_id.

Изменено пользователем naxac
  • Спасибо 1
  • Нравится 1
  • Полезно 1

Аддон для ОП-2.09.2: Яндекс/Google/GitHub

naxac.gif

Ссылка на комментарий

Всем привет, помогите плиз разобраться с скриптом. Это фрагмент из скрипта мода Сталкер Аномалия 1.5 (3.0) на верстак с апгрейдом\ремонтом снаряжения.

Хотел убрать взаимоисключение апгрейдов. Я в скриптах не силен, но кое что накопал, если не ошибаюсь, то это этот фрагмент:

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

    local function check_same_group(gr,idx)
        local tbl = {
            [1] = 2,
            [2] = 1,
            [3] = 4,
            [4] = 3,
            [5] = 6,
            [6] = 5,
        }
        local oth = tbl[idx]
        local sec = self.upgr[gr][oth] and self.upgr[gr][oth].section 
        return not (sec and self.inst_upgr[sec])
    end
    
    local function check_upgr_scheme(gr,idx)
        local tbl = {
            [3] = {1,2},
            [4] = {1,2},
            [5] = {3,4},
            [6] = {3,4},
        }
        local pre = tbl[idx]
        if (not pre) then return true end
        
        local sec_i = self.upgr[gr][pre[1]] and self.upgr[gr][pre[1]].section
        local sec_j = self.upgr[gr][pre[2]] and self.upgr[gr][pre[2]].section
        
        return (sec_i and self.inst_upgr[sec_i]) or (sec_j and self.inst_upgr[sec_j]) or false
    end
    
    local function check_con(con, col)
        local tbl = {
            [1] = 30,
            [2] = 60,
            [3] = 90,
        }
        return tbl[col] < con
    end

 

Изменено пользователем Дмитрий Михалик
Ссылка на комментарий
Spoiler

Этот код:


-- проверяндус есть ли у нас жертва обстоятельств
	if victim ~= nil then

		local whocls = get_clsid(who)

		monster_classes = {
			[clsid.bloodsucker_s] 			= "неудачно подошёл к кровососу",
			[clsid.boar_s] 					= "неудачная охота на кабана",
			[clsid.dog_s] 					= "загрызён собакой",
			[clsid.flesh_s] 				= "неудачная охота на плоть",
			[clsid.pseudodog_s] 			= "загрызён псевдособакой",
			[clsid.burer_s] 				= "нарвался на бюрера",
			[clsid.cat_s] 					= "кошка перебежала дорогу",
			[clsid.chimera_s] 				= "нарвался на химеру",
			[clsid.controller_s] 			= "стал зомби и умер",
			[clsid.poltergeist_s] 			= "полтергейст",
			[clsid.gigant_s] 				= "растоптал псевдогигант",
			[clsid.zombie_s] 				= "попрощался с мозгами",
			[clsid.snork_s] 				= "неудачно нашёл снорка",
			[clsid.tushkano_s] 				= "умер от стаи тушканов",
			[clsid.psy_dog_s] 				= "загрызён пси собакой",
			[clsid.psy_dog_phantom_s] 		= "загрызён пси собакой"
		}

		local death_komment = {
	        "Ещё один...",
	        "Мдя, ни дня без этого.",
	        "Одним больше, одним меньше...",
	        "Все там будем",
	        "Помянуть надо бы...",
	        "Зона тебе пухом.",
			"Был пацан, не стало пацана"
	    }

	    --
	    --
		-- victim_name - имя жертвы
		-- killer_name - имя убивайца
		-- killer_comm - групировка убивайца
		-- victim_comm - групировка жертвы
		--
		--

	 	local m_game_vertex = who:game_vertex_id()
		local lvert = game_graph():vertex(m_game_vertex)
		local lid = lvert:level_id()
		local mlevel = alife():level_name(lid)
		local m_s_level = mlevel
		local victim_name  = victim:character_name()
		local killer_name  = who:character_name()
		local victim_comm = victim:character_community()
		local killer_comm = nil
		if IsStalker(who) then
			if killer_name == victim_name then
				killer_name = "аномалия"
				killer_comm = "monster"
			else
				killer_comm = who:character_community()
				-- Чтобы показывать имя, кто убил удали строку ниже
				killer_name = "пулевое ранение"
			end
		else
			killer_comm = "monster"
			if whocls ~= nil then
				killer_name = monster_classes[whocls]
			end
		end
		 
		if killer_comm ~= nil then
			if killer_name == nil then
				-- это если имя убийцы неизвестно или мутантик какой неизвестен
				killer_name = "%c[230,255,0,0][DATA DELETED]"
			end
		    local m_text_kill_string="Умер сталкер "..victim_name.."\\nЛокация: "..game.translate_string(m_s_level).."\\nПричина смерти: "..killer_name
			local news_text = "%c[230,255,128,64]"..m_text_kill_string
			local news_caption = game.translate_string("DeadMans")
		    local texture = "ui_iconsTotal_weapons"
		 	local shans = math.random(1,100)
		    db.actor:give_game_news(news_caption, news_text, texture, 2*1000, 2*1000)
			if shans > 70 then
				local dead_news = death_komment[math.random(table.getn(death_komment))]
	 	    	db.actor:give_game_news(game.translate_string("Анонимное сообщение"), dead_news, "ui_iconsTotal_grouping", 5*1000, 5*1000)
	 		end
		end
	end

вставляем в файл gamedata\scripts\xr_motivator.script после строки function motivator_binder:death_callback(victim, who)

 

 

  • Полезно 2
Ссылка на комментарий

Всем привет! Возможно банальный вопрос. Добавил несколько стволов в ЗП. Создал не отдельно .ltx файлы, а дописал в gamedata\configs\weapons\w_ak74.ltx
Вот полный текст файла:
 

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

[wpn_ak74]:identity_immunities,weapon_probability,default_weapon_params
GroupControlSection     = spawn_group
$spawn                      = "weapons\ak-74"        ; name and section in level editor
$npc              = on
$prefetch               = 8
scheduled               = off                                ; option for ALife Simulator
cform                   = skeleton
class                = WP_AK74         ; class of the weapon that corresponding to CPP class
description          = st_wpn_ak74_descr

ef_main_weapon_type     = 2
ef_weapon_type          = 8

default_to_ruck         = false
sprint_allowed          = true

;-------------------------------------------------------------------------------
cost                   = 4000            ; the price of the item
weapon_class         = assault_rifle      ; the type of the box that will be used in buy-menu in multiplayer mode
inv_weight        = 3.3                      ; weight in inventory

upgrades                = up_gr_firstab_ak74, up_gr_seconab_ak74, up_gr_thirdab_ak74, up_gr_fourtab_ak74, up_gr_fifthab_ak74, up_gr_fifthcd_ak74
installed_upgrades      =
upgrade_scheme          = upgrade_scheme_ak74

;-ТТХ---------------------------------------------------------------------------
hit_power            = 0.31, 0.31, 0.31, 0.31
hit_impulse          = 100    ; size of physic impulse by bullet
hit_type             = fire_wound            ; [] type of the wound
fire_distance           = 200 ;1000                  ; maximum fire distance that bullet can fly
bullet_speed            = 550                ; starting bullet speed
rpm                     = 570    ; max round per minute
rpm_empty_click         = 200

;настройки для глушителя
silencer_hit_power      = 0.3, 0.3, 0.3, 0.3
silencer_hit_impulse    = 100
silencer_fire_distance  = 200
silencer_bullet_speed   = 500

use_aim_bullet          = false                ;Поддерживается ли первая суппер пуля
time_to_aim             = 3.0

hud                     = wpn_ak74_hud

misfire_probability        = 0.005 ;вероятность осечки при максимальном износе  !!!old - now not working
;изношенность, при которой появляется шанс осечки
misfire_start_condition        = 0.6
;изношеность при которой шанс осечки становится константным
misfire_end_condition        = 0.1
;шанс осечки при изношености больше чем misfireStartCondition
misfire_start_prob             = 0.003
;шанс осечки при изношености больше чем misfireEndCondition
misfire_end_prob             = 0.043
;увеличение изношености при одиночном выстреле
condition_shot_dec          = 0.0005
;увеличение изношености при выстреле очередью
condition_queue_shot_dec    = 0.00055

ammo_elapsed         = 30           ; obsolete
ammo_mag_size        = 40           ; clip (magazine) size
fire_modes           = 1, -1

ammo_class           = ammo_5.45x39_fmj, ammo_5.45x39_ap  ; name of the ltx-section of used ammo
grenade_class        = ammo_vog-25         ; name of the ltx-section of used grenades

launch_speed            = 0
hand_dependence         = 1
single_handed           = 0

;-Доф----------------------------------------------------------------------
zoom_dof             = 0.5, 1.0, 180
reload_dof           = 0.0, 0.5, 5, 2;1.7

;-Дисперсия----------------------------------------------------------------------
;params of weapon recoil
fire_dispersion_base           = 0.33    ;угол (в градусах) базовой дисперсии оружия (оружия зажатого в тисках)
control_inertion_factor        = 1.2f
crosshair_inertion            = 6

;отдача
cam_return                    = 0
cam_relax_speed             = 10        ;скорость возврата в исходное положение
cam_relax_speed_ai          = 360
cam_dispersion              = 1.0        ;увеличения угла (в градусах) с первым выстрелом
cam_dispersion_inc             = 0.5        ;увеличениe cam_dispersion с каждым выстрелом
cam_dispersion_frac            = 1.0        ;ствол будет подыматься на cam_dispersion*cam_dispersion_frac +- cam_dispersion*(1-cam_dispersion_frac)
cam_max_angle                = 50.0      ;максимальный угол отдачи
cam_max_angle_horz             = 5.0      ;(degree) maximum shot horizontal degree
cam_step_angle_horz            = 0.35        ;(degree) size of step camera moved in horizontal position while shooting

zoom_cam_relax_speed         = 10        ; scope & ironsight
zoom_cam_relax_speed_ai      = 360
zoom_cam_dispersion          = 0.9
zoom_cam_dispersion_inc      = 0.45
zoom_cam_dispersion_frac     = 0.7
zoom_cam_max_angle           = 50.0
zoom_cam_max_angle_horz      = 5.0
zoom_cam_step_angle_horz     = 0.3

PDM_disp_base                 = 0.5
PDM_disp_vel_factor         = 2.0
PDM_disp_accel_factor         = 2.0
PDM_disp_crouch                 = 1.0
PDM_disp_crouch_no_acc         = 1.0

fire_dispersion_condition_factor    = 15         ;увеличение дисперсии в процентах при максимальном износе

;-------------------------------------------------------------------------------
holder_range_modifier   = 1.0                       ; во сколько раз увеличивается eye_range
holder_fov_modifier     = 1.0              ; во сколько раз увеличивается eye_fov

min_radius           = 30           ; [] for AI
max_radius           = 100          ; [] for AI

hit_probability_gd_novice  = 0.80
hit_probability_gd_stalker = 0.80
hit_probability_gd_veteran = 0.80
hit_probability_gd_master  = 0.80

;-------------------------------------------------------------------------------
slot                    = 2                ; // secondary
animation_slot          = 2                ; type of the animation that will be used

position                = -0.026, -0.175, 0.0
orientation             = 0, 0, 0

fire_point              =  0,0.218,0.656        ; position (3rd person view) for particles of fire
fire_point2             =  0,0.161,0.583        ; position (3rd person view) for particles of fire (when shooting with secondary fire)

flame_particles         = weapons\generic_weapon05 ; particles for shooting effects
smoke_particles         = weapons\generic_shoot_00
grenade_flame_particles = weapons\generic_weapon01

shell_point             = 0,0.216,0.174            ; position (3rd person view) for shell to throw out
shell_particles         = weapons\generic_shells   ; name of the particles for shells
shell_particles         = weapons\generic_shells

;-------------------------------------------------------------------------------
inv_name          = st_wpn_ak74                    ; name in inventory
inv_name_short    = st_wpn_ak74

inv_grid_width       = 5    ; position and size of the icon that will be used to display weapon in the inventory menu
inv_grid_height      = 2    ; all icons are on the texture ui_icon_equipment.dds,
inv_grid_x           = 5  ; position and size are in terms of 64x64 squares
inv_grid_y           = 5

upgr_icon_x            = 304
upgr_icon_y            = 627
upgr_icon_width        = 295
upgr_icon_height       = 110

kill_msg_x        = 0
kill_msg_y        = 28
kill_msg_width    = 84
kill_msg_height   = 28

;--STRAP PARAMETERS-----------------------------------------------------------------
;под мишкой
strap_position          = -0.26,-0.11,0.25                                ; position (offset) and orientation of the weapon when it is strapped
strap_orientation       = -15,-9,110                                        ; (3rd person view in degrees)
strap_bone0             = bip01_spine2
strap_bone1             = bip01_spine1

startup_ammo            = 90
visual                  = dynamics\weapons\wpn_ak74\wpn_ak74.ogf

light_disabled                                = false
light_color             = 0.6,0.5,0.3
light_range             = 5
light_var_color         = 0.05
light_var_range         = 0.5
light_time              = 0.2

ph_mass                 = 4

;addons
scope_status               = 0                     ; 0 - no addon
silencer_status            = 2                   ; 1 - permanent
grenade_launcher_status    = 2                  ; 2 - attachable

zoom_enabled            = true                                                ; (on,off)zoom mode (right mouse button)
zoom_rotate_time        = 0.25
scope_zoom_factor       = 50                                                ; fov for zoom mode

silencer_name           = wpn_addon_silencer    ; section name for the attachable silencer
silencer_x              = 224                ; offset in inventory icon
silencer_y              = 13
grenade_launcher_name   = wpn_addon_grenade_launcher
grenade_launcher_x      = 126
grenade_launcher_y      = 24
scopes_sect                = scope_ak74, scope_x2.7_ak74, scope_live_detector_ak74, scope_night_ak74

;звуки
snd_draw                = weapons\ak74_draw
snd_holster             = weapons\generic_holster
snd_shoot               = weapons\ak74_shoot2
snd_shoot1               = weapons\ak74_shoot2

snd_empty               = weapons\gen_empty, 0.5
snd_reload              = weapons\groza_reload_2, 0.7
snd_shoot_grenade       = weapons\gen_grenshoot
snd_reload_grenade      = weapons\gen_grenload, 1.0, 0.8
snd_switch              = weapons\groza_switch_2, 1.0, 0.5
snd_bore        = weapons\ak74_bore, 0.7

;silencer_flame_particles  = weapons\generic_weapon01
silencer_smoke_particles   = weapons\generic_shoot_00

snd_silncer_shot        = weapons\ak74_shoot_sil
snd_silncer_shot1        = weapons\ak74_shoot_sil1

silencer_light_color    = 0.6,0.5,0.3
silencer_light_range    = 0.01
silencer_light_var_color= 0.05
silencer_light_var_range= 0.5
silencer_light_time     = 0.2


[wpn_ak74_hud]
zoom_hide_crosshair        = true
attach_place_idx        = 0
item_visual                = dynamics\weapons\wpn_ak74\wpn_ak74_hud.ogf

hands_position                = -0.120500,-0.180999,0.132501
hands_orientation            = -2.599998,0.000000,-2.549999

hands_position_16x9                = -0.119500,-0.199000,0.091000
hands_orientation_16x9            = -0.750000,1.700000,-4.199999

item_position                = 0.004111,0.008527,-0.005906
item_orientation            = -15.488927,-3.320898,367.220154

shell_point                = 0.017,0.054,0.17
shell_dir               = 0.0, 1.0, 0.0
shell_bone                = wpn_body

fire_point            = 0,0.042,0.684
fire_bone                            = wpn_body
fire_point2                        = 0.0,-0.011,0.553
fire_bone2                = wpn_body

anm_show                        = ak74_draw
anm_hide                = ak74_holster
anm_idle                = ak74_idle
anm_idle_sprint         = ak74_idle_sprint
anm_idle_moving         = ak74_idle_moving
anm_shots               = ak74_shoot
anm_reload              = ak74_reload
anm_idle_aim            = ak74_idle_aim

anm_switch              = ak74_switch_off           ;abakan_switch_off
anm_switch_g            = ak74_switch_on           ;abakan_switch_on
anm_bore                = ak74_idle_bore

anm_hide_w_gl           = ak74_holster_w_gl
anm_show_w_gl           = ak74_draw_w_gl
anm_idle_w_gl           = ak74_idle_w_gl
anm_shots_w_gl          = ak74_shoot_w_gl
anm_reload_w_gl         = ak74_reload_w_gl
anm_idle_w_gl_aim       = ak74_idle_aim_w_gl
anm_idle_sprint_w_gl    = ak74_idle_sprint_w_gl
anm_idle_moving_w_gl    = ak74_idle_moving_w_gl
anm_bore_w_gl           = ak74_idle_bore_w_gl

anm_show_g              = ak74_draw_w_gl                            ;abakan_draw_grenade
anm_hide_g              = ak74_holster_w_gl                        ;abakan_holster_grenade
anm_idle_g              = ak74_idle_w_gl                            ;abakan_idle_grenade
anm_reload_g            = ak74_reload_grenade
anm_idle_g_aim          = ak74_idle_aim_w_gl                        ;abakan_idle_grenade
anm_shots_g             = ak74_shoot_grenade
anm_idle_sprint_g       = ak74_idle_sprint_w_gl                    ;abakan_idle_sprint_grenade
anm_idle_moving_g       = ak74_idle_moving_w_gl                    ;abakan_idle_moving_grenade
anm_bore_g              = ak74_idle_bore_w_gl


aim_hud_offset_pos                = -0.101500,0.012500,-0.018000
aim_hud_offset_rot                = -0.032500,-0.032500,0.020000

aim_hud_offset_pos_16x9                = -0.100000,0.033500,0.029000
aim_hud_offset_rot_16x9                = 0.002500,-0.002500,-0.007500

gl_hud_offset_pos               = 0,0,0;-0.053000,-0.059000,0.000000
gl_hud_offset_rot               = 0,0,0;-0.145000,0.000000,0.000000

gl_hud_offset_pos_16x9            = 0,0,0;-0.130000,0.003500,0.000500
gl_hud_offset_rot_16x9            = 0,0,0;0.052500,0.045000,-0.010000

lean_hud_offset_pos        = 0,0,0
lean_hud_offset_rot        = 0,0,0

[scope_ak74]
scope_name                     = wpn_addon_scope
scope_x                  = 47                 ; offset in inventory icon
scope_y                 = 0

[scope_x2.7_ak74]
scope_name                     = wpn_addon_scope_x2.7
scope_x                  = 47                 ; offset in inventory icon
scope_y                 = 0

[scope_live_detector_ak74]
scope_name                     = wpn_addon_scope_detector
scope_x                  = 47                 ; offset in inventory icon
scope_y                 = 0

[scope_night_ak74]
scope_name                     = wpn_addon_scope_night
scope_x                  = 47                 ; offset in inventory icon
scope_y                 = 0

;-----------------------------------------------------------------------------
; Уникальный АКМ-74 «Скорострельный»
;-----------------------------------------------------------------------------
[wpn_ak74_nimble]:wpn_ak74

$spawn                  = "weapons\wpn_ak74_nimble"
description             = st_wpn_ak74_nimble_descr
inv_name                = st_wpn_ak74_nimble

cost                   = 4800

upgrades                = up_gr_firstab_ak74, up_gr_seconab_ak74, up_gr_thirdab_ak74, up_gr_fourtab_ak74, up_gr_fifthab_ak74, up_gr_fifthcd_ak74
installed_upgrades      =
upgrade_scheme          = upgrade_scheme_ak74

inv_grid_width       = 5
inv_grid_height      = 2
inv_grid_x           = 11
inv_grid_y           = 38

ammo_mag_size = 50

condition_shot_dec          = 0.0009
condition_queue_shot_dec    = 0.00009

cam_dispersion              = 0.75
cam_dispersion_inc             = 0.3
cam_dispersion_frac            = 0.75
cam_max_angle           = 35.0
cam_max_angle_horz      = 3.5
cam_step_angle_horz     = 0.15

fire_distance           = 300 ;1000
bullet_speed            = 600
rpm                     = 700
rpm_empty_click         = 250

;звуки
snd_draw                = weapons\ak74_draw
snd_holster             = weapons\generic_holster
snd_shoot               = weapons\ak74_shoot1
snd_shoot1               = weapons\ak74_shoot1

snd_empty               = weapons\gen_empty, 0.5
snd_reload              = weapons\groza_reload_2, 0.7
snd_shoot_grenade       = weapons\gen_grenshoot
snd_reload_grenade      = weapons\gen_grenload, 1.0, 0.8
snd_switch              = weapons\groza_switch_2, 1.0, 0.5
snd_bore        = weapons\ak74_bore, 0.7

hud                     = wpn_ak75_hud
visual                  = dynamics\weapons\wpn_ak75\wpn_ak75.ogf

[wpn_ak75_hud]:hud_base
zoom_hide_crosshair        = true
attach_place_idx        = 0
item_visual                = dynamics\weapons\wpn_ak75\wpn_ak75_hud

hands_position                = -0.120500,-0.180999,0.132501
hands_orientation            = -2.599998,0.000000,-2.549999

hands_position_16x9                = -0.119500,-0.199000,0.091000
hands_orientation_16x9            = -0.750000,1.700000,-4.199999

item_position                = 0.004111,0.008527,-0.005906
item_orientation            = -15.488927,-3.320898,367.220154

shell_point                = 0.017,0.054,0.17
shell_dir               = 0.0, 1.0, 0.0
shell_bone                = wpn_body

fire_point            = 0,0.042,0.684
fire_bone                            = wpn_body
fire_point2                        = 0.0,-0.011,0.553
fire_bone2                = wpn_body

anm_show                        = ak74_draw
anm_hide                = ak74_holster
anm_idle                = ak74_idle
anm_idle_sprint         = ak74_idle_sprint
anm_idle_moving         = ak74_idle_moving
anm_shots               = ak74_shoot
anm_reload              = ak74_reload
anm_idle_aim            = ak74_idle_aim
anm_switch              = ak74_switch_off           ;abakan_switch_off
anm_switch_g            = ak74_switch_on           ;abakan_switch_on
anm_bore                = ak74_idle_bore

anm_hide_w_gl           = ak74_holster_w_gl
anm_show_w_gl           = ak74_draw_w_gl
anm_idle_w_gl           = ak74_idle_w_gl
anm_shots_w_gl          = ak74_shoot_w_gl
anm_reload_w_gl         = ak74_reload_w_gl
anm_idle_w_gl_aim       = ak74_idle_aim_w_gl
anm_idle_sprint_w_gl    = ak74_idle_sprint_w_gl
anm_idle_moving_w_gl    = ak74_idle_moving_w_gl
anm_bore_w_gl           = ak74_idle_bore_w_gl

anm_show_g              = ak74_draw_w_gl                        
anm_hide_g              = ak74_holster_w_gl                        
anm_idle_g              = ak74_idle_w_gl                            
anm_reload_g            = ak74_reload_grenade
anm_idle_g_aim          = ak74_idle_aim_w_gl                        
anm_shots_g             = ak74_shoot_grenade
anm_idle_sprint_g       = ak74_idle_sprint_w_gl                    
anm_idle_moving_g       = ak74_idle_moving_w_gl                    
anm_bore_g              = ak74_idle_bore_w_gl

aim_hud_offset_pos                = -0.101500,0.012500,-0.018000
aim_hud_offset_rot                = -0.032500,-0.032500,0.020000

aim_hud_offset_pos_16x9                = -0.100000,0.033500,0.029000
aim_hud_offset_rot_16x9                = 0.002500,-0.002500,-0.007500

gl_hud_offset_pos               = 0,0,0;-0.053000,-0.059000,0.000000
gl_hud_offset_rot               = 0,0,0;-0.145000,0.000000,0.000000

gl_hud_offset_pos_16x9            = 0,0,0;-0.130000,0.003500,0.000500
gl_hud_offset_rot_16x9            = 0,0,0;0.052500,0.045000,-0.010000

lean_hud_offset_pos        = 0,0,0
lean_hud_offset_rot        = 0,0,0

;-----------------------------------------------------------------------------
; АКМ-74 под калибр 11.43x23
;-----------------------------------------------------------------------------
[wpn_ak74_nimble_colt]:wpn_ak74

$spawn                  = "weapons\wpn_ak74_nimble_colt"
description             = st_wpn_ak74_nimble_colt_descr
inv_name                = st_wpn_ak74_nimble_colt

cost                   = 4900

hit_power                   = 0.43, 0.43, 0.43, 0.43
hit_impulse                     = 75

ammo_class              = ammo_11.43x23_fmj, ammo_11.43x23_hydro

upgrades                = up_gr_firstab_ak74, up_gr_seconab_ak74, up_gr_thirdab_ak74, up_gr_fourtab_ak74, up_gr_fifthab_ak74, up_gr_fifthcd_ak74
installed_upgrades      =
upgrade_scheme          = upgrade_scheme_ak74

inv_grid_width       = 5
inv_grid_height      = 2
inv_grid_x           = 14
inv_grid_y           = 24

fire_distance           = 180 ;1000
bullet_speed            = 500
rpm                     = 570
rpm_empty_click         = 200

;звуки
snd_draw                = weapons\ak74_draw
snd_holster             = weapons\generic_holster
snd_shoot               = weapons\ak74_shoot4
snd_shoot1               = weapons\ak74_shoot4

snd_empty               = weapons\gen_empty, 0.5
snd_reload              = weapons\groza_reload_2, 0.7
snd_shoot_grenade       = weapons\gen_grenshoot
snd_reload_grenade      = weapons\gen_grenload, 1.0, 0.8
snd_switch              = weapons\groza_switch_2, 1.0, 0.5
snd_bore        = weapons\ak74_bore, 0.7

hud                     = wpn_ak73_hud
visual                  = dynamics\weapons\wpn_ak73\wpn_ak73.ogf

[wpn_ak73_hud]:hud_base
zoom_hide_crosshair        = true
attach_place_idx        = 0
item_visual                = dynamics\weapons\wpn_ak73\wpn_ak73_hud

hands_position                = -0.120500,-0.180999,0.132501
hands_orientation            = -2.599998,0.000000,-2.549999

hands_position_16x9                = -0.119500,-0.199000,0.091000
hands_orientation_16x9            = -0.750000,1.700000,-4.199999

item_position                = 0.004111,0.008527,-0.005906
item_orientation            = -15.488927,-3.320898,367.220154

shell_point                = 0.017,0.054,0.17
shell_dir               = 0.0, 1.0, 0.0
shell_bone                = wpn_body

fire_point            = 0,0.042,0.684
fire_bone                            = wpn_body
fire_point2                        = 0.0,-0.011,0.553
fire_bone2                = wpn_body

anm_show                        = ak74_draw
anm_hide                = ak74_holster
anm_idle                = ak74_idle
anm_idle_sprint         = ak74_idle_sprint
anm_idle_moving         = ak74_idle_moving
anm_shots               = ak74_shoot
anm_reload              = ak74_reload
anm_idle_aim            = ak74_idle_aim
anm_switch              = ak74_switch_off           ;abakan_switch_off
anm_switch_g            = ak74_switch_on           ;abakan_switch_on
anm_bore                = ak74_idle_bore

anm_hide_w_gl           = ak74_holster_w_gl
anm_show_w_gl           = ak74_draw_w_gl
anm_idle_w_gl           = ak74_idle_w_gl
anm_shots_w_gl          = ak74_shoot_w_gl
anm_reload_w_gl         = ak74_reload_w_gl
anm_idle_w_gl_aim       = ak74_idle_aim_w_gl
anm_idle_sprint_w_gl    = ak74_idle_sprint_w_gl
anm_idle_moving_w_gl    = ak74_idle_moving_w_gl
anm_bore_w_gl           = ak74_idle_bore_w_gl

anm_show_g              = ak74_draw_w_gl                        
anm_hide_g              = ak74_holster_w_gl                        
anm_idle_g              = ak74_idle_w_gl                            
anm_reload_g            = ak74_reload_grenade
anm_idle_g_aim          = ak74_idle_aim_w_gl                        
anm_shots_g             = ak74_shoot_grenade
anm_idle_sprint_g       = ak74_idle_sprint_w_gl                    
anm_idle_moving_g       = ak74_idle_moving_w_gl                    
anm_bore_g              = ak74_idle_bore_w_gl

aim_hud_offset_pos                = -0.101500,0.012500,-0.018000
aim_hud_offset_rot                = -0.032500,-0.032500,0.020000

aim_hud_offset_pos_16x9                = -0.100000,0.033500,0.029000
aim_hud_offset_rot_16x9                = 0.002500,-0.002500,-0.007500

gl_hud_offset_pos               = 0,0,0;-0.053000,-0.059000,0.000000
gl_hud_offset_rot               = 0,0,0;-0.145000,0.000000,0.000000

gl_hud_offset_pos_16x9            = 0,0,0;-0.130000,0.003500,0.000500
gl_hud_offset_rot_16x9            = 0,0,0;0.052500,0.045000,-0.010000

lean_hud_offset_pos        = 0,0,0
lean_hud_offset_rot        = 0,0,0

;-----------------------------------------------------------------------------
; АКМ-74 под калибр 9x18
;-----------------------------------------------------------------------------
[wpn_ak74_nimble_pm]:wpn_ak74

$spawn                  = "weapons\wpn_ak74_nimble_pm"
description             = st_wpn_ak74_nimble_pm_descr
inv_name                = st_wpn_ak74_nimble_pm

cost                   = 4900

hit_power                   = 0.3, 0.3, 0.3, 0.3
hit_impulse                     = 80

ammo_class              = ammo_9x18_fmj, ammo_9x18_pmm

upgrades                = up_gr_firstab_ak74, up_gr_seconab_ak74, up_gr_thirdab_ak74, up_gr_fourtab_ak74, up_gr_fifthab_ak74, up_gr_fifthcd_ak74
installed_upgrades      =
upgrade_scheme          = upgrade_scheme_ak74

inv_grid_width       = 5
inv_grid_height      = 2
inv_grid_x           = 15
inv_grid_y           = 26

fire_distance           = 200 ;1000
bullet_speed            = 480
rpm                     = 570
rpm_empty_click         = 200

;звуки
snd_draw                = weapons\ak74_draw
snd_holster             = weapons\generic_holster
snd_shoot               = weapons\ak74_shoot5
snd_shoot1               = weapons\ak74_shoot5

snd_empty               = weapons\gen_empty, 0.5
snd_reload              = weapons\groza_reload_2, 0.7
snd_shoot_grenade       = weapons\gen_grenshoot
snd_reload_grenade      = weapons\gen_grenload, 1.0, 0.8
snd_switch              = weapons\groza_switch_2, 1.0, 0.5
snd_bore        = weapons\ak74_bore, 0.7

hud                     = wpn_ak76_hud
visual                  = dynamics\weapons\wpn_ak76\wpn_ak76.ogf

[wpn_ak76_hud]:hud_base
zoom_hide_crosshair        = true
attach_place_idx        = 0
item_visual                = dynamics\weapons\wpn_ak76\wpn_ak76_hud

hands_position                = -0.120500,-0.180999,0.132501
hands_orientation            = -2.599998,0.000000,-2.549999

hands_position_16x9                = -0.119500,-0.199000,0.091000
hands_orientation_16x9            = -0.750000,1.700000,-4.199999

item_position                = 0.004111,0.008527,-0.005906
item_orientation            = -15.488927,-3.320898,367.220154

shell_point                = 0.017,0.054,0.17
shell_dir               = 0.0, 1.0, 0.0
shell_bone                = wpn_body

fire_point            = 0,0.042,0.684
fire_bone                            = wpn_body
fire_point2                        = 0.0,-0.011,0.553
fire_bone2                = wpn_body

anm_show                        = ak74_draw
anm_hide                = ak74_holster
anm_idle                = ak74_idle
anm_idle_sprint         = ak74_idle_sprint
anm_idle_moving         = ak74_idle_moving
anm_shots               = ak74_shoot
anm_reload              = ak74_reload
anm_idle_aim            = ak74_idle_aim
anm_switch              = ak74_switch_off           ;abakan_switch_off
anm_switch_g            = ak74_switch_on           ;abakan_switch_on
anm_bore                = ak74_idle_bore

anm_hide_w_gl           = ak74_holster_w_gl
anm_show_w_gl           = ak74_draw_w_gl
anm_idle_w_gl           = ak74_idle_w_gl
anm_shots_w_gl          = ak74_shoot_w_gl
anm_reload_w_gl         = ak74_reload_w_gl
anm_idle_w_gl_aim       = ak74_idle_aim_w_gl
anm_idle_sprint_w_gl    = ak74_idle_sprint_w_gl
anm_idle_moving_w_gl    = ak74_idle_moving_w_gl
anm_bore_w_gl           = ak74_idle_bore_w_gl

anm_show_g              = ak74_draw_w_gl                        
anm_hide_g              = ak74_holster_w_gl                        
anm_idle_g              = ak74_idle_w_gl                            
anm_reload_g            = ak74_reload_grenade
anm_idle_g_aim          = ak74_idle_aim_w_gl                        
anm_shots_g             = ak74_shoot_grenade
anm_idle_sprint_g       = ak74_idle_sprint_w_gl                    
anm_idle_moving_g       = ak74_idle_moving_w_gl                    
anm_bore_g              = ak74_idle_bore_w_gl

aim_hud_offset_pos                = -0.101500,0.012500,-0.018000
aim_hud_offset_rot                = -0.032500,-0.032500,0.020000

aim_hud_offset_pos_16x9                = -0.100000,0.033500,0.029000
aim_hud_offset_rot_16x9                = 0.002500,-0.002500,-0.007500

gl_hud_offset_pos               = 0,0,0;-0.053000,-0.059000,0.000000
gl_hud_offset_rot               = 0,0,0;-0.145000,0.000000,0.000000

gl_hud_offset_pos_16x9            = 0,0,0;-0.130000,0.003500,0.000500
gl_hud_offset_rot_16x9            = 0,0,0;0.052500,0.045000,-0.010000

lean_hud_offset_pos        = 0,0,0
lean_hud_offset_rot        = 0,0,0

;-----------------------------------------------------------------------------
; АКМ-74 под калибр 9x19
;-----------------------------------------------------------------------------
[wpn_ak74_nimble_mp5]:wpn_ak74

$spawn                  = "weapons\wpn_ak74_nimble_mp5"
description             = st_wpn_ak74_nimble_mp5_descr
inv_name                = st_wpn_ak74_nimble_mp5

cost                   = 5100

hit_power                   = 0.35, 0.35, 0.35, 0.35
hit_impulse                     = 100

ammo_class              = ammo_9x19_fmj, ammo_9x19_pbp

upgrades                = up_gr_firstab_ak74, up_gr_seconab_ak74, up_gr_thirdab_ak74, up_gr_fourtab_ak74, up_gr_fifthab_ak74, up_gr_fifthcd_ak74
installed_upgrades      =
upgrade_scheme          = upgrade_scheme_ak74

inv_grid_width       = 5
inv_grid_height      = 2
inv_grid_x           = 15
inv_grid_y           = 28

fire_distance           = 200 ;1000
bullet_speed            = 480
rpm                     = 620
rpm_empty_click         = 200

;звуки
snd_draw                = weapons\ak74_draw
snd_holster             = weapons\generic_holster
snd_shoot               = weapons\ak74_shoot6
snd_shoot1               = weapons\ak74_shoot6

snd_empty               = weapons\gen_empty, 0.5
snd_reload              = weapons\groza_reload_2, 0.7
snd_shoot_grenade       = weapons\gen_grenshoot
snd_reload_grenade      = weapons\gen_grenload, 1.0, 0.8
snd_switch              = weapons\groza_switch_2, 1.0, 0.5
snd_bore        = weapons\ak74_bore, 0.7

hud                     = wpn_ak77_hud
visual                  = dynamics\weapons\wpn_ak77\wpn_ak77.ogf

[wpn_ak77_hud]:hud_base
zoom_hide_crosshair        = true
attach_place_idx        = 0
item_visual                = dynamics\weapons\wpn_ak77\wpn_ak77_hud

hands_position                = -0.120500,-0.180999,0.132501
hands_orientation            = -2.599998,0.000000,-2.549999

hands_position_16x9                = -0.119500,-0.199000,0.091000
hands_orientation_16x9            = -0.750000,1.700000,-4.199999

item_position                = 0.004111,0.008527,-0.005906
item_orientation            = -15.488927,-3.320898,367.220154

shell_point                = 0.017,0.054,0.17
shell_dir               = 0.0, 1.0, 0.0
shell_bone                = wpn_body

fire_point            = 0,0.042,0.684
fire_bone                            = wpn_body
fire_point2                        = 0.0,-0.011,0.553
fire_bone2                = wpn_body

anm_show                        = ak74_draw
anm_hide                = ak74_holster
anm_idle                = ak74_idle
anm_idle_sprint         = ak74_idle_sprint
anm_idle_moving         = ak74_idle_moving
anm_shots               = ak74_shoot
anm_reload              = ak74_reload
anm_idle_aim            = ak74_idle_aim
anm_switch              = ak74_switch_off           ;abakan_switch_off
anm_switch_g            = ak74_switch_on           ;abakan_switch_on
anm_bore                = ak74_idle_bore

anm_hide_w_gl           = ak74_holster_w_gl
anm_show_w_gl           = ak74_draw_w_gl
anm_idle_w_gl           = ak74_idle_w_gl
anm_shots_w_gl          = ak74_shoot_w_gl
anm_reload_w_gl         = ak74_reload_w_gl
anm_idle_w_gl_aim       = ak74_idle_aim_w_gl
anm_idle_sprint_w_gl    = ak74_idle_sprint_w_gl
anm_idle_moving_w_gl    = ak74_idle_moving_w_gl
anm_bore_w_gl           = ak74_idle_bore_w_gl

anm_show_g              = ak74_draw_w_gl                        
anm_hide_g              = ak74_holster_w_gl                        
anm_idle_g              = ak74_idle_w_gl                            
anm_reload_g            = ak74_reload_grenade
anm_idle_g_aim          = ak74_idle_aim_w_gl                        
anm_shots_g             = ak74_shoot_grenade
anm_idle_sprint_g       = ak74_idle_sprint_w_gl                    
anm_idle_moving_g       = ak74_idle_moving_w_gl                    
anm_bore_g              = ak74_idle_bore_w_gl

aim_hud_offset_pos                = -0.101500,0.012500,-0.018000
aim_hud_offset_rot                = -0.032500,-0.032500,0.020000

aim_hud_offset_pos_16x9                = -0.100000,0.033500,0.029000
aim_hud_offset_rot_16x9                = 0.002500,-0.002500,-0.007500

gl_hud_offset_pos               = 0,0,0;-0.053000,-0.059000,0.000000
gl_hud_offset_rot               = 0,0,0;-0.145000,0.000000,0.000000

gl_hud_offset_pos_16x9            = 0,0,0;-0.130000,0.003500,0.000500
gl_hud_offset_rot_16x9            = 0,0,0;0.052500,0.045000,-0.010000

lean_hud_offset_pos        = 0,0,0
lean_hud_offset_rot        = 0,0,0

;-----------------------------------------------------------------------------
; Старый АКМ74 старика Дегтярёва
;-----------------------------------------------------------------------------
[wpn_ak74_old]:wpn_ak74

$spawn                  = "weapons\wpn_ak74_old"
description             = st_wpn_ak74_old_descr
inv_name                = st_wpn_ak74_old

cost                   = 3500

hit_power                   = 0.25, 0.25, 0.25, 0.25
hit_impulse                     = 100

upgrades                = up_gr_firstab_ak74, up_gr_seconab_ak74, up_gr_thirdab_ak74, up_gr_fourtab_ak74, up_gr_fifthab_ak74, up_gr_fifthcd_ak74
installed_upgrades      =
upgrade_scheme          = upgrade_scheme_ak74

inv_grid_width       = 5
inv_grid_height      = 2
inv_grid_x           = 15
inv_grid_y           = 30

condition_shot_dec          = 0.001
condition_queue_shot_dec    = 0.0012

ammo_mag_size        = 30

fire_distance           = 180 ;1000
bullet_speed            = 450
rpm                     = 590
rpm_empty_click         = 200

;звуки
snd_draw                = weapons\ak74_draw
snd_holster             = weapons\generic_holster
snd_shoot               = weapons\ak74_shoot3
snd_shoot1               = weapons\ak74_shoot3

snd_empty               = weapons\gen_empty, 0.5
snd_reload              = weapons\groza_reload_2, 0.7
snd_shoot_grenade       = weapons\gen_grenshoot
snd_reload_grenade      = weapons\gen_grenload, 1.0, 0.8
snd_switch              = weapons\groza_switch_2, 1.0, 0.5
snd_bore        = weapons\ak74_bore, 0.7

hud                     = wpn_ak78_hud
visual                  = dynamics\weapons\wpn_ak78\wpn_ak78.ogf

[wpn_ak78_hud]:hud_base
zoom_hide_crosshair        = true
attach_place_idx        = 0
item_visual                = dynamics\weapons\wpn_ak78\wpn_ak78_hud

hands_position                = -0.120500,-0.180999,0.132501
hands_orientation            = -2.599998,0.000000,-2.549999

hands_position_16x9                = -0.119500,-0.199000,0.091000
hands_orientation_16x9            = -0.750000,1.700000,-4.199999

item_position                = 0.004111,0.008527,-0.005906
item_orientation            = -15.488927,-3.320898,367.220154

shell_point                = 0.017,0.054,0.17
shell_dir               = 0.0, 1.0, 0.0
shell_bone                = wpn_body

fire_point            = 0,0.042,0.684
fire_bone                            = wpn_body
fire_point2                        = 0.0,-0.011,0.553
fire_bone2                = wpn_body

anm_show                        = ak74_draw
anm_hide                = ak74_holster
anm_idle                = ak74_idle
anm_idle_sprint         = ak74_idle_sprint
anm_idle_moving         = ak74_idle_moving
anm_shots               = ak74_shoot
anm_reload              = ak74_reload
anm_idle_aim            = ak74_idle_aim
anm_switch              = ak74_switch_off           ;abakan_switch_off
anm_switch_g            = ak74_switch_on           ;abakan_switch_on
anm_bore                = ak74_idle_bore

anm_hide_w_gl           = ak74_holster_w_gl
anm_show_w_gl           = ak74_draw_w_gl
anm_idle_w_gl           = ak74_idle_w_gl
anm_shots_w_gl          = ak74_shoot_w_gl
anm_reload_w_gl         = ak74_reload_w_gl
anm_idle_w_gl_aim       = ak74_idle_aim_w_gl
anm_idle_sprint_w_gl    = ak74_idle_sprint_w_gl
anm_idle_moving_w_gl    = ak74_idle_moving_w_gl
anm_bore_w_gl           = ak74_idle_bore_w_gl

anm_show_g              = ak74_draw_w_gl                        
anm_hide_g              = ak74_holster_w_gl                        
anm_idle_g              = ak74_idle_w_gl                            
anm_reload_g            = ak74_reload_grenade
anm_idle_g_aim          = ak74_idle_aim_w_gl                        
anm_shots_g             = ak74_shoot_grenade
anm_idle_sprint_g       = ak74_idle_sprint_w_gl                    
anm_idle_moving_g       = ak74_idle_moving_w_gl                    
anm_bore_g              = ak74_idle_bore_w_gl

aim_hud_offset_pos                = -0.101500,0.012500,-0.018000
aim_hud_offset_rot                = -0.032500,-0.032500,0.020000

aim_hud_offset_pos_16x9                = -0.100000,0.033500,0.029000
aim_hud_offset_rot_16x9                = 0.002500,-0.002500,-0.007500

gl_hud_offset_pos               = 0,0,0;-0.053000,-0.059000,0.000000
gl_hud_offset_rot               = 0,0,0;-0.145000,0.000000,0.000000

gl_hud_offset_pos_16x9            = 0,0,0;-0.130000,0.003500,0.000500
gl_hud_offset_rot_16x9            = 0,0,0;0.052500,0.045000,-0.010000

lean_hud_offset_pos        = 0,0,0
lean_hud_offset_rot        = 0,0,0
 


При попадании в монстров, игра зависает.  Вот лог с ошибкой.
 

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

FATAL ERROR
 
[error]Expression    : !m_error_code
[error]Function      : raii_guard::~raii_guard
[error]File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
[error]Line          : 748
[error]Description   : No such operator defined
 

stack trace:


Добавил инфу с оружием в
 

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

gamedata\configs\misc\inventory_upgrades.ltx
gamedata\configs\misc\stalkers_upgrade_info.ltx
gamedata\configs\mp\mp_ranks.ltx


Ну и добавил новые файлы в папку meshes\dynamics\weapons\
В чем может быть проблема зависаний и как это исправить?

  • Сочувствую 2
Ссылка на комментарий

@Antolich, прежде всего вы ошиблись темой. Здесь публикуют готовые примеры кода, который новисы потом могут использовать в своих работах, так шта геть в ковырялку.

  • Согласен 1

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий

На тему дизайна освещения и визуальных приемов получения сочной картинки

DEAD AIR 1.0 капитан Графоний в деле

  • Нравится 1
  • Полезно 1
Ссылка на комментарий
26.05.2020 в 19:07, misterok21 сказал(а):

Как сделать некролог (сообщение о смерти)

Функция не работает.

 Моя нычкаНычка в арендованном у Опричника холодильнике  

Мы хорошие ребята, жаль патронов маловато:):ukostra:

UriZzz.gif

Ссылка на комментарий

@UriZzz , xex... а там просто скромно умалчивается, что рассчитано на использование в старших платформах.

Сравни форматы вывода новостных сообщений ТЧ vs ЧН в news_manager.script, например.

Т.е. для ТЧ будет что-то наподобие такого:

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

    if killer_comm ~= nil then
...
        local task_texture, task_rect = get_texture_info("ui_iconsTotal_weapons")
        local news_text = news_caption .. "%c[230,255,128,64]" .. m_text_kill_string
        db.actor:give_game_news(news_text, task_texture, task_rect, 5*1000, 5*1000)
        if shans > 70 then
                local task_texture, task_rect = get_texture_info("ui_iconsTotal_grouping")
                local dead_news = dead_caption .. death_komment[math.random(table.getn(death_komment))]
                db.actor:give_game_news(dead_news, task_texture, task_rect, 5*1000, 5*1000)
        end
    end

news_caption = '...', dead_caption = '...' - соответствующие строковые заголовки для типов сообщений (кто погиб и комментарии).

 

  • Спасибо 1
Ссылка на комментарий

 

В чем прикол вылета? Буквально вчера появился после того как я не много подредактировал логику [meet] нпс, локация загружается спокойно, но спустя 10 секунд игры, при подходе к нпс с редактированой логикой вылет, решил вернуть все как есть, но снова такой же вылет, что я сделал не так?

 

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : C stack overflow

 

Изменено пользователем black_stalker1337
Ссылка на комментарий
1 час назад, black_stalker1337 сказал:

В чем прикол вылета?

 

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

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

только на нашем форуме поиск выдаёт овер 400 результатов по запросу    raii_guard::~raii_guard,

ищущий да обрящет!!!

  • Полезно 1
Ссылка на комментарий

Здравствуйте. Хочу написать метод возвращения в ЧН губной гармошки. В интернете есть статьи для ТЧ, но в ЧН требуются дополнительные действия, которые пришлось поискать.

Сначала открываем файл xr_kamp.script по адресу gamedata/scripts

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

 

Здесь в строчке  self.trans_kamp = { idle  = { idle = 0, pre_harmonica = 0, pre_guitar = 50, story = 50}, выставляем вероятность pre_harmonica выше нуля, я например сделал так:  self.trans_kamp = { idle  = { idle = 0, pre_harmonica = 20, pre_guitar = 30, story = 50} но в сумме должно получиться не больше 100. Параметр pre_harmonica — это вероятность с которой НПС начнет играть на гармошке, pre_guitar —  соответственно вероятность игры на гитаре, и story — предположительно вероятность рассказа анекдотов. Далее ищем в файле этот отрывок и убираем черточки впереди:      
--        if npc:object("harmonica_a") then
--            self.npc[npc_id].states["play_harmonica"] = true
--            self.npc[npc_id].states["wait_harmonica"] = true
--            self.kamp_states["pre_harmonica"] = true
--            self.kamp_states["harmonica"] = true
--            self.kamp_states["post_harmonica"] = true
--        else
            self.npc[npc_id].states["play_harmonica"] = false
            self.npc[npc_id].states["wait_harmonica"] = false
            self.kamp_states["pre_harmonica"] = false
            self.kamp_states["harmonica"] = false
            self.kamp_states["post_harmonica"] = false
--        end

 

Дальше находим файл character_items.xml по адресу gamedata/configs/gameplay

Где в список добавляем: harmonica_a = 1, prob=0.6 \n, это позволит гармошке появляться в инверторе НПС, где первая цифра кол-во предметов, а вторая (0.6) вероятность появления, можете написать свою, но она должна быть не больше 1

Далее файл script_sound_music_and_stories.ltx по адресу gamedata/configs/misc:
 

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

 

В нем пишем в самом начале под:

intro_music
play_guitar
reac_music
play_harmonica ;- добавляем это

 

Далее под:

 

[reac_music]
type = npc
avail_communities = csky, stalker, bandit, dolg, freedom, army, renegade, killer, ecolog
npc_prefix = true
path = reactions\music\reaction_music_
shuffle = rnd
idle = 1,1,100
group_snd = true

 

[play_harmonica]
type = npc
avail_communities = csky, stalker, bandit, dolg, freedom, army, renegade, killer, ecolog 
;- здесь группировки которые будут играть на гармошке.
npc_prefix = true
path = music\harmonica_ 
;- адрес звуковых файлов
shuffle = rnd
idle = 1,1,100

 

Ну и последнее, в ЧН вместо звуковых файлов стоят "заглушка"  файл без звука, поэтому вам придется искать звуковые файлы на стороне. Я брал из Call of Chernobyl. Когда найдете их переименуйте в harmonica_номер по порядку, и скиньте в папку music, по адресу gamedata/sounds/characters_voice/human_номер(придется добавлять во все)/(группировка, к примеру bandit)/music. И ещё, необходимо будет начать новую игру, иначе вылет.

  • Полезно 2
Ссылка на комментарий

Некролог (оповещение о смерти сталкера)
Сложность: легко

Автор скрипта: 
Weanchester, взято из stalkerin.gameru
Доработал: Hind
 

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

Создаём скрипт в папке gamedata/scripts и называем его как хотим (в данном случае dmb.script)
Туда пишем:

local level_name = {
  ["l01_escape"] = "Кордон",
  ["l02_garbage"] = "Свалка",
  ["l03_agroprom"] = "НИИ Агропром",
  ["l03u_agr_underground"] = "Подземелье НИИ Агропром",
  ["l04_darkvalley"] = "Тёмная долина",
  ["l04u_labx18"] = "Лаборатория X-18",
  ["l05_bar"] = "Бар",
  ["l06_rostok"] = "Дикая территория",
  ["l07_military"] = "Арм.склады",
  ["l08_yantar"] = "Янтарь",
  ["l08u_brainlab"] = "Лаборатория X-16",
  ["l10u_bunker"] = "Лаборатория X-10",
  ["l10_radar"] = "Радар",
  ["l11_pripyat"] = "Припять",
  ["l12_stancia"] = "ЧАЭС",
  ["l12_stancia_2"] = "ЧАЭС",
  ["l12u_sarcofag"] = "Саркофаг",
  ["l12u_control_monolith"] = "Управление Монолитом"
            }
 
local community = {
    ["stalker"] = "Одиночка",
    ["monolith"] = "Монолит",
    ["military"] = "Военные",
    ["bandit"] = "Бандит",
    ["killer"] = "Наемник",
    ["ecolog"] = "Эколог",
    ["dolg"] = "Долг",
    ["freedom"] = "Свобода",
    ["zombied"] = "Зомбированный",
    ["trader"] = "Торговец"
            }
 
function kill_npc(victim, who)
  if victim and IsStalker(victim) then
local t = time_global()
local dead_news = "%c[0,255,0,0]ПОГИБ СТАЛКЕР \\n%c[255,160,160,160]Группировка: %c[default]"..community[victim:character_community()].."\\n%c[255,160,160,160]Кличка: %c[default]"..victim:character_name().."\\n%c[255,160,160,160]Локация: %c[default]"..level_name[level.name()]..""
db.actor:give_game_news(dead_news, "ui\\ui_icons_npc", Frect():set(2,130,124,124), 3000, 4000)
elseif t > time_global() + 3000 then
dmb2.news_sound()
end
end

Дальше идём в xr_motivator.script и туда после function motivator_binder:death_callback(victim, who) пишем  dmb.kill_npc(victim, who)
Должно выйти так:

function motivator_binder:death_callback(victim, who)
    dmb.kill_npc(victim, who)
    if who:id() == db.actor:id() then
        xr_statistic.addKillCount(self.object)
    end

И последнее - создаём ещё один скрипт (в данном случае dmb2.script) и туда пишем:

function news_sound()
local snd_obj
snd_obj = xr_sound.get_safe_sound_object([[device\pda\pda_tip]]) -- путь до звукового файла
snd_obj:play_no_feedback(db.actor, sound_object.s2d, 1, vector(), 1.0)
end

 


Вот и всё! Теперь после смерти сталкеров, спустя 3 секунды у нас будет оповещение о смерти со звуком! 


З.Ы. Статья создана новичком, поэтому и оформлена по васяновски. Прошу меня простить если не понятно :)

Рабочая гитара 

Сложность: средне

Автор скрипта: Hind

*некоторые функции брал из открытых источников. к сожалению авторов не помню

Лежала как то без дела гитара, поделюсь с народом.:drinks:

В этом уроке рассмотрим создание рабочей гитары, которая будет играть ту музыку, которую мы захотим. Нам надо всего 3 файла: bind_stalker.script, ваш_скрипт1.script, ваш_скрипт2.script (в моём случае это dmb и dmb2 соответственно)

 

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

Итак, в bind_stalker.script пишем:

В function actor_binder:net_destroy(), пишем self.object:set_callback(callback.use_object, nil),

В function actor_binder:reinit() пишем     self.object:set_callback(callback.use_object, self.use_object, self)

И где хотим добавляем следующую функцию 
function actor_binder:use_object(obj)
  dmb.use_item(obj)    
  dmb.use_snd(obj)
end



Далее идём в наш созданный скрипт (в данном случае у меня это dmb.script), и там пишем следующее:

 

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

 

local tSound ={
gitara      = "interface\\inv_gitara",    <-- путь до нашего звука при юзании предмета. Вместо него ставим какой хотим, разумеется
}

function use_item(obj) 
    local obj = obj:section()
    if obj then  
        if obj == "gitara" then  <-- наш предмет (в данном случае я уже создал юзабельный предмет, и подогнал его как Гитару)
            dmb2.start_timer() <-- включаем таймер
        end
    end

end

function use_snd(obj)
   if obj and tSound[obj:section()]  then 
      local snd = xr_sound.get_safe_sound_object(tSound[obj:section()])
      if snd then 
      snd:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 2.0)
      end
   end
   
end    

 


и идём во второй наш скрипт, где пишем:

 

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

   function action_timer()
      alife():create("gitara", db.actor:position(), 1, db.actor:game_vertex_id(), db.actor:id())
   end
 
   function start_timer() <-- функция на которую мы ссылались при юзании в первом скрипте
      local iTimer = time_global() + 17000 <-- наше время песни, т.е. 17 секунд. Спустя 17 секунд, гитара нам вернется в инвентарь.
 
      local function check_timer()
         return time_global() > iTimer
      end
 
      level.add_call(check_timer, action_timer)
   end



Ну, и вроде всё! Не забудьте проверить правильность копирования, убрать стрелочки, с помощью которых я указывал на что либо, и воуаля.

Если где то ошибся, или не работает, маякните :biggrin:

  • Полезно 2
Ссылка на комментарий

Доброго времени суток. Возник вопрос о создании двери, скриптом.

Во-первых, есть ли такая возможность (через all.spawn + ac/dc) 

Во-вторых, если да, то как? Ибо я делал по найденной мною инструкции (Инструкция).

Получаю стабильно вылет без лога. Тестировал так же на чистой 1.0004 

Ссылка на комментарий

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

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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

AMK-Team.ru

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