на главную
об игре
Serious Sam The Second Encounter 08.02.2002

Голосуем за новых монстров игры!

Ваши предложения по поводу новых монстров.

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

Предлагаем...

Комментарии: 41
Ваш комментарий

Мало боссов ?Добавьте карту с Угх-Заном (есть в редакторе).

1

А из монстров можно добавить самку равнинного рептилоида: бирюзового цвета и запускает три зелёных шара подряд.

1

Anubis - Egyptian God
Sasha Dj
Пришлите мне этих монстров.

1

-frend-
Я сам хочу добавить таких монстров.

1

Serious Sir
В рогатку ничего переделывать не надо.А на счёт лазера-сам ты запор, а лазер-самое крутое оружие.
Алекс GT
Пришли пожалуйста список недоделанных монстров с ихним описанием.

1

Миха Соколов
Алекс GT
VEL-KILLER
Tazer
Serious Sir
(((PALADIN))) B@NDiT
Помогите делать мод. Пришлите мне идеи и наработки и я смогу помочь(делом или советом).

1

В SS 3: BFE не будет ничего хорошего.А если надоели эпизоды то я могу прислать столько разных одиночных карт.Кстати скриншоты тоже пригодятся.

1

Я играл в 80% фанатских карт для FE, SE, 2.Ничего не надоело.

1

Можно добавить зомби из Вульфентейна(которые с ножами и автоматами или пулемётами).

1

Мозги и руки у меня есть, остальное можно найти в интернете.

1

Я без этой хрени сделал 5 боссов.

1

У него еще и пушка должна быть обязательно!!!
Насчет новых монстров, Я ЗА!!!

0

Хочу новых монстров и новых боссов, да кто ж мне их даст?

0

Нет !!! Они его уже достали!!!

0

Монсторов не хватает а оружия ещё больше.

0

Мы только придумываем!

Пушка для Биомеханоида слишком много!

А для оружия я создам новую тему!

0

Потерпите ребятки! Вот закончу Walker''a - Chimika и вам мало не покажется! Готовьте противогазы! Если кто-нибудь уже создавал монстров -поделитесь опытом!

0

Люди...
Напишите как монстров создавать! Уж очень мне интересно.
Заранее благодарен.

0

Монстра ты не создашь. Нужно уметь програмировать. А я вот умею. Я уже создал 2 монстра.

0

Еще один диджей объявился. Ясненько... Только ты, диджей, не зазнавайся - когда выйдет Сэм 2, знание языков для создания новых объектов будет абсолютно необязательным условием. По крайней мере, так обещают парни из Кротима

0

Да, ладно Dj просто у человека ник похожий! ;) Вон, например, Serious Dron у него ник тоже похож на мой и что из этого? :) А, насчет монстров, хорошо, если не надо будет програмировать, потому что я этого не умею. :(
Sasha Dj каких монстров ты создавал? Опиши их или пришли на мыло, если ими можно пользоваться через обычный редактор и если они не очень много занимают. ;)

0

Есть такой монстрик Kleer Skeleton, не забыли? :) Если делаете монстров, то можно сделать просто Kleer, живого. :)

Кстати, в папке /classes есть подозрительные файлы Cyborg.ecl Catman.ecl Mantaman.ecl и другие... Их нельзя добавить в виртуальный каталог, тк они не прописаны в EntitiesMP.dll . Может это прообразы новых монстров из Serious Sam - 2?

0

Да, это возможно! Жалко, что я не умею программировать! :(

0

я конешно не умею монстров создавать но разве для этого не нужен 3d studio max? я там чуть шарю...
да и я предлагаю черного биомеханоида с гатлингами и лазерным прицелом.
летаюшиго клира плюющигося килотой.
сиреанца (фанатика) с томсаным и бронежилетом.
мини модехая.
и т.п.

0

арод как моды оружия делать ато старые модели надоели да и мобы тоже)))

0

