Она начинает подглючивать когда подходишь к брашам, когда меняется обзор. Копировал с 1.07 файлы не помогло. что-то похожее на полёт да, но при этом, всё так же пытается быть привязанной к игроку
Как сделать в SE так, чтобы цвет патронов вообще не менялся?
Добавлено (10.09.2016, 07:13) --------------------------------------------- а еще у здоровья и брони
Добавлено (10.09.2016, 07:45) --------------------------------------------- подскажите, плиз, еще код цвета как, например, у списка игроков в мп. он синий, но тональность определить не могу
Добавлено (11.09.2016, 23:09) --------------------------------------------- как изменить положение точки "вылета" огня у огнемета?
Jack_Stone, у каждого врага примерно в самом начале класса есть структура, у хедмена это кажется eiHeadman. Где то там есть и вес, который можно сделать побольше.
Сообщение отредактировалHeming_Hitrowski - Вторник, 27.09.2016, 22:13
Jack_Stone, Нужно увеличить его массу, отредактировав файл Headman.es Найдя там строки static EntityInfo eiHeadman = { EIBT_FLESH, 100.0f, 0.0f, 1.9f, 0.0f, 0.0f, 1.0f, 0.0f, }; И заменив 100.0f на что-то поболее, например 500.0f
Есть у тебя на карте какой-нибудь Light типа Ambient с радиусом, скажем, 8. Ты каждый тик (например в функции RenderGameView в Player) телепортируешь этот специальный лайт (который нужно еще назначить в свой собственный специальный CEntityPointer) на координаты переменной m_vRayHit, которая находится уже в PlayerWeapons и которую внутри Player можно получить как: GetPlayerWeapons()->m_vRayHit. Телепортировать, естественно, функцией Teleport(CPlacement3D, FALSE) - (На место CPlacement3D пишешь "CPlacement3D(GetPlayerWeapons()->m_vRayHit, ANGLE3D(0,0,0))", на место FALSE - так же FALSE) - второй аргумент функции отвечает за телефраг, который нам не нужен и мы естественно его отключаем
Народ, объясните кто нибудь, как сделать фонарь, ну конечно кому не сложно. Я вижу, что несколько людей точно знают, как это делается. Это ведь форум, и форум для того и нужен, чтобы задавать вопросы и получать на них нормальные ответы, а не ответы типа "Не умеешь в базовые вещи - твои проблемы". если я не прав, то так и скажите.
Мой способ совсем не касается SDK. Надо скачать новый класс PlayerParenter отсюдова и прицепить в редакторе к игроку источник света. Необходимо настроить правильное положение источника света (можно даже несколько припэрентить). Фонарик можно будет включать от триггера в любой момент, но единственный минус такого способа в том, что PlayerParenter резко реагирует на повороты игрока, да и на движение в целом. Но в качестве дешманского фонаря для поиска картохи в погребе сойдет.
Jack_Stone, включается триггером. Если хочешь от кнопки на клавиатуре, можно сделать с SDK такую ентитю, которая отлавливает нажатия определённых клавиш и посылает сигнал триггеру, которой в свою очередь активирует PlayerParanter. Тут я не смогу помочь, к сожалению.
Jack_Stone, один из способов, как можно сделать фонарь.
1) CEntityPointer - это указатель на энтити. Я уверен, что ты видел поле Target у Trigger. Так вот, это тоже самое. Абстрактно будем говорить, что это объект в игре.
В Serious Sam есть объекты, которые могут освещать местность. Например, если пустить ракету в темном помещении, то можно заметить её небольшое свечение. Я предлагаю сделать тот же самый способ, нашей целью будет создать такой Projectile, который будет сам по себе невидим, но у него будет свет.
2) Почему надо лезть в PlayerWeapons. Дело в том, что в этом классе есть луч, который бьет прямо из игрока (примерно говорю, знатоки поправят меня), в место, куда направлен его прицел. Например, переменная m_vRayHit хранит в себе координаты того места, куда "ударил" этот луч. Чем это может нам помочь? Например, можно относительно этого луча телепортировать тот самый светящийся Projectilе, в итоге получаем освещение местности в зависимости от направления взгляда.
2.5) Создай какой-нибудь Projectile по аналогии со, скажем, PRT_ROCKET. Сделай так, чтобы он светился, модель была не видна и чтоб время жизни было очень-очень долгим.
3) Как заспавнить этот Projectile в коде и где это сделать?
Для начала надо объявить кнопку. Идем в Player.es. Я возьму в качестве аналогии кнопку bFireBomb, которая отвечает за запуск серьезной бомбы.
Все, практически готово. Теперь идешь на строку 4492. Видишь, как там реализован запуск бомбы. Делаешь примерно тоже самое:
Код
if (ulNewButtons&PLACT_FLASHLIGHT) { // здесь будет код по нажатию кнопки связанной с фонарем }
Далее, естественно, надо зайти в .ctl файл в папке Controls в самом Serious Sam и прописать по аналогии кнопку с Flashlight. Данная кнопка будет работать корректно и по сети
Определились где заспавнить. Теперь КАК заспавнить какую-либо энтити.
Возьмем пример: нам нужно чтобы в мире появился Trigger. Прежде всего создай глобальную переменную в PlayerWeapons, пусть она объявляется, например, так:
Это самый простой способ инициализации. У нас создается стандартный Trigger на том месте, где мы стоим (GetPlacement()). Вот, например, более сложный.
m_penTrigger = CreateEntity(GetPlacement(), CLASS_TRIGGER);((CTrigger*)&*m_penTrigger)->m_strName = "New Trigger"; m_penTrigger->Initialize();
Таким образом, ты можешь уточнять, какой именно Trigger ты хочешь заспавнить.
Теперь, зная как спавнить определенные объекты, загляни в функцию FireRocket в PlayerWeapons. Посмотри как там спавнится снаряд. Сделай свою функцию для включения и выключения фонарика в PlayerWeapons. Вот пример.
Jack_Stone, undeclared - необъявленный. Ых, вот так вот без азов я тебе вряд ли что-то объясню... Почитай про переменные в языках программирования и про их объявление.
Heming_Hitrowski, у меня что-то получилось. вместо фонаря получилась кнопка суицида, как в Постал 2. не знаю, почему так. Но взрывчатость я вроде удалил - m_bExplode у нового проджектайла PlayerFlashlight.
Where did all the dragons go? We searched in the hills and we searched down the canyons, we even scanned the depths of the caves with our armour, swords and lanterns. Oh, if only had we seen him lurch, from his glorious skull covered perch.
CRACK went his claws and SMACK swipped the tail, a ROAR of might, one big BITE.
Heming_Hitrowski, у меня получилось сделать включение фонаря, только телепортируется не модель (Projectile), как ты предлагал, а Light. Всё как надо светится. Но не получается ничего с выключением света. Есть функция Destroy, которой вроде как и можно удалить этот Light - в моём случае m_penLight - но она почему то не помогает.
Ты же сначала убираешь свой фонарик из переменной, а потом хочешь заставить его что-то сделать. Поменяй строки местами, а то выходит, что ты уничтожаешь ничто.