Exemplo n.º 1
0
 public static void EndRaid()
 {
     IsRunning = false;
     RemovePortals();
     ServerManager.Instance.Broadcast(UserInterfaceHelper.Instance.GenerateMsg(Language.Instance.GetMessageFromKey("CALIGOR_REALM_CLOSED"), 0));
     TeleportPlayers();
     ServerManager.Instance.StartedEvents.Remove(EventType.CALIGOR);
     RaidBoss.ShouldRespawn = true;
     RaidBoss.CurrentHp     = 0;
     RaidBoss.GenerateDeath();
     RaidBoss.Monster.RespawnTime = 1;
 }
Exemplo n.º 2
0
        /// <summary>
        /// Writes out all of the .XML files.
        /// </summary>
        public void Write()
        {
            if (!Directory.Exists(Utils.OutputDataFileFolder))
            {
                Directory.CreateDirectory(Utils.OutputDataFileFolder);
            }

            // Must be written first so other Write() methods can leverage calculated values.
            Constants.Write();
            GAME_MASTERS.Write(GameMasters, GameMasterStatsCalculator);

            Moves.Write(PokeMoves.Values, GameMasterStatsCalculator);
            MoveSets.Write(Pokemon.Values, Forms, PokeMoves, ManualDataSettings, GameMasterStatsCalculator);
            PokeStats.Write(Pokemon.Values, ManualDataSettings, GameMasterStatsCalculator);
            RaidBoss.Write(ManualDataSettings, GameMasterStatsCalculator);
            Encounter.Write(ManualDataSettings, GameMasterStatsCalculator);
            Friendship.Write(Friendships, GameMasterStatsCalculator);

            // Must be written last so other Write() methods can update.
            Settings.Write(ManualDataSettings, GameMasterStatsCalculator);
        }
