parent
8c86e26997
commit
d51e711b7a
|
@ -3,6 +3,7 @@
|
||||||
#include maps\mp\perks\_perks;
|
#include maps\mp\perks\_perks;
|
||||||
#include maps\mp\gametypes\_hud_util;
|
#include maps\mp\gametypes\_hud_util;
|
||||||
#include maps\mp\mods\disableClassMenu;
|
#include maps\mp\mods\disableClassMenu;
|
||||||
|
#include maps\mp\mods\helpingHints;
|
||||||
|
|
||||||
// Rallypoints should be destroyed on leaving your team/getting killed
|
// Rallypoints should be destroyed on leaving your team/getting killed
|
||||||
// Doesn't seem to be setting angle on spawn so that you are facing your rallypoint
|
// Doesn't seem to be setting angle on spawn so that you are facing your rallypoint
|
||||||
|
@ -623,6 +624,7 @@ handleSeeker() {
|
||||||
|
|
||||||
player thread enableUnlimitedReload();
|
player thread enableUnlimitedReload();
|
||||||
player thread enableWeaponDicing("+actionslot 3");
|
player thread enableWeaponDicing("+actionslot 3");
|
||||||
|
player thread giveHelpfulHintsForSeeker();
|
||||||
}
|
}
|
||||||
|
|
||||||
handleHider() {
|
handleHider() {
|
||||||
|
@ -653,6 +655,7 @@ handleHider() {
|
||||||
|
|
||||||
player thread enableThirdPersonSwitch("+actionslot 3", 1);
|
player thread enableThirdPersonSwitch("+actionslot 3", 1);
|
||||||
player thread enableModelChange("+attack");
|
player thread enableModelChange("+attack");
|
||||||
|
player thread giveHelpfulHintsForHider();
|
||||||
player thread revealWhenGameEnds();
|
player thread revealWhenGameEnds();
|
||||||
|
|
||||||
if (!gameFlag("seekers_released"))
|
if (!gameFlag("seekers_released"))
|
||||||
|
@ -898,4 +901,63 @@ revealWhenGameEnds()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Shows gametype-specific hints for the hider in order to teach them how to play.
|
||||||
|
*/
|
||||||
|
giveHelpfulHintsForHider()
|
||||||
|
{
|
||||||
|
player = self;
|
||||||
|
|
||||||
|
player endon("death");
|
||||||
|
player endon("disconnect");
|
||||||
|
level endon("game_ended");
|
||||||
|
|
||||||
|
gameFlagWait("prematch_done");
|
||||||
|
|
||||||
|
player thread clearHintsShownOnDisconnect();
|
||||||
|
|
||||||
|
player notifyOnPlayerCommand("hide_hint_for_disguise", "+attack");
|
||||||
|
player showHintOnce("Disguise yourself in the environment by changing into a prop on the map.\nLook at a prop and use [{+attack}] to do so.");
|
||||||
|
player waittill("hide_hint_for_disguise");
|
||||||
|
|
||||||
|
player notifyOnPlayerCommand("hide_hint_for_anglelock", "+melee");
|
||||||
|
player showHintOnce("Get into position then use [{+melee}] to lock your pose.\nUse [{+melee}] again later to unlock.");
|
||||||
|
player waittill("hide_hint_for_anglelock");
|
||||||
|
|
||||||
|
player notifyOnPlayerCommand("hide_hint_for_thirdperson", "+actionslot 3");
|
||||||
|
player showHintOnce("Toggle between first-person and third-person view using [{+actionslot 3}],\nthis will help you to change into other models.");
|
||||||
|
player waittill("hide_hint_for_thirdperson");
|
||||||
|
|
||||||
|
player hideHint();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Shows gametype-specific hints for the seeker in order to teach them how to play.
|
||||||
|
*/
|
||||||
|
giveHelpfulHintsForSeeker()
|
||||||
|
{
|
||||||
|
player = self;
|
||||||
|
|
||||||
|
player endon("death");
|
||||||
|
player endon("disconnect");
|
||||||
|
level endon("game_ended");
|
||||||
|
|
||||||
|
gameFlagWait("prematch_done");
|
||||||
|
gameFlagWait("seekers_released");
|
||||||
|
|
||||||
|
player thread clearHintsShownOnDisconnect();
|
||||||
|
|
||||||
|
player notifyOnPlayerCommand("hide_hint_for_primaryweapon", "+actionslot 3");
|
||||||
|
player showHintOnce("You can use [{+actionslot 3}] to get a new primary weapon.");
|
||||||
|
player waittill("hide_hint_for_primaryweapon");
|
||||||
|
|
||||||
|
player notifyOnPlayerCommand("hide_hint_for_reload", "+reload");
|
||||||
|
player showHintOnce("No need to care about ammo, you can reload endlessly as needed.");
|
||||||
|
player waittill("hide_hint_for_reload");
|
||||||
|
|
||||||
|
player notifyOnPlayerCommand("hide_hint_for_semtex", "+frag");
|
||||||
|
player showHintOnce("You have one Semtex on [{+frag}], don't waste it!");
|
||||||
|
player waittill("hide_hint_for_semtex");
|
||||||
|
|
||||||
|
player hideHint();
|
||||||
}
|
}
|
|
@ -0,0 +1,170 @@
|
||||||
|
#include common_scripts\utility;
|
||||||
|
#include maps\mp\_utility;
|
||||||
|
#include maps\mp\gametypes\_hud_util;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Clears the memory of shown hints for a player once he disconnects.
|
||||||
|
*/
|
||||||
|
clearHintsShownOnDisconnect()
|
||||||
|
{
|
||||||
|
logString("clearHintsShownOnDisconnect called");
|
||||||
|
|
||||||
|
if (IsDefined(self.clearHintsShownOnDisconnectThreadRunning) && self.clearHintsShownOnDisconnectThreadRunning)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
self.clearHintsShownOnDisconnectThreadRunning = true;
|
||||||
|
|
||||||
|
id = self getEntityNumber();
|
||||||
|
|
||||||
|
self waittill("disconnect");
|
||||||
|
self clearHintsShownOnDisconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Clears the memory of shown hints for the player.
|
||||||
|
*/
|
||||||
|
clearHintsShown()
|
||||||
|
{
|
||||||
|
logString("clearHintsShown called");
|
||||||
|
|
||||||
|
id = self getEntityNumber();
|
||||||
|
if (!IsDefined(level.shownPlayerHints))
|
||||||
|
{
|
||||||
|
level.shownPlayerHints = [];
|
||||||
|
}
|
||||||
|
if (IsDefined(level.shownPlayerHints[id]))
|
||||||
|
{
|
||||||
|
level.shownPlayerHints[id] = undefined;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Displays a hint for the player (self) if it hasn't been shown before for him.
|
||||||
|
*/
|
||||||
|
showHintOnce(text)
|
||||||
|
{
|
||||||
|
logString("showHintOnce called");
|
||||||
|
|
||||||
|
id = self getEntityNumber();
|
||||||
|
|
||||||
|
if (!IsDefined(level.shownPlayerHints))
|
||||||
|
{
|
||||||
|
level.shownPlayerHints = [];
|
||||||
|
}
|
||||||
|
if (!IsDefined(level.shownPlayerHints[id]))
|
||||||
|
{
|
||||||
|
level.shownPlayerHints[id] = [];
|
||||||
|
}
|
||||||
|
if (!IsDefined(level.shownPlayerHints[id][text]) || !level.shownPlayerHints[id][text])
|
||||||
|
{
|
||||||
|
level.shownPlayerHints[id][text] = true;
|
||||||
|
self showHint(text);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
self hideHint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Displays a small hint for the player (self) at the bottom of the screen.
|
||||||
|
*/
|
||||||
|
showHint(text)
|
||||||
|
{
|
||||||
|
logString("showHint called");
|
||||||
|
|
||||||
|
player = self;
|
||||||
|
|
||||||
|
player notify("hint_about_to_be_changed");
|
||||||
|
|
||||||
|
if (!IsDefined(player.hudHintElement))
|
||||||
|
{
|
||||||
|
player.hudHintElement = createFontString("default", 1.5, player); // "default"
|
||||||
|
player.hudHintElement setPoint("BOTTOMRIGHT", "BOTTOMRIGHT", -96, -72);
|
||||||
|
player.hudHintElement.alpha = 0;
|
||||||
|
player.hudHintElement.hideWhenInMenu = true;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
player fadeHint(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
player.hudHintElement setText(text);
|
||||||
|
player fadeHint(1);
|
||||||
|
player thread hideHintInSeconds(15);
|
||||||
|
}
|
||||||
|
|
||||||
|
hideHintInSeconds(time)
|
||||||
|
{
|
||||||
|
logString("hideHintInSeconds called");
|
||||||
|
|
||||||
|
player = self;
|
||||||
|
|
||||||
|
player endon("hint_about_to_be_changed");
|
||||||
|
|
||||||
|
wait time;
|
||||||
|
player hideHint();
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Hides the hint message for the player (self).
|
||||||
|
*/
|
||||||
|
hideHint()
|
||||||
|
{
|
||||||
|
logString("hideHint called");
|
||||||
|
|
||||||
|
player = self;
|
||||||
|
|
||||||
|
if (!IsDefined(player.hudHintElement))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
player fadeHint(0);
|
||||||
|
player.hudHintElement destroyElem();
|
||||||
|
player.hudHintElement = undefined;
|
||||||
|
}
|
||||||
|
|
||||||
|
fadeHint(alpha, length)
|
||||||
|
{
|
||||||
|
logString("fadeHint called");
|
||||||
|
|
||||||
|
player = self;
|
||||||
|
|
||||||
|
if (!IsDefined(player.hudHintElement))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (length == undefined)
|
||||||
|
{
|
||||||
|
length = 0.33;
|
||||||
|
}
|
||||||
|
|
||||||
|
interval = 0.05;
|
||||||
|
|
||||||
|
if (player.hudHintElement.alpha < alpha)
|
||||||
|
{
|
||||||
|
// fade in
|
||||||
|
step = (alpha - player.hudHintElement.alpha) / (length / interval);
|
||||||
|
for (a = player.hudHintElement.alpha; a < alpha; a += step)
|
||||||
|
{
|
||||||
|
player.hudHintElement.alpha = a;
|
||||||
|
wait interval;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// fade out
|
||||||
|
step = (player.hudHintElement.alpha - alpha) / (length / interval);
|
||||||
|
for (a = player.hudHintElement.alpha; a > alpha; a -= step)
|
||||||
|
{
|
||||||
|
player.hudHintElement.alpha = a;
|
||||||
|
wait interval;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
player.hudHintElement.alpha = alpha;
|
||||||
|
}
|
Loading…
Reference in New Issue