public override void Use(edict_t self, edict_t other, edict_t activator) { if (GameBase.level.intermissiontime != 0) { return; } if (0 == GameBase.deathmatch.value && 0 == GameBase.coop.value) { if (GameBase.g_edicts[1].health <= 0) { return; } } if (GameBase.deathmatch.value != 0 && 0 == (( Int32 )GameBase.dmflags.value & Defines.DF_ALLOW_EXIT) && other != GameBase.g_edicts[0]) { GameCombat.T_Damage(other, self, self, Globals.vec3_origin, other.s.origin, Globals.vec3_origin, 10 * other.max_health, 1000, 0, Defines.MOD_EXIT); return; } if (GameBase.deathmatch.value != 0) { if (activator != null && activator.client != null) { GameBase.gi.Bprintf(Defines.PRINT_HIGH, activator.client.pers.netname + " exited the level.\\n"); } } if (self.map.IndexOf('*') > -1) { GameBase.game.serverflags &= ~(Defines.SFL_CROSS_TRIGGER_MASK); } PlayerHud.BeginIntermission(self); }
public static void Score_f(edict_t ent) { ent.client.showinventory = false; ent.client.showhelp = false; if (0 == GameBase.deathmatch.value && 0 == GameBase.coop.value) { return; } if (ent.client.showscores) { ent.client.showscores = false; return; } ent.client.showscores = true; PlayerHud.DeathmatchScoreboard(ent); }
public static void Help_f(edict_t ent) { if (GameBase.deathmatch.value != 0) { Score_f(ent); return; } ent.client.showinventory = false; ent.client.showscores = false; if (ent.client.showhelp && (ent.client.pers.game_helpchanged == GameBase.game.helpchanged)) { ent.client.showhelp = false; return; } ent.client.showhelp = true; ent.client.pers.helpchanged = 0; PlayerHud.HelpComputer(ent); }
public static void EndDMLevel() { edict_t ent; string s, t, f; string seps = " ,\\n\\r"; if (((int)dmflags.value & Defines.DF_SAME_LEVEL) != 0) { PlayerHud.BeginIntermission(CreateTargetChangeLevel(level.mapname)); return; } if (sv_maplist.string_renamed.Length > 0) { s = sv_maplist.string_renamed; f = null; StringTokenizer tk = new StringTokenizer(s, seps); while (tk.RemainingTokens > 0) { tk.MoveNext(); t = tk.Current; if (f == null) { f = t; } if (t.EqualsIgnoreCase(level.mapname)) { if (tk.RemainingTokens == 0) { if (f == null) { PlayerHud.BeginIntermission(CreateTargetChangeLevel(level.mapname)); } else { PlayerHud.BeginIntermission(CreateTargetChangeLevel(f)); } } else { tk.MoveNext(); PlayerHud.BeginIntermission(CreateTargetChangeLevel(tk.Current)); } return; } } } if (level.nextmap.Length > 0) { PlayerHud.BeginIntermission(CreateTargetChangeLevel(level.nextmap)); } else { EdictIterator edit = null; edit = G_Find(edit, findByClass, "target_changelevel"); if (edit == null) { PlayerHud.BeginIntermission(CreateTargetChangeLevel(level.mapname)); return; } ent = edit.o; PlayerHud.BeginIntermission(ent); } }
public static void ClientEndServerFrame(edict_t ent) { float bobtime; int i; current_player = ent; current_client = ent.client; for (i = 0; i < 3; i++) { current_client.ps.pmove.origin[i] = (short)(ent.s.origin[i] * 8); current_client.ps.pmove.velocity[i] = (short)(ent.velocity[i] * 8); } if (GameBase.level.intermissiontime != 0) { current_client.ps.blend[3] = 0; current_client.ps.fov = 90; PlayerHud.G_SetStats(ent); return; } Math3D.AngleVectors(ent.client.v_angle, forward, right, up); P_WorldEffects(); if (ent.client.v_angle[Defines.PITCH] > 180) { ent.s.angles[Defines.PITCH] = (-360 + ent.client.v_angle[Defines.PITCH]) / 3; } else { ent.s.angles[Defines.PITCH] = ent.client.v_angle[Defines.PITCH] / 3; } ent.s.angles[Defines.YAW] = ent.client.v_angle[Defines.YAW]; ent.s.angles[Defines.ROLL] = 0; ent.s.angles[Defines.ROLL] = SV_CalcRoll(ent.s.angles, ent.velocity) * 4; xyspeed = (float)Math.Sqrt(ent.velocity[0] * ent.velocity[0] + ent.velocity[1] * ent.velocity[1]); if (xyspeed < 5) { bobmove = 0; current_client.bobtime = 0; } else if (ent.groundentity != null) { if (xyspeed > 210) { bobmove = 0.25F; } else if (xyspeed > 100) { bobmove = 0.125F; } else { bobmove = 0.0625F; } } bobtime = (current_client.bobtime += bobmove); if ((current_client.ps.pmove.pm_flags & pmove_t.PMF_DUCKED) != 0) { bobtime *= 4; } bobcycle = (int)bobtime; bobfracsin = (float)Math.Abs(Math.Sin(bobtime * Math.PI)); P_FallingDamage(ent); P_DamageFeedback(ent); SV_CalcViewOffset(ent); SV_CalcGunOffset(ent); SV_CalcBlend(ent); if (ent.client.resp.spectator) { PlayerHud.G_SetSpectatorStats(ent); } else { PlayerHud.G_SetStats(ent); } PlayerHud.G_CheckChaseStats(ent); G_SetClientEvent(ent); G_SetClientEffects(ent); G_SetClientSound(ent); G_SetClientFrame(ent); Math3D.VectorCopy(ent.velocity, ent.client.oldvelocity); Math3D.VectorCopy(ent.client.ps.viewangles, ent.client.oldviewangles); Math3D.VectorClear(ent.client.kick_origin); Math3D.VectorClear(ent.client.kick_angles); if (ent.client.showscores && 0 == (GameBase.level.framenum & 31)) { PlayerHud.DeathmatchScoreboardMessage(ent, ent.enemy); GameBase.gi.Unicast(ent, false); } }