Commit 646db356 authored by keyongyu's avatar keyongyu

mse

parent dbf678f5
...@@ -52,7 +52,7 @@ public static string GetHtmlContentByUrl(string url) ...@@ -52,7 +52,7 @@ public static string GetHtmlContentByUrl(string url)
try { try {
HttpWebRequest httpWebRequest = HttpWebRequest httpWebRequest =
(HttpWebRequest)WebRequest.Create(url); (HttpWebRequest)WebRequest.Create(url);
httpWebRequest.Timeout = 30000; httpWebRequest.Timeout = 15000;
using(HttpWebResponse httpWebResponse = using(HttpWebResponse httpWebResponse =
(HttpWebResponse)httpWebRequest.GetResponse()) (HttpWebResponse)httpWebRequest.GetResponse())
{ {
......
...@@ -7,168 +7,168 @@ ...@@ -7,168 +7,168 @@
namespace DataEditorX.Core namespace DataEditorX.Core
{ {
public struct Card : IEquatable<Card> public struct Card : IEquatable<Card>
{ {
#region 构造 #region 构造
/// <summary> /// <summary>
/// 卡片 /// 卡片
/// </summary> /// </summary>
/// <param name="cardCode">密码</param> /// <param name="cardCode">密码</param>
/// <param name="cardName">名字</param> /// <param name="cardName">名字</param>
public Card(long cardCode) public Card(long cardCode)
{ {
int i; int i;
this.id = cardCode; this.id = cardCode;
this.name=""; this.name="";
this.ot = 0; this.ot = 0;
this.alias = 0; this.alias = 0;
this.setcode = 0; this.setcode = 0;
this.type = 0; this.type = 0;
this.atk = 0; this.atk = 0;
this.def = 0; this.def = 0;
this.level = 0; this.level = 0;
this.race = 0; this.race = 0;
this.attribute = 0; this.attribute = 0;
this.category = 0; this.category = 0;
this.desc = ""; this.desc = "";
this.str = new string[0x10]; this.str = new string[0x10];
for(i=0;i<0x10;i++) for(i=0;i<0x10;i++)
str[i]=""; str[i]="";
} }
#endregion #endregion
#region 成员 #region 成员
/// <summary>卡片密码</summary> /// <summary>卡片密码</summary>
public long id; public long id;
/// <summary>卡片规则</summary> /// <summary>卡片规则</summary>
public int ot; public int ot;
/// <summary>卡片同名卡</summary> /// <summary>卡片同名卡</summary>
public long alias; public long alias;
/// <summary>卡片系列号</summary> /// <summary>卡片系列号</summary>
public long setcode; public long setcode;
/// <summary>卡片种类</summary> /// <summary>卡片种类</summary>
public long type; public long type;
/// <summary>攻击力</summary> /// <summary>攻击力</summary>
public int atk; public int atk;
/// <summary>防御力</summary> /// <summary>防御力</summary>
public int def; public int def;
/// <summary>卡片等级</summary> /// <summary>卡片等级</summary>
public long level; public long level;
/// <summary>卡片种族</summary> /// <summary>卡片种族</summary>
public long race; public long race;
/// <summary>卡片属性</summary> /// <summary>卡片属性</summary>
public int attribute; public int attribute;
/// <summary>效果种类</summary> /// <summary>效果种类</summary>
public long category; public long category;
/// <summary>卡片名称</summary> /// <summary>卡片名称</summary>
public string name; public string name;
/// <summary>描述文本</summary> /// <summary>描述文本</summary>
public string desc; public string desc;
/// <summary>脚本文件组</summary> /// <summary>脚本文件组</summary>
public string[] str; public string[] str;
#endregion #endregion
#region 比较、哈希值、操作符 #region 比较、哈希值、操作符
/// <summary> /// <summary>
/// 比较 /// 比较
/// </summary> /// </summary>
/// <param name="obj">对象</param> /// <param name="obj">对象</param>
/// <returns>结果</returns> /// <returns>结果</returns>
public override bool Equals(object obj) public override bool Equals(object obj)
{ {
if (obj is Card) if (obj is Card)
return Equals((Card)obj); // use Equals method below return Equals((Card)obj); // use Equals method below
else else
return false; return false;
} }
/// <summary> /// <summary>
/// 字符串化 /// 字符串化
/// </summary> /// </summary>
public override string ToString() public override string ToString()
{ {
return string.Format("{0} [{1}]", id.ToString("00000000"), name); return string.Format("{0} [{1}]", id.ToString("00000000"), name);
} }
/// <summary> /// <summary>
/// 比较卡片是否一致? /// 比较卡片是否一致?
/// </summary> /// </summary>
/// <param name="other">比较的卡片</param> /// <param name="other">比较的卡片</param>
/// <returns>结果</returns> /// <returns>结果</returns>
public bool Equals(Card other) public bool Equals(Card other)
{ {
bool equalBool = true; bool equalBool = true;
if (this.id != other.id) if (this.id != other.id)
equalBool = false; equalBool = false;
else if (this.ot != other.ot) else if (this.ot != other.ot)
equalBool = false; equalBool = false;
else if (this.alias != other.alias) else if (this.alias != other.alias)
equalBool = false; equalBool = false;
else if (this.setcode != other.setcode) else if (this.setcode != other.setcode)
equalBool = false; equalBool = false;
else if (this.type != other.type) else if (this.type != other.type)
equalBool = false; equalBool = false;
else if (this.atk != other.atk) else if (this.atk != other.atk)
equalBool = false; equalBool = false;
else if (this.def != other.def) else if (this.def != other.def)
equalBool = false; equalBool = false;
else if (this.level != other.level) else if (this.level != other.level)
equalBool = false; equalBool = false;
else if (this.race != other.race) else if (this.race != other.race)
equalBool = false; equalBool = false;
else if (this.attribute != other.attribute) else if (this.attribute != other.attribute)
equalBool = false; equalBool = false;
else if (this.category != other.category) else if (this.category != other.category)
equalBool = false; equalBool = false;
else if (!this.name.Equals(other.name)) else if (!this.name.Equals(other.name))
equalBool = false; equalBool = false;
else if (!this.desc.Equals(other.desc)) else if (!this.desc.Equals(other.desc))
equalBool = false; equalBool = false;
else if (this.str.Length != other.str.Length) else if (this.str.Length != other.str.Length)
equalBool = false; equalBool = false;
else else
{ {
int l = this.str.Length; int l = this.str.Length;
for (int i = 0; i < l; i++) for (int i = 0; i < l; i++)
{ {
if (!this.str[i].Equals(other.str[i])) if (!this.str[i].Equals(other.str[i]))
{ {
equalBool = false; equalBool = false;
break; break;
} }
} }
} }
return equalBool; return equalBool;
} }
/// <summary> /// <summary>
/// 得到哈希值 /// 得到哈希值
/// </summary> /// </summary>
public override int GetHashCode() public override int GetHashCode()
{ {
// combine the hash codes of all members here (e.g. with XOR operator ^) // combine the hash codes of all members here (e.g. with XOR operator ^)
int hashCode = id.GetHashCode() + name.GetHashCode(); int hashCode = id.GetHashCode() + name.GetHashCode();
return hashCode;//member.GetHashCode(); return hashCode;//member.GetHashCode();
} }
/// <summary> /// <summary>
/// 比较卡片是否相等 /// 比较卡片是否相等
/// </summary> /// </summary>
public static bool operator ==(Card left, Card right) public static bool operator ==(Card left, Card right)
{ {
return left.Equals(right); return left.Equals(right);
} }
/// <summary> /// <summary>
/// 卡片是否不相等 /// 卡片是否不相等
/// </summary> /// </summary>
public static bool operator !=(Card left, Card right) public static bool operator !=(Card left, Card right)
{ {
return !left.Equals(right); return !left.Equals(right);
} }
#endregion #endregion
public bool IsType(CardType type){ public bool IsType(CardType type){
if((this.type & (long)type) == (long)type) if((this.type & (long)type) == (long)type)
return true; return true;
return false; return false;
} }
} }
} }
...@@ -309,6 +309,7 @@ public static int CopyDB(string DB, bool ignore,params Card[] cards) ...@@ -309,6 +309,7 @@ public static int CopyDB(string DB, bool ignore,params Card[] cards)
} }
#endregion #endregion
#region 压缩数据库
public static void Compression(string db) public static void Compression(string db)
{ {
if (File.Exists(db)) if (File.Exists(db))
...@@ -326,7 +327,7 @@ public static void Compression(string db) ...@@ -326,7 +327,7 @@ public static void Compression(string db)
} }
} }
#endregion
#region SQL语句 #region SQL语句
#region 查询 #region 查询
......
...@@ -6,27 +6,190 @@ ...@@ -6,27 +6,190 @@
* *
*/ */
using System; using System;
using System.IO;
using System.Configuration;
using System.Collections.Generic;
using System.Text;
using System.IO.Compression;
namespace DataEditorX.Core namespace DataEditorX.Core
{ {
/// <summary> /// <summary>
/// Description of MSE. /// Description of MSE.
/// </summary> /// </summary>
public class MSE public class MSE
{ {
/*
*
normal monster 通常怪兽
effect monster 效果怪兽
fusion monster 融合怪兽
ritual monster 仪式怪兽
synchro monster 同调怪兽
token monster 衍生物
xyz monster 超量怪兽
spell card 魔法
trap card 陷阱
*/
static bool isInit=false; static bool isInit=false;
public static void Init() static MSEConfig cfg;
static Dictionary<long,string> mTypedic;
static Dictionary<long,string> mRacedic;
public static void Init(string path,
Dictionary<long,string> typedic,
Dictionary<long,string> racedic)
{ {
if(isInit) if(isInit)
return; return;
//cut images cfg=new MSEConfig(path);
//type mTypedic = typedic;
//race mRacedic = racedic;
//effect MSEConvert.Init(typedic, racedic);
} }
public static void Save(string file,Card[] cards,string pic){ public static void Save(string file, Card[] cards,string pic){
MSE.Init(); string setFile=file+".txt";
string[] images=WriteSet(setFile, cards, pic);
using(ZipStorer zips=ZipStorer.Create(file, ""))
{
zips.AddFile(setFile,"set","");
foreach ( string img in images )
{
zips.AddFile(img, Path.GetFileNameWithoutExtension(img),"");
}
zips.Close();
}
File.Delete(setFile);
}
public static string[] WriteSet(string file,Card[] cards,string pic)
{
List<string> list=new List<string>();
using(FileStream fs=new FileStream(file,
FileMode.Create, FileAccess.Write))
{
StreamWriter sw=new StreamWriter(fs, Encoding.UTF8);
sw.WriteLine(cfg.head);
foreach(Card c in cards)
{
string jpg=Path.Combine(pic,c.id+".jpg");
if(File.Exists(jpg)){
list.Add(jpg);
jpg=Path.GetFileNameWithoutExtension(jpg);
}
else
jpg="";
if(c.IsType(CardType.TYPE_SPELL))
sw.WriteLine(getSpell(c, jpg));
else if(c.IsType(CardType.TYPE_TRAP))
sw.WriteLine(getTrap(c, jpg));
else if(c.IsType(CardType.TYPE_PENDULUM))
sw.WriteLine(getPendulum(c, jpg));
else
sw.WriteLine(getMonster(c, jpg));
}
sw.Close();
}
return list.ToArray();
}
static string getMonster(Card c,string img)
{
StringBuilder sb=new StringBuilder(cfg.monster);
string[] types=MSEConvert.GetTypes(c);
string race=MSEConvert.GetRace(c.race);
sb.Replace("%type%", types[0]);
sb.Replace("%name%", c.name);
sb.Replace("%attribute%", MSEConvert.GetAttribute(c.attribute));
sb.Replace("%level%", MSEConvert.GetStar(c.level));
sb.Replace("%image%", img);
sb.Replace("%race%", race);
sb.Replace("%type1%",types[1]);
sb.Replace("%type2%",types[2]);
sb.Replace("%type3%",types[3]);
sb.Replace("%desc%", MSEConvert.ReDesc(c.desc));
if(!string.IsNullOrEmpty(race))
{
sb.Replace("%atk%", (c.atk<0)?"?":c.atk.ToString());
sb.Replace("%def%", (c.def<0)?"?":c.def.ToString());
}
sb.Replace("%code%",c.id.ToString("00000000"));
return sb.ToString();
}
static string getPendulum(Card c,string img)
{
StringBuilder sb=new StringBuilder(cfg.pendulum);
string[] types=MSEConvert.GetTypes(c);
string race=MSEConvert.GetRace(c.race);
sb.Replace("%type%", types[0]);
sb.Replace("%name%", c.name);
sb.Replace("%attribute%", MSEConvert.GetAttribute(c.attribute));
sb.Replace("%level%", MSEConvert.GetStar(c.level));
sb.Replace("%image%", img);
sb.Replace("%race%", race);
sb.Replace("%type1%",types[1]);
sb.Replace("%type2%",types[2]);
sb.Replace("%type3%",types[3]);
sb.Replace("%desc%", MSEConvert.ReDesc(
MSEConvert.GetDesc(c.desc, cfg.regx_monster)));
if(!string.IsNullOrEmpty(race))
{
sb.Replace("%atk%", (c.atk<0)?"?":c.atk.ToString());
sb.Replace("%def%", (c.def<0)?"?":c.def.ToString());
}
sb.Replace("%code%",c.id.ToString("00000000"));
sb.Replace("%pl%", ((c.level >> 0x18) & 0xff).ToString());
sb.Replace("%pr%", ((c.level >> 0x10) & 0xff).ToString());
sb.Replace("%pdesc%",MSEConvert.ReDesc(
MSEConvert.GetDesc(c.desc, cfg.regx_pendulum)));
return sb.ToString();
}
static string getSpell(Card c,string img)
{
string level="";
if(c.IsType(CardType.TYPE_EQUIP))
level="+";
else if(c.IsType(CardType.TYPE_QUICKPLAY))
level="$";
else if(c.IsType(CardType.TYPE_FIELD))
level="&";
else if(c.IsType(CardType.TYPE_CONTINUOUS))
level="%";
else if(c.IsType(CardType.TYPE_RITUAL))
level="#";
else
level="^";
StringBuilder sb=new StringBuilder(cfg.spelltrap);
sb.Replace("%type%", "spell card");
sb.Replace("%name%", c.name);
sb.Replace("%attribute%", "spell");
sb.Replace("%level%", level);
sb.Replace("%image%", img);
sb.Replace("%desc%", MSEConvert.ReDesc(c.desc));
sb.Replace("%code%", c.id.ToString("00000000"));
return sb.ToString();
}
static string getTrap(Card c,string img)
{
string level="";
if(c.IsType(CardType.TYPE_COUNTER))
level="!";
else if(c.IsType(CardType.TYPE_CONTINUOUS))
level="%";
else
level="^";
StringBuilder sb=new StringBuilder(cfg.spelltrap);
sb.Replace("%type%", "trap card");
sb.Replace("%name%", c.name);
sb.Replace("%attribute%", "trap");
sb.Replace("%level%", level);
sb.Replace("%image%", img);
sb.Replace("%desc%", MSEConvert.ReDesc(c.desc));
sb.Replace("%code%", c.id.ToString("00000000"));
return sb.ToString();
} }
} }
......
/*
* 由SharpDevelop创建。
* 用户: Acer
* 日期: 2014-10-15
* 时间: 15:47
*
*/
using System;
using System.Configuration;
using System.IO;
using DataEditorX.Language;
namespace DataEditorX.Core
{
/// <summary>
/// Description of MSEConfig.
/// </summary>
public class MSEConfig
{
public MSEConfig(string path)
{
regx_pendulum=ConfigurationManager.AppSettings["mse-pendulum-text"];
regx_monster=ConfigurationManager.AppSettings["mse-monster-text"];
if(regx_monster==null)
regx_monster="(\\s\\S*?)";
else
regx_monster=regx_monster.Replace("\\n","\n");
if(regx_pendulum==null)
regx_pendulum="(\\s\\S*?)";
else
regx_pendulum=regx_pendulum.Replace("\\n","\n");
head = read(path, "mse-head.txt");
monster = read(path, "mse-monster.txt");
pendulum = read(path, "mse-pendulum.txt");
spelltrap = read(path, "mse-spelltrap.txt");
}
string read(string path,string name)
{
string tmp=Path.Combine(path, name);
return File.Exists(tmp)?File.ReadAllText(tmp):"";
}
public string regx_pendulum;
public string regx_monster;
public string head;
public string monster;
public string pendulum;
public string spelltrap;
}
}
/*
* 由SharpDevelop创建。
* 用户: Acer
* 日期: 2014-10-15
* 时间: 15:46
*
*/
using System;
using System.Text;
using System.Collections.Generic;
using System.Text.RegularExpressions;
namespace DataEditorX.Core
{
/// <summary>
/// Description of MSEConvert.
/// </summary>
public class MSEConvert
{
static Dictionary<long,string> mTypedic=null;
static Dictionary<long,string> mRacedic=null;
public static void Init(Dictionary<long,string> typedic,
Dictionary<long,string> racedic)
{
mTypedic = typedic;
mRacedic = racedic;
}
public static string ReDesc(string desc)
{
StringBuilder sb=new StringBuilder(desc);
sb.Replace(Environment.NewLine, "\n");
sb.Replace("\n\n","\n");
sb.Replace("\n","\n\t\t");
sb.Replace(" ","^");
return sb.ToString();
}
public static string[] GetTypes(Card c)
{
string[] types=new string[]{"normal monster","","",""};
if(c.IsType(CardType.TYPE_MONSTER))
{//卡片类型和第1效果
if(c.IsType(CardType.TYPE_XYZ)){
types[0]="xyz monster";
types[1]=GetType(CardType.TYPE_XYZ);
}
else if(c.IsType(CardType.TYPE_TOKEN)){
types[0]="token monster";
}
else if(c.IsType(CardType.TYPE_RITUAL)){
types[0]="ritual monster";
types[1]=GetType(CardType.TYPE_RITUAL);
}
else if(c.IsType(CardType.TYPE_FUSION)){
types[0]="fusion monster";
types[1]=GetType(CardType.TYPE_FUSION);
}
else if(c.IsType(CardType.TYPE_SYNCHRO)){
types[0]="synchro monster";
types[1]=GetType(CardType.TYPE_SYNCHRO);
}
else if(c.IsType(CardType.TYPE_EFFECT)){
types[0]="effect monster";
}
else
types[0]="normal monster";
//同调
if(types[0]=="synchro monster" || types[0]=="token monster")
{
if(c.IsType(CardType.TYPE_TUNER)
&& c.IsType(CardType.TYPE_EFFECT))
{//调整效果
types[2]=GetType(CardType.TYPE_TUNER);
types[3]=GetType(CardType.TYPE_EFFECT);
}
else if(c.IsType(CardType.TYPE_TUNER))
{
types[2]=GetType(CardType.TYPE_TUNER);
}
else if(c.IsType(CardType.TYPE_EFFECT))
{
types[2]=GetType(CardType.TYPE_EFFECT);
}
}
else if(types[0] == "normal monster")
{
if(c.IsType(CardType.TYPE_PENDULUM))//灵摆
types[1]=GetType(CardType.TYPE_PENDULUM);
else if(c.IsType(CardType.TYPE_TUNER))//调整
types[1]=GetType(CardType.TYPE_TUNER);
}
else if(types[0] != "effect monster")
{//效果
if(c.IsType(CardType.TYPE_EFFECT))
types[2]=GetType(CardType.TYPE_EFFECT);
}
else
{//效果怪兽
if(c.IsType(CardType.TYPE_PENDULUM))
{
types[1]=GetType(CardType.TYPE_PENDULUM);
types[2]=GetType(CardType.TYPE_EFFECT);
}
else if(c.IsType(CardType.TYPE_TUNER))
types[1]=GetType(CardType.TYPE_TUNER);
else if(c.IsType(CardType.TYPE_SPIRIT))
types[1]=GetType(CardType.TYPE_SPIRIT);
else if(c.IsType(CardType.TYPE_TOON))
types[1]=GetType(CardType.TYPE_TOON);
else if(c.IsType(CardType.TYPE_UNION))
types[1]=GetType(CardType.TYPE_UNION);
else if(c.IsType(CardType.TYPE_DUAL))
types[1]=GetType(CardType.TYPE_DUAL);
else
types[1]=GetType(CardType.TYPE_EFFECT);
}
}
return types;
}
static string GetType(CardType type)
{
long key=(long)type;
if(mTypedic==null)
return "";
if(mTypedic.ContainsKey(key))
return mTypedic[key].Trim();
return "";
}
public static string GetStar(long level)
{
long j=level&0xff;
string star="";
for(int i=0;i<j;i++)
{
star+="*";
}
return star;
}
public static string GetRace(long race)
{
if(mRacedic==null)
return "";
if(mRacedic.ContainsKey(race))
return mRacedic[race];
return "";
}
public static string GetDesc(string desc,string regx)
{
desc=desc.Replace(Environment.NewLine,"\n");
Regex regex=new Regex(regx);
Match mc=regex.Match(desc);
if(mc.Success)
return (mc.Groups.Count>1)?
mc.Groups[1].Value:mc.Groups[0].Value;
return "";
}
public static string GetAttribute(int attr)
{
CardAttribute cattr= (CardAttribute)attr;
string sattr="none";
switch(cattr)
{
case CardAttribute.ATTRIBUTE_DARK:
sattr="dark";
break;
case CardAttribute.ATTRIBUTE_DEVINE:
sattr="divine";
break;
case CardAttribute.ATTRIBUTE_EARTH:
sattr="earth";
break;
case CardAttribute.ATTRIBUTE_FIRE:
sattr="fire";
break;
case CardAttribute.ATTRIBUTE_LIGHT:
sattr="light";
break;
case CardAttribute.ATTRIBUTE_WATER:
sattr="water";
break;
case CardAttribute.ATTRIBUTE_WIND:
sattr="wind";
break;
}
return sattr;
}
}
}
...@@ -165,8 +165,6 @@ public static void ConvertImages(string imgpath,string gamepath,bool isreplace) ...@@ -165,8 +165,6 @@ public static void ConvertImages(string imgpath,string gamepath,bool isreplace)
string filename=mArgs[0]; string filename=mArgs[0];
replace=(mArgs[1]==Boolean.TrueString)?true:false; replace=(mArgs[1]==Boolean.TrueString)?true:false;
DataBase.CopyDB(filename, !replace,cardlist); DataBase.CopyDB(filename, !replace,cardlist);
//
MyMsg.Show(LMSG.copyDBIsOK);
} }
break; break;
case MyTask.CutImages: case MyTask.CutImages:
...@@ -177,13 +175,11 @@ public static void ConvertImages(string imgpath,string gamepath,bool isreplace) ...@@ -177,13 +175,11 @@ public static void ConvertImages(string imgpath,string gamepath,bool isreplace)
replace=false; replace=false;
} }
CutImages(mArgs[0],mArgs[1],replace); CutImages(mArgs[0],mArgs[1],replace);
MyMsg.Show(LMSG.CutImageOK);
} }
break; break;
case MyTask.SaveAsMSE: case MyTask.SaveAsMSE:
if(mArgs!=null && mArgs.Length>=2){ if(mArgs!=null && mArgs.Length>=2){
MSE.Save(mArgs[0], cardlist, mArgs[1]); MSE.Save(mArgs[0], cardlist, mArgs[1]);
MyMsg.Show(LMSG.SaveMseOK);
} }
break; break;
case MyTask.ConvertImages: case MyTask.ConvertImages:
...@@ -194,12 +190,9 @@ public static void ConvertImages(string imgpath,string gamepath,bool isreplace) ...@@ -194,12 +190,9 @@ public static void ConvertImages(string imgpath,string gamepath,bool isreplace)
replace=false; replace=false;
} }
ConvertImages(mArgs[0],mArgs[1],replace); ConvertImages(mArgs[0],mArgs[1],replace);
MyMsg.Show(LMSG.ConvertImageOK);
} }
break; break;
} }
nowTask=MyTask.NONE;
cardlist=null; cardlist=null;
mArgs=null; mArgs=null;
} }
......
This diff is collapsed.
This diff is collapsed.
...@@ -123,9 +123,6 @@ ...@@ -123,9 +123,6 @@
<metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="backgroundWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>130, 17</value> <value>130, 17</value>
</metadata> </metadata>
<metadata name="toolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>287, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value> <value>25</value>
</metadata> </metadata>
......
...@@ -66,6 +66,8 @@ ...@@ -66,6 +66,8 @@
<Compile Include="Core\DataManager.cs" /> <Compile Include="Core\DataManager.cs" />
<Compile Include="Core\ImageSet.cs" /> <Compile Include="Core\ImageSet.cs" />
<Compile Include="Core\MSE.cs" /> <Compile Include="Core\MSE.cs" />
<Compile Include="Core\MSEConfig.cs" />
<Compile Include="Core\MSEConvert.cs" />
<Compile Include="Core\TaskHelper.cs" /> <Compile Include="Core\TaskHelper.cs" />
<Compile Include="DataEditForm.cs" /> <Compile Include="DataEditForm.cs" />
<Compile Include="DataEditForm.Designer.cs"> <Compile Include="DataEditForm.Designer.cs">
...@@ -125,7 +127,18 @@ ...@@ -125,7 +127,18 @@
<None Include="chinese\message.txt"> <None Include="chinese\message.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="chinese\mse-set.txt" /> <None Include="chinese\mse-monster.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="chinese\mse-head.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="chinese\mse-pendulum.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="chinese\mse-spelltrap.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="english\card-attribute.txt"> <None Include="english\card-attribute.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
...@@ -156,6 +169,18 @@ ...@@ -156,6 +169,18 @@
<None Include="english\message.txt"> <None Include="english\message.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="english\mse-head.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="english\mse-monster.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="english\mse-pendulum.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="english\mse-spelltrap.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Magic Set Editor 2\update\download.bat"> <None Include="Magic Set Editor 2\update\download.bat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
......
...@@ -28,4 +28,4 @@ ...@@ -28,4 +28,4 @@
// //
// You can specify all the values or you can use the default the Revision and // You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below: // Build Numbers by using the '*' as shown below:
[assembly: AssemblyVersion("1.5.3.0")] [assembly: AssemblyVersion("1.5.5.0")]
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<connectionStrings> <connectionStrings>
<!-- Example connection to a SQL Server Database on localhost. --> <!-- Example connection to a SQL Server Database on localhost. -->
...@@ -23,5 +23,8 @@ ...@@ -23,5 +23,8 @@
<add key="image_other" value="25,54,128,128" /> <add key="image_other" value="25,54,128,128" />
<add key="image_xyz" value="24,51,128,128" /> <add key="image_xyz" value="24,51,128,128" />
<add key="image_pendulum" value="14,46,149,120" /> <add key="image_pendulum" value="14,46,149,120" />
<!-- MSE -->
<add key="mse-pendulum-text" value="】[\s\S]*?\n([\S\s]*?)\n【" />
<add key="mse-monster-text" value="果】\n([\S\s]*)" />
</appSettings> </appSettings>
</configuration> </configuration>
\ No newline at end of file
0x0 卡片种族 0x0 卡片种族
0x1 战士 0x1 战士族
0x2 魔法使 0x2 魔法使族
0x4 天使 0x4 天使族
0x8 恶魔 0x8 恶魔族
0x10 不死 0x10 不死族
0x20 机械 0x20 机械族
0x40 水 0x40 水族
0x80 炎 0x80 炎族
0x100 岩石 0x100 岩石族
0x200 鸟兽 0x200 鸟兽族
0x400 植物 0x400 植物族
0x800 昆虫 0x800 昆虫族
0x1000 雷 0x1000 雷族
0x2000 龙 0x2000 龙族
0x4000 兽 0x4000 兽族
0x8000 兽战士 0x8000 兽战士族
0x10000 恐龙 0x10000 恐龙族
0x20000 鱼 0x20000 鱼族
0x40000 海龙 0x40000 海龙族
0x80000 爬虫类 0x80000 爬虫类族
0x100000 念动力 0x100000 念动力族
0x200000 幻神兽 0x200000 幻神兽族
0x400000 创造神 0x400000 创造神族
0x800000 幻龙 0x800000 幻龙族
\ No newline at end of file \ No newline at end of file
...@@ -22,4 +22,4 @@ ...@@ -22,4 +22,4 @@
0x200000 反转 0x200000 反转
0x400000 卡通 0x400000 卡通
0x800000 超量 0x800000 超量
0x1000000 摇摆 0x1000000 灵摆
\ No newline at end of file \ No newline at end of file
...@@ -16,12 +16,11 @@ DataEditForm->lb_categorys 效果种类 ...@@ -16,12 +16,11 @@ DataEditForm->lb_categorys 效果种类
DataEditForm->lb_pleft_right PScale DataEditForm->lb_pleft_right PScale
DataEditForm->lb_scripttext DataEditForm->lb_scripttext
DataEditForm->lb_tiptexts 提示文字 DataEditForm->lb_tiptexts 提示文字
DataEditForm->lb_setcode 卡片系列(最多4个)
DataEditForm->lb_types 卡片种类 DataEditForm->lb_types 卡片种类
DataEditForm->lb2 / DataEditForm->lb2 /
DataEditForm->lb4 / DataEditForm->lb4 /
DataEditForm->lb5 / DataEditForm->lb5 /
DataEditForm->lv_cardlist0 卡片密码 DataEditForm->lv_cardlist0 密码
DataEditForm->lv_cardlist1 卡片名称 DataEditForm->lv_cardlist1 卡片名称
DataEditForm->menuitem_compdb 压缩当前数据库 DataEditForm->menuitem_compdb 压缩当前数据库
DataEditForm->menuitem_convertimage 批量导入卡图 DataEditForm->menuitem_convertimage 批量导入卡图
......
mse version: 0.3.8
game: yugioh
stylesheet: standard
set info:
language: CN
edition: MSE Editrion
ST mark is text: yes
pendulum image is small: yes
\ No newline at end of file
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
type 1: %race%
type 2: %type1%
type 3: %type2%
type 4: %type3%
rule text:
%desc%
attack: %atk%
defense: %def%
gamecode: %code%
\ No newline at end of file
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
type 1: %race%
type 2: %type1%
type 3: %type2%
type 4: %type3%
rule text:
%desc%
attack: %atk%
defense: %def%
gamecode: %code%
pendulum: medium
pendulum scale 1: %pl%
pendulum scale 2: %pr%
pendulum text:
%pdesc%
\ No newline at end of file
###################################################
# MSE 2.0.0
# only head,line,end use space split,other use tab split.
# other use tab split
# author 菜菜
# Encode UTF-8 have BMOM
# /n/t/space/Space
################################################
############head string
head mse version: 0.3.8
head game: yugioh
head stylesheet: standard
head set info:
head language: CN
head ST mark is text: yes
head pendulum image is small: yes
############card info string
info card:
info card type: normal monster
info name: <i>A・O・J</i>
info attribute: wind
info level: ******
info image:
info type 1: 魔法使い族
info type 2: 効果
info type 3:
info number:
info edition: MEDE IN MSE
info rule text:
info 魔法魔法魔法魔法魔法魔法
info pendulum scale 1: 2
info pendulum scale 2: 3
info attack: ?
info defense: 5000
info gamecode: 123456789
info pendulum: medium
info pendulum text:
info 魔法魔法魔法魔法魔法魔法
# none,big,medium,small
###################card type
type normal monster 通常怪兽
type effect monster 效果怪兽
type fusion monster 融合怪兽
type ritual monster 仪式怪兽
type synchro monster 同调怪兽
type token monster 衍生物
type xyz monster 超量怪兽
type spell card 魔法
type trap card 陷阱
###################spell trap type
type quick-play 速攻魔法
type equip 装备魔法
type field 场地魔法
type ritual 仪式魔法
type continuous 永续魔法
type normal 通常魔法
type normalTrap 通常陷阱
type counterTrap 反击陷阱
type continuousTrap 永续陷阱
###################card attribute
attribute 0 none
attribute 1 地
attribute 2 水
attribute 4 炎
attribute 8 风
attribute 10 光
attribute 20 暗
attribute 40 神
attribute spell 魔
attribute trap 陷
#################level,spell,trap,symbol
level star *
level quick-play $
level equip +
level field &
level ritual #
level continuous %
level normal ^
level normalTrap ^
level counterTrap !
level continuousTrap %
###############effect type words
effect Synchro 同调
effect Xyz 超量
effect Fusion 融合
effect Ritual 仪式
effect Effect 效果
effect Tuner 调整
effect Spirit 灵魂
effect Toon 卡通
effect Gemini 二重
effect Union 同盟
effect Pendulum 灵摆
########################monster race words
race 0
race 1 战士族
race 2 魔法使族
race 4 天使族
race 8 恶魔族
race 10 不死族
race 20 机械族
race 40 水族
race 80 炎族
race 100 岩石族
race 200 鸟兽族
race 400 植物族
race 800 昆虫族
race 1000 雷族
race 2000 龙族
race 4000 兽族
race 8000 兽战士族
race 10000 恐龙族
race 20000 鱼族
race 40000 海龙族
race 80000 爬虫类族
race 100000 念动力族
race 200000 幻神兽族
race 400000 创造神族
race 800000 幻龙族
#######################
text pendulum ^→[\S\s]*?【怪
text normal 果】[\S\s]*?
#######################replace words
name 鮟鱇 <i>鮟鱇</i>
name 璣 <i>璣</i>
desc 鮟鱇 <i>鮟鱇</i>
desc 璣 <i>璣</i>
#desc 。● 。/n●
desc /n /n/t/t
#desc /space /Space
desc /space ^
\ No newline at end of file
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
rule text:
%desc%
gamecode: %code%
\ No newline at end of file
...@@ -16,7 +16,6 @@ DataEditForm->lb_categorys Category ...@@ -16,7 +16,6 @@ DataEditForm->lb_categorys Category
DataEditForm->lb_pleft_right PScale DataEditForm->lb_pleft_right PScale
DataEditForm->lb_scripttext DataEditForm->lb_scripttext
DataEditForm->lb_tiptexts TipText DataEditForm->lb_tiptexts TipText
DataEditForm->lb_setcode SetCode(Max 4)
DataEditForm->lb_types Card Type DataEditForm->lb_types Card Type
DataEditForm->lb2 / DataEditForm->lb2 /
DataEditForm->lb4 / DataEditForm->lb4 /
......
mse version: 0.3.8
game: yugioh
stylesheet: standard
set info:
language: EN
edition: MSE Editrion
ST mark is text: yes
pendulum image is small: yes
\ No newline at end of file
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
type 1: %race%
type 2: %type1%
type 3: %type2%
type 4: %type3%
rule text:
%desc%
attack: %atk%
defense: %def%
gamecode: %code%
\ No newline at end of file
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
type 1: %race%
type 2: %type1%
type 3: %type2%
type 4: %type3%
rule text:
%desc%
attack: %atk%
defense: %def%
gamecode: %code%
pendulum: medium
pendulum scale 1: %pl%
pendulum scale 2: %pr%
pendulum text:
%pdesc%
\ No newline at end of file
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
rule text:
%desc%
gamecode: %code%
\ No newline at end of file
[DataEditorX]1.5.3.0[DataEditorX] [DataEditorX]1.5.5.0[DataEditorX]
[URL]https://github.com/247321453/DataEditorX/raw/master/win32/win32.zip[URL] [URL]https://github.com/247321453/DataEditorX/raw/master/win32/win32.zip[URL]
★使用前,请关联lua的打开方式,例如记事本,notepad++,等。 ★使用前,请关联lua的打开方式,例如记事本,notepad++,等。
...@@ -47,6 +47,12 @@ DataEditorX.exe.config ...@@ -47,6 +47,12 @@ DataEditorX.exe.config
描述不详细的bug,我修复不了。(都不知道是bug是什么) 描述不详细的bug,我修复不了。(都不知道是bug是什么)
★更新历史 ★更新历史
1.5.5.0
完成导出MSE存档,简体测试OK
注:config设置P描述和正常描述的分离的正则表达式
mse-head.txt的language设置语言:CN,TW,JP,EN,KO
1.5.4.0
setcode编辑框
1.5.3.0 1.5.3.0
增加压缩数据库 增加压缩数据库
1.5.2.1 1.5.2.1
......
No preview for this file type
<?xml version="1.0" encoding="utf-8" ?> <?xml version="1.0" encoding="utf-8"?>
<configuration> <configuration>
<connectionStrings> <connectionStrings>
<!-- Example connection to a SQL Server Database on localhost. --> <!-- Example connection to a SQL Server Database on localhost. -->
...@@ -23,5 +23,8 @@ ...@@ -23,5 +23,8 @@
<add key="image_other" value="25,54,128,128" /> <add key="image_other" value="25,54,128,128" />
<add key="image_xyz" value="24,51,128,128" /> <add key="image_xyz" value="24,51,128,128" />
<add key="image_pendulum" value="14,46,149,120" /> <add key="image_pendulum" value="14,46,149,120" />
<!-- MSE -->
<add key="mse-pendulum-text" value="】[\s\S]*?\n([\S\s]*?)\n【" />
<add key="mse-monster-text" value="果】\n([\S\s]*)" />
</appSettings> </appSettings>
</configuration> </configuration>
\ No newline at end of file
0x0 卡片种族 0x0 卡片种族
0x1 战士 0x1 战士族
0x2 魔法使 0x2 魔法使族
0x4 天使 0x4 天使族
0x8 恶魔 0x8 恶魔族
0x10 不死 0x10 不死族
0x20 机械 0x20 机械族
0x40 水 0x40 水族
0x80 炎 0x80 炎族
0x100 岩石 0x100 岩石族
0x200 鸟兽 0x200 鸟兽族
0x400 植物 0x400 植物族
0x800 昆虫 0x800 昆虫族
0x1000 雷 0x1000 雷族
0x2000 龙 0x2000 龙族
0x4000 兽 0x4000 兽族
0x8000 兽战士 0x8000 兽战士族
0x10000 恐龙 0x10000 恐龙族
0x20000 鱼 0x20000 鱼族
0x40000 海龙 0x40000 海龙族
0x80000 爬虫类 0x80000 爬虫类族
0x100000 念动力 0x100000 念动力族
0x200000 幻神兽 0x200000 幻神兽族
0x400000 创造神 0x400000 创造神族
0x800000 幻龙 0x800000 幻龙族
\ No newline at end of file \ No newline at end of file
...@@ -22,5 +22,4 @@ ...@@ -22,5 +22,4 @@
0x200000 反转 0x200000 反转
0x400000 卡通 0x400000 卡通
0x800000 超量 0x800000 超量
0x1000000 摇摆 0x1000000 灵摆
0x2000000 特殊召唤 \ No newline at end of file
\ No newline at end of file
...@@ -16,12 +16,11 @@ DataEditForm->lb_categorys 效果种类 ...@@ -16,12 +16,11 @@ DataEditForm->lb_categorys 效果种类
DataEditForm->lb_pleft_right PScale DataEditForm->lb_pleft_right PScale
DataEditForm->lb_scripttext DataEditForm->lb_scripttext
DataEditForm->lb_tiptexts 提示文字 DataEditForm->lb_tiptexts 提示文字
DataEditForm->lb_setcode 卡片系列(最多4个)
DataEditForm->lb_types 卡片种类 DataEditForm->lb_types 卡片种类
DataEditForm->lb2 / DataEditForm->lb2 /
DataEditForm->lb4 / DataEditForm->lb4 /
DataEditForm->lb5 / DataEditForm->lb5 /
DataEditForm->lv_cardlist0 卡片密码 DataEditForm->lv_cardlist0 密码
DataEditForm->lv_cardlist1 卡片名称 DataEditForm->lv_cardlist1 卡片名称
DataEditForm->menuitem_compdb 压缩当前数据库 DataEditForm->menuitem_compdb 压缩当前数据库
DataEditForm->menuitem_convertimage 批量导入卡图 DataEditForm->menuitem_convertimage 批量导入卡图
......
mse version: 0.3.8
game: yugioh
stylesheet: standard
set info:
language: CN
edition: MSE Editrion
ST mark is text: yes
pendulum image is small: yes
\ No newline at end of file
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
type 1: %race%
type 2: %type1%
type 3: %type2%
type 4: %type3%
rule text:
%desc%
attack: %atk%
defense: %def%
gamecode: %code%
\ No newline at end of file
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
type 1: %race%
type 2: %type1%
type 3: %type2%
type 4: %type3%
rule text:
%desc%
attack: %atk%
defense: %def%
gamecode: %code%
pendulum: medium
pendulum scale 1: %pl%
pendulum scale 2: %pr%
pendulum text:
%pdesc%
\ No newline at end of file
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
rule text:
%desc%
gamecode: %code%
\ No newline at end of file
...@@ -16,7 +16,6 @@ DataEditForm->lb_categorys Category ...@@ -16,7 +16,6 @@ DataEditForm->lb_categorys Category
DataEditForm->lb_pleft_right PScale DataEditForm->lb_pleft_right PScale
DataEditForm->lb_scripttext DataEditForm->lb_scripttext
DataEditForm->lb_tiptexts TipText DataEditForm->lb_tiptexts TipText
DataEditForm->lb_setcode SetCode(Max 4)
DataEditForm->lb_types Card Type DataEditForm->lb_types Card Type
DataEditForm->lb2 / DataEditForm->lb2 /
DataEditForm->lb4 / DataEditForm->lb4 /
......
mse version: 0.3.8
game: yugioh
stylesheet: standard
set info:
language: EN
edition: MSE Editrion
ST mark is text: yes
pendulum image is small: yes
\ No newline at end of file
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
type 1: %race%
type 2: %type1%
type 3: %type2%
type 4: %type3%
rule text:
%desc%
attack: %atk%
defense: %def%
gamecode: %code%
\ No newline at end of file
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
type 1: %race%
type 2: %type1%
type 3: %type2%
type 4: %type3%
rule text:
%desc%
attack: %atk%
defense: %def%
gamecode: %code%
pendulum: medium
pendulum scale 1: %pl%
pendulum scale 2: %pr%
pendulum text:
%pdesc%
\ No newline at end of file
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
rule text:
%desc%
gamecode: %code%
\ No newline at end of file
[DataEditorX]1.5.3.0[DataEditorX] [DataEditorX]1.5.5.0[DataEditorX]
[URL]https://github.com/247321453/DataEditorX/raw/master/win32/win32.zip[URL] [URL]https://github.com/247321453/DataEditorX/raw/master/win32/win32.zip[URL]
★使用前,请关联lua的打开方式,例如记事本,notepad++,等。 ★使用前,请关联lua的打开方式,例如记事本,notepad++,等。
...@@ -47,6 +47,12 @@ DataEditorX.exe.config ...@@ -47,6 +47,12 @@ DataEditorX.exe.config
描述不详细的bug,我修复不了。(都不知道是bug是什么) 描述不详细的bug,我修复不了。(都不知道是bug是什么)
★更新历史 ★更新历史
1.5.5.0
完成导出MSE存档,简体测试OK
注:config设置P描述和正常描述的分离的正则表达式
mse-head.txt的language设置语言:CN,TW,JP,EN,KO
1.5.4.0
setcode编辑框
1.5.3.0 1.5.3.0
增加压缩数据库 增加压缩数据库
1.5.2.1 1.5.2.1
......
No preview for this file type
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment