HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Оружие в триггере
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 31

Рейтинг



Arrow Оружие в триггере

Как сделать чтобы определенное оружие можно было использовать только в триггере? Хороший пример тому с4 из кс.

__________________
Base Defense on Steam, ModDB

Сообщить модератору | IP: Записан
Сообщение: 66359

Старое сообщение 29-10-2010 18:04
- За что?
sania_3
Местный криворукий гитарист.

Дата регистрации: Jun 2009
Проживает: Ростов-на-Дону.
Сообщений: 413
Возраст: 35

Рейтинг



Награды
 
[1 награда]


Тутор с 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.
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 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:
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 и многих других. Куча автографов.
Я член возлагаю на сраный геймдев.

Сообщить модератору | IP: Записан
Сообщение: 66360

Старое сообщение 29-10-2010 18:13
- За что?
PLut
Creator

Дата регистрации: Jun 2009
Проживает: Санкт-Петербург
Сообщений: 1220
Возраст: 31

Рейтинг



Из ксс стырил

__________________
Base Defense on Steam, ModDB

Сообщить модератору | IP: Записан
Сообщение: 66541

Старое сообщение 31-10-2010 15:36
- За что?
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



C++ Source Code:
pev->effects &= ~EF_NODRAW;

Узнаю бету

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | IP: Записан
Сообщение: 66545

Старое сообщение 31-10-2010 15:45
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33059
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
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'

Сообщить модератору | IP: Записан
Сообщение: 66550

Старое сообщение 31-10-2010 16:38
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Цитата:
Дядя Миша писал:
Это стандартный код из SDK.



Дядя Миша, разве сейчас в Source Engine не пишут вместо

C++ Source Code:
pev->effects &= ~EF_NODRAW;



C++ Source Code:
RemoveEffects( EF_NODRAW );


Понятно, что в RemoveEffects, все тот же код pev->effects &= ~effect
Но тем немение так писать не принято.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | IP: Записан
Сообщение: 66567

Старое сообщение 31-10-2010 18:39
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33059
Нанёс повреждений: 392 ед.

Рейтинг



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'

Сообщить модератору | IP: Записан
Сообщение: 66574

Старое сообщение 31-10-2010 19:01
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Цитата:
Дядя Миша писал:
fire64 это код еще из первохалфы. CSS из беты почти не отличается от своего оригинала для GoldSrc. Таким образом "исходники контер-страйка" давным-давно лежат в общем пользовании, но народ, почему-то этого упорно замечать не хочет.


Дядя Миша, ИМХО все же проще их использовать в Source Engine моде, нежели в GoldSRC.

Но все же это большей частью мусор.
Так как по сути говоря на момент кражи, порт геймплея был завершен от силы процентов на 30%

Там работает собственно режим команд и классов, покупка оружия и DE сценарий.


А вот щит, заложники, VIP и еще много чего, еще не портированы и имеют код оригинального Counter-Strike 1.6

Плюс так же там очень много другого закомментированного кода.

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | IP: Записан
Сообщение: 66596

Старое сообщение 31-10-2010 20:48
- За что?
 Дядя Миша
racing for fish

Дата регистрации: Oct 2005
Проживает: Кубань
Сообщений: 33059
Нанёс повреждений: 392 ед.

Рейтинг



Цитата:
fire64 писал:
Но все же это большей частью мусор.

Да мусор, мусор
вам всяко виднее, товарищъ эксперт.

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'

Сообщить модератору | IP: Записан
Сообщение: 66599

Старое сообщение 31-10-2010 20:54
-
sania_3
Местный криворукий гитарист.

Дата регистрации: Jun 2009
Проживает: Ростов-на-Дону.
Сообщений: 413
Возраст: 35

Рейтинг



Награды
 
[1 награда]


fire64 Сделаешь доброе дело? Приаттачь заложников (надеюсь, там для них basemonster не перелопатили).

__________________
Владелец восьмиструнного монстра Schecter Omen-8 Vintage White (VWHT)
Бывал на концертах этих групп: Rashamba, 7000$, Louna, Molecul, Project Revolution, Headsource, Digimortal и многих других. Куча автографов.
Я член возлагаю на сраный геймдев.

