HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Оружие в триггере (https://hlfx.ru/forum/showthread.php?threadid=2412)
Отправлено PLut 29-10-2010 в 18:04:
Оружие в триггере
Как сделать чтобы определенное оружие можно было использовать только в триггере? Хороший пример тому с4 из кс.
__________________
Base Defense on Steam, ModDB
Отправлено sania_3 29-10-2010 в 18:13:
Тутор с 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 this for MMXHL a few years ago to disable WallJumping while inside the entity. |
3 | All of this is based off of the ladder code. |
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. |
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: |
12 | //============ func jail ================== |
14 | class CFuncJail : public CBaseTrigger |
17 | void KeyValue( KeyValueData *pkvd ); |
19 | void Precache( void ); |
22 | LINK_ENTITY_TO_CLASS( func_jail, CFuncJail ); //link func_jail to CFuncJail |
24 | void CFuncJail :: KeyValue( KeyValueData *pkvd ) |
26 | CBaseTrigger::KeyValue( pkvd ); |
28 | void CFuncJail :: Precache( void ) |
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 ) |
36 | pev->rendermode = kRenderTransTexture; |
39 | pev->effects &= ~EF_NODRAW; |
41 | void CFuncJail::Spawn( void ) |
45 | SET_MODEL(ENT(pev), STRING(pev->model)); // set size and link into world |
46 | pev->movetype = MOVETYPE_PUSH; |
50 | Now i've added a boolean to CBasePlayer for the server dll to reference if the player is in jail or not. |
56 | Now in player.cpp i've added a check into PlayerPrethink to set the bool's state: |
59 | if (UTIL_PointContents(pev->origin) == CONTENTS_JAIL) |
65 | Now in order for the mapper to place this entity, we'll need an entry in our mods FGD. |
68 | @SolidClass base(Targetname) = func_jail : "in jail while inside" [] |
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! |
75 | Lets say you want to check this for movement purposes, you'll want to do this 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: |
78 | if (pmove->PM_PointContents( pmove->origin, NULL ) == CONTENTS_JAIL )) |
84 | any time you wan't to check it. |
дальше кури playerа.__________________
Владелец восьмиструнного монстра Schecter Omen-8 Vintage White (VWHT)
Бывал на концертах этих групп: Rashamba, 7000$, Louna, Molecul, Project Revolution, Headsource, Digimortal и многих других. Куча автографов.
Я член возлагаю на сраный геймдев.
Отправлено PLut 31-10-2010 в 15:36:
Из ксс стырил
__________________
Base Defense on Steam, ModDB
Отправлено fire64 31-10-2010 в 15:45:
C++ Source Code:
pev->effects &= ~EF_NODRAW; |
Узнаю бету 
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Дядя Миша 31-10-2010 в 16:38:
Цитата:
fire64 писал:
Узнаю бету
Это стандартный код из SDK.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено fire64 31-10-2010 в 18:39:
Цитата:
Дядя Миша писал:
Это стандартный код из SDK.
Дядя Миша, разве сейчас в Source Engine не пишут вместо
C++ Source Code:
pev->effects &= ~EF_NODRAW; |
C++ Source Code:
RemoveEffects( EF_NODRAW ); |
Понятно, что в RemoveEffects, все тот же код pev->effects &= ~effect
Но тем немение так писать не принято.__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Дядя Миша 31-10-2010 в 19:01:
fire64 это код еще из первохалфы. CSS из беты почти не отличается от своего оригинала для GoldSrc. Таким образом "исходники контер-страйка" давным-давно лежат в общем пользовании, но народ, почему-то этого упорно замечать не хочет.
__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено fire64 31-10-2010 в 20:48:
Цитата:
Дядя Миша писал:
fire64 это код еще из первохалфы. CSS из беты почти не отличается от своего оригинала для GoldSrc. Таким образом "исходники контер-страйка" давным-давно лежат в общем пользовании, но народ, почему-то этого упорно замечать не хочет.
Дядя Миша, ИМХО все же проще их использовать в Source Engine моде, нежели в GoldSRC.
Но все же это большей частью мусор.
Так как по сути говоря на момент кражи, порт геймплея был завершен от силы процентов на 30%
Там работает собственно режим команд и классов, покупка оружия и DE сценарий.
А вот щит, заложники, VIP и еще много чего, еще не портированы и имеют код оригинального Counter-Strike 1.6
Плюс так же там очень много другого закомментированного кода.__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено Дядя Миша 31-10-2010 в 20:54:
Цитата:
fire64 писал:
Но все же это большей частью мусор.
Да мусор, мусор 
вам всяко виднее, товарищъ эксперт.__________________
My Projects: download page
F.A.Q по XashNT
Блог разработчика в телеграме
Цитата:
C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'
Отправлено sania_3 31-10-2010 в 20:55:
fire64 Сделаешь доброе дело? Приаттачь заложников (надеюсь, там для них basemonster не перелопатили).
__________________
Владелец восьмиструнного монстра Schecter Omen-8 Vintage White (VWHT)
Бывал на концертах этих групп: Rashamba, 7000$, Louna, Molecul, Project Revolution, Headsource, Digimortal и многих других. Куча автографов.
Я член возлагаю на сраный геймдев.
Отправлено XaeroX 31-10-2010 в 20:57:
На самом деле опенсорсный контрстрайк на основе кода беты уже есть, бетастрайк что ли. Но беда в том, что его авторы умеют только копипастить, а там надо еще много самим дописывать, чего в бетке нет.
__________________
Отправлено fire64 31-10-2010 в 21:16:
sania_3, не поверишь, но кода заложников там как раз и нет 
__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей
Отправлено qpAHToMAS 01-11-2010 в 03:12:
На счет CS клона:
http://www.shacknews.com/onearticle.x/11884
Как-то давно нашел
. Не знаю как сделали, я даже текст не переводил, но скриншоты симпатичны.
Отправлено fire64 01-11-2010 в 09:32:
Главный вопрос, а нафиг это нужно ?
Добавлено 01-11-2010 в 12:32:
Я сейчас декомелирую cs_i386.so.
Увидел много интересного, кстати там даже сохранились имена файлов исходников: