亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rocketlauncher.cpp

?? this keik game source
?? CPP
字號:
//-----------------------------------------------------------------------------
//
//  $Logfile:: /Quake 2 Engine/Sin/code/game/rocketlauncher.cpp               $
// $Revision:: 83                                                             $
//   $Author:: Markd                                                          $
//     $Date:: 11/15/98 12:22a                                                $
//
// Copyright (C) 1997 by Ritual Entertainment, Inc.
// All rights reserved.
//
// This source is may not be distributed and/or modified without
// expressly written permission by Ritual Entertainment, Inc.
//
// $Log:: /Quake 2 Engine/Sin/code/game/rocketlauncher.cpp                    $
// 
// 83    11/15/98 12:22a Markd
// Fixed pre-caching issues
// 
// 82    11/13/98 3:30p Markd
// put in more precaching on weapons
// 
// 81    10/26/98 2:50p Aldie
// Fixed a bug with checking of NULL owners
// 
// 80    10/24/98 12:42a Markd
// changed origins to worldorigins where appropriate
// 
// 79    10/23/98 5:38a Jimdose
// Added SpawnBlastDamage
// 
// 78    10/22/98 7:57p Markd
// put in proper pre-caching in all the classes
// 
// 77    10/20/98 8:26p Markd
// Added Attacker to DamageSurface stuff
// 
// 76    10/19/98 12:07a Jimdose
// made all code use fast checks for inheritance (no text lookups when
// possible)
// isSubclassOf no longer requires ::_classinfo()
// 
// 75    10/16/98 10:22p Aldie
// Updated single player damage settings
// 
// 74    10/12/98 8:55p Aldie
// Tweak damage
// 
// 73    10/05/98 10:43p Aldie
// Updated rank
// 
// 72    10/05/98 10:20p Aldie
// Removed flash - changed rank
// 
// 71    10/04/98 10:28p Aldie
// Added multiple weapon changes.  Damage, flashes, quantum stuff
// 
// 70    9/18/98 8:14p Markd
// rewrote surface system so that surfaces are now damaged by surface name
// instead of by surfinfo
// 
// 69    9/01/98 3:05p Markd
// Rewrote explosion code
// 
// 68    8/29/98 5:27p Markd
// added specialfx, replaced misc with specialfx where appropriate
// 
// 67    8/10/98 6:53p Aldie
// Increased the knockback for the rocket direct hit.
// 
// 66    8/06/98 6:58p Jimdose
// Added min/max range, and projectile speed
// 
// 65    8/01/98 3:03p Aldie
// Client side muzzle flash (dynamic light)
// 
// 64    7/25/98 8:00p Aldie
// Spawn explosion offset of origin
// 
// 63    7/25/98 7:19p Aldie
// Client side explosion
// 
// 62    7/23/98 6:17p Aldie
// Updated damage system and fixed some damage related bugs.  Also put tracers
// back to the way they were, and added gib event to funcscriptmodels
// 
// 61    7/23/98 4:39p Markd
// got rid of smoke trail
// 
// 60    7/22/98 9:57p Markd
// Defined weapon type
// 
// 59    7/21/98 1:10p Aldie
// Added meansofdeath to obituaries
// 
// 58    7/01/98 4:38p Aldie
// changed explsion mods
// 
// 57    6/30/98 12:40p Aldie
// New explosion effect
// 
// 56    6/29/98 8:19p Aldie
// Updated effect
// 
// 55    6/19/98 9:30p Jimdose
// Moved gun orientation code to Weapon
// 
// 54    6/11/98 12:40a Markd
// made rocketlauncher use new MuzzlePosition functions
// 
// 53    6/10/98 2:10p Aldie
// Updated damage function.
// 
// 52    5/28/98 1:24p Aldie
// Added particles to rocket explosion
// 
// 51    5/27/98 7:00p Aldie
// Added rocket trails
// 
// 50    5/27/98 4:55p Markd
// spruced it up
// 
// 49    5/27/98 5:33a Markd
// Re-added smoke trails
// 
// 48    5/24/98 1:04a Jimdose
// Made rocket use MASK_PROJECTILE
// 
// 47    5/23/98 10:39p Markd
// fixed it up a bunch, temprorarily commented out smoke trail
// 
// 46    5/06/98 10:17a Markd
// Removed sound precache
// 
// 45    5/05/98 8:37p Aldie
// Fixed oldorigin.
// 
// 44    5/05/98 5:34p Aldie
// Updated damage surfaces.
// 
// 43    5/03/98 8:13p Markd
// Took out TE_BLAster crap
// 
// 42    5/03/98 4:36p Jimdose
// Changed Vector class
// 
// 41    4/28/98 6:24p Jimdose
// upped rocket speed
// 
// 40    4/28/98 5:32p Jimdose
// Changed speed and damage of rocket.  Got rid of unused vars.
// 
// 39    4/20/98 1:56p Markd
// SINED decelration is now in def file
// 
// 38    4/18/98 3:12p Markd
// Changed view weapon naming convention
// 
// 37    4/10/98 1:23a Markd
// Blastmarks are only left if FL_BLASTMARK is flagged
// 
// 36    4/09/98 3:26p Jimdose
// took out randomsound from shoot
// 
// 35    4/07/98 9:18p Jimdose
// Added new ammo
// 
// 34    4/07/98 6:43p Jimdose
// Rewrote weapon code.
// Added order to rank
// 
// 33    4/05/98 5:05a Jimdose
// Fixed null surface bug in rocket Explode
// 
// 32    4/04/98 7:28p Jimdose
// Rockets don't explode against sky anymore
// 
// 31    4/04/98 6:07p Jimdose
// Moved Smoke to misc.cpp
// 
// 30    4/02/98 4:20p Jimdose
// Tweaked for DM
// 
// 29    3/31/98 1:52p Jimdose
// fixed rocket start position
// 
// 28    3/30/98 11:39p Markd
// Added modelIndex stuff
// 
// 27    3/30/98 9:55p Jimdose
// Changed location of .def files
// 
// 26    3/30/98 2:59p Jimdose
// Fixed problem where missiles flew through people
// 
// 25    3/30/98 2:34p Jimdose
// Added ammo
// Changed blast radius
// 
// 24    3/29/98 9:40p Jimdose
// Made rockets use MASK_SHOT
// 
// 23    3/28/98 8:55p Jimdose
// Testing smoke trail
// 
// 22    3/27/98 11:03p Jimdose
// Added muzzle flash
// 
// 21    3/27/98 6:35p Jimdose
// Added new rocket model
// Rocket no longer spawns beyond gun position
// 
// 20    3/26/98 8:17p Jimdose
// Precached sounds
// 
// 19    3/23/98 1:31p Jimdose
// Revamped event and command system
// 
// 18    3/18/98 7:20p Jimdose
// Made work with new animation system
// added model
// 
// 17    3/07/98 2:04p Markd
// Commented out animate
// 
// 16    3/05/98 3:48p Aldie
// Added a small effect when a surface gets damaged.
// 
// 15    3/04/98 8:00p Aldie
// More support for damage surfaces.
// 
// 14    3/02/98 8:49p Jimdose
// Changed the classid parameter of CLASS_DECLARATION to a quoted string so
// that you could have a NULL classid.
// 
// 13    2/19/98 2:35p Jimdose
// Updated to work with Q2 based progs
// 
// 11    12/15/97 4:37p Aldie
// Added support for gunoffset.
// 
// 10    12/15/97 12:47p Markd
// Changed aiming of rocket launcher
// 
// 9     12/14/97 7:43p Markd
// fixed missile angle setting
// 
// 8     12/14/97 7:36p Markd
// Fixed "vanishing point" issues
// 
// 7     12/14/97 5:34p Markd
// Tweaked Rocket
// 
// 6     12/13/97 5:42p Markd
// Added acceleration to rocketlauncher
// 
// 5     12/12/97 2:10p Markd
// Changed RocketLauncher to new rocket launcher
// 
// 4     10/31/97 4:28p Jimdose
// Removed redefinition of owner in base class Weapon, so any reference to
// gunoffset through owner had to use type overriding.
// 
// 3     10/27/97 3:30p Jimdose
// Removed dependency on quakedef.h
// 
// 2     9/26/97 4:46p Jimdose
// Added standard Ritual header
//
// DESCRIPTION:
// Standard rocketlauncher, similar to the Quake and Doom rocketlaunchers.
// 

