Welcome, guest. You can be a Login или register
Author
Topic title
st1x51
Offline
Ленюсь
154 posts
Karma 8
Шаг 1
Создайте текстовый файл и назовите его flash.qc ,вставьте в этот файл то,что написано ниже, и положите flash.qc в папку со своими исходниками

void() W_SetCurrentAmmo;void() flash_update =
{
// The Player is dead so turn the Flashlight off
if (self.owner.deadflag != DEAD_NO)
self.effects = 0;

// The Player is alive so turn On the Flashlight
else
self.effects = EF_DIMLIGHT;

// Find out which direction player facing
makevectors (self.owner.v_angle);

// Check if there is any things infront of the flashlight
traceline (self.owner.origin , (self.owner.origin+(v_forward * 500)) , FALSE , self);

// Set the Flashlight's position

setorigin (self, trace_endpos+(v_forward * -5));

// Repeat it in 0.02 seconds...
self.nextthink = time + 0.02;
};

void() flash_on =
{
// Make a new entity to hold the Flashlight
local entity myflash;

// spawn flash
myflash = spawn ();
myflash.movetype = MOVETYPE_NONE;
myflash.solid = SOLID_NOT;
// this uses the s_bubble.spr, if you want it to be completly
// invisible you need to create a one pixel trancparent spirit
// and use it here...
setmodel (myflash, "progs/s_bubble.spr");
setsize (myflash, '0 0 0', '0 0 0');

// Wire Player And Flashlight Together
myflash.owner = self;
self.flash = myflash;

// give the flash a Name And Make It Glow
myflash.classname = "flash";
myflash.effects = EF_DIMLIGHT;

// Set Start Position
makevectors (self.v_angle);
traceline (self.origin , (self.origin+(v_forward * 500)) , FALSE , self);
setorigin (myflash, trace_endpos);

// Start Flashlight Update
myflash.think = flash_update;
myflash.nextthink = time + 0.02;
};


void () flash_toggle =
{
// If Off, Turn On
if (self.flash_flag == FALSE)
{
self.flash_flag = TRUE;
flash_on();
}

// If On, Turn Off
else
{
self.flash_flag = FALSE;
W_SetCurrentAmmo ();
self.flash.think = SUB_Remove;
self.flash.nextthink = time + 0.1;
}
};



Шаг 2
Откройте defs.qc и добавьте в конец следующие строки:

.float flash_flag; // On/off for the flashlight
.entity flash; // flash entity



Шаг 3
Откройте weapons.qc и найдите строку ImpulseCommands (она почти в самом низу),после

self.impulse = 0;

добавьте:

if (self.impulse == 30)
flash_toggle();



Шаг 4
Теперь вы должны прописать flash.qc в файл progs.scr . Напишите flash.qc под defs.qc.

Шаг 5
Компилируем файлы и кидаем наш progs.dat в папку с нашим модом(игрой), напишите в консоле impulse 30 ии тадаам,фонарик :D

P.S: для полного удобства,чтобы не лазить все время в консоль,можно сделать так: bind "f" "impulse 30"

Автор кода:ShockMan
Фигня всякая:
http://pspquake.blogspot.com/
http://st1x.nm.ru/
Текущий проект:
http://www.moddb.com/games/conscript