Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

#16 - Ворвращение


Информационный Канал Subscribe.Ru

EXE.Рассылка


Содержание выпуска (#16 от 10.12.04)

=> Новости
=> Консоль разработчика
=> "Смерть" CSLORD
=> FAQ = Вопросы с ответами


Новости
© Наша-Life

HLSW 1.0.0.38
Вышла новая версия программы мониторинга серверов для Counter-Strike: Source - HLSW .
Изменения:
  • Исправлена ошибка подключения к Steam
  • Исправленs несколько ошибок вылетания программы
  • Добавлена возможность использовать плагины
  • Добавлена возможность настройки плагинов
  • Многое другое
HL2: DM Christmas Pack
Начался первый месяц зимы, приближаются праздники... в игровом мире начинают появляться зимние прибамбасы. Уже сейчас вы можете скачать набор моделей для HL2: DeathMatch, дарящий всем сторонникам сопротивления зимние головные уборы.

Качайте (5.45 Мб). Для установки достаточно распаковать содержимое архива в папку с установленным HL2DM.

RavenHolm DoneQuick - 2:29
Мы уже писали вам о скоростном прохождении Half-Life 2, выложенном на сайте Speed Demos Archive. Сегодня мы хотим рассказать о другом проекте - Half-Life 2 Done Quick , так же занимающимся установлением временных рекордов по прохождению одиночной игры.

Первый кусок Half-Life 2, готовый к показу - прохождение всего Ravenholm, шахтерского городка, где отец Григорий следит за своей паствой, пройден за рекордные 2 минуты и 28 секунд на высоком уровне сложности. Даже будучи подготовленным к просмотру подобных роликов - всегда найдешь чему поразиться. Убедитесь сами: Первые две ссылки - видео в высоком и низком разрешениях, последний - четыре демки для игры, на основе которых и были создано видеоролики. Демки проигрываются непосредственно в Half-Life 2. Внимание! Для проигрывание демок версия вашего клиента должна быть седьмая (7)!

Новый обзор Half-Life 2
Обзор Half-Life 2 от Overclockers.ru. Цитата:
Это игра, унаследовавшая многие из лучших качеств оригинального Half-Life. Ураганный геймплей, выверенный с ювелирной точностью, ни на секунду не позволит заскучать. Прекрасно детализованные, продуманные декорации проносятся мимо, подобно деревьям на обочине автобана, не успевая надоесть, но и не позволяя как следует разглядеть себя. А жаль, ведь каждая такая "декорация", будь то Оруэлловский City17, останки НИИ или почти готически кошмарный Ravenholm - это плод кропотливейшей работы сценаристов, дизайнеров и моделлеров, восхитительно проработанное ответвление главной сюжетной линии. Стоит добавить, что каждый эпизод закончится именно тогда, когда надо, в тот самый момент, когда вам станет чуть-чуть скучно.

Немного информации о SourceMod
C выходом Counter-Strike: Source у администраторов игровых серверов все больше и больше возникает потребность в какой-нибудь оболочке для администрирования игры. Встроенная система команд Rcon не спасает. К примеру, для предыдущих версий были такие программы, как AdminMod, AMX Mod, в дальнейшем переросший в AMXx Mod... Именно автор последней оболочки, Bailopan, и взялся за создание программы администрирования для серверов Counter-Strike: Source - SourceMod . C ним-то ведущий сайта Punk Ass Fraggers и беседует :
Soopa: для начала вопрос, который у всех на устах: когда намечен выход первой беты?
Bailopan: Ну, хорошие новости заключаются в том, что "скелет" уже сделан. Основная сложность заключается в том, чтобы разобраться в тоннах кода Source SDK. Я надеюсь, что на это уйдет примерно несколько близжайших недель, после чего мы выпустим более менее качественную, функциональную бету. Если выпустить программу с минимумом возможностей и дополнять их походу, то мы так никогда не закончим. Не люблю называть дат.

Soopa: какие изначальные плагины будут включены в пакет SourceMod (Slap, Slay, резервирование слотов для VIP)?
Bailopan: Для начала, у вас будет возможность кикать, банить и несильно наказывать. Это, а также зарезервированные слоты - вот что на самом деле нужно админам. Остальные плагины не имеют столь сильного приоритета, чтобы разрабатывать их до релиза программы.

GameSpy: Лучшие игры 2004
Крупнейший западный игровой сайт GameSpy проводит очередную ежегодную церемонию "Game of the Year 2004" . Это голосование игроков со всего мира, призванное выявить самые лучшие игры уходящего года. Сходите и проголосуйте за ваши любимые игры.

Отметим, что интересующий нас Half-Life 2, выставлен в трех номинациях:
  • Лучшая игра-боевик
  • Лучшая сетевая игра (HL2DM и CS: Source)
  • Лучшая игра года
Напомним, что GameSpy уже награждал HL2 званием "Самой ожидаемой игры 2004 года", а также семью(!) наградами за шоу на E3 в 2003-2004 годах.

JBMod 0.4
Многим фанатам Half-Life 2 запомнился и очень сильно запало в душу оружие, продемонстрированное в технологическом ролике игры, показанном на E3 2003. Напомним, что при помощи "физической пушки" (это не манипулятор из одиночной игры) можно было синим лучом поднимать тела людей, различные предметы. Те, кто знаком с украденной бетой HL2 могут знать еще об одной функции этого оружия - "спайка" различных предметов между собой, что позволяло выстраивать невероятные конструкции их окружающих предметов.

Напоминали всё это мы вам только с одной целью - рассказать о мини-модификации, добавляющей в одиночную игру Half-Life 2 эту самую "физическую пушку", воссозданную участником форумов HL2World.

Поднятие и перенос живых персонажей игры? Нет проблем. "Сварка" нескольких предметов? Нет ничего легче. Добавлять и удалять сварочные соединения, которых ровно 512, можно нажатием одной клавиши. Можно считать это оружие расширенным вариантом органического и простого манипуляторов.

Теперь можно скачать более новую версию модификации JBMod. Изменений не много: добавлены новые консольные команды и переменные, а так же исправлена ошибка с вылетом игры при удалении сварочных соединений.

Более подробно читайте в руководстве к моду. Желающие качают.

HL2DM Create Server Mod
Наблюдая за повышенным интересом игроков к недавно появившейся сетевой игре, предлагаем всем заинтересованным скачать небольшую модификацию, позволяющую более гибко управлять процессом создания сервера.

С её помощью, при создании сервера, можно изменять количество свободных мест, устанавливать пароль на сервер, имя сервера и т.д. Качайте HL2DM Create Server Mod (94.6 Кб).

Возврашение Decay
Half-Life 2: DecayНаши друзья с сайта HL2Source рассказали о своей работе над модификацией к Half-Life 2 - PC версией Decay. В оригинале Decay - эксклюзивное дополнение к Half-Life для PlayStation 2, выполненное Gearbox software, и представляющее собой кооперативную игру за двух главных персонажей (поддерживалась одновременная игра двух игроков за одним компьютером).

Это Collette Green и Gina Cross - две женщины, коллеги Гордона Фримена, работавшие в Black Mesa Research Facility. Действия в Decay разворачиваются в то же самое время, что и в оригинальном Half-Life. Игра начинается с того, как ученые ученые подготавливают тестовую камеру для проведения эксперимента Фрименом и доставляют ему образец аномального материала, вызвавшего, как вы знаете, каскадный резонанс. Half-Life: Decay представляет возможность взглянуть на оригинальную историю с новой стороны.

Авторы обещают не ограничиться простым портированием, как это произошло с HL: Source. Использование возможностей движка Source и полное обновление всего игрового контента должны вдохнуть в модификацию новую жизнь. На сайте проекта вы можете найти два ранних скриншота, демонстрирующих порт PS2 версии на движок HL. Сейчас идет работа по переносу HL версии на HL2.

Монтировка 4ever!
Программист Valve Андриан Финол, в частной переписке с представителем сайта HL2World, упомянул одну очень интересную деталь, касаемую HL2DM. В ответ на вопрос, почему в сетевой игре нет монтировки - легендарного символа игры, Андриан дал следующий ответ: Скоро мы добавим как монтировку, так и парализующую дубинку (которыми пользовалась городская полиция). Весьма хорошее дополнение, ведь на самом деле - без монтировки это не Half-Life. ;)


