Marafon6540 757 Опубликовано 11 Ноября 2018 Поделиться Опубликовано 11 Ноября 2018 10 минут назад, Romann сказал: давно пора в ТЧ заменить модели мобов на модели из ЗП, как минимум там даже анимации по лучше будут(надо только перегнать недостающие анимки ТЧ - не вижу проблемы) А вот с этого момента можно поподробнее? Особенно про перегон анимок монстров. Если это так просто, то может расскажешь как это сделать? Трилогия Апокалипсис. Упавшая звезда. Честь наемника. v. 1.2 УЗЧН v.1.3 + ОГСРх64 Последний сталкер v. 1.2 ПС v. 1.3 + ОГСРх64 Ссылка на комментарий
Romann 619 Опубликовано 11 Ноября 2018 Поделиться Опубликовано 11 Ноября 2018 (изменено) 13 минут назад, Marafon6540 сказал: Особенно про перегон анимок монстров. А у монстров то зачем перегонять? Просто заменил модельку вместе с анимками и всё, если движок ТЧ без правок, т.е. не тот что упомянут выше, то чисто модельку прогнать через сдк, чтоб выставить шейдеры ТЧ, а анимки оставить как есть. Это уже в случае изменения размера - соответственно и анимки конвертить инструментами в максе от Дена Сташа. Скрытый текст Ох и нафлудили не по теме, ща нас от сюда попрут. Изменено 11 Ноября 2018 пользователем Romann Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
Marafon6540 757 Опубликовано 11 Ноября 2018 Поделиться Опубликовано 11 Ноября 2018 22 минуты назад, Romann сказал: Просто заменил модельку вместе с анимками и всё, Как оказывается все просто... И почему я в своё время почти три месяца убил, но так и не смог химеру из ЗП на чистых "тенях" запустить? Трилогия Апокалипсис. Упавшая звезда. Честь наемника. v. 1.2 УЗЧН v.1.3 + ОГСРх64 Последний сталкер v. 1.2 ПС v. 1.3 + ОГСРх64 Ссылка на комментарий
Zagolski 74 Опубликовано 11 Ноября 2018 Поделиться Опубликовано 11 Ноября 2018 (изменено) 58 минут назад, Romann сказал: Так что я не увидел ни одного весомого аргумента(ИМХО). Основная суть в том, что разработчику своего мода придется переделывать половину всего своего мода. Накидать с ванили на ваниль - не проблема, но когда у тебя 35 лок, мощная качественная оружейка из пары сотен стволов, огромное кол-во уникальных нпс и другое, и все это сделано для ТЧ, - лучше удариться лицом об камень, чем браться за перехлабучивание всего содержимого своего мода из-за ничего. Но да, замена моделей, локаций и рук - это все в плюс, но какой ценой? Изменено 11 Ноября 2018 пользователем Zagolski 1 Ссылка на комментарий
Romann 619 Опубликовано 11 Ноября 2018 Поделиться Опубликовано 11 Ноября 2018 1 минуту назад, Marafon6540 сказал: почему я не смог химеру из ЗП на чистых "тенях" запустить? Без понятия, лично я смог муравья из Фолаута, со всеми анимками от туда же без изменений, на чистом ТЧ запустить, какие же могут возникнуть проблемы при запуске мутанта из ЗП на ТЧ - это только вам знать... Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
AndreySol 215 Опубликовано 11 Ноября 2018 Поделиться Опубликовано 11 Ноября 2018 @Romann Муравьем поделишься ? Ссылка на комментарий
Romann 619 Опубликовано 11 Ноября 2018 Поделиться Опубликовано 11 Ноября 2018 7 часов назад, AndreySol сказал: Муравьем поделишься ? Не сейчас, надо его найти, давно было, напомни через пару дней в ЛС. Мать: ASRock X470 Master SLI. Процессор: AMD Ryzen 9 3900X 12-Core(4200 MHz). Память: Patriot Memory 3200 C16 Series. DDR4-3200(1600МГц), 16Гбх2(32Гб). Видео: GeForce GTX 1060 6GB. Блок питания: CoolerMaster 750 Вт. Корпус: Zalman i3 Edge. Химера конечно сильный хищник, а все держится дома. Чего же ты пришел к ней домой и пытаешься её убить? © Болотный Доктор Ссылка на комментарий
alex5773 1 330 Опубликовано 18 Ноября 2018 Поделиться Опубликовано 18 Ноября 2018 (изменено) -- Изменено 18 Ноября 2018 пользователем alex5773 Ссылка на комментарий
I am Dead 912 Опубликовано 22 Ноября 2018 Поделиться Опубликовано 22 Ноября 2018 Парни помогите под движок OGSR сделать быстрые слоты. Ссылка на комментарий
Shennondoah 130 Опубликовано 29 Ноября 2018 Поделиться Опубликовано 29 Ноября 2018 (изменено) Камрады, прошу помощи, как сделать в ЗП, чтоб загрузочный экран "раскукожить" на весь экран горизонтально, без боковых фреймов? В хмл это не работает, следовательно надо движок править? Изменено 29 Ноября 2018 пользователем Shennondoah Оц тоц перевертоц, бабушка здорова, Оц тоц перевертоц кушает компот. Оц тоц перевертоц и мечтает снова Оц тоц перевертоц пережить налет! Ссылка на комментарий
WizziGun 376 Опубликовано 29 Ноября 2018 Поделиться Опубликовано 29 Ноября 2018 @Shennondoah, Скачиваешь openXray и настраиваешь всё в конфигах. В оригинале только через движок 1 1 ☭- Пролетарии всех стран, соединяйтесь! Ссылка на комментарий
Ddoc 0 Опубликовано 17 Декабря 2018 Поделиться Опубликовано 17 Декабря 2018 Помогите собрать движок SoC в VS 2010... Если можно с подробностями... Ссылка на комментарий
Demosfen 142 Опубликовано 29 Декабря 2018 Поделиться Опубликовано 29 Декабря 2018 Есть тут люди которые смогут дебажить под студией и помогать найти причину вылета? Ссылка на комментарий
Zagolski 74 Опубликовано 30 Декабря 2018 Поделиться Опубликовано 30 Декабря 2018 В 29.12.2018 в 12:55, Demosfen сказал: Есть тут люди которые смогут дебажить под студией и помогать найти причину вылета? Вряд ли кто найдется. Тут со своего голова болит, а уж чужим и подавно никто заниматься не станет. Ссылка на комментарий
НаноБот 741 Опубликовано 4 Января 2019 Поделиться Опубликовано 4 Января 2019 (изменено) Скрытый текст void SBullet::Init(const Fvector& position, const Fvector& direction, float starting_speed, float power, float impulse, u16 sender_id, u16 sendersweapon_id, ALife::EHitType e_hit_type, float maximum_distance, const CCartridge& cartridge, bool SendHit, CBulletManager* manager) { flags._storage = 0; pos = position; speed = max_speed = starting_speed * cartridge.m_kSpeed; VERIFY (speed>0); VERIFY(direction.magnitude()>0); dir.normalize (direction); hit_power = power * cartridge.m_kHit; hit_impulse = impulse * cartridge.m_kImpulse; max_dist = maximum_distance * cartridge.m_kDist; fly_dist = 0; parent_id = sender_id; flags.allow_sendhit = SendHit; weapon_id = sendersweapon_id; hit_type = e_hit_type; pierce = cartridge.m_kPierce; ap = cartridge.m_kAP; air_resistance = cartridge.m_kAirRes; wallmark_size = cartridge.fWallmarkSize; m_u8ColorID = cartridge.m_u8ColorID; bullet_material_idx = cartridge.bullet_material_idx; VERIFY (u16(-1)!=bullet_material_idx); flags.allow_tracer = !!cartridge.m_flags.test(CCartridge::cfTracer); flags.allow_ricochet = !!cartridge.m_flags.test(CCartridge::cfRicochet); flags.explosive = !!cartridge.m_flags.test(CCartridge::cfExplosive); flags.skipped_frame = 0; targetID = 0; //Новая баллистика! u8 type = manager.m_type_ballistic if (GameID()!=GAME_SINGLE || type==1){ air_resistance /= max_speed; manager.m_type_ballistic = 1; }else if(type==0) air_resistance = manager.m_fAirResistanceK; else air_resistance *= 0.001f; } void CBulletManager::Load () { m_fTracerWidth = pSettings->r_float(BULLET_MANAGER_SECTION, "tracer_width"); m_fTracerLengthMax = pSettings->r_float(BULLET_MANAGER_SECTION, "tracer_length_max"); m_fTracerLengthMin = pSettings->r_float(BULLET_MANAGER_SECTION, "tracer_length_min"); m_fGravityConst = pSettings->r_float(BULLET_MANAGER_SECTION, "gravity_const"); m_fAirResistanceK = pSettings->r_float(BULLET_MANAGER_SECTION, "air_resistance_k"); m_dwStepTime = pSettings->r_u32 (BULLET_MANAGER_SECTION, "time_step"); m_fMinBulletSpeed = pSettings->r_float(BULLET_MANAGER_SECTION, "min_bullet_speed"); m_fCollisionEnergyMin = pSettings->r_float(BULLET_MANAGER_SECTION, "collision_energy_min"); m_fCollisionEnergyMax = pSettings->r_float(BULLET_MANAGER_SECTION, "collision_energy_max"); m_fHPMaxDist = pSettings->r_float(BULLET_MANAGER_SECTION, "hit_probability_max_dist"); LPCSTR whine_sounds = pSettings->r_string(BULLET_MANAGER_SECTION, "whine_sounds"); int cnt = _GetItemCount(whine_sounds); xr_string tmp; for (int k=0; k<cnt; ++k){ m_WhineSounds.push_back (ref_sound()); m_WhineSounds.back().create(_GetItem(whine_sounds,k,tmp),st_Effect,sg_SourceType); } LPCSTR explode_particles= pSettings->r_string(BULLET_MANAGER_SECTION, "explode_particles"); cnt = _GetItemCount(explode_particles); for (int k=0; k<cnt; ++k) m_ExplodeParticles.push_back (_GetItem(explode_particles,k,tmp)); m_type_ballistic = READ_IF_EXISTS(pSettings, r_u8, BULLET_MANAGER_SECTION, "type_ballistic", 0); } bool CBulletManager::CalcBullet(collide::rq_results& rq_storage, xr_vector<ISpatial*>& rq_spatial, SBullet* bullet, u32 delta_time) { float delta_time_sec = float(delta_time)/1000.f; float range = bullet->speed*delta_time_sec; float max_range = bullet->max_dist - bullet->fly_dist; range = _min(range, max_range); //запомнить текущую скорость пули, т.к. в //RayQuery() она может поменяться из-за рикошетов //и столкновений с объектами Fvector cur_dir = bullet->dir; bullet_test_callback_data bullet_data; bullet_data.pBullet = bullet; bullet_data.bStopTracing = true; bullet->flags.ricochet_was = 0; collide::ray_defs RD(bullet->pos, bullet->dir, range, CDB::OPT_CULL, collide::rqtBoth); BOOL result = Level().ObjectSpace.RayQuery(rq_storage, RD, firetrace_callback, &bullet_data, test_callback, NULL); if (result & bullet_data.bStopTracing) { range = (rq_storage.r_begin()+rq_storage.r_count()-1)->range; } bullet->flags.skipped_frame = (Device.dwFrame >= bullet->frame_num); if(!bullet->flags.ricochet_was) { range = _max(EPS_L, range); //изменить положение пули bullet->pos.mad(bullet->pos, cur_dir, range); bullet->fly_dist += range; if(bullet->fly_dist>=bullet->max_dist) return false; //определим вылет за уровень //if(!Fbox4::point_in_box(m_BoundingVolume, bullet->pos)) if(!m_BoundingVolume.point_in_box(bullet->pos)) return false; //изменить скорость и направление ее полета и с учетом гравитации float k_speed = bullet->air_resistance*delta_time_sec; if (m_type_ballistic != 0) k_speed *= bullet->speed; bullet->dir.mul(bullet->speed*(1.0-k_speed)); //получим вектор скорости bullet->dir.y -= m_fGravityConst*delta_time_sec; bullet->speed = bullet->dir.magnitude(); bullet->dir.mul(1.0/bullet->speed); //в место normalize() } return (m_fMinBulletSpeed < bullet->speed); } В 15-ой ревизии сделал правку "Новая баллистика". Вот исходник этой правки. Требуется самостоятельно определить метод point_in_box, точка_в_боксе возвращает тру если точка внутри бокса. ЗЫ Забыл указать. Параметр type_ballistic в секции bullet_manager: 0 - оригинальная баллистика, 1 - из мультиплеера, 2 - немного изменённый вариант №1. Изменено 4 Января 2019 пользователем НаноБот ...в конце концов, важен лишь, машинный код. СТАЛКЕР только для ПК! Ссылка на комментарий
naxac 2 445 Опубликовано 18 Января 2019 Поделиться Опубликовано 18 Января 2019 Приветствую. Товарищи двигоправы, подскажите пожалуйста: почему при одновременно работающих двух и более классах CUIScriptWnd методы Update и OnKeyboard работают всегда только у одного - первого запущенного? И можно ли это как-то обойти? Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
dsh 3 824 Опубликовано 18 Января 2019 Поделиться Опубликовано 18 Января 2019 @naxac, ты имеешь ввиду те, что бы запущены через start_stop_menu()? Странное поведение. Если судить по https://github.com/OGSR/OGSR-Engine/blob/271c01063ffed1416f88ea433fc185cf95d8cf9c/ogsr_engine/xrGame/UIDialogHolder.cpp#L227 то Update() вызывается у всех диалогов из списка, которые не сказали, что они не Enabled(). А если судить вот по этому https://github.com/OGSR/OGSR-Engine/blob/271c01063ffed1416f88ea433fc185cf95d8cf9c/ogsr_engine/xrGame/UIDialogHolder.cpp#L168 то обработчик клавиатуры должны вызываться у того диалога, который был открыт последним. 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
naxac 2 445 Опубликовано 18 Января 2019 Поделиться Опубликовано 18 Января 2019 (изменено) @dsh, у меня немного другая ситуация: в одном, основном классе вызываются несколько ещё и присваиваются переменным основного (self.var = CUIScriptWnd_my()). Вот в этих классах ни апдейт, ни он-кейбоард не работают, а в основном классе всё нормально... Вот тут: https://github.com/naxac/CP2_AddOn/blob/master/gamedata/scripts/ui_spin_new.script - тот самый дополнительный класс. Каллбэки работают. Изменено 18 Января 2019 пользователем naxac Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
dsh 3 824 Опубликовано 18 Января 2019 Поделиться Опубликовано 18 Января 2019 @naxac, что-то я не понял. Ну хорошо, сделали self.var = CUIScriptWnd_my() а кто будет у них Update() вызывать? Для оконной системы движка они пока-что не существуют. 1 1 dsh mod: https://github.com/dsh2dsh/op2ogse Ссылка на комментарий
naxac 2 445 Опубликовано 18 Января 2019 Поделиться Опубликовано 18 Января 2019 @dsh, да, точно, разобрался, надо было его просто приаттачить и показать, спасибо, заработало. 1 Аддон для ОП-2.09.2: Яндекс/Google/GitHub Ссылка на комментарий
Рекомендуемые сообщения
Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий
Комментарии могут оставлять только зарегистрированные пользователи
Создать аккаунт
Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!
Зарегистрировать новый аккаунтВойти
Есть аккаунт? Войти.
Войти