тут есть идея старый добрый миниган под Дум3 подделать и ещё чёнить присобачить к нему
револьверы мона под обрезы подстроить
бинзопилу из звеньевой в циркулярную мясорезку
нож в мачете
томсон в АК-(101, 47, 74)))
гранатомёт ну, скажем во чёнить побольше и покруче
а вот с пущкой СБС есть проблемы её можно оставить но приделать к ней чёто нада)
винтовку во чёнить современное (например СВД или М95)
чё касается миномёта........ пириделать в рогатку)))
лазер....Ооооо лазер это ваще запор какимито соплями палит, но я чёто в Халф-Лайф видел. мона и его подремонтировать
а на счёт АТОМКИ тут старая добрая бомба в переделки не нуждается)))

я ещё про мобов вам напишу потом а пока советую вам над пухами поднапрячся и подумать (а не поднапрячся и воздух испортить))) кидайте здесь свои предложения, а потом займёмся мобами. ОК?

0

короче я научился впихивать модели! но отаёться зобраться в кадрах анимации, и в скриптах :) я короче открыл EntitiesMP.dll, а там хрень какаето написанна:
(отрывок) etln эеэйээээээээьээээа пэээээээээээпрпр'=эээээпэээээавээээр6
failed эээээрпэээ па - что то вэтом роде помогите перевести!!!

0

Предлагаю новый монстр!Безголовая гарпия!Типа камикадзи но только лэтает.

0

Двойники сэма! Они как зорги только по живучей и с шестистволкой! Солдат с сириуса с головой (Держит в одной руке оружие , а из другой кидает гранаты.

0

Новый монстр: Дьявол Рептилоид - в 2 раза крупнее самки, мечет сразу по десять ОГРОМНЫХ огненных шаров.

0

WANTED

мега монстр-СУПЕР ГАНРААР
высота-10м
враждебность-ах#ительная
броня-999
оружие-2 пушки СБС и базуки из плеч
особые приметы-взрывается как атомка,в чёрном плаще,с афро и ах#рительными бракенбардами по колено,харкается кислотой,и блюёт какашками

0

Бык оборотень с пушкой на спине! ААААА блин, он уже есть !

0

Биомеханоид с огнемётами!

0

Чё это за монстер???
Перевод с английского
нашёл в сообщениях в папке Massejes

КЛАСС:Безголовый Nafil
МЕТАБОЛИЗМ: киберзомби
ВОСПРИЯТИЕ: нечувствительный, управляемый УУЖ
РАЗМЕР: 18 футов
ВЫНОСЛИВОСТЬ: средняя
ВРАЖДЕБНОСТЬ: средняя
ОРУЖИЕ: высокий технический колледж, возвращающий пусковую установку ракет
НАГРАДА: 6000 FC
УГРОЗА: средняя

ОПИСАНИЕ:

В отличие от другого headman, это - не казненный солдат. Очень подобно другим тварям, это - клонированный образец древнего предшественника Sirians, названного Nefilim. Ментал экспериментировал с ограниченным количеством таких солдат, но эксперимента неудавшийся - и солдаты были "переработаны" как headman.


ПОДСКАЗКИ

- Уклонение от быстрых ракет очень трудно; Вы лучше убиваете Nefilim быстро

0

Это монстр, который невошел в игру(его не доделали), там есть и другие такие монстры.

0

Киборг, Дракон, 3-ий вариант Биомеханоида...

0

Чё это за монстер???
Ха, стиль перевода описания знаком.

0

Fobos Tornado
Описаний нет. Лишь скриншоты. Fishman, Iceman, Dragonman, Cyborg и тд. В них мало интересного...

На счёт мода - я давно этим не занимаюсь, да и не занимался толком. В Serious Sam давно не играю, ибо надоело - Египет, Юж. Америка, Вавилон, Средневековье... Сколько же можно?! Лишь только SS 2 прошел пару месяцев назад...Жду SS 3: BFE, в общем.

0

Fobos Tornado
Я играл в 70% фанатских карт для FE, SE, 2.

0

Тааак чуваки хватит заниматься хнёй для того чтобы сделать монстра надо иметь:

VC++ v6.0
SDK v1.07
DirectX SDK 8.0
Мозги
Руки
Навык программирования на языке C++

Ссылки написал с пробелами чтобы защитная система не сработала)))

Если интересно то смотрите этот форум, регайтесь, спрашивайте - серьёзный сайт для серьёзных людей XDDD

ht tp://www.serioussite.r u/forum/5-447-1


Регайтесь, задавайте вопросы у меня на сайте:

ht tp://spmc.uc oz.ne t/