#include "g_local.h"
#include "explosion.h"
#include "rocketlauncher.h"
#include "worldspawn.h"
#include "specialfx.h"
#include "misc.h"
#include "surface.h"

#define ROCKET_SPEED		1000
#define ROCKET_RADIUS	150	// FIXME: max damage (90 +rand(20)) + 40 == 150... hard coded.  gotta pass this in

CLASS_DECLARATION( Projectile, Rocket, NULL );

Event EV_Rocket_Explode( "explode" );

ResponseDef Rocket::Responses[] =
	{
	   { &EV_Touch,				( Response )Rocket::Explode },
	   { &EV_Rocket_Explode,	( Response )Rocket::Explode },
		{ NULL, NULL }
	};

EXPORT_FROM_DLL void Rocket::Explode
	(
	Event *ev
	)

	{
	int	 damg;
	Vector v;
	Entity *other;
   Entity *owner;

	other = ev->GetEntity( 1 );
	assert( other );

	if ( other->isSubclassOf( Teleporter ) )
		{
		return;
		}

	if ( other->entnum == this->owner )
		{
		return;
		}

   stopsound( CHAN_VOICE );

	setSolidType( SOLID_NOT );
	hideModel();
	if ( HitSky() )
		{
		PostEvent( EV_Remove, 0 );
		return;
		}

	damg = 90 + ( int )G_Random( 25 );

   owner = G_GetEntity( this->owner );

   if ( !owner )
      owner = world;

   // Single player packs a bigger punch
   if ( !deathmatch->value && owner->isClient() )
      damg *= 1.5;

   if (other->takedamage)
   	other->Damage( this, owner, damg, worldorigin, velocity, level.impact_trace.plane.normal, 200, 0, MOD_ROCKET, -1, -1, 1.0f );

   SpawnBlastDamage( &level.impact_trace, damg, owner );

	v = velocity;
	v.normalize();
	
	// don't do radius damage to the other, because all the damage
	// was done in the impact
	v = worldorigin - v * 36;
	CreateExplosion( v, damg, 1.0f, true, this, owner, other );
	PostEvent( EV_Remove, 0.1 );
	}

