Skip to content

Commit 3e965a2

Browse files
committed
gemidyne#144 - New way of detecting whether players are in air
1 parent d396749 commit 3e965a2

File tree

1 file changed

+11
-31
lines changed

1 file changed

+11
-31
lines changed

src/scripting/Minigames/Minigame22.sp

+11-31
Original file line numberDiff line numberDiff line change
@@ -4,33 +4,22 @@
44
* Stay on the ground!
55
*/
66

7-
bool Minigame22_CanCheckConditions = false;
8-
97
public void Minigame22_EntryPoint()
108
{
119
AddToForward(GlobalForward_OnMinigameSelectedPre, INVALID_HANDLE, Minigame22_OnMinigameSelectedPre);
1210
AddToForward(GlobalForward_OnMinigameSelected, INVALID_HANDLE, Minigame22_OnMinigameSelected);
1311
AddToForward(GlobalForward_OnPlayerTakeDamage, INVALID_HANDLE, Minigame22_OnPlayerTakeDamage);
14-
AddToForward(GlobalForward_OnGameFrame, INVALID_HANDLE, Minigame22_OnGameFrame);
15-
AddToForward(GlobalForward_OnMinigameFinish, INVALID_HANDLE, Minigame22_OnMinigameFinish);
12+
AddToForward(GlobalForward_OnMinigameFinishPre, INVALID_HANDLE, Minigame22_OnMinigameFinishPre);
1613
}
1714

1815
public void Minigame22_OnMinigameSelectedPre()
1916
{
2017
if (MinigameID == 22)
2118
{
2219
IsBlockingDamage = false;
23-
Minigame22_CanCheckConditions = false;
24-
25-
CreateTimer(2.0, Timer_Minigame22_AllowConditions);
2620
}
2721
}
2822

29-
public Action Timer_Minigame22_AllowConditions(Handle timer)
30-
{
31-
Minigame22_CanCheckConditions = true;
32-
}
33-
3423
public void Minigame22_OnMinigameSelected(int client)
3524
{
3625
if (MinigameID != 22)
@@ -88,10 +77,12 @@ public void Minigame22_OnPlayerTakeDamage(int victimId, int attackerId, float da
8877
}
8978
}
9079

91-
public void Minigame22_OnGameFrame()
80+
public void Minigame22_OnMinigameFinishPre()
9281
{
93-
if (IsMinigameActive && MinigameID == 22 && Minigame22_CanCheckConditions)
82+
if (MinigameID == 22)
9483
{
84+
IsBlockingDeathCommands = false;
85+
9586
for (int i = 1; i <= MaxClients; i++)
9687
{
9788
Player player = new Player(i);
@@ -100,27 +91,16 @@ public void Minigame22_OnGameFrame()
10091
{
10192
if (!(GetEntityFlags(i) & FL_ONGROUND))
10293
{
94+
SlapPlayer(i, 5000, false);
10395
player.Status = PlayerStatus_Failed;
104-
player.Kill();
96+
}
97+
else
98+
{
99+
ClientWonMinigame(i);
105100
}
106101
}
107102
}
108-
}
109-
}
110103

111-
public void Minigame22_OnMinigameFinish()
112-
{
113-
if (MinigameID == 22)
114-
{
115-
for (int i = 1; i <= MaxClients; i++)
116-
{
117-
Player player = new Player(i);
118-
119-
if (player.IsValid && player.IsParticipating && player.IsAlive && (GetEntityFlags(i) & FL_ONGROUND))
120-
{
121-
ClientWonMinigame(i);
122-
}
123-
}
104+
IsBlockingDeathCommands = true;
124105
}
125106
}
126-

0 commit comments

Comments
 (0)