Тутор с Wavelenght, ссыль дать не могу- он сохранён на жёстком в виде вордовского документа.
C++ Source Code:
1
A few days ago someone was asking in irc how to detect if a player is in jail or not for his mod. I had already written something like thisfor MMXHL a few years ago to disable WallJumping while inside the entity.
2
3
All of this is based off of the ladder code.
4
5
The first thing you need to do is pull up const.h and find CONTENTS_LADDER, and create your new content value; just use the next available number after contents_ladder. For this funcjail entity, i've created CONTENTS_JAIL.
6
7
The bulk of the code is inside triggers.cpp
8
Find CLadder and duplicate all of its functions and rename it to CFuncJail (or whatever is suitible for what you want to use it for)
9
All of the Customization steps are in comments below:
10
CODE
11
12
//============ func jail ==================
13
14
class CFuncJail : public CBaseTrigger
15
{
16
public:
17
void KeyValue( KeyValueData *pkvd );
18
void Spawn( void );
19
void Precache( void );
20
};
21
22
LINK_ENTITY_TO_CLASS( func_jail, CFuncJail ); //link func_jail to CFuncJail
23
24
void CFuncJail :: KeyValue( KeyValueData *pkvd )
25
{
26
CBaseTrigger::KeyValue( pkvd );
27
}
28
void CFuncJail :: Precache( void )
29
{
30
// Do all of this in here because we need to 'convert' old saved games
31
pev->solid = SOLID_NOT;
32
pev->skin = CONTENTS_JAIL; //make a new content type; go to CONTENTS_LADDER, add your new
33
//content type with the next available number.
34
if ( CVAR_GET_FLOAT("showtriggers") == 0 )
35
{
36
pev->rendermode = kRenderTransTexture;
37
pev->renderamt = 0;
38
}
39
pev->effects &= ~EF_NODRAW;
40
}
41
void CFuncJail::Spawn( void )
42
{
43
Precache();
44
45
SET_MODEL(ENT(pev), STRING(pev->model)); // set size and link into world
46
pev->movetype = MOVETYPE_PUSH;
47
}
48
49
50
Now i've added a boolean to CBasePlayer for the server dll to reference if the player is in jail or not.
51
CODE
52
53
bool m_bInJail;
54
55
56
Now in player.cpp i've added a check into PlayerPrethink to set the bool's state:
57
CODE
58
59
if (UTIL_PointContents(pev->origin) == CONTENTS_JAIL)
60
m_bInJail = true;
61
else
62
m_bInJail = false;
63
64
65
Now in order for the mapper to place this entity, we'll need an entry in our mods FGD.
66
CODE
67
68
@SolidClass base(Targetname) = func_jail : "in jail while inside" []
69
70
71
72
Thats It. Quite simple huh?
73
As following my last tutorial i've started a new trend of my own; optional blocks of code, or reference!
74
75
Lets say you want to check thisfor movement purposes, you'll want to dothis in pmove right? right. So in order to check if you're inside this entity inside pmove; all you have to do is use a check like:
76
CODE
77
78
if (pmove->PM_PointContents( pmove->origin, NULL ) == CONTENTS_JAIL ))
79
{
80
we're in jail!
81
}
82
83
84
any time you wan't to check it.
дальше кури playerа.
__________________
Владелец восьмиструнного монстра Schecter Omen-8 Vintage White (VWHT)
Бывал на концертах этих групп: Rashamba, 7000$, Louna, Molecul, Project Revolution, Headsource, Digimortal и многих других. Куча автографов.
Я член возлагаю на сраный геймдев.
fire64 это код еще из первохалфы. CSS из беты почти не отличается от своего оригинала для GoldSrc. Таким образом "исходники контер-страйка" давным-давно лежат в общем пользовании, но народ, почему-то этого упорно замечать не хочет.
Дядя Миша писал: fire64 это код еще из первохалфы. CSS из беты почти не отличается от своего оригинала для GoldSrc. Таким образом "исходники контер-страйка" давным-давно лежат в общем пользовании, но народ, почему-то этого упорно замечать не хочет.
Дядя Миша, ИМХО все же проще их использовать в Source Engine моде, нежели в GoldSRC.
Но все же это большей частью мусор.
Так как по сути говоря на момент кражи, порт геймплея был завершен от силы процентов на 30%
Там работает собственно режим команд и классов, покупка оружия и DE сценарий.
А вот щит, заложники, VIP и еще много чего, еще не портированы и имеют код оригинального Counter-Strike 1.6
Плюс так же там очень много другого закомментированного кода.
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
fire64 Сделаешь доброе дело? Приаттачь заложников (надеюсь, там для них basemonster не перелопатили).
__________________
Владелец восьмиструнного монстра Schecter Omen-8 Vintage White (VWHT)
Бывал на концертах этих групп: Rashamba, 7000$, Louna, Molecul, Project Revolution, Headsource, Digimortal и многих других. Куча автографов.
Я член возлагаю на сраный геймдев.
На самом деле опенсорсный контрстрайк на основе кода беты уже есть, бетастрайк что ли. Но беда в том, что его авторы умеют только копипастить, а там надо еще много самим дописывать, чего в бетке нет.