EXPORT_FROM_DLL void Rocket::Setup
	(
	Entity *owner,
	Vector pos,
	Vector dir
	)

	{
	Event *ev;

	this->owner = owner->entnum;
	edict->owner = owner->edict;

	setMoveType( MOVETYPE_FLYMISSILE );
	setSolidType( SOLID_BBOX );
	edict->clipmask = MASK_PROJECTILE;

	angles = dir.toAngles();
	angles[ PITCH ] = - angles[ PITCH ];
	setAngles( angles );

	speed = ROCKET_SPEED;
   velocity = dir * ROCKET_SPEED;

	// set missile duration
	ev = new Event( EV_Remove );
	ev->AddEntity( world );
	PostEvent( ev, 20 );

	takedamage = DAMAGE_YES;
	health = 10;

   setModel( "rocket.def" );
   edict->s.renderfx |= RF_DLIGHT;
   edict->s.effects  |= EF_ROCKET;
   edict->s.effects  |= EF_EVERYFRAME;
   edict->s.angles[ROLL] = rand() % 360;
	avelocity = "0 0 90";
	gravity = 0;
   edict->s.color_r      = 0.8;
   edict->s.color_g      = 0.4;
   edict->s.color_b      = 0;
   edict->s.radius       = 200;

	// setup ambient thrust
	ev = new Event( EV_RandomEntitySound );
	ev->AddString( "thrust" );
   ProcessEvent( ev );

	setSize( "-1 -1 -1", "1 1 1" );
	setOrigin( pos );
   worldorigin.copyTo(edict->s.old_origin);
	}

