Это популярное сообщение. Dennis_Chikin 3 658 Опубликовано 16 Мая 2014 Это популярное сообщение. Поделиться Опубликовано 16 Мая 2014 Ковыряемся в файлах ТЧ Прежде чем писать в тему - внимательно читаем первый пост, и пользуемся поиском. Возможно, ответ на Ваш вопрос уже есть. Касательно телепатии: если Вы передаете Ваши файлы телепатическим путем - ответы будут передаваться тоже телепатически. Если Вы предлагаете угадать, отчего у Вас в подвале происходит странный стук - ответ будет передан стуком. 4 8 6 12 Солянка обезжиренная, диетическая, полезные советы по "солянке", текущий тестовый патч Ссылка на комментарий
Monnoroch 6 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 (изменено) Вертолет летит.Есть метод вычисления его вектора скорости.Есть метод вычисления его координат. Мне надо на векторе его скорости с началом отсчета в точке его координат найти точку. Схема: O------->------>---o------->> O -начало - о - точка на векторе. Вектор - произвольный Расстояние от О до о = 5. Как мне получить координаты точки о? Добавлено через 4 мин.: Как я понял мне надо: local newpos = vector() newpos:mad(obj:position(),obj:get_helicopter():GetCurrVelocityVec(), 5) Я прав? Просто единственный раздел математики,вызывающий у меня трудности - векторы... А уж при переводе на программирование... Изменено 4 Августа 2009 пользователем Monnoroch Ссылка на комментарий
Malandrinus 615 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 local newpos = vector() newpos:mad(obj:position(),obj:get_helicopter():GetCurrVelocityVec(), 5) вроде так, с небольшой поправкой (я там ранее сам недопонял) newpos:mad(obj:position(),obj:get_helicopter():GetCurrVelocityVec():normalize(), 5) Надо ещё было привести вектор скорости к единичному. Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Monnoroch 6 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 malandrinus, а зачем именно к единичному? Ссылка на комментарий
Kirag 39 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 malandrinus, Вот функция спавна вертолета: function heli(posx,posy,posz,lvid,gvid,logic) local obj = alife():create("helicopter",vector():set(posx,posy,posz),lvid,gvid) 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_s32 = packet:r_s32() local level_vertex_id = packet:r_s32() local object_flags = packet:r_s32() local custom_data = packet:r_stringZ() local story_id = packet:r_s32() local cse_alife_object__unk3_s32 = packet:r_s32() -- свойства cse_visual local model_visual = packet:r_stringZ() local cse_visual__unk1_u8 = packet:r_u8() -- свойства cse_motion local motion_name = packet:r_stringZ() -- свойства cse_ph_skeleton local skeleton_name = packet:r_stringZ() local cse_ph_skeleton__unk1_u8 = packet:r_u8() local cse_ph_skeleton__unk2_u16 = packet:r_u16() -- свойства cse_alife_helicopter local cse_alife_helicopter__unk1_sz = packet:r_stringZ() local engine_sound = packet:r_stringZ() --устанавливаем логику custom_data = "[logic]\ncfg = scripts\\heli\\"..logic..".ltx" -- теперь заполняем нужные параметры -- свойства cse_alife_object packet:w_begin(game_vertex_id) packet:w_float(cse_alife_object__unk1_f32) packet:w_s32(cse_alife_object__unk2_s32) packet:w_s32(level_vertex_id) object_flags = bit_not(5) -- ~5 = 0xfffffffa packet:w_s32(object_flags) packet:w_stringZ(custom_data) packet:w_s32(-1) packet:w_s32(cse_alife_object__unk3_s32) -- свойства cse_visual packet:w_stringZ(model_visual) packet:w_u8(cse_visual__unk1_u8) -- свойства cse_motion packet:w_stringZ(motion_name) -- свойства cse_ph_skeleton skeleton_name = "idle" packet:w_stringZ(skeleton_name) packet:w_u8(cse_ph_skeleton__unk1_u8) packet:w_u16(cse_ph_skeleton__unk2_u16) -- свойства cse_alife_helicopter cse_alife_helicopter__unk1_sz = "idle" engine_sound = "alexmx\\helicopter" packet:w_stringZ(cse_alife_helicopter__unk1_sz) packet:w_stringZ(engine_sound) -- считываем скорректированные параметры packet:r_seek(0) obj:STATE_Read(packet, packet:w_tell()) return obj end Вот вертушка из алл.спавна: [107] ; cse_abstract properties section_name = helicopter name = esc_heli position = -317.183898925781,16.3679752349854,83.289665222168 direction = 0,-1.47526597976685,0 ; cse_alife_object properties game_vertex_id = 0 distance = 0 level_vertex_id = 594270 object_flags = 0xfffffffa custom_data = <<END [logic] ...тут логика... END story_id = 14 ; cse_visual properties visual_name = physics\vehicles\mi24\veh_mi24_u_01 ; cse_motion properties motion_name = helicopter\aaa.anm ; cse_ph_skeleton properties skeleton_name = idle ; cse_alife_helicopter properties startup_animation = idle engine_sound = alexmx\helicopter В нет-пакете обрабатываются свойства cse_alife_object, cse_visual, cse_motion, cse_ph_skeleton, cse_alife_helicopter - т.е. все свойства из алл.спавна, кроме cse_abstract. Насколько я понимаю, после команды obj:STATE_Write(packet) пакет начинает разбираться последовательно и с самого начала, т.е. в начале пакета никакого direction нет. Более того, операции над вектором r_vec3() в функции вообще ни одной нет, стало быть перепутать я его ни с чем не мог. Отсюда и вопрос - где же искать этот вектор в нет-пакете? Мои работы: Ночные прицелы + смена ножевого слота AI вертолетов + ПЗРК Soul Cube Работаю только с ТЧ. С ковырянием ЧН/ЗП не связываюсь ни в какой форме. Совсем. Ссылка на комментарий
slawok25 0 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 Подскажите как называется кубик Рубика для акима, чтоб его прописать Сидоровичу? [spoiler=ИГРАЮ В+конф.компа] AMk1.4.1+HC oт 26.04.09+Chapel'nik 1.1.2 от 29.04.09+Monorocn&Zekaaddonsv 1.3+Beautiful_Weather_1.0 Операционная система Microsoft Windows XP Professional Пакет обновления ОС Service Pack 2 DirectX 4.09.00.0904 (DirectX 9.0c) Тип ЦП DualCore Intel Core 2 Duo E6550, 2333 MHz (7 x 333) Системная плата Gigabyte GA-P35-DS3 Чипсет системной платы Intel Bearlake P35 Системная память 3584 Мб Видеоадаптер Radeon X1900 Series (512 Мб) 3D-акселератор ATI Radeon X1900 XT/XTX (R580) Разрешение монитора в игре 1280х1024 Дисковый накопитель SAMSUNG HD321KJ (320 Гб, 7200 RPM, SATA-II) Дисковый накопитель ST3500320AS (500 Гб, 7200 RPM, SATA-II)[/b] Оптический накопитель NEC DVD_RW ND-4551A Ссылка на комментарий
Malandrinus 615 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 а зачем именно к единичному? операция mad(pos, dir, dist) - это комбинация pos + dir*dist При умножении единичного вектора скорости на 5 получается вектор, длина которого 5, а направление совпадает со старым вектором скорости. Он добавляется к позиции. Это разве не то, что надо? Вот только вопрос, что будет, если скорость будет нулевая. Полагаю, это стоит проверять отдельно Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
1deFULL 0 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 (изменено) Какой текстурой обтянуто лицо Сяка(торговец на Радаре)? Какой файл отвечает за трансмутацию артефактов(содержит информацию о том,в какую аномалию кидать арт)? Изменено 4 Августа 2009 пользователем 1deFULL Ссылка на комментарий
Gonarh 5 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 есть левел вертекс допустим lvid получить его позицию просто: level.vertex_position(lvid) а кто знает как из левел вертекса получить гейм вертекс, это вообще реально? название локации для этого левел вертекса если что известно 118 101 110 105 44 32 118 105 100 105 44 32 118 105 99 105 Ссылка на комментарий
Monnoroch 6 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 (изменено) Кто нибудь знает как из конфига высчитать скорость снаряда РПГ? Или чистая физика + математика только? Изменено 4 Августа 2009 пользователем Monnoroch Ссылка на комментарий
Push85 4 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 (изменено) Gonarh, можно перебрать все гейм вертексы на локации и найти ближайший, вот так можно получить положение гейм вертекса: game_graph():vertex(a):game_point() А вообще посмотри скрипт динамических аномалий из AMK мода, там они как-рас определяли гейм вертекс из левел вертекса Изменено 4 Августа 2009 пользователем 8push5 Возможно всё, ну или почти всё. Ссылка на комментарий
RvP 1 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 Monnoroch, булет спид из конфига для момента выстрела, а дальше физика в мире сталкеров(х2) Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Monnoroch 6 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 RvP, нет. у РПГ НЕТ буллет спид,в том то и фигня. Ссылка на комментарий
RvP 1 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 Monnoroch, кусок кода из w_rpg7.ltx fire_distance = 400 bullet_speed = 200;300 ;начальная скорость пули rpm = 5 Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Monnoroch 6 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 хмм.но там же снаряд сначала мееедленно вылетает и быстро набирает скорость - ракета то с двигателем вроде как. Ссылка на комментарий
RvP 1 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 Monnoroch, ето да, но параметр в конфиге присутствует. и да, ракета сделана по примеру снаряда с двигателем. ето походу начальная а дальше розганяется. вот еще че глянь-ето из геликоптер лтх ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Свойства CustomRocket ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; engine_present = true ;присутствует ли в ракете двигатель engine_work_time = 5000 ;время работы двигателя (в милисекундах) engine_impulse = 1000 ; engine_impulse_up = 137.34;215.58;137.34 = 2*9.81*7 - значение этого параметра (который является некой подъемной силой, вопреки названию), ;при котором ракета массой 7кг не опускается под дейсвием ;гравитации. 2*9.8=19.62 - ускорение свободного падения в мире сталкеров ;при меньших значениях ракета будет опускаться, при больших подниматься lights_enabled = TRUE ;свет вокруг ракеты, во время полета trail_light_color = 0.7,0.6,0.3 trail_light_range = 20.0 engine_particles = weapons\rpg_trail_01 ;fly_particles = weapons\rpg_trail_01 force_explode_time = 10000; msec [sect_hm_immunities] burn_immunity = 1.0 strike_immunity = 1.0 shock_immunity = 1.0 wound_immunity = 1.0 radiation_immunity = 1.0 telepatic_immunity = 1.0 chemical_burn_immunity = 1.0 explosion_immunity = 1.0 fire_wound_immunity = 0.05 Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Министр 3 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 (изменено) 1deFULL, текстура лица Сяка в NLC - act_sold_bandan_head_1.dds. А за трансмутацию артефактов отвечает скрипт amk_mod.script. Изменено 4 Августа 2009 пользователем Министр Ссылка на комментарий
Monnoroch 6 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 (изменено) это я видал.я не уверен,все ли работает тут...или чтото с ранних билдов осталось может? engine_impulse - это какой импульс? суммарный (за 5 секунд) или за секунду? надо думать...\ ==== что врятли? Изменено 4 Августа 2009 пользователем Monnoroch Ссылка на комментарий
RvP 1 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 (изменено) Monnoroch, врятли, тем более тут и про двигатель и про отклонения если делали мозгом, то сумарный, если пыс то момент врятли ето не связано Изменено 4 Августа 2009 пользователем RvP Vita sine libertate, nihil Vita sine litteris - mors est Ссылка на комментарий
Monnoroch 6 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 (изменено) malandrinus, это дело возвращает нил... Правда я там наворотил: function look_pos(obj1,obj2) if not obj1 or not obj2 then return nil end local dist = obj2:position():distance_to(obj1:position()) local a = system_ini():r_float(obj2:active_item():section(),"bullet_speed") local b = obj1:get_helicopter():GetCurrVelocity() if not a or not b then return nil end local koof = b/a local delda_s = koof*dist -- это неточно... local newpos = vector() local kon = newpos:mad(obj:position(),obj:get_helicopter():GetCurrVelocityVec():normalize(), delda_s) return kon end obj1 - вертолет obj2 - непись Оба obj точно не nil. Изменено 4 Августа 2009 пользователем Monnoroch Ссылка на комментарий
Malandrinus 615 Опубликовано 4 Августа 2009 Поделиться Опубликовано 4 Августа 2009 (изменено) В нет-пакете обрабатываются свойства cse_alife_object, cse_visual, cse_motion, cse_ph_skeleton, cse_alife_helicopter - т.е. все свойства из алл.спавна, кроме cse_abstract. Да, походу никак до этих свойств не добраться. Сейчас сам внимание обратил, что пакет всегда начинается уже с cse_alife_object. Наверное, в этом есть смысл. Там такие свойства, что менять их весьма чревато. а кто знает как из левел вертекса получить гейм вертекс, это вообще реально? название локации для этого левел вертекса если что известно game_graph():vertex(a):game_point() game_point() выдаёт "глобальные" координаты, т.е. координаты точки не на уровне, а с учётом расположения уровня относительно остальных. Толку с этих координат мало, поскольку все без исключения остальные координаты - это локальные координаты внутри уровня. Если сравнивать с координатами на уровне, то надо использовать level_point. У меня такое предложение по вычислению gvid. Есть game.graph, в котором всё есть вся необходимая информация. Его можно распаковать в фармат ini/ltx файла с помощью утилитки xiani. Тогда, из игры нужную информацию можно получать с помощью класса ini_file. Для разовых действий типа спавна вполне сгодится, и главное - абсолютно надёжно. хмм.но там же снаряд сначала мееедленно вылетает и быстро набирает скорость Ну если вылетит с нулевой скоростью, то плюхнется на землю прямо перед носом стреляющего =) Хотя это в реальности. В игре возможно и в самом деле начинает с нулевой. это дело возвращает нил... mad не возвращает значение, а меняет значение вектора, для которого вызывается. Поэтому return newpos И ещё мне думается, что вот это local a = system_ini():r_float(obj2:active_item():section(),"bullet_speed") лучше бы сделать один раз где-нибудь заранее. Очень сильно подсадит производительность Изменено 4 Августа 2009 пользователем malandrinus Плагины Total Commander для работы с игровыми архивами: Архиваторный плагин (для работы с одиночным архивом): link1 link2 Системный плагин (для распаковки установленной игры): link1 link2 Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти