HLFX.Ru Forum Страницы (2): [1] 2 »
Показать все 20 сообщений этой темы на одной странице

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:

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

Как сделать чтобы определенное оружие можно было использовать только в триггере? Хороший пример тому с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.
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 и многих других. Куча автографов.
Я член возлагаю на сраный геймдев.


Отправлено 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:

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

__________________

xaerox on Vivino


Отправлено 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.

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

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'

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


Отправлено XaeroX 01-11-2010 в 09:47:

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

__________________

xaerox on Vivino


Временная зона GMT. Текущее время 10:55. Страницы (2): [1] 2 »
Показать все 20 сообщений этой темы на одной странице

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