Итак, господа. Вот мой новый тутор. Почти до всего доходил своим умом, однако спасибо форуму 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 ); Всё!! Можно компилировать, компильте клиент и серверную часть! Однако хочу предупредить, что возможны глюки, связаные с тем, что некоторые НПЦ не прекешены, по этому пропишите кеш всех нпц
|