Косоль разработчика

© Наша-Life

Вступление
Консоль - это основной инструмент для отладки кода игры и настройки параметров. Консоль - это текстовый интерфейс ввода/вывода, который позволяет изменять глобальные переменные игры во время выполнения. Для включения консоли откройте "Options"-> "Keyboard" -> "Advanced…" и выберите "Enable developer console" . По-умолчанию консоль открывается кнопкой "~" (тильда). Чтобы сделать консоль доступной при старте игры, необходимо дописать ключи "-dev" или "-console" в параметры запуска (разработчики должны всегда использовать -dev ). Если HL запущена в режиме встроенного отладчика, то консоль будет являться вашим окном отладки. Запустите игру с параметром "-condebug" , чтобы записывать полный Log консоли в файл "console.log" , находящийся в папке игры.

После того, как вы ввели команду, она должна быть выполнена, для этого нажмите ENTER или нажмите на кнопку 'Submit' . Команда имеет уникальное имя и может иметь несколько параметров, которые отделяются пробелами (синтаксис: команда <параметр1> [<параметр2>] ). В имени команды не может быть пробелов, если параметр команды содержит пробелы, то он заключается в кавычки:

]bind h "say hello world"
]name "Gordon Freeman"

Консоль запоминает последние выполненые команды, для быстрого доступа к ним нажмите СТРЕЛКА ВВЕРХ или СТРЕЛКА ВНИЗ . Вы можете автоматически завершать имя и параметр команды, нажав TAB и выбрав из списка нужный вариант. Некоторые команды (например map , load и т.д.) поддерживают автозавершение для первого параметра.