Сообщить модератору | IP: Записан
Сообщение: 66600

Старое сообщение 31-10-2010 20:55
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35059
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


На самом деле опенсорсный контрстрайк на основе кода беты уже есть, бетастрайк что ли. Но беда в том, что его авторы умеют только копипастить, а там надо еще много самим дописывать, чего в бетке нет.

__________________

Сообщить модератору | IP: Записан
Сообщение: 66601

Старое сообщение 31-10-2010 20:57
-
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



sania_3, не поверишь, но кода заложников там как раз и нет

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | IP: Записан
Сообщение: 66604

Старое сообщение 31-10-2010 21:16
- За что?
qpAHToMAS
Интернетовское трепло

Дата регистрации: Sep 2007
Проживает: (void)
Сообщений: 1788
Возраст: 34

Рейтинг



На счет CS клона:
http://www.shacknews.com/onearticle.x/11884
Как-то давно нашел . Не знаю как сделали, я даже текст не переводил, но скриншоты симпатичны.

Сообщить модератору | IP: Записан
Сообщение: 66613

Старое сообщение 01-11-2010 03:12
- За что?
fire64
Житель форума

Дата регистрации: Apr 2007
Проживает: Москва
Сообщений: 2362
Возраст: 35

Рейтинг



Главный вопрос, а нафиг это нужно ?

Добавлено 01-11-2010 в 12:32:

Я сейчас декомелирую cs_i386.so.

Увидел много интересного, кстати там даже сохранились имена файлов исходников:

