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 11: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 09: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
    1,997
    /Marked as Solved
    Insane
    Ex Middleman
    [
    PM|VM]
    |x|x|x|x|x|x|x|



    Quote Originally Posted by Boombox View Post
    Shut the fuck up insane you pussy bitch.
    Quote Originally Posted by arunforce View Post
    Shut the fuck up kid, everything that comes out of your mouth sounds retarded as fuck.

Similar Threads

  1. Totally Confused
    By Area 51 in forum CrossFire Discussions
    Replies: 7
    Last Post: 12-30-2010, 06: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, 09:42 PM
  3. [SOLVED] im confused
    By levicourtois in forum CrossFire Help
    Replies: 6
    Last Post: 09-10-2010, 08: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, 06:22 AM
  5. Not totally noob, but confused.
    By Leolord13 in forum WarRock - International Hacks
    Replies: 3
    Last Post: 01-29-2009, 06:24 AM