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); }
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); }
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); } }
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); } }
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; } }
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); }
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; }
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); }
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; }
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); }
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; }
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); }
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); }
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) { } }
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); }