Пример #1
0
    private void SCPlayerInfo(IMessage data)
    {
        SCPlayerInfo protocol      = data as SCPlayerInfo;
        PlayerStruct player_struct = protocol.PlayerStruct;

        Debug.Log(player_struct);
    }
Пример #2
0
    public PlayerStruct get_enemy_data(int id)
    {
        //PlayerStruct enemy = new PlayerStruct ();
        Enemy enemy = enemy_data [id];

        PlayerStruct data = new PlayerStruct ();
        data.hp = enemy.hp;
        data.max_hp = enemy.max_hp;
        data.mp = enemy.mp;
        data.max_mp = enemy.max_mp;
        data.add_act = enemy.add_act;
        data.max_act = enemy.max_act;
        data.atk = enemy.atk;
        data.def = enemy.def;
        data.cure = enemy.cure;
        data.matk = enemy.matk;
        data.mdef = enemy.mdef;
        data.head_pic = enemy.head_pic;

        data.skill_group = new int[enemy.skill_group.Length];
        for (int i=0; i<enemy.skill_group.Length; i++) {
            data.skill_group[i] = enemy.skill_group[i];
        }

        return data;
    }
Пример #3
0
    public string MakeRoom()
    {
        string response;

        if (this.IsComplete())
        {
            TCPSocketConfiguration.BuildDefaultConfiguration(out TCPSocket tcpSocket);
            Command makeRoom = new Command("make_room");
            makeRoom.AddArgument("creator_email", this.Host.Email);
            makeRoom.AddArgument("speed", this.Speed.ToString());
            makeRoom.AddArgument("players", this.NumberPlayers.ToString());
            makeRoom.AddArgument("game_mode", this.GameMode);
            tcpSocket.AddCommand(makeRoom);
            tcpSocket.SendCommand();
            response = tcpSocket.GetResponse(true, 1000);
            if (!response.Equals("ERROR. TIMEOUT"))
            {
                this.IdRoom = response;
                PlayerStruct host = new PlayerStruct();
                host.Email = Host.Email;
                this.Players.Add(host);
            }

            tcpSocket.Close();
        }
        else
        {
            response    = "ERROR";
            this.IdRoom = response;
        }
        return(response);
    }
Пример #4
0
    public static PlayerStruct LoadPlayer(int player_id)
    {
        string path = PathTool.GetPlayerSavePath(player_id);

        if (PathTool.IsExistFile(path))
        {
            //FileStream fs = File.Open(path, FileMode.Open);
            //BinaryFormatter bf = new BinaryFormatter();
            //PlayerStruct player_struct = (PlayerStruct)bf.Deserialize(fs);
            //file.Close();


            //FileStream fs = File.Open(path, FileMode.Open);
            //StreamReader sr = new StreamReader(fs);
            //string json = sr.ReadToEnd();
            //sr.Close();
            //fs.Close();
            //ModuleLog.Debug("player_id:" + player_id + " LoadPlayer JSON: " + json);

            //PlayerStruct player_struct = LoadFromJSON<PlayerStruct>(json);


            FileStream   file          = File.Open(path, FileMode.Open);
            PlayerStruct player_struct = PlayerStruct.Parser.ParseFrom(file);
            file.Close();
            Log.Debug("Load From:" + path);

            return(player_struct);
        }
        else
        {
            return(null);
        }
    }
Пример #5
0
    public bool GetPlayersInRoom()
    {
        bool   done     = true;
        string response = GetUsersInRoom();

        if (response.Equals("ERROR") || response.Equals("ROOM NOT FOUND") ||
            response.Equals("ERROR. TIMEOUT"))
        {
            done = false;
        }
        else
        {
            Dictionary <string, Dictionary <string, string> > playerList =
                SimpleJson.DeserializeObject <Dictionary <string,
                                                          Dictionary <string, string> > >(response);
            Players = new List <PlayerStruct>();
            for (int i = 0; i < playerList.Count; i++)
            {
                string       key    = i.ToString();
                PlayerStruct player = new PlayerStruct();
                player.Email    = playerList[key]["email"];
                player.NickName = playerList[key]["nickname"];
                Players.Add(player);
            }
        }
        return(done);
    }
