Results 1 to 6 of 6
  1. #1
    altheris1's Avatar
    Join Date
    Feb 2010
    Gender
    male
    Posts
    3
    Reputation
    10
    Thanks
    0
    My Mood
    Cheeky

    [SOLVED] Totally confused.

    Hi, i came accross a mod that used a deagle for a portal by beaverman, but its in a format like this

    Code:
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\gametypes\_hud_util;
    
    
    init()
    {
    	level.scoreInfo = [];
    	level.xpScale = getDvarInt( "scr_xpscale" );
    	
    	if ( level.xpScale > 4 || level.xpScale < 0)
    		exitLevel( false );
    
    	level.xpScale = min( level.xpScale, 4 );
    	level.xpScale = max( level.xpScale, 0 );
    
    	level.rankTable = [];
    
    	precacheShader("white");
    
    	precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
    	precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
    	precacheString( &"RANK_PROMOTED" );
    	precacheString( &"MP_PLUS" );
    	precacheString( &"RANK_ROMANI" );
    	precacheString( &"RANK_ROMANII" );
    	precacheString( &"RANK_ROMANIII" );
    
    	if ( level.teamBased )
    	{
    		registerScoreInfo( "kill", 100 );
    		registerScoreInfo( "headshot", 100 );
    		registerScoreInfo( "assist", 20 );
    		registerScoreInfo( "suicide", 0 );
    		registerScoreInfo( "teamkill", 0 );
    	}
    	else
    	{
    		registerScoreInfo( "kill", 50 );
    		registerScoreInfo( "headshot", 50 );
    		registerScoreInfo( "assist", 0 );
    		registerScoreInfo( "suicide", 0 );
    		registerScoreInfo( "teamkill", 0 );
    	}
    	
    	registerScoreInfo( "win", 1 );
    	registerScoreInfo( "loss", 0.5 );
    	registerScoreInfo( "tie", 0.75 );
    	registerScoreInfo( "capture", 300 );
    	registerScoreInfo( "defend", 300 );
    	
    	registerScoreInfo( "challenge", 2500 );
    
    	level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
    	level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
    	
    	pId = 0;
    	rId = 0;
    	for ( pId = 0; pId <= level.maxPrestige; pId++ )
    	{
    		for ( rId = 0; rId <= level.maxRank; rId++ )
    			precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
    	}
    
    	rankId = 0;
    	rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
    	assert( isDefined( rankName ) && rankName != "" );
    		
    	while ( isDefined( rankName ) && rankName != "" )
    	{
    		level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
    		level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
    		level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
    		level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
    
    		precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
    
    		rankId++;
    		rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );		
    	}
    
    	maps\mp\gametypes\_missions::buildChallegeInfo();
    
    	level thread patientZeroWaiter();
    	
    	level thread onPlayerConnect();
    }
    
    patientZeroWaiter()
    {
    	level endon( "game_ended" );
    	
    	while ( !isDefined( level.players ) || !level.players.size )
    		wait ( 0.05 );
    	
    	if ( !matchMakingGame() )
    	{
    		if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
    			level.patientZeroName = level.players[0].name;
    	}
    	else
    	{
    		if ( getDvar( "scr_patientZero" ) != "" )
    			level.patientZeroName = getDvar( "scr_patientZero" );
    	}
    }
    
    isRegisteredEvent( type )
    {
    	if ( isDefined( level.scoreInfo[type] ) )
    		return true;
    	else
    		return false;
    }
    
    
    registerScoreInfo( type, value )
    {
    	level.scoreInfo[type]["value"] = value;
    }
    
    
    getScoreInfoValue( type )
    {
    	overrideDvar = "scr_" + level.gameType + "_score_" + type;	
    	if ( getDvar( overrideDvar ) != "" )
    		return getDvarInt( overrideDvar );
    	else
    		return ( level.scoreInfo[type]["value"] );
    }
    
    
    getScoreInfoLabel( type )
    {
    	return ( level.scoreInfo[type]["label"] );
    }
    
    
    getRankInfoMinXP( rankId )
    {
    	return int(level.rankTable[rankId][2]);
    }
    
    
    getRankInfoXPAmt( rankId )
    {
    	return int(level.rankTable[rankId][3]);
    }
    
    
    getRankInfoMaxXp( rankId )
    {
    	return int(level.rankTable[rankId][7]);
    }
    
    
    getRankInfoFull( rankId )
    {
    	return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
    }
    
    
    getRankInfoIcon( rankId, prestigeId )
    {
    	return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
    }
    
    getRankInfoLevel( rankId )
    {
    	return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
    }
    
    
    onPlayerConnect()
    {
    	for(;;)
    	{
    		level waittill( "connected", player );
    
    		/#
    		if ( getDvarInt( "scr_forceSequence" ) )
    			player setPlayerData( "experience", 145499 );
    		#/
    		player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
    		if ( player.pers["rankxp"] < 0 ) // paranoid defensive
    			player.pers["rankxp"] = 0;
    		
    		rankId = player getRankForXp( player getRankXP() );
    		player.pers[ "rank" ] = rankId;
    		player.pers[ "participation" ] = 0;
    
    		player.xpUpdateTotal = 0;
    		player.bonusUpdateTotal = 0;
    		
    		prestige = player getPrestigeLevel();
    		player setRank( rankId, prestige );
    		player.pers["prestige"] = prestige;
    
    		player.postGamePromotion = false;
    		if ( !isDefined( player.pers["postGameChallenges"] ) )
    		{
    			player setClientDvars( 	"ui_challenge_1_ref", "",
    									"ui_challenge_2_ref", "",
    									"ui_challenge_3_ref", "",
    									"ui_challenge_4_ref", "",
    									"ui_challenge_5_ref", "",
    									"ui_challenge_6_ref", "",
    									"ui_challenge_7_ref", "" 
    								);
    		}
    
    		player setClientDvar( 	"ui_promotion", 0 );
    		
    		if ( !isDefined( player.pers["summary"] ) )
    		{
    			player.pers["summary"] = [];
    			player.pers["summary"]["xp"] = 0;
    			player.pers["summary"]["score"] = 0;
    			player.pers["summary"]["challenge"] = 0;
    			player.pers["summary"]["match"] = 0;
    			player.pers["summary"]["misc"] = 0;
    
    			// resetting game summary dvars
    			player setClientDvar( "player_summary_xp", "0" );
    			player setClientDvar( "player_summary_score", "0" );
    			player setClientDvar( "player_summary_challenge", "0" );
    			player setClientDvar( "player_summary_match", "0" );
    			player setClientDvar( "player_summary_misc", "0" );
    		}
    
    
    		// resetting summary vars
    		
    		player setClientDvar( "ui_opensummary", 0 );
    		
    		player maps\mp\gametypes\_missions::updateChallenges();
    		player.explosiveKills[0] = 0;
    		player.xpGains = [];
    		
    		player.hud_scorePopup = newClientHudElem( player );
    		player.hud_scorePopup.horzAlign = "center";
    		player.hud_scorePopup.vertAlign = "middle";
    		player.hud_scorePopup.alignX = "center";
    		player.hud_scorePopup.alignY = "middle";
     		player.hud_scorePopup.x = 0;
     		if ( level.splitScreen )
    			player.hud_scorePopup.y = -40;
    		else
    			player.hud_scorePopup.y = -60;
    		player.hud_scorePopup.font = "hudbig";
    		player.hud_scorePopup.fontscale = 0.75;
    		player.hud_scorePopup.archived = false;
    		player.hud_scorePopup.color = (0.5,0.5,0.5);
    		player.hud_scorePopup.sort = 10000;
    		player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
    		
    		player thread onPlayerSpawned();
    		player thread onJoinedTeam();
    		player thread onJoinedSpectators();
    	}
    }
    
    
    onJoinedTeam()
    {
    	self endon("disconnect");
    
    	for(;;)
    	{
    		self waittill( "joined_team" );
    		self thread removeRankHUD();
    	}
    }
    
    
    onJoinedSpectators()
    {
    	self endon("disconnect");
    
    	for(;;)
    	{
    		self waittill( "joined_spectators" );
    		self thread removeRankHUD();
    	}
    }
    
    
    onPlayerSpawned()
    {
    	self endon("disconnect");
    	
    	setDvar("ui_gametype", "Portal mod");
    	
    	self.weaponpor = "deserteaglegold_mp";
    	
    	self.greenroof=1;
    	self.redroof=1;
    	self.ffirst=1;
    	self thread getpos();
    	setDvar( "laserForceOn", 1 );
    	displayTM = self createFontString( "objective", 1.5 );
    	displayTM setPoint( "TOPRIGHT", "TOPRIGHT", 1, 10);	
    	
    	displayTM2 = self createFontString( "objective", 1.5 );
    	displayTM2 setPoint( "TOPRIGHT", "TOPRIGHT", 1, 30);
    	
    	displayTM3 = self createFontString( "objective", 1.5 );
    	displayTM3 setPoint( "TOPRIGHT", "TOPRIGHT", 1, 50);
    	
    	displayTM setText("^1Bea^7ver^1man^0's");
    	displayTM2 setText("^7Aperture science Handheld portal device");
    	displayTM3 setText(" ");
    	
    	/*****************************************************/
    	
    	displayTM4 = self createFontString( "objective", 1.5 );
    	displayTM4 setPoint( "BOTTOMRIGHT", "BOTTOMRIGHT", 0, -10);
    	
    	displayTM4 setText("^6Copyright 1993 ^5Aperture ^7Laboratories");
    	
    	/*****************************************************/
    	
    	
    	self.redsaveshit = (-155154,-514654,-5132168);
    	self.saveshit = (-155154,-514654,-5132168);
    	
    	self.justtel=0;
    	
    	setDvar("sv_cheats", 1);
    	setDvar("timescale", 1);
    	
    	
    	for(;;)
    	{
    		self waittill("spawned_player");
    		self.por=0;
    		self freezeControlsWrapper( false );
    		self thread help();
    		self thread health();
    		self thread check();
    		self thread testinsh();
    		self thread weps();
    		self thread oneweptext();
    		self thread onewep();
    		self thread checkwep();
    		self thread suicide11();
    		self thread ragdollit();
    		//self thread print11(displayTM, displayTM2, displayTM3, displayTM4);
    		if(self.ffirst==1){
    			self thread maps\mp\gametypes\_hud_message::hintMessage("Beaverman's portal mod :D");
    			self thread maps\mp\gametypes\_hud_message::hintMessage("Have fun!");
    			self.ffirst=0;
    		}
    	}
    }
    
    ragdollit()
    {
    	for(;;)
    	{
    		self waittill("death");
    		self StartRagdoll();
    		wait .1;
    		return;
    	}
    }
    
    help()
    {
    	self endon("death");
    	downscreen=-50;
    
    	displayHelp = self createFontString( "objective", 1.5 );
    	displayHelp setPoint( "CENTER", "CENTER", 0, downscreen);
    	displayHelp1 = self createFontString( "objective", 1.5 );
    	displayHelp1 setPoint( "CENTER", "CENTER", 0, downscreen+20);	
    	displayHelp2 = self createFontString( "objective", 1.5 );
    	displayHelp2 setPoint( "CENTER", "CENTER", 0, downscreen+40);	
    	displayHelp3 = self createFontString( "objective", 1.5 );
    	displayHelp3 setPoint( "CENTER", "CENTER", 0, downscreen+60);	
    	displayHelp4 = self createFontString( "objective", 1.5 );
    	displayHelp4 setPoint( "CENTER", "CENTER", 0, downscreen+80);
    	
    	self thread destondeath(displayHelp);
    	self thread destondeath(displayHelp1);
    	self thread destondeath(displayHelp2);
    	self thread destondeath(displayHelp3);
    	self thread destondeath(displayHelp4);
    
    	
    	self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
    	for(;;)
    	{
    		self waittill("dpad_down");
    		self freezeControlsWrapper( true );
    		displayHelp setText("^1HELP");
    		displayHelp1 setText("^7Shoot=PLACE PORTAL");
    		displayHelp2 setText("^7Aim Down Sight=CHANGE PORTAL COLOR");
    		displayHelp3 setText("^7The Golden deagle is the portal gun");
    		self waittill("dpad_down");
    		self freezeControlsWrapper( false );
    		displayHelp setText(" ");
    		displayHelp1 setText(" ");
    		displayHelp2 setText(" ");
    		displayHelp3 setText(" ");
    		wait .2;
    	}
    }
    
    suicide11()
    {
    	self notifyonplayercommand("lolsse", "+actionslot 3");
    	for(;;)
    	{
    	self waittill("lolsse");
    	self Suicide();
    	}
    }
    
    health()
    {	
    	self endon("death");
    	displayTM5 = self createFontString( "objective", 1.5 );
    	displayTM5 setPoint( "CENTERLEFT", "CENTERLEFT", 0, 0);	
    	displayTM6 = self createFontString( "objective", 1.5 );
    	displayTM6 setPoint( "CENTERLEFT", "CENTERLEFT", 0, 20);
    	self thread destondeath(displayTM5);
    	self thread destondeath(displayTM6);
    	for(;;)
    	{
    		if(self.health>self.maxhealth/4)
    		{
    			displayTM5 setText("^2Health " + self.health + "/" + self.maxhealth);
    			displayTM6 setText("Press [{+actionslot 2}] for help");
    		}else{
    			displayTM5 setText("^1Health " + self.health + "/" + self.maxhealth);
    			displayTM6 setText("^1Health critical");
    		}
    		wait .2;
    	}
    }
    
    checkwep()
    {
    	self endon("death");
    	
    	displayPortal = self createFontString( "objective", 1.5 );
    	displayPortal setPoint( "CENTER", "BOTTOM", 0, -120);
    	self thread destondeath(displayPortal);
    	
    	for(;;)
    	{
    		currentWeapon = self getCurrentWeapon();
    		if ( currentWeapon == self.weaponpor)
    		{
    			displayPortal setText("^7Aperture science Portal gun!");
    			self AllowAds(false);
    			self setSpreadOverride(.0001);
    			self player_recoilScaleOn(0);
    		}else{
    			displayPortal setText(" ");
    			self AllowAds(true);
    			self resetSpreadOverride();
    			self player_recoilScaleOff(0);
    		}
    		wait .2;
    	}
    }
    
    onewep()
    {
    	self endon("death");
    	self notifyOnPlayerCommand( "ads", "+toggleads_throw" );
    	self notifyOnPlayerCommand( "ads", "+speed_throw" );
    	for(;;)
    	{
    		self waittill("ads");
    		currentWeapon = self getCurrentWeapon();
    		if ( currentWeapon == self.weaponpor && self.por==0)
    		{
    			self.por=1;
    		}
    		self waittill("ads");
    		if ( currentWeapon == self.weaponpor && self.por==1)
    		{
    			self.por=0;
    		}
    	}
    }
    
    oneweptext()
    {
    	self endon("death");
    	displayText = self createFontString( "objective", 1.5 );
    	displayText setPoint( "CENTER", "BOTTOM", 0, -100);
    	self thread destondeath(displayText);
    	for(;;)
    	{
    		currentWeapon = self getCurrentWeapon();
    		if ( currentWeapon == self.weaponpor && self.por==0)
    		{
    			displayText setText("^1Red ^0Portal");
    		}else{
    			if(currentWeapon == self.weaponpor && self.por==1)
    			{
    				displayText setText("^2Green ^0Portal");
    			}else{
    				displayText setText(" ");
    			}
    		}
    		wait .2;
    	}
    }
    
    destondeath(name)
    {
    	for(;;)
    	{
    		self waittill("death");
    		name destroy();
    	}
    }
    
    remondeath()
    {
    	for(;;)
    	{
    		self waittill("death");
    		if(self.ffirst==0)
    		{
    		self.redsaveshit = (-155154,-514654,-5132168);
    		self.saveshit = (-155154,-514654,-5132168);
    		self.green delete();
    		self.red delete();
    		}
    		wait .2;
    	}
    }
    
    weps()
    {
    	self endon("death");
    	//self takeAllWeapons();
    	self giveWeapon(self.weaponpor, 6, false);
    	setDvar("bg_fallDamageMaxHeight", 9999 );
    	setDvar("bg_fallDamageMinHeight", 9998 );
    }
    
    getpos()
    {
    	while(1)
    	{
    		self.newshit = self.origin;
    		self.newshit2 = self GetVelocity();
    		wait .1;
    	}
    }
    
    print11(displayTM, displayTM2, displayTM3, displayTM4) //debug
    {
    	self notifyOnPlayerCommand("butoo", "+activate");
    	for(;;)
    	{
    		self waittill("butoo");
    		displayTM setText(self.redrot[1]);
    		displayTM2 setText(self.redrot[1]-self.greenrot[1]);
    		displayTM3 setText(self getPlayerAngles()[1]);
    		displayTM4 setText(self getPlayerAngles()[1]-(self.redrot[1]-self.greenrot[1]));
    	}
    }
    
    Bluesavepos(Pos)
    {
    	self endon("death");
    	self.saveshit = Pos;
    }
    
    Redsavepos(Pos)
    {
    	self endon("death");
    	self.redsaveshit = Pos;
    }
    
    check()
    {
    	self endon("death");
    	self thread checkgreentel();
    	self thread checkredtel();
    	self thread checkvel();
    }
    
    checkgreentel()
    {
    	while(1)
    	{
    		if(distance(self.saveshit, self.newshit) < 50 && self.justtel==0 && self.reddd==1 )
    		{
    			self.justtel=1;
    			self thread justreset(self.justtele);
    			if(self.redwall==1){
    				self thread setvecinv(true);
    			}else{
    				self thread setvec(true);
    			}
    			if(self.redroof==0)
    			{
    				self SetOrigin(self.redsaveshit);
    				self SetVelocity(self.oldvel);
    			}else{
    				self SetOrigin(self.redsaveshit-(0,0,100));
    				self SetVelocity(self.vel);
    			}
    		}
    		wait .1;
    	}
    }
    
    checkredtel()
    {
    	while(1)
    	{
    		if(distance(self.redsaveshit, self.newshit) < 50 && self.justtel==0 && self.greendd==1 )
    		{
    			self.justtel=1;
    			self thread justreset(self.justtele);
    			if(self.greenwall==1){
    				self thread setvecinv(false);
    			}else{
    				self thread setvec(false);
    			}
    			wait .05;
    			if(self.greenroof==0)
    			{
    			self SetOrigin(self.saveshit);
    			self SetVelocity(self.oldvel);
    			}else{
    			self SetOrigin(self.saveshit-(0,0,100));
    			self SetVelocity(self.vel);
    			}
    		}
    		wait .1;
    	}
    }
    
    checkvel()
    {
    	while(1)
    	{
    		if((distance(self.redsaveshit, self.newshit) < 120 && distance(self.redsaveshit, self.newshit) > 50) || (distance(self.saveshit, self.newshit) < 120 && distance(self.saveshit, self.newshit) > 50) )
    		{
    			self.vel = self GetVelocity();
    			self.oldvel = (self.vel[0], self.vel[1], self Negate(self.vel[2]));
    		}
    		wait .1;
    	}
    }
    
    justreset(var11)
    {
    	wait .6;
    	self.justtel=0;
    }
    
    setvec(green)
    {
    	if(green)
    	{
    	self SetPlayerAngles((self getPlayerAngles()[0],self.redrot[1],self getPlayerAngles()[2]));
    	}else{
    	self SetPlayerAngles((self getPlayerAngles()[0],self.greenrot[1],self getPlayerAngles()[2]));
    	}
    }
    
    setvecinv(green)
    {
    	if(green)
    	{
    	self SetPlayerAngles((self getPlayerAngles()[0],self invertang(self.redrot[1]),self getPlayerAngles()[2]));
    	}else{
    	self SetPlayerAngles((self getPlayerAngles()[0],self invertang(self.greenrot[1]),self getPlayerAngles()[2]));
    	}
    }
    
    invertang(angle)
    {
    	if(angle<=180)
    	{
    	retu=angle-180;
    	}else{
    	retu=angle+180;
    	}
    	return(retu);
    }
    
    Negate(vector){
    	self endon("death");
    	negative=vector-(vector*2);
    	return(negative);
    }
    	
    
    testinsh()
    {
        self endon("death");
    	
    	green = spawn("script_model", (-155154,-514654,-5132168) );
    	green setModel( "com_plasticcase_friendly" );
    	red = spawn("script_model", (-155154,-514654,-5132168) );
    	red setModel( "com_plasticcase_friendly" );
    	
    	self.greendd=0;
    	self.reddd=0;
    	
    	
    	green hide();
    	red hide();
    	self thread remondeath();
    	
        for(;;)
        {
            self waittill ( "weapon_fired" );
            vec = anglestoforward(self getPlayerAngles());
            end = (vec[0] * 200000, vec[1] * 200000, vec[2] * 200000);
            SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
    		currentWeapon = self getCurrentWeapon();
    		if ( currentWeapon == self.weaponpor && self.por==1)
    		{
    			self thread getvec(self.por);
    			self.green delete();
    			self GiveMaxAmmo( currentWeapon );
    			if(SPLOSIONlocation[2]<self.newshit[2] + 100 && SPLOSIONlocation[2]>self.newshit[2] + 25)
    			{
    				self.green = spawn("script_model", SPLOSIONlocation);
    				self.green RotateTo( ( 90, 0, 0), 0.0001, 0, 0);
    				self.green setModel( "com_plasticcase_friendly" );
    				SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
    				self.greenroof=0;
    				self.greenwall=1;
    			}else{
    				if(SPLOSIONlocation[2]<self.newshit[2] + 100)
    				{
    					self.green = spawn("script_model", SPLOSIONlocation - (0,0,11.5) );
    					self.greenroof=0;
    				}else{
    					self.green = spawn("script_model", SPLOSIONlocation + (0,0,11.5) );
    					self.greenroof=1;				
    				}
    				self.greenwall=0;
    				self.green RotateYaw(self.greenrot[1], 0.0001, 0, 0);	
    				self.green setModel( "com_plasticcase_friendly" );
    				self.greenwall=0;
    			}
    			self thread Bluesavepos(SPLOSIONlocation);
    			self.greendd=1;
    		}
    		if ( currentWeapon == self.weaponpor && self.por==0)
    		{
    			self thread getvec(self.por);
    			self.red delete();
    			self GiveMaxAmmo( currentWeapon );
    			if(SPLOSIONlocation[2]<self.newshit[2] + 100 && SPLOSIONlocation[2]>self.newshit[2] + 25)
    			{
    				self.red = spawn("script_model", SPLOSIONlocation);
    				self.red RotateTo( ( 90, 0, 0), 0.0001, 0, 0);
    				self.red setModel( "com_plasticcase_enemy" );
    				SPLOSIONlocation = BulletTrace( self gettagorigin("tag_eye"), self gettagorigin("tag_eye")+end, 0, self)[ "position" ];
    				self.redroof=0;
    				self.redwall=1;
    			}else{
    				if(SPLOSIONlocation[2]<self.newshit[2] + 100)
    				{
    					self.red = spawn("script_model", SPLOSIONlocation - (0,0,11.5) ); 
    					self.redroof=0;
    				}else{
    					self.red = spawn("script_model", SPLOSIONlocation + (0,0,11.5) ); 
    					self.redroof=1;
    				}
    			self.red setModel( "com_plasticcase_enemy" );
    			self.red RotateYaw(self.redrot[1], 0.001, 0, 0);
    			self.redwall=0;
    			}
    			self thread Redsavepos(SPLOSIONlocation);
    			self.reddd=1;
    		}
        }
    }
    
    getvec(col)
    {
    	if(col==0)
    	{
    	self.redrot=self getPlayerAngles();
    	}else{
    	self.greenrot=self getPlayerAngles();
    	}
    }
    
    roundUp( floatVal )
    {
    	if ( int( floatVal ) != floatVal )
    		return int( floatVal+1 );
    	else
    		return int( floatVal );
    }
    
    
    giveRankXP( type, value )
    {
    	self endon("disconnect");
    	
    	lootType = "none";
    	
    	if ( !self rankingEnabled() )
    		return;
    	
    	if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
    		return;
    	else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
    		return;
    
    	if ( !isDefined( value ) )
    		value = getScoreInfoValue( type );
    
    	if ( !isDefined( self.xpGains[type] ) )
    		self.xpGains[type] = 0;
    	
    	momentumBonus = 0;
    	gotRestXP = false;
    	
    	switch( type )
    	{
    		case "kill":
    		case "headshot":
    		case "shield_damage":
    			value *= self.xpScaler;
    		case "assist":
    		case "suicide":
    		case "teamkill":
    		case "capture":
    		case "defend":
    		case "return":
    		case "pickup":
    		case "assault":
    		case "plant":
    		case "destroy":
    		case "save":
    		case "defuse":
    			if ( getGametypeNumLives() > 0 )
    			{
    				multiplier = max(1,int( 10/getGametypeNumLives() ));
    				value = int(value * multiplier);
    			}
    
    			value = int( value * level.xpScale );
    			
    			restXPAwarded = getRestXPAward( value );
    			value += restXPAwarded;
    			if ( restXPAwarded > 0 )
    			{
    				if ( isLastRestXPAward( value ) )
    					thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
    
    				gotRestXP = true;
    			}
    			break;
    	}
    	
    	if ( !gotRestXP )
    	{
    		// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
    		if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
    			self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
    	}
    	
    	oldxp = self getRankXP();
    	self.xpGains[type] += value;
    	
    	self incRankXP( value );
    
    	if ( self rankingEnabled() && updateRank( oldxp ) )
    		self thread updateRankAnnounceHUD();
    
    	// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
    	self syncXPStat();
    
    	if ( !level.hardcoreMode )
    	{
    		if ( type == "teamkill" )
    		{
    			self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
    		}
    		else
    		{
    			color = (1,1,0.5);
    			if ( gotRestXP )
    				color = (1,.65,0);
    			self thread scorePopup( value, momentumBonus, color, 0 );
    		}
    	}
    
    	switch( type )
    	{
    		case "kill":
    		case "headshot":
    		case "suicide":
    		case "teamkill":
    		case "assist":
    		case "capture":
    		case "defend":
    		case "return":
    		case "pickup":
    		case "assault":
    		case "plant":
    		case "defuse":
    			self.pers["summary"]["score"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    
    		case "win":
    		case "loss":
    		case "tie":
    			self.pers["summary"]["match"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    
    		case "challenge":
    			self.pers["summary"]["challenge"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    			
    		default:
    			self.pers["summary"]["misc"] += value;	//keeps track of ungrouped match xp reward
    			self.pers["summary"]["match"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    	}
    }
    
    updateRank( oldxp )
    {
    	newRankId = self getRank();
    	if ( newRankId == self.pers["rank"] )
    		return false;
    
    	oldRank = self.pers["rank"];
    	rankId = self.pers["rank"];
    	self.pers["rank"] = newRankId;
    
    	//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );		
    	println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
    	
    	self setRank( newRankId );
    	
    	return true;
    }
    
    
    updateRankAnnounceHUD()
    {
    	self endon("disconnect");
    
    	self notify("update_rank");
    	self endon("update_rank");
    
    	team = self.pers["team"];
    	if ( !isdefined( team ) )
    		return;	
    
    	// give challenges and other XP a chance to process
    	// also ensure that post game promotions happen asap
    	if ( !levelFlag( "game_over" ) )
    		level waittill_notify_or_timeout( "game_over", 0.25 );
    	
    	
    	newRankName = self getRankInfoFull( self.pers["rank"] );	
    	rank_char = level.rankTable[self.pers["rank"]][1];
    	subRank = int(rank_char[rank_char.size-1]);
    	
    	thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
    
    	if ( subRank > 1 )
    		return;
    	
    	for ( i = 0; i < level.players.size; i++ )
    	{
    		player = level.players[i];
    		playerteam = player.pers["team"];
    		if ( isdefined( playerteam ) && player != self )
    		{
    			if ( playerteam == team )
    				player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
    		}
    	}
    }
    
    
    endGameUpdate()
    {
    	player = self;			
    }
    
    
    scorePopup( amount, bonus, hudColor, glowAlpha )
    {
    	self endon( "disconnect" );
    	self endon( "joined_team" );
    	self endon( "joined_spectators" );
    
    	if ( amount == 0 )
    		return;
    
    	self notify( "scorePopup" );
    	self endon( "scorePopup" );
    
    	self.xpUpdateTotal += amount;
    	self.bonusUpdateTotal += bonus;
    
    	wait ( 0.05 );
    
    	if ( self.xpUpdateTotal < 0 )
    		self.hud_scorePopup.label = &"";
    	else
    		self.hud_scorePopup.label = &"MP_PLUS";
    
    	self.hud_scorePopup.color = hudColor;
    	self.hud_scorePopup.glowColor = hudColor;
    	self.hud_scorePopup.glowAlpha = glowAlpha;
    
    	self.hud_scorePopup setValue(self.xpUpdateTotal);
    	self.hud_scorePopup.alpha = 0.85;
    	self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
    
    	increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
    		
    	if ( self.bonusUpdateTotal )
    	{
    		while ( self.bonusUpdateTotal > 0 )
    		{
    			self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
    			self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
    			
    			self.hud_scorePopup setValue( self.xpUpdateTotal );
    			
    			wait ( 0.05 );
    		}
    	}	
    	else
    	{
    		wait ( 1.0 );
    	}
    
    	self.hud_scorePopup fadeOverTime( 0.75 );
    	self.hud_scorePopup.alpha = 0;
    	
    	self.xpUpdateTotal = 0;		
    }
    
    removeRankHUD()
    {
    	self.hud_scorePopup.alpha = 0;
    }
    
    getRank()
    {	
    	rankXp = self.pers["rankxp"];
    	rankId = self.pers["rank"];
    	
    	if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
    		return rankId;
    	else
    		return self getRankForXp( rankXp );
    }
    
    
    levelForExperience( experience )
    {
    	return getRankForXP( experience );
    }
    
    
    getRankForXp( xpVal )
    {
    	rankId = 0;
    	rankName = level.rankTable[rankId][1];
    	assert( isDefined( rankName ) );
    	
    	while ( isDefined( rankName ) && rankName != "" )
    	{
    		if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
    			return rankId;
    
    		rankId++;
    		if ( isDefined( level.rankTable[rankId] ) )
    			rankName = level.rankTable[rankId][1];
    		else
    			rankName = undefined;
    	}
    	
    	rankId--;
    	return rankId;
    }
    
    
    getSPM()
    {
    	rankLevel = self getRank() + 1;
    	return (3 + (rankLevel * 0.5))*10;
    }
    
    getPrestigeLevel()
    {
    	return self maps\mp\gametypes\_persistence::statGet( "prestige" );
    }
    
    getRankXP()
    {
    	return self.pers["rankxp"];
    }
    
    incRankXP( amount )
    {
    	if ( !self rankingEnabled() )
    		return;
    
    	if ( isDefined( self.isCheater ) )
    		return;
    	
    	xp = self getRankXP();
    	newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
    	
    	if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
    		newXp = getRankInfoMaxXP( level.maxRank );
    	
    	self.pers["rankxp"] = newXp;
    }
    
    getRestXPAward( baseXP )
    {
    	if ( !getdvarint( "scr_restxp_enable" ) )
    		return 0;
    	
    	restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
    	
    	wantGiveRestXP = int(baseXP * restXPAwardRate);
    	mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
    	
    	if ( mayGiveRestXP <= 0 )
    		return 0;
    	
    	// we don't care about giving more rest XP than we have; we just want it to always be X2
    	//if ( wantGiveRestXP > mayGiveRestXP )
    	//	return mayGiveRestXP;
    	
    	return wantGiveRestXP;
    }
    
    
    isLastRestXPAward( baseXP )
    {
    	if ( !getdvarint( "scr_restxp_enable" ) )
    		return false;
    	
    	restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
    	
    	wantGiveRestXP = int(baseXP * restXPAwardRate);
    	mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
    
    	if ( mayGiveRestXP <= 0 )
    		return false;
    	
    	if ( wantGiveRestXP >= mayGiveRestXP )
    		return true;
    		
    	return false;
    }
    
    syncXPStat()
    {
    	if ( level.xpScale > 4 || level.xpScale <= 0)
    		exitLevel( false );
    
    	xp = self getRankXP();
    	
    	self maps\mp\gametypes\_persistence::statSet( "experience", xp );
    }
    and i have no idea how to put it into a format so a modloader will load it. (MW2 Liberation). could anyone tell me how to make GSC's out of these files, because i have a couple other mods that are like this.
    Last edited by Insane; 09-12-2010 at 10:53 AM.

  2. #2
    rkaf's Avatar
    Join Date
    May 2010
    Gender
    male
    Location
    OPEN RIGHT NOW!! <--- ADD MPGHRKAF
    Posts
    748
    Reputation
    73
    Thanks
    1,632
    My Mood
    Yeehaw
    if i was a mod i would close this straight away and suspend ur account for a couple of days. Use the search button man shit just copy and paste it into a textfile and make the extention .gsc shit bro

  3. #3
    altheris1's Avatar
    Join Date
    Feb 2010
    Gender
    male
    Posts
    3
    Reputation
    10
    Thanks
    0
    My Mood
    Cheeky
    that really doesnt make any sense to me.

    nevermind, it was all screwed up so it wouldnt even load the mod. it looked weird in the .gsc file.

    ^
    |
    ignore all that.
    Last edited by altheris1; 09-12-2010 at 08:02 AM. Reason: fixed it.

  4. #4
    Mr.Mackey's Avatar
    Join Date
    Aug 2010
    Gender
    male
    Location
    ::1
    Posts
    296
    Reputation
    12
    Thanks
    268
    My Mood
    Twisted
    Aight:
    1st: Download MW2 Liberation (You already did that)
    2nd: Copy paste the portal mod code in Notepad++
    3rd: Save as: _rank.gsc

    4th: In the Modern Warfare 2 Liberation folder there is a map called "Mods"
    Go in that folder and create another folder called "Portal Mod"
    Create in "Portal Mod" folder another map called "maps"

    5th: Go on until you have it like this:
    MW2_Liberation\Mods\Portal Mod\maps\mp\gametypes

    6th: Save the created file (_rank.gsc) in that map: MW2_Liberation\Mods\Portal Mod\maps\mp\gametypes.

    7th: Open MW2 Liberation and select mod and press Load Game.

    8th: Create Private. Invite friends. Have fun.

    If you dont follow this, go to my tut:
    http://www.mpgh.net/forum/286-call-d...beginners.html

    Don't forget to thank me
    I helped you out?
    Press the button

  5. The Following User Says Thank You to Mr.Mackey For This Useful Post:

    altheris1 (09-12-2010)

  6. #5
    altheris1's Avatar
    Join Date
    Feb 2010
    Gender
    male
    Posts
    3
    Reputation
    10
    Thanks
    0
    My Mood
    Cheeky
    thanks for that, that really helped me.

  7. #6
    Insane's Avatar
    Join Date
    Jun 2010
    Gender
    male
    Posts
    9,055
    Reputation
    1007
    Thanks
    2,001
    /Marked as Solved

Similar Threads

  1. Totally Confused
    By Area 51 in forum CrossFire Discussions
    Replies: 7
    Last Post: 12-30-2010, 05:11 AM
  2. [SOLVED] I got confused about different version of mw2!
    By gogogo1 in forum Call of Duty Modern Warfare 2 Help
    Replies: 7
    Last Post: 09-14-2010, 08:42 PM
  3. [SOLVED] im confused
    By levicourtois in forum CrossFire Help
    Replies: 6
    Last Post: 09-10-2010, 07:54 AM
  4. [SOLVED]"0 Total Players Online"?
    By iOS4fan in forum Call of Duty Modern Warfare 2 Help
    Replies: 3
    Last Post: 07-13-2010, 05:22 AM
  5. Not totally noob, but confused.
    By Leolord13 in forum WarRock - International Hacks
    Replies: 3
    Last Post: 01-29-2009, 05:24 AM