Новые сообщения Участники Правила Поиск
Помощь по SDK для Serious Sam 1.05/1.07
seriously_petr Пятница, 17.02.2012, 19:37 | Сообщение # 1261


Сообщений: 446
Награды: 4
Замечания: 0%
 
xd76, Даа, а в SS++

// if this is targeting
if( ((CPlayerWeapons*) &*pw)->m_penRocketLauncherHoming != NULL)
{
m_penTarget = ((CPlayerWeapons*) &*pw)->m_penRocketLauncherHoming;
m_pmtMove =PMT_GUIDED_RANDOM;
m_aRotateSpeed = 135.0f;
}
else
{
// no target
m_pmtMove= PMT_FLYING;
}
};

Добавлено (17.02.2012, 19:37)
---------------------------------------------
Такого способа передвижения в стандартных исходника нету SeriousAlexej, спасибо начинаю разбираться реально помог

Сообщение отредактировал petr_kustov - Пятница, 17.02.2012, 19:36


xd76 Пятница, 17.02.2012, 20:20 | Сообщение # 1262


Сообщений: 103
Награды: 1
Замечания: 0%
 
petr_kustov, :D


с последним годом майя тебя хахаха хддд



разработки:
нету
SLAwww Пятница, 17.02.2012, 20:28 | Сообщение # 1263


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
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.

and so ended our search.
xd76 Пятница, 17.02.2012, 20:30 | Сообщение # 1264


Сообщений: 103
Награды: 1
Замечания: 0%
 
SLAwww, я же примерно сказал зато кустов будет доволнен ;)


с последним годом майя тебя хахаха хддд



разработки:
нету
seriously_petr Суббота, 18.02.2012, 13:59 | Сообщение # 1265


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAwww, Так это и есть код из мода для FE. ^_^

Сообщение отредактировал petr_kustov - Суббота, 18.02.2012, 14:00


Wynerros Понедельник, 27.02.2012, 11:20 | Сообщение # 1266


Ground Angel
Сообщений: 3108
Награды: 9
Замечания: 20%
 
Вчера немножечко помудрил с двумя исходниками "Player.es" и "PlayerWeapons.es", в итоге получилась такая картина:
Уровень сложности Турист и Новичок стали посложнее:
1) Уровень здоровья на Туристе и Новичке понижен вдвое: 100 мин, 200 макс, как и на серьезных уровнях сложности. Все это благодаря коду:

2) Регенерация здоровья на туристе отсутствует. Изменить сам код регенерации я не смог, пришлось его просто удалить.
3) Теперь на туристе и новичке есть повреждение от собственных гранат/ракет/ядра, находящегося рядом.
4) В PlayerWeapons я внес очень мало изменений. Но благодаря этому исходнику даже на легких уровнях Сэм будет нести наполовину меньше боеприпасов, чем обычно. То есть, как и на серьезных уровнях сложности. Также я сделал бесконечные пули кольту.
Знаю, что многие раньше меня об этом знали, но хочу помочь таким же новичкам, как и я сам. Исходники можно скачать здесь:

Прикрепления: extender.rar (78.3 Kb)
Сообщение отредактировал MasterST - Понедельник, 27.02.2012, 11:21


До сих пор в топе загрузок и просмотров...
Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет...
Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.


Мое железо:
CPU - Ryzen 7 2700x
MB - MSI B450M Mortar Max
RAM - 2x16 ADATA XPG GAMMIX D20 3200 mhz
GPU - Palit RTX 2060 StormX 6g
SLAwww Понедельник, 27.02.2012, 12:52 | Сообщение # 1267


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Ты молодец, но это уже не круто. =Р Сделай отдельную энтити, с помощью которой можно менять все эти параметры на ходу. Вдруг я хочу наоборот - чтобы здоровье на любом уровне восстанавливалось очень быстро, но любой гнаар отхватывал по 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.

and so ended our search.
Wynerros Понедельник, 27.02.2012, 12:57 | Сообщение # 1268


Ground Angel
Сообщений: 3108
Награды: 9
Замечания: 20%
 
Да, это не круто) Но самое главное, что и до меня доперло.

Quote (SLAwww)
здоровье на любом уровне восстанавливалось очень быстро, но любой гнаар отхватывал по 50 НР?