code:
.init:000783B4 ; Source File : 'airtank.cpp' .init:000783B4 ; Source File : 'ammo.cpp' .init:000783B4 ; Source File : 'animating.cpp' .init:000783B4 ; Source File : 'animation.cpp' .init:000783B4 ; Source File : 'bmodels.cpp' .init:000783B4 ; Source File : 'buttons.cpp' .init:000783B4 ; Source File : 'cbase.cpp' .init:000783B4 ; Source File : 'client.cpp' .init:000783B4 ; Source File : 'combat.cpp' .init:000783B4 ; Source File : 'doors.cpp' .init:000783B4 ; Source File : 'effects.cpp' .init:000783B4 ; Source File : 'explode.cpp' .init:000783B4 ; Source File : 'func_break.cpp' .init:000783B4 ; Source File : 'func_tank.cpp' .init:000783B4 ; Source File : 'game.cpp' .init:000783B4 ; Source File : 'gamerules.cpp' .init:000783B4 ; Source File : 'ggrenade.cpp' .init:000783B4 ; Source File : 'globals.cpp' .init:000783B4 ; Source File : 'h_ai.cpp' .init:000783B4 ; Source File : 'h_battery.cpp' .init:000783B4 ; Source File : 'h_cycler.cpp' .init:000783B4 ; Source File : 'h_export.cpp' .init:000783B4 ; Source File : 'healthkit.cpp' .init:000783B4 ; Source File : 'hintmessage.cpp' .init:000783B4 ; Source File : 'items.cpp' .init:000783B4 ; Source File : 'lights.cpp' .init:000783B4 ; Source File : 'maprules.cpp' .init:000783B4 ; Source File : 'mortar.cpp' .init:000783B4 ; Source File : 'mpstubb.cpp' .init:000783B4 ; Source File : 'multiplay_gamerules.cpp' .init:000783B4 ; Source File : 'observer.cpp' .init:000783B4 ; Source File : 'pathcorner.cpp' .init:000783B4 ; Source File : 'plane.cpp' .init:000783B4 ; Source File : 'plats.cpp' .init:000783B4 ; Source File : 'player.cpp' .init:000783B4 ; Source File : 'singleplay_gamerules.cpp' .init:000783B4 ; Source File : 'skill.cpp' .init:000783B4 ; Source File : 'sound.cpp' .init:000783B4 ; Source File : 'soundent.cpp' .init:000783B4 ; Source File : 'spectator.cpp' .init:000783B4 ; Source File : 'subs.cpp' .init:000783B4 ; Source File : 'training_gamerules.cpp' .init:000783B4 ; Source File : 'triggers.cpp' .init:000783B4 ; Source File : 'util.cpp' .init:000783B4 ; Source File : 'vehicle.cpp' .init:000783B4 ; Source File : 'weapons.cpp' .init:000783B4 ; Source File : 'world.cpp' .init:000783B4 ; Source File : 'tutor.cpp' .init:000783B4 ; Source File : 'career_tasks.cpp' .init:000783B4 ; Source File : 'tutor_base_tutor.cpp' .init:000783B4 ; Source File : 'tutor_cs_tutor.cpp' .init:000783B4 ; Source File : 'tutor_base_states.cpp' .init:000783B4 ; Source File : 'tutor_cs_states.cpp' .init:000783B4 ; Source File : 'weapontype.cpp' .init:000783B4 ; Source File : 'debug.cpp' .init:000783B4 ; Source File : 'wpn_ak47.cpp' .init:000783B4 ; Source File : 'wpn_aug.cpp' .init:000783B4 ; Source File : 'wpn_awp.cpp' .init:000783B4 ; Source File : 'wpn_c4.cpp' .init:000783B4 ; Source File : 'wpn_deagle.cpp' .init:000783B4 ; Source File : 'wpn_elite.cpp' .init:000783B4 ; Source File : 'wpn_fiveseven.cpp' .init:000783B4 ; Source File : 'wpn_flashbang.cpp' .init:000783B4 ; Source File : 'wpn_g3sg1.cpp' .init:000783B4 ; Source File : 'wpn_glock18.cpp' .init:000783B4 ; Source File : 'wpn_hegrenade.cpp' .init:000783B4 ; Source File : 'wpn_knife.cpp' .init:000783B4 ; Source File : 'wpn_m249.cpp' .init:000783B4 ; Source File : 'wpn_m3.cpp' .init:000783B4 ; Source File : 'wpn_m4a1.cpp' .init:000783B4 ; Source File : 'wpn_mac10.cpp' .init:000783B4 ; Source File : 'wpn_mp5navy.cpp' .init:000783B4 ; Source File : 'wpn_p228.cpp' .init:000783B4 ; Source File : 'wpn_p90.cpp' .init:000783B4 ; Source File : 'wpn_scout.cpp' .init:000783B4 ; Source File : 'wpn_sg550.cpp' .init:000783B4 ; Source File : 'wpn_sg552.cpp' .init:000783B4 ; Source File : 'wpn_smokegrenade.cpp' .init:000783B4 ; Source File : 'wpn_tmp.cpp' .init:000783B4 ; Source File : 'wpn_ump45.cpp' .init:000783B4 ; Source File : 'wpn_usp.cpp' .init:000783B4 ; Source File : 'wpn_famas.cpp' .init:000783B4 ; Source File : 'wpn_galil.cpp' .init:000783B4 ; Source File : 'wpn_xm1014.cpp' .init:000783B4 ; Source File : 'pm_shared.c' .init:000783B4 ; Source File : 'pm_math.c' .init:000783B4 ; Source File : 'pm_debug.c' .init:000783B4 ; Source File : 'voice_gamemgr.cpp' .init:000783B4 ; Source File : 'shared_util.cpp' .init:000783B4 ; Source File : 'cs_bot.cpp' .init:000783B4 ; Source File : 'cs_bot_chatter.cpp' .init:000783B4 ; Source File : 'cs_bot_event.cpp' .init:000783B4 ; Source File : 'cs_bot_init.cpp' .init:000783B4 ; Source File : 'cs_bot_learn.cpp' .init:000783B4 ; Source File : 'cs_bot_listen.cpp' .init:000783B4 ; Source File : 'cs_bot_manager.cpp' .init:000783B4 ; Source File : 'cs_bot_nav.cpp' .init:000783B4 ; Source File : 'cs_bot_pathfind.cpp' .init:000783B4 ; Source File : 'cs_bot_radio.cpp' .init:000783B4 ; Source File : 'cs_bot_statemachine.cpp' .init:000783B4 ; Source File : 'cs_bot_update.cpp' .init:000783B4 ; Source File : 'cs_bot_vision.cpp' .init:000783B4 ; Source File : 'cs_bot_weapon.cpp' .init:000783B4 ; Source File : 'cs_gamestate.cpp' .init:000783B4 ; Source File : 'MemPool.cpp' .init:000783B4 ; Source File : 'utlsymbol.cpp' .init:000783B4 ; Source File : 'hostage_animate.cpp' .init:000783B4 ; Source File : 'hostage_escape.cpp' .init:000783B4 ; Source File : 'hostage_follow.cpp' .init:000783B4 ; Source File : 'hostage_idle.cpp' .init:000783B4 ; Source File : 'hostage_retreat.cpp' .init:000783B4 ; Source File : 'hostage.cpp' .init:000783B4 ; Source File : 'hostage_improv.cpp' .init:000783B4 ; Source File : 'hostage_localnav.cpp' .init:000783B4 ; Source File : 'bot.cpp' .init:000783B4 ; Source File : 'bot_manager.cpp' .init:000783B4 ; Source File : 'bot_profile.cpp' .init:000783B4 ; Source File : 'bot_util.cpp' .init:000783B4 ; Source File : 'nav_area.cpp' .init:000783B4 ; Source File : 'nav_file.cpp' .init:000783B4 ; Source File : 'nav_node.cpp' .init:000783B4 ; Source File : 'nav_path.cpp' .init:000783B4 ; Source File : 'cs_bot_attack.cpp' .init:000783B4 ; Source File : 'cs_bot_buy.cpp' .init:000783B4 ; Source File : 'cs_bot_defuse_bomb.cpp' .init:000783B4 ; Source File : 'cs_bot_escape_from_bomb.cpp' .init:000783B4 ; Source File : 'cs_bot_fetch_bomb.cpp' .init:000783B4 ; Source File : 'cs_bot_follow.cpp' .init:000783B4 ; Source File : 'cs_bot_hide.cpp' .init:000783B4 ; Source File : 'cs_bot_hunt.cpp' .init:000783B4 ; Source File : 'cs_bot_idle.cpp' .init:000783B4 ; Source File : 'cs_bot_investigate_noise.cpp' .init:000783B4 ; Source File : 'cs_bot_move_to.cpp' .init:000783B4 ; Source File : 'cs_bot_plant_bomb.cpp' .init:000783B4 ; Source File : 'cs_bot_use_entity.cpp'