Существуют определенные отличия между консольными командами и консольными переменными. Консольные команды обычно передают параметры для некоторой функции кода и выполняют ее, но они не запоминают переданные параметры. Консольные переменные сохраняют свое значение в глобальных настройках. Консольные переменные имеют только одно значение, которое может быть цифрой или строкой; это зависит от кода игры, как эти значения интерпретируются. Часто консольные переменные подобнв триггерам; могут иметь два значения/состояния: 0 - выключено, 1 - включено (примером такой команды может служить cl_showfps ). Чтобы увидеть текущее значение переменной, достаточно написать ее имя без параметров.

Большинство консольных команд имеют приставки, которые служат для определения подсистемы к которой они принадлежат. Это правило не всегда распространяется на команды, которые перешли из первой части игры, они остались прежними. Вот некоторые приставки:

ai_ AI в одиночном режиме
cc_ Система закрытых сообщений
cl_ Сетевой клиент
demo_ Проигрыватель демозаписей
disp_ Карты ландшафта
dsp_ Аудио DSP настройки
ent_ Управление/отладка объектов (entity)
fire_ "Сжигание" событий объектов
fog_ Рендер тумана
g_ Одиночный режим игры
hltv_ Half-Life TV
host_ Система хостов
hud_ HUD клиента
joy_ Работа с джойстиком
log_ Система отчетов (Log)
m_ Работа с мышью
mat_ Система материалов
mp_ Сетевая игра (сервер)
nav_ Навигационные пути
net_ Сетевые команды
npc_ NPC в одиночном режиме
phys_ Физическая система
r_ Видео рендер
rcon_ Удаленное управление
sk_ Уровень сложности (skill)
snd_ Звуковая система
sv_ Настройки сервера (движок)
v_ Вид клиента
vgui_ VGUI
voice_ Голос игрока в игре
vprof_ Профилировщик кода (code profiler)
wc_ Помощник по WorldCraft/Hammer

Если вы забыли команду, то find <часть строки> покажет все команды, содержащие эту часть строки. Команда help <команда> покажет справку по данной команде (если доступна).

Вывод в консоли

Вывод текста в консоль доступен из всех модулей и контролируется через Tier(). Есть 3 дополнительные команды Msg() , DevMsg() и Warning() ; которые поддерживают вывод форматированной строки, как sprintf() :
DevMsg (char const* pMsg, ... ) - только в режиме разработчика
Msg(char const* pMsg, ... ) - всегда, белый текст
Warning(char const *pMsg, ... ) - всегда, красный текст

Для обратной совместимости с HL1 сохранены команды Con_Printf() и Con_DPrintf().

Исполнение команд

Движок использует интерфейс сервера и клиента, чтобы исполнять команды (строки). Сервер использует интерфейс
IVEngineServer::ServerCommand():
engine->ServerCommand("changelevel de_dust");

Клиент использует интерфейс IVEngineClient и выбирает между двумя командами, от этого зависит, будет ли команда исполняться сначала на клиенте или посылаться непосредственно серверу:

engine->ServerCmd( "say hello" ); // послать команду на сервер

или