Пример #6
0
    public static void SavePlayer(int player_id, PlayerStruct player_struct)
    {
        //FileStream fs = File.Create(PathTool.GetPlayerSavePath(player_id));
        //BinaryFormatter bf = new BinaryFormatter();
        //bf.Serialize(fs, player_struct);
        //file.Close();


        //string json = SaveAsJSON(player_struct);
        //LogTool.Tip("player_id:" + player_id + " SavePlayer JSON: " + json);

        //FileStream fs = File.Create(PathTool.GetPlayerSavePath(player_id));
        //byte[] bytes = System.Text.Encoding.UTF8.GetBytes(json);
        //fs.Write(bytes, 0, bytes.Length);
        //fs.Close();

        LogTool.Tip(PathTool.GetPlayerSavePath(player_id));
        Common.Protobuf.PlayerStruct mPlayerStruct = new Common.Protobuf.PlayerStruct();

        mPlayerStruct.ItemData.Grid = player_struct.item_data.grid;
        foreach (KeyValuePair <string, int> pair in player_struct.item_data.item_list)
        {
            mPlayerStruct.ItemData.ItemList[pair.Key] = pair.Value;
        }
        FileStream file = File.Create(PathTool.GetPlayerSavePath(player_id));

        mPlayerStruct.WriteTo(file);
    }
Пример #7
0
 public void Init(PlayerStruct player_struct)
 {
     this.player_data = player_struct.player_data ?? this.player_data;
     foreach (KeyValuePair <LogicIdx, LogicBase> pair in logic_list)
     {
         pair.Value.Init(player_struct);
     }
 }
Пример #8
0
    public override void Init(PlayerStruct player_struct)
    {
        this.item_data = player_struct.ItemData ?? this.item_data;

        foreach (KeyValuePair <long, ItemInfo> pair in this.item_data.ItemList)
        {
            this.item_id_to_uid.Set(pair.Value.ItemId, pair.Value.Bind, pair.Key);
        }
    }
Пример #9
0
	public BuffEffect get_effect(PlayerStruct info){
		BuffEffect effect = new BuffEffect();
		effect.value[BuffEnum.ATK] = info.atk * effects[BuffEnum.ATK] / 100;
		effect.value[BuffEnum.DEF] = info.def * effects[BuffEnum.DEF] / 100;
		effect.value[BuffEnum.MATK] = info.matk * effects[BuffEnum.MATK] / 100;
		effect.value[BuffEnum.MDEF] = info.mdef * effects[BuffEnum.MDEF] / 100;
		
		return effect;
	}
Пример #10
0
 public void Init(PlayerStruct player_struct)
 {
     this.player_data = player_struct.PlayerData ?? this.player_data;
     this.ModuleIteration(delegate(ModuleIdx idx, ModuleBase module)
     {
         module.Init(player_struct);
         Log.Debug("Module Init : " + module.ToString());
     });
 }
Пример #11
0
    IEnumerator WaitForPlayerAssign()
    {
        // wait until game controller has acquired all player information
        // claim players[] entries to control gHooks
        foreach (PlayerStruct potentialPlayer in GameController.players)
        {
            if ((potentialPlayer != null) && (potentialPlayer.team == avatar.team) && (potentialPlayer.playerIndex == playerIndex) && (potentialPlayer.controller == null))
            {
                potentialPlayer.controller = this;
                player = potentialPlayer;
            }
        }
        if (player == null)
        {
            yield break;
        }
        if (avatar == null)
        {
            Debug.LogError("avatar is null");
        }
        if (GameController.numPlayersSetup <= ((avatar.team * 2) + playerIndex))
        {
            Debug.LogWarning("Insufficient number of registered players for me to acquire a device");
            yield break;
        }

        if (gHook == null)
        {
            Debug.LogWarning("gHook is null");
        }
        else if (GameController.players[playerIndex] == null)
        {
            Debug.LogWarning("player index is null");
        }
        // player = GameController.players[(avatar.team * 2) + playerIndex];
        while (!gHook.allInstantiated)
        {
            yield return(null);
        }
        if (gHook == null)
        {
            Debug.LogError("gHook is null");
        }
        Debug.Log("player index: " + playerIndex);
        Debug.Log("player color: " + player.color);
        gHook.SetPlayerColor(playerIndex + 1, player.color);
        if (player != null)
        {
            Debug.Log("Player acquired");
        }
        else
        {
            Debug.LogWarning("I do not have a player");
        }
    }
