HLFX.Ru Forum
Показать все 13 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Radio как в cs1.6 (https://hlfx.ru/forum/showthread.php?threadid=1498)


Отправлено parazit 09-09-2008 в 16:38:

Radio как в cs1.6

Открываем player.cpp

и на 440 строчке пишем

//RADIO_START
else if (FStrEq(pcmd, "radio" ))
{
if((pEntity->v.deadflag == DEAD_NO) && (pEntity->v.health > 0))
GetClassPtr((CBasePlayer *)pev)->ShowRadioMenu();
}
else if ( FStrEq(pcmd, "menuselect" ) )
{
if( CMD_ARGC() == 2 && (pEntity->v.deadflag == DEAD_NO) && (pEntity->v.health > 0) )
{
CBasePlayer * pPlayer = GetClassPtr((CBasePlayer *)pev);
int slot = atoi( CMD_ARGV(1) );
if( pPlayer->m_iCurrentMenu == MENU_RADIO )
{
switch(slot)
{
case RADIO_GO:
for ( int i = 1; i <= gpGlobals->maxClients; i++ )
{
CBaseEntity *pPlayer = UTIL_PlayerByIndex( i );
if(pPlayer)
CLIENT_COMMAND(pPlayer->edict(), "spk sound/radio/com_go.wav\n");
}
UTIL_ClientPrintAll(HUD_PRINTTALK, UTIL_VarArgs( "(Radio) %s : Go! Go! Go!\n", STRING(pPlayer->pev->netname )) );
break;
/*
case RADIO_BLAH1:
for ( int i = 1; i <= gpGlobals->maxClients; i++ )
{
CBaseEntity *pPlayer = UTIL_PlayerByIndex( i );
if(pPlayer)
CLIENT_COMMAND(pPlayer->edict(), "spk sound/radio/blah1.wav\n");
}
UTIL_ClientPrintAll(HUD_PRINTTALK, UTIL_VarArgs( "(Radio) %s : Blah1.\n", STRING(pPlayer->pev->netname )) );

break;

case RADIO_LALAL2:
for ( int i = 1; i <= gpGlobals->maxClients; i++ )
{
CBaseEntity *pPlayer = UTIL_PlayerByIndex( i );
if(pPlayer)
CLIENT_COMMAND(pPlayer->edict(), "spk sound/radio/lalal2.wav\n");
}
UTIL_ClientPrintAll(HUD_PRINTTALK, UTIL_VarArgs( "(Radio) %s : Lalal2!\n", STRING(pPlayer->pev->netname )) );

break;
*/
}
pPlayer->m_iCurrentMenu = MENU_NONE;
}
}
}
//RADIO_END

далее на строчке 807

//RADIO_START
PRECACHE_SOUND("radio/com_go.wav");
//RADIO_END

все закрываем client.cpp и открываем player.cpp

вставляем на строчке 4571

//RADIO_START
//=========================================================
//
//=========================================================
void CBasePlayer :: ShowRadioMenu( void )
{
MESSAGE_BEGIN( MSG_ONE, gmsgShowMenu, NULL, edict());
WRITE_SHORT((1 << RADIO_GO - 1)/*|(1 << RADIO_BLAH1 - 1)|(1 << RADIO_LALAL2 - 1)*/|(1 << RADIO_CANCEL - 1));
WRITE_CHAR(-1);
WRITE_BYTE(0);
WRITE_STRING("Radio\n\n1. Go! Go! Go!\n\n0. Cancel.");
MESSAGE_END();
m_iCurrentMenu = MENU_RADIO;
}
//RADIO_END

Далее открываем player.h и на строчке 65 вставляем

//RADIO_START
#define MENU_NONE 0
#define MENU_RADIO 1
#define RADIO_GO 1
//#define RADIO_BLAH1 2
//#define RADIO_LALAL2 3

#define RADIO_CANCEL 10
//RADIO_END

и на строчке 323

//RADIO_START
int m_iCurrentMenu;
void ShowRadioMenu( void );
//RADIO_END

Все сохраняем компелируем вставляем в папку radio звук com_go.wav и запускаем игру и в игре биндим radio вот и все



Дал код "DATA" спс ему!

__________________
Пока всем!!!


Отправлено Дядя Миша 09-09-2008 в 17:01:

parazit а разве на клиенте не должно быть симпатичной VGUI менюшки с выбором радио сообщений?

__________________
My Projects: download page

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

Цитата:

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


Отправлено XaeroX 09-09-2008 в 17:16:

А этот код мы предлагаем любознательному читателю написать самостоятельно.

__________________

xaerox on Vivino


Отправлено parazit 09-09-2008 в 17:40:

Вы такие добрые

__________________
Пока всем!!!


Отправлено Василь 09-09-2008 в 18:40:

Я так понял для каждой команды надо ~такой кусок кода писать.

__________________
HomePage
YouTube
RIP - Defiler Unit


Отправлено Дядя Миша 10-09-2008 в 07:35:

VA5I1 нет, ты понял неправильно.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Василь 10-09-2008 в 18:39:

А, теперь догнал это не для радио команд (z,x,c), а для сообщения в начале раунда.

__________________
HomePage
YouTube
RIP - Defiler Unit


Отправлено XaeroX 10-09-2008 в 18:42:

VA5I1 эээ... ты о чем?

__________________

xaerox on Vivino


Отправлено Василь 10-09-2008 в 18:56:

Ну в КС при начале раунда звучит "Go Go Go"

Ведь этот кусочек кода отвечает за вывод надписи Go! Go! Go! в худ

C++ Source Code:
UTIL_ClientPrintAll(HUD_PRINTTALK, UTIL_VarArgs( "(Radio) %s : Go! Go! Go!\n", STRING(pPlayer->pev->netname )) );  break;


Добавлено 10-09-2008 в 22:53:

Ааааа извиняйте торможу...

Добавлено 10-09-2008 в 22:56:

Я уже вкурил...

__________________
HomePage
YouTube
RIP - Defiler Unit


Отправлено Дядя Миша 11-09-2008 в 08:19:

VA5I1 ну и за это тоже.

__________________
My Projects: download page

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

Цитата:

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


Отправлено Василь 11-09-2008 в 11:25:

Дядя Миша, извиняй, я просто мозг забыл включить...

__________________
HomePage
YouTube
RIP - Defiler Unit


Отправлено Дядя Миша 11-09-2008 в 15:47:

VA5I1 да меня-то за что?
сам ведь догадался в итоге

__________________
My Projects: download page

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

Цитата:

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


Отправлено Василь 11-09-2008 в 16:28:

Дядя Миша, За то что тупил...

__________________
HomePage
YouTube
RIP - Defiler Unit


Временная зона GMT. Текущее время 17:45.
Показать все 13 сообщений этой темы на одной странице

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