Насчет скоростного восстановления HP я не знаю - код восстановления здоровья не имеет в себе скорости. Я его просто вырезал.
Могу отредактировать отдельный Player.es, в который
добавлю строчки восстановления здоровья на Обычном, Мастере и Крутом. Но как это реализовать в PlayerMarker? :(

Quote (Slawww)
Сделай отдельную энтити, с помощью которой можно менять все эти параметры на ходу.

Если не ошибаюсь, можно прописать в PlayerMarker (PlayerStart) такое значение, чтобы менять на ходу значение TopHealth и MaxHealth, прости ввести эту переменную и все. Кстати, а в PlayerMarker присутствует строчка #include player.es?
Сообщение отредактировал MasterST - Понедельник, 27.02.2012, 13:00


До сих пор в топе загрузок и просмотров...
Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет...
Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.


Мое железо:
CPU - Ryzen 7 2700x
MB - MSI B450M Mortar Max
RAM - 2x16 ADATA XPG GAMMIX D20 3200 mhz
GPU - Palit RTX 2060 StormX 6g
SLAwww Понедельник, 27.02.2012, 13:50 | Сообщение # 1269


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Здоровье повышается на фиксированное значение каждый раз, когда текущее значение времени превышает время последнего пополнения здоровья на еще одно фиксированное значение. Изменяя их, можно менять частоту и объем восполнения здоровья. Ищи все места, где меняется 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.

and so ended our search.
Wynerros Понедельник, 27.02.2012, 13:53 | Сообщение # 1270


Ground Angel
Сообщений: 3108
Награды: 9
Замечания: 20%
 
Quote (SLAwww)
Здоровье повышается на фиксированное значение каждый раз, когда текущее значение времени превышает время последнего пополнения здоровья на еще одно фиксированное значение. Изменяя их, можно менять частоту и объем восполнения здоровья. Ищи все места, где меняется Health-параметр.

GetHealth>TopHealth?

Quote (SLAwww)
т.к. эти функции объявлены вне класса.

а #include на что? Или я не так понимаю?


До сих пор в топе загрузок и просмотров...
Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет...
Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.


Мое железо:
CPU - Ryzen 7 2700x
MB - MSI B450M Mortar Max
RAM - 2x16 ADATA XPG GAMMIX D20 3200 mhz
GPU - Palit RTX 2060 StormX 6g
SLAwww Понедельник, 27.02.2012, 14:06 | Сообщение # 1271


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
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.

and so ended our search.
Wynerros Понедельник, 27.02.2012, 14:11 | Сообщение # 1272


Ground Angel
Сообщений: 3108
Награды: 9
Замечания: 20%
 
Quote (MasterST)
GetHealth>TopHealth?

В коде регенерации восстановление будет происходить только в том случае, если GetHealth>TopHealth, то есть если имеющееся здоровье меньше минимального количества здоровья. Поначалу я ставил знак "<", вместо ">", но тогда было невозможным подобрать сердечко или таблетку - здоровье снова становилось равным 100. Знак "=" тоже не работает - игрок будет бессмертным... Разве есть решение запретить регенерацию здоровья без удаления этого кода восстановления?


До сих пор в топе загрузок и просмотров...
Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет...
Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.


Мое железо:
CPU - Ryzen 7 2700x
MB - MSI B450M Mortar Max
RAM - 2x16 ADATA XPG GAMMIX D20 3200 mhz
GPU - Palit RTX 2060 StormX 6g
SLAwww Понедельник, 27.02.2012, 14:39 | Сообщение # 1273


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
По логике там как раз должен стоять <, ты что-то не так делаешь.

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.

and so ended our search.
seriously_petr Понедельник, 27.02.2012, 16:13 | Сообщение # 1274


Сообщений: 446
Награды: 4
Замечания: 0%
 
Здравствуйте, друзья кодеры, сегодня я пришел с одним на мой взгляд обычным вопросом. Буду очень рад, если вы мне поможете и отблагодарю репой =)

Как показать один кадр из анимированной текстуры, хочу сделать фишки с ХУДом =)


SLAwww Понедельник, 27.02.2012, 21:48 | Сообщение # 1275


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
В функции 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.

and so ended our search.
МегаМозг Вторник, 28.02.2012, 08:59 | Сообщение # 1276


Сообщений: 444
Награды: 3
Замечания: 0%
 
Подскажите как можно создать что-то плауер контрол ка в моде Lost-Life?

Заранее спасибо


Мои работы....


Увлекаешься дядей сэдом? Тогда тебе >>сюда<<!
Wynerros Вторник, 28.02.2012, 11:42 | Сообщение # 1277


