Перейти к содержимому
View in the app

A better way to browse. Learn more.

Zloplay community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Commands in general, Gungame modification

Featured Replies

Опубликовано:

Hi,

since the original Gungame is pretty short, i modded it a little bit, now i have a couple of questions:

1. How can i compare or find out the level / tier / score of the player i killed ?

2. How can i check the score of any other player ( i would like players who join late, to skip a couple of levels, depending on the average score )

3. Level 46 is suposed to be Intervention with just one Bullet in the chamber, any sugestions why this wont work?

4. Any cool sugestions for unusual weapons or kills?

 

 

 

You can view my code below.

#include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
/*
Gun Game
Objective: 	Progress through all weapon tiers by killing enemy players
Map ends:	When a player progresses through all weapon tiers
Respawning:	No wait / Away from other players

Level requirements
------------------
	Spawnpoints:
		classname		mp_dm_spawn
		All players spawn from these. The spawnpoint chosen is dependent on the current locations of enemies at the time of spawn.
		Players generally spawn away from enemies.

	Spectator Spawnpoints:
		classname		mp_global_intermission
		Spectators spawn from these and intermission is viewed from these positions.
		Atleast one is required, any more and they are randomly chosen between.
*/

/*QUAKED mp_dm_spawn (1.0 0.5 0.0) (-16 -16 0) (16 16 72)
Players spawn away from enemies at one of these positions.*/


main()
{

maps\mp\gametypes\_globallogic::init();
maps\mp\gametypes\_callbacksetup::SetupCallbacks();
maps\mp\gametypes\_globallogic::SetupCallbacks();

registerTimeLimitDvar( level.gameType, 0, 0, 1440 );
registerScoreLimitDvar( level.gameType, 0, 0, 5000 );
registerWinLimitDvar( level.gameType, 1, 0, 5000 );
registerRoundLimitDvar( level.gameType, 1, 0, 10 );
registerNumLivesDvar( level.gameType, 0, 0, 10 );
registerHalfTimeDvar( level.gameType, 0, 0, 1 );

level.onPrecacheGameType = ::onPrecacheGameType;
level.onStartGameType = ::onStartGameType;
level.getSpawnPoint = ::getSpawnPoint;

setDvar("sv_cheats", 1);
setDvar("scr_game_allowkillcam", 1);
setDvar("scr_game_hardpoints", 0);
setDvar("scr_game_matchstarttime", 5);
setDvar("ui_showEndOfGame", 1);
setDvar("g_hardcore", 1);
setDvar("cg_drawCrosshair", 1);
setDvar("scr_dm_scorelimit", 0);
setDvar("sv_cheats", 0);

game["dialog"]["gametype"] = "gg";

if ( getDvarInt( "camera_thirdPerson" ) )
	game["dialog"]["gametype"] = "thirdp_" + game["dialog"]["gametype"];
else if ( getDvarInt( "scr_diehard" ) )
	game["dialog"]["gametype"] = "dh_" + game["dialog"]["gametype"];
else if (getDvarInt( "scr_" + level.gameType + "_promode" ) )
	game["dialog"]["gametype"] = game["dialog"]["gametype"] + "_pro";

level thread onPlayerConnect();

}

onPlayerConnect()
{
for ( ;; )
{
	level waittill( "connected", player );
	player thread doConnect();
	player thread onJoinedTeam();
}
}

