コード例 #1
0
ファイル: GameTarget.cs プロジェクト: optimus-code/Q2Sharp
 public override void Use(edict_t ent, edict_t other, edict_t activator)
 {
     GameBase.gi.Sound(ent, Defines.CHAN_VOICE, ent.noise_index, 1, Defines.ATTN_NORM, 0);
     GameBase.level.found_secrets++;
     GameUtil.G_UseTargets(ent, activator);
     GameUtil.G_FreeEdict(ent);
 }
コード例 #2
0
 public static void SP_trigger_always(edict_t ent)
 {
     if (ent.delay < 0.2F)
     {
         ent.delay = 0.2F;
     }
     GameUtil.G_UseTargets(ent, ent);
 }
コード例 #3
0
ファイル: GameTarget.cs プロジェクト: optimus-code/Q2Sharp
            public override Boolean Think(edict_t self)
            {
                if (self.spawnflags == (GameBase.game.serverflags & Defines.SFL_CROSS_TRIGGER_MASK & self.spawnflags))
                {
                    GameUtil.G_UseTargets(self, self);
                    GameUtil.G_FreeEdict(self);
                }

                return(true);
            }
コード例 #4
0
ファイル: GameTarget.cs プロジェクト: optimus-code/Q2Sharp
 public override void Use(edict_t ent, edict_t other, edict_t activator)
 {
     GameBase.gi.Sound(ent, Defines.CHAN_VOICE, ent.noise_index, 1, Defines.ATTN_NORM, 0);
     GameBase.level.found_goals++;
     if (GameBase.level.found_goals == GameBase.level.total_goals)
     {
         GameBase.gi.Configstring(Defines.CS_CDTRACK, "0");
     }
     GameUtil.G_UseTargets(ent, activator);
     GameUtil.G_FreeEdict(ent);
 }
コード例 #5
0
ファイル: GameTarget.cs プロジェクト: optimus-code/Q2Sharp
            public override Boolean Think(edict_t self)
            {
                Single save;

                GameBase.gi.WriteByte(Defines.svc_temp_entity);
                GameBase.gi.WriteByte(Defines.TE_EXPLOSION1);
                GameBase.gi.WritePosition(self.s.origin);
                GameBase.gi.Multicast(self.s.origin, Defines.MULTICAST_PHS);
                GameCombat.T_RadiusDamage(self, self.activator, self.dmg, null, self.dmg + 40, Defines.MOD_EXPLOSIVE);
                save       = self.delay;
                self.delay = 0;
                GameUtil.G_UseTargets(self, self.activator);
                self.delay = save;
                return(true);
            }
コード例 #6
0
 public static void Multi_trigger(edict_t ent)
 {
     if (ent.nextthink != 0)
     {
         return;
     }
     GameUtil.G_UseTargets(ent, ent.activator);
     if (ent.wait > 0)
     {
         ent.think     = multi_wait;
         ent.nextthink = GameBase.level.time + ent.wait;
     }
     else
     {
         ent.touch     = null;
         ent.nextthink = GameBase.level.time + Defines.FRAMETIME;
         ent.think     = GameUtil.G_FreeEdictA;
     }
 }
コード例 #7
0
ファイル: Monster.cs プロジェクト: optimus-code/Q2Sharp
        public static void Monster_death_use(edict_t self)
        {
            self.flags &= ~(Defines.FL_FLY | Defines.FL_SWIM);
            self.monsterinfo.aiflags &= Defines.AI_GOOD_GUY;
            if (self.item != null)
            {
                GameItems.Drop_Item(self, self.item);
                self.item = null;
            }

            if (self.deathtarget != null)
            {
                self.target = self.deathtarget;
            }
            if (self.target == null)
            {
                return;
            }
            GameUtil.G_UseTargets(self, self.enemy);
        }
コード例 #8
0
            public override void Use(edict_t self, edict_t other, edict_t activator)
            {
                int index;

                if (self.item == null)
                {
                    return;
                }
                if (activator.client == null)
                {
                    return;
                }
                index = GameItems.ITEM_INDEX(self.item);
                if (activator.client.pers.inventory[index] == 0)
                {
                    if (GameBase.level.time < self.touch_debounce_time)
                    {
                        return;
                    }
                    self.touch_debounce_time = GameBase.level.time + 5F;
                    GameBase.gi.Centerprintf(activator, "You need the " + self.item.pickup_name);
                    GameBase.gi.Sound(activator, Defines.CHAN_AUTO, GameBase.gi.Soundindex("misc/keytry.wav"), 1, Defines.ATTN_NORM, 0);
                    return;
                }

                GameBase.gi.Sound(activator, Defines.CHAN_AUTO, GameBase.gi.Soundindex("misc/keyuse.wav"), 1, Defines.ATTN_NORM, 0);
                if (GameBase.coop.value != 0)
                {
                    int     player;
                    edict_t ent;
                    if (Lib.Strcmp(self.item.classname, "key_power_cube") == 0)
                    {
                        int cube;
                        for (cube = 0; cube < 8; cube++)
                        {
                            if ((activator.client.pers.power_cubes & (1 << cube)) != 0)
                            {
                                break;
                            }
                        }
                        for (player = 1; player <= GameBase.game.maxclients; player++)
                        {
                            ent = GameBase.g_edicts[player];
                            if (!ent.inuse)
                            {
                                continue;
                            }
                            if (null == ent.client)
                            {
                                continue;
                            }
                            if ((ent.client.pers.power_cubes & (1 << cube)) != 0)
                            {
                                ent.client.pers.inventory[index]--;
                                ent.client.pers.power_cubes &= ~(1 << cube);
                            }
                        }
                    }
                    else
                    {
                        for (player = 1; player <= GameBase.game.maxclients; player++)
                        {
                            ent = GameBase.g_edicts[player];
                            if (!ent.inuse)
                            {
                                continue;
                            }
                            if (ent.client == null)
                            {
                                continue;
                            }
                            ent.client.pers.inventory[index] = 0;
                        }
                    }
                }
                else
                {
                    activator.client.pers.inventory[index]--;
                }

                GameUtil.G_UseTargets(self, activator);
                self.use = null;
            }
コード例 #9
0
 public override void Use(edict_t self, edict_t other, edict_t activator)
 {
     GameUtil.G_UseTargets(self, activator);
 }