Overfirst 630 Опубликовано 22 Декабря 2014 (изменено) Ребята, как сделать таймер без вывода на худ, время которого подойдет к концу и выдается инфопоршень?Я делаю мод на АМК Изменено 22 Декабря 2014 пользователем BoBaH_671 Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 10 Января 2015 (изменено) Подскажите плиз, в чем ошибка? Я сделал непися, который ну типа должен застрелиться, вот файл с логикой: [smart_terrains]none = true[logic]active = remark1[remark1]target = 6anim = waitdef_state_standing = warddanger = danger_condition@maroder_bosson_actor_dist_le_nvis = 2 | remark2[remark2]target = actoranim = suicidesnd = zombied_fight_attack meet = no_meetdanger = danger_condition@maroder_bosson_signal = sound_end | remark3[remark3]target = actoranim = suicidemeet = no_meetdanger = danger_condition@maroder_bosson_timer = 500| remark4 %=vovan.valter_shot%[remark4]target = actoranim = suicidemeet = no_meetdanger = danger_condition@maroder_bosson_timer = 150| %=kill%[danger_condition@maroder_boss]ignore_distance = 0ignore_distance_corpse = 0 И вот когда я подхожу к нему, через некоторое время происходит вылет: Expression : fatal errorFunction : CScriptEngine::lua_errorFile : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cppLine : 73Description :Arguments : LUA error: ....r. - shadow of chernobyl\gamedata\scripts\_g.script:1121: bad argument #2 to 'format' (string expected, got no value) А когда я убираю из логики строку %=vovan.valter_shot% все нормально работает, он сдыхает! Но мне надо еще звук выстрела, вот сама функция: function valter_shot()local snd_obj = xr_sound.get_safe_sound_object([[weapons\t_desert_eagle_shot]])snd_obj:play(db.actor, 0, sound_object.s2d)end Короче подскажите, в чем ошибка? Мне просто нужно вставить звук выстрела, но вылет! Помогите плиз! Изменено 10 Января 2015 пользователем BFG Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 11 Января 2015 (изменено) Народ, кто подскажет: как создать переход с локи на локу? Так, уже все сделал с готовыми скриптами... Но токо что означают эти цифры? function create_agro_taynik() -- создается переход c АГРОПРОМА В ТАЙНИК СТРЕЛКА if (not has_alife_info( "teleport_to_taynik" )) then y_level.create_level_changer(60000, vector():set( -45.089,-0.637,-34.386 ),194126,654, 3053, 717, vector():set( -75.975,-6.726,-74.848 ), vector():set( 0.0,1.5,0.0 ),"l03u_agr_underground",0) db.actor:give_info_portion("teleport_to_taynik") end -- создается переход ИЗ ТАЙНИКА СТРЕЛКА НА АГРОПРОМ if (not has_alife_info( "teleport_from_taynik" )) then y_level.create_level_changer(60001, vector():set( -81.394,-4.946,-70.915 ),2709,717, 194118, 695, vector():set( -47.207,-0.364,-40.833 ), vector():set( 0.0,3.0,0.0 ),"l03_agroprom",0) db.actor:give_info_portion("teleport_from_taynik") end end -81.394,-4.946,-70.915 - это ясно - позиция А числа 2709 и 717 вероятно гейм и левел вертексы, но что за числа 194118 и 695? Разжуйте плиз. Изменено 11 Января 2015 пользователем BoBaH_671 Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 12 Января 2015 Такс, еще раз обращаюсь за помощью... Как сделать, чтобы ГГ выдавался инфопоршень при переходе с локи на локу? 1 Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 14 Января 2015 Народ, помогите плиз. Я хочу сделать, чтобы непись говорил что-нибудь, короче, знаю я, что в логике надо прописатьsnd = ... , но только в какие файлы прописывать свой звук? Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 20 Января 2015 Народ, как стартануть таймер в АМК моде, после окончания времени которого выдается инфопоршень? В амк.скрипт че то писать надо... Помогите плиз! Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 6 Февраля 2015 Добрый день. Меня мучает один вопрос: как узнать координаты ГГ на мультиплеерной карте? Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 11 Июля 2015 (изменено) Как прописать custom_data определенному объекту через скрипт? Завалялась вот функция: local obj=alife():create("esc_stalk",vector():set(-63.919,6.269,-36.914),283878,3051) local params=amk.read_stalker_params(obj) params.custom="[logic]\ncfg = scripts\\name.ltx" ---- путь к файлу логики. params.sid=12547 amk.write_stalker_params(params,obj) Работать будет только с АМК модом. Изменено 11 Июля 2015 пользователем BoBaH_671 1 Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 25 Августа 2015 Чтобы заспавнить правильно левел ченджер нужно использовать net-packet @Grif_on, спавн LC через скрипт: function create_level_changer( p_story_id, -- STORY_ID нового level_changer (понадобится нам позже) p_position, -- вектор, координаты точки, в которой будет располагаться центр нового level_changer p_lvertex_id, -- level_vertext_id - идентифицируют уровень, на котором будет создан level_changer p_gvertex_id, -- game_vertext_id p_dest_lv, -- level_vertex_id - идентифицируют уровень, на который level_changer будет перебрасывать игрока p_dest_gv, -- game_vertex_id p_dest_pos, -- координаты точки, в которой на новом уровне окажется игрок p_dest_dir, -- направрение взгляда игрока p_dest_level, -- название уровня, например "L11_Pripyat" p_silent -- следует задать 1, чтобы подавить вопрос о смене уровня (автоматический переход) ) local obj = alife():create("level_changer", p_position, p_lvertex_id, p_gvertex_id) level.map_add_object_spot(obj.id, "level_changer", "") local packet = net_packet() obj:STATE_Write(packet) -- свойства cse_alife_object 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() -- свойства cse_shape local shape_count = packet:r_u8() for i=1,shape_count do local shape_type = packet:r_u8() if shape_type == 0 then -- sphere local center = packet:r_vec3() local radius = packet:r_float() else -- box 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 -- свойства cse_alife_space_restrictor local restrictor_type = packet:r_u8() -- свойства cse_level_changer 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) -- 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) -- level_vertex_id packet:w_u32( bit_not(193) ) -- object_flags = -193 = 0xFFFFFF3E packet:w_stringZ(custom_data) packet:w_u32(p_story_id) -- story_id packet:w_u32(spawn_story_id) packet:w_u8(1) -- количество фигур -- packet:w_u8(0) -- тип фигуры: сфера -- packet:w_vec3(vector():set(0, 0, 0)) -- sphere_center -- packet:w_float(3.0) packet:w_u8(1) -- тип фигуры: box packet:w_float(2) -- axis_x_x packet:w_float(0) -- axis_x_y packet:w_float(0) -- axis_x_z packet:w_float(0) -- axis_y_x packet:w_float(4) -- axis_y_y packet:w_float(0) -- axis_y_z packet:w_float(0) -- axis_z_x packet:w_float(0) -- axis_z_y packet:w_float(4) -- axis_z_z packet:w_float(0) -- offset_x packet:w_float(0) -- offset_y packet:w_float(0) -- offset_z packet:w_u8(3) -- restrictor_type packet:w_u16(p_dest_gv) -- destination game_vertex_id packet:w_s32(p_dest_lv) -- destination level_vertex_id packet:w_vec3(p_dest_pos) -- destination position packet:w_vec3(p_dest_dir) -- destination direction (направление взгляда) packet:w_stringZ(p_dest_level) -- destination level name packet:w_stringZ("start_actor_02") -- some string, always const packet:w_u8(p_silent) -- 1 for silent level changing packet:r_seek(0) obj:STATE_Read(packet, packet:w_tell()) news_manager.send_tip(db.actor, "Новый путь", nil, nil, 10000) end --Сам спавн function lc() if (not has_alife_info("blablabla" )) then script_name.create_level_changer(11111, vector():set(82.091148376465, 24.181016921997, -22.771390914917), 432354, 3119, 2349, 158301, vector():set(369.19384765625, -0.00164741277694702, -172.899780273438), vector():set( 0.0,0.0,0.0 ),"L12_Stancia",0) db.actor:give_info_portion("blablabla") end end 1 Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 27 Февраля 2016 (изменено) Как заставить ГГ в какой-то момент перестать двигаться? level.disable_input() -- блокировка управления level.enable_input() -- разблокировка управления Блочится даже управление мышью. Изменено 27 Февраля 2016 пользователем BoBaH_671 1 Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 28 Февраля 2016 У меня на компьютере нет level.script, может кто скинет? Это пространство имён. Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 9 Марта 2016 Как рандомно выбрать 3 предмета из этой таблицы, и, допустим, заспавнить их ГГ? local item_list = {"medkit", "bread", "vodka"} function spawn_random_item() local a = item_list[math.random(table.getn(item_list))] alife():create(a, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), db.actor:id()) end 1 Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 21 Июня 2016 @Romann, если ты вызывал из логики рестриктора фунцкию, то это не является правильным. Нужно юзать схему sr_cutscene, подробнее о ней можно узнать тут. 1 Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 23 Июня 2016 (изменено) @CRAZY_STALKER666, vector():set(x,y,z) попробуй. Изменено 23 Июня 2016 пользователем BoBaH_671 1 Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 2 Июля 2016 как проверить находиться ли ГГ в диалоге с НПЦ А разве не подходит? if db.actor:is_talking() then ... end Или тебе надо проверить даилог с конкретным НПС? 1 Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 13 Июля 2016 Вопрос, наверно, глупый, но как вызывать функции из других скриптов без указания имени скрипта, в котором функция находится? Как это сделано, например, в _g.script. Там, полагаю, и нужно решать все это дело. Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 13 Июля 2016 @Dennis_Chikin, что не так? Повторю. Как можно вызывать функции из других скриптов, при это не указывая их имя(скриптов, разумеется). Вот есть _1.script, в нем функция 123, как её вызвать из других скриптов без указания имени скрипта? _1.123(), а я хочу 123(). Где надо свои скрипты регистрировать, чтобы это работало? Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 13 Июля 2016 @Дизель, ну я же задал вопрос. Ответа в твоём посте что-то не вижу, по делу, пожалуйста. Какая разница, для каких мне целей оно надо? Для удобства. Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 13 Июля 2016 (изменено) @Дизель, give_info, abort. Только они зареганы в _g.script, а я хочу в своём файле сделать подобное. Денис, спасибо, сразу твой пост не заметил. С телефона просто... Изменено 13 Июля 2016 пользователем BoBaH_671 Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение
Overfirst 630 Опубликовано 18 Июля 2016 Есть таблица с кучей поршней. Как сделать выдачу поршня или что ещё, если из этой таблицы имеем более, к примеру, 20-ти поршней? Ранее был известен под ником BoBaH_671. Поделиться этим сообщением Ссылка на сообщение