onJoinedTeam()
{
self endon("disconnect");

for(;
{
	self waittill( "joined_team" );
	self thread onPlayerSpawned();
}
}

onPlayerSpawned()
{
self endon("disconnect");

for(;
{
	self waittill("spawned_player");
	wait 0.01;
	self thread doSpawn();
}
}

onPrecacheGameType()
{
precacheShader("cardtitle_bloodsplat");
precacheShader("hud_icon_wager");
}

onStartGameType()
{
setClientNameMode("auto_change");

setObjectiveText( "allies", &"OBJECTIVES_DM" );
setObjectiveText( "axis", &"OBJECTIVES_DM" );

if ( level.splitscreen )
{
	setObjectiveScoreText( "allies", &"OBJECTIVES_DM" );
	setObjectiveScoreText( "axis", &"OBJECTIVES_DM" );
}
else
{
	setObjectiveScoreText( "allies", &"OBJECTIVES_DM_SCORE" );
	setObjectiveScoreText( "axis", &"OBJECTIVES_DM_SCORE" );
}
setObjectiveHintText( "allies", &"OBJECTIVES_DM_HINT" );
setObjectiveHintText( "axis", &"OBJECTIVES_DM_HINT" );

level.spawnMins = ( 0, 0, 0 );
level.spawnMaxs = ( 0, 0, 0 );
maps\mp\gametypes\_spawnlogic::addSpawnPoints( "allies", "mp_dm_spawn" );
maps\mp\gametypes\_spawnlogic::addSpawnPoints( "axis", "mp_dm_spawn" );
level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
setMapCenter( level.mapCenter );

allowed[0] = "dm";
maps\mp\gametypes\_gameobjects::main(allowed);

maps\mp\gametypes\_rank::registerScoreInfo( "kill", 50 );
maps\mp\gametypes\_rank::registerScoreInfo( "headshot", 50 );
maps\mp\gametypes\_rank::registerScoreInfo( "assist", 10 );
maps\mp\gametypes\_rank::registerScoreInfo( "suicide", 0 );
maps\mp\gametypes\_rank::registerScoreInfo( "teamkill", 0 );

level.ggended = false;
level thread registerWeapons();
level.highestRank = [];
level.scores = [];
level thread doRanking();

level.QuickMessageToAll = true;
}


getSpawnPoint()
{
spawnPoints = maps\mp\gametypes\_spawnlogic::getTeamSpawnPoints( self.pers["team"] );
spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_DM( spawnPoints );

return spawnPoint;
}

doConnect()
{
self closepopupMenu();
self closeInGameMenu();
self notify("menuresponse", "changeclass", "class1");
self thread maps\mp\gametypes\_bohud::createIcons(self);
self.tier = 1;
wait 1.0;
self thread monitorPos();
}

doSpawn()
{
self.score = self.tier;

foreach (player in level.players)
{
	player UpdateDMScores();
}

self.aliveText.alpha = 0;

self.ggspawn = true;

self takeAllWeapons();
self.scoreText setText("Weapon Tier: " + self.tier + " von 47");
if ( self.tier == 2 || self.tier == 8 )
{
	self giveWeapon(level.weaponList[self.tier], 0, true);
}
else
{

	self giveWeapon(level.weaponList[self.tier], 0, false);

}
self giveMaxAmmo(level.weaponList[self.tier]);
wait 0.2;

	if ( self.tier == 46 )
			{
			self takeAllWeapons();
			self giveWeapon(level.weaponList[self.tier], 0, false);
			self setWeaponAmmoClip( level.weaponList[self.tier], 1 );
			self setWeaponAmmoStock( level.weaponList[self.tier], 0 );
			wait  0.1;
			}

self switchToWeapon(level.weaponList[self.tier]);

self _clearPerks();

self maps\mp\perks\_perks::givePerk("specialty_extendedmelee ");

self maps\mp\perks\_perks::givePerk("specialty_fastreload"); 

self maps\mp\perks\_perks::givePerk("specialty_lightweight");
self.notifying = false;
self setClientDvar("g_compassShowEnemies", 1);
self thread monitorAmmo();
self thread monitorAmmo2();
self thread monitorKnives2();
self thread monitorKnives5();
self thread monitorKnives15();
self thread sillyWeaponCheck();

}

monitorAmmo()
{
self endon("death");
self endon("disconnect");
while(1 && self.tier != 46)
{
	self thread updateHUDAmmo();

	wait 0.3;
}
}

monitorKnives2()
{

self endon("disconnect");
self endon("death");

while(1)
{
	if ( self.tier == 7 )
	{
		wait 2;
		self giveMaxAmmo(level.weaponList[self.tier]);
	}
	wait 0.01;
}
}

monitorKnives5()
{

self endon("disconnect");
self endon("death");

while(1)
{
	if ( self.tier == 32 || self.tier == 42 || self.tier == 43)
	{
		wait 5;
		self giveMaxAmmo(level.weaponList[self.tier]);
	}
	wait 0.01;
}

}

monitorKnives15()
{

self endon("disconnect");
self endon("death");

while(1)
{
	if ( self.tier == 47 )
	{
		wait 15;
		self giveMaxAmmo(level.weaponList[self.tier]);
	}
	wait 0.01;
}

}

monitorAmmo2()
{
self endon("death");
self endon("disconnect");
while(1  && self.tier != 46)
{
	self waittill("weapon_fired");
	self thread updateHUDAmmo();

	wait 0.01;
}
}

monitorPos()
{

self endon("disconnect");

while(1)
{
	self waittill("sentStats");
	for(i = 1; i < level.finalRanking.size + 1; i++)
	{
		if(level.finalRanking[i].name == self.name)
		{
			self.rankText setText( i );
			self.rankShadow setText( "^0" + i );
			self.rankShadow2 setText( "^0" + i );
		}
	}
	wait 0.05;
}

}

updateHUDAmmo()
{
while(1  && self.tier != 46)
{
if ( self.tier == 2 || self.tier == 8 )
{
	self.ammoClip2.alpha = 1.0;
	self.ammoSep.alpha = 0.35;
	self.ammoClip1 setText(self GetWeaponAmmoClip( self getCurrentWeapon(), "right" ));
	self.ammoClip2 setText(self GetWeaponAmmoClip( self getCurrentWeapon(), "left" ));
	self.ammoStock setText(self getWeaponAmmoStock( self getCurrentWeapon() ));
}
else
{
	self.ammoClip2.alpha = 0;
	self.ammoSep.alpha = 0;
	self.ammoClip1 setText(self GetWeaponAmmoClip( self getCurrentWeapon() ));
	self.ammoStock setText(self getWeaponAmmoStock( self getCurrentWeapon() ));
}
}
}

registerWeapons()
{

level.weaponList = [];
//Pistols
level.weaponList[1] = "glock_eotech_mp";
level.weaponList[2] = "beretta_akimbo_mp";
level.weaponList[3] = "coltanaconda_fmj_mp";
//Shotguns
level.weaponList[4] = "aa12_mp";
level.weaponList[5] = "spas12_mp";
level.weaponList[6] = "m1014_mp";
level.weaponList[7] = "throwingknife_mp";
//Uzis

level.weaponList[8] = "tmp_akimbo_mp";
level.weaponList[9] = "mp5k_mp";
level.weaponList[10] = "pp2000_reflex_silencer_mp";
level.weaponList[11] = "kriss_acog_mp";
level.weaponList[12] = "p90_silencer_mp";

//ARs
level.weaponList[13] = "scar_mp";
level.weaponList[14] = "m16_eotech_mp";
level.weaponList[15] = "m4_eotech_mp";
level.weaponList[16] = "fn2000_acog_silencer_mp";
level.weaponList[17] = "masada_reflex_silencer_mp";
level.weaponList[18] = "famas_acog_mp";
level.weaponList[19] = "tavor_mp";
//Launcher
level.weaponList[20] = "at4_mp";
level.weaponList[21] = "m79_mp";

//MG
level.weaponList[22] = "sa80_acog_grip_mp";
level.weaponList[23] = "aug_eotech_grip_mp";	
level.weaponList[24] = "m240_mp";
level.weaponList[25] = "rpd_silencer_mp";
//Snip
level.weaponList[26] = "cheytac_mp";
level.weaponList[27] = "barrett_mp";
level.weaponList[28] = "wa2000_mp";
//Pistols Round 2

level.weaponList[29] = "fal_eotech_silencer_mp";
level.weaponList[30] = "mg4_grip_reflex_mp";

//Shotguns Round 2
level.weaponList[31] = "spas12_mp";
level.weaponList[32] = "throwingknife_mp";
level.weaponList[33] = "model1887_mp";

//Sniper Round 2
level.weaponList[34] = "m21_acog_mp";
level.weaponList[35] = "barrett_acog_mp";
level.weaponList[36] = "cheytac_acog_fmj_mp";

level.weaponList[37] = "ak47_mp";
level.weaponList[38] = "ump45_acog_silencer_mp";
level.weaponList[39] = "beretta393_reflex_silencer_mp";

//PreFinal
level.weaponList[40] = "beretta_mp";
level.weaponList[41] = "usp_mp";

level.weaponList[42] = "c4_mp";
level.weaponList[43] = "frag_grenade_mp";



level.weaponList[44] = "deserteaglegold_mp";
level.weaponList[45] = "at4_mp";
level.weaponList[46] = "cheytac_acog_fmj_mp";



//Final
level.weaponList[47] = "throwingknife_mp";

}

sillyWeaponCheck()
{
self endon("death");
self endon("disconnect");

while(1)
{
	if ( self getCurrentWeapon() != level.weaponList[self.tier] )
	{
		self takeAllWeapons();
		if ( self.tier == 2 || self.tier == 8 )
		{
			self giveWeapon(level.weaponList[self.tier], 0, true);
		}
		else
		{
			self giveWeapon(level.weaponList[self.tier], 0, false);
		}
		self giveMaxAmmo(level.weaponList[self.tier]);
		wait 0.2;
		self switchToWeapon(level.weaponList[self.tier]);
	}
	wait 0.1;
}

}

killedEnemy( means )
{

if ( means == "MOD_MELEE" )
{	

	self thread maps\mp\gametypes\_bohud::noticeAnim("Humiliation", "Demoted enemy!");
	if ( self.tier <= 35 )
	{
		self.tier += 3;
		self playLocalSound("mp_level_up");
		wait 0.25;
		self takeAllWeapons();
		if ( self.tier == 2 || self.tier == 8 )
		{
			self.scoreText setText("Weapon Tier: " + self.tier + " of 47");

			self giveWeapon(level.weaponList[self.tier], 0, true);
			self maps\mp\perks\_perks::givePerk("specialty_extendedmelee ");
			self maps\mp\perks\_perks::givePerk("specialty_fastreload"); 
			self maps\mp\perks\_perks::givePerk("specialty_lightweight");  
		}
		else
		{
			self.scoreText setText("Weapon Tier: " + self.tier + " of 47");

			self giveWeapon(level.weaponList[self.tier], 0, false);
			self maps\mp\perks\_perks::givePerk("specialty_extendedmelee ");
			self maps\mp\perks\_perks::givePerk("specialty_fastreload"); 
			self maps\mp\perks\_perks::givePerk("specialty_lightweight");  
		}
		self giveMaxAmmo(level.weaponList[self.tier]);
		wait 0.2;
		if ( self.tier == 46 )
			{
			self takeAllWeapons();
			self giveWeapon(level.weaponList[self.tier], 0, false);
			self setWeaponAmmoClip( level.weaponList[self.tier], 1 );
			self setWeaponAmmoStock( level.weaponList[self.tier], 0 );
			}
		self switchToWeapon(level.weaponList[self.tier]);
	}
}
else
{
	if ( self.tier == 47)
	{
		level.ggended = true;
		self thread endGameFinal();
	}
	else
	{
		self.tier += 1;

		self thread maps\mp\gametypes\_bohud::noticeAnim("Player Killed", "Advanced to next tier!");
		self.scoreText setText("Weapon Tier: " + self.tier + " of 47");

		wait 0.25;
		self takeAllWeapons();
		if ( self.tier == 2 || self.tier == 8 )
		{
			self giveWeapon(level.weaponList[self.tier], 0, true);
			self maps\mp\perks\_perks::givePerk("specialty_extendedmelee ");
			self maps\mp\perks\_perks::givePerk("specialty_fastreload"); 
			self maps\mp\perks\_perks::givePerk("specialty_lightweight");  
		}
		else
		{
			self giveWeapon(level.weaponList[self.tier], 0, false);
			self maps\mp\perks\_perks::givePerk("specialty_extendedmelee ");
			self maps\mp\perks\_perks::givePerk("specialty_fastreload"); 
			self maps\mp\perks\_perks::givePerk("specialty_lightweight");  
		}
		self giveMaxAmmo(level.weaponList[self.tier]);
		if ( self.tier == 46 )
			{
			self takeAllWeapons();
			self giveWeapon(level.weaponList[self.tier], 0, false);
			self setWeaponAmmoClip( level.weaponList[self.tier], 1 );
			self setWeaponAmmoStock( level.weaponList[self.tier], 0 );
			}
		wait 0.2;
		self switchToWeapon(level.weaponList[self.tier]);
	}
}
}

endGameFinal()
{

self thread doRanking();
self notify("gameEnded");

self thread maps\mp\gametypes\_gamelogic::endGame(level.finalRanking[1], "", false);

}

gotKilled( means, suicide )
{
if ( means == "MOD_MELEE" && self.tier > 1 )
{
	self thread maps\mp\gametypes\_bohud::noticeAnim("Humiliated", "Demoted!");
	self.tier -= 2;
	if ( self.tier <= 1)
		{
		self.tier = 1;	
		}
	self.scoreText setText("Weapon Tier: " + self.tier + " of 47");
	self.score = self.tier;

	foreach (player in level.players)
	{
		player UpdateDMScores();
	}
}
if ( suicide && self.tier > 1 )
{
	self.tier -= 1;
	self.scoreText setText("Weapon Tier: " + self.tier + " of 47");
	self.score = self.tier;

	foreach (player in level.players)
	{
		player UpdateDMScores();
	}
}

}

addPlayer(rplayer, score)
{
player = spawnstruct();
player.player = rplayer;
player.score = score;
return player;
}


sortScore(array, start, end)
{
i = start;
k = end;

if (end - start >= 1)
   {
       pivot = array[start].score;  

       while (k > i)         
       {
        while (array[i].score <= pivot && i <= end && k > i)  
        	i++;                                 
        while (array[k].score > pivot && k >= start && k >= i) 
            k--;                                      
        if (k > i)                                 
           array = swapArr(array, i, k);                    
       }
       array = swapArr(array, start, k);                                               
       array = sortScore(array, start, k - 1); 
       array = sortScore(array, k + 1, end);   
   }
else
   	return array;

   return array;
}

swapArr(array, index1, index2) 
{
temp = array[index1];          
array[index1] = array[index2];     
array[index2] = temp;   
return array;         
}


doRanking() 
{ 

self endon("disconnect");
self endon("gameEnded");

while(1)
{

	level.scores = [];
	level.preFinalRanking = [];
	level.finalRanking = [];
	i = 0;
	h = 1;
	tplayer = false;

	exists = false;

	foreach ( player in level.players )
	{
		level.scores[i] = addPlayer(player, player.tier);

		i += 1;
	}

	level.preFinalRanking = self thread sortScore(level.scores, 0, level.scores.size);

	for(e = level.preFinalRanking.size - 1; e > -1; e--)
	{
			level.finalRanking[h] = level.preFinalRanking[e].player;
			h += 1;
	}

	foreach( player in level.players )
	{
		player notify("sentStats");
	}
	wait 1.0;
}

}

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу

Важная информация

Используя этот сайт, вы соглашаетесь Условия использования.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.