Приветствую кодеры, я пришел с парой вопросов надеюсь вам будет не трудно мне помочь,
как получить данные каким именно прожектилом был поврежден объект, мне это нужно чтобы создать разные эффекты смерти врагов при повреждении тем или иным прожектилом.
как сделать чтобы самонаводящиеся прожектилы летели в цель(моба) находящуюся в прицеле игрока? Хочу сделать ракетницу с самонаводкой =)
Сообщение отредактировалpetr_kustov - Пятница, 17.02.2012, 14:45
petr_kustov, ох был код у меня да уже нету ну просмотри DEMON_PROJECTILE ТЕБЕ нужно будет поменять тип ракеты например pmt_move type = PMT_GUIDED таким ообразом я сделал самонаводки у биомехов
Сообщение отредактировалxd76 - Пятница, 17.02.2012, 16:51
// if a player launched this rocket if ( IsDerivedFromClass( m_penLauncher, "Player") ) { // check whether he's enraged if ( ((CPlayer&)*m_penLauncher).m_bUnderRage ) { m_fDamageAmount*= 3; } }
Это "здоровье" ракеты, или урон наносимый ею? Если здоровье, то ракету можно легко сбить из любого оружия, даже кольта
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.
xd76, m_penRocketLauncherHoming не входит в состав PlayerWeapons. Они и не нужен, поскольку для получения координат, на которые указывает прицел, достаточно взять переменную m_vRayHit, она указывает как раз на это место. petr_kustov, PMT_GUIDED_RANDOM нет в исходниках, потому что такого значения enum ProjectileMovingType не существует. Возможно, он существовал в СС++ или в ФЕ.
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.
Вчера немножечко помудрил с двумя исходниками "Player.es" и "PlayerWeapons.es", в итоге получилась такая картина: Уровень сложности Турист и Новичок стали посложнее: 1) Уровень здоровья на Туристе и Новичке понижен вдвое: 100 мин, 200 макс, как и на серьезных уровнях сложности. Все это благодаря коду:
2) Регенерация здоровья на туристе отсутствует. Изменить сам код регенерации я не смог, пришлось его просто удалить. 3) Теперь на туристе и новичке есть повреждение от собственных гранат/ракет/ядра, находящегося рядом. 4) В PlayerWeapons я внес очень мало изменений. Но благодаря этому исходнику даже на легких уровнях Сэм будет нести наполовину меньше боеприпасов, чем обычно. То есть, как и на серьезных уровнях сложности. Также я сделал бесконечные пули кольту. Знаю, что многие раньше меня об этом знали, но хочу помочь таким же новичкам, как и я сам. Исходники можно скачать здесь:
Сообщение отредактировалMasterST - Понедельник, 27.02.2012, 11:21
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.
Ты молодец, но это уже не круто. =Р Сделай отдельную энтити, с помощью которой можно менять все эти параметры на ходу. Вдруг я хочу наоборот - чтобы здоровье на любом уровне восстанавливалось очень быстро, но любой гнаар отхватывал по 50 НР?
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.
Да, это не круто) Но самое главное, что и до меня доперло.
Quote (SLAwww)
здоровье на любом уровне восстанавливалось очень быстро, но любой гнаар отхватывал по 50 НР?
Насчет скоростного восстановления HP я не знаю - код восстановления здоровья не имеет в себе скорости. Я его просто вырезал. Могу отредактировать отдельный Player.es, в который добавлю строчки восстановления здоровья на Обычном, Мастере и Крутом. Но как это реализовать в PlayerMarker?
Quote (Slawww)
Сделай отдельную энтити, с помощью которой можно менять все эти параметры на ходу.
Если не ошибаюсь, можно прописать в PlayerMarker (PlayerStart) такое значение, чтобы менять на ходу значение TopHealth и MaxHealth, прости ввести эту переменную и все. Кстати, а в PlayerMarker присутствует строчка #include player.es?
Сообщение отредактировалMasterST - Понедельник, 27.02.2012, 13:00
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.
Здоровье повышается на фиксированное значение каждый раз, когда текущее значение времени превышает время последнего пополнения здоровья на еще одно фиксированное значение. Изменяя их, можно менять частоту и объем восполнения здоровья. Ищи все места, где меняется Health-параметр. Просто введением переменной в PlayerStart нельзя поменять Max/TopHealth, т.к. эти функции объявлены вне класса. Нужно зарегистрировать глобальную игровую переменную в GameMP и получать ее из _pShell, либо подменить все вызовы Max/TopHealth на что-то свое. Можно также попробовать сделать эти функции методами класса, если это сработает, то действительно будет хватать пары переменных.
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.
Здоровье повышается на фиксированное значение каждый раз, когда текущее значение времени превышает время последнего пополнения здоровья на еще одно фиксированное значение. Изменяя их, можно менять частоту и объем восполнения здоровья. Ищи все места, где меняется Health-параметр.
GetHealth>TopHealth?
Quote (SLAwww)
т.к. эти функции объявлены вне класса.
а #include на что? Или я не так понимаю?
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.
include тут ни при чем. В диалекте ES все, что идет после ключевого слова functions:, становится методом класса, а все, что находится в начале файла между %{ и %} объявляется вне класса. Первый твой вопрос не понял.
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.
В коде регенерации восстановление будет происходить только в том случае, если GetHealth>TopHealth, то есть если имеющееся здоровье меньше минимального количества здоровья. Поначалу я ставил знак "<", вместо ">", но тогда было невозможным подобрать сердечко или таблетку - здоровье снова становилось равным 100. Знак "=" тоже не работает - игрок будет бессмертным... Разве есть решение запретить регенерацию здоровья без удаления этого кода восстановления?
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.
По логике там как раз должен стоять <, ты что-то не так делаешь.
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.
В функции HUD_DrawIcon обрати внимание на эту строку: CTextureData *ptd = (CTextureData*)toIcon.GetData(); Мы вытаскиваем из toIcon указатель на объект типа CTextureData. У CTextureData есть параметр td_iRenderFrame, отвечающий за текущий кадр, который рендерится, поэтому ты можешь попробовать сразу после предыдущей строки поставить ptd->td_iRenderFrame=iWantedRenderFrame; где iWantedRenderFrame будет желаемым номером кадра для рендеринга. Если это не получится, оперировать надо с toIcon до того, как из него будет вытянут тот самый указатель. В частности, есть функции SetAnim и SelectFrameInTime.
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.
По логике там как раз должен стоять <, ты что-то не так делаешь.
Верно, он там и стоял. Просто я привел возможные варианты изменения функции...
Quote (МегаМозг)
Подскажите как можно создать что-то плауер контрол ка в моде Lost-Life? Заранее спасибо
Не проще ли взять готовый класс?
Slawww, я поэкспериментировал с PlayerStart-om, ничего не вышло, совсем. 25 ошибок... Лучше буду проводить мелкие эксперименты, с которых начинал Heming - регулирование здоровья врагов и количество подбираемых патронов, создам нового врага...
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.
А еще лучше - толстый том Уолтера Савича "С++ во всей полноте". Иначе все эти попытки что-то "кодить" выглядят так, словно люди с отвертками в руках идут ковыряться в атомном реакторе. Поверь, тебе будет проще выучить язык нормальным путем, чем добиться желаемого эффекта правками наугад.
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.
Поверь, я не собираюсь становиться опытным СДКАшником (как выразился petr_kustov), для меня как раз важны именно мелкие правки. Мой мод не будет содержать туеву хучу различных функций только для того, чтобы я мог ими оперировать в картах. Вот я и пишу, чтобы эти самые мелочи узнать, а дальше меня будет интересовать только построение уровней.
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.
Как ни парадоксально, зачастую то, что выглядит мелочью, оказывается сложно реализуемо, и наоборот. А С++ нужен не только для того, чтобы делать моды к Сэму. На этом языке пишется большая часть программ, с которыми мы сталкиваемся в жизни, и вообще, владыка Акатош написал на нем Вселенную. )
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.
А Талос подтвердил) Подумаю немного над реализацией регенерации здоровья на серьезных уровнях. Очень просто, но требует внимания.
До сих пор в топе загрузок и просмотров... Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет... Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.