engine->ClientCmd( "say hello" ); // выполнить команду на клиенте

Добавление новых команд и переменных

Консоль разработчика - это подсистема движка Source, которая дает доступ к различным модулям, это осуществляется через интерфейс ICvar ( см. publicicvar.h ). Этот интерфейс регистрирует новые команды и ищет существующие. Этот интрефейс доступен через глобальную переменную cvar в клиент-серверном коде.

Добавление новых команд и переменных довольно просто и дуступно для использования и для серверных и для клиентских модулей. Конструктор этих классов автоматически регистрирует новую команду/переменную в системе консоли. Этот короткий пример кода добавляет новую функцию my_function и новую переменную my_variable:
#include <convar.h>
ConVar my_variable( "my_variable", "42", FCVAR_ARCHIVE, "My favorite number" );
void MyFunction_f( void )
{
Msg("This is my functionn");
}
ConCommand my_function( "my_function", MyFunction_f, "Shows a message.", FCVAR_CHEAT );

Использование класса ConVar

Для начала рассмотрим конструктор класса ConVar:
ConVar( char const *pName,
char const *pDefaultValue,
int flags,
char const *pHelpString )

Первый аргумент pName - это имя переменной (без пробелов), следующий: pDefaultValue , всегда является строковым, даже для числовых значений. Flags определяет специальные характеристики переменной, все флаги начинаются с FCVAR_* , но об этом позже. Очень хорошо использовать pHelpString , этот аргумент содержит справку о переменной. Это значение может быть любым, на ваше усмотрение.
if ( my_variable.GetInt() == 42 ) DoSomething();
if ( my_variable.GetFloat() == 42.0f ) DoSomething();
if ( strcmp(my_variable.GetString(), "42")==0 ) DoSomething();

Для установки значения ConVar используется функция SetValue(), использующая любые типы данных:
my_variable.SetValue( 42 );
my_variable.SetValue( 42.0f );
my_variable.SetValue( "42" );

Чтобы вернуть значение ConVar назад на значение по-умолчанию, необходимо использовать функцию Revert().

Если ConVar создан в разных модулях, то в интерфейсе ICvar функция FindVar() используется для получения указателя на объект, если имя переменной установлено. Вот простой пример, который проверяет установлена ли ConVar sv_cheats в модуле движка:
ConVar *pCheats = cvar->FindVar( "sv_cheats" );
if ( pCheats && pCheats->GetInt() == 1 ) AllowCheating();

Массив правильных значений ConVars определяет числами и использует разные конструкторы. Если введенное значение выходит за границы массива, то оно уравнивается до следующего правильного значения. Установление правильного массива от 1 до 100:
ConVar my_variable( "my_variable", "42", 0, "helptext", true, 1, true, 100 );

Вы получите уведомление, если какая-либо из подсистем изменит значение ConVar, это потребует установленной функции обратного вызова:
static void OnChangeMyVariable ( ConVar *var, char const *pOldString )
{
DevMsg( "ConVar %s was changed from %s to %sn", var->GetName(), pOldString, var->GetString() );
}

ConVar my_variable( "my_variable", "42", 0, "My favorite number", OnChangeMyVariable );

Использование класса ConCommand

class ConCommand использует простой как и ConVar один конструктор:
ConCommand( char const *pName,
FnCommandCallback callback,
char const *pHelpString = 0,
int flags = 0,
FnCommandCompletionCallback completionFunc = 0 );

Как и у ConVar pName - это имя команды (без пробелов!). callback - это функция, которая выполняется, если пользователь выполнил команду, pHelpString - имеет то же значение, что и у ConVar. ConCommands поддерживает автозавершение для первого параметра и может использовать файлы. Например, вы используете команду loadtext <textfile> команде потребуется .txt файл для ввода, консоль будет искать все доступные .txt файлы и предложит выбрать нужный из списка.

