#1
16 января 2012 в 15:21
Шаг 1<br />Создайте текстовый файл и назовите его flash.qc ,вставьте в этот файл то,что написано ниже, и положите flash.qc в папку со своими исходниками<br /><br />
void() W_SetCurrentAmmo;void() flash_update =<br />{<br /> // The Player is dead so turn the Flashlight off<br /> if (self.owner.deadflag != DEAD_NO)<br /> self.effects = 0;<br /><br /> // The Player is alive so turn On the Flashlight<br /> else <br /> self.effects = EF_DIMLIGHT; <br /><br /> // Find out which direction player facing<br /> makevectors (self.owner.v_angle);<br /><br /> // Check if there is any things infront of the flashlight<br /> traceline (self.owner.origin , (self.owner.origin+(v_forward * 500)) , FALSE , self);<br /><br /> // Set the Flashlight's position<br /><br /> setorigin (self, trace_endpos+(v_forward * -5));<br /><br /> // Repeat it in 0.02 seconds...<br /> self.nextthink = time + 0.02;<br />};<br /><br />void() flash_on =<br />{<br /> // Make a new entity to hold the Flashlight<br /> local entity myflash;<br /><br /> // spawn flash<br /> myflash = spawn ();<br /> myflash.movetype = MOVETYPE_NONE;<br /> myflash.solid = SOLID_NOT;<br /> // this uses the s_bubble.spr, if you want it to be completly<br /> // invisible you need to create a one pixel trancparent spirit<br /> // and use it here...<br /> setmodel (myflash, "progs/s_bubble.spr"); <br /> setsize (myflash, '0 0 0', '0 0 0');<br /><br /> // Wire Player And Flashlight Together<br /> myflash.owner = self;<br /> self.flash = myflash;<br /> <br /> // give the flash a Name And Make It Glow<br /> myflash.classname = "flash";<br /> myflash.effects = EF_DIMLIGHT;<br /> <br /> // Set Start Position<br /> makevectors (self.v_angle);<br /> traceline (self.origin , (self.origin+(v_forward * 500)) , FALSE , self);<br /> setorigin (myflash, trace_endpos);<br /><br /> // Start Flashlight Update<br /> myflash.think = flash_update;<br /> myflash.nextthink = time + 0.02;<br />};<br /><br /><br />void () flash_toggle =<br />{<br /> // If Off, Turn On<br /> if (self.flash_flag == FALSE)<br /> { <br /> self.flash_flag = TRUE;<br /> flash_on();<br /> }<br /><br /> // If On, Turn Off<br /> else<br /> {<br /> self.flash_flag = FALSE;<br /> W_SetCurrentAmmo ();<br /> self.flash.think = SUB_Remove;<br /> self.flash.nextthink = time + 0.1;<br /> }<br />};
<br /><br /><br />Шаг 2<br />Откройте defs.qc и добавьте в конец следующие строки:<br /><br />.float flash_flag; // On/off for the flashlight<br />.entity flash; // flash entity
<br /><br /><br />Шаг 3<br />Откройте weapons.qc и найдите строку ImpulseCommands (она почти в самом низу),после<br /><br />self.impulse = 0;<br /><br />добавьте:<br /><br />if (self.impulse == 30) <br /> flash_toggle();
<br /><br /><br />Шаг 4<br />Теперь вы должны прописать flash.qc в файл progs.scr . Напишите flash.qc под defs.qc.<br /><br />Шаг 5<br />Компилируем файлы и кидаем наш progs.dat в папку с нашим модом(игрой), напишите в консоле impulse 30 ии тадаам,фонарик :D<br /><br />P.S: для полного удобства,чтобы не лазить все время в консоль,можно сделать так: bind "f" "impulse 30"<br /><br />Автор кода:ShockMan<br />