QuakeC:Больше мяса

Написано: воскресенье, 24 марта 2013 г. автор st1x51
0

Автор: Timm 'Mr?' Stokke
eMail: hestokke@online.no
Сложность: Легкая

Наиболее простой путь для увеличения количества мяса в сетевой игре
Шаг 1
Весь этот мод делается в файле player.qc, который нужно открыть для изменения. Когда вы все это сделаете, то у вас должно быть в два раза больше мыса в Сетевой игре. Все, что вам нужно будет делать, это копировать и вставлять некоторые строчки. Итак, переходим к самому основному, к шагу 2.
Шаг 2
Итак, скопируйте какую-либо строчку ThrowGib в функции GibPlayer, и вставте ее чуть ниже на одну строчку! А теперь сделаем мяса в два раза больше( т.е. так, как мы задумали). Посмотрите, как должно выглядеть оригинальное начало функции GibPlayer.
ThrowHead ("progs/h_player.mdl", self.health);
ThrowGib ("progs/gib1.mdl", self.health);
ThrowGib ("progs/gib2.mdl", self.health);
ThrowGib ("progs/gib3.mdl", self.health);
И примерно так оно может выглядеть после изменения.
ThrowHead ("progs/h_player.mdl", self.health);
ThrowGib ("progs/gib1.mdl", self.health);
ThrowGib ("progs/gib1.mdl", self.health);
ThrowGib ("progs/gib2.mdl", self.health);
ThrowGib ("progs/gib2.mdl", self.health);
ThrowGib ("progs/gib3.mdl", self.health);
ThrowGib ("progs/gib3.mdl", self.health);
Шаг 3
И это все! Скомпилируйте полученное, и запустите дополнение. Но не жалуйтесь, если оно не работает в одиночном режиме игры, так как оно работает только в сетевой игре (deathmatch и cooperative). Если вы хотите еще больше мяса, то копируйте и вставляйте строчки с ThrowGib по-больше, но только не перестарайтесь...

QuakeC:Сообщения о смерти

Написано: автор st1x51
0

Автор: Timm 'Mr?' Stokke
eMail: hestokke@online.no
Сложность: Легкая

Это очень легкий урок для тех, кому надоели старые сообщения о смерти в Quake. После прочтения этого урока, вы сможете изменять сообщения в сетевой (DM) и одиночной (single) играх. Только для начинающих!
Шаг 1
Все эти изменения производятся в файле под именем client.qc, который нужно открыть для редактирования. Что мы будем делать, чтобы поменять сообщения о смерти, которые возникают все время после того, как вас убивает какой-нибудь монстр? Опуститесь в самый низ открытого файла, где описаны все сообщения о смерти от монстров, от самоубийства и от других игроков при сетевой игре. Мы будем изменять сообщения, появляющиеся при смерти от монстра. Итак, найдите текст, похожий на текст, приведенный в шаге 2.
Шаг 2
А сейчас перейдем непосредственно к редактированию собщений о смерти. Я думаю вы сделаете их немного по своему, потому я не буду приводить детали
if (attacker.flags & FL_MONSTER)
{
if (attacker.classname == "monster_army")
bprint (" was shot by a Grunt\n"); //вывести в верхнем левом углу " was shot by a Grunt".
if (attacker.classname == "monster_demon1")
bprint (" was eviscerated by a Fiend\n");
if (attacker.classname == "monster_dog")
bprint (" was mauled by a Rottweiler\n");
if (attacker.classname == "monster_dragon")
bprint (" was fried by a Dragon\n");
if (attacker.classname == "monster_enforcer")
bprint (" was blasted by an Enforcer\n");
if (attacker.classname == "monster_fish")
bprint (" was fed to the Rotfish\n");
if (attacker.classname == "monster_hell_knight")
bprint (" was slain by a Death Knight\n");
if (attacker.classname == "monster_knight")
bprint (" was slashed by a Knight\n");
if (attacker.classname == "monster_ogre")
bprint (" was destroyed by an Ogre\n");
if (attacker.classname == "monster_oldone")
bprint (" became one with Shub-Niggurath\n");
if (attacker.classname == "monster_shalrath")
bprint (" was exploded by a Vore\n");
if (attacker.classname == "monster_shambler")
bprint (" was smashed by a Shambler\n");
if (attacker.classname == "monster_tarbaby")
bprint (" was slimed by a Spawn\n");
if (attacker.classname == "monster_vomit")
bprint (" was vomited on by a Vomitus\n");
if (attacker.classname == "monster_wizard")
bprint (" was scragged by a Scrag\n");
if (attacker.classname == "monster_zombie")
bprint (" joins the Zombies\n");
return;
Шаг 3
И это все! Откомпилируйте это, и запустите полученное. Теперь идите и... хммм.. и дайте себя убить!

Darkplaces Cell shading

Написано: суббота, 2 февраля 2013 г. автор st1x51
0

Включается такими командами:
r_celshading 1
r_celoutlines 1
r_shadow_deferred 1



 

 

QuakeC: Звук

Написано: среда, 23 января 2013 г. автор st1x51
0

Функция: void sound (entity source, float channel, string sample, float volume, float attenuation)
  source = объект,излучающий звук (например: self)
  channel = канал,используемый для звука(например: CHAN_AUTO) 
 sample = имя wav файла (пример: "ogre/ogdrag.wav") 
 volume = 0.0 для низкой громкости, 1.0 для максимальной
 attenuation = звукоизоляция (например:ATTN_NONE)
 
Функция: void ambientsound(vector position, string sample, float volume, float attenuation)
position = положение в 3D пространстве внутри уровня 
sample = имя wav файла (пример: "ogre/ogdrag.wav") 
volume = 0.0 для низкой громкости, 1.0 для максимальной 
attenuation = звукоизоляция (например:ATTN_NONE)

QuakeC: Математические операции с векторами

Написано: автор st1x51
0

Функция: vector normalize(vector v)
 Возвращает вектор длины 1.Предоставляет вектор коллинеарный к V,но с длинной 1.Это может быть полезно для расчета расстояния вдоль оси.
Функция: float vlen(vector v)
Возвращает длину вектора V (не <0).
Функция: float vectoyaw(vector v)
Возвращает  угол в градусах из вектора.Вычисляет угол отклонения угла,соответствующий данному 3D направлению v.
Функция: vector vectoangles(vector v)
 Возвращает угол наклона (прицеливания(горизонтальной наводки?))  и угол отклонения(азимут) соответствующий данному 3D направлению v.

Функция: string vtos(vector v)
Печатает вектор в виде строки.

Функция: void makevectors(vector angles) 
                          angle = 'pitch yaw 0'
Вычисляет векторы, направленые вперед, вправо и вверх, в соответствии с предоставленным углом.
Возвращает результат в глобальные переменные:
vector  v_forward;  // указывает вперед
vector  v_up;       // указывает вверх
vector  v_right;    // указывает вправо