Имитация полёта пути

iamdss

Участник
Сообщения
126
Реакции
12
Нужны идеи, как реализовать. Собственно, задача. Необходимо в HL2DM реализовать скорость пули, и, соответственно, время её полёта. Для чего это нужно? В HL2DM пули не имеют скорости полёта, то есть, при выстреле в цель она моментально получает урон (ну, кроме оружий вроде арбалета, рпг и каких-нибудь альтернативных режимов огня, это понятно). Так вот, если два игрока, находясь на приличном расстоянии, выстрелят друг в друга, например, с магнумов, то умрёт только один, а второй останется жив. Я хочу сделать так, чтобы у игроков был шанс убить друг друга.

Мне нужны идеи по реализации. Пока обдумывал только вариант с учётом времени атаки у всех клиентов, а в момент смерти одного из них просчитывать, кто недавно в него целился и стрелял, а потом давать килл вручную первому из них. Но, возможно, вы предложите что-то лучшее. Спасибо.
 

gibs

Фитиль народного волненья
Сообщения
722
Реакции
407
Мошенник
Нуу, во-первых - на сорс сервере ничего никогда не происходит одновременно.
И не стоит сравнивать оружие с патронами с оружием, которое выпускает прожектил.
Но вообще лучше обратиться к сдк, как мне кажется. И у вольво вики не плохо описана в плане программирования оружия.
Алгоритм примерно следующий. Берём оффсет или сигнатуру метода FireBullets(), хукаем через SourceHook, вытаскиваем FireBulletsInfo_t, проводим свой хитскан, смотрим куда поля попадает, считаем примерное время полёта, пушим в мапу время, овнера и FireBulletsInfo_t. В OnGameFrame, например, прогоняем итератором мапу, если engine time меньше или равно текущего, то имитируем трейс атаки с нашим FireBulletsInfo_t. Что-то вроде этого. Не забываем очищать мапу.
Через сорспавн как-то сомнительно получится.
Вечно у тебя идеи какие-то стрёмные)
 

iamdss

Участник
Сообщения
126
Реакции
12
Алгоритм примерно следующий

Вот. Правда, тут я хочу несколько облегчить алгоритм, так как мне нужна лишь имитация, аптечная точность - лишнее. Поковыряю в исходниках, конечно, но компилить из сурсов как-то нет желания, ведь мне под линукс требуется. Быть может, кто-то ещё созреет и предложит свой вариант, я не знаю.

Вечно у тебя идеи какие-то стрёмные

Не стрёмнее, чем http://hlmod.ru/forum/programmirovanie-skripting/30840-teleport-na-tochku.html и иже с нею, хоть ничего не имею против.
 
Сверху Снизу