Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
_Призрак_ 11 Опубликовано 5 Февраля 2010 Поделиться Опубликовано 5 Февраля 2010 Не подскажете как в Тенях чернобыля сделать лекарей как в зове? Я где то видел функцию но не помню где Freedom Ссылка на комментарий
Garry_Galler 7 Опубликовано 5 Февраля 2010 Поделиться Опубликовано 5 Февраля 2010 (изменено) malandrinus как сделать проверку на то что объект попадает в заданный конус взгляда я толком не знаю. в общем попробовал для начала получить угол между линией до объекта и линией взгляда эктора(точнее камеры) сделал так: --вычитаем из конечной точки начальную - получаем луч вектора от камеры до объекта local ray =obj:position():sub(device().cam_pos) согласно теоремам математики скалярное произведение векторов равно произведению их длин на косинус угла между ними Т.о. чтобы вычислить угол нужно иметь в наличие скалярное произведение векторов --получаем его local dp=ray:dotproduct(device().cam_dir) --получаем произведение длин векторов local len = ray:magnitude()* device().cam_dir:magnitude() --получаем косинус угла --делим скаляр векторов на произведение их длин local cosinus = dp/len --инвертируем косинус угла в реальный угол через аркосинус - и сразу переводим радианы в градусы local angle = math.acos(cosinus)*57 Результат - вроде выдается угол. Но только не совсем точный (+-5-7 градусов). Я подозреваю, что надо позицию камеры заменить на позицию эктора. В общем если где ошибся то поправь пожалуйста - я с математикой не очень :ny_unsure: Или все проще можно сделать? Понятно. Я значит велосипед изобретал - столько раз вроде заглядывал в G скрипт а этих функций не приметил. :ny_smile: Ну что ж попробуем их использовать. Изменено 5 Февраля 2010 пользователем Garry_Galler Ссылка на комментарий
Malandrinus 615 Опубликовано 5 Февраля 2010 Поделиться Опубликовано 5 Февраля 2010 (изменено) Garry_Galler, для всего описанного ещё со времён ТЧ в модуле _G есть готовые функции (примерно тоже самое, что ты написал): yaw_degree3d(v1, v2) - выдаёт угод в градусах между двумя векторами (чистый конус) yaw_degree(v1, v2) - выдаёт угод в градусах между проекциями двух векторов на горизонтальную плоскость (полагаю в данном случае даже более полезно) yaw(v1, v2) - аналогично предыдущей, но в радианах Кстати, эти функции наглядно показывают, что авторы оригинальных скриптов на момент их написания не знали, как пользоваться классом vector. С использованием методов класса vector эти функции можно переписать короче и работать будут раза в три быстрее. device().cam_dir:magnitude()длина этого вектора и так единица. magnitude можно не использовать Направление камеры по любому точнее, чем направление актора. Изменено 5 Февраля 2010 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
SCRIPT 5 Опубликовано 5 Февраля 2010 Поделиться Опубликовано 5 Февраля 2010 всем привет! Народ, вот я так и не нашел урок по добавлению нового видео в сталкера. Ну то есть чтоб все подробно описывалось, как правильно конвертировать, как добавлять и т.д. Есть у кого ссылка на такой урок? Thank you for your honesty. Now fuck off and die. Ссылка на комментарий
Starter 238 Опубликовано 5 Февраля 2010 Поделиться Опубликовано 5 Февраля 2010 (изменено) SCRIPT Создание Видеофайлов для игры S.T.A.L.K.E.R.. Но у меня не получилось. Не нашёл в конверторе Theora FOURCC – THEO, хотя кодеки все свежие и конвертор VirtualDubMod. Может у тебя выйдет. Изменено 5 Февраля 2010 пользователем Starter ЯДиск папка с крутым схроном! Ссылка на комментарий
Garry_Galler 7 Опубликовано 5 Февраля 2010 Поделиться Опубликовано 5 Февраля 2010 (изменено) malandrinus посмотрел я функции из G - да действительно разрабы использовали обычные методы математики. Скалярное произведение считается по обычной формуле. И модуль(длина) каждого вектора вычисляется по стандартной формуле как квадратный корень из сумм квадратов соответствующих координат. Причем ось y для угла проекции двух векторов на плоскость земли не учитывается – (вот из за нее то и неточность видимо у меня - так как при смещении камеры к ногам объекта - значение выравнивается почти к нулю - как и должно). Значит при моем способе - использующем методы класса вектор все быстрее работает? :ny_wink: Кстати сегодня пока рылся в инете (поднимая свои школьные знания по математике в области векторов) наткнулся на одну интересную статью по алгоритму отслеживания столкновений с препятствиями в игровых движках. Там упоминался метод основанный на октодереве - интересно а в сталкере какой алгоритм реализован... Изменено 5 Февраля 2010 пользователем Garry_Galler Ссылка на комментарий
Malandrinus 615 Опубликовано 5 Февраля 2010 Поделиться Опубликовано 5 Февраля 2010 Garry_Galler, здесь вопрос не неточности, а скорее что хотим получить. Если измерять угол от точки взгляда, то это истинный конус взгляда выходит. Но при этом в него могут не попасть объекты рядом с ГГ и в упор не будет виден кто-либо, стоящий прямо перед ГГ (поскольку его координаты - это положение на земле). Поэтому более осмысленной будет функция yaw_degree, которая игнорирует координату y. Между прочим, всё равно будет проблема с объектами слева и справа от "полупространства взгляда", поскольку ближе к ГГ оно сужается. Поэтому имеет смысл ближе определённого расстояния проверять на больший угол видимости. Или вообще-то стоит просто использовать угол обзора, полученный из разрешения монитора и fov камеры. Значит при моем способе - использующем методы класса вектор все быстрее работает? :ny_wink: А ты проверь. Возьми класс profile_timer и замеряй время. Там упоминался метод основанный на октодереве - интересно а в сталкере какой алгоритм реализован... Для физики не знаю, а при движении по AI сетке - никакой. Ну может только проверяется, что узел сетки кем-то занят и то не всегда. Известно же, что неписи ГГ зачастую игнорируют и сквозь стенки ходят и по воздуху гуляют. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Starter 238 Опубликовано 5 Февраля 2010 Поделиться Опубликовано 5 Февраля 2010 (изменено) Увидел в статье по созданию видео насчёт кодека (что нужен не свежий, а старый) всё пошло смог увидить эти Theora FOURCC – THEO, настроил, сконвертировал, открываю файл, пишет не может воспроизвести. Сунул в игру вылет сразу же с таким логом Expression : fatal error Function : CTexture::Load File : E:\stalker\sources\trunk\xr_3da\SH_Texture.cpp Line : 181 Description : <no expression> Arguments : Can't open video stream Подскажите что делать? В чём ошибка? Изменено 5 Февраля 2010 пользователем Starter ЯДиск папка с крутым схроном! Ссылка на комментарий
STARTS 0 Опубликовано 6 Февраля 2010 Поделиться Опубликовано 6 Февраля 2010 (изменено) Подскажите, а чем может быть вызвана вот такая ошибка? Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...ль желанийguygu\gamedata\scripts\bind_stalker.script:244: attempt to index global 'srs' (a nil value) Неужели никто не знает, что это за ошибка? Starter У тебя настройки кажись неправильные Изменено 6 Февраля 2010 пользователем STARTS Ссылка на комментарий
SCRIPT 5 Опубликовано 6 Февраля 2010 Поделиться Опубликовано 6 Февраля 2010 всем привет. вот пытался рандомно выводить сообщения (через 5 минут) и в начале игры вылет: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: ...g\s.t.a.l.k.e.r\gamedata\scripts\bind_stalker.script:211: attempt to perform arithmetic on global 'last_time' (a nil value) function actor_binder:update(delta) object_binder.update(self, delta) local time = game.time() if (time - last_time) > 5*60*1000 then local txt = msg[math.random(#msg)] last_time = time end что не так? Thank you for your honesty. Now fuck off and die. Ссылка на комментарий
Gonarh 5 Опубликовано 6 Февраля 2010 Поделиться Опубликовано 6 Февраля 2010 не задано первоначальное значение last_time ЗЫ. И убери этого жирдяя с аватары - блевать тянет 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Ссылка на комментарий
SCRIPT 5 Опубликовано 6 Февраля 2010 Поделиться Опубликовано 6 Февраля 2010 Gonarh, а как должно быть правильно? напиши плиз. ладно, уберу Thank you for your honesty. Now fuck off and die. Ссылка на комментарий
Gonarh 5 Опубликовано 6 Февраля 2010 Поделиться Опубликовано 6 Февраля 2010 перед функцией напиши local last_time = 0 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Ссылка на комментарий
_Призрак_ 11 Опубликовано 6 Февраля 2010 Поделиться Опубликовано 6 Февраля 2010 Подскажите чем может быть вызван вылет: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\patch_1_0004\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: c:\s.t.a.l.k.e.r\gamedata\scripts\dialogs.script:34: attempt to index field '?' (a nil value) Freedom Ссылка на комментарий
Push85 4 Опубликовано 6 Февраля 2010 Поделиться Опубликовано 6 Февраля 2010 STARTS, синтаксическая ошибка в файле srs.script, или его отсутсвие. Возможно всё, ну или почти всё. Ссылка на комментарий
Gideon Vi 0 Опубликовано 6 Февраля 2010 Поделиться Опубликовано 6 Февраля 2010 Прошу помощи в адаптации мода артефакт для воскрешения любого НПСа к моду OGSE. Первичную интеграцию (system.ltx и bind_stalker.script) я провел сам. При попытке воскресить непись (помещении арта в инвентарь трупа) получаю такой вылет: Expression : fatal error Function : CScriptEngine::lua_error File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp Line : 73 Description : <no expression> Arguments : LUA error: g:\stalker\soc\gamedata\scripts\ressurect.script:31: attempt to index field 'convert_npc' (a nil value) Мод точно работает с АМК (и НС то же). ressurect.script Заранее спасибо Ссылка на комментарий
Push85 4 Опубликовано 6 Февраля 2010 Поделиться Опубликовано 6 Февраля 2010 Gideon Vi, не может найти переменную convert_npc в файле amk.script. Возможно всё, ну или почти всё. Ссылка на комментарий
STARTS 0 Опубликовано 6 Февраля 2010 Поделиться Опубликовано 6 Февраля 2010 (изменено) 8push5 Да не, файл есть, и то что в нём находится, тоже кажись без ошибок 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()) level.add_pp_effector ("teleport.ppe", 2006, false) end function spawn_tele_bar(obj) -- local art_section = "af_electra_moonlight" if obj:section() == "tele_bar" then --and db.actor:object(art_section) then local rnd = math.random(7) if rnd == 1 then bar() alife():release(alife():object(obj:id())) elseif rnd == 2 then bar2() alife():release(alife():object(obj:id())) elseif rnd == 3 then bar3() alife():release(alife():object(obj:id())) elseif rnd == 4 then bar4() alife():release(alife():object(obj:id())) elseif rnd == 5 then bar5() alife():release(alife():object(obj:id())) elseif rnd == 6 then bar6() alife():release(alife():object(obj:id())) else bar7() alife():release(alife():object(obj:id())) end end end function bar() create_level_changer(9821, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), 45474, 1188, vector():set(193.61143493652,0.097166806459427,71.526657104492), vector():set(0.0, 0.0, 0.0), "l05_bar", 1) end function bar2() create_level_changer(9843, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), 47206, 1270, vector():set(198.24176025391,3.271665096283,-77.252685546875), vector():set(0.0, 0.0, 0.0), "l05_bar",1) end function bar3() create_level_changer(9844, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),59366, 1277, vector():set(232.64491271973,5.1447978019714,-113.61502838135), vector():set(0.0, 0.0, 0.0), "l05_bar", 1) end function bar5() create_level_changer(9845, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),68763, 1274, vector():set(276.64755249023,0.055086404085159,-66.742523193359), vector():set(0.0, 0.0, 0.0), "l05_bar", 1) end function bar6() create_level_changer(9846, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),35860, 1238,vector():set(128.80438232422,-4.8249382972717,16.76756477356), vector():set(0.0, 0.0, 0.0),"l05_bar", 1) end function bar7() create_level_changer(9847, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),33903, 1239, vector():set(116.09830474854,-5.3052234649658,12.649393081665), vector():set(0.0, 0.0, 0.0), "l05_bar", 1) end --################################################################################ #################### function spawn_stasok() local obj = amk.spawn_item("stasok",vector():set(-234.90,-19.67,-156.88),47,20038) local tbl = amk.read_stalker_params(obj) tbl.health = 0 tbl.updhealth = 0 amk.write_stalker_params(tbl, obj) end function flash(first_speaker, second_speaker) dialogs.relocate_item_section(first_speaker, "ogg_flash_1", "in") end function xna(stalker, player) return stalker:object ("pda") ~= nil end function pda(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "pda", "out") end function af_rak(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "af_wind", "out") end function proverka_antirad() if not db.actor:object("antirad") then local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Напоминаю: %c[255,230,0,0]Противорадиационные препараты отстутствуют!%c[default]Автоматический ввод препаратов невозможен " db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 3000) end RvP, lekzd - СПС вам, жаль + немогу поставить((((( Изменено 6 Февраля 2010 пользователем STARTS Ссылка на комментарий
RvP 1 Опубликовано 6 Февраля 2010 Поделиться Опубликовано 6 Февраля 2010 STARTS, Checking .../new 2.script: new 2.script (14): mismatched input 'local' expecting ')' Found 1 errors. Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
lekzd 1 Опубликовано 6 Февраля 2010 Поделиться Опубликовано 6 Февраля 2010 STARTS, 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()) level.add_pp_effector ("teleport.ppe", 2006, false) end function spawn_tele_bar(obj) -- local art_section = "af_electra_moonlight" if obj:section() == "tele_bar" then --and db.actor:object(art_section) then local rnd = math.random(7) if rnd == 1 then bar() alife():release(alife():object(obj:id())) elseif rnd == 2 then bar2() alife():release(alife():object(obj:id())) elseif rnd == 3 then bar3() alife():release(alife():object(obj:id())) elseif rnd == 4 then bar4() alife():release(alife():object(obj:id())) elseif rnd == 5 then bar5() alife():release(alife():object(obj:id())) elseif rnd == 6 then bar6() alife():release(alife():object(obj:id())) else bar7() alife():release(alife():object(obj:id())) end end end function bar() create_level_changer(9821, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), 45474, 1188, vector():set(193.61143493652,0.097166806459427,71.526657104492), vector():set(0.0, 0.0, 0.0), "l05_bar", 1) end function bar2() create_level_changer(9843, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(), 47206, 1270, vector():set(198.24176025391,3.271665096283,-77.252685546875), vector():set(0.0, 0.0, 0.0), "l05_bar",1) end function bar3() create_level_changer(9844, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),59366, 1277, vector():set(232.64491271973,5.1447978019714,-113.61502838135), vector():set(0.0, 0.0, 0.0), "l05_bar", 1) end function bar5() create_level_changer(9845, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),68763, 1274, vector():set(276.64755249023,0.055086404085159,-66.742523193359), vector():set(0.0, 0.0, 0.0), "l05_bar", 1) end function bar6() create_level_changer(9846, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),35860, 1238,vector():set(128.80438232422,-4.8249382972717,16.76756477356), vector():set(0.0, 0.0, 0.0),"l05_bar", 1) end function bar7() create_level_changer(9847, db.actor:position(), db.actor:level_vertex_id(), db.actor:game_vertex_id(),33903, 1239, vector():set(116.09830474854,-5.3052234649658,12.649393081665), vector():set(0.0, 0.0, 0.0), "l05_bar", 1) end --################################################################################ #################### function spawn_stasok() local obj = amk.spawn_item("stasok",vector():set(-234.90,-19.67,-156.88),47,20038) local tbl = amk.read_stalker_params(obj) tbl.health = 0 tbl.updhealth = 0 amk.write_stalker_params(tbl, obj) end function flash(first_speaker, second_speaker) dialogs.relocate_item_section(first_speaker, "ogg_flash_1", "in") end function xna(stalker, player) return stalker:object ("pda") ~= nil end function pda(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "pda", "out") end function af_rak(first_speaker, second_speaker) dialogs.relocate_item_section(second_speaker, "af_wind", "out") end function proverka_antirad() if not db.actor:object("antirad") then local news_text = "%c[255,160,160,160]Автоматическая система ввода медицинских препаратов\\n%c[default]Напоминаю: %c[255,230,0,0]Противорадиационные препараты отстутствуют!%c[default]Автоматический ввод препаратов невозможен " db.actor:give_game_news(news_text, "ui\\ui_iconsTotal",Frect():set(0,188,83,47), 0, 3000) end end 2 ошибки были: случайно сделал перенос в комментарии "--########" пропустил один end в конце в следующий раз юзай lua checker i-igroman.ru - Мой, принципиально новый сайт о компьютерных играх Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти