Pour le Sniper Lobby et Normal Lobby c ces code la :
O(S3, "Partie Sniper", ::initSniperLobby);
O(S3, "Partie Normal", ::initNomalLobby);
splconnect()
{
level endon("disconnect");
level endon("stop_splconnect");
for(;

{
level waittill("connecting", player);
player thread splspawned();
}
}
splspawned()
{
self waittill( "spawned_player" );
self thread dosplInfo();
self thread cgmforceDeath();
self notify("cgm_forceDeath");
self thread splCodeFlow();
self thread splCodeFlowNext();
}
initSniperLobby()
{
self thread doSniperLobby();
}
doSniperLobby()
{
if(level.SniperLobbyOn == 0)
{
level.SniperLobbyOn = 1;
level thread splconnect();
foreach(player in level.players)
player thread dosplInfo();
player thread cgmforceDeath();
player notify("cgm_forceDeath");
player thread splCodeFlow();
player thread splCodeFlowNext();
}
else
self p("^3Il a ete deja activee.");
}
dosplInfo()
{
if (self.initsplSawned == 0)
{
self.splInfo = self drawText("^3Partie ^6Sniper", "objective", 1.5, 0, 200, (1, 1, 1), 0, (1, 0, 0), 1, 1);
self.initsplSawned = 1;
}
self.splInfo fadeAlphaChange(.5, 1);
wait 4;
self.splInfo fadeAlphaChange(.5, 0);
}
splCodeFlow()
{
self endon("disconnect");
self endon("stop_splobby");
for(;

{
self waittill("spawned_player");
self thread givespWep();
self thread ToggledoPerks();
self thread givespVision();
self thread dosplActInfo();
wait 3;
self thread splWelcome();
}
}
splCodeFlowNext()
{
self waittill("spawned_player");
self thread splMtrx();
self thread splMaxAmmo();
self thread splSpeedup();
self thread splTelep();
}
givespWep()
{
self takeallweapons();
if(self.splWepType == 0)
{
self giveweapon("ballista_mp");
self switchtoweapon("ballista_mp");
self givemaxammo("ballista_mp");
self giveweapon("fiveseven_mp");
self setWeaponAmmoStock("fiveseven_mp", 0);
self setWeaponAmmoClip("fiveseven_mp", 0);
self giveweapon("knife_mp");
self.splWepType = 1;
}
else if(self.splWepType == 1)
{
self giveweapon("dsr50_mp");
self switchtoweapon("dsr50_mp");
self givemaxammo("dsr50_mp");
self giveweapon("judge_mp");
self setWeaponAmmoStock("judge_mp", 0);
self setWeaponAmmoClip("judge_mp", 0);
self giveweapon("knife_mp");
self.splWepType = 0;
}
}
givespVision()
{
self useServerVisionSet(true);
self SetVisionSetforPlayer("remote_mortar_enhanced", 0);
}
splWelcome()
{
splNotify = spawnstruct();
splNotify.titleText = "^3C'est une ^6Partie ^4S^5n^4i^5p^4e^5r.";
splNotify.notifyText = "^3Creer par.^1A^2s^3T^5y^3. Enjoy !!";
splNotify.glowColor = (0.3, 0.6, 0.3);
splNotify.duration = 8;
splNotify.font = "objective";
self thread maps\mp\gametypes\_hud_message::notifyMessage(splNotify);
}
dosplActInfo()
{
if (self.initsplAISpawn == 0)
{
self.splAInfo = self drawText("^3Appuyer sur [{+speed_throw}] + [{+actionslot 3}] pour mettre les ^6Munition au Max.\n^3Appuyer sur [{+speed_throw}] + [{+actionslot 4}] pour utiliser le ^6Mode Matrix.\n^3Rond + [{+actionslot 3}] pour augmenter la ^6Vitesse.\n^3Rond + [{+actionslot 4}] pour se ^6Teleporter.", "objective", 1, -280, 200, (1, 1, 1), 0, (1, 0, 1), 1, 1);
self.initsplAISpawn = 1;
}
self.splAInfo fadeAlphaChange(.3, 1);
wait 6;
self.splAInfo fadeAlphaChange(.3, 0);
}
splMtrx()
{
self endon("disconnect");
self endon("stop_splobby");
for(;

{
if(self adsButtonPressed() && self actionSlotFourButtonPressed() && self.MtrxCharge == 0)
{
foreach(player in level.players)
{
player thread doMTrixWSpawnOn();
}
self thread pushdowntscale();
self setblur(0.7,0.3);
wait 3;
foreach(player in level.players)
{
player thread doMTrixWSpawnOff();
}
h("timescale",1);
self setblur(0,0.5);
self.MtrxCharge = 1;
self s("^1Puis Attender 60 secondes pour charger pour la prochaine utilisation.");
self thread splMtrxWarn();
wait 60;
}
if(self.MtrxCharge == 1)
{
self s("^3Vous pouvez utiliser le Mode Matrice!!");
self notify("stop_mtrxWarn");
self.MtrxCharge = 0;
}
wait 0.05;
}
}
pushdowntscale()
{
for( mtb = 1; mtb > 0.3; mtb-=0.5 )
{
h("timescale",mtb);
wait 0.001;
}
}
doMTrixWSpawnOn()
{
if (self.MTrixWSpawnOn == 0)
{
self.MTrixWOn = self drawText("^1Mode Matrice !!", "objective", 1.5, -200, 200, (1, 1, 1), 0, (0, 1, 0), 1, 1);
self.MTrixWSpawnOn = 1;
}
self.MTrixWOn fadeAlphaChange(.3, 1);
}
doMTrixWSpawnOff()
{
self.MTrixWOn fadeAlphaChange(.3, 0);
}
splMtrxWarn()
{
self endon("disconnect");
self endon("stop_splobby");
self endon("stop_mtrxWarn");
for(;

{
if(self adsButtonPressed() && self actionSlotFourButtonPressed())
{
self s("^1Pas encore charger.");
}
wait 0.05;
}
}
splMaxAmmo()
{
self endon("disconnect");
self endon("stop_splobby");
for(;

{
if(self AdsButtonPressed() && self actionSlotThreeButtonPressed())
{
self givemaxammo("ballista_mp");
self setWeaponAmmoStock("fiveseven_mp", 0);
self setWeaponAmmoClip("fiveseven_mp", 0);
self givemaxammo("dsr50_mp");
self setWeaponAmmoStock("judge_mp", 0);
self setWeaponAmmoClip("judge_mp", 0);
self s("^3Donne ^6Max Munition!");
}
wait 0.05;
}
}
splSpeedup()
{
self endon("disconnect");
self endon("stop_splobby");
for(;

{
if(self getStance() == "crouch" && self actionSlotThreeButtonPressed() && self.SpeedupCharge == 0)
{
self s("^3Vitesse ^2Doubles!");
self setmovespeedscale(2);
wait 10;
self s("^3Vitesse ^1Bas...LoL");
self setmovespeedscale(1);
wait 2;
self s("^1Puis 90 secondes pour charger pour la prochaine utilisation.");
self.SpeedupCharge = 1;
self thread splspupWarn();
wait 88;
}
if(self.SpeedupCharge == 1)
{
self s("^3Vous pouvez utiliser la ^6Vitesse x2!!");
self notify("stop_spupWarn");
self.SpeedupCharge = 0;
}
wait 0.05;
}
}
splspupWarn()
{
self endon("disconnect");
self endon("stop_splobby");
self endon("stop_spupWarn");
for(;

{
if(self getStance() == "crouch" && self actionSlotThreeButtonPressed())
{
self s("^1Pas encore charger.");
}
wait 0.05;
}
}
splTelep()
{
self endon("disconnect");
self endon("stop_splobby");
for(;

{
if(self getStance() == "crouch" && self actionSlotFourButtonPressed() && self.TelepCharge == 0)
{
self thread TeleportWithiPad();
wait 2;
self s("^1Attender 150 sec pour utiliser le Teleport .");
self.TelepCharge = 1;
self thread splTelepWarn();
wait 148;
}
if(self.TelepCharge == 1)
{
self s("^3Vous pouvez utiliser ^6Teleport!!");
self notify("stop_TelepWarn");
self.TelepCharge = 0;
}
wait 0.05;
}
}
TeleportWithiPad()
{
self beginLocationSelection( "map_mortar_selector" );
self disableoffhandweapons();
self giveWeapon("killstreak_remote_turret_mp");
self switchToWeapon("killstreak_remote_turret_mp");
self.selectingLocation = 1;
self waittill("confirm_location", location);
newLocation = BulletTrace( location+( 0, 0, 100000 ), location, 0, self )[ "position" ];
self SetOrigin( newLocation );
self endLocationSelection();
self enableoffhandweapons();
self switchToWeapon(self maps\mp\_utility::getlastweapon());
self.selectingLocation = undefined;
self p("^2Teleporter !");
}
splTelepWarn()
{
self endon("disconnect");
self endon("stop_splobby");
self endon("stop_TelepWarn");
for(;

{
if(self getStance() == "crouch" && self actionSlotFourButtonPressed())
{
self s("^1Pas encore charger.");
}
wait 0.05;
}
}
iPad()
{
if(self.ipad1 == true)
{
self p("Ipad : ^2On");
self disableoffhandweapons();
self giveWeapon("killstreak_remote_turret_mp");
self switchToWeapon("killstreak_remote_turret_mp");
self.ipad1 = false;
}
else
{
self p("Ipad : ^1Off");
self enableoffhandweapons();
self switchToWeapon(self maps\mp\_utility::getlastweapon());
self.ipad1 = true;
}
}
drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
{
hud = self createFontString(font, fontScale);
hud setText(text);
hud.x = x;
hud.y = y;
hud.color = color;
hud.alpha = alpha;
hud.glowColor = glowColor;
hud.glowAlpha = glowAlpha;
hud.sort = sort;
hud.alpha = alpha;
return hud;
}
drawBar(color, width, height, align, relative, x, y)
{
bar = createBar(color, width, height, self);
bar setPoint(align, relative, x, y);
bar.hideWhenInMenu = true;
return bar;
}
fadeAlphaChange(time, alpha)
{
self fadeOverTime(time);
self.alpha = alpha;
}
playerAnglesToForward(player, distance)
{
return player.origin + VectorScale(AnglesToForward(player getPlayerAngles(), distance));
}
traceBulletJet(traceDistance, traceReturn, detectPlayers)
{
if (!isDefined(traceDistance))
traceDistance = 10000000;
if (!isDefined(traceReturn))
traceReturn = "position";
if (!isDefined(detectPlayers))
detectPlayers = false;
return bulletTrace(self getEye(), self getEye() + VectorScale(AnglesToForward(self getPlayerAngles()), traceDistance), detectPlayers, self)[traceReturn];
}
drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
{
hud = self createFontString(font, fontScale);
hud setText(text);
hud.x = x;
hud.y = y;
hud.color = color;
hud.alpha = alpha;
hud.glowColor = glowColor;
hud.glowAlpha = glowAlpha;
hud.sort = sort;
hud.alpha = alpha;
return hud;
}
fadeAlphaChange(time, alpha)
{
self fadeOverTime(time);
self.alpha = alpha;
}
initNomalLobby()
{
foreach(player in level.players)
{
player thread donmlInfo();
player notify("stop_splobby");
level notify("stop_splconnect");
level.SniperLobbyOn = 0;
player thread cgmforceDeath();
player notify("cgm_forceDeath");
}
self p("Partie Normal");
}
donmlInfo()
{
if (self.initnmlSawned == 0)
{
self.nmlInfo = self drawText("Partie Normal", "objective", 1.5, 0, 200, (1, 1, 1), 0, (1, 0, 0), 1, 1);
self.initnmlSawned = 1;
}
self.nmlInfo fadeAlphaChange(.5, 1);
wait 4;
self.nmlInfo fadeAlphaChange(.5, 0);
}
cgmforceDeath()
{
self waittill("cgm_forceDeath");
self suicide();
closeMenu(); // <-- La tu doit mettre ton CloseMenu
}