Тоже могу помочь


P.S.
модифицировал класс Grunt.es(Зорг)

343
%{
#include "StdH.h"
#include "ModelsMP/Enemies/Grunt/Grunt.h"
%}

uses "EntitiesMP/EnemyBase";
uses "EntitiesMP/BasicEffects";

enum GruntType {
0 GT_SOLDIER "Grunt soldier",
1 GT_COMMANDER "Grunt commander",
};

%{
#define STRETCH_SOLDIER 1.2f
#define STRETCH_COMMANDER 1.4f

// info structure
static EntityInfo eiGruntSoldier = {
EIBT_FLESH, 200.0f,
0.0f, 1.9f*STRETCH_SOLDIER, 0.0f, // source (eyes)
0.0f, 1.3f*STRETCH_SOLDIER, 0.0f, // target (body)
};

static EntityInfo eiGruntCommander = {
EIBT_FLESH, 250.0f,
0.0f, 1.9f*STRETCH_COMMANDER, 0.0f, // source (eyes)
0.0f, 1.3f*STRETCH_COMMANDER, 0.0f, // target (body)
};

#define FIREPOS_SOLDIER FLOAT3D(0.07f, 1.36f, -0.78f)*STRETCH_SOLDIER
#define FIREPOS_COMMANDER_UP FLOAT3D(0.09f, 1.45f, -0.62f)*STRETCH_COMMANDER
#define FIREPOS_COMMANDER_DN FLOAT3D(0.10f, 1.30f, -0.60f)*STRETCH_COMMANDER
%}