Exemplo n.º 3
0
        // raiddata-e.txt
        // raiddata_begin	id=1	npc_id=29001	npc_level=40	affiliated_area_id=30	loc_x=-21610.000000	loc_y=181594.000000	loc_z=-5734.000000	raid_desc=[]	raiddata_end
        // -> raiddata_begin	id=139	npc_id=25333	npc_level=28	affiliated_area_id=179	loc_x=0.000000	loc_y=0.000000	loc_z=0.000000	raid_desc=[A being that tries to invade the real world by crossing the Dimensional Rift along with the otherworldly devils. Its shape is very unstable because of the Rift's distortion of time and space.]	raiddata_end

        // npcname-e.txt
        // npcname_begin	id=25001	name=[Greyclaw Kutus]	description=[Raid Boss]	rgb[0]=3F	rgb[1]=8B	rgb[2]=FE	reserved1=-1	npcname_end
        // npcname_begin	id=25002	name=[Guard of Kutus]	description=[Raid Fighter]	rgb[0]=3F	rgb[1]=8B	rgb[2]=FE	reserved1=-1	npcname_end
        // npc_pch.txt
        // [hatchling_of_wind] = 1012311


        private void StartButton_Click(object sender, EventArgs e)
        {
            string sRBFile      = "raiddata-e.txt";
            string sNpcNameFile = "npcname-e.txt";
            string sNpcPchFile  = "npc_pch.txt";

            string sRBAIFile = "announce_raid_boss_position_all_rb.txt";
            string sRBNpcPos = "npcpos_all_rb.txt";

            OpenFileDialog.FileName = sRBFile;
            OpenFileDialog.Filter   = "Lineage II client Raid Boss position file (raiddata-e.txt)|raiddata*.txt|All files|*.*";
            if (OpenFileDialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            sRBFile = OpenFileDialog.FileName;

            OpenFileDialog.FileName = sNpcNameFile;
            OpenFileDialog.Filter   = "Lineage II client npcname file (npcname-e.txt)|npcname*.txt|All files|*.*";
            if (OpenFileDialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            sNpcNameFile = OpenFileDialog.FileName;

            OpenFileDialog.FileName = sNpcPchFile;
            OpenFileDialog.Filter   = "Lineage II server npc file (npc_pch.txt)|npc_pch.txt|All files|*.*";
            if (OpenFileDialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            sNpcPchFile = OpenFileDialog.FileName;

            SaveFileDialog.FileName = sRBAIFile;
            SaveFileDialog.Filter   = "Lineage II Raid Boss AI.obj class (announce_raid_boss_position_all_rb.txt)|*.txt|All files|*.*";
            if (SaveFileDialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            sRBAIFile = SaveFileDialog.FileName;

            SaveFileDialog.FileName = sRBNpcPos;
            SaveFileDialog.Filter   = "Lineage II Raid Boss Npcpos(announce_raid_boss_position_all_rb.txt)|*.txt|All files|*.*";
            if (SaveFileDialog.ShowDialog() == DialogResult.Cancel)
            {
                return;
            }
            sRBNpcPos = SaveFileDialog.FileName;

            System.IO.StreamReader inFile;             // = Nothing
            System.IO.StreamWriter outFile;

            var aNpcPch = new string[1];                // storage for ids (29001,25001,...)
            var aBase   = new RaidBoss[1];

            string sTemp;
            int    iTemp;

            string[] aTemp;

            // Reading NpcPch file
            inFile = new System.IO.StreamReader(sNpcPchFile, System.Text.Encoding.Default, true, 1);
            ToolStripProgressBar.Value   = 0;
            ToolStripProgressBar.Maximum = Conversions.ToInteger(inFile.BaseStream.Length);
            while (inFile.EndOfStream != true)
            {
                sTemp = inFile.ReadLine();
                sTemp = sTemp.Trim().Replace(" ", "");
                aTemp = sTemp.Split(Conversions.ToChar("="));

                // npc_pch.txt
                // [hatchling_of_wind] = 1012311

                if (Conversions.ToInteger(aTemp[1].Substring(2, 5)) >= aNpcPch.Length)
                {
                    Array.Resize(ref aNpcPch, Conversions.ToInteger(aTemp[1].Substring(2, 5)) + 1);
                }
                aNpcPch[aNpcPch.Length - 1] = aTemp[0];

                ToolStripProgressBar.Value = Conversions.ToInteger(inFile.BaseStream.Position);
            }
            ToolStripProgressBar.Value = 0;
            inFile.Close();

            // Reading raiddata-e.txt file
            inFile = new System.IO.StreamReader(sRBFile, System.Text.Encoding.Default, true, 1);
            ToolStripProgressBar.Value   = 0;
            ToolStripProgressBar.Maximum = Conversions.ToInteger(inFile.BaseStream.Length);
            while (inFile.EndOfStream != true)
            {
                sTemp = inFile.ReadLine();

                // raiddata-e.txt
                // raiddata_begin	id=1	npc_id=29001	npc_level=40	affiliated_area_id=30	loc_x=-21610.000000	loc_y=181594.000000	loc_z=-5734.000000	raid_desc=[]	raiddata_end
                // -> raiddata_begin	id=139	npc_id=25333	npc_level=28	affiliated_area_id=179	loc_x=0.000000	loc_y=0.000000	loc_z=0.000000	raid_desc=[A being that tries to invade the real world by crossing the Dimensional Rift along with the otherworldly devils. Its shape is very unstable because of the Rift's distortion of time and space.]	raiddata_end

                iTemp = Conversions.ToInteger(Libraries.GetNeedParamFromStr(sTemp, "npc_id"));
                if (!string.IsNullOrEmpty(aNpcPch[iTemp]))
                {
                    Array.Resize(ref aBase, aBase.Length + 1);
                    aBase[aBase.Length - 1].PchName = aNpcPch[iTemp];
                    aBase[aBase.Length - 1].Id      = iTemp;
                    iTemp = aBase.Length - 1;
                    aBase[iTemp].Level = Conversions.ToInteger(Libraries.GetNeedParamFromStr(sTemp, "npc_level"));
                    aBase[iTemp].LocX  = Conversions.ToInteger(Libraries.GetNeedParamFromStr(sTemp, "loc_x"));
                    aBase[iTemp].LocY  = Conversions.ToInteger(Libraries.GetNeedParamFromStr(sTemp, "loc_y"));
                    aBase[iTemp].LocZ  = Conversions.ToInteger(Libraries.GetNeedParamFromStr(sTemp, "loc_z"));
                }

                ToolStripProgressBar.Value = Conversions.ToInteger(inFile.BaseStream.Position);
            }
            ToolStripProgressBar.Value = 0;
            inFile.Close();

            // Reading npcname-e.txt file
            inFile = new System.IO.StreamReader(sNpcNameFile, System.Text.Encoding.Default, true, 1);
            ToolStripProgressBar.Value   = 0;
            ToolStripProgressBar.Maximum = Conversions.ToInteger(inFile.BaseStream.Length);
            int    iTempLevel;
            int    iPrevBossId = -1;
            string sTemp2;

            while (inFile.EndOfStream != true)
            {
                sTemp = inFile.ReadLine();

                // npcname-e.txt
                // npcname_begin	id=25001	name=[Greyclaw Kutus]	description=[Raid Boss]	rgb[0]=3F	rgb[1]=8B	rgb[2]=FE	reserved1=-1	npcname_end
                // npcname_begin	id=25002	name=[Guard of Kutus]	description=[Raid Fighter]	rgb[0]=3F	rgb[1]=8B	rgb[2]=FE	reserved1=-1	npcname_end
                iTemp = Conversions.ToInteger(Libraries.GetNeedParamFromStr(sTemp, "id"));
                var loopTo = aBase.Length - 1;
                for (iTempLevel = 0; iTempLevel <= loopTo; iTempLevel++)
                {
                    if (aBase[iTempLevel].Id == iTemp)
                    {
                        aBase[iTempLevel].Name = Libraries.GetNeedParamFromStr(sTemp, "name").Replace("[", "").Replace("]", "");
                        // aBase(aBase.Length - 1).Privates = Libraries.GetNeedParamFromStr(sTemp, "description")
                        iPrevBossId = iTempLevel;
                    }
                }

                if (GenPrivatesCheckBox.Checked == true)
                {
                    // iPrevBossId
                    sTemp2 = Libraries.GetNeedParamFromStr(sTemp, "description");
                    if (sTemp2.StartsWith("[Raid ") == true & sTemp2.StartsWith("[Raid Boss") == false)
                    {
                        // Found privates
                        iTemp = Conversions.ToInteger(Libraries.GetNeedParamFromStr(sTemp, "id"));
                        if (iTemp != -1)
                        {
                            if (!string.IsNullOrEmpty(aBase[iPrevBossId].Privates))
                            {
                                aBase[iPrevBossId].Privates = aBase[iPrevBossId].Privates + ";";
                            }
                            aBase[iPrevBossId].Privates = aBase[iPrevBossId].Privates + aNpcPch[iTemp].Replace("[", "").Replace("]", "");
                        }
                    }
                }

                ToolStripProgressBar.Value = Conversions.ToInteger(inFile.BaseStream.Position);
            }
            ToolStripProgressBar.Value = 0;
            inFile.Close();


            // WRITE AI class 'announce_raid_boss_position.txt'
            outFile = new System.IO.StreamWriter(sRBAIFile, false, System.Text.Encoding.Unicode, 1);

            // Write header to AI class
            outFile.WriteLine("class 1 announce_raid_boss_position : citizen");
            outFile.WriteLine("parameter_define_begin");
            outFile.WriteLine(Constants.vbTab + "string fnHiPCCafe \"pc.htm\"");
            outFile.WriteLine("parameter_define_end");
            outFile.WriteLine("property_define_begin");
            int iTempLevel2;

            for (iTempLevel = 20; iTempLevel <= 90; iTempLevel += 10)
            {
                // telposlist_begin RaidBossList20_29
                outFile.WriteLine(Constants.vbTab + "telposlist_begin RaidBossList{0}_{1}", iTempLevel, iTempLevel + 9);

                for (iTempLevel2 = 0; iTempLevel2 <= 9; iTempLevel2++)                 // Step 10
                {
                    var loopTo1 = aBase.Length - 1;
                    for (iTemp = 0; iTemp <= loopTo1; iTemp++)
                    {
                        if (aBase[iTemp].Level == iTempLevel + iTempLevel2)
                        {
                            // {"Madness Beast (lv20)"; -54096; 84288; -3512; 0; 0 }
                            if (aBase[iTemp].LocX != 0)
                            {
                                // outFile.WriteLine(vbTab & vbTab & "{""" & aBase(iTemp).Name & " (lv" & aBase(iTemp).Level & ")""; " & aBase(iTemp).LocX & "; " & aBase(iTemp).LocY & "; " & aBase(iTemp).LocZ & "; 0; 0}")
                                outFile.WriteLine(Constants.vbTab + Constants.vbTab + "{\"" + aBase[iTemp].Name + " (lv" + Conversions.ToString(aBase[iTemp].Level) + ")\"; " + Conversions.ToString(aBase[iTemp].LocX) + "; " + Conversions.ToString(aBase[iTemp].LocY) + "; " + Conversions.ToString(aBase[iTemp].LocZ) + "; 0; 0}");
                            }
                        }
                    }
                }

                outFile.WriteLine(Constants.vbTab + "telposlist_end");
            }
            outFile.WriteLine("property_define_end");
            outFile.Close();


            // WRITE NpcPos'
            if (GenPosCheckBox.Checked == true)
            {
                outFile = new System.IO.StreamWriter(sRBNpcPos, false, System.Text.Encoding.Unicode, 1);

                // Write header to AI class

                // territory_begin	[aden24_mb2320_04]	{{123340;93852;-2464;-1864};{124204;93488;-2464;-1864};{124684;93960;-2464;-1864};{124512;94308;-2464;-1864};{123572;94656;-2464;-1864}}	territory_end
                // npcmaker_begin	[aden24_mb2320_04]	initial_spawn=all	maximum_npc=10
                // npc_begin	[kelbar]	pos=anywhere	total=1	respawn=36hour	respawn_rand=24hour	dbname=[kelbar]	dbsaving={death_time;parameters}	npc_end
                // npcmaker_end

                int iTemp2;
                var loopTo2 = aBase.Length - 1;
                for (iTemp = 0; iTemp <= loopTo2; iTemp++)
                {
                    if (aBase[iTemp].LocX != 0)
                    {
                        // territory_begin	[aden24_mb2320_04]	{{123340;93852;-2464;-1864};{124204;93488;-2464;-1864};{124684;93960;-2464;-1864};{124512;94308;-2464;-1864};{123572;94656;-2464;-1864}}	territory_end
                        outFile.Write("territory_begin" + Constants.vbTab);
                        outFile.Write("[raidboss" + Conversions.ToString(iTemp) + "_" + aBase[iTemp].PchName.Replace("[", "").Replace("]", "") + "]" + Constants.vbTab);
                        outFile.Write("{{" + Conversions.ToString(aBase[iTemp].LocX - 200) + ";" + Conversions.ToString(aBase[iTemp].LocY - 200) + ";" + Conversions.ToString(aBase[iTemp].LocZ - 100) + ";" + Conversions.ToString(aBase[iTemp].LocZ + 300) + "};");
                        outFile.Write("{" + Conversions.ToString(aBase[iTemp].LocX + 200) + ";" + Conversions.ToString(aBase[iTemp].LocY - 200) + ";" + Conversions.ToString(aBase[iTemp].LocZ - 100) + ";" + Conversions.ToString(aBase[iTemp].LocZ + 300) + "};");
                        outFile.Write("{" + Conversions.ToString(aBase[iTemp].LocX + 200) + ";" + Conversions.ToString(aBase[iTemp].LocY + 200) + ";" + Conversions.ToString(aBase[iTemp].LocZ - 100) + ";" + Conversions.ToString(aBase[iTemp].LocZ + 300) + "};");
                        outFile.Write("{" + Conversions.ToString(aBase[iTemp].LocX - 200) + ";" + Conversions.ToString(aBase[iTemp].LocY + 200) + ";" + Conversions.ToString(aBase[iTemp].LocZ - 100) + ";" + Conversions.ToString(aBase[iTemp].LocZ + 300) + "}");
                        outFile.WriteLine("}}" + Constants.vbTab + "territory_end");

                        // npcmaker_begin	[aden24_mb2320_04]	initial_spawn=all	maximum_npc=10
                        outFile.Write("npcmaker_begin" + Constants.vbTab);
                        outFile.Write("[raidboss" + Conversions.ToString(iTemp) + "_" + aBase[iTemp].PchName.Replace("[", "").Replace("]", "") + "]" + Constants.vbTab);
                        outFile.Write("initial_spawn=all" + Constants.vbTab);
                        outFile.WriteLine("maximum_npc=10");

                        // npc_begin	[kelbar]	pos=anywhere	total=1	respawn=36hour	respawn_rand=24hour	dbname=[kelbar]	dbsaving={death_time;parameters}	npc_end
                        // Privates=[talakin_archer:talakin_archer:1:0sec;talakin_raider:talakin_raider:1:0sec]
                        outFile.Write("npc_begin" + Constants.vbTab);
                        outFile.Write(aBase[iTemp].PchName + Constants.vbTab + "pos=anywhere" + Constants.vbTab + "total=1" + Constants.vbTab + "respawn=36hour" + Constants.vbTab + "respawn_rand=24hour" + Constants.vbTab + "dbname=" + aBase[iTemp].PchName + Constants.vbTab + "dbsaving={death_time;parameters}" + Constants.vbTab);

                        // Generate Privates list
                        if (GenPrivatesCheckBox.Checked == true)
                        {
                            if (!string.IsNullOrEmpty(aBase[iTemp].Privates))
                            {
                                outFile.Write("Privates=[");
                                aTemp = aBase[iTemp].Privates.Split(Conversions.ToChar(";"));
                                var loopTo3 = aTemp.Length - 1;
                                for (iTemp2 = 0; iTemp2 <= loopTo3; iTemp2++)
                                {
                                    outFile.Write(aTemp[iTemp2] + ":");
                                    outFile.Write(aTemp[iTemp2] + ":");
                                    outFile.Write("1:0sec");
                                    if (iTemp2 < aTemp.Length - 1)
                                    {
                                        outFile.Write(";");
                                    }
                                }
                                outFile.Write("]" + Constants.vbTab);
                            }
                        }

                        outFile.WriteLine("npc_end");

                        // npcmaker_end
                        outFile.WriteLine("npcmaker_end" + Constants.vbNewLine);
                    }
                }
                outFile.Close();
            }


            MessageBox.Show("Complete.");
        }