До тех пор, пока функция callback выполняется, параметр, веденный в консоли не считается за аргумент функции. Функция callback подает запрос движку на поиск аргументов через функцию Cmd_Argc() . Аргументы всегда возвращаются строкового типа.
void MySay_f ( void )
{
if ( engine->Cmd_Argc() < 1 )
{
Msg(""Usage: my_say n");
return;
}

Msg("I say: %sn", engine->Cmd_Argv(1) );
}

ConCommand my_say( "my_say", MySay_f, "say something", 0);

Здесь приведен пример построения списка с автозавершением:
static int MySayAutoComplete ( char const *partial,
char commands[ COMMAND_COMPLETION_MAXITEMS ][ COMMAND_COMPLETION_ITEM_LENGTH ] )
{
strcpy( commands[0], "hello" );
strcpy( commands[1], "goodbye" );
return 2; // number of entries
}

ConCommand my_say( "my_say", MySay_f, "say something", 0, MySayAutoComplete);

FCVAR_ флаги

Консольные команды/переменные используют флаги, которые обладают определенными характеристиками. Эти флаги используются конструктором и редактируются через ConCommandBase::AddFlags() .
FCVAR_LAUNCHER, FCVAR_GAMEDLL, FCVAR_CLIENTDLL, FCVAR_MATERIAL_SYSTEM, FCVAR_STUDIORENDER


Эти флаги отвечают за процесс создания команд в различных модулях.

FCVAR_CHEAT

Используются при отладке, не удаляются из релиза по причине того, что могут потребоваться разработчикам модов и карт.

FCVAR_USERINFO

Используются для передачи информации о пользователе, как правило эта информация передается по сети. FCVAR_REPLICATED

Сервер и клиент используют общий код, и при сетевой игре обязаны выполнять все действия одновременно, для этого и служит этот флаг.

FCVAR_ARCHIVE

Некоторые консольные переменные имеют специфические параметры, которые используются только при старте игры ( такие, как name или network_rate ). Этот флаг отвечает за возможность сохранения значений таких переменных в файле config.cfg .

FCVAR_NOTIFY

Дает возможность серверу посылать уведомления всем клиентам.

FCVAR_PROTECTED

Отвечает за конфиденциальность значений некоторых переменных.

FCVAR_SPONLY

Отвечает за возможность выполнения команд ТОЛЬКО в режиме одиночной игры.

FCVAR_DEMO

Обеспечивает контроль за записью и просмотром демо-роликов.

FCVAR_DONTRECORD

Команда, обратная по значению предыдущей.



Смерть CSLORD

Вы, наверно, думаете "Почему же рассылка не выпускаетсе уже пол-года?"
Ответ очень прост: Я взял себе небольшой отпуск, но заплатить за сайт не успел...
Это была роковая ошибка... В общем, через месяц сайт удалили. Я предполагаю, что это было сделанно незаконно, ну да ладно...
Сайт уже потерян, но это не самая большая беда - уже была почти готова четвертая версия сайт на новом движке и с кучей новых возможностей. Но через несколько дней после приезда из отпуска произошло самое страшное: у меня "посыпался" винчестер. Все было утеряно - документы, работы, портфолио - все! Я был очень расстроен... В общем, заново полностью делать сайт я так и не захотел, а выпускать только рассылку когда новостей-то особо и нету, не хотелось.
Но тут в конце концов наступило 16 ноября. Пару раз пройдя ХЛ2, я понял, что появилось куча новых тем для рассылки, видимость того, что на рассылку все подписываются и подписываются, да и письмо от сотрудника Subscribe.ru - все сыграло роль в окончательном решении: Я ВЕРНУЛСЯ. Да, я изменился... Да, я сменил ник на EXE.trim.ALL, ведь LORD - это так старо и затерто. Да, я создал собственный ролик (правда, вы пока его не можете увидеть).
НО, рассылка стала только лучше!

А вот еще одна новость: сейчас я занят самым крупным проектом в моей жизни - я создаю собственную CMS (Система Управления Содержанием). У меня очень даже неплохо это получается, но я не буду выпускать сырого продукта. Как только первая версия будет готова, вы узнаете об этом. В принципе вы и сейчас можете посмотреть некоторые результаты работы здесь, правда из-за тупого хостинга не работает весь дизайн сайт. А пока я ищу спонсора (хотя бы хостера), который может мне помочь в создании этого проетка.
Жду ваших писем на exetrimall@yandex.ru


FAQ = Вопросы с ответами

Т.к. не существует больше CSLORD, то и такого почтового ящика не существует, поэтому присылайте все свои вопросы по Half-Life, Counter-Strike и др. на адрес exetrimall@yandex.ru


Ведущий рассылки EXE.trm.ALL.
E-mail: exetrimall@yandex.ru
ICQ: 276436652

http://subscribe.ru/
http://subscribe.ru/feedback/
Подписан адрес:
Код этой рассылки: comp.games.cslord
Отписаться

В избранное