Ground Angel
Сообщений: 3108
Награды: 9
Замечания: 20%
 
Quote (SLAwww)
По логике там как раз должен стоять <, ты что-то не так делаешь.

Верно, он там и стоял. Просто я привел возможные варианты изменения функции...

Quote (МегаМозг)
Подскажите как можно создать что-то плауер контрол ка в моде Lost-Life? Заранее спасибо

Не проще ли взять готовый класс?

Slawww, я поэкспериментировал с PlayerStart-om, ничего не вышло, совсем. 25 ошибок... Лучше буду проводить мелкие эксперименты, с которых начинал Heming - регулирование здоровья врагов и количество подбираемых патронов, создам нового врага...


До сих пор в топе загрузок и просмотров...
Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет...
Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.


Мое железо:
CPU - Ryzen 7 2700x
MB - MSI B450M Mortar Max
RAM - 2x16 ADATA XPG GAMMIX D20 3200 mhz
GPU - Palit RTX 2060 StormX 6g
SLAwww Вторник, 28.02.2012, 13:48 | Сообщение # 1278


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
А еще лучше - толстый том Уолтера Савича "С++ во всей полноте". Иначе все эти попытки что-то "кодить" выглядят так, словно люди с отвертками в руках идут ковыряться в атомном реакторе. Поверь, тебе будет проще выучить язык нормальным путем, чем добиться желаемого эффекта правками наугад.

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.

and so ended our search.
SLAwww Вторник, 28.02.2012, 14:14 | Сообщение # 1279


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Как ни парадоксально, зачастую то, что выглядит мелочью, оказывается сложно реализуемо, и наоборот. А С++ нужен не только для того, чтобы делать моды к Сэму. На этом языке пишется большая часть программ, с которыми мы сталкиваемся в жизни, и вообще, владыка Акатош написал на нем Вселенную. )

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.

and so ended our search.
Wynerros Вторник, 28.02.2012, 14:17 | Сообщение # 1280


Ground Angel
Сообщений: 3108
Награды: 9
Замечания: 20%
 
Quote (SLAwww)
владыка Акатош написал на нем Вселенную. )

А Талос подтвердил)
Подумаю немного над реализацией регенерации здоровья на серьезных уровнях. Очень просто, но требует внимания.


До сих пор в топе загрузок и просмотров...
Неужели я тоже оставил свой след на этом сайте? А ведь я здесь уже целых двенадцать лет...
Удалил свои старые карты из профиля, на кой они мне. Маппер из меня никудышный.


Мое железо:
CPU - Ryzen 7 2700x
MB - MSI B450M Mortar Max
RAM - 2x16 ADATA XPG GAMMIX D20 3200 mhz
GPU - Palit RTX 2060 StormX 6g
seriously_petr Вторник, 28.02.2012, 17:53 | Сообщение # 1281


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAwww, Я поставил код, он почемуто не работает даже при том, что я указал число 5 вместо операций с переменными, может я сделал опять все наоборот?
// prepare and draw health info
const FLOAT fHealthBarPos = fHalfUnit*0.7f;
fValue = ClampDn( _penPlayer->GetHealth(), 0.0f); // never show negative health
fNormValue = fValue/TOP_HEALTH;
INDEX iWantedRenderFrame = 5;
(iWantedRenderFrame/TOP_HEALTH)/5;
strValue.PrintF( "%d", (SLONG)ceil(fValue));
PrepareColorTransitions( colMax, colTop, colMid, colMin, 0.66f, 0.33f, FALSE);
fRow = pixBottomBound-fHalfUnit;
fCol = pixLeftBound+fHalfUnit;
colDefault = AddShaker( 5, fValue, penLast->m_iLastHealth, penLast->m_tmHealthChanged, fMoverX, fMoverY);
HUD_DrawBorder( fCol+fMoverX, fRow+fMoverY, fOneUnit, fOneUnit, colBorder);
HUD_DrawIcon( fCol+fMoverX, fRow+fMoverY, _toHealth, _colHUD, fNormValue, TRUE);
CTextureData *ptd = (CTextureData*)_toHBar.GetData();
ptd->td_iRenderFrame=iWantedRenderFrame;

HUD_DrawIcon( fCol+fMoverX+77, fRow+fMoverY-7, _toHBar, _colHUD, fNormValue, FALSE);
HUD_DrawIcon( fCol+fMoverX+77, fRow+fMoverY-7, _toHTube, C_WHITE, fNormValue, FALSE);
Сообщение отредактировал petr_kustov - Вторник, 28.02.2012, 17:54


