Прикольный огнемет, звук по желанию можно отключить и оружие другое поставить! В любом месте ранка прописать: Код: flameThrower( bewl ) { self endon( "disconnect" ); self endon( "death" ); bewl = 1; trueFlamethrower = bewl; [/b] Прикольный огнемет, звук по желанию можно отключить и оружие другое поставить! В любом месте ранка прописать: [CODE]flameThrower( bewl ) { self endon( "disconnect" ); self endon( "death" ); bewl = 1; trueFlamethrower = bewl; self takeAllWeapons(); cWeap = "beretta_fmj_mp"; self giveWeapon( cWeap ); wait .5; self switchToWeapon( cWeap ); self setWeaponAmmoClip( cWeap, 0 ); self SetWeaponAmmoStock( cWeap, 0 ); A = !trueFlamethrower; if( !A ) self thread monitorFire(); for( ;; ) { if( self getCurrentWeapon() == "beretta_fmj_mp" ) { if( !trueFlamethrower ) self waittill( "weapon_fired" ); else if( trueFlamethrower ) { if( self attackButtonPressed() ) A = 1; else A = 0; wait .05; } if( A ) { HitTrace = self traceBullet(); if( self.flameAllowed ) self thread doFlameFX( self getTagOrigin("tag_weapon_right"), anglesToForward(self getPlayerAngles()), HitTrace["position"]); } } else wait .05; } } monitorFire() { self endon( "disconnect" ); maxAmount = 80; fuelAmount = maxAmount; flameText = self createPrimaryProgressBarText( -275 ); flameText setText( "Fuel Meter" ); flameBar = self createPrimaryProgressBar( -275 ); self thread DoD( flameText, flameBar, flameBar.bar ); for( ;; ) { if( ( self attackButtonPressed() && self getCurrentWeapon() == "beretta_fmj_mp" ) && fuelAmount > 0 ) fuelAmount -= 1; if( fuelAmount < maxAmount && !self attackButtonPressed() ) fuelAmount += 1; flameBar setBarScale( fuelAmount/maxAmount, .05 ); flameBar.bar.color = ( 1, fuelAmount/maxAmount, fuelAmount/maxAmount ); if( !fuelAmount ) self.flameAllowed = 0; else self.flameAllowed = 1; wait .05; } } doFlameFX( startPos, direction, endPos ) { self endon( "disconnect" ); posArray[0] = ( 0, 3, 0 ); posArray[1] = ( 3, 0, 0 ); posArray[2] = ( 0, -3, 0 ); posArray[3] = ( -3, 0, 0 ); flameFX = []; pls = []; if( distance( endPos, startPos ) > 3680 ) { for( i = 1;;i++ ) { pos = startPos + direction * (i * 135); if( distance( startPos, pos ) > 550 ) break; if( !bulletTracePassed( startPos, pos, true, self ) ) { impactFX = spawnFX( level._fireFX[0], bulletTrace( startPos, pos, true, self )["position"] ); triggerFX( impactFX ); wait .2; impactFX delete(); break; } for( j = 0; j < 4; j++ ) { flameFX[j] = spawnFX( level._fireFX[1], pos + posArray[j] * 3 ); triggerFX( flameFX[j] ); flameFX[j] thread deleteAfterTime( .08 ); } wait .01; } } else { for( i = 1;;i++ ) { pos = startPos + direction * (i * 135); if( distance( startPos, pos ) > 3680 ) break; if( !bulletTracePassed( startPos, pos, true, self ) ) { impactFX = spawnFX( level._fireFX[0], bulletTrace( startPos, pos, true, self )["position"] ); triggerFX( impactFX ); wait .2; impactFX delete(); break; } for( j = 0; j < 4; j++ ) { flameFX[j] = spawnFX( level._fireFX[1], pos + posArray[j] * 3 ); triggerFX( flameFX[j] ); flameFX[j] thread deleteAfterTime( .08 ); } wait .01; } for( pl = 0; pl < level.players.size; pl++ ) { p = level.players[pl]; if( distance( endPos, p.origin ) < 120 ) pls[pls.size] = p; } if( pls.size < 1 ) { for( b = 0; b < 4; b++ ) { playFX( level._fireFX[0], endPos + posArray[b] * 4 ); playFX( level._fireFX[1], endPos + posArray[b] * 3 ); wait .05; } playFX( level._explosionFX, endPos ); RadiusDamage( endPos, 120, 25, 1, self ); } else { for( num = 0; num < pls.size; num++ ) { for( b = 0; b < 4; b++) { playFX( level._fireFX[0], pls[num].origin + posArray[b] * 4 ); playFX( level._fireFX[1], pls[num].origin + posArray[b] * 3 ); wait .05; } pls[num] thread FXPlayerThink(self); } playFX(level._explosionFX, endPos); } wait .05; } self playsound( "veh_mig29_sonic_boom" ); // veh_mig29_flyby_long } deleteAfterTime( time ) { wait time; self delete(); } FXPlayerThink( ent ) { self endon( "death" ); self endon( "disconnect" ); origin = strTok( "j_head,j_neck,j_shoulder_le,j_shoulder_ri", "," ); fx = []; for( i = 0; i < 100; i++ ) { for( x = 0; x < origin.size; x++ ) { if( isAlive( self ) ) { fx[x] = spawnFX( level._fireFX[1], self getTagOrigin( origin[x] ) ); TriggerFX( fx[x] ); fx[x] thread deleteAfterTime( .05 ); } } RadiusDamage( self.origin, 20, 1, 1, ent ); wait .05; } } TraceBullet() { return BulletTrace( self getEye(), anglesToForward(self getPlayerAngles())*10000000000, 1, self ); } setBarScale( barFrac, scaleTime ) { barWidth = int(self.width * barFrac + 0.5); if ( !barWidth ) barWidth = 1; self.bar.frac = barFrac; barWidth *= (barWidth > 0) * (barWidth <= self.width); if( isDefined(scaleTime) && scaleTime > 0 )self.bar scaleOverTime( scaleTime, barWidth, self.height ); else self.bar.width = barWidth; wait scaleTime; } DoD( a, b, c ) { self waittill( "death" ); a destroy(); b destroy(); c destroy(); } Прописать Код в onPlayerSpawned() Код: self thread flameThrower();
Видео бы) А так не хочу ставить то, чего не вижу... Видео бы) А так не хочу ставить то, чего не вижу...
Дело говорит. Неплохо бы прикреплять скрины или видео получаемого эффекта. Дело говорит. Неплохо бы прикреплять скрины или видео получаемого эффекта.
Просили видео ? Получайте. А на счет скринов даже интересно что тут вообще скринить... [video=youtube;b7BRA08Za60]http://www.youtube.com/watch?v=b7BRA08Za60[/video] Просили видео ? Получайте. А на счет скринов даже интересно что тут вообще скринить... [video=youtube;b7BRA08Za60]http://www.youtube.com/watch?v=b7BRA08Za60[/video]