CLASS_DECLARATION( Weapon, RocketLauncher, "weapon_rocketlauncher" );

ResponseDef RocketLauncher::Responses[] =
	{
	   { &EV_Weapon_Shoot,	( Response )RocketLauncher::Shoot },
		{ NULL, NULL }
	};

RocketLauncher::RocketLauncher()
	{
	SetModels( "rlaunch.def", "view_rlaunch.def" );
	modelIndex( "rocket.def" );
	modelIndex( "rockets.def" );
	modelIndex( "sprites/blastmark.spr" );
   gi.soundindex( "weapons/rlaunch/stmmchn.wav" );
	SetAmmo( "Rockets", 1, 5 );
	SetRank( 70, 70 );
   SetType( WEAPON_2HANDED_LO );

	SetMinRange( ROCKET_RADIUS );
	SetProjectileSpeed( ROCKET_SPEED );
	}

void RocketLauncher::Shoot
	(
	Event *ev
	)

	{
	Rocket	*rocket;
	Vector	pos;
	Vector	dir;

	assert( owner );
	if ( !owner )
		{
		return;
		}

	GetMuzzlePosition( &pos, &dir );

	rocket = new Rocket;
	rocket->Setup( owner, pos, dir );
	NextAttack( 1.0 );
	}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚州成人在线电影| 欧美在线视频你懂得| 色婷婷国产精品综合在线观看| 91精品国产综合久久精品麻豆| 国产欧美一区二区精品忘忧草| 亚洲福利一区二区| av高清久久久| 国产亚洲人成网站| 天堂精品中文字幕在线| 色综合久久精品| 欧美激情综合五月色丁香小说| 青青草原综合久久大伊人精品| 91传媒视频在线播放| 亚洲视频中文字幕| 丁香激情综合五月| 久久老女人爱爱| 精品午夜久久福利影院| 在线播放91灌醉迷j高跟美女| 亚洲欧美日韩成人高清在线一区| 国产成人在线视频网站| 久久精品一区二区三区四区| 全国精品久久少妇| 日韩一区二区在线观看| 日本va欧美va欧美va精品| 欧美美女bb生活片| 午夜精品成人在线| 欧美视频在线观看一区二区| 亚洲欧美一区二区三区久本道91| 99re热这里只有精品免费视频| 久久久久久久久一| 国产一区91精品张津瑜| 久久久无码精品亚洲日韩按摩| 麻豆91免费看| 久久综合九色综合97婷婷女人| 久久成人麻豆午夜电影| 久久亚洲二区三区| 国产激情一区二区三区四区| 中文字幕高清一区| 一本一道综合狠狠老| 一区二区三区加勒比av| 欧美三级一区二区| 奇米四色…亚洲| 日韩精品中文字幕在线不卡尤物 | 亚洲成a人在线观看| 欧美伦理电影网| 日本亚洲欧美天堂免费| 久久久久久亚洲综合影院红桃| 国产999精品久久久久久绿帽| 国产精品天干天干在观线| av亚洲精华国产精华精华| 亚洲免费在线电影| 欧美精品成人一区二区三区四区| 久久黄色级2电影| 国产精品毛片久久久久久久| 在线影院国内精品| 日本不卡高清视频| 国产精品久久久久国产精品日日| 欧美中文字幕不卡| 狠狠色丁香久久婷婷综合_中| 亚洲国产成人午夜在线一区| 91久久精品一区二区| 蜜臀av一区二区在线观看| 国产无一区二区| 欧美综合亚洲图片综合区| 日本亚洲电影天堂| 中文字幕中文字幕中文字幕亚洲无线| 欧美性xxxxx极品少妇| 看电视剧不卡顿的网站| 1024成人网色www| 777久久久精品| 不卡区在线中文字幕| 日日摸夜夜添夜夜添精品视频| 久久综合999| 欧美日韩一区二区三区免费看 | 日韩黄色片在线观看| 欧美激情一区二区三区蜜桃视频| 欧美亚州韩日在线看免费版国语版| 精品一区二区三区在线观看 | 国产精品色在线| 欧美一区二区三区四区视频| 成人v精品蜜桃久久一区| 琪琪久久久久日韩精品| 综合在线观看色| 中文字幕精品一区二区三区精品| 欧美精品vⅰdeose4hd| 经典三级视频一区| 亚洲国产精品久久久男人的天堂| 国产欧美日韩综合精品一区二区| 欧美日韩亚洲综合在线| av中文一区二区三区| 九九国产精品视频| 亚洲成人av资源| 亚洲精品成人少妇| 中文字幕日本不卡| 久久久国产午夜精品| 日韩三级视频中文字幕| 欧美三级电影网| 在线观看欧美精品| 91一区二区在线| 不卡av免费在线观看| 91精品在线麻豆| 欧美亚洲自拍偷拍| 91色综合久久久久婷婷| 成人免费av在线| 国产很黄免费观看久久| 国产老女人精品毛片久久| 麻豆精品在线播放| 久久精品免费观看| 蜜桃精品视频在线| 精品一区二区成人精品| 日韩不卡一区二区| 污片在线观看一区二区| 婷婷久久综合九色国产成人| 亚洲香蕉伊在人在线观| 亚洲国产一区视频| 亚洲国产欧美一区二区三区丁香婷| 亚洲精品自拍动漫在线| 亚洲激情成人在线| 一区二区三区欧美在线观看| 亚洲午夜精品网| 日韩中文欧美在线| 久久av中文字幕片| 国产大陆a不卡| 懂色av一区二区夜夜嗨| heyzo一本久久综合| 色婷婷综合久久久中文字幕| 欧美中文字幕一区| 7777精品伊人久久久大香线蕉完整版| 在线不卡免费av| 久久久国产精品麻豆| 一区在线观看视频| 亚洲成av人片观看| 国产一区二区免费在线| 国产91在线观看| 91久久久免费一区二区| 在线成人高清不卡| 国产三级精品在线| 一区二区三区在线观看欧美| 日韩精品一区第一页| 国产伦理精品不卡| 色婷婷综合久久久久中文 | 一区二区在线观看av| 午夜不卡在线视频| 国产精品亚洲一区二区三区妖精 | 亚洲欧美乱综合| 另类小说视频一区二区| 东方欧美亚洲色图在线| 欧美性色综合网| 久久久久久久久久久黄色| 亚洲免费观看高清完整版在线观看熊| 婷婷成人激情在线网| 国产一区91精品张津瑜| 欧美色图天堂网| 国产亚洲精品福利| 亚洲成人一区在线| 国产黄色91视频| 欧美一区二区福利在线| 亚洲视频免费看| 国产一区二区在线视频| 欧美日韩视频在线第一区| 欧美激情自拍偷拍| 日韩av高清在线观看| 91免费国产在线观看| 2022国产精品视频| 亚洲国产精品一区二区www| 国产精品夜夜嗨| 日韩欧美视频一区| 亚洲网友自拍偷拍| 97se亚洲国产综合自在线| 欧美精品一区二区在线观看| 亚洲国产成人va在线观看天堂 | 久久99日本精品| 欧日韩精品视频| 国产精品女主播av| 精品一区二区免费在线观看| 欧美日本在线观看| 亚洲精品高清在线观看| 成人蜜臀av电影| 久久精品人人做| 蜜臀av性久久久久蜜臀aⅴ流畅| 91精品办公室少妇高潮对白| 国产欧美精品一区二区三区四区 | 中文字幕精品在线不卡| 韩国v欧美v日本v亚洲v| 日韩女优av电影| 美女国产一区二区三区| 51久久夜色精品国产麻豆| 偷拍一区二区三区| 欧美在线综合视频| 亚洲一区二区黄色| 欧美曰成人黄网| 亚洲成人免费在线观看| 欧洲亚洲国产日韩| 亚洲一区精品在线| 欧美在线观看禁18| 午夜激情久久久| 欧美人与z0zoxxxx视频| 日韩中文字幕麻豆| 日韩免费在线观看| 国产一区二区电影|