Пример #12
0
    private PlayerStruct GetPlayerStruct()
    {
        PlayerStruct player_struct = new PlayerStruct();

        player_struct.PlayerData = this.player_data;
        this.ModuleIteration(delegate(ModuleIdx idx, ModuleBase module)
        {
            module.Save(player_struct);
        });
        return(player_struct);
    }
Пример #13
0
    public PlayerStruct get_game_player(int cid)
    {
        Character character = character_data [cid];
        PlayerStruct player = new PlayerStruct ();
        player.id = cid;

        // character
        Ability character_ability = get_base_ability (character.ability_id, character.lv);
        player.ch_name = character.character_name;
        player.head_pic = character.head_pic;
        player.hp = character.hp;
        // Debug.Log ("len:" + character.add_ability.Length + "idx:"+EquipGroup.HP);
        player.max_hp = character_ability.max_hp + character.add_ability[EquipGroup.HP];
        player.max_mp = character_ability.max_mp + character.add_ability[EquipGroup.MP];
        player.atk = character_ability.atk + character.add_ability[EquipGroup.ATK];
        player.def = character_ability.def + character.add_ability[EquipGroup.DEF];
        player.matk = character_ability.matk + character.add_ability[EquipGroup.MATK];
        player.mdef = character_ability.mdef + character.add_ability[EquipGroup.MDEF];
        player.mp2 = character.mp2;
        player.add_act = character.spd;
        player.max_act = 5;

        var skills = new List<int>();
        skills.Add(character.self_skill);
        for (ItemType i=ItemType.WEAPON; i < ItemType.EQUIP_NUM; i++) {
            //EquipAbility equip = null;

            EquipAbility equip = dataCenter.get_character_equip(character.id, i );
            if( equip != null){
                player.max_hp += equip.hp;
                player.max_mp += equip.mp;
                player.mp2 += equip.mp2;
                player.atk += equip.atk;
                player.def += equip.def;
                player.matk += equip.matk;
                player.mdef += equip.mdef;
                player.add_act += equip.add_act;
                player.max_act += equip.max_act;
                for(int j=0 ; j<equip.skill_id.Length ; j++){
                    skills.Add(equip.skill_id[j]);
                }
            }
        }

        // mp每次戰鬥時都是全滿的
        player.mp = player.max_mp;

        player.skill_group = new int[skills.Count];
        for(int idx = 0 ; idx < skills.Count ; idx++){
            player.skill_group[idx] = skills[idx];
        }

        return player;
    }
Пример #14
0
    public void Save()
    {
        PlayerStruct player_struct = new PlayerStruct();

        player_struct.player_data = this.player_data;
        foreach (KeyValuePair <LogicIdx, LogicBase> pair in logic_list)
        {
            pair.Value.Save(player_struct);
        }

        DataTool.SavePlayer(this.GetId(), player_struct);
    }
Пример #15
0
        public static PlayerStruct GetPlayer(string pid)
        {
            for (int i = 0; i < PlayerList.Count; i++)
            {
                PlayerStruct p = (PlayerStruct)PlayerList[i];

                if (p.pid == pid && p.ZoneName == Zone.ZoneName)
                {
                    return(p);
                }
            }
            return(null);
        }
Пример #16
0
    public PlayerStruct FindPlayerInRoom(string email)
    {
        PlayerStruct player = new PlayerStruct();

        for (int i = 0; i < Players.Count; i++)
        {
            if (Players[i].Email.Equals(email))
            {
                player = Players[i];
            }
        }
        return(player);
    }
    bool ChoseTeam(PlayerStruct player, int teamCheck)
    {
        Debug.Assert(teamCheck == 0 || teamCheck == 1);
        bool wasChosen = (teamCheck == 1) ? player.device.DPadDown.WasPressed : player.device.DPadUp.WasPressed;

        if (teamCheck == 1)
        {
            return((player.device.LeftStick.Value.y <= -stickBuffer) || (player.device.DPadDown.WasPressed));
        }
        else
        {
            return((player.device.LeftStick.Value.y >= stickBuffer) || (player.device.DPadUp.WasPressed));
        }
    }
Пример #18
0
 private void ResetManager()
 {
     level                  = 1;
     currentPlayer          = new PlayerStruct();
     currentNumberOfEnemies = 0;
     totalEnemiesSpawned    = 0;
     totalEnemiesKilled     = 0;
     totalAttacks           = 0;
     attacksHit             = 0;
     totalJumps             = 0;
     hitsTaken              = 0;
     hitsBlocked            = 0;
     endMoney               = 0;
 }
Пример #19
0
    void Start()
    {
        playerInfo = new PlayerStruct();
        DefSettingIO.getInstance.GetData("UserSpeed", out playerInfo.speed);

        int        powerLevel = PlayerPrefs.GetInt("PowerLevel", 1);
        StatStruct tempData;

        StatIO.getInstance.GetStatData(powerLevel, out tempData);

        playerInfo.power = tempData.power;
        playerInfo.hp    = playerInfo.maxHP = PlayerPrefs.GetInt("HP", 100);

        //playerInfo.hp = PlayerPrefs.GetInt("HP", 100);
    }
Пример #20
0
        public static void AddPlayer(string pname, string pid, string squad)
        {
            PlayerStruct p = new PlayerStruct();

            p.pid       = pid;
            p.name      = pname;
            p.LoginTime = DateTime.Now;
            p.ZoneName  = Zone.ZoneName;
            p.ZoneSW    = Zone.Software;
            p.tcpZone   = (TcpClient)Listen.htRcon[Zone.ZoneName];
            p.Squad     = squad;

            PlayerList.Add(p);
            Zone.PidToName.Add(pid, pname);
        }
Пример #21
0
    public void SendPlayerList(List <int> player_id_list, int connect_id_in_route)
    {
        SCPlayerList message = new SCPlayerList();

        foreach (int player_id in player_id_list)
        {
            PlayerStruct player_struct = DataTool.LoadPlayer(player_id);
            PlayerInfo   player_info   = new PlayerInfo();
            player_info.PlayerId   = player_struct.PlayerData.Id;
            player_info.PlayerName = player_struct.PlayerData.Name;
            player_info.MapName    = player_struct.PlayerData.MapName;
            message.PlayerList.Add(player_info);
        }
        Server.GetInstance().GetSocket().SendToServer(message, connect_id_in_route);
    }
Пример #22
0
        /// <summary>
        /// Check to see if this player exists
        /// </summary>
        /// <param name="pname"></param>
        /// <returns>Bool: true or false</returns>
        public static bool Exists(string name)
        {
            // check current player list
            for (int i = 0; i < PlayerList.Count; i++)
            {
                PlayerStruct p = (PlayerStruct)PlayerList[i];
                if (p.name == name)
                {
                    return(true);
                }
            }

            // check database
            /* Begin Database Connection */
            DataTable dt = new DataTable();

            SQLiteConnection SConnection = new SQLiteConnection();

            SConnection.ConnectionString = SQLite.ConnectionString;
            SConnection.Open();

            SQLiteCommand cmd = new SQLiteCommand(SConnection);

            cmd.CommandText = @"SELECT * FROM 'players' WHERE name = @pname";
            SQLiteParameter pname = new SQLiteParameter("@pname");

            cmd.Parameters.Add(pname);
            pname.Value = name;

            SQLiteDataReader Reader = cmd.ExecuteReader();

            dt.Load(Reader);
            Reader.Close();

            SConnection.Close();
            SConnection.Dispose();
            /* End Database Connection */

            if (dt.Rows.Count > 0)
            {
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #23
0
    private void CSLoadPlayer(object data, int connect_id)
    {
        CSLoadPlayer protocol  = data as CSLoadPlayer;
        string       uid       = protocol.Uid;
        int          player_id = protocol.PlayerId;

        PlayerList player_list = this.common_data.UidToPlayerlist[uid];

        if (player_list != null && player_list.IdList.Contains(player_id))
        {
            Player       player        = new Player(player_id);
            PlayerStruct player_struct = DataTool.LoadPlayer(player_id);
            player.Init(player_struct ?? new PlayerStruct());

            ServerSocket.Getinstance().RecordSocket(connect_id, player_id);
            PlayerManager.Getinstance().AddPlayer(player);
        }
    }
Пример #24
0
        public static void SetPlayerChat(string pid, string chats)
        {
            for (int i = 0; i < PlayerList.Count; i++)
            {
                PlayerStruct p = (PlayerStruct)PlayerList[i];

                if (p.pid == pid && p.ZoneName == Zone.ZoneName)
                {
                    chats = chats.Replace(", ", ",");
                    string[] a_chats = chats.Split(',');

                    if (a_chats.Length <= SiusConf.GetSetting.Integer("chatlimit"))
                    {
                        p.Chat = a_chats;
                    }
                    return;
                }
            }
        }
Пример #25
0
    public void StartScene()
    {
        if (GameManager.Instance != null)
        {
            if (GameManager.Instance.GetCurrentLevel() > 1)
            {
                PlayerStruct tmpPlayer = GameManager.Instance.LoadPlayer();

                myPlayer = tmpPlayer;

                //myPlayer.currentArmor = tmpPlayer.currentArmor;
                //myPlayer.currentWeapon = tmpPlayer.currentWeapon;
                //myPlayer.currentHealth = tmpPlayer.currentHealth;
                //myPlayer.currentMoney = tmpPlayer.currentMoney;
                //myPlayer.currentPotion = tmpPlayer.currentPotion;

                LoadPlayerStats();
            }
        }
    }
Пример #26
0
    public void SaveGameToJsonFile()
    {
        GameSave gameSave = new GameSave();
        // get player data and set to serializable structs
        PlayerStruct playerStruct = PlayerManager.instance.player.ToPlayerStruct();

        gameSave.SetPlayer(playerStruct);
        // get block data and set to serializable structs
        foreach (Block b in BlockManager.instance.GetBlocksAsList())
        {
            BlockStruct blockStruct = b.ToBlockStruct();
            gameSave.AddBlock(blockStruct);
        }
        // commit the save data
        string json = JsonUtility.ToJson(gameSave);

        // print("save game to file...");
        // print("json to save: " + json);
        // print("path to save: " + GetSavePath());
        File.WriteAllText(GetSavePath(), json, Encoding.UTF8);
    }
Пример #27
0
    private void CSCreatePlayer(object data, int connect_id)
    {
        CSCreatePlayer protocol = data as CSCreatePlayer;
        string         uid      = protocol.Uid;
        string         name     = protocol.Name;

        int        player_id   = ++this.common_data.MaxPlayerId;
        PlayerList player_list = this.common_data.UidToPlayerlist[uid] ?? new PlayerList();

        this.common_data.UidToPlayerlist[uid] = player_list;
        player_list.IdList.Add(player_id);

        Player       player        = new Player(player_id);
        PlayerStruct player_struct = new PlayerStruct();

        player_struct.player_data.name = name;
        player.Init(player_struct);

        ServerSocket.Getinstance().RecordSocket(connect_id, player_id);
        PlayerManager.Getinstance().AddPlayer(player);
    }
Пример #28
0
        public static string GetChannelList(string channel)
        {
            string users = "";

            for (int i = 0; i < PlayerList.Count; i++)
            {
                PlayerStruct p = (PlayerStruct)PlayerList[i];

                if (SiusUtil.StringInArray(channel, p.Chat))
                {
                    if (string.IsNullOrEmpty(users))
                    {
                        users = p.name;
                    }
                    else
                    {
                        users = users + "," + p.name;
                    }
                }
            }
            return(users);
        }
Пример #29
0
    public static void SavePlayer(int player_id, PlayerStruct player_struct)
    {
        //FileStream fs = File.Create(PathTool.GetPlayerSavePath(player_id));
        //BinaryFormatter bf = new BinaryFormatter();
        //bf.Serialize(fs, player_struct);
        //file.Close();


        //string json = SaveAsJSON(player_struct);
        //ModuleLog.Debug("player_id:" + player_id + " SavePlayer JSON: " + json);

        //FileStream fs = File.Create(PathTool.GetPlayerSavePath(player_id));
        //byte[] bytes = System.Text.Encoding.UTF8.GetBytes(json);
        //fs.Write(bytes, 0, bytes.Length);
        //fs.Close();

        string     path = PathTool.GetPlayerSavePath(player_id);
        FileStream file = File.Create(path);

        player_struct.WriteTo(file);
        file.Close();
        Log.Debug("Save To:" + path);
    }
Пример #30
0
        /// <summary>
        /// Remove the player from both the zone and global player lists.
        /// </summary>
        /// <param name="pid"></param>
        public static void RemovePlayer(string pid)
        {
            for (int i = 0; i < PlayerList.Count; i++)
            {
                PlayerStruct p = (PlayerStruct)PlayerList[i];
                if (p.pid == pid && p.ZoneName == Zone.ZoneName)
                {
                    Zone.PidToName.Remove(pid);
                    PlayerList.Remove(p);

                    if (Zone.PidToName.Count == 0)
                    {
                        Zone.PidToName.Clear();
                    }
                    if (PlayerList.Count == 0)
                    {
                        PlayerList.Clear();
                    }
                    return;
                }
            }
            Zone.PidToName.Remove(pid);
        }
Пример #31
0
    public static PlayerStruct LoadPlayer(int player_id)
    {
        string save_path = PathTool.GetPlayerSavePath(player_id);

        if (PathTool.IsExistFile(save_path))
        {
            //FileStream fs = File.Open(save_path, FileMode.Open);
            //BinaryFormatter bf = new BinaryFormatter();
            //PlayerStruct player_struct = (PlayerStruct)bf.Deserialize(fs);
            //file.Close();


            //FileStream fs = File.Open(save_path, FileMode.Open);
            //StreamReader sr = new StreamReader(fs);
            //string json = sr.ReadToEnd();
            //LogTool.Tip("player_id:" + player_id + " LoadPlayer JSON: " + json);

            //PlayerStruct player_struct = LoadFromJSON<PlayerStruct>(json);


            FileStream file = File.Open(save_path, FileMode.Open);
            Common.Protobuf.PlayerStruct mPlayerStruct = Common.Protobuf.PlayerStruct.Parser.ParseFrom(file);
            PlayerStruct player_struct = new PlayerStruct();
            player_struct.item_data.grid = mPlayerStruct.ItemData.Grid;
            foreach (KeyValuePair <string, int> pair in mPlayerStruct.ItemData.ItemList)
            {
                player_struct.item_data.item_list[pair.Key] = pair.Value;
            }

            return(player_struct);
        }
        else
        {
            return(null);
        }
    }
Пример #32
0
        private PlayerStruct _tpo; // temporal player struct object;
        public void Update()
        {
            if (!Instance.gameWorld.gameWorldLoaded)
            {
                return;
            }
            if (Instance.gameWorld.PlayersList.Count <= 0)
            {
                return;
            }
            // we gonna use enumerators cause they leave less trash behind
            //var e = Instance.gameWorld.PlayersList.GetEnumerator();
            _TplayerList.Clear();

            // maybe this will speedup after i will make a proper data collection
            Parallel.For(0, Instance.gameWorld.PlayersList.Count, Instance.maxThreadOptions, i =>
            {
                tpo  = Instance.gameWorld.PlayersList[i];
                _tpo = new PlayerStruct(tpo);
                _TplayerList.Add(_tpo);
            });

            playerList = _TplayerList;
        }
Пример #33
0
 public override void Save(PlayerStruct player_struct)
 {
     player_struct.item_data = item_data;
 }