__________________
Вся сила лысого кощея,
Сокрыта в башне из костей
Воздвигнутой, под небесами
На месте похорон людей

Сообщить модератору | IP: Записан
Сообщение: 66638

Старое сообщение 01-11-2010 09:32
- За что?
 XaeroX
Crystice Softworks

Дата регистрации: Oct 2005
Проживает: Торонто
Сообщений: 35059
Нанёс повреждений: 514 ед.
Возраст: 39

Рейтинг



Награды
 
[1 награда]


fire64
А что именно ты там "декомелировал"?
Имена исходников - это дебаг-инфа, авторы, видимо, забыли сделать strip -x.

__________________

Сообщить модератору | IP: Записан
Сообщение: 66640

Старое сообщение 01-11-2010 09:47
-
Тема: (Опционально)
Ваш ответ:



Переводчик транслита


[проверить длину сообщения]
Опции: Автоматическое формирование ссылок: автоматически добавлять [url] и [/url] вокруг интернет адресов.
Уведомление по E-Mail: отправить вам уведомление, если кто-то ответил в тему (только для зарегистрированных пользователей).
Отключить смайлики в сообщении: не преобразовывать текстовые смайлики в картинки.
Показать подпись: добавить вашу подпись в конец сообщения (только зарегистрированные пользователи могут иметь подписи).

Временная зона GMT. Текущее время 12:21. Новая тема    Ответить
Страницы (2): [1] 2 »   Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > Half-Life SDK > Оружие в триггере
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024