├── LICENSE ├── README.md ├── SCFEditor ├── Account │ ├── Account.Designer.cs │ ├── Account.cs │ ├── Account.resx │ ├── ExtraAcc.Designer.cs │ ├── ExtraAcc.cs │ ├── ExtraAcc.resx │ ├── VIP.Designer.cs │ ├── VIP.cs │ ├── VIP.resx │ ├── Warehouse.Designer.cs │ ├── Warehouse.cs │ └── Warehouse.resx ├── Character │ ├── Add.Designer.cs │ ├── Add.cs │ ├── Add.resx │ ├── Edit.Designer.cs │ ├── Edit.cs │ ├── Edit.resx │ ├── Item.Designer.cs │ ├── Item.cs │ ├── Item.resx │ ├── Skills.Designer.cs │ ├── Skills.cs │ └── Skills.resx ├── DBLite.cs ├── Extra.cs ├── Find.Designer.cs ├── Find.cs ├── Find.resx ├── Form1.Designer.cs ├── Form1.cs ├── Form1.resx ├── Items │ ├── CharPanel.Designer.cs │ ├── CharPanel.cs │ ├── CharPanel.resx │ ├── EquipEditor.Designer.cs │ ├── EquipEditor.cs │ ├── EquipEditor.resx │ ├── EquipImageCache.cs │ ├── EquipItem.cs │ ├── EquipPanel.Designer.cs │ ├── EquipPanel.cs │ ├── EquipPanel.resx │ ├── EquipProperty.Designer.cs │ ├── EquipProperty.cs │ ├── EquipProperty.resx │ ├── Serial.Designer.cs │ ├── Serial.cs │ └── Serial.resx ├── Logo Small.png ├── Megaman.ico ├── Program.cs ├── Properties │ ├── AssemblyInfo.cs │ ├── Resources.Designer.cs │ ├── Resources.resx │ ├── Settings.Designer.cs │ └── Settings.settings ├── Resources │ ├── char-1.jpg │ ├── package-1.jpg │ ├── unknownItem.jpg │ └── warehouse-1.jpg ├── Reward.Designer.cs ├── Reward.cs ├── Reward.resx ├── Splash.Designer.cs ├── Splash.cs ├── Splash.resx ├── TitanEditor.csproj ├── bin │ └── x86 │ │ └── Release │ │ └── Config.ini └── ini.cs ├── TitanEditor.sln ├── TitanEditor.suo └── TitanEditorAdds.exe /README.md: -------------------------------------------------------------------------------- 1 | # TitanEditor 2 | TitanEditor 3 | -------------------------------------------------------------------------------- /SCFEditor/Account/Account.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace TitanEditor.Account 10 | { 11 | public partial class Account : Form 12 | { 13 | public Account() 14 | { 15 | InitializeComponent(); 16 | } 17 | 18 | public string name; 19 | bool edit = false; 20 | 21 | private void Account_Load(object sender, EventArgs e) 22 | { 23 | if (name != null) 24 | { 25 | edit = true; 26 | tbox_Account.Text = name; 27 | tbox_Account.ReadOnly = true; 28 | if (ini.MD5 == false) 29 | { 30 | DBLite.dbMe.Read("SELECT memb__pwd,memb_name,mail_addr,fpas_ques,fpas_answ FROM MEMB_INFO WHERE memb___id = '" + name + "'"); 31 | DBLite.dbMe.Fetch(); 32 | tbox_Password.Text = DBLite.dbMe.GetAsString("memb__pwd"); 33 | tbox_Name.Text = DBLite.dbMe.GetAsString("memb_name"); 34 | tbox_Email.Text = DBLite.dbMe.GetAsString("mail_addr"); 35 | tbox_Question.Text = DBLite.dbMe.GetAsString("fpas_ques"); 36 | tbox_Answer.Text = DBLite.dbMe.GetAsString("fpas_answ"); 37 | } 38 | else 39 | { 40 | DBLite.dbMe.Read("SELECT memb_name,mail_addr,fpas_ques,fpas_answ FROM MEMB_INFO WHERE memb___id = '" + name + "'"); 41 | DBLite.dbMe.Fetch(); 42 | tbox_Name.Text = DBLite.dbMe.GetAsString("memb_name"); 43 | tbox_Email.Text = DBLite.dbMe.GetAsString("mail_addr"); 44 | tbox_Question.Text = DBLite.dbMe.GetAsString("fpas_ques"); 45 | tbox_Answer.Text = DBLite.dbMe.GetAsString("fpas_answ"); 46 | } 47 | DBLite.dbMe.Close(); 48 | } 49 | } 50 | 51 | private void button_Ok_Click(object sender, EventArgs e) 52 | { 53 | if (edit == false) 54 | { 55 | if (ini.MD5 == false) 56 | { 57 | DBLite.dbMe.Exec("INSERT INTO MEMB_INFO (memb___id,memb__pwd,memb_name,sno__numb,mail_addr,fpas_ques,fpas_answ,appl_days,modi_days,out__days,true_days,mail_chek,bloc_code,ctl1_code) VALUES ('" + tbox_Account.Text + "','" + tbox_Password.Text + "','" + tbox_Name + "','1','" + tbox_Email.Text + "','" + tbox_Question.Text + "','" + tbox_Answer.Text + "','20080101','20080101','20080101','20080101','1','0','0')"); 58 | DBLite.dbMe.Close(); 59 | } 60 | else 61 | { 62 | DBLite.dbMe.Exec("INSERT INTO MEMB_INFO (memb___id,memb_name,sno__numb,mail_addr,fpas_ques,fpas_answ,appl_days,modi_days,out__days,true_days,mail_chek,bloc_code,ctl1_code) VALUES ('" + tbox_Account.Text + "','" + tbox_Name.Text + "','1','" + tbox_Email.Text + "','" + tbox_Question.Text + "','" + tbox_Answer.Text + "','20080101','20080101','20080101','20080101','1','0','0')"); 63 | DBLite.dbMe.Close(); 64 | DBLite.dbMe.Exec("EXEC Encript '" + tbox_Password.Text + "','" + tbox_Account.Text + "'"); 65 | DBLite.dbMe.Close(); 66 | } 67 | MessageBox.Show("Account Added", "Titan Editor", MessageBoxButtons.OK); 68 | DialogResult = DialogResult.OK; 69 | Close(); 70 | } 71 | else 72 | { 73 | if (ini.MD5 == false) 74 | { 75 | string Pass = ""; 76 | if(tbox_Password.Text.Length > 0) 77 | Pass = "memb__pwd = '" + tbox_Password.Text + "',"; 78 | DBLite.dbMe.Exec("UPDATE MEMB_INFO SET " + Pass + "memb_name = '" + tbox_Name.Text + "',mail_addr = '" + tbox_Email.Text + "',fpas_ques = '" + tbox_Question.Text + "',fpas_answ = '" + tbox_Answer.Text + "' WHERE memb___id = '" + name + "'"); 79 | DBLite.dbMe.Close(); 80 | } 81 | else 82 | { 83 | DBLite.dbMe.Exec("UPDATE MEMB_INFO SET memb_name = '" + tbox_Name.Text + "',mail_addr = '" + tbox_Email.Text + "',fpas_ques = '" + tbox_Question.Text + "',fpas_answ = '" + tbox_Answer.Text + "' WHERE memb___id = '" + name + "'"); 84 | DBLite.dbMe.Close(); 85 | if (tbox_Password.Text.Length > 0) 86 | { 87 | DBLite.dbMe.Exec("EXEC Encript '" + tbox_Password.Text + "','" + tbox_Account.Text + "'"); 88 | DBLite.dbMe.Close(); 89 | } 90 | } 91 | MessageBox.Show("Account Updated","Titan Editor",MessageBoxButtons.OK); 92 | DialogResult = DialogResult.Cancel; 93 | Close(); 94 | } 95 | } 96 | 97 | private void button_Cancel_Click(object sender, EventArgs e) 98 | { 99 | DialogResult = DialogResult.Cancel; 100 | Close(); 101 | } 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /SCFEditor/Account/Account.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SCFEditor/Account/ExtraAcc.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace TitanEditor.Account 10 | { 11 | public partial class ExtraAcc : Form 12 | { 13 | public string name; 14 | 15 | public ExtraAcc() 16 | { 17 | InitializeComponent(); 18 | } 19 | 20 | private void button_Ok_Click(object sender, EventArgs e) 21 | { 22 | DBLite.dbMe.Exec("UPDATE MEMB_INFO SET SCFLuckyCoins = " + tbox_LuckyCoins.Text + ",SCFExtWarehouse = " + tbox_ExtWare.Text + ",WCoin = " + tbox_WCoins.Text + ",WCoinP = " + tbox_WCoinsP.Text + ",GoblinCoin = " + tbox_GoblinCoins.Text + " WHERE memb___id = '" + name + "'"); 23 | DBLite.dbMe.Close(); 24 | 25 | MessageBox.Show("Account Updated", "Titan Editor", MessageBoxButtons.OK); 26 | DialogResult = DialogResult.OK; 27 | Close(); 28 | } 29 | 30 | private void Extra_Load(object sender, EventArgs e) 31 | { 32 | DBLite.dbMe.Read("SELECT SCFLuckyCoins,SCFExtWarehouse,WCoin,WCoinP,GoblinCoin FROM MEMB_INFO WHERE memb___id = '" + name + "'"); 33 | DBLite.dbMe.Fetch(); 34 | tbox_LuckyCoins.Text = DBLite.dbMe.GetAsString("SCFLuckyCoins"); 35 | tbox_ExtWare.Text = DBLite.dbMe.GetAsString("SCFExtWarehouse"); 36 | tbox_WCoins.Text = DBLite.dbMe.GetAsString("WCoin"); 37 | tbox_WCoinsP.Text = DBLite.dbMe.GetAsString("WCoinP"); 38 | tbox_GoblinCoins.Text = DBLite.dbMe.GetAsString("GoblinCoin"); 39 | DBLite.dbMe.Close(); 40 | } 41 | 42 | private void button_Cancel_Click(object sender, EventArgs e) 43 | { 44 | DialogResult = DialogResult.Cancel; 45 | Close(); 46 | } 47 | 48 | private void tbox_LuckyCoins_KeyPress(object sender, KeyPressEventArgs e) 49 | { 50 | if ((e.KeyChar < '0' || e.KeyChar > '9') || (e.KeyChar == 8)) 51 | e.Handled = true; 52 | } 53 | 54 | private void tbox_ExtWare_KeyPress(object sender, KeyPressEventArgs e) 55 | { 56 | if ((e.KeyChar < '0' || e.KeyChar > '9') || (e.KeyChar == 8)) 57 | e.Handled = true; 58 | } 59 | 60 | private void tbox_WCoins_KeyPress(object sender, KeyPressEventArgs e) 61 | { 62 | if ((e.KeyChar < '0' || e.KeyChar > '9') || (e.KeyChar == 8)) 63 | e.Handled = true; 64 | } 65 | 66 | private void tbox_WCoinsP_KeyPress(object sender, KeyPressEventArgs e) 67 | { 68 | if ((e.KeyChar < '0' || e.KeyChar > '9') || (e.KeyChar == 8)) 69 | e.Handled = true; 70 | } 71 | 72 | private void tbox_GoblinCoins_KeyPress(object sender, KeyPressEventArgs e) 73 | { 74 | if ((e.KeyChar < '0' || e.KeyChar > '9') || (e.KeyChar == 8)) 75 | e.Handled = true; 76 | } 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /SCFEditor/Account/ExtraAcc.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SCFEditor/Account/VIP.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace TitanEditor.Account 10 | { 11 | public partial class VIP : Form 12 | { 13 | public VIP() 14 | { 15 | InitializeComponent(); 16 | } 17 | 18 | private bool ReloadAccount = false; 19 | private int VIPDays = 0; 20 | 21 | private void vipmoneyBtn_KeyPress(object sender, KeyPressEventArgs e) 22 | { 23 | if ((e.KeyChar < '0' || e.KeyChar > '9') || (e.KeyChar == 8)) 24 | e.Handled = true; 25 | } 26 | 27 | private void vipdaysBtn_KeyPress(object sender, KeyPressEventArgs e) 28 | { 29 | if ((e.KeyChar < '0' || e.KeyChar > '9') || (e.KeyChar == 8)) 30 | e.Handled = true; 31 | } 32 | 33 | private void account_Rld_Click(object sender, EventArgs e) 34 | { 35 | comboAccount.Items.Clear(); 36 | string Values = ""; 37 | 38 | if (normalRBtn.Checked == true) 39 | Values = "<="; 40 | else 41 | Values = ">"; 42 | 43 | DBLite.dbMe.Read("SELECT memb___id FROM MEMB_INFO WHERE (SCFVIPDays-DateDiff(dd , out__days,getdate())) " + Values + " 0 ORDER BY memb___id"); 44 | while (DBLite.dbMe.Fetch()) 45 | { 46 | comboAccount.Items.Add(DBLite.dbMe.GetAsString("memb___id")); 47 | } 48 | DBLite.dbMe.Close(); 49 | 50 | ReloadAccount = true; 51 | } 52 | 53 | private void comboAccount_SelectedIndexChanged(object sender, EventArgs e) 54 | { 55 | SearchData(); 56 | } 57 | 58 | private void normalRBtn_CheckedChanged(object sender, EventArgs e) 59 | { 60 | comboAccount.Items.Clear(); 61 | vipmoneyTxt.Text = "0"; 62 | vipdaysTxt.Text = "0"; 63 | wareTxt.Text = "0"; 64 | VIPDays = 0; 65 | ReloadAccount = false; 66 | } 67 | 68 | private void vipRBtn_CheckedChanged(object sender, EventArgs e) 69 | { 70 | comboAccount.Items.Clear(); 71 | vipmoneyTxt.Text = "0"; 72 | vipdaysTxt.Text = "0"; 73 | wareTxt.Text = "0"; 74 | VIPDays = 0; 75 | ReloadAccount = false; 76 | } 77 | 78 | private void SearchData() 79 | { 80 | VIPDays = 0; 81 | vipmoneyTxt.Text = "0"; 82 | vipdaysTxt.Text = "0"; 83 | wareTxt.Text = "0"; 84 | if (comboAccount.Text != "") 85 | { 86 | DBLite.dbMe.Read("SELECT SCFVipDays,SCFVipMoney,SCFWareVipCount FROM MEMB_INFO WHERE memb___id = '" + comboAccount.Text + "'"); 87 | if (DBLite.dbMe.Fetch()) 88 | { 89 | vipdaysTxt.Text = DBLite.dbMe.GetAsString("SCFVipDays"); 90 | VIPDays = Convert.ToInt32(vipdaysTxt.Text); 91 | vipmoneyTxt.Text = DBLite.dbMe.GetAsString("SCFVipMoney"); 92 | wareTxt.Text = DBLite.dbMe.GetAsString("SCFWareVipCount"); 93 | } 94 | DBLite.dbMe.Close(); 95 | } 96 | } 97 | 98 | private void button_Save_Click(object sender, EventArgs e) 99 | { 100 | if(vipmoneyTxt.Text == "") 101 | { 102 | MessageBox.Show("ERROR: Please add vip money"); 103 | return; 104 | } 105 | if (vipdaysTxt.Text == "") 106 | { 107 | MessageBox.Show("ERROR: Please add vip days"); 108 | return; 109 | } 110 | if (wareTxt.Text == "") 111 | { 112 | MessageBox.Show("ERROR: Please add Ware Count"); 113 | return; 114 | } 115 | 116 | string Value = " "; 117 | if (VIPDays.ToString() != vipdaysTxt.Text && VIPDays == 0) 118 | Value = ",out__days=getdate() "; 119 | 120 | if (Convert.ToInt32(vipdaysTxt.Text) == 0) 121 | { 122 | Value += ",SCFIsVip = 0 "; 123 | }else 124 | { 125 | Value += ",SCFIsVip = 1 "; 126 | } 127 | 128 | DBLite.dbMe.Exec("UPDATE MEMB_INFO SET SCFWareVipCount = " + wareTxt.Text + ",SCFVipMoney = " + vipmoneyTxt.Text + ",SCFVipDays = " + vipdaysTxt.Text + Value + "WHERE memb___id = '" + comboAccount.Text + "'"); 129 | DBLite.dbMe.Close(); 130 | 131 | if (comboAccount.SelectedItem != null) 132 | { 133 | if (normalRBtn.Checked == true && Convert.ToInt32(vipdaysTxt.Text) != 0) 134 | { 135 | comboAccount.Items.Remove(comboAccount.SelectedItem); 136 | vipmoneyTxt.Text = "0"; 137 | vipdaysTxt.Text = "0"; 138 | wareTxt.Text = "0"; 139 | VIPDays = 0; 140 | } 141 | else if (vipRBtn.Checked == true && Convert.ToInt32(vipdaysTxt.Text) == 0) 142 | { 143 | comboAccount.Items.Remove(comboAccount.SelectedItem); 144 | vipmoneyTxt.Text = "0"; 145 | vipdaysTxt.Text = "0"; 146 | wareTxt.Text = "0"; 147 | VIPDays = 0; 148 | } 149 | } 150 | 151 | MessageBox.Show("Account Updated", "Titan Editor", MessageBoxButtons.OK); 152 | } 153 | 154 | private void accountFind_Click(object sender, EventArgs e) 155 | { 156 | Find formFind = new Find(); 157 | formFind.isAccount = true; 158 | if (formFind.ShowDialog() == DialogResult.OK) 159 | { 160 | comboAccount.Text = Extra.FindResult.AccountID; 161 | SearchData(); 162 | } 163 | } 164 | } 165 | } 166 | -------------------------------------------------------------------------------- /SCFEditor/Account/VIP.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | -------------------------------------------------------------------------------- /SCFEditor/Account/Warehouse.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TitanEditor.Account 2 | { 3 | partial class Warehouse 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Warehouse)); 32 | this.button2 = new System.Windows.Forms.Button(); 33 | this.button1 = new System.Windows.Forms.Button(); 34 | this.comboVault = new System.Windows.Forms.ComboBox(); 35 | this.equipPanel1 = new TitanEditor.EquipPanel(); 36 | this.equipEditor1 = new TitanEditor.EquipEditor(); 37 | this.label1 = new System.Windows.Forms.Label(); 38 | this.tbox_zen = new System.Windows.Forms.TextBox(); 39 | this.Label22 = new System.Windows.Forms.Label(); 40 | this.equipPanel2 = new TitanEditor.EquipPanel(); 41 | this.SuspendLayout(); 42 | // 43 | // button2 44 | // 45 | this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Popup; 46 | this.button2.Location = new System.Drawing.Point(529, 434); 47 | this.button2.Name = "button2"; 48 | this.button2.Size = new System.Drawing.Size(75, 23); 49 | this.button2.TabIndex = 6; 50 | this.button2.Text = "&Close"; 51 | this.button2.UseVisualStyleBackColor = true; 52 | this.button2.Click += new System.EventHandler(this.button2_Click); 53 | // 54 | // button1 55 | // 56 | this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Popup; 57 | this.button1.Location = new System.Drawing.Point(448, 434); 58 | this.button1.Name = "button1"; 59 | this.button1.Size = new System.Drawing.Size(75, 23); 60 | this.button1.TabIndex = 5; 61 | this.button1.Text = "&Save"; 62 | this.button1.UseVisualStyleBackColor = true; 63 | this.button1.Click += new System.EventHandler(this.button1_Click); 64 | // 65 | // comboVault 66 | // 67 | this.comboVault.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 68 | this.comboVault.FormattingEnabled = true; 69 | this.comboVault.Location = new System.Drawing.Point(121, 12); 70 | this.comboVault.Name = "comboVault"; 71 | this.comboVault.Size = new System.Drawing.Size(88, 21); 72 | this.comboVault.TabIndex = 7; 73 | this.comboVault.SelectedIndexChanged += new System.EventHandler(this.comboVault_SelectedIndexChanged); 74 | // 75 | // equipPanel1 76 | // 77 | this.equipPanel1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("equipPanel1.BackgroundImage"))); 78 | this.equipPanel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; 79 | this.equipPanel1.Cursor = System.Windows.Forms.Cursors.Cross; 80 | this.equipPanel1.Location = new System.Drawing.Point(9, 66); 81 | this.equipPanel1.Margin = new System.Windows.Forms.Padding(0); 82 | this.equipPanel1.Name = "equipPanel1"; 83 | this.equipPanel1.Size = new System.Drawing.Size(200, 406); 84 | this.equipPanel1.TabIndex = 1; 85 | // 86 | // equipEditor1 87 | // 88 | this.equipEditor1.DefaultDurability = ((byte)(255)); 89 | this.equipEditor1.Location = new System.Drawing.Point(422, 36); 90 | this.equipEditor1.Margin = new System.Windows.Forms.Padding(0); 91 | this.equipEditor1.Name = "equipEditor1"; 92 | this.equipEditor1.Size = new System.Drawing.Size(231, 395); 93 | this.equipEditor1.TabIndex = 0; 94 | // 95 | // label1 96 | // 97 | this.label1.AutoSize = true; 98 | this.label1.Location = new System.Drawing.Point(10, 16); 99 | this.label1.Name = "label1"; 100 | this.label1.Size = new System.Drawing.Size(105, 13); 101 | this.label1.TabIndex = 8; 102 | this.label1.Text = "Warehouse Number:"; 103 | // 104 | // tbox_zen 105 | // 106 | this.tbox_zen.Location = new System.Drawing.Point(47, 39); 107 | this.tbox_zen.MaxLength = 10; 108 | this.tbox_zen.Name = "tbox_zen"; 109 | this.tbox_zen.Size = new System.Drawing.Size(162, 20); 110 | this.tbox_zen.TabIndex = 24; 111 | // 112 | // Label22 113 | // 114 | this.Label22.AutoSize = true; 115 | this.Label22.ForeColor = System.Drawing.Color.Black; 116 | this.Label22.Location = new System.Drawing.Point(12, 42); 117 | this.Label22.Name = "Label22"; 118 | this.Label22.Size = new System.Drawing.Size(29, 13); 119 | this.Label22.TabIndex = 23; 120 | this.Label22.Text = "Zen:"; 121 | // 122 | // equipPanel2 123 | // 124 | this.equipPanel2.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("equipPanel2.BackgroundImage"))); 125 | this.equipPanel2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; 126 | this.equipPanel2.Cursor = System.Windows.Forms.Cursors.Cross; 127 | this.equipPanel2.Location = new System.Drawing.Point(214, 66); 128 | this.equipPanel2.Margin = new System.Windows.Forms.Padding(0); 129 | this.equipPanel2.Name = "equipPanel2"; 130 | this.equipPanel2.Size = new System.Drawing.Size(200, 406); 131 | this.equipPanel2.TabIndex = 25; 132 | // 133 | // Warehouse 134 | // 135 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 136 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 137 | this.ClientSize = new System.Drawing.Size(666, 469); 138 | this.Controls.Add(this.equipPanel2); 139 | this.Controls.Add(this.tbox_zen); 140 | this.Controls.Add(this.Label22); 141 | this.Controls.Add(this.label1); 142 | this.Controls.Add(this.comboVault); 143 | this.Controls.Add(this.button2); 144 | this.Controls.Add(this.button1); 145 | this.Controls.Add(this.equipPanel1); 146 | this.Controls.Add(this.equipEditor1); 147 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; 148 | this.Name = "Warehouse"; 149 | this.ShowInTaskbar = false; 150 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 151 | this.Text = "Warehouse"; 152 | this.Load += new System.EventHandler(this.Warehouse_Load); 153 | this.ResumeLayout(false); 154 | this.PerformLayout(); 155 | 156 | } 157 | 158 | #endregion 159 | 160 | private EquipEditor equipEditor1; 161 | private EquipPanel equipPanel1; 162 | private System.Windows.Forms.Button button2; 163 | private System.Windows.Forms.Button button1; 164 | private System.Windows.Forms.ComboBox comboVault; 165 | private System.Windows.Forms.Label label1; 166 | internal System.Windows.Forms.TextBox tbox_zen; 167 | internal System.Windows.Forms.Label Label22; 168 | private EquipPanel equipPanel2; 169 | } 170 | } -------------------------------------------------------------------------------- /SCFEditor/Account/Warehouse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace TitanEditor.Account 10 | { 11 | public partial class Warehouse : Form 12 | { 13 | public Warehouse() 14 | { 15 | InitializeComponent(); 16 | } 17 | 18 | public string AccountName; 19 | 20 | struct warehouses 21 | { 22 | public int Num; 23 | public byte[] items; 24 | public int Money; 25 | } 26 | warehouses[] ware = new warehouses[1]; 27 | 28 | protected void loadAllWare(string accountName) 29 | { 30 | try 31 | { 32 | DBLite.dbMu.Read("select Items,money from warehouse where AccountID = '" + accountName + "'"); 33 | DBLite.dbMu.Fetch(); 34 | ware[0].Num = 0; 35 | ware[0].items = DBLite.dbMu.GetAsBinary("Items"); 36 | ware[0].Money = DBLite.dbMu.GetAsInteger("money"); 37 | DBLite.dbMu.Close(); 38 | comboVault.Items.Add("0"); 39 | 40 | DBLite.dbMu.Read("SELECT items,SCFExtWare,money FROM ExtendedWarehouse WHERE AccountID = '" + accountName + "'"); 41 | while (DBLite.dbMu.Fetch()) 42 | { 43 | int val = ware.Length; 44 | Array.Resize(ref ware, val + 1); 45 | ware[val].items = DBLite.dbMu.GetAsBinary("Items"); 46 | ware[val].Num = DBLite.dbMu.GetAsInteger("SCFExtWare"); 47 | ware[val].Money = DBLite.dbMu.GetAsInteger("money"); 48 | comboVault.Items.Add(ware[val].Num.ToString()); 49 | } 50 | DBLite.dbMu.Close(); 51 | } 52 | catch (Exception ex) 53 | { 54 | MessageBox.Show(ex.Message); 55 | } 56 | } 57 | 58 | public int GetWareNum(int index) 59 | { 60 | for (int i = 0; i < ware.Length; i++) 61 | { 62 | if (ware[i].Num == index) 63 | return i; 64 | } 65 | return -1; 66 | } 67 | 68 | private void Warehouse_Load(object sender, EventArgs e) 69 | { 70 | Text = AccountName + " Warehouse"; 71 | equipPanel1.setSize(8, 15); 72 | equipPanel1.Editor = equipEditor1; 73 | equipPanel2.setSize(8, 15); 74 | equipPanel2.Editor = equipEditor1; 75 | equipEditor1.LoadData(); 76 | 77 | loadAllWare(AccountName); 78 | if (ware[0].items != null) 79 | { 80 | comboVault.SelectedIndex = 0; 81 | } 82 | else 83 | { 84 | MessageBox.Show("Vault its not created!", "Titan Editor", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); 85 | Close(); 86 | } 87 | } 88 | 89 | private void button2_Click(object sender, EventArgs e) 90 | { 91 | Close(); 92 | } 93 | 94 | private void button1_Click(object sender, EventArgs e) 95 | { 96 | int index = GetWareNum(comboVault.SelectedIndex); 97 | if(index != -1) 98 | { 99 | string sql; 100 | if (comboVault.SelectedIndex == 0) 101 | sql = string.Format("update warehouse set Items=0x{0}{1}, Money = {2} where AccountId = '{3}'", equipPanel1.getEquipCodes(), equipPanel2.getEquipCodes(), tbox_zen.Text, AccountName); 102 | else 103 | sql = string.Format("update ExtendedWarehouse set Items=0x{0}{1}, Money = {2} where AccountId = '{3}' AND SCFExtWare = {4}", equipPanel1.getEquipCodes(), equipPanel2.getEquipCodes(), tbox_zen.Text, AccountName, index); 104 | 105 | DBLite.dbMu.Exec(sql); 106 | DBLite.dbMu.Close(); 107 | MessageBox.Show("Warehouse Edited", "Titan Editor", MessageBoxButtons.OK); 108 | Close(); 109 | }else 110 | { 111 | MessageBox.Show(string.Format("[{0}] Error: Saving Warehouse!", AccountName)); 112 | } 113 | } 114 | 115 | private void comboVault_SelectedIndexChanged(object sender, EventArgs e) 116 | { 117 | int index = GetWareNum(comboVault.SelectedIndex); 118 | if (index != -1) 119 | { 120 | equipPanel1.clearData(); 121 | if (!equipPanel1.loadItemsByCodes(ware[index].items, 0, ware[index].items.Length/2)) 122 | { 123 | MessageBox.Show(string.Format("[{0}] Error: Loading Warehouse!", AccountName)); 124 | } 125 | equipPanel2.clearData(); 126 | //if (!equipPanel2.loadItemsByCodes(ware[index].items, CharPanel.EquipNum * EquipItem.ITEM_SIZE, ware[index].items.Length - CharPanel.EquipNum * EquipItem.ITEM_SIZE - equipPanel2.XNum * equipPanel2.YNum * EquipItem.ITEM_SIZE)) 127 | if (!equipPanel2.loadItemsByCodes(ware[index].items, ware[index].items.Length / 2, ware[index].items.Length)) 128 | { 129 | MessageBox.Show(string.Format("[{0}] Error: Loading Warehouse ex!", AccountName)); 130 | } 131 | tbox_zen.Text = ware[index].Money.ToString(); 132 | } 133 | else 134 | { 135 | comboVault.SelectedIndex = 0; 136 | } 137 | } 138 | } 139 | } 140 | -------------------------------------------------------------------------------- /SCFEditor/Character/Add.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TitanEditor.Character 2 | { 3 | partial class Add 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 32 | this.radioButton1 = new System.Windows.Forms.RadioButton(); 33 | this.radioButton2 = new System.Windows.Forms.RadioButton(); 34 | this.radioButton3 = new System.Windows.Forms.RadioButton(); 35 | this.radioButton4 = new System.Windows.Forms.RadioButton(); 36 | this.radioButton5 = new System.Windows.Forms.RadioButton(); 37 | this.radioButton6 = new System.Windows.Forms.RadioButton(); 38 | this.radioButton7 = new System.Windows.Forms.RadioButton(); 39 | this.label1 = new System.Windows.Forms.Label(); 40 | this.textBox1 = new System.Windows.Forms.TextBox(); 41 | this.button1 = new System.Windows.Forms.Button(); 42 | this.groupBox1.SuspendLayout(); 43 | this.SuspendLayout(); 44 | // 45 | // groupBox1 46 | // 47 | this.groupBox1.Controls.Add(this.radioButton7); 48 | this.groupBox1.Controls.Add(this.radioButton6); 49 | this.groupBox1.Controls.Add(this.radioButton5); 50 | this.groupBox1.Controls.Add(this.radioButton4); 51 | this.groupBox1.Controls.Add(this.radioButton3); 52 | this.groupBox1.Controls.Add(this.radioButton2); 53 | this.groupBox1.Controls.Add(this.radioButton1); 54 | this.groupBox1.ForeColor = System.Drawing.Color.Blue; 55 | this.groupBox1.Location = new System.Drawing.Point(5, 7); 56 | this.groupBox1.Name = "groupBox1"; 57 | this.groupBox1.Size = new System.Drawing.Size(110, 183); 58 | this.groupBox1.TabIndex = 0; 59 | this.groupBox1.TabStop = false; 60 | this.groupBox1.Text = "Class"; 61 | // 62 | // radioButton1 63 | // 64 | this.radioButton1.AutoSize = true; 65 | this.radioButton1.ForeColor = System.Drawing.Color.Black; 66 | this.radioButton1.Location = new System.Drawing.Point(6, 19); 67 | this.radioButton1.Name = "radioButton1"; 68 | this.radioButton1.Size = new System.Drawing.Size(84, 17); 69 | this.radioButton1.TabIndex = 1; 70 | this.radioButton1.TabStop = true; 71 | this.radioButton1.Text = "Dark Wizard"; 72 | this.radioButton1.UseVisualStyleBackColor = true; 73 | // 74 | // radioButton2 75 | // 76 | this.radioButton2.AutoSize = true; 77 | this.radioButton2.ForeColor = System.Drawing.Color.Black; 78 | this.radioButton2.Location = new System.Drawing.Point(6, 42); 79 | this.radioButton2.Name = "radioButton2"; 80 | this.radioButton2.Size = new System.Drawing.Size(81, 17); 81 | this.radioButton2.TabIndex = 2; 82 | this.radioButton2.TabStop = true; 83 | this.radioButton2.Text = "Dark Knight"; 84 | this.radioButton2.UseVisualStyleBackColor = true; 85 | // 86 | // radioButton3 87 | // 88 | this.radioButton3.AutoSize = true; 89 | this.radioButton3.ForeColor = System.Drawing.Color.Black; 90 | this.radioButton3.Location = new System.Drawing.Point(6, 65); 91 | this.radioButton3.Name = "radioButton3"; 92 | this.radioButton3.Size = new System.Drawing.Size(62, 17); 93 | this.radioButton3.TabIndex = 3; 94 | this.radioButton3.TabStop = true; 95 | this.radioButton3.Text = "Fairy Elf"; 96 | this.radioButton3.UseVisualStyleBackColor = true; 97 | // 98 | // radioButton4 99 | // 100 | this.radioButton4.AutoSize = true; 101 | this.radioButton4.ForeColor = System.Drawing.Color.Black; 102 | this.radioButton4.Location = new System.Drawing.Point(6, 88); 103 | this.radioButton4.Name = "radioButton4"; 104 | this.radioButton4.Size = new System.Drawing.Size(75, 17); 105 | this.radioButton4.TabIndex = 4; 106 | this.radioButton4.TabStop = true; 107 | this.radioButton4.Text = "Summoner"; 108 | this.radioButton4.UseVisualStyleBackColor = true; 109 | // 110 | // radioButton5 111 | // 112 | this.radioButton5.AutoSize = true; 113 | this.radioButton5.ForeColor = System.Drawing.Color.Black; 114 | this.radioButton5.Location = new System.Drawing.Point(6, 111); 115 | this.radioButton5.Name = "radioButton5"; 116 | this.radioButton5.Size = new System.Drawing.Size(99, 17); 117 | this.radioButton5.TabIndex = 5; 118 | this.radioButton5.TabStop = true; 119 | this.radioButton5.Text = "Magic Gladiator"; 120 | this.radioButton5.UseVisualStyleBackColor = true; 121 | // 122 | // radioButton6 123 | // 124 | this.radioButton6.AutoSize = true; 125 | this.radioButton6.ForeColor = System.Drawing.Color.Black; 126 | this.radioButton6.Location = new System.Drawing.Point(6, 134); 127 | this.radioButton6.Name = "radioButton6"; 128 | this.radioButton6.Size = new System.Drawing.Size(72, 17); 129 | this.radioButton6.TabIndex = 6; 130 | this.radioButton6.TabStop = true; 131 | this.radioButton6.Text = "Dark Lord"; 132 | this.radioButton6.UseVisualStyleBackColor = true; 133 | // 134 | // radioButton7 135 | // 136 | this.radioButton7.AutoSize = true; 137 | this.radioButton7.ForeColor = System.Drawing.Color.Black; 138 | this.radioButton7.Location = new System.Drawing.Point(6, 157); 139 | this.radioButton7.Name = "radioButton7"; 140 | this.radioButton7.Size = new System.Drawing.Size(86, 17); 141 | this.radioButton7.TabIndex = 7; 142 | this.radioButton7.TabStop = true; 143 | this.radioButton7.Text = "Rage Fighter"; 144 | this.radioButton7.UseVisualStyleBackColor = true; 145 | // 146 | // label1 147 | // 148 | this.label1.AutoSize = true; 149 | this.label1.Location = new System.Drawing.Point(2, 202); 150 | this.label1.Name = "label1"; 151 | this.label1.Size = new System.Drawing.Size(38, 13); 152 | this.label1.TabIndex = 1; 153 | this.label1.Text = "Name:"; 154 | // 155 | // textBox1 156 | // 157 | this.textBox1.Location = new System.Drawing.Point(5, 218); 158 | this.textBox1.Name = "textBox1"; 159 | this.textBox1.Size = new System.Drawing.Size(110, 20); 160 | this.textBox1.TabIndex = 2; 161 | // 162 | // button1 163 | // 164 | this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Popup; 165 | this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 166 | this.button1.Location = new System.Drawing.Point(5, 244); 167 | this.button1.Name = "button1"; 168 | this.button1.Size = new System.Drawing.Size(110, 23); 169 | this.button1.TabIndex = 3; 170 | this.button1.Text = "&Add"; 171 | this.button1.UseVisualStyleBackColor = true; 172 | this.button1.Click += new System.EventHandler(this.button1_Click); 173 | // 174 | // Add 175 | // 176 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 177 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 178 | this.ClientSize = new System.Drawing.Size(120, 274); 179 | this.Controls.Add(this.button1); 180 | this.Controls.Add(this.textBox1); 181 | this.Controls.Add(this.label1); 182 | this.Controls.Add(this.groupBox1); 183 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; 184 | this.Name = "Add"; 185 | this.ShowInTaskbar = false; 186 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 187 | this.Text = "New Character"; 188 | this.Load += new System.EventHandler(this.Add_Load); 189 | this.groupBox1.ResumeLayout(false); 190 | this.groupBox1.PerformLayout(); 191 | this.ResumeLayout(false); 192 | this.PerformLayout(); 193 | 194 | } 195 | 196 | #endregion 197 | 198 | private System.Windows.Forms.GroupBox groupBox1; 199 | private System.Windows.Forms.RadioButton radioButton7; 200 | private System.Windows.Forms.RadioButton radioButton6; 201 | private System.Windows.Forms.RadioButton radioButton5; 202 | private System.Windows.Forms.RadioButton radioButton4; 203 | private System.Windows.Forms.RadioButton radioButton3; 204 | private System.Windows.Forms.RadioButton radioButton2; 205 | private System.Windows.Forms.RadioButton radioButton1; 206 | private System.Windows.Forms.Label label1; 207 | private System.Windows.Forms.TextBox textBox1; 208 | private System.Windows.Forms.Button button1; 209 | } 210 | } -------------------------------------------------------------------------------- /SCFEditor/Character/Add.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace TitanEditor.Character 10 | { 11 | public partial class Add : Form 12 | { 13 | public Add() 14 | { 15 | InitializeComponent(); 16 | } 17 | 18 | public string name; 19 | 20 | private void Add_Load(object sender, EventArgs e) 21 | { 22 | 23 | } 24 | 25 | private void button1_Click(object sender, EventArgs e) 26 | { 27 | int clase = 0; 28 | 29 | if (radioButton1.Checked == true) 30 | clase = 0; 31 | else if (radioButton2.Checked == true) 32 | clase = 16; 33 | else if (radioButton3.Checked == true) 34 | clase = 32; 35 | else if (radioButton4.Checked == true) 36 | clase = 80; 37 | else if (radioButton5.Checked == true) 38 | clase = 48; 39 | else if (radioButton6.Checked == true) 40 | clase = 64; 41 | else if (radioButton7.Checked == true) 42 | clase = 96; 43 | 44 | DBLite.dbMu.Exec("EXEC WZ_CreateCharacter '" + name + "','" + textBox1.Text + "'," + clase); 45 | DBLite.dbMu.Close(); 46 | 47 | MessageBox.Show("Character Added", "Titan Editor", MessageBoxButtons.OK); 48 | DialogResult = DialogResult.OK; 49 | Close(); 50 | } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /SCFEditor/Character/Add.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SCFEditor/Character/Edit.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SCFEditor/Character/Item.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TitanEditor.Character 2 | { 3 | partial class Item 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Item)); 32 | this.button1 = new System.Windows.Forms.Button(); 33 | this.button2 = new System.Windows.Forms.Button(); 34 | this.equipPanel4 = new TitanEditor.EquipPanel(); 35 | this.equipPanel3 = new TitanEditor.EquipPanel(); 36 | this.equipPanel2 = new TitanEditor.EquipPanel(); 37 | this.equipPanel1 = new TitanEditor.EquipPanel(); 38 | this.equipEditor1 = new TitanEditor.EquipEditor(); 39 | this.charPanel1 = new TitanEditor.CharPanel(); 40 | this.SuspendLayout(); 41 | // 42 | // button1 43 | // 44 | this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Popup; 45 | this.button1.Location = new System.Drawing.Point(239, 409); 46 | this.button1.Name = "button1"; 47 | this.button1.Size = new System.Drawing.Size(75, 23); 48 | this.button1.TabIndex = 3; 49 | this.button1.Text = "&Save"; 50 | this.button1.UseVisualStyleBackColor = true; 51 | this.button1.Click += new System.EventHandler(this.button1_Click); 52 | // 53 | // button2 54 | // 55 | this.button2.FlatStyle = System.Windows.Forms.FlatStyle.Popup; 56 | this.button2.Location = new System.Drawing.Point(320, 409); 57 | this.button2.Name = "button2"; 58 | this.button2.Size = new System.Drawing.Size(75, 23); 59 | this.button2.TabIndex = 4; 60 | this.button2.Text = "&Close"; 61 | this.button2.UseVisualStyleBackColor = true; 62 | this.button2.Click += new System.EventHandler(this.button2_Click); 63 | // 64 | // equipPanel4 65 | // 66 | this.equipPanel4.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("equipPanel4.BackgroundImage"))); 67 | this.equipPanel4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; 68 | this.equipPanel4.Cursor = System.Windows.Forms.Cursors.Cross; 69 | this.equipPanel4.Location = new System.Drawing.Point(209, 438); 70 | this.equipPanel4.Margin = new System.Windows.Forms.Padding(0); 71 | this.equipPanel4.Name = "equipPanel4"; 72 | this.equipPanel4.Size = new System.Drawing.Size(200, 100); 73 | this.equipPanel4.TabIndex = 7; 74 | // 75 | // equipPanel3 76 | // 77 | this.equipPanel3.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("equipPanel3.BackgroundImage"))); 78 | this.equipPanel3.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; 79 | this.equipPanel3.Cursor = System.Windows.Forms.Cursors.Cross; 80 | this.equipPanel3.Location = new System.Drawing.Point(0, 541); 81 | this.equipPanel3.Margin = new System.Windows.Forms.Padding(0); 82 | this.equipPanel3.Name = "equipPanel3"; 83 | this.equipPanel3.Size = new System.Drawing.Size(200, 100); 84 | this.equipPanel3.TabIndex = 6; 85 | // 86 | // equipPanel2 87 | // 88 | this.equipPanel2.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("equipPanel2.BackgroundImage"))); 89 | this.equipPanel2.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; 90 | this.equipPanel2.Cursor = System.Windows.Forms.Cursors.Cross; 91 | this.equipPanel2.Location = new System.Drawing.Point(0, 438); 92 | this.equipPanel2.Margin = new System.Windows.Forms.Padding(0); 93 | this.equipPanel2.Name = "equipPanel2"; 94 | this.equipPanel2.Size = new System.Drawing.Size(200, 100); 95 | this.equipPanel2.TabIndex = 5; 96 | // 97 | // equipPanel1 98 | // 99 | this.equipPanel1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("equipPanel1.BackgroundImage"))); 100 | this.equipPanel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; 101 | this.equipPanel1.Cursor = System.Windows.Forms.Cursors.Cross; 102 | this.equipPanel1.Location = new System.Drawing.Point(0, 202); 103 | this.equipPanel1.Margin = new System.Windows.Forms.Padding(0); 104 | this.equipPanel1.Name = "equipPanel1"; 105 | this.equipPanel1.Size = new System.Drawing.Size(200, 227); 106 | this.equipPanel1.TabIndex = 2; 107 | // 108 | // equipEditor1 109 | // 110 | this.equipEditor1.DefaultDurability = ((byte)(255)); 111 | this.equipEditor1.Location = new System.Drawing.Point(209, 9); 112 | this.equipEditor1.Margin = new System.Windows.Forms.Padding(0); 113 | this.equipEditor1.Name = "equipEditor1"; 114 | this.equipEditor1.Size = new System.Drawing.Size(232, 399); 115 | this.equipEditor1.TabIndex = 1; 116 | // 117 | // charPanel1 118 | // 119 | this.charPanel1.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("charPanel1.BackgroundImage"))); 120 | this.charPanel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; 121 | this.charPanel1.Cursor = System.Windows.Forms.Cursors.Cross; 122 | this.charPanel1.Location = new System.Drawing.Point(0, 0); 123 | this.charPanel1.Margin = new System.Windows.Forms.Padding(0); 124 | this.charPanel1.Name = "charPanel1"; 125 | this.charPanel1.Prof = -1; 126 | this.charPanel1.Size = new System.Drawing.Size(200, 202); 127 | this.charPanel1.TabIndex = 0; 128 | // 129 | // Item 130 | // 131 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 132 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 133 | this.ClientSize = new System.Drawing.Size(444, 653); 134 | this.Controls.Add(this.equipPanel4); 135 | this.Controls.Add(this.equipPanel3); 136 | this.Controls.Add(this.equipPanel2); 137 | this.Controls.Add(this.button2); 138 | this.Controls.Add(this.button1); 139 | this.Controls.Add(this.equipPanel1); 140 | this.Controls.Add(this.equipEditor1); 141 | this.Controls.Add(this.charPanel1); 142 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; 143 | this.Name = "Item"; 144 | this.ShowInTaskbar = false; 145 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 146 | this.Text = "Item"; 147 | this.Load += new System.EventHandler(this.Item_Load); 148 | this.ResumeLayout(false); 149 | 150 | } 151 | 152 | #endregion 153 | 154 | private CharPanel charPanel1; 155 | private EquipEditor equipEditor1; 156 | private EquipPanel equipPanel1; 157 | private System.Windows.Forms.Button button1; 158 | private System.Windows.Forms.Button button2; 159 | private EquipPanel equipPanel2; 160 | private EquipPanel equipPanel3; 161 | private EquipPanel equipPanel4; 162 | 163 | 164 | 165 | } 166 | } -------------------------------------------------------------------------------- /SCFEditor/Character/Item.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace TitanEditor.Character 10 | { 11 | public partial class Item : Form 12 | { 13 | public Item() 14 | { 15 | InitializeComponent(); 16 | } 17 | 18 | public string CharName; 19 | 20 | protected byte[] loadInventory(string charName) 21 | { 22 | if (charName == "") 23 | { 24 | return null; 25 | } 26 | 27 | byte[] inventory = null; 28 | 29 | DBLite.dbMu.Read("select Inventory from character where Name = '" + charName + "'"); 30 | DBLite.dbMu.Fetch(); 31 | inventory = DBLite.dbMu.GetAsBinary("Inventory"); 32 | DBLite.dbMu.Close(); 33 | 34 | return inventory; 35 | } 36 | 37 | private void Item_Load(object sender, EventArgs e) 38 | { 39 | Text = CharName + " Inventory"; 40 | charPanel1.Editor = equipEditor1; 41 | equipPanel1.setSize(8, 8); 42 | equipPanel1.Editor = equipEditor1; 43 | equipPanel2.setSize(8, 4); 44 | equipPanel2.Editor = equipEditor1; 45 | 46 | equipPanel3.setSize(8, 4); 47 | equipPanel3.Editor = equipEditor1; 48 | equipPanel4.setSize(8, 4); 49 | equipPanel4.Editor = equipEditor1; 50 | equipEditor1.LoadData(); 51 | 52 | byte[] inventory = loadInventory(CharName); 53 | if (inventory != null) 54 | { 55 | charPanel1.clearData(); 56 | if (!charPanel1.loadItemsByCodes(inventory, 0, CharPanel.EquipNum * EquipItem.ITEM_SIZE)) 57 | { 58 | MessageBox.Show(string.Format("[{0}] Error loading body equipment", CharName)); 59 | } 60 | 61 | equipPanel1.clearData(); 62 | if (!equipPanel1.loadItemsByCodes(inventory, CharPanel.EquipNum * EquipItem.ITEM_SIZE, inventory.Length - CharPanel.EquipNum * EquipItem.ITEM_SIZE - equipPanel2.XNum * equipPanel2.YNum * EquipItem.ITEM_SIZE)) 63 | { 64 | MessageBox.Show(string.Format("[{0}] Error loading inventory equipment", CharName)); 65 | } 66 | 67 | equipPanel2.clearData(); 68 | if (!equipPanel2.loadItemsByCodes(inventory, CharPanel.EquipNum * EquipItem.ITEM_SIZE + equipPanel1.XNum * equipPanel1.YNum * EquipItem.ITEM_SIZE, inventory.Length)) 69 | { 70 | MessageBox.Show(string.Format("[{0}] Error loading inventory ex1 equipment", CharName)); 71 | } 72 | 73 | equipPanel3.clearData(); 74 | if (!equipPanel3.loadItemsByCodes(inventory, CharPanel.EquipNum * EquipItem.ITEM_SIZE + equipPanel1.XNum * equipPanel1.YNum * EquipItem.ITEM_SIZE + equipPanel2.XNum * equipPanel2.YNum * EquipItem.ITEM_SIZE, inventory.Length)) 75 | { 76 | MessageBox.Show(string.Format("[{0}] Error loading inventory ex2 equipment", CharName)); 77 | } 78 | 79 | equipPanel4.clearData(); 80 | if (!equipPanel4.loadItemsByCodes(inventory, CharPanel.EquipNum * EquipItem.ITEM_SIZE + equipPanel1.XNum * equipPanel1.YNum * EquipItem.ITEM_SIZE + (equipPanel2.XNum * equipPanel2.YNum * EquipItem.ITEM_SIZE + equipPanel3.XNum * equipPanel3.YNum * EquipItem.ITEM_SIZE)*2, inventory.Length)) 81 | { 82 | MessageBox.Show(string.Format("[{0}] Error loading pshop equipment", CharName)); 83 | } 84 | } 85 | } 86 | 87 | private void button1_Click(object sender, EventArgs e) 88 | { 89 | EquipPanel tmp1 = new EquipPanel(); 90 | tmp1.setSize(8, 4); 91 | 92 | string sql = string.Format("update character set Inventory=0x{0}{1}{2}{3}{4}{5}{6} where Name='{7}'", charPanel1.getEquipCodes(), equipPanel1.getEquipCodes(), equipPanel2.getEquipCodes(), equipPanel3.getEquipCodes(), tmp1.getEquipCodes(), tmp1.getEquipCodes(), equipPanel4.getEquipCodes(), CharName); 93 | DBLite.dbMu.Exec(sql); 94 | DBLite.dbMu.Close(); 95 | MessageBox.Show("Inventory Edited", "Titan Editor", MessageBoxButtons.OK); 96 | Close(); 97 | } 98 | 99 | private void button2_Click(object sender, EventArgs e) 100 | { 101 | Close(); 102 | } 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /SCFEditor/Character/Skills.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace TitanEditor.Character 10 | { 11 | public partial class SkillsEdition : Form 12 | { 13 | const int skillCount = 1024; 14 | 15 | public SkillsEdition() 16 | { 17 | InitializeComponent(); 18 | } 19 | public string CharacterName; 20 | public string AccountName; 21 | 22 | private byte[] mlist = new byte[180]; 23 | 24 | private struct skillstruct 25 | { 26 | public string clase; 27 | public string name; 28 | } 29 | private skillstruct[] slist = new skillstruct[skillCount]; 30 | 31 | private void Button5_Click(object sender, EventArgs e) 32 | { 33 | Close(); 34 | } 35 | 36 | private void GetMDBSkills() 37 | { 38 | DBLite.mdb.Read("SELECT DISTINCT CLASS FROM SKILLS"); 39 | while (DBLite.mdb.Fetch()) 40 | { 41 | ComboBox1.Items.Add(DBLite.mdb.GetAsString("CLASS")); 42 | } 43 | DBLite.mdb.Close(); 44 | 45 | DBLite.mdb.Read("SELECT ID,Class,Name FROM SKILLS"); 46 | while (DBLite.mdb.Fetch()) 47 | { 48 | int id = DBLite.mdb.GetAsInteger("ID"); 49 | 50 | slist[id].clase = DBLite.mdb.GetAsString("CLASS"); 51 | slist[id].name = DBLite.mdb.GetAsString("Name"); 52 | } 53 | DBLite.mdb.Close(); 54 | } 55 | 56 | private void Skills_Load(object sender, EventArgs e) 57 | { 58 | GetMDBSkills(); 59 | DBLite.dbMu.Read("SELECT magiclist FROM Character WHERE Name='" + CharacterName + "'"); 60 | DBLite.dbMu.Fetch(); 61 | mlist = DBLite.dbMu.GetAsBinary("magiclist"); 62 | DBLite.dbMu.Close(); 63 | for (int i = 0; i < 45; i++) 64 | { 65 | StringBuilder sb = new StringBuilder(); 66 | sb.AppendFormat("{0:X2}{1:X2}", mlist[i * 3 + 1], mlist[i * 3]); 67 | 68 | int skillNum = int.Parse(sb.ToString(), System.Globalization.NumberStyles.AllowHexSpecifier); 69 | if (skillNum != 65535) 70 | { 71 | listView1.Items.Add(skillNum.ToString()).SubItems.Add(slist[skillNum].name); 72 | } 73 | } 74 | } 75 | 76 | private void Button2_Click(object sender, EventArgs e) 77 | { 78 | listView1.Items.Remove(listView1.SelectedItems[0]); 79 | } 80 | 81 | private void Button3_Click(object sender, EventArgs e) 82 | { 83 | listView1.Items.Clear(); 84 | } 85 | 86 | private void Button4_Click(object sender, EventArgs e) 87 | { 88 | byte[] tmp = new byte[180]; 89 | for (int i = 0; i < 45; i++) 90 | { 91 | if (i >= listView1.Items.Count) 92 | { 93 | tmp[i * 3] = 255; 94 | tmp[i * 3 + 1] = 255; 95 | } 96 | else 97 | { 98 | byte[] bskill = BitConverter.GetBytes(Convert.ToInt32(listView1.Items[i].SubItems[0].Text)); 99 | tmp[i * 3] = bskill[0]; 100 | tmp[i * 3 + 1] = bskill[1]; 101 | } 102 | } 103 | string magiclistStr = "0x" + System.BitConverter.ToString(tmp).Replace("-", ""); 104 | DBLite.dbMu.Exec("UPDATE Character SET magiclist=" + magiclistStr + " WHERE Name='" + CharacterName + "'"); 105 | DBLite.dbMu.Close(); 106 | MessageBox.Show("Skill Saved", "Titan Editor", MessageBoxButtons.OK); 107 | Close(); 108 | } 109 | 110 | private void ComboBox1_SelectedIndexChanged(object sender, EventArgs e) 111 | { 112 | ComboBox2.Items.Clear(); 113 | for (int i = 0; i < skillCount; i++) 114 | { 115 | if (slist[i].clase == ComboBox1.Text) 116 | ComboBox2.Items.Add(slist[i].name); 117 | } 118 | } 119 | 120 | private void Button1_Click(object sender, EventArgs e) 121 | { 122 | for (int i = 0; i < skillCount; i++) 123 | { 124 | if (slist[i].clase == ComboBox1.Text && slist[i].name == ComboBox2.Text) 125 | listView1.Items.Add(i.ToString()).SubItems.Add(slist[i].name); 126 | } 127 | } 128 | } 129 | } 130 | -------------------------------------------------------------------------------- /SCFEditor/Character/Skills.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SCFEditor/Extra.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | 5 | namespace TitanEditor 6 | { 7 | class Extra 8 | { 9 | public struct Find 10 | { 11 | public string AccountID; 12 | public string Character; 13 | }; 14 | public static Find FindResult = new Find(); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /SCFEditor/Find.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TitanEditor 2 | { 3 | partial class Find 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.listView1 = new System.Windows.Forms.ListView(); 32 | this.Account = new System.Windows.Forms.ColumnHeader(); 33 | this.Character = new System.Windows.Forms.ColumnHeader(); 34 | this.button1 = new System.Windows.Forms.Button(); 35 | this.textBox1 = new System.Windows.Forms.TextBox(); 36 | this.label1 = new System.Windows.Forms.Label(); 37 | this.SuspendLayout(); 38 | // 39 | // listView1 40 | // 41 | this.listView1.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { 42 | this.Account, 43 | this.Character}); 44 | this.listView1.FullRowSelect = true; 45 | this.listView1.GridLines = true; 46 | this.listView1.Location = new System.Drawing.Point(2, 22); 47 | this.listView1.MultiSelect = false; 48 | this.listView1.Name = "listView1"; 49 | this.listView1.Size = new System.Drawing.Size(287, 166); 50 | this.listView1.TabIndex = 0; 51 | this.listView1.UseCompatibleStateImageBehavior = false; 52 | this.listView1.View = System.Windows.Forms.View.Details; 53 | this.listView1.DoubleClick += new System.EventHandler(this.listView1_DoubleClick); 54 | // 55 | // Account 56 | // 57 | this.Account.Text = "Account"; 58 | this.Account.Width = 138; 59 | // 60 | // Character 61 | // 62 | this.Character.Text = "Character"; 63 | this.Character.Width = 109; 64 | // 65 | // button1 66 | // 67 | this.button1.FlatStyle = System.Windows.Forms.FlatStyle.Popup; 68 | this.button1.Location = new System.Drawing.Point(214, 196); 69 | this.button1.Name = "button1"; 70 | this.button1.Size = new System.Drawing.Size(75, 20); 71 | this.button1.TabIndex = 1; 72 | this.button1.Text = "Search"; 73 | this.button1.UseVisualStyleBackColor = true; 74 | this.button1.Click += new System.EventHandler(this.button1_Click); 75 | // 76 | // textBox1 77 | // 78 | this.textBox1.Location = new System.Drawing.Point(2, 197); 79 | this.textBox1.Name = "textBox1"; 80 | this.textBox1.Size = new System.Drawing.Size(206, 20); 81 | this.textBox1.TabIndex = 2; 82 | // 83 | // label1 84 | // 85 | this.label1.AutoSize = true; 86 | this.label1.Location = new System.Drawing.Point(87, 6); 87 | this.label1.Name = "label1"; 88 | this.label1.Size = new System.Drawing.Size(44, 13); 89 | this.label1.TabIndex = 3; 90 | this.label1.Text = "Search "; 91 | // 92 | // Find 93 | // 94 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 95 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 96 | this.ClientSize = new System.Drawing.Size(291, 221); 97 | this.Controls.Add(this.label1); 98 | this.Controls.Add(this.textBox1); 99 | this.Controls.Add(this.button1); 100 | this.Controls.Add(this.listView1); 101 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; 102 | this.Name = "Find"; 103 | this.ShowInTaskbar = false; 104 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 105 | this.Text = "Search..."; 106 | this.Load += new System.EventHandler(this.Find_Load); 107 | this.ResumeLayout(false); 108 | this.PerformLayout(); 109 | 110 | } 111 | 112 | #endregion 113 | 114 | private System.Windows.Forms.ListView listView1; 115 | private System.Windows.Forms.ColumnHeader Account; 116 | private System.Windows.Forms.ColumnHeader Character; 117 | private System.Windows.Forms.Button button1; 118 | private System.Windows.Forms.TextBox textBox1; 119 | private System.Windows.Forms.Label label1; 120 | } 121 | } -------------------------------------------------------------------------------- /SCFEditor/Find.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace TitanEditor 10 | { 11 | public partial class Find : Form 12 | { 13 | public Find() 14 | { 15 | InitializeComponent(); 16 | } 17 | 18 | public bool isAccount = false; 19 | 20 | private void button1_Click(object sender, EventArgs e) 21 | { 22 | listView1.Items.Clear(); 23 | if (isAccount == false) 24 | { 25 | DBLite.dbMu.Read("SELECT AccountID,Name FROM Character WHERE Name Like '" + textBox1.Text + "%' ORDER BY Name"); 26 | while (DBLite.dbMu.Fetch()) 27 | { 28 | listView1.Items.Add(DBLite.dbMu.GetAsString("AccountID")).SubItems.Add(DBLite.dbMu.GetAsString("Name")); 29 | } 30 | DBLite.dbMu.Close(); 31 | } 32 | else 33 | { 34 | DBLite.dbMe.Read("SELECT memb___id FROM MEMB_INFO WHERE memb___id Like '" + textBox1.Text + "%' ORDER BY memb___id"); 35 | while (DBLite.dbMe.Fetch()) 36 | { 37 | listView1.Items.Add(DBLite.dbMe.GetAsString("memb___id")); 38 | } 39 | DBLite.dbMe.Close(); 40 | } 41 | } 42 | 43 | private void Find_Load(object sender, EventArgs e) 44 | { 45 | Extra.FindResult.AccountID = ""; 46 | Extra.FindResult.Character = ""; 47 | 48 | if (isAccount == false) 49 | label1.Text += "Character"; 50 | else 51 | label1.Text += "Account"; 52 | } 53 | 54 | private void listView1_DoubleClick(object sender, EventArgs e) 55 | { 56 | if (listView1.FocusedItem != null) 57 | { 58 | Extra.FindResult.AccountID = listView1.FocusedItem.Text; 59 | if (isAccount == false) 60 | Extra.FindResult.Character = listView1.FocusedItem.SubItems[1].Text; 61 | 62 | DialogResult = DialogResult.OK; 63 | Close(); 64 | } 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /SCFEditor/Find.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SCFEditor/Items/CharPanel.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TitanEditor 2 | { 3 | partial class CharPanel 4 | { 5 | /// 6 | /// 必需的设计器变量。 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// 清理所有正在使用的资源。 12 | /// 13 | /// 如果应释放托管资源,为 true;否则为 false。 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region 组件设计器生成的代码 24 | 25 | /// 26 | /// 设计器支持所需的方法 - 不要 27 | /// 使用代码编辑器修改此方法的内容。 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.components = new System.ComponentModel.Container(); 32 | this.popMenu = new System.Windows.Forms.ContextMenuStrip(this.components); 33 | this.DeleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 34 | this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); 35 | this.CloseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 36 | this.editorToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 37 | this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); 38 | this.popMenu.SuspendLayout(); 39 | this.SuspendLayout(); 40 | // 41 | // popMenu 42 | // 43 | this.popMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 44 | this.editorToolStripMenuItem, 45 | this.toolStripSeparator1, 46 | this.DeleteToolStripMenuItem, 47 | this.toolStripMenuItem2, 48 | this.CloseToolStripMenuItem}); 49 | this.popMenu.Name = "popMenu"; 50 | this.popMenu.Size = new System.Drawing.Size(153, 104); 51 | // 52 | // DeleteToolStripMenuItem 53 | // 54 | this.DeleteToolStripMenuItem.Name = "DeleteToolStripMenuItem"; 55 | this.DeleteToolStripMenuItem.Size = new System.Drawing.Size(152, 22); 56 | this.DeleteToolStripMenuItem.Text = "Delete"; 57 | this.DeleteToolStripMenuItem.Click += new System.EventHandler(this.DeleteToolStripMenuItem_Click); 58 | // 59 | // toolStripMenuItem2 60 | // 61 | this.toolStripMenuItem2.Name = "toolStripMenuItem2"; 62 | this.toolStripMenuItem2.Size = new System.Drawing.Size(149, 6); 63 | // 64 | // CloseToolStripMenuItem 65 | // 66 | this.CloseToolStripMenuItem.Name = "CloseToolStripMenuItem"; 67 | this.CloseToolStripMenuItem.Size = new System.Drawing.Size(152, 22); 68 | this.CloseToolStripMenuItem.Text = "Close"; 69 | // 70 | // editorToolStripMenuItem 71 | // 72 | this.editorToolStripMenuItem.Name = "editorToolStripMenuItem"; 73 | this.editorToolStripMenuItem.Size = new System.Drawing.Size(152, 22); 74 | this.editorToolStripMenuItem.Text = "&Edit"; 75 | this.editorToolStripMenuItem.Click += new System.EventHandler(this.editorToolStripMenuItem_Click); 76 | // 77 | // toolStripSeparator1 78 | // 79 | this.toolStripSeparator1.Name = "toolStripSeparator1"; 80 | this.toolStripSeparator1.Size = new System.Drawing.Size(149, 6); 81 | // 82 | // CharPanel 83 | // 84 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 85 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 86 | this.BackgroundImage = global::TitanEditor.Properties.Resources.char_1; 87 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; 88 | this.Cursor = System.Windows.Forms.Cursors.Cross; 89 | this.DoubleBuffered = true; 90 | this.Margin = new System.Windows.Forms.Padding(0); 91 | this.Name = "CharPanel"; 92 | this.Size = new System.Drawing.Size(200, 202); 93 | this.MouseLeave += new System.EventHandler(this.CharPanel_MouseLeave); 94 | this.Paint += new System.Windows.Forms.PaintEventHandler(this.CharPanel_Paint); 95 | this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.CharPanel_MouseMove); 96 | this.MouseClick += new System.Windows.Forms.MouseEventHandler(this.CharPanel_MouseClick); 97 | this.MouseEnter += new System.EventHandler(this.CharPanel_MouseEnter); 98 | this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.CharPanel_KeyDown); 99 | this.popMenu.ResumeLayout(false); 100 | this.ResumeLayout(false); 101 | 102 | } 103 | 104 | #endregion 105 | 106 | private System.Windows.Forms.ContextMenuStrip popMenu; 107 | private System.Windows.Forms.ToolStripMenuItem DeleteToolStripMenuItem; 108 | private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; 109 | private System.Windows.Forms.ToolStripMenuItem CloseToolStripMenuItem; 110 | private System.Windows.Forms.ToolStripMenuItem editorToolStripMenuItem; 111 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /SCFEditor/Items/CharPanel.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | -------------------------------------------------------------------------------- /SCFEditor/Items/EquipEditor.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SCFEditor/Items/EquipImageCache.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections; 3 | using System.Data; 4 | using System.IO; 5 | using System.Drawing; 6 | using System.Collections.Generic; 7 | using System.Windows.Forms; 8 | using System.Resources; 9 | using System.Reflection; 10 | 11 | namespace TitanEditor 12 | { 13 | public class EquipImageCache 14 | { 15 | Hashtable cache = new Hashtable(); 16 | 17 | EquipImageCache() 18 | { 19 | } 20 | //Singleton Object 21 | public static EquipImageCache Instance 22 | { 23 | get 24 | { 25 | return Nested.instance; 26 | } 27 | } 28 | class Nested 29 | { 30 | 31 | static Nested() 32 | { 33 | } 34 | 35 | internal static readonly EquipImageCache instance = new EquipImageCache(); 36 | } 37 | 38 | public EquipItem getItem(string name) 39 | { 40 | EquipItem item = null; 41 | if ((item = (EquipItem)cache[name]) == null) 42 | { 43 | lock(cache) 44 | { 45 | if ((item = (EquipItem)cache[name]) == null) 46 | { 47 | string sql = string.Format("select UniQue, Name, Hand, Type, Wide, High, DW, DK, ELF, MG, DL, SU, RF, Pic from MuItem where Name = '{0}'", name); 48 | item = getItemFromDb(sql); 49 | if (item == null) 50 | { 51 | item = EquipItem.UnknownItem; 52 | } 53 | cache[name] = item; 54 | cache[item.CodeType] = item; 55 | } 56 | } 57 | } 58 | 59 | return item; 60 | } 61 | 62 | public EquipItem getItemByCodeType(string codeType) 63 | { 64 | EquipItem item = null; 65 | if ((item = (EquipItem)cache[codeType]) == null) 66 | { 67 | lock (cache) 68 | { 69 | if ((item = (EquipItem)cache[codeType]) == null) 70 | { 71 | try 72 | { 73 | string sql = string.Format("select UniQue, Name, Hand, Type, Wide, High, DW, DK, ELF, MG, DL, SU, RF, Pic from MuItem where UniQue = {0} and Type = {1}", EquipItem.getItemCode(codeType), EquipItem.getItemType(codeType)); 74 | item = getItemFromDb(sql); 75 | if (item == null) 76 | { 77 | item = item = EquipItem.UnknownItem; 78 | } 79 | cache[codeType] = item; 80 | cache[item.Name] = item; 81 | } 82 | catch (Exception) 83 | { 84 | MessageBox.Show("Item: [" + EquipItem.getItemType(codeType) + ", " + EquipItem.getItemCode(codeType) + "]. Doesnt exist in DB", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); 85 | } 86 | } 87 | } 88 | } 89 | 90 | return item; 91 | } 92 | 93 | protected EquipItem getItemFromDb(string sql) 94 | { 95 | MemoryStream stream = null; 96 | Image img = null; 97 | EquipItem item = null; 98 | 99 | try 100 | { 101 | DBLite.mdb.Read(sql); 102 | DBLite.mdb.Fetch(); 103 | // 104 | int profs = DBLite.mdb.GetAsInteger("DW") + DBLite.mdb.GetAsInteger("DK") << 1 + DBLite.mdb.GetAsInteger("ELF") << 2 + DBLite.mdb.GetAsInteger("MG") << 3 + DBLite.mdb.GetAsInteger("DL") << 4 + DBLite.mdb.GetAsInteger("SU") << 5 + DBLite.mdb.GetAsInteger("RF") << 6; 105 | item = new EquipItem (DBLite.mdb.GetAsInteger("UniQue"), DBLite.mdb.GetAsString("Name"), DBLite.mdb.GetAsInteger("Hand"), DBLite.mdb.GetAsInteger("Type"), DBLite.mdb.GetAsInteger("Wide"), DBLite.mdb.GetAsInteger("High"), profs); 106 | Byte[] data = DBLite.mdb.GetAsBinary("Pic"); 107 | if (data != null) 108 | { 109 | stream = new MemoryStream(data); 110 | img = Image.FromStream(stream); 111 | stream.Close(); 112 | item.Img = img; 113 | } 114 | else 115 | { 116 | ResourceManager rmgr = new ResourceManager("TitanEditor.Properties.Resources", Assembly.GetExecutingAssembly()); 117 | item.Img = (Image)rmgr.GetObject("unknownItem"); 118 | } 119 | DBLite.mdb.Close(); 120 | } 121 | catch(Exception ex) 122 | { 123 | MessageBox.Show("MDB Query:" + sql + "\nError:" + ex.Message + "\nSource:" + ex.Source + "\nTrace:" + ex.StackTrace); 124 | } 125 | return item; 126 | } 127 | } 128 | } 129 | -------------------------------------------------------------------------------- /SCFEditor/Items/EquipPanel.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TitanEditor 2 | { 3 | partial class EquipPanel 4 | { 5 | /// 6 | /// 必需的设计器变量。 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// 清理所有正在使用的资源。 12 | /// 13 | /// 如果应释放托管资源,为 true;否则为 false。 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region 组件设计器生成的代码 24 | 25 | /// 26 | /// 设计器支持所需的方法 - 不要 27 | /// 使用代码编辑器修改此方法的内容。 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.components = new System.ComponentModel.Container(); 32 | this.popMenu = new System.Windows.Forms.ContextMenuStrip(this.components); 33 | this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 34 | this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); 35 | this.DeleteToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 36 | this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); 37 | this.CloseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); 38 | this.popMenu.SuspendLayout(); 39 | this.SuspendLayout(); 40 | // 41 | // popMenu 42 | // 43 | this.popMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { 44 | this.editToolStripMenuItem, 45 | this.toolStripSeparator1, 46 | this.DeleteToolStripMenuItem, 47 | this.toolStripMenuItem2, 48 | this.CloseToolStripMenuItem}); 49 | this.popMenu.Name = "popMenu"; 50 | this.popMenu.Size = new System.Drawing.Size(108, 82); 51 | // 52 | // editToolStripMenuItem 53 | // 54 | this.editToolStripMenuItem.Name = "editToolStripMenuItem"; 55 | this.editToolStripMenuItem.Size = new System.Drawing.Size(107, 22); 56 | this.editToolStripMenuItem.Text = "&Edit"; 57 | this.editToolStripMenuItem.Click += new System.EventHandler(this.editToolStripMenuItem_Click); 58 | // 59 | // toolStripSeparator1 60 | // 61 | this.toolStripSeparator1.Name = "toolStripSeparator1"; 62 | this.toolStripSeparator1.Size = new System.Drawing.Size(104, 6); 63 | // 64 | // DeleteToolStripMenuItem 65 | // 66 | this.DeleteToolStripMenuItem.Name = "DeleteToolStripMenuItem"; 67 | this.DeleteToolStripMenuItem.Size = new System.Drawing.Size(107, 22); 68 | this.DeleteToolStripMenuItem.Text = "Delete"; 69 | this.DeleteToolStripMenuItem.Click += new System.EventHandler(this.DeleteToolStripMenuItem_Click); 70 | // 71 | // toolStripMenuItem2 72 | // 73 | this.toolStripMenuItem2.Name = "toolStripMenuItem2"; 74 | this.toolStripMenuItem2.Size = new System.Drawing.Size(104, 6); 75 | // 76 | // CloseToolStripMenuItem 77 | // 78 | this.CloseToolStripMenuItem.Name = "CloseToolStripMenuItem"; 79 | this.CloseToolStripMenuItem.Size = new System.Drawing.Size(107, 22); 80 | this.CloseToolStripMenuItem.Text = "Close"; 81 | // 82 | // EquipPanel 83 | // 84 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 85 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 86 | this.BackgroundImage = global::TitanEditor.Properties.Resources.warehouse_1; 87 | this.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; 88 | this.Cursor = System.Windows.Forms.Cursors.Cross; 89 | this.DoubleBuffered = true; 90 | this.Margin = new System.Windows.Forms.Padding(0); 91 | this.Name = "EquipPanel"; 92 | this.Size = new System.Drawing.Size(200, 217); 93 | this.MouseLeave += new System.EventHandler(this.EquipPanel_MouseLeave); 94 | this.Paint += new System.Windows.Forms.PaintEventHandler(this.EquipPanel_Paint); 95 | this.MouseMove += new System.Windows.Forms.MouseEventHandler(this.EquipPanel_MouseMove); 96 | this.MouseClick += new System.Windows.Forms.MouseEventHandler(this.EquipPanel_MouseClick); 97 | this.MouseEnter += new System.EventHandler(this.EquipPanel_MouseEnter); 98 | this.KeyDown += new System.Windows.Forms.KeyEventHandler(this.EquipPanel_KeyDown); 99 | this.popMenu.ResumeLayout(false); 100 | this.ResumeLayout(false); 101 | 102 | } 103 | 104 | #endregion 105 | 106 | private System.Windows.Forms.ContextMenuStrip popMenu; 107 | private System.Windows.Forms.ToolStripMenuItem DeleteToolStripMenuItem; 108 | private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; 109 | private System.Windows.Forms.ToolStripMenuItem CloseToolStripMenuItem; 110 | private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem; 111 | private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; 112 | } 113 | } 114 | -------------------------------------------------------------------------------- /SCFEditor/Items/EquipPanel.cs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TitansTech/TitanEditor/2047372b71e3bd38c343f0841797c6683f8d9bb6/SCFEditor/Items/EquipPanel.cs -------------------------------------------------------------------------------- /SCFEditor/Items/EquipPanel.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 17, 17 122 | 123 | -------------------------------------------------------------------------------- /SCFEditor/Items/EquipProperty.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace TitanEditor 10 | { 11 | public partial class EquipProperty : Form 12 | { 13 | EquipItem item = null; 14 | 15 | public EquipProperty() 16 | { 17 | InitializeComponent(); 18 | } 19 | 20 | public EquipProperty(EquipItem item) 21 | { 22 | InitializeComponent(); 23 | this.item = item; 24 | } 25 | 26 | private void button2_Click(object sender, EventArgs e) 27 | { 28 | chkEquipZY1.Checked = true; 29 | chkEquipZY2.Checked = true; 30 | chkEquipZY3.Checked = true; 31 | chkEquipZY4.Checked = true; 32 | chkEquipZY5.Checked = true; 33 | chkEquipZY6.Checked = true; 34 | } 35 | 36 | private void button3_Click(object sender, EventArgs e) 37 | { 38 | chkEquipZY1.Checked = false; 39 | chkEquipZY2.Checked = false; 40 | chkEquipZY3.Checked = false; 41 | chkEquipZY4.Checked = false; 42 | chkEquipZY5.Checked = false; 43 | chkEquipZY6.Checked = false; 44 | } 45 | 46 | public void updateUI(EquipItem item) 47 | { 48 | txtName.Text = item.Name; 49 | txtEquipCodes.Text = item.ToString(); 50 | cboEquipLevel.SelectedIndex = item.Level; 51 | cboEquipExt.SelectedIndex = item.Ext; 52 | chkEquipJN.Checked = item.JN; 53 | chkEquipXY.Checked = item.XY; 54 | chkEquipZY1.Checked = item.ZY1; 55 | chkEquipZY2.Checked = item.ZY2; 56 | chkEquipZY3.Checked = item.ZY3; 57 | chkEquipZY4.Checked = item.ZY4; 58 | chkEquipZY5.Checked = item.ZY5; 59 | chkEquipZY6.Checked = item.ZY6; 60 | txtSerial.Text = item.Serial.ToString(); 61 | //chkEquipSet.Checked = item.Set; 62 | 63 | int set = item.Set; 64 | 65 | if (set == 0) 66 | chkEquipSet.Checked = false; 67 | else 68 | { 69 | chkEquipSet.Checked = true; 70 | txtSet.Text = set.ToString(); 71 | } 72 | 73 | txtDurability.Text = Convert.ToString(item.Durability); 74 | GetSocketVal(item.Socket1, ref comboSock1, ref numericSock1); 75 | GetSocketVal(item.Socket2, ref comboSock2, ref numericSock2); 76 | GetSocketVal(item.Socket3, ref comboSock3, ref numericSock3); 77 | GetSocketVal(item.Socket4, ref comboSock4, ref numericSock4); 78 | GetSocketVal(item.Socket5, ref comboSock5, ref numericSock5); 79 | //comboHarmony.SelectedIndex = (item.Harmony & 0xF0) >> 4; 80 | } 81 | 82 | public void updateData(EquipItem item) 83 | { 84 | item.Level = (byte)(cboEquipLevel.SelectedIndex); 85 | item.Ext = cboEquipExt.SelectedIndex; 86 | item.JN = chkEquipJN.Checked; 87 | item.XY = chkEquipXY.Checked; 88 | item.ZY1 = chkEquipZY1.Checked; 89 | item.ZY2 = chkEquipZY2.Checked; 90 | item.ZY3 = chkEquipZY3.Checked; 91 | item.ZY4 = chkEquipZY4.Checked; 92 | item.ZY5 = chkEquipZY5.Checked; 93 | item.ZY6 = chkEquipZY6.Checked; 94 | item.Serial = Convert.ToInt64(txtSerial.Text); 95 | //item.Set = chkEquipSet.Checked; 96 | 97 | if (chkEquipSet.Checked == false) 98 | item.Set = 0; 99 | else 100 | { 101 | item.Set = Convert.ToByte(txtSet.Text); 102 | } 103 | 104 | item.Durability = Convert.ToByte(txtDurability.Text); 105 | item.Socket1 = GetSocketNum(comboSock1, numericSock1.Value); 106 | item.Socket2 = GetSocketNum(comboSock2, numericSock2.Value); 107 | item.Socket3 = GetSocketNum(comboSock3, numericSock3.Value); 108 | item.Socket4 = GetSocketNum(comboSock4, numericSock4.Value); 109 | item.Socket5 = GetSocketNum(comboSock5, numericSock5.Value); 110 | 111 | item.Harmony = 0; 112 | if (comboHarmony.SelectedItem != null) 113 | { 114 | if (comboHarmony.SelectedIndex > 0) 115 | { 116 | item.Harmony |= Convert.ToByte((comboHarmony.SelectedIndex) << 4); 117 | item.Harmony |= Convert.ToByte(item.Level & 0x0F); 118 | } 119 | } 120 | } 121 | 122 | private void btnOK_Click(object sender, EventArgs e) 123 | { 124 | if (null != item) 125 | updateData(item); 126 | item = null; 127 | this.Close(); 128 | } 129 | 130 | private void btnCancel_Click(object sender, EventArgs e) 131 | { 132 | item = null; 133 | } 134 | 135 | public void GetSocketVal(byte Sock, ref ComboBox combo, ref NumericUpDown numeric) 136 | { 137 | byte Lvl = Convert.ToByte(Sock / 50); 138 | byte Val = Convert.ToByte(Sock - (Lvl * 50)); 139 | 140 | if (Lvl == 0) 141 | Lvl++; 142 | else if (Lvl != 5) 143 | Lvl++; 144 | numeric.Value = Lvl; 145 | 146 | if (Sock == 0xFF) 147 | { 148 | combo.SelectedIndex = 28; 149 | numeric.Value = 1; 150 | return; 151 | } 152 | else if (Sock == 0) 153 | { 154 | combo.SelectedIndex = 0; 155 | numeric.Value = 1; 156 | return; 157 | } 158 | 159 | if (Val >= 1 && Val <= 6) 160 | { 161 | combo.SelectedIndex = Val; 162 | } 163 | else if (Val >= 11 && Val <= 15) 164 | { 165 | combo.SelectedIndex = Val - 4; 166 | } 167 | else if (Val >= 17 && Val <= 21) 168 | { 169 | combo.SelectedIndex = Val - 5; 170 | } 171 | else if (Val >= 22 && Val <= 27) 172 | { 173 | combo.SelectedIndex = Val - 5; 174 | } 175 | else if (Val >= 30 && Val <= 33) 176 | { 177 | combo.SelectedIndex = Val - 7; 178 | } 179 | else if (Val == 37) 180 | { 181 | combo.SelectedIndex = Val - 10; 182 | } 183 | } 184 | 185 | public byte GetSocketNum(ComboBox combo, decimal Level) 186 | { 187 | byte sock1 = 0; 188 | if (combo.SelectedItem == null) 189 | { 190 | sock1 = 0; 191 | } 192 | else 193 | { 194 | byte sockVal = Convert.ToByte(combo.SelectedIndex); 195 | byte mult = Convert.ToByte(Level - 1); 196 | if (sockVal >= 1 && sockVal <= 6) 197 | { 198 | sock1 = Convert.ToByte(sockVal + (50 * mult)); 199 | } 200 | else if (sockVal >= 7 && sockVal <= 11) 201 | { 202 | sock1 = Convert.ToByte((sockVal + 4) + (50 * mult)); 203 | } 204 | else if (sockVal >= 12 && sockVal <= 16) 205 | { 206 | sock1 = Convert.ToByte((sockVal + 5) + (50 * mult)); 207 | } 208 | else if (sockVal >= 17 && sockVal <= 22) 209 | { 210 | sock1 = Convert.ToByte((sockVal + 5) + (50 * mult)); 211 | } 212 | else if (sockVal >= 23 && sockVal <= 26) 213 | { 214 | sock1 = Convert.ToByte((sockVal + 7) + (50 * mult)); 215 | } 216 | else if (sockVal == 27) 217 | { 218 | sock1 = Convert.ToByte((sockVal + 10) + (50 * mult)); 219 | } 220 | else if (sockVal == 28) 221 | { 222 | sock1 = 255; 223 | } 224 | } 225 | return sock1; 226 | } 227 | 228 | private void EquipProperty_Load(object sender, EventArgs e) 229 | { 230 | comboSock1.SelectedIndex = 0; 231 | comboSock2.SelectedIndex = 0; 232 | comboSock3.SelectedIndex = 0; 233 | comboSock4.SelectedIndex = 0; 234 | comboSock5.SelectedIndex = 0; 235 | 236 | comboHarmony.Items.Add("None"); 237 | 238 | if (item.Type >= 0 && item.Type <= 4) 239 | { 240 | comboHarmony.Items.Add("Min Attack Power"); 241 | comboHarmony.Items.Add("Max Attack Power"); 242 | comboHarmony.Items.Add("Strength Requirement"); 243 | comboHarmony.Items.Add("Agility Requirement"); 244 | comboHarmony.Items.Add("Attack (Max,Min)"); 245 | comboHarmony.Items.Add("Critical Damage"); 246 | comboHarmony.Items.Add("Skill Power"); 247 | comboHarmony.Items.Add("Attack % Rate"); 248 | comboHarmony.Items.Add("SD - Rate"); 249 | comboHarmony.Items.Add("SD Ignore Rate"); 250 | } 251 | else if (item.Type >= 6 && item.Type <= 11) 252 | { 253 | comboHarmony.Items.Add("Defense Power"); 254 | comboHarmony.Items.Add("Max AG"); 255 | comboHarmony.Items.Add("Max HP"); 256 | comboHarmony.Items.Add("HP Auto Rate"); 257 | comboHarmony.Items.Add("MP Auto Rate"); 258 | comboHarmony.Items.Add("Defense Success Rate"); 259 | comboHarmony.Items.Add("Damage Reduction Rate"); 260 | comboHarmony.Items.Add("SD Rate"); 261 | } 262 | else if (item.Type == 5) 263 | { 264 | comboHarmony.Items.Add("Magic Power"); 265 | comboHarmony.Items.Add("Strength Requirement"); 266 | comboHarmony.Items.Add("Agility Requirement"); 267 | comboHarmony.Items.Add("Skill Power"); 268 | comboHarmony.Items.Add("Critical Damage"); 269 | comboHarmony.Items.Add("SD - Rate"); 270 | comboHarmony.Items.Add("Attack % Rate"); 271 | comboHarmony.Items.Add("SD Ignore Rate"); 272 | } 273 | updateUI(item); 274 | comboHarmony.SelectedIndex = (item.Harmony & 0xF0) >> 4; 275 | } 276 | 277 | private void button1_Click(object sender, EventArgs e) 278 | { 279 | txtSerial.Text = item.AutoSerialize().ToString(); 280 | } 281 | } 282 | } -------------------------------------------------------------------------------- /SCFEditor/Items/EquipProperty.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SCFEditor/Items/Serial.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TitanEditor.Items 2 | { 3 | partial class Serial 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.radioF = new System.Windows.Forms.RadioButton(); 32 | this.radioE = new System.Windows.Forms.RadioButton(); 33 | this.radioD = new System.Windows.Forms.RadioButton(); 34 | this.radioC = new System.Windows.Forms.RadioButton(); 35 | this.radio0 = new System.Windows.Forms.RadioButton(); 36 | this.groupBox1 = new System.Windows.Forms.GroupBox(); 37 | this.button1 = new System.Windows.Forms.Button(); 38 | this.groupBox1.SuspendLayout(); 39 | this.SuspendLayout(); 40 | // 41 | // radioF 42 | // 43 | this.radioF.AutoSize = true; 44 | this.radioF.Location = new System.Drawing.Point(27, 19); 45 | this.radioF.Name = "radioF"; 46 | this.radioF.Size = new System.Drawing.Size(84, 17); 47 | this.radioF.TabIndex = 58; 48 | this.radioF.Text = "0xFFFFFFFF"; 49 | this.radioF.UseVisualStyleBackColor = true; 50 | // 51 | // radioE 52 | // 53 | this.radioE.AutoSize = true; 54 | this.radioE.Location = new System.Drawing.Point(27, 42); 55 | this.radioE.Name = "radioE"; 56 | this.radioE.Size = new System.Drawing.Size(85, 17); 57 | this.radioE.TabIndex = 59; 58 | this.radioE.Text = "0xFFFFFFFE"; 59 | this.radioE.UseVisualStyleBackColor = true; 60 | // 61 | // radioD 62 | // 63 | this.radioD.AutoSize = true; 64 | this.radioD.Location = new System.Drawing.Point(27, 65); 65 | this.radioD.Name = "radioD"; 66 | this.radioD.Size = new System.Drawing.Size(86, 17); 67 | this.radioD.TabIndex = 60; 68 | this.radioD.Text = "0xFFFFFFFD"; 69 | this.radioD.UseVisualStyleBackColor = true; 70 | // 71 | // radioC 72 | // 73 | this.radioC.AutoSize = true; 74 | this.radioC.Location = new System.Drawing.Point(27, 88); 75 | this.radioC.Name = "radioC"; 76 | this.radioC.Size = new System.Drawing.Size(85, 17); 77 | this.radioC.TabIndex = 61; 78 | this.radioC.Text = "0xFFFFFFFC"; 79 | this.radioC.UseVisualStyleBackColor = true; 80 | // 81 | // radio0 82 | // 83 | this.radio0.AutoSize = true; 84 | this.radio0.Checked = true; 85 | this.radio0.Location = new System.Drawing.Point(28, 111); 86 | this.radio0.Name = "radio0"; 87 | this.radio0.Size = new System.Drawing.Size(31, 17); 88 | this.radio0.TabIndex = 62; 89 | this.radio0.TabStop = true; 90 | this.radio0.Text = "0"; 91 | this.radio0.UseVisualStyleBackColor = true; 92 | // 93 | // groupBox1 94 | // 95 | this.groupBox1.Controls.Add(this.radioF); 96 | this.groupBox1.Controls.Add(this.radio0); 97 | this.groupBox1.Controls.Add(this.radioE); 98 | this.groupBox1.Controls.Add(this.radioC); 99 | this.groupBox1.Controls.Add(this.radioD); 100 | this.groupBox1.Location = new System.Drawing.Point(12, 12); 101 | this.groupBox1.Name = "groupBox1"; 102 | this.groupBox1.Size = new System.Drawing.Size(130, 135); 103 | this.groupBox1.TabIndex = 63; 104 | this.groupBox1.TabStop = false; 105 | this.groupBox1.Text = "Serial"; 106 | // 107 | // button1 108 | // 109 | this.button1.Cursor = System.Windows.Forms.Cursors.Default; 110 | this.button1.Location = new System.Drawing.Point(39, 153); 111 | this.button1.Name = "button1"; 112 | this.button1.Size = new System.Drawing.Size(75, 23); 113 | this.button1.TabIndex = 64; 114 | this.button1.Text = "Ok"; 115 | this.button1.UseVisualStyleBackColor = true; 116 | this.button1.Click += new System.EventHandler(this.button1_Click); 117 | // 118 | // Serial 119 | // 120 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 121 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 122 | this.ClientSize = new System.Drawing.Size(159, 180); 123 | this.Controls.Add(this.button1); 124 | this.Controls.Add(this.groupBox1); 125 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; 126 | this.Name = "Serial"; 127 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 128 | this.Text = "Serial"; 129 | this.groupBox1.ResumeLayout(false); 130 | this.groupBox1.PerformLayout(); 131 | this.ResumeLayout(false); 132 | 133 | } 134 | 135 | #endregion 136 | 137 | private System.Windows.Forms.RadioButton radioF; 138 | private System.Windows.Forms.RadioButton radioE; 139 | private System.Windows.Forms.RadioButton radioD; 140 | private System.Windows.Forms.RadioButton radioC; 141 | private System.Windows.Forms.RadioButton radio0; 142 | private System.Windows.Forms.GroupBox groupBox1; 143 | private System.Windows.Forms.Button button1; 144 | } 145 | } -------------------------------------------------------------------------------- /SCFEditor/Items/Serial.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace TitanEditor.Items 10 | { 11 | public partial class Serial : Form 12 | { 13 | public Serial() 14 | { 15 | InitializeComponent(); 16 | } 17 | 18 | public Int64 ItemSerial = 0; 19 | 20 | private void button1_Click(object sender, EventArgs e) 21 | { 22 | if (radio0.Checked == true) 23 | ItemSerial = 0; 24 | else 25 | { 26 | ItemSerial = 0xFFFFFFFF; 27 | if (radioE.Checked == true) 28 | ItemSerial = ItemSerial - 1; 29 | else if (radioD.Checked == true) 30 | ItemSerial = ItemSerial - 2; 31 | else if (radioC.Checked == true) 32 | ItemSerial = ItemSerial - 3; 33 | } 34 | this.Close(); 35 | } 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /SCFEditor/Items/Serial.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SCFEditor/Logo Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TitansTech/TitanEditor/2047372b71e3bd38c343f0841797c6683f8d9bb6/SCFEditor/Logo Small.png -------------------------------------------------------------------------------- /SCFEditor/Megaman.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TitansTech/TitanEditor/2047372b71e3bd38c343f0841797c6683f8d9bb6/SCFEditor/Megaman.ico -------------------------------------------------------------------------------- /SCFEditor/Program.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Windows.Forms; 4 | 5 | namespace TitanEditor 6 | { 7 | static class Program 8 | { 9 | /// 10 | /// The main entry point for the application. 11 | /// 12 | [STAThread] 13 | static void Main() 14 | { 15 | Application.EnableVisualStyles(); 16 | Application.SetCompatibleTextRenderingDefault(false); 17 | Application.Run(new Form1()); 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /SCFEditor/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("TitanEditor")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("TitanEditor")] 13 | [assembly: AssemblyCopyright("Copyright © 2010")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("9339aac4-f43a-448e-9e3a-fd6dd342d9fd")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Build and Revision Numbers 33 | // by using the '*' as shown below: 34 | // [assembly: AssemblyVersion("1.0.*")] 35 | [assembly: AssemblyVersion("2.0.0.0")] 36 | [assembly: AssemblyFileVersion("2.0.0.0")] 37 | -------------------------------------------------------------------------------- /SCFEditor/Properties/Resources.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Este código fue generado por una herramienta. 4 | // Versión del motor en tiempo de ejecución:2.0.50727.4927 5 | // 6 | // Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si 7 | // se vuelve a generar el código. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace TitanEditor.Properties { 12 | using System; 13 | 14 | 15 | /// 16 | /// Clase de recurso con establecimiento inflexible de tipos, para buscar cadenas traducidas, etc. 17 | /// 18 | // StronglyTypedResourceBuilder generó automáticamente esta clase 19 | // a través de una herramienta como ResGen o Visual Studio. 20 | // Para agregar o quitar un miembro, edite el archivo .ResX y, a continuación, vuelva a ejecutar ResGen 21 | // con la opción /str o vuelva a generar su proyecto de VS. 22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] 23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] 24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 25 | internal class Resources { 26 | 27 | private static global::System.Resources.ResourceManager resourceMan; 28 | 29 | private static global::System.Globalization.CultureInfo resourceCulture; 30 | 31 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] 32 | internal Resources() { 33 | } 34 | 35 | /// 36 | /// Devuelve la instancia de ResourceManager almacenada en caché utilizada por esta clase. 37 | /// 38 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 39 | internal static global::System.Resources.ResourceManager ResourceManager { 40 | get { 41 | if (object.ReferenceEquals(resourceMan, null)) { 42 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TitanEditor.Properties.Resources", typeof(Resources).Assembly); 43 | resourceMan = temp; 44 | } 45 | return resourceMan; 46 | } 47 | } 48 | 49 | /// 50 | /// Reemplaza la propiedad CurrentUICulture del subproceso actual para todas las 51 | /// búsquedas de recursos mediante esta clase de recurso con establecimiento inflexible de tipos. 52 | /// 53 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 54 | internal static global::System.Globalization.CultureInfo Culture { 55 | get { 56 | return resourceCulture; 57 | } 58 | set { 59 | resourceCulture = value; 60 | } 61 | } 62 | 63 | internal static System.Drawing.Bitmap char_1 { 64 | get { 65 | object obj = ResourceManager.GetObject("char_1", resourceCulture); 66 | return ((System.Drawing.Bitmap)(obj)); 67 | } 68 | } 69 | 70 | internal static System.Drawing.Bitmap Logo_Small { 71 | get { 72 | object obj = ResourceManager.GetObject("Logo Small", resourceCulture); 73 | return ((System.Drawing.Bitmap)(obj)); 74 | } 75 | } 76 | 77 | internal static System.Drawing.Bitmap package_1 { 78 | get { 79 | object obj = ResourceManager.GetObject("package_1", resourceCulture); 80 | return ((System.Drawing.Bitmap)(obj)); 81 | } 82 | } 83 | 84 | internal static System.Drawing.Bitmap unknownItem { 85 | get { 86 | object obj = ResourceManager.GetObject("unknownItem", resourceCulture); 87 | return ((System.Drawing.Bitmap)(obj)); 88 | } 89 | } 90 | 91 | internal static System.Drawing.Bitmap warehouse_1 { 92 | get { 93 | object obj = ResourceManager.GetObject("warehouse_1", resourceCulture); 94 | return ((System.Drawing.Bitmap)(obj)); 95 | } 96 | } 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /SCFEditor/Properties/Resources.resx: -------------------------------------------------------------------------------- 1 |  2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | 121 | 122 | ..\Resources\warehouse-1.jpg;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 123 | 124 | 125 | ..\Resources\package-1.jpg;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 126 | 127 | 128 | ..\Resources\unknownItem.jpg;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 129 | 130 | 131 | ..\Resources\char-1.jpg;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 132 | 133 | 134 | ..\Logo Small.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a 135 | 136 | -------------------------------------------------------------------------------- /SCFEditor/Properties/Settings.Designer.cs: -------------------------------------------------------------------------------- 1 | //------------------------------------------------------------------------------ 2 | // 3 | // Este código fue generado por una herramienta. 4 | // Versión del motor en tiempo de ejecución:2.0.50727.4927 5 | // 6 | // Los cambios en este archivo podrían causar un comportamiento incorrecto y se perderán si 7 | // se vuelve a generar el código. 8 | // 9 | //------------------------------------------------------------------------------ 10 | 11 | namespace TitanEditor.Properties { 12 | 13 | 14 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] 15 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")] 16 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { 17 | 18 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); 19 | 20 | public static Settings Default { 21 | get { 22 | return defaultInstance; 23 | } 24 | } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /SCFEditor/Properties/Settings.settings: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /SCFEditor/Resources/char-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TitansTech/TitanEditor/2047372b71e3bd38c343f0841797c6683f8d9bb6/SCFEditor/Resources/char-1.jpg -------------------------------------------------------------------------------- /SCFEditor/Resources/package-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TitansTech/TitanEditor/2047372b71e3bd38c343f0841797c6683f8d9bb6/SCFEditor/Resources/package-1.jpg -------------------------------------------------------------------------------- /SCFEditor/Resources/unknownItem.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TitansTech/TitanEditor/2047372b71e3bd38c343f0841797c6683f8d9bb6/SCFEditor/Resources/unknownItem.jpg -------------------------------------------------------------------------------- /SCFEditor/Resources/warehouse-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TitansTech/TitanEditor/2047372b71e3bd38c343f0841797c6683f8d9bb6/SCFEditor/Resources/warehouse-1.jpg -------------------------------------------------------------------------------- /SCFEditor/Reward.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Windows.Forms; 8 | 9 | namespace TitanEditor 10 | { 11 | public partial class Reward : Form 12 | { 13 | bool ReloadAccount = false; 14 | public Reward() 15 | { 16 | InitializeComponent(); 17 | } 18 | 19 | private void Reward_Load(object sender, EventArgs e) 20 | { 21 | equipEditor1.LoadData(); 22 | } 23 | 24 | private void addReward_Click(object sender, EventArgs e) 25 | { 26 | if (comboAccount.Text == "") 27 | { 28 | MessageBox.Show(string.Format("[Error] Write a Account Name First")); 29 | return; 30 | } 31 | 32 | if (comboChar.Text == "") 33 | { 34 | MessageBox.Show(string.Format("[Error] Write a Character Name First")); 35 | return; 36 | } 37 | 38 | if (equipEditor1.EditItem == null && itemcheckBox.Checked == true) 39 | { 40 | MessageBox.Show(string.Format("[Error] Add an Item First")); 41 | return; 42 | } 43 | 44 | int ItemID = -1; 45 | if (equipEditor1.EditItem != null && itemcheckBox.Checked == true) 46 | { 47 | ItemID = (equipEditor1.EditItem.Type * 512 + equipEditor1.EditItem.Code); 48 | equipEditor1.updateData(equipEditor1.EditItem); 49 | 50 | int ExcCnt = 0; 51 | if (equipEditor1.EditItem.ZY1 == true) 52 | ExcCnt += 1; 53 | if (equipEditor1.EditItem.ZY2 == true) 54 | ExcCnt += 0x02; 55 | if (equipEditor1.EditItem.ZY3 == true) 56 | ExcCnt += 0x04; 57 | if (equipEditor1.EditItem.ZY4 == true) 58 | ExcCnt += 0x08; 59 | if (equipEditor1.EditItem.ZY5 == true) 60 | ExcCnt += 0x10; 61 | if (equipEditor1.EditItem.ZY6 == true) 62 | ExcCnt += 0x20; 63 | bool result = DBLite.dbMu.Exec("INSERT INTO Titan_Rewards (AccountID,Name,Zen,VIPMoney,Num,Lvl,Opt,Luck,Skill,Dur,Excellent,Ancient,JOH,Sock1,Sock2,Sock3,Sock4,Sock5,Days) VALUES ('" + 64 | comboAccount.Text + 65 | "', '" + comboChar.Text + 66 | "', " + Zen.Text + 67 | ", " + VIPMoney.Text + 68 | ", " + ItemID + 69 | ", " + equipEditor1.EditItem.Level + 70 | ", " + equipEditor1.EditItem.Ext + 71 | ", " + Convert.ToInt32(equipEditor1.EditItem.XY) + 72 | ", " + Convert.ToInt32(equipEditor1.EditItem.JN) + 73 | ", " + equipEditor1.EditItem.Durability + 74 | ", " + ExcCnt + 75 | ", " + equipEditor1.EditItem.Set + 76 | ", " + equipEditor1.EditItem.Harmony + 77 | ", " + equipEditor1.EditItem.Socket1 + 78 | ", " + equipEditor1.EditItem.Socket2 + 79 | ", " + equipEditor1.EditItem.Socket3 + 80 | ", " + equipEditor1.EditItem.Socket4 + 81 | ", " + equipEditor1.EditItem.Socket5 + 82 | ", " + Days.Text + ")"); 83 | DBLite.dbMu.Close(); 84 | 85 | if (result == true) 86 | MessageBox.Show(string.Format("[Success] Reward Added")); 87 | else 88 | MessageBox.Show(string.Format("[Error] Cant add reward!!")); 89 | } 90 | else 91 | { 92 | bool result = DBLite.dbMu.Exec("INSERT INTO Titan_Rewards (AccountID,Name,Zen,VIPMoney,Num,Lvl,Opt,Luck,Skill,Dur,Excellent,Ancient,JOH,Sock1,Sock2,Sock3,Sock4,Sock5,Days) VALUES ('" + 93 | comboAccount.Text + 94 | "', '" + comboChar.Text + 95 | "', " + Zen.Text + 96 | ", " + VIPMoney.Text + 97 | ", " + ItemID + 98 | ", " + 0 + 99 | ", " + 0 + 100 | ", " + 0 + 101 | ", " + 0 + 102 | ", " + 0 + 103 | ", " + 0 + 104 | ", " + 0 + 105 | ", " + 0 + 106 | ", " + 0 + 107 | ", " + 0 + 108 | ", " + 0 + 109 | ", " + 0 + 110 | ", " + 0 + 111 | ", " + 0 + ")"); 112 | DBLite.dbMu.Close(); 113 | 114 | if (result == true) 115 | MessageBox.Show(string.Format("[Success] Reward Added")); 116 | else 117 | MessageBox.Show(string.Format("[Error] Cant add reward!!")); 118 | } 119 | 120 | string eMail = ""; 121 | 122 | if (itemcheckBox.Checked == true) 123 | eMail += string.Format(ini.Mail1, equipEditor1.EditItem.Name); 124 | 125 | if(Convert.ToInt32(Zen.Text) > 0) 126 | eMail += string.Format(ini.Mail2, Zen.Text); 127 | 128 | if (Convert.ToInt32(VIPMoney.Text) > 0) 129 | eMail += string.Format(ini.Mail3, VIPMoney.Text); 130 | 131 | eMail += ini.Mail4; 132 | 133 | DBLite.dbMu.Exec("exec TT_WriteMemoMail '" + ini.MailSender + "','" + comboChar.Text + "','" + ini.MailSubject + "',' " + eMail + "',143,27"); 134 | DBLite.dbMu.Close(); 135 | } 136 | 137 | public void Account_Reload() 138 | { 139 | ReloadAccount = true; 140 | comboChar.Text = ""; 141 | comboChar.Items.Clear(); 142 | comboAccount.Text = ""; 143 | comboAccount.Items.Clear(); 144 | DBLite.dbMe.Read("SELECT memb___id FROM MEMB_INFO ORDER BY memb___id"); 145 | while (DBLite.dbMe.Fetch()) 146 | { 147 | comboAccount.Items.Add(DBLite.dbMe.GetAsString("memb___id")); 148 | } 149 | DBLite.dbMe.Close(); 150 | } 151 | public void Character_Reload() 152 | { 153 | comboChar.Text = ""; 154 | comboChar.Items.Clear(); 155 | if (comboAccount.SelectedItem != null) 156 | { 157 | DBLite.dbMu.Read("SELECT Name FROM Character WHERE AccountID = '" + comboAccount.Text + "' ORDER BY Name"); 158 | while (DBLite.dbMu.Fetch()) 159 | { 160 | comboChar.Items.Add(DBLite.dbMu.GetAsString("Name")); 161 | } 162 | DBLite.dbMu.Close(); 163 | } 164 | } 165 | 166 | private void account_Rld_Click(object sender, EventArgs e) 167 | { 168 | Account_Reload(); 169 | } 170 | 171 | private void comboAccount_SelectedIndexChanged(object sender, EventArgs e) 172 | { 173 | Character_Reload(); 174 | } 175 | 176 | private void accountFind_Click(object sender, EventArgs e) 177 | { 178 | Find formFind = new Find(); 179 | formFind.isAccount = true; 180 | if (formFind.ShowDialog() == DialogResult.OK) 181 | { 182 | comboChar.Text = ""; 183 | comboChar.Items.Clear(); 184 | 185 | if (ReloadAccount) 186 | comboAccount.Text = Extra.FindResult.AccountID; 187 | else 188 | { 189 | bool found = false; 190 | for (int i = 0; i < comboAccount.Items.Count; i++) 191 | { 192 | if (comboAccount.Items[i].ToString() == Extra.FindResult.AccountID) 193 | { 194 | found = true; 195 | break; 196 | } 197 | } 198 | if (!found) 199 | comboAccount.Items.Add(Extra.FindResult.AccountID); 200 | comboAccount.Text = Extra.FindResult.AccountID; 201 | } 202 | } 203 | } 204 | 205 | private void itemcheckBox_CheckedChanged(object sender, EventArgs e) 206 | { 207 | groupBox1.Enabled = itemcheckBox.Checked; 208 | } 209 | 210 | private void charFind_Click(object sender, EventArgs e) 211 | { 212 | Find formFind = new Find(); 213 | formFind.isAccount = false; 214 | if (formFind.ShowDialog() == DialogResult.OK) 215 | { 216 | comboAccount.Text = Extra.FindResult.AccountID; 217 | comboChar.Text = Extra.FindResult.Character; 218 | } 219 | } 220 | } 221 | } 222 | -------------------------------------------------------------------------------- /SCFEditor/Reward.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SCFEditor/Splash.Designer.cs: -------------------------------------------------------------------------------- 1 | namespace TitanEditor 2 | { 3 | partial class Splash 4 | { 5 | /// 6 | /// Required designer variable. 7 | /// 8 | private System.ComponentModel.IContainer components = null; 9 | 10 | /// 11 | /// Clean up any resources being used. 12 | /// 13 | /// true if managed resources should be disposed; otherwise, false. 14 | protected override void Dispose(bool disposing) 15 | { 16 | if (disposing && (components != null)) 17 | { 18 | components.Dispose(); 19 | } 20 | base.Dispose(disposing); 21 | } 22 | 23 | #region Windows Form Designer generated code 24 | 25 | /// 26 | /// Required method for Designer support - do not modify 27 | /// the contents of this method with the code editor. 28 | /// 29 | private void InitializeComponent() 30 | { 31 | this.pictureBox1 = new System.Windows.Forms.PictureBox(); 32 | this.label1 = new System.Windows.Forms.Label(); 33 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); 34 | this.SuspendLayout(); 35 | // 36 | // pictureBox1 37 | // 38 | this.pictureBox1.Image = global::TitanEditor.Properties.Resources.Logo_Small; 39 | this.pictureBox1.Location = new System.Drawing.Point(12, 9); 40 | this.pictureBox1.Name = "pictureBox1"; 41 | this.pictureBox1.Size = new System.Drawing.Size(350, 83); 42 | this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; 43 | this.pictureBox1.TabIndex = 0; 44 | this.pictureBox1.TabStop = false; 45 | // 46 | // label1 47 | // 48 | this.label1.AutoSize = true; 49 | this.label1.Font = new System.Drawing.Font("Times New Roman", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); 50 | this.label1.ForeColor = System.Drawing.Color.SkyBlue; 51 | this.label1.Location = new System.Drawing.Point(164, 9); 52 | this.label1.Name = "label1"; 53 | this.label1.Size = new System.Drawing.Size(101, 15); 54 | this.label1.TabIndex = 1; 55 | this.label1.Text = "Mu Online Editor"; 56 | // 57 | // Splash 58 | // 59 | this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); 60 | this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; 61 | this.BackColor = System.Drawing.Color.Black; 62 | this.ClientSize = new System.Drawing.Size(277, 104); 63 | this.Controls.Add(this.label1); 64 | this.Controls.Add(this.pictureBox1); 65 | this.Cursor = System.Windows.Forms.Cursors.AppStarting; 66 | this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 67 | this.MaximizeBox = false; 68 | this.MinimizeBox = false; 69 | this.Name = "Splash"; 70 | this.ShowIcon = false; 71 | this.ShowInTaskbar = false; 72 | this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; 73 | this.Text = "Splash"; 74 | this.Load += new System.EventHandler(this.Splash_Load); 75 | ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); 76 | this.ResumeLayout(false); 77 | this.PerformLayout(); 78 | 79 | } 80 | 81 | #endregion 82 | 83 | private System.Windows.Forms.PictureBox pictureBox1; 84 | private System.Windows.Forms.Label label1; 85 | } 86 | } -------------------------------------------------------------------------------- /SCFEditor/Splash.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.ComponentModel; 4 | using System.Data; 5 | using System.Drawing; 6 | using System.Text; 7 | using System.Threading; 8 | using System.Windows.Forms; 9 | 10 | namespace TitanEditor 11 | { 12 | public partial class Splash : Form 13 | { 14 | public Splash() 15 | { 16 | InitializeComponent(); 17 | } 18 | 19 | private void Splash_Load(object sender, EventArgs e) 20 | { 21 | } 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /SCFEditor/Splash.resx: -------------------------------------------------------------------------------- 1 | 2 | 3 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | text/microsoft-resx 110 | 111 | 112 | 2.0 113 | 114 | 115 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 116 | 117 | 118 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 119 | 120 | -------------------------------------------------------------------------------- /SCFEditor/bin/x86/Release/Config.ini: -------------------------------------------------------------------------------- 1 | [Connection] 2 | 3 | ODBC=MuOnline 4 | ODBC_Me=Me_MuOnline 5 | User=sa 6 | Password=654321 7 | 8 | UseODBC=0 9 | SQLServer=ADMIN-PC\SQLEXPRESS 10 | 11 | [Common] 12 | 13 | UseMD5=1 14 | ResetField=resets 15 | ReloadAccounts=1 16 | 17 | [EditorAdds] 18 | 19 | ItemNewPath=D:\MuServer\Data\Lang\Kor\Item(New).txt 20 | 21 | [MuMail] 22 | 23 | Sender=IcarO 24 | Subject=Regalero 25 | Mail1=Tienes un {0}, 26 | Mail2=Zen= {0}, 27 | Mail3=VipMoney= {0}, 28 | Mail4=de premio para reclamar en el Bot de entregas -------------------------------------------------------------------------------- /SCFEditor/ini.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Text; 4 | using System.Runtime.InteropServices; 5 | 6 | namespace TitanEditor 7 | { 8 | class ini 9 | { 10 | [DllImport("kernel32")] 11 | private static extern long WritePrivateProfileString(string section, string key, string val, string filePath); 12 | [DllImport("kernel32")] 13 | private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath); 14 | 15 | public static bool MD5 = true; 16 | public static string ResetField = "resets"; 17 | public static string Mail1; 18 | public static string Mail2; 19 | public static string Mail3; 20 | public static string Mail4; 21 | public static string MailSender; 22 | public static string MailSubject; 23 | 24 | public static string ReadString(string Section, string Key, string DefaultValue, string Path) 25 | { 26 | try 27 | { 28 | StringBuilder temp = new StringBuilder(2048); 29 | GetPrivateProfileString(Section, Key, "", temp, 255, Path); 30 | if (temp != null) 31 | return (temp.ToString()); 32 | else 33 | return ""; 34 | } 35 | catch (Exception) 36 | { 37 | return ""; 38 | } 39 | } 40 | 41 | public static int ReadInt(string Section, string Key, string DefaultValue, string Path) 42 | { 43 | try 44 | { 45 | StringBuilder temp = new StringBuilder(2048); 46 | GetPrivateProfileString(Section, Key, DefaultValue, temp, 255, Path); 47 | if (temp.Length == 0) 48 | return 0; 49 | else 50 | return (Convert.ToInt32(temp.ToString())); 51 | } 52 | catch (Exception) 53 | { 54 | return 0; 55 | } 56 | } 57 | 58 | public static void WriteValue(string Section, string Key, object Value, string Path) 59 | { 60 | try 61 | { 62 | WritePrivateProfileString(Section, Key, Value.ToString(), Path); 63 | } 64 | catch (Exception) 65 | { 66 | } 67 | } 68 | } 69 | } 70 | -------------------------------------------------------------------------------- /TitanEditor.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual C# Express 2008 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TitanEditor", "SCFEditor\TitanEditor.csproj", "{91A38A26-5926-49A2-AE54-23CCD4D5CE44}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Any CPU = Debug|Any CPU 9 | Debug|x64 = Debug|x64 10 | Debug|x86 = Debug|x86 11 | Release|Any CPU = Release|Any CPU 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {91A38A26-5926-49A2-AE54-23CCD4D5CE44}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 17 | {91A38A26-5926-49A2-AE54-23CCD4D5CE44}.Debug|Any CPU.Build.0 = Debug|Any CPU 18 | {91A38A26-5926-49A2-AE54-23CCD4D5CE44}.Debug|x64.ActiveCfg = Debug|x64 19 | {91A38A26-5926-49A2-AE54-23CCD4D5CE44}.Debug|x64.Build.0 = Debug|x64 20 | {91A38A26-5926-49A2-AE54-23CCD4D5CE44}.Debug|x86.ActiveCfg = Debug|x86 21 | {91A38A26-5926-49A2-AE54-23CCD4D5CE44}.Debug|x86.Build.0 = Debug|x86 22 | {91A38A26-5926-49A2-AE54-23CCD4D5CE44}.Release|Any CPU.ActiveCfg = Release|Any CPU 23 | {91A38A26-5926-49A2-AE54-23CCD4D5CE44}.Release|Any CPU.Build.0 = Release|Any CPU 24 | {91A38A26-5926-49A2-AE54-23CCD4D5CE44}.Release|x64.ActiveCfg = Release|x64 25 | {91A38A26-5926-49A2-AE54-23CCD4D5CE44}.Release|x64.Build.0 = Release|x64 26 | {91A38A26-5926-49A2-AE54-23CCD4D5CE44}.Release|x86.ActiveCfg = Release|x86 27 | {91A38A26-5926-49A2-AE54-23CCD4D5CE44}.Release|x86.Build.0 = Release|x86 28 | EndGlobalSection 29 | GlobalSection(SolutionProperties) = preSolution 30 | HideSolutionNode = FALSE 31 | EndGlobalSection 32 | EndGlobal 33 | -------------------------------------------------------------------------------- /TitanEditor.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TitansTech/TitanEditor/2047372b71e3bd38c343f0841797c6683f8d9bb6/TitanEditor.suo -------------------------------------------------------------------------------- /TitanEditorAdds.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/TitansTech/TitanEditor/2047372b71e3bd38c343f0841797c6683f8d9bb6/TitanEditorAdds.exe --------------------------------------------------------------------------------