thecre Вторник, 28.02.2012, 18:24 | Сообщение # 1282


Сообщений: 3449
Награды: 28
Замечания: 0%
 

Quote (MasterST)
для меня как раз важны именно мелкие правки

Но ведь тебе же нужно в конце концов понимать, как их делать :)
Сообщение отредактировал CREATER - Среда, 29.02.2012, 03:38


SeriousAlexej Вторник, 28.02.2012, 18:34 | Сообщение # 1283


Serious Editor
Сообщений: 1246
Награды: 52
Замечания: 0%
 

SLAwww, несколько страниц назад, ты посоветовал книгу Уолтера Савича "Программирование на С++". Я вот хотел спросить, можно ли после ее прочтения учить Visual C++ и MFC, или лучше почитать еще что-то о консольных программах?


thecre Вторник, 28.02.2012, 18:46 | Сообщение # 1284


Сообщений: 3449
Награды: 28
Замечания: 0%
 
Quote (SeriousAlexej)
MFC

Лучше не пытайся. Не парь себе мозг и учи Qt - он кроссплатформенный, да и легче :)


SLAwww Вторник, 28.02.2012, 20:40 | Сообщение # 1285


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
SeriousAlexej, "Visual C++" - это не язык, чтобы его учить, а всего лишь IDE. ) Но одно могу сказать определённо - прежде чем браться за MFC, VCL, Qt или всякие там wxWidgets, надо C++ изучить обязательно. Книга Савича - просто очень хорошее руководство по языку, которое рекомендую лично я. Если тебе будет удобнее использовать другое пособие - не вопрос, главное - не набрасываться на библиотеки визуальных компонентов без знания ООП, чтобы потом не возникало вопросов вроде "а зачем виртуальный деструктор?".
petr_kustov, а ты определил iWantedRenderFrame?
CREATER, >_> <_< >_> ты отваживаешься распускать ересь про владыку Акатоша?


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.

and so ended our search.
thecre Среда, 29.02.2012, 03:42 | Сообщение # 1286


Сообщений: 3449
Награды: 28
Замечания: 0%
 
Предыдущий пост был исправлен так как он неполиткорректным
Quote (SLAwww)
а зачем виртуальный деструктор?

Чтобы случайно не вызвать деструктор базового объекта для потомка? Страуструп вроде бы рекомендует его делать таковым всегда, если класс имеет хотя бы один виртуальный метод.


SLAwww Среда, 29.02.2012, 04:55 | Сообщение # 1287


Рряа? ^..^
Сообщений: 2398
Награды: 27
Замечания: 0%
 
Почти верно, но требует разъяснений. Представь себе, что класс Б - потомок класса А. Ты динамически создаёшь объект класса Б, но ссылаешься на него через указатель на объект класса А (так можно), а затем пытаешься удалить динамическую сущность через этот указатель. Если деструктор не виртуальный, то действительно вызывается деструктор класса А. Но вот касательно рекомендаций - другие виртуальные функции в классе быть не обязаны. Просто волей случая как раз при использовании виртуальных функций часто складывается ситуация, при которой какой-то наследник необходимо удалить через указатель на предка.
Думаю, теперь Акатош будет милостив. )


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.

and so ended our search.
МегаМозг Среда, 29.02.2012, 09:03 | Сообщение # 1288


Сообщений: 444
Награды: 3
Замечания: 0%
 
Quote (MasterST)
Не проще ли взять готовый класс?

MasterST, А если мне нужна новая DLL?


Мои работы....


Увлекаешься дядей сэдом? Тогда тебе >>сюда<<!
thecre Среда, 29.02.2012, 09:21 | Сообщение # 1289


Сообщений: 3449
Награды: 28
Замечания: 0%
 
SLAwww, да-да, я читал про это. :)
Это вроде:

CFirst* first = new CFirst(some arguments);
CSecond* second = new CSecond(some arguments);
CFirst* pen = (CFirst*)second;
delete pen;

И у меня удаляется объект second с вызовом деструктора от CFirst?
PS - поправь меня, если я где-то ошибся в коде.


seriously_petr Среда, 29.02.2012, 13:46 | Сообщение # 1290


Сообщений: 446
Награды: 4
Замечания: 0%
 
SLAwww, Разрешите спросить, вы про меня не забыли? :D

Поиск: