Exemple #1
0
    public float GetTraceRange(int mid)
    {
        bool  flag = this.dMon.ContainsKey(mid);
        float result;

        if (flag)
        {
            SXML  expr_1D = this.dMon[mid];
            float?arg_59_0;
            if (expr_1D == null)
            {
                arg_59_0 = null;
            }
            else
            {
                SXML expr_3B = expr_1D.GetNode("ai", "");
                arg_59_0 = ((expr_3B != null) ? new float?(expr_3B.getFloat("tracerang")) : null);
            }
            result = (arg_59_0 ?? 0f) / 53.333f;
        }
        else
        {
            result = 0f;
        }
        return(result);
    }
Exemple #2
0
        private void OnPetStageChange()
        {
            Transform transform = SelfRole._inst.m_curModel.FindChild("birdstop");

            for (int i = 0; i < transform.childCount; i++)
            {
                UnityEngine.Object.Destroy(transform.GetChild(i));
            }
            A3_PetModel instance = ModelBase <A3_PetModel> .getInstance();

            SXML       node       = instance.PetXML.GetNode("pet.stage", "stage==" + instance.Stage.ToString());
            string     @string    = node.getString("avatar");
            GameObject gameObject = Resources.Load <GameObject>("profession/" + @string);
            GameObject x          = Resources.Load <GameObject>("profession/birdpath");
            bool       flag       = this._birdPrefab == null || x == null;

            if (!flag)
            {
                GameObject gameObject2 = UnityEngine.Object.Instantiate(this._birdPrefab, transform.position, Quaternion.identity) as GameObject;
                GameObject gameObject3 = UnityEngine.Object.Instantiate(this._pathPrefab, transform.position, Quaternion.identity) as GameObject;
                bool       flag2       = gameObject2 == null || gameObject3 == null;
                if (!flag2)
                {
                    gameObject3.transform.parent = transform;
                    PetBird petBird = gameObject2.AddComponent <PetBird>();
                    petBird.Path = gameObject3;
                }
            }
        }
    public override void PlaySkill(int id)
    {
        debug.Log("PlaySkill:   " + id);
        //flytxt.instance.fly(id.ToString ());

        MS0000_Default_Event mde = m_curModel.gameObject.GetComponent <MS0000_Default_Event>();

        mde.effect = null;
        if (id != 1)
        {
            if (ismapEffect)
            {
                mde.vec     = effectVec;
                ismapEffect = false;
            }
            // mde.onSFX_EFF(id.ToString());
            mde.effect = id.ToString();
        }
        else
        {
            selfFx(id);
        }


        int play_skill;

        if (id == 1)
        {
            play_skill = 1;
        }
        else
        {
            SXML sxml = XMLMgr.instance.GetSXML("skill.skill", "id==" + id);
            if (sxml != null)
            {
                play_skill = sxml.getInt("action_tp");
                flyskill(sxml.getString("name"));
            }
            else
            {
                play_skill = 1;
            }
        }
        m_fAttackCount = 0.5f;
        if (play_skill == 1)
        {
            OtherSkillShow();
            EnterAttackState();
        }
        else
        {
            m_fSkillShowTime = 5.0f;
            m_curAni.SetInteger(EnumAni.ANI_I_SKILL, play_skill);
            m_curAni.SetBool(EnumAni.ANI_ATTACK, false);
        }

        //selfFx(play_skill);
    }
Exemple #4
0
    public override void PlaySkill(int id)
    {
        Debug.Log("PlaySkill:   " + id);
        MS0000_Default_Event component = this.m_curModel.gameObject.GetComponent <MS0000_Default_Event>();

        component.effect = null;
        bool flag = id != 1;

        if (flag)
        {
            bool flag2 = this.ismapEffect;
            if (flag2)
            {
                component.vec    = this.effectVec;
                this.ismapEffect = false;
            }
            component.effect = id.ToString();
        }
        else
        {
            this.selfFx(id);
        }
        bool flag3 = id == 1;
        int  num;

        if (flag3)
        {
            num = 1;
        }
        else
        {
            SXML sXML  = XMLMgr.instance.GetSXML("skill.skill", "id==" + id);
            bool flag4 = sXML != null;
            if (flag4)
            {
                num = sXML.getInt("action_tp");
            }
            else
            {
                num = 1;
            }
        }
        this.m_fAttackCount = 0.5f;
        bool flag5 = num == 1;

        if (flag5)
        {
            base.OtherSkillShow();
            this.EnterAttackState();
        }
        else
        {
            this.m_fSkillShowTime = 5f;
            this.m_curAni.SetInteger(EnumAni.ANI_I_SKILL, num);
            this.m_curAni.SetBool(EnumAni.ANI_ATTACK, false);
        }
    }
 public override void FrameMove(float delta_time)
 {
     base.FrameMove(delta_time);
     if (!show)
     {
         SXML xml = XMLMgr.instance.GetSXML("monsters.monsters", "id==" + dartid);
         ani.speed = xml.GetNodeList("att")[0].getFloat("speed_run");
         show      = true;
     }
 }
    //召唤兽普通攻击特效
    void selfFx(int id)
    {
        MS0000_Default_Event mde = m_curModel.gameObject.GetComponent <MS0000_Default_Event>();
        SXML sxml = XMLMgr.instance.GetSXML("monsters.monsters", "id==" + summonid);

        if (sxml != null && sxml.getString("skillid_1") != "")
        {
            // mde.onSFX_EFF(sxml.getString("skillid_"+id));
            mde.effect = sxml.getString("skillid_" + id);
        }
    }
Exemple #7
0
    private void selfFx(int id)
    {
        MS0000_Default_Event component = this.m_curModel.gameObject.GetComponent <MS0000_Default_Event>();
        SXML sXML = XMLMgr.instance.GetSXML("monsters.monsters", "id==" + this.summonid);
        bool flag = sXML != null && sXML.getString("skillid_1") != "";

        if (flag)
        {
            component.effect = sXML.getString("skillid_" + id);
        }
    }
Exemple #8
0
    public override void FrameMove(float delta_time)
    {
        base.FrameMove(delta_time);
        bool flag = !this.show;

        if (flag)
        {
            SXML sXML = XMLMgr.instance.GetSXML("monsters.monsters", "id==" + this.dartid);
            this.ani.speed = sXML.GetNodeList("att", "")[0].getFloat("speed_run");
            this.show      = true;
        }
    }
Exemple #9
0
    public void SetSkin()
    {
        SXML        sXML     = XMLMgr.instance.GetSXML("mlzd", "");
        int         num      = SelfRole._inst.zhuan * 10 + SelfRole._inst.lvl;
        int         num2     = 2;
        int         num3     = 3;
        List <SXML> nodeList = sXML.GetNodeList("stage", "");

        foreach (SXML current in nodeList)
        {
            string @string = current.getString("lvl");
            int    num4    = int.Parse(@string.Split(new char[]
            {
                ','
            })[0]);
            int num5 = int.Parse(@string.Split(new char[]
            {
                ','
            })[1]);
            bool flag = num <= num4 * 10 + num5;
            if (flag)
            {
                num2 = current.getInt("waiguan");
                break;
            }
        }
        GameObject gameObject  = this.m_curModel.parent.gameObject;
        string     avatar_path = "profession/assa/";

        Transform[] componentsInChildren = gameObject.GetComponentsInChildren <Transform>();
        for (int i = 0; i < componentsInChildren.Length; i++)
        {
            Transform transform = componentsInChildren[i];
            transform.gameObject.layer = EnumLayer.LM_SELFROLE;
        }
        Transform        transform2       = gameObject.transform.FindChild("model");
        ProfessionAvatar professionAvatar = new ProfessionAvatar();

        professionAvatar.Init(avatar_path, "l_", this.m_curGameObj.layer, EnumMaterial.EMT_EQUIP_L, this.m_curModel, "");
        professionAvatar.set_body(num3 * 100 + num2 * 10 + 3, 0);
        professionAvatar.set_weaponl(num3 * 100 + num2 * 10 + 6, 0);
        professionAvatar.set_weaponr(num3 * 100 + num2 * 10 + 6, 0);
        professionAvatar.set_wing(0, 0);
        this.m_curPhy = this.m_curModel.transform.FindChild("physics");
        try
        {
            this.m_curPhy.gameObject.layer = EnumLayer.LM_BT_FIGHT;
        }
        catch (Exception var_18_1F5)
        {
        }
    }
    public Material set_strength_shader(Material ml, Texture2D tex1, int id, int fxlevel)
    {
        //Material cur_mat = ml;
        Texture tex = ml.GetTexture(EnumShader.SPI_MAINTEX);

        ////例如   mage_skin0_diff_h 到 mage_skin0_q
        //string tex1_name = tex.name.Substring(0, tex.name.Length - 6) + "q";
        ////debug.Log("材质是"+ tex1_name);

        ////Texture tex1 = GAMEAPI.ABFight_LoadTexture2D("mtl_" + tex1_name);
        //Texture tex1 = null;
        Material mtl_inst = GameObject.Instantiate(m_fxLvMtl) as Material;

        mtl_inst.SetTexture(EnumShader.SPI_MAINTEX, tex);

        if (tex1 != null)
        {
            mtl_inst.SetTexture(EnumShader.SPI_SUBTEX, tex1);
        }

        SXML xml = XMLMgr.instance.GetSXML("item.stage", "stage_level==" + fxlevel);

        if (xml == null)
        {
            return(mtl_inst);
        }

        xml = xml.GetNode("stage_info", "itemid==" + id);
        if (xml == null)
        {
            return(mtl_inst);
        }

        xml = xml.GetNode("intensify_light", null);
        if (xml == null)
        {
            return(mtl_inst);
        }

        string[] high_light     = xml.getString("high_light").Split(',');
        string[] strength_light = xml.getString("strength_light").Split(',');
        string[] color          = xml.getString("color").Split(',');

        Vector4 splRim   = new Vector4(float.Parse(high_light[0]), float.Parse(high_light[1]), float.Parse(high_light[2]), float.Parse(high_light[3]));
        Vector4 strAnim  = new Vector4(float.Parse(strength_light[0]), float.Parse(strength_light[1]), float.Parse(strength_light[2]), float.Parse(strength_light[3]));
        Color   strColor = new Color(float.Parse(color[0]) / 255, float.Parse(color[1]) / 255, float.Parse(color[2]) / 255);

        mtl_inst.SetVector(EnumShader.SPI_SPLRIM, splRim);
        mtl_inst.SetVector(EnumShader.SPI_STRANIM, strAnim);
        mtl_inst.SetColor(EnumShader.SPI_STRCOLOR, strColor);
        return(mtl_inst);
    }
Exemple #11
0
    public void SetSkin()
    {
        SXML itemsXMl = XMLMgr.instance.GetSXML("mlzd");
        int  lvln     = SelfRole._inst.zhuan * 10 + SelfRole._inst.lvl;
        int  waiguan  = 2;
        int  a_w_b_c  = 1;
        var  vv       = itemsXMl.GetNodeList("stage");

        foreach (var v in vv)
        {
            string ss = v.getString("lvl");
            int    a  = int.Parse(ss.Split(',')[0]);
            int    b  = int.Parse(ss.Split(',')[1]);
            if (lvln <= a * 10 + b)
            {
                waiguan = v.getInt("waiguan");
                break;
            }
        }

        GameObject m_Obj = this.m_curGameObj;

        string m_strAvatarPath = "";

        m_strAvatarPath = "profession_warrior_";

        foreach (Transform tran in m_Obj.GetComponentsInChildren <Transform>())
        {
            tran.gameObject.layer = EnumLayer.LM_SELFROLE;            // 更改物体的Layer层
        }

        Transform cur_model = m_Obj.transform.FindChild("model");

        m_proAvatar.Init_PA(A3_PROFESSION.Warrior, m_strAvatarPath, "l_", m_curGameObj.layer, EnumMaterial.EMT_EQUIP_L, m_curModel);

        m_proAvatar.set_body(a_w_b_c * 100 + waiguan * 10 + 3, 0);
        m_proAvatar.set_weaponl(a_w_b_c * 100 + waiguan * 10 + 6, 0);
        m_proAvatar.set_weaponr(a_w_b_c * 100 + waiguan * 10 + 6, 0);
        m_proAvatar.set_wing(0, 0);
        //m_proAvatar.set_wing(SelfRole._inst.get_wingid(), SelfRole._inst.get_windfxid());
        //m_proAvatar.set_equip_color(SelfRole._inst.get_equip_colorid());

        m_curPhy = m_curModel.transform.FindChild("physics");
        try {
            m_curPhy.gameObject.layer = EnumLayer.LM_BT_FIGHT;
        } catch (System.Exception ex) {
        }
    }
        public BluetoothConnector(SXML.Receiver receiver, Bluetooth.BluetoothController[] bluetoothControllers, HousenCS.MITes.MITesDecoder[] mitesDecoders)
        {
            this.receiver = receiver;
            this.bluetoothControllers = bluetoothControllers;
            this.mitesDecoders = mitesDecoders;

            // TODO At some point close this properly
            if (!Directory.Exists("\\Wockets"))
                Directory.CreateDirectory("\\Wockets");
            try
            {
                this.log = new StreamWriter("\\Wockets\\log-" + receiver.ID + ".txt", true);
            }
            catch (IOException e)
            {
                // If an exception is thrown, then make sure we don't crash. NIH demo only. 
                // TODO remove and fix more elegantly
               this.log = new StreamWriter("\\Wockets\\log-" + receiver.ID + "-" + Environment.TickCount + ".txt", true);
            }
        }
        private void OnPetStageChange()
        {
            Transform stop = SelfRole._inst.m_curModel.FindChild("birdstop");

            for (int i = 0; i < stop.childCount; i++)
            {
                GameObject.Destroy(stop.GetChild(i));
            }

            A3_PetModel petModel = A3_PetModel.getInstance();

            SXML   stageXML = petModel.PetXML.GetNode("pet.stage", "stage==" + petModel.Stage.ToString());
            string avatar   = stageXML.getString("avatar");

            GameObject birdPrefab = GAMEAPI.ABModel_LoadNow_GameObject("profession_" + avatar);
            GameObject pathPrefab = GAMEAPI.ABModel_LoadNow_GameObject("profession_birdpath");

            if (_birdPrefab == null || pathPrefab == null)
            {
                return;
            }

            GameObject bird = GameObject.Instantiate(_birdPrefab, stop.position, Quaternion.identity) as GameObject;
            GameObject path = GameObject.Instantiate(_pathPrefab, stop.position, Quaternion.identity) as GameObject;

            if (bird == null || path == null)
            {
                return;
            }

            path.transform.parent = stop;

            PetBird bd = null;

            bd      = bird.AddComponent <PetBird>();
            bd.Path = path;
        }
Exemple #14
0
    public Material set_strength_shader(Material ml, int id, int fxlevel)
    {
        Material material = UnityEngine.Object.Instantiate <Material>(this.m_fxLvMtl);
        Texture  texture  = ml.GetTexture(EnumShader.SPI_MAINTEX);

        material.SetTexture(EnumShader.SPI_MAINTEX, texture);
        string str = texture.name.Substring(0, texture.name.Length - 6) + "q";

        debug.Log("材质是" + str);
        Texture texture2 = Resources.Load("mtl/" + str) as Texture2D;
        bool    flag     = texture2 != null;

        if (flag)
        {
            material.SetTexture(EnumShader.SPI_SUBTEX, texture2);
        }
        SXML     sXML  = XMLMgr.instance.GetSXML("item.stage", "stage_level==" + fxlevel);
        bool     flag2 = sXML == null;
        Material result;

        if (flag2)
        {
            result = material;
        }
        else
        {
            sXML = sXML.GetNode("stage_info", "itemid==" + id);
            bool flag3 = sXML == null;
            if (flag3)
            {
                result = material;
            }
            else
            {
                sXML = sXML.GetNode("intensify_light", null);
                bool flag4 = sXML == null;
                if (flag4)
                {
                    result = material;
                }
                else
                {
                    string[] array = sXML.getString("high_light").Split(new char[]
                    {
                        ','
                    });
                    string[] array2 = sXML.getString("strength_light").Split(new char[]
                    {
                        ','
                    });
                    string[] array3 = sXML.getString("color").Split(new char[]
                    {
                        ','
                    });
                    Vector4 vector  = new Vector4(float.Parse(array[0]), float.Parse(array[1]), float.Parse(array[2]), float.Parse(array[3]));
                    Vector4 vector2 = new Vector4(float.Parse(array2[0]), float.Parse(array2[1]), float.Parse(array2[2]), float.Parse(array2[3]));
                    Color   color   = new Color(float.Parse(array3[0]) / 255f, float.Parse(array3[1]) / 255f, float.Parse(array3[2]) / 255f);
                    material.SetVector(EnumShader.SPI_SPLRIM, vector);
                    material.SetVector(EnumShader.SPI_STRANIM, vector2);
                    material.SetColor(EnumShader.SPI_STRCOLOR, color);
                    result = material;
                }
            }
        }
        return(result);
    }
Exemple #15
0
        public static void Initialize(MITesDecoder aMITesDecoder, string aDataDirectory,
            AXML.Annotation aannotation, SXML.SensorAnnotation sannotation, GeneralConfiguration configuration)//, string masterDirectory)
        {
           
            Extractor.aannotation = aannotation;
            Extractor.sannotation = sannotation;
            Extractor.dconfiguration = configuration;

            // count the sensors for feature extraction and identify their indicies in
            // sensor annotation - at the moment only accelerometers are used
            Extractor.sensorIndicies = new Hashtable();
            Extractor.extractorSensorCount = 0;
            foreach (SXML.Sensor sensor in sannotation.Sensors)
            {
                int channel=Convert.ToInt32(sensor.ID);
                if (channel > 0) // if accelerometer
                {
                    Extractor.sensorIndicies[channel] = extractorSensorCount;
                    Extractor.extractorSensorCount++;
                }
            }




            //load sensor data
            //SXML.Reader sreader = new SXML.Reader(masterDirectory, aDataDirectory);
            //Extractor.sannotation = sreader.parse();

            //load configuration
 //           ConfigurationReader creader = new ConfigurationReader(aDataDirectory);
 //           Extractor.dconfiguration = creader.parse();


            //load annotation data
            //AXML.Reader reader = new AXML.Reader(masterDirectory, aDataDirectory + "\\" + AXML.Reader.DEFAULT_XML_FILE);
            //Extractor.aannotation = reader.parse();          
            //CHANGE: gathers training samples based on the first category only 
            Extractor.trainingTime = new Hashtable();//int[((AXML.Category)Extractor.aannotation.Categories[0]).Labels.Count];
            //for (int i = 0; (i < Extractor.trainingTime.Length); i++)
            foreach (AXML.Label label in ((AXML.Category)Extractor.aannotation.Categories[0]).Labels)
                Extractor.trainingTime.Add(label.Name, 0);
            //Extractor.trainingTime[i] = 0;
            Extractor.trainingCompleted = false;

            Extractor.inputRowSize = Extractor.extractorSensorCount * 3;
            Extractor.fftInterpolationPower = dconfiguration.FFTInterpolatedPower;
            Extractor.fftMaximumFrequencies = dconfiguration.FFTMaximumFrequencies;
            //Extractor.trainingTimePerClass = configuration.TrainingTime;
            //Extractor.trainingWaitTime = configuration.TrainingWaitTime;         
            Extractor.inputColumnSize = (int)Math.Pow(2, Extractor.fftInterpolationPower);


            Extractor.num_features = Extractor.inputRowSize; // number of distances
            Extractor.num_features += 1; //total mean;
            Extractor.num_features += Extractor.inputRowSize; // number of variances
            Extractor.num_features += Extractor.inputRowSize; // number of ranges
            Extractor.num_features += 2 * Extractor.fftMaximumFrequencies * Extractor.inputRowSize; // number of fft magnitudes and frequencies
            Extractor.num_features += Extractor.inputRowSize; // number of energies
            Extractor.num_features += ((Extractor.inputRowSize * Extractor.inputRowSize) - Extractor.inputRowSize) / 2; //correlation coefficients off-di
            Extractor.features = new double[Extractor.num_features];
            Extractor.arffAttriburesLabels = new string[Extractor.num_features];
            Extractor.attributeLocation = new Hashtable();

            Extractor.standardized = new double[inputRowSize][];
            for (int i = 0; (i < inputRowSize); i++)
                Extractor.standardized[i] = new double[Extractor.inputColumnSize];//input[0].Length];

            Extractor.means = new double[inputRowSize];

            inputFFT = new int[Extractor.inputColumnSize];
            FFT.Initialize(fftInterpolationPower, fftMaximumFrequencies);
            Extractor.aMITesDecoder = aMITesDecoder;

            //Create the ARFF File header
            string arffHeader = "@RELATION wockets\n\n" + Extractor.GetArffHeader();//sannotation.Sensors.Count * 3, configuration.FFTMaximumFrequencies);
            arffHeader += "@ATTRIBUTE activity {";
            foreach (AXML.Label label in ((AXML.Category)Extractor.aannotation.Categories[0]).Labels)
                arffHeader += label.Name.Replace(' ', '_') + ",";
            arffHeader += "unknown}\n";
            arffHeader += "\n@DATA\n\n";

            //Calculating windowing parameters

            //total number of points per interpolated window
            Extractor.INTERPOLATED_SAMPLING_RATE_PER_WINDOW = (int)Math.Pow(2, dconfiguration.FFTInterpolatedPower); //128;  

            //space between interpolated samples
            Extractor.INTERPOLATED_SAMPLES_SPACING = (double)dconfiguration.WindowTime / INTERPOLATED_SAMPLING_RATE_PER_WINDOW;


            //expected sampling rate per MITes
            //Extractor.EXPECTED_SAMPLING_RATE = dconfiguration.ExpectedSamplingRate / sannotation.Sensors.Count; //samples per second
            //expected samples per window
            //Extractor.EXPECTED_WINDOW_SIZE = (int)(EXPECTED_SAMPLING_RATE * (dconfiguration.WindowTime / 1000.0)); // expectedSamplingRate per window
            //what would be considered a good sampling rate
            //Extractor.EXPECTED_GOOD_SAMPLING_RATE = EXPECTED_WINDOW_SIZE - (int)(dconfiguration.MaximumNonconsecutiveFrameLoss * EXPECTED_WINDOW_SIZE); //number of packets lost per second                      
            //space between samples
            //Extractor.EXPECTED_SAMPLES_SPACING = (double)dconfiguration.WindowTime / EXPECTED_WINDOW_SIZE;
            Extractor.EXPECTED_SAMPLING_RATES = new int[Extractor.extractorSensorCount];
            Extractor.EXPECTED_WINDOW_SIZES = new int[Extractor.extractorSensorCount];
            Extractor.EXPECTED_GOOD_SAMPLING_RATES = new int[Extractor.extractorSensorCount];
            Extractor.EXPECTED_SAMPLES_SPACING = new double[Extractor.extractorSensorCount];

           //foreach (SXML.Sensor sensor in sannotation.Sensors)
            foreach (DictionaryEntry sensorEntry in Extractor.sensorIndicies)
            {
                //Get the channel and index in data array for only
                // extractor sensors (sensors that will be used to compute
                // features i.e. accelerometers)
                int channel=(int)sensorEntry.Key;
                int sensorIndex = (int)sensorEntry.Value;
                SXML.Sensor sensor = ((SXML.Sensor)sannotation.Sensors[(int)sannotation.SensorsIndex[channel]]);
                int receiverID = Convert.ToInt32(sensor.Receiver);

                if (channel == MITesDecoder.MAX_CHANNEL)  //Built in sensor
                    Extractor.EXPECTED_SAMPLING_RATES[sensorIndex] = sensor.SamplingRate; //used sensor sampling rate
                else
                    Extractor.EXPECTED_SAMPLING_RATES[sensorIndex] = dconfiguration.ExpectedSamplingRate / sannotation.NumberSensors[receiverID];
                
                Extractor.EXPECTED_WINDOW_SIZES[sensorIndex] = (int)(Extractor.EXPECTED_SAMPLING_RATES[sensorIndex] * (dconfiguration.WindowTime / 1000.0));
                Extractor.EXPECTED_GOOD_SAMPLING_RATES[sensorIndex] = Extractor.EXPECTED_WINDOW_SIZES[sensorIndex] - (int)(dconfiguration.MaximumNonconsecutiveFrameLoss * Extractor.EXPECTED_WINDOW_SIZES[sensorIndex]);
                Extractor.EXPECTED_SAMPLES_SPACING[sensorIndex] = (double)dconfiguration.WindowTime / Extractor.EXPECTED_WINDOW_SIZES[sensorIndex];
            }



            //window counters and delimiters
            Extractor.next_window_end = 0;
            Extractor.total_window_count = 0;
            Extractor.num_feature_windows = 0;

            //data quality variables
            Extractor.isAcceptableLossRate = true;
            Extractor.isAcceptableConsecutiveLoss = true;
            Extractor.unacceptable_window_count = 0;
            Extractor.unacceptable_consecutive_window_loss_count = 0;


            //2 D array that stores Sensor axes + time stamps on each row  X expected WINDOW SIZE
            Extractor.data = new double[Extractor.extractorSensorCount * 4][]; // 1 row for each axis

            // 2D array that stores Sensor axes X INTERPOLATED WINDOW SIZE
            Extractor.interpolated_data = new double[Extractor.extractorSensorCount * 3][];

            // array to store the y location for each axes as data is received
            // will be different for every sensor of course
            Extractor.y_index = new int[Extractor.extractorSensorCount];


            //Initialize expected data array

            foreach (DictionaryEntry sensorEntry in Extractor.sensorIndicies)
            {
                //Get the channel and index in data array for only
                // extractor sensors (sensors that will be used to compute
                // features i.e. accelerometers)
                int channel=(int)sensorEntry.Key;
                int sensorIndex = (int)sensorEntry.Value;
                int adjusted_sensor_index = sensorIndex * 4;

                //Initialize 4 rows x,y,z timestamp
                for (int j = 0; j < 4; j++)
                {
                    Extractor.data[adjusted_sensor_index] = new double[EXPECTED_WINDOW_SIZES[sensorIndex]];
                    for (int k = 0; (k < EXPECTED_WINDOW_SIZES[sensorIndex]); k++)
                        Extractor.data[adjusted_sensor_index][k] = 0;
                    adjusted_sensor_index++;
                }

            }


            //Here it is equal across all sensors, so we do not need to consider
            //the sampling rate of each sensor separately
            for (int j = 0; (j < (Extractor.extractorSensorCount * 3)); j++)
            {
                Extractor.interpolated_data[j] = new double[INTERPOLATED_SAMPLING_RATE_PER_WINDOW];
                for (int k = 0; (k < INTERPOLATED_SAMPLING_RATE_PER_WINDOW); k++)
                    Extractor.interpolated_data[j][k] = 0;
            }

            //Initialize y index for each sensor
            for (int j = 0; (j < Extractor.extractorSensorCount); j++)
                Extractor.y_index[j] = 0;

        }
Exemple #16
0
        public bool WillPick(uint tpid)
        {
            a3_ItemData itemDataById = ModelBase <a3_BagModel> .getInstance().getItemDataById(tpid);

            int  quality = itemDataById.quality;
            int  num     = 1 << quality - 1;
            bool result  = true;
            bool flag    = itemDataById.item_type == 1;

            if (flag)
            {
                SXML     sXML   = XMLMgr.instance.GetSXML("autoplay", "");
                string[] source = sXML.GetNode("eqp_cailiao", "").getString("list").Split(new char[]
                {
                    ','
                });
                string[] source2 = sXML.GetNode("pet_cailiao", "").getString("list").Split(new char[]
                {
                    ','
                });
                string[] source3 = sXML.GetNode("wing_cailiao", "").getString("list").Split(new char[]
                {
                    ','
                });
                string[] source4 = sXML.GetNode("summon_cailiao", "").getString("list").Split(new char[]
                {
                    ','
                });
                string[] source5 = sXML.GetNode("drugs", "").getString("list").Split(new char[]
                {
                    ','
                });
                bool flag2 = source.Contains(tpid.ToString()) && this.PickEqp_cailiao != 1;
                if (flag2)
                {
                    result = false;
                }
                else
                {
                    bool flag3 = source2.Contains(tpid.ToString()) && this.PickPet_cailiao != 1;
                    if (flag3)
                    {
                        result = false;
                    }
                    else
                    {
                        bool flag4 = source3.Contains(tpid.ToString()) && this.PickWing_cailiao != 1;
                        if (flag4)
                        {
                            result = false;
                        }
                        else
                        {
                            bool flag5 = source4.Contains(tpid.ToString()) && this.PickSummon_cailiao != 1;
                            if (flag5)
                            {
                                result = false;
                            }
                            else
                            {
                                bool flag6 = source5.Contains(tpid.ToString()) && this.PickDrugs != 1;
                                if (flag6)
                                {
                                    result = false;
                                }
                                else
                                {
                                    bool flag7 = this.PickOther != 1;
                                    if (flag7)
                                    {
                                        result = false;
                                    }
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                bool flag8 = itemDataById.item_type == 2;
                if (flag8)
                {
                    result = ((num & this.PickEqp) != 0);
                }
                else
                {
                    bool flag9 = tpid == 0u;
                    if (flag9)
                    {
                        bool flag10 = this.PickGold != 1;
                        if (flag10)
                        {
                            result = false;
                        }
                    }
                }
            }
            return(result);
        }
Exemple #17
0
        public static void Initialize(MITesDecoder aMITesDecoder, string aDataDirectory,
            AXML.Annotation aannotation,SXML.SensorAnnotation sannotation)//, string masterDirectory)
        {

            Extractor.aannotation = aannotation;
            Extractor.sannotation = sannotation;

            //load sensor data
            //SXML.Reader sreader = new SXML.Reader(masterDirectory, aDataDirectory);
            //Extractor.sannotation = sreader.parse();

            //load configuration
            ConfigurationReader creader = new ConfigurationReader(aDataDirectory);
            Extractor.dconfiguration = creader.parse();

            
            //load annotation data
            //AXML.Reader reader = new AXML.Reader(masterDirectory, aDataDirectory + "\\" + AXML.Reader.DEFAULT_XML_FILE);
            //Extractor.aannotation = reader.parse();          
            //CHANGE: gathers training samples based on the first category only 
            Extractor.trainingTime = new Hashtable();//int[((AXML.Category)Extractor.aannotation.Categories[0]).Labels.Count];
            //for (int i = 0; (i < Extractor.trainingTime.Length); i++)
            foreach (AXML.Label label in ((AXML.Category)Extractor.aannotation.Categories[0]).Labels)
                Extractor.trainingTime.Add(label.Name, 0);
                //Extractor.trainingTime[i] = 0;
            Extractor.trainingCompleted = false;

            Extractor.inputRowSize = sannotation.Sensors.Count * 3;
            Extractor.fftInterpolationPower = dconfiguration.FFTInterpolatedPower;
            Extractor.fftMaximumFrequencies = dconfiguration.FFTMaximumFrequencies;
            //Extractor.trainingTimePerClass = configuration.TrainingTime;
            //Extractor.trainingWaitTime = configuration.TrainingWaitTime;         
            Extractor.inputColumnSize = (int)Math.Pow(2, Extractor.fftInterpolationPower);


            Extractor.num_features = Extractor.inputRowSize; // number of distances
            Extractor.num_features += 1; //total mean;
            Extractor.num_features += Extractor.inputRowSize; // number of variances
            Extractor.num_features += Extractor.inputRowSize; // number of ranges
            Extractor.num_features += 2 * Extractor.fftMaximumFrequencies * Extractor.inputRowSize; // number of fft magnitudes and frequencies
            Extractor.num_features += Extractor.inputRowSize; // number of energies
            Extractor.num_features += ((Extractor.inputRowSize * Extractor.inputRowSize) - Extractor.inputRowSize) / 2; //correlation coefficients off-di
            Extractor.features = new double[Extractor.num_features];
            Extractor.arffAttriburesLabels = new string[Extractor.num_features];

            Extractor.standardized = new double[inputRowSize][];
            for (int i = 0; (i < inputRowSize); i++)
                Extractor.standardized[i] = new double[Extractor.inputColumnSize];//input[0].Length];

            Extractor.means = new double[inputRowSize];

            inputFFT = new int[Extractor.inputColumnSize];
            FFT.Initialize(fftInterpolationPower, fftMaximumFrequencies);
            Extractor.aMITesDecoder = aMITesDecoder;

            //Create the ARFF File header
            string arffHeader = "@RELATION wockets\n\n" + Extractor.GetArffHeader();//sannotation.Sensors.Count * 3, configuration.FFTMaximumFrequencies);
            arffHeader += "@ATTRIBUTE activity {";
            foreach (AXML.Label label in ((AXML.Category)Extractor.aannotation.Categories[0]).Labels)
                arffHeader += label.Name.Replace(' ', '_') + ",";
            arffHeader += "unknown}\n";
            arffHeader += "\n@DATA\n\n";

            //Calculating windowing parameters

            //total number of points per interpolated window
            Extractor.INTERPOLATED_SAMPLING_RATE_PER_WINDOW = (int)Math.Pow(2, dconfiguration.FFTInterpolatedPower); //128;  
            //expected sampling rate per MITes
            Extractor.EXPECTED_SAMPLING_RATE = dconfiguration.ExpectedSamplingRate / sannotation.Sensors.Count; //samples per second
            //expected samples per window
            Extractor.EXPECTED_WINDOW_SIZE = (int)(EXPECTED_SAMPLING_RATE * (dconfiguration.WindowTime / 1000.0)); // expectedSamplingRate per window
            //what would be considered a good sampling rate
            Extractor.EXPECTED_GOOD_SAMPLING_RATE = EXPECTED_WINDOW_SIZE - (int)(dconfiguration.MaximumNonconsecutiveFrameLoss * EXPECTED_WINDOW_SIZE); //number of packets lost per second                      
            //space between samples
            Extractor.EXPECTED_SAMPLES_SPACING = (double)dconfiguration.WindowTime / EXPECTED_WINDOW_SIZE;
            //space between interpolated samples
            Extractor.INTERPOLATED_SAMPLES_SPACING = (double)dconfiguration.WindowTime / INTERPOLATED_SAMPLING_RATE_PER_WINDOW;

            //window counters and delimiters
            Extractor.next_window_end = 0;
            Extractor.total_window_count = 0;
            Extractor.num_feature_windows = 0;

            //data quality variables
            Extractor.isAcceptableLossRate = true;
            Extractor.isAcceptableConsecutiveLoss = true;
            Extractor.unacceptable_window_count = 0;
            Extractor.unacceptable_consecutive_window_loss_count = 0;


            //2 D array that stores Sensor axes + time stamps on each row  X expected WINDOW SIZE
            Extractor.data = new double[Extractor.sannotation.Sensors.Count * 4][]; // 1 row for each axis

            // 2D array that stores Sensor axes X INTERPOLATED WINDOW SIZE
            Extractor.interpolated_data = new double[Extractor.sannotation.Sensors.Count * 3][];

            // array to store the y location for each axes as data is received
            // will be different for every sensor of course
            Extractor.y_index = new int[Extractor.sannotation.Sensors.Count];


            //Initialize expected data array
            for (int j = 0; (j < (Extractor.sannotation.Sensors.Count * 4)); j++)
            {
                Extractor.data[j] = new double[EXPECTED_WINDOW_SIZE];
                for (int k = 0; (k < EXPECTED_WINDOW_SIZE); k++)
                    Extractor.data[j][k] = 0;
            }

            //Initialize interpolated data array
            for (int j = 0; (j < (Extractor.sannotation.Sensors.Count * 3)); j++)
            {
                Extractor.interpolated_data[j] = new double[INTERPOLATED_SAMPLING_RATE_PER_WINDOW];
                for (int k = 0; (k < INTERPOLATED_SAMPLING_RATE_PER_WINDOW); k++)
                    Extractor.interpolated_data[j][k] = 0;
            }

            //Initialize y index for each sensor
            for (int j = 0; (j < Extractor.sannotation.Sensors.Count); j++)
                Extractor.y_index[j] = 0;

        }
Exemple #18
0
    public MonsterRole AddMonster(int id, Vector3 pos, uint serverid = 0u, float roatate = 0f, int boset_num = 0, int carr = 0, string name = null)
    {
        this.init();
        bool        flag = this.m_mapMonster.ContainsKey(serverid);
        MonsterRole result;

        if (flag)
        {
            result = null;
        }
        else
        {
            SXML  sXML   = this.dMon[id];
            int   num    = sXML.getInt("obj");
            float @float = sXML.getFloat("scale");
            bool  flag2  = serverid <= 0u;
            if (flag2)
            {
                bool flag3 = Globle.m_nTestMonsterID > 0;
                if (flag3)
                {
                    num = Globle.m_nTestMonsterID;
                }
            }
            bool flag4      = sXML.getInt("collect_tar") > 0;
            bool isHardDemo = Globle.isHardDemo;
            Type type;
            if (isHardDemo)
            {
                type = MonsterMgr.getTypeHandle("Md" + num);
            }
            else
            {
                bool flag5 = flag4;
                if (flag5)
                {
                    bool flag6 = num == 122;
                    if (flag6)
                    {
                        type = Type.GetType("CollectBox");
                    }
                    else
                    {
                        type = Type.GetType("CollectRole");
                    }
                }
                else
                {
                    type = Type.GetType("M" + num);
                }
            }
            bool flag7 = id == 4002 || carr == 2;
            if (flag7)
            {
                type = Type.GetType("M000P2");
            }
            else
            {
                bool flag8 = id == 4003 || carr == 3;
                if (flag8)
                {
                    type = Type.GetType("M000P3");
                }
                else
                {
                    bool flag9 = id == 4005 || carr == 5;
                    if (flag9)
                    {
                        type = Type.GetType("M000P5");
                    }
                }
            }
            bool flag10 = type == null;
            if (flag10)
            {
                type = Type.GetType("M00000");
            }
            MonsterRole monsterRole = (MonsterRole)Activator.CreateInstance(type);
            bool        flag11      = name != null;
            if (flag11)
            {
                monsterRole.ownerName = name;
            }
            bool flag12 = carr == 0;
            if (flag12)
            {
                monsterRole.roleName = sXML.getString("name");
            }
            monsterRole.tempXMl       = sXML;
            monsterRole.m_circle_type = sXML.getInt("boss_circle");
            bool flag13 = sXML.getFloat("boss_circle_scale") == -1f;
            if (flag13)
            {
                monsterRole.m_circle_scale = 1f;
            }
            else
            {
                monsterRole.m_circle_scale = sXML.getFloat("boss_circle_scale");
            }
            monsterRole.isBoos = (sXML.getInt("boss") == 1);
            bool flag14 = @float > 0f;
            if (flag14)
            {
                monsterRole.scale = @float;
            }
            bool flag15 = monsterRole != null;
            if (flag15)
            {
                bool flag16 = id == 4002 || carr == 2;
                if (flag16)
                {
                    monsterRole.Init("profession/warrior_inst", EnumLayer.LM_MONSTER, pos, roatate);
                }
                else
                {
                    bool flag17 = id == 4003 || carr == 3;
                    if (flag17)
                    {
                        monsterRole.Init("profession/mage_inst", EnumLayer.LM_MONSTER, pos, roatate);
                    }
                    else
                    {
                        bool flag18 = id == 4005 || carr == 5;
                        if (flag18)
                        {
                            monsterRole.Init("profession/assa_inst", EnumLayer.LM_MONSTER, pos, roatate);
                        }
                        else
                        {
                            bool flag19 = flag4;
                            if (flag19)
                            {
                                monsterRole.Init("npc/" + num, EnumLayer.LM_MONSTER, pos, roatate);
                            }
                            else
                            {
                                monsterRole.Init("monster/" + num, EnumLayer.LM_MONSTER, pos, roatate);
                            }
                        }
                    }
                }
                monsterRole.monsterid = id;
                bool flag20 = boset_num > 0;
                if (flag20)
                {
                    PlayerNameUIMgr.getInstance().show(monsterRole);
                    PlayerNameUIMgr.getInstance().seticon_forDaobao(monsterRole, boset_num);
                }
                bool flag21 = ModelBase <A3_ActiveModel> .getInstance().mwlr_map_info.Count > 0;

                if (flag21)
                {
                    PlayerNameUIMgr.getInstance().seticon_forMonsterHunter(monsterRole, ModelBase <A3_ActiveModel> .getInstance().mwlr_map_info[0]["target_mid"] != id);
                }
                bool flag22 = serverid > 0u;
                if (flag22)
                {
                    monsterRole.m_unIID = serverid;
                    this.m_mapMonster.Add(serverid, monsterRole);
                }
                else
                {
                    monsterRole.isfake  = true;
                    monsterRole.m_unIID = this.idIdx;
                    this.m_mapFakeMonster.Add(this.idIdx, monsterRole);
                    this.idIdx += 1u;
                }
                bool flag23 = !GRMap.loading;
                if (flag23)
                {
                    monsterRole.refreshViewType(2);
                }
            }
            this.m_listMonster.Add(monsterRole);
            bool flag24 = monsterRole != null;
            if (flag24)
            {
                base.dispatchEvent(GameEvent.Create(MonsterMgr.EVENT_MONSTER_ADD, this, monsterRole, false));
            }
            result = monsterRole;
        }
        return(result);
    }
Exemple #19
0
    public MonsterRole AddDartCar(Variant d)
    {
        this.init();
        bool        loading = GRMap.loading;
        MonsterRole result;

        if (loading)
        {
            this.cacheProxy.Add(d);
            result = null;
        }
        else
        {
            Vector3 pos  = new Vector3(d["x"] / 53.333f, 0f, d["y"] / 53.333f);
            int     num  = d["mid"];
            uint    num2 = d["iid"];
            bool    flag = this.m_mapMonster.ContainsKey(num2);
            if (flag)
            {
                this.RemoveMonster(num2);
            }
            SXML   sXML   = this.dMon[num];
            int    num3   = sXML.getInt("obj");
            float  @float = sXML.getFloat("scale");
            string empty  = string.Empty;
            bool   flag2  = num2 <= 0u;
            if (flag2)
            {
                bool flag3 = Globle.m_nTestMonsterID > 0;
                if (flag3)
                {
                    num3 = Globle.m_nTestMonsterID;
                }
            }
            MDC000 mDC = new MDC000();
            mDC.tempXMl = sXML;
            mDC.isBoos  = (sXML.getInt("boss") == 1);
            bool flag4 = @float > 0f;
            if (flag4)
            {
                mDC.scale = @float;
            }
            bool flag5 = mDC != null;
            if (flag5)
            {
                mDC.Init("monster/" + num3, EnumLayer.LM_MONSTER, pos, 0f);
                mDC.curhp       = d["hp"];
                mDC.maxHp       = d["battleAttrs"]["max_hp"];
                mDC.escort_name = d["escort_name"];
                PlayerNameUIMgr.getInstance().show(mDC);
                PlayerNameUIMgr.getInstance().setDartName(mDC, d["escort_name"] + "军团的镖车");
                mDC.roleName  = d["escort_name"] + "军团的镖车";
                mDC.monsterid = num;
                bool flag6 = mDC.roleName == ModelBase <A3_LegionModel> .getInstance().myLegion.name;

                if (flag6)
                {
                    mDC.m_isMarked = false;
                }
                bool flag7 = num2 > 0u;
                if (flag7)
                {
                    mDC.m_unIID = num2;
                    this.m_mapMonster.Add(num2, mDC);
                }
                else
                {
                    mDC.isfake  = true;
                    mDC.m_unIID = this.idIdx;
                    this.m_mapFakeMonster.Add(this.idIdx, mDC);
                    this.idIdx += 1u;
                }
                bool flag8 = !GRMap.loading;
                if (flag8)
                {
                    mDC.refreshViewType(2);
                }
                mDC.dartid = num;
                mDC.isDart = true;
            }
            this.m_listMonster.Add(mDC);
            bool flag9 = mDC != null;
            if (flag9)
            {
                base.dispatchEvent(GameEvent.Create(MonsterMgr.EVENT_MONSTER_ADD, this, mDC, false));
            }
            bool flag10 = d.ContainsKey("moving");
            if (flag10)
            {
                uint        @uint          = d["iid"]._uint;
                MonsterRole monster        = MonsterMgr._inst.getMonster(@uint);
                float       float2         = d["moving"]["to_x"]._float;
                float       float3         = d["moving"]["to_y"]._float;
                Vector3     sourcePosition = new Vector3(float2 * 32f / 53.333f, 0f, float3 * 32f / 53.333f);
                NavMeshHit  navMeshHit;
                NavMesh.SamplePosition(sourcePosition, out navMeshHit, 100f, monster.m_layer);
                monster.SetDestPos(navMeshHit.position);
            }
            result = mDC;
        }
        return(result);
    }
    public MonsterRole AddMonster(int id, Vector3 pos, uint serverid = 0, float roatate = 0, int boset_num = 0, int carr = 0, string name = null)
    {
        init();
        if (m_mapMonster.ContainsKey(serverid))
        {
            return(m_mapMonster[serverid]);
        }

        MonsterRole mon = null;
        //if (monID == 1)
        //{
        SXML  xml    = dMon[id];
        int   tempid = xml.getInt("obj");
        float scale  = xml.getFloat("scale");

        //用来给美术测试新加的怪物用的
        if (serverid <= 0)
        {
            if (Globle.m_nTestMonsterID > 0)
            {
                tempid = Globle.m_nTestMonsterID;
            }
        }

        bool isCollect = xml.getInt("collect_tar") > 0;

        bool isboxCollect = xml.getInt("collect_box") > 0;   // 判断这个宝箱是不是采集用的    > 0 则是采集的用宝箱

        //Type TCls;
        //if (Globle.isHardDemo)
        //    TCls = getTypeHandle("Md" + tempid);
        //else
        //{
        //    if (isCollect)
        //    {
        //        if (tempid == 122 && !isboxCollect)
        //        {
        //            TCls = System.Type.GetType("CollectBox");
        //        }
        //        else TCls = System.Type.GetType("CollectRole");
        //    }
        //    else
        //    {
        //        TCls = System.Type.GetType("M" + tempid);
        //    }
        //}
        //if (id == 4002 || carr == 2) TCls = System.Type.GetType("M000P2");
        //else if (id == 4003 || carr == 3) TCls = System.Type.GetType("M000P3");
        //else if (id == 4005 || carr == 5) TCls = System.Type.GetType("M000P5");

        //if (TCls == null)
        //{
        //    TCls = System.Type.GetType("M00000");
        //}

        //mon = (MonsterRole)Activator.CreateInstance(TCls);

        if (isCollect)
        {
            if (tempid == 122)
            {
                mon = new CollectBox();
            }
            else
            {
                mon = new CollectRole();
            }
        }
        if (id == 4002 || carr == 2)
        {
            mon = new M000P2();
        }
        else if (id == 4003 || carr == 3)
        {
            mon = new M000P3();
        }
        else if (id == 4005 || carr == 5)
        {
            mon = new M000P5();
        }
        if (mon == null)
        {
            mon = new M00000();
        }


        if (name != null)
        {
            mon.ownerName = name;
        }
        if (carr == 0)
        {
            mon.roleName = xml.getString("name");
        }
        mon.tempXMl = xml;

        mon.m_circle_type = xml.getInt("boss_circle");
        if (xml.getFloat("boss_circle_scale") == -1)
        {
            mon.m_circle_scale = 1;
        }
        else
        {
            mon.m_circle_scale = xml.getFloat("boss_circle_scale");
        }

        mon.isBoos   = xml.getInt("boss") == 1;
        mon.isBoss_c = xml.getInt("boss_c") == 1;
        if (scale > 0f)
        {
            mon.scale = scale;
        }

        if (serverid > 0)
        {
            mon.m_unIID = serverid;
            m_mapMonster.Add(serverid, mon);
        }
        else
        {
            mon.isfake  = true;
            mon.m_unIID = idIdx;
            m_mapFakeMonster.Add(idIdx, mon);

            idIdx++;
        }

        if (mon != null)
        {
            if (id == 4002 || carr == 2)
            {
                mon.Init("profession_warrior_inst", EnumLayer.LM_MONSTER, pos, roatate);
            }
            else if (id == 4003 || carr == 3)
            {
                mon.Init("profession_mage_inst", EnumLayer.LM_MONSTER, pos, roatate);
            }
            else if (id == 4005 || carr == 5)
            {
                mon.Init("profession_assa_inst", EnumLayer.LM_MONSTER, pos, roatate);
            }
            else if (isCollect)
            {
                mon.Init("npc_" + tempid, EnumLayer.LM_MONSTER, pos, roatate);
            }
            else
            {
                mon.Init("monster_" + tempid, EnumLayer.LM_MONSTER, pos, roatate);
            }
            mon.monsterid = id;

            if (boset_num > 0)
            {
                PlayerNameUIMgr.getInstance().show(mon);
                PlayerNameUIMgr.getInstance().seticon_forDaobao(mon, boset_num);
            }

            if (A3_ActiveModel.getInstance().mwlr_map_info.Count > 0)
            {
                PlayerNameUIMgr.getInstance().seticon_forMonsterHunter(mon, A3_ActiveModel.getInstance().mwlr_map_info[0]["target_mid"] != id);
            }


            //if (GRMap.grmap_loading == false)
            //    mon.refreshViewType(2);
        }


        m_listMonster.Add(mon);


        //}
        //else if (monID == 2)
        //{
        //    mon = new M10002Srg();

        //    mon.Init("monster/10002", EnumLayer.LM_MONSTER, bornpt);
        //    m_mapMonster.Add(idIdx, mon);
        //}
        //else if (monID == 3)
        //{
        //    mon = new M10003Stl();

        //    mon.Init("monster/10003", EnumLayer.LM_MONSTER, bornpt);
        //    m_mapMonster.Add(idIdx, mon);
        //}
        //if (mon != null)
        //{
        //    MonsterData dta = new MonsterData();
        //    dta.roleId = idIdx;
        //    dta.monid = monID;
        //    mon.monsterDta = dta;
        //}

        //idIdx++;

        if (mon != null)
        {
            dispatchEvent(GameEvent.Create(MonsterMgr.EVENT_MONSTER_ADD, this, mon));
        }

        return(mon);
    }
    public MonsterRole AddDartCar(Variant d)//镖车
    {
        init();
        if (GRMap.grmap_loading)
        {
            cacheProxy.Add(d);
            return(null);
        }
        Vector3 born_pt  = new Vector3(d["x"] / GameConstant.PIXEL_TRANS_UNITYPOS, 0f, d["y"] / GameConstant.PIXEL_TRANS_UNITYPOS);
        int     id       = d["mid"];
        uint    serverid = d["iid"];

        if (m_mapMonster.ContainsKey(serverid))
        {
            return(m_mapMonster[serverid]);
        }

        SXML   xml    = dMon[id];
        int    tempid = xml.getInt("obj");
        float  scale  = xml.getFloat("scale");
        string name   = string.Empty;

        if (serverid <= 0)
        {
            if (Globle.m_nTestMonsterID > 0)
            {
                tempid = Globle.m_nTestMonsterID;
            }
        }
        MDC000 mon = new MDC000();

        mon.tempXMl  = xml;
        mon.isBoos   = xml.getInt("boss") == 1;
        mon.isBoss_c = xml.getInt("boss_c") == 1;
        if (scale > 0f)
        {
            mon.scale = scale;
        }
        if (mon != null)
        {
            if (serverid > 0)
            {
                mon.m_unIID = serverid;
                m_mapMonster.Add(serverid, mon);//这个地图上的所有的monster
            }
            else
            {
                mon.isfake  = true;
                mon.m_unIID = idIdx;
                m_mapFakeMonster.Add(idIdx, mon);
                idIdx++;
            }

            mon.Init("monster_" + tempid, EnumLayer.LM_MONSTER, born_pt, 0);
            mon.curhp       = d["hp"];
            mon.maxHp       = d["battleAttrs"]["max_hp"];
            mon.escort_name = d["escort_name"];
            PlayerNameUIMgr.getInstance().show(mon);
            PlayerNameUIMgr.getInstance().setDartName(mon, d["escort_name"] + ContMgr.getCont("MonsterMgr1"));
            mon.roleName  = d["escort_name"] + ContMgr.getCont("MonsterMgr1");
            mon.monsterid = id;
            if (mon.roleName == A3_LegionModel.getInstance().myLegion.name)
            {
                mon.m_isMarked = false;
            }

            //if (GRMap.grmap_loading == false)
            //    mon.refreshViewType(2);

            mon.dartid = id;
            mon.isDart = true;
        }
        m_listMonster.Add(mon);
        if (mon != null)
        {
            dispatchEvent(GameEvent.Create(MonsterMgr.EVENT_MONSTER_ADD, this, mon));
        }


        if (d.ContainsKey("moving"))
        {
            uint  iid  = d["iid"]._uint;
            var   vv   = MonsterMgr._inst.getMonster(iid);
            float to_x = d["moving"]["to_x"]._float;
            float to_y = d["moving"]["to_y"]._float;

            NavMeshHit hit;
            Vector3    vec = new Vector3(to_x * 32 / GameConstant.PIXEL_TRANS_UNITYPOS, 0f, to_y * 32 / GameConstant.PIXEL_TRANS_UNITYPOS);
            NavMesh.SamplePosition(vec, out hit, 100f, vv.m_layer);
            vv.SetDestPos(hit.position);
        }
        return(mon);
    }
    public MonsterRole AddSummon(Variant m)
    {
        init();
        if (GRMap.grmap_loading)
        {
            cacheProxy.Add(m);
            return(null);
        }

        Vector3 born_pt  = new Vector3(m["x"] / GameConstant.PIXEL_TRANS_UNITYPOS, 0f, m["y"] / GameConstant.PIXEL_TRANS_UNITYPOS);
        int     id       = m["mid"];
        uint    serverid = m["iid"];

        if (m_mapMonster.ContainsKey(serverid))
        {
            if (m["owner_cid"] == PlayerModel.getInstance().cid)
            {
                if (a3_herohead.instance)
                {
                    A3_SummonModel.getInstance().lastatkID = 0;
                    a3_herohead.instance.refresh_sumHp(m["hp"], m["battleAttrs"]["max_hp"]);
                    a3_herohead.instance.refresh_sumbar();
                    a3_herohead.instance.do_sum_CD = false;
                }
            }
            return(m_mapMonster[serverid]);
        }

        //return null;

        SXML   xml    = dMon[id];
        int    tempid = xml.getInt("obj");
        float  scale  = xml.getFloat("scale");
        string name   = xml.getString("name");

        if (serverid <= 0)
        {
            if (Globle.m_nTestMonsterID > 0)
            {
                tempid = Globle.m_nTestMonsterID;
            }
        }

        MS0000 mon = new MS0000();

        mon.tempXMl = xml;

        mon.isBoos   = xml.getInt("boss") == 1;
        mon.isBoss_c = xml.getInt("boss_c") == 1;
        if (scale > 0f)
        {
            mon.scale = scale;
        }

        if (mon != null)
        {
            if (serverid > 0)
            {
                mon.m_unIID = serverid;
                m_mapMonster.Add(serverid, mon);
                roleSummonMapping[m["owner_cid"]] = serverid;       // 人物对应的召唤兽 id
            }
            else
            {
                mon.isfake  = true;
                mon.m_unIID = idIdx;
                m_mapFakeMonster.Add(idIdx, mon);
                idIdx++;
            }

            mon.masterid = m["owner_cid"];
            mon.issummon = true;
            mon.summonid = id;

            if (SceneCamera.m_nModelDetail_Level != 1 && mon.masterid != PlayerModel.getInstance().cid)
            {//设置隐藏召唤兽
                mon.Init("monster_" + tempid, EnumLayer.LM_DEFAULT, born_pt, 0);
            }
            else
            {
                mon.Init("monster_" + tempid, EnumLayer.LM_MONSTER, born_pt, 0);
            }
            mon.m_layer = EnumLayer.LM_MONSTER;

            PlayerNameUIMgr.getInstance().show(mon);
            PlayerNameUIMgr.getInstance().setName(mon, name, m["owner_name"] + ContMgr.getCont("MonsterMgr"));
            mon.roleName  = name;
            mon.monsterid = id;

            //if (GRMap.grmap_loading == false)
            //    mon.refreshViewType(2);


            //mon.master = RoleMgr._instance.getRole(m["owner_cid"]);

            if (mon.masterid == PlayerModel.getInstance().cid)
            {
                if (a3_herohead.instance)
                {
                    A3_SummonModel.getInstance().lastatkID = 0;
                    a3_herohead.instance.refresh_sumHp(m["hp"], m["battleAttrs"]["max_hp"]);
                    a3_herohead.instance.refresh_sumbar();
                    a3_herohead.instance.do_sum_CD = false;
                }
            }
        }
        m_listMonster.Add(mon);

        if (mon != null)
        {
            dispatchEvent(GameEvent.Create(MonsterMgr.EVENT_MONSTER_ADD, this, mon));
        }

        if (mon != null)
        {
            mon.curhp     = m["hp"];
            mon.maxHp     = m["battleAttrs"]["max_hp"];
            mon.owner_cid = m["owner_cid"];
        }
        return(mon);
    }
Exemple #23
0
    public void SetSkin()
    {
        SXML itemsXMl = XMLMgr.instance.GetSXML("mlzd");
        int  lvln     = SelfRole._inst.zhuan * SelfRole._inst.lvl;
        int  waiguan  = 2;
        int  a_w_b_c  = 1;
        var  vv       = itemsXMl.GetNodeList("stage");

        foreach (var v in vv)
        {
            string ss = v.getString("lvl");
            int    a  = int.Parse(ss.Split(',')[0]);
            int    b  = int.Parse(ss.Split(',')[1]);
            if (lvln <= a * b)
            {
                waiguan = v.getInt("waiguan");
                break;
            }
        }

        GameObject       m_Obj = this.m_curModel.parent.gameObject;
        ProfessionAvatar m_proAvatar;
        string           m_strAvatarPath = "";

        if (SelfRole._inst is P2Warrior)
        {
            m_strAvatarPath = "profession/warrior/";
            a_w_b_c         = 1;
        }
        else if (SelfRole._inst is P3Mage)
        {
            m_strAvatarPath = "profession/mage/";
            a_w_b_c         = 2;
        }
        else if (SelfRole._inst is P5Assassin)
        {
            m_strAvatarPath = "profession/assa/";
            a_w_b_c         = 3;
        }

        foreach (Transform tran in m_Obj.GetComponentsInChildren <Transform>())
        {
            tran.gameObject.layer = EnumLayer.LM_FX;            // 更改物体的Layer层
        }

        Transform cur_model = m_Obj.transform.FindChild("model");

        //手上的小火球
        if (SelfRole._inst.m_LockRole is P3Mage)
        {
            Transform  cur_r_finger1 = cur_model.FindChild("R_Finger1");
            var        obj_prefab    = Resources.Load <GameObject>("profession/avatar_ui/mage_r_finger_fire");
            GameObject light_fire    = GameObject.Instantiate(obj_prefab) as GameObject;
            light_fire.transform.SetParent(cur_r_finger1, false);
        }

        m_proAvatar = new ProfessionAvatar();
        m_proAvatar.Init(m_strAvatarPath, "h_", EnumLayer.LM_FX, EnumMaterial.EMT_EQUIP_H, cur_model);

        m_proAvatar.set_body(a_w_b_c * 100 + waiguan * 10 + 3, 0);
        m_proAvatar.set_weaponl(a_w_b_c * 100 + waiguan * 10 + 6, 0);
        m_proAvatar.set_weaponr(a_w_b_c * 100 + waiguan * 10 + 6, 0);
        m_proAvatar.set_wing(SelfRole._inst.get_wingid(), SelfRole._inst.get_windfxid());
        m_proAvatar.set_equip_color(SelfRole._inst.get_equip_colorid());

        m_curPhy = m_curModel.transform.FindChild("physics");
        try {
            m_curPhy.gameObject.layer = EnumLayer.LM_BT_FIGHT;
        } catch (System.Exception ex) {
        }
    }
Exemple #24
0
    public MonsterRole AddSummon(Variant m)
    {
        this.init();
        bool        loading = GRMap.loading;
        MonsterRole result;

        if (loading)
        {
            this.cacheProxy.Add(m);
            result = null;
        }
        else
        {
            Vector3 pos  = new Vector3(m["x"] / 53.333f, 0f, m["y"] / 53.333f);
            int     num  = m["mid"];
            uint    num2 = m["iid"];
            bool    flag = this.m_mapMonster.ContainsKey(num2);
            if (flag)
            {
                this.RemoveMonster(num2);
            }
            SXML   sXML    = this.dMon[num];
            int    num3    = sXML.getInt("obj");
            float  @float  = sXML.getFloat("scale");
            string @string = sXML.getString("name");
            bool   flag2   = num2 <= 0u;
            if (flag2)
            {
                bool flag3 = Globle.m_nTestMonsterID > 0;
                if (flag3)
                {
                    num3 = Globle.m_nTestMonsterID;
                }
            }
            MS0000 mS = new MS0000();
            mS.tempXMl = sXML;
            mS.isBoos  = (sXML.getInt("boss") == 1);
            bool flag4 = @float > 0f;
            if (flag4)
            {
                mS.scale = @float;
            }
            bool flag5 = mS != null;
            if (flag5)
            {
                mS.Init("monster/" + num3, EnumLayer.LM_MONSTER, pos, 0f);
                PlayerNameUIMgr.getInstance().show(mS);
                PlayerNameUIMgr.getInstance().setName(mS, @string, m["owner_name"] + "的小伙伴");
                mS.roleName  = @string;
                mS.monsterid = num;
                bool flag6 = num2 > 0u;
                if (flag6)
                {
                    mS.m_unIID = num2;
                    this.m_mapMonster.Add(num2, mS);
                }
                else
                {
                    mS.isfake  = true;
                    mS.m_unIID = this.idIdx;
                    this.m_mapFakeMonster.Add(this.idIdx, mS);
                    this.idIdx += 1u;
                }
                bool flag7 = !GRMap.loading;
                if (flag7)
                {
                    mS.refreshViewType(2);
                }
                mS.issummon = true;
                mS.summonid = num;
                mS.masterid = m["owner_cid"];
                bool flag8 = mS.masterid == ModelBase <PlayerModel> .getInstance().cid;

                if (flag8)
                {
                    bool flag9 = a3_herohead.instance;
                    if (flag9)
                    {
                        ModelBase <A3_SummonModel> .getInstance().lastatkID = 0u;

                        a3_herohead.instance.refresh_sumHp(m["hp"], m["battleAttrs"]["max_hp"]);
                        a3_herohead.instance.refresh_sumbar();
                        a3_herohead.instance.do_sum_CD = false;
                    }
                }
            }
            this.m_listMonster.Add(mS);
            bool flag10 = mS != null;
            if (flag10)
            {
                base.dispatchEvent(GameEvent.Create(MonsterMgr.EVENT_MONSTER_ADD, this, mS, false));
            }
            bool flag11 = mS != null;
            if (flag11)
            {
                mS.curhp     = m["hp"];
                mS.maxHp     = m["battleAttrs"]["max_hp"];
                mS.owner_cid = m["owner_cid"];
            }
            result = mS;
        }
        return(result);
    }