Среда, 24.04.2024, 21:55
Приветствую Вас Guest | RSS
Главная страница | Статьи | Регистрация | Вход
Меню сайта

Случайный рисунок

Категории каталога
Туториалы по маппингу (HL2) [68]
Туториалы по маппингу для Half-Life
Туториалы по текстурированию (HL2) [10]
Туторы по текстурированию для Half-Life
Туториалы по моделированию (HL2) [9]
Туторы по моделированию для Half-Life
Туториалы по программированию (HL2) [53]
Туторы по прагроммированию для Half-life
Другие туториалы (HL1 и HL2) [4]
Туторы которые не вошли в другие категории
Half-Life 2 Beta [1]
Статьи о npc и weapon в бете Half-Life 2, а так же мануалы и FAQ.
Туториалы по маппингу (HL1) [14]
Туторы по маппингу для Half-Life 1
Туториалы по текстурированию (HL1) [1]
Туторы по текстурированию для Half-Life 1
Туториалы по моделированию (HL1) [1]
Туторы по моделированию для Half-Life 1
Туториалы по программированию (HL1) [30]
Туторы по программированию для Half-Life 1

Наш опрос
Очистить ли форум от всех сообщений и начать всё с чистого листа?
Всего ответов: 561

Начало » Статьи » Туториалы по программированию (HL1)

[HL1] Добавление комманды npc_create в ваш мод
Итак, господа.
Вот мой новый тутор.
Почти до всего доходил своим умом, однако спасибо форуму HLFX xDDDDDD
Итак тутор:
Для начала, мы зарегаем cvar "npc_create_dist" - для удобства - позволяет регулировать расстояние до создоваемого npc или другой entity
Для ентого зайдем на клиент, в частности на hud.cpp, находим функцию CHUD::Init и пишем среди аналогичных строк следующее:
Code
CVAR_CREATE("npc_create_dist", "128", FCVAR_ARCHIVE );
- с этим всё
Теперь добавим обработчик комманды "npc_create": заходим на серверную часть, находим client.cpp - там залазием в ClientCommand и пишем среди аналогичных:
Code
else if ( FStrEq(pcmd, "npc_create" ) )
  {
  int li_Dist = CVAR_GET_FLOAT("npc_create_dist");//запоминаем расстояние
  char *ls_Arg = (char *)STRING(MAKE_STRING( CMD_ARGV(1) )); // запоминаем имя npc/entity  
  UTIL_MakeVectors( Vector( 0, pev->v_angle.y, 0 ) );//создаем вектор, определяем позицию
  CBaseEntity::Create(ls_Arg, pev->origin + gpGlobals->v_forward * li_Dist, pev->angles);//создаем entity
  }

Так, теперь последнее, зарегаем комманду в консоли, чтобы она там была: заходим в hud.cpp на клиенте и находим там HOOK_COMMANDы и рядом пишем:
Code
ADD_NULL_CMD( "npc_create" );

Дальше залезаем в файл cl_util.h
И пишем там рядом с похожим

Code
#define ADD_NULL_CMD(x) gEngfuncs.pfnAddCommand( x, NULL );

Всё!! Можно компилировать, компильте клиент и серверную часть!

Однако хочу предупредить, что возможны глюки, связаные с тем, что некоторые НПЦ не прекешены, по этому пропишите кеш всех нпц

Категория: Туториалы по программированию (HL1) | Добавил: MadKing (10.03.2010)
Просмотров: 1939 | Комментарии: 3 | Рейтинг: 0.0 |

Всего комментариев: 3
3 leonosipenko  
0
Так есть способ прекешить не в функции спавна, допустим создать отдельную энтитя для этого. Хмм, надо будет попробовать. Если что получится попробую выложить на сайт, но я хз как)))

2 дикей  
0
Как юзать в консоли? Кстать прекэшить мона в crowbar.cpp например

1 Lexx9427  
0
Однако хочу предупредить, что возможны глюки, связаные с тем, что некоторые НПЦ не прекешены, по этому пропишите кеш всех нпц - пишет автор. Но как это делать. Пытаюсь прекешить их прям там,но при запуске игры в консоли вылазит ошибка типа прекешить можно тока в Spawn функции? что делать.

Я нашел не очень красивый выход.
На карте сделал небольшую комнату куда всех нпц и запихал,таким образом все монстры у меня прекешены уже при запуске карты.

Если найдете более красивое решение напишите плиз.Желательно на мыло lexx9427@gmail.com


Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Кто в Онлайн

Друзья сайта

Баннеры

  Сайт CrazyArts   Black   Сообщество сайтов о Half-Life   Самый   Только   Все   hl2 top 100     Rambler's Top100  

игры
игры

  Каталог сайтов Планета Топ 100 - Planet Top 100       ТОП ЛУЧШИХ ИГРОВЫХ САЙТОВ           Detroit Team Site :: Моды от Detroit Team, видео, новости.   Naruto-kun[Звезда Наруто]  


The idea of dising: Homie7