Esempio n. 1
0
 static public void Handle_CS_ChatCommand(CS_ChatCommand <Zone> pkt, Zone zone)
 {
     using (Data.InfantryDataContext db = zone._server.getContext())
     {
         Data.DB.helpcall help = new Data.DB.helpcall();
         help.sender = pkt.sender;
         help.zone   = pkt.zone;
         help.arena  = pkt.arena;
         help.reason = pkt.reason;
         help.date   = DateTime.Now;
         db.helpcalls.InsertOnSubmit(help);
         db.SubmitChanges();
     }
 }
Esempio n. 2
0
 static public void Handle_CS_ModCommand(CS_ModCommand <Zone> pkt, Zone zone)
 {
     using (Data.InfantryDataContext db = zone._server.getContext())
     {
         Data.DB.history hist = new Data.DB.history();
         hist.sender    = pkt.sender;
         hist.recipient = pkt.recipient;
         hist.zone      = pkt.zone;
         hist.arena     = pkt.arena;
         hist.command   = pkt.command;
         hist.date      = DateTime.Now;
         db.histories.InsertOnSubmit(hist);
         db.SubmitChanges();
     }
 }
Esempio n. 3
0
        /// <summary>
        /// Indicates that a player has joined the zone server
        /// </summary>
        public bool newPlayer(int id, string alias, Data.DB.player dbplayer)
        {
            if (string.IsNullOrWhiteSpace(alias))
            {
                Log.write(TLog.Error, "Zone.newPlayer(): Called with no alias.");
                return(false);
            }
            if (id == 0)
            {
                Log.write(TLog.Error, "Zone.newPlayer(): ID was 0 for player '{0}.", alias);
            }
            if (dbplayer == null)
            {
                Log.write(TLog.Error, "Zone.getPlayer(): Called with null dbplayer for '{0}'.", alias);
                return(false);
            }

            Player player = new Player();

            player.acctid     = dbplayer.alias1.account1.id;
            player.aliasid    = dbplayer.alias1.id;
            player.IPAddress  = dbplayer.alias1.IPAddress;
            player.dbid       = dbplayer.id;
            player.alias      = alias;
            player.permission = dbplayer.permission;
            player.zone       = this;
            player.arena      = "";
            player.chats      = new List <string>();

            // Add them to the Zone players list
            try
            {
                _players.Add(id, player);
            }
            catch
            {
                Log.write(TLog.Error, "Zone.newPlayer(): Key '{0}' already exists for player '{1}'.", id, alias);
                return(false);
            }

            // And the global list
            if (!_server.newPlayer(player))
            {
                // Back out of the zone list
                _players.Remove(id);

                return(false);
            }

            // Squad shit
            using (Data.InfantryDataContext db = _server.getContext())
            {
                Data.DB.squad pSquad = db.squads.FirstOrDefault(s => s.id == dbplayer.squad);

                //Is he in a squad?
                if (pSquad != null)
                {
                    //Check for any scheduled matches this squad may have
                    IQueryable <Data.DB.squadmatch> matches = db.squadmatches.Where
                                                                  (m => m.squad1 == pSquad.id || m.squad2 == pSquad.id);


                    if (matches.Count() > 0)
                    {
                        foreach (Data.DB.squadmatch match in matches)
                        {
                            Data.DB.squad squad1 = db.squads.FirstOrDefault(s => s.id == match.squad1);
                            Data.DB.squad squad2 = db.squads.FirstOrDefault(s => s.id == match.squad2);
                            _server.sendMessage(this, alias, string.Format("Your squad has a scheduled match at {0} ({1} vs {2})",
                                                                           match.dateBegin.ToString(), squad1.name, squad2.name));
                        }
                    }
                }
            }

            return(true);
        }