class CGrunt: CEnemyBase {
name "Grunt";
thumbnail "Thumbnails\\Grunt.tbn";

properties:
1 enum GruntType m_gtType "Type" 'Y' = GT_SOLDIER,
/**************** NEW OPTIONS ********************/
2 INDEX iHealth "Health" = 100, // enemy health standart value 0 xddd
3 INDEX iScore "Score" = 0, // enemy score
4 BOOL bInvisible "Invisible" = FALSE,
5 BOOL m_bBoss "Boss" 'B' = FALSE,
6 INDEX iBUpAmmount "Blow up ammount" = 50, // damage for blow up xddd
7 INDEX iBParts "Body parts" = 5, // flesh
8 FLOAT fBPartsSize "Body parts size" = 5.0f, // flesh size
9 INDEX iDensity "Dinsity" = 2000,
10 CSoundObject m_soFire1,
11 CSoundObject m_soFire2,
/**************** SHOOT OPTIONS ********************/
12 enum ProjectileType m_prtType "Projectile" = PRT_CYBORG_LASER,
13 FLOAT m_fTime "Autowait after shoot" = 1.0f, // spawn every x seconds
13 FLOAT m_fRndTime "Random autowait" = 0.0f, // wait between two shots
14 INDEX iAmmountOfShots "Ammount of shots" = 5, // number of shots

// class internal

components:
1 class CLASS_BASE "Classes\\EnemyBase.ecl",
3 class CLASS_PROJECTILE "Classes\\Projectile.ecl",

10 model MODEL_GRUNT "ModelsMP\\Enemies\\Grunt\\Grunt.mdl",
11 model MODEL_GUN_COMMANDER "ModelsMP\\Enemies\\Grunt\\Gun_Commander.mdl",
12 model MODEL_GUN_SOLDIER "ModelsMP\\Enemies\\Grunt\\Gun.mdl",

20 texture TEXTURE_SOLDIER "ModelsMP\\Enemies\\Grunt\\Soldier.tex",
21 texture TEXTURE_COMMANDER "ModelsMP\\Enemies\\Grunt\\Commander.tex",
22 texture TEXTURE_GUN_COMMANDER "ModelsMP\\Enemies\\Grunt\\Gun_Commander.tex",
23 texture TEXTURE_GUN_SOLDIER "ModelsMP\\Enemies\\Grunt\\Gun.tex",

// ************** SOUNDS **************
50 sound SOUND_IDLE "ModelsMP\\Enemies\\Grunt\\Sounds\\Idle.wav",
52 sound SOUND_SIGHT "ModelsMP\\Enemies\\Grunt\\Sounds\\Sight.wav",
53 sound SOUND_WOUND "ModelsMP\\Enemies\\Grunt\\Sounds\\Wound.wav",
57 sound SOUND_FIRE "ModelsMP\\Enemies\\Grunt\\Sounds\\Fire.wav",
58 sound SOUND_DEATH "ModelsMP\\Enemies\\Grunt\\Sounds\\Death.wav",

functions:

// describe how this enemy killed player
virtual CTString GetPlayerKillDescription(const CTString &strPlayerName, const EDeath &eDeath)
{
CTString str;
str.PrintF(TRANS("A Grunt sent %s into the halls of Valhalla"), strPlayerName);
return str;
}
void Precache(void) {
PrecacheClass(CLASS_PROJECTILE, m_prtType);
}

/* Entity info */
void *GetEntityInfo(void) {
if (m_gtType==GT_SOLDIER) {
return &eiGruntSoldier;
} else if (m_gtType==GT_COMMANDER) {
return &eiGruntSoldier;
} else {
ASSERT("Unknown grunt type!");
return NULL;
}
};

virtual const CTFileName &GetComputerMessageName(void) const {
static DECLARE_CTFILENAME(fnmSoldier, "DataMP\\Messages\\Enemies\\GruntSoldier.txt");
static DECLARE_CTFILENAME(fnmCommander, "DataMP\\Messages\\Enemies\\GruntCommander.txt");
switch(m_gtType) {
default: ASSERT(FALSE);
case GT_SOLDIER: return fnmSoldier;
case GT_COMMANDER: return fnmCommander;
}
};

void Precache(void) {
CEnemyBase::Precache();

if (m_gtType==GT_SOLDIER) {
PrecacheClass(CLASS_PROJECTILE, PRT_GRUNT_PROJECTILE_SOL);
}
if (m_gtType==GT_COMMANDER) {
PrecacheClass(CLASS_PROJECTILE, PRT_GRUNT_PROJECTILE_COM);
}

PrecacheSound(SOUND_IDLE);
PrecacheSound(SOUND_SIGHT);
PrecacheSound(SOUND_WOUND);
PrecacheSound(SOUND_FIRE);
PrecacheSound(SOUND_DEATH);
};

/* Receive damage */
void ReceiveDamage(CEntity *penInflictor, enum DamageType dmtType,
FLOAT fDamageAmmount, const FLOAT3D &vHitPoint, const FLOAT3D &vDirection)
{
CEnemyBase::ReceiveDamage(penInflictor, dmtType, fDamageAmmount, vHitPoint, vDirection);
};

// damage anim
INDEX AnimForDamage(FLOAT fDamage) {
INDEX iAnim;
iAnim = GRUNT_ANIM_WOUND01;
StartModelAnim(iAnim, 0);
return iAnim;
};

// death
INDEX AnimForDeath(void) {m_prtType
INDEX iAnim;
FLOAT3D vFront;
GetHeadingDirection(0, vFront);
FLOAT fDamageDir = m_vDamage%vFront;
if (fDamageDirGetAnim()==GRUNT_ANIM_DEATHBACKWARD)
{
return 0.5f;
}
else if(GetModelObject()->GetAnim()==GRUNT_ANIM_DEATHFORWARD)
{
return 1.0f;
}
return -1.0f;
};

void DeathNotify(void) {
ChangeCollisionBoxIndexWhenPossible(GRUNT_COLLISION_BOX_DEATH);
en_fDensity = 500.0f;
};

// virtual anim functions
void StandingAnim(void) {
StartModelAnim(GRUNT_ANIM_IDLE, AOF_LOOPING|AOF_NORESTART);
};
/*void StandingAnimFight(void)
{
StartModelAnim(HEADMAN_ANIM_IDLE_FIGHT, AOF_LOOPING|AOF_NORESTART);
}*/
void RunningAnim(void) {
StartModelAnim(GRUNT_ANIM_RUN, AOF_LOOPING|AOF_NORESTART);
};
void WalkingAnim(void) {
RunningAnim();
};
void RotatingAnim(void) {
RunningAnim();
};

// virtual sound functions
void IdleSound(void) {
PlaySound(m_soSound, SOUND_IDLE, SOF_3D);
};
void SightSound(void) {
PlaySound(m_soSound, SOUND_SIGHT, SOF_3D);
};
void WoundSound(void) {
PlaySound(m_soSound, SOUND_WOUND, SOF_3D);
};
void DeathSound(void) {
PlaySound(m_soSound, SOUND_DEATH, SOF_3D);
};

// adjust sound and watcher parameters here if needed
void EnemyPostInit(void)
{
// set sound default parameters
m_soFire1.Set3DParameters(160.0f, 50.0f, 1.0f, 1.0f);
m_soFire2.Set3DParameters(160.0f, 50.0f, 1.0f, 1.0f);
};

procedures:
/************************************************************
* A T T A C K E N E M Y *
************************************************************/
Fire(EVoid) : CEnemyBase::Fire {
// soldier
if (m_gtType == GT_SOLDIER) {
autocall SoldierAttack() EEnd;
// commander
} else if (m_gtType == GT_COMMANDER) {
autocall CommanderAttack() EEnd;
// should never get here
} else{
ASSERT(FALSE);
}
return EReturn();
};

// Soldier attack
SoldierAttack(EVoid) {
StandingAnimFight();
autowait(0.2f + FRnd()*0.25f);

StartModelAnim(GRUNT_ANIM_FIRE, 0);
ShootProjectile(m_prtType, FIREPOS_SOLDIER, ANGLE3D(0, 0, 0));
PlaySound(m_soFire1, SOUND_FIRE, SOF_3D);

autowait(m_fTime + FRnd()*m_fRndTime);
StartModelAnim(GRUNT_ANIM_FIRE, 0);
ShootProjectile(m_prtType, FIREPOS_SOLDIER, ANGLE3D(0, 0, 0));
PlaySound(m_soFire2, SOUND_FIRE, SOF_3D);


autowait(FRnd()*0.333f);
return EEnd();
};

// Commander attack (predicted firing on moving player)
CommanderAttack(EVoid) {
StandingAnimFight();
autowait(0.2f + FRnd()*0.25f);

/*FLOAT3D vGunPosAbs = GetPlacement().pl_PositionVector + FLOAT3D(0.0f, 1.0f, 0.0f)*GetRotationMatrix();
FLOAT3D vEnemySpeed = ((CMovableEntity&) *m_penEnemy).en_vCurrentTranslationAbsolute;
FLOAT3D vEnemyPos = ((CMovableEntity&) *m_penEnemy).GetPlacement().pl_PositionVector;
FLOAT fLaserSpeed = 45.0f; // m/s
FLOAT3D vPredictedEnemyPosition = CalculatePredictedPosition(vGunPosAbs,
vEnemyPos, fLaserSpeed, vEnemySpeed, GetPlacement().pl_PositionVector(2) );
ShootPredictedProjectile(PRT_GRUNT_LASER, vPredictedEnemyPosition, FLOAT3D(0.0f, 1.0f, 0.0f), ANGLE3D(0, 0, 0));*/

StartModelAnim(GRUNT_ANIM_FIRE, 0);
ShootProjectile(m_prtType, FIREPOS_COMMANDER_DN, ANGLE3D(-20, 0, 0));
PlaySound(m_soFire1, SOUND_FIRE, SOF_3D);

autowait(m_fTime + FRnd()*m_fRndTime);
StartModelAnim(GRUNT_ANIM_FIRE, 0);
ShootProjectile(m_prtType, FIREPOS_COMMANDER_DN, ANGLE3D(-10, 0, 0));
PlaySound(m_soFire2, SOUND_FIRE, SOF_3D);

autowait(m_fTime + FRnd()*m_fRndTime);
StartModelAnim(GRUNT_ANIM_FIRE, 0);
ShootProjectile(m_prtType, FIREPOS_COMMANDER_DN, ANGLE3D(0, 0, 0));
PlaySound(m_soFire1, SOUND_FIRE, SOF_3D);

autowait(m_fTime + FRnd()*m_fRndTime);
StartModelAnim(GRUNT_ANIM_FIRE, 0);
ShootProjectile(m_prtType, FIREPOS_COMMANDER_DN, ANGLE3D(10, 0, 0));
PlaySound(m_soFire2, SOUND_FIRE, SOF_3D);

autowait(m_fTime + FRnd()*m_fRndTime);
StartModelAnim(GRUNT_ANIM_FIRE, 0);
ShootProjectile(m_prtType, FIREPOS_COMMANDER_DN, ANGLE3D(20, 0, 0));
PlaySound(m_soFire2, SOUND_FIRE, SOF_3D);

autowait(FRnd()*0.5f);
return EEnd();
};

/************************************************************
* M A I N *
************************************************************/
Main(EVoid) {
// declare yourself as a model
InitAsModel();
SetPhysicsFlags(EPF_MODEL_WALKING|EPF_HASLUNGS);
SetCollisionFlags(ECF_MODEL);
SetFlags(GetFlags()|ENF_ALIVE);
en_tmMaxHoldBreath = 5.0f;
en_fDensity = iDensity;
m_fBlowUpSize = fBPartsSize;
m_bBoss = m_bBoss;

// set your appearance
SetModel(MODEL_GRUNT);
switch (m_gtType) {
case GT_SOLDIER:
// set your texture
SetModelMainTexture(TEXTURE_SOLDIER);
AddAttachment(GRUNT_ATTACHMENT_GUN_SMALL, MODEL_GUN_SOLDIER, TEXTURE_GUN_SOLDIER);
// setup moving speed
m_fWalkSpeed = FRnd() + 2.5f;
m_aWalkRotateSpeed = AngleDeg(FRnd()*10.0f + 500.0f);
m_fAttackRunSpeed = FRnd() + 6.5f;
m_aAttackRotateSpeed = AngleDeg(FRnd()*50 + 245.0f);
m_fCloseRunSpeed = FRnd() + 6.5f;
m_aCloseRotateSpeed = AngleDeg(FRnd()*50 + 245.0f);
// setup attack distances
m_fAttackDistance = 80.0f;
m_fCloseDistance = 0.0f;
m_fStopDistance = 8.0f;
m_fAttackFireTime = 2.0f;
m_fCloseFireTime = 1.0f;
m_fIgnoreRange = 200.0f;
m_fBlowUpAmount = iBUpAmmount;
m_fBodyParts = iBParts;
m_fDamageWounded = 0.0f;
m_iScore = iScore;
SetHealth(iHealth);
m_fMaxHealth = iHealth;
if (invisible==TRUE)
{
GetModelObject()->mo_colBlendColor = C_WHITE|0x25
}
// set stretch factors for height and width
GetModelObject()->StretchModel(FLOAT3D(STRETCH_SOLDIER, STRETCH_SOLDIER, STRETCH_SOLDIER));
break;

case GT_COMMANDER:
// set your texture
SetModelMainTexture(TEXTURE_COMMANDER);
AddAttachment(GRUNT_ATTACHMENT_GUN_COMMANDER, MODEL_GUN_COMMANDER, TEXTURE_GUN_COMMANDER);
// setup moving speed
m_fWalkSpeed = FRnd() + 2.5f;
m_aWalkRotateSpeed = AngleDeg(FRnd()*10.0f + 500.0f);
m_fAttackRunSpeed = FRnd() + 8.0f;
m_aAttackRotateSpeed = AngleDeg(FRnd()*50 + 245.0f);
m_fCloseRunSpeed = FRnd() + 8.0f;
m_aCloseRotateSpeed = AngleDeg(FRnd()*50 + 245.0f);
// setup attack distances
m_fAttackDistance = 90.0f;
m_fCloseDistance = 0.0f;
m_fStopDistance = 15.0f;
m_fAttackFireTime = 4.0f;
m_fCloseFireTime = 2.0f;
m_fBlowUpAmount = iBUpAmmount;
m_fIgnoreRange = 200.0f;
// damage/explode properties
m_fBodyParts = iBParts;
m_fDamageWounded = 0.0f;
m_iScore = iScore;
SetHealth(iHealth);
m_fMaxHealth = iHealth;
if (invisible==TRUE)
{
GetModelObject()->mo_colBlendColor = C_WHITE|0x25
}
// set stretch factors for height and width
GetModelObject()->StretchModel(FLOAT3D(STRETCH_COMMANDER, STRETCH_COMMANDER, STRETCH_COMMANDER));
break;
}

ModelChangeNotify();
StandingAnim();

// continue behavior in base class
jump CEnemyBase::MainLoop();
};
};

0