Commit 3d359917 authored by keyongyu's avatar keyongyu

mse

parent 346dfc10
...@@ -24,16 +24,20 @@ public class DataConfig ...@@ -24,16 +24,20 @@ public class DataConfig
public const string TAG_CATEGORY = "category"; public const string TAG_CATEGORY = "category";
public const string TAG_TYPE = "type"; public const string TAG_TYPE = "type";
public const string TAG_SETNAME = "setname"; public const string TAG_SETNAME = "setname";
public MSEConfig msecfg;
public DataConfig() public DataConfig()
{ {
InitMember(MyPath.Combine(Application.StartupPath, FILE_INFO)); InitMember(MyPath.Combine(Application.StartupPath, FILE_INFO)
, Application.StartupPath);
} }
public DataConfig(string conf) public DataConfig(string conf, string datapath)
{ {
InitMember(conf); InitMember(conf, datapath);
} }
public void InitMember(string conf) public void InitMember(string conf, string datapath)
{ {
msecfg = new MSEConfig(datapath);
//conf = MyPath.Combine(datapath, MyConfig.FILE_INFO); //conf = MyPath.Combine(datapath, MyConfig.FILE_INFO);
if(!File.Exists(conf)) if(!File.Exists(conf))
{ {
......
...@@ -18,6 +18,7 @@ public class DataManager ...@@ -18,6 +18,7 @@ public class DataManager
{ {
public const string TAG_START = "##"; public const string TAG_START = "##";
public const string TAG_END = "#"; public const string TAG_END = "#";
public const string SEP_LINE = " ";
#region 根据tag获取内容 #region 根据tag获取内容
static string reReturn(string content) static string reReturn(string content)
...@@ -84,11 +85,11 @@ public static string subString(string content, string tag) ...@@ -84,11 +85,11 @@ public static string subString(string content, string tag)
{ {
if (line.StartsWith("#")) if (line.StartsWith("#"))
continue; continue;
if ((l = line.IndexOf(" ")) < 0) if ((l = line.IndexOf(SEP_LINE)) < 0)
continue; continue;
strkey = line.Substring(0, l).Replace("0x", ""); strkey = line.Substring(0, l).Replace("0x", "");
strword = line.Substring(l + 1); strword = line.Substring(l + 1);
int t = strword.IndexOf('\t'); int t = strword.IndexOf(SEP_LINE);
if (t > 0) if (t > 0)
strword = strword.Substring(0, t); strword = strword.Substring(0, t);
if (line.StartsWith("0x")) if (line.StartsWith("0x"))
......
...@@ -11,6 +11,7 @@ ...@@ -11,6 +11,7 @@
using System.IO; using System.IO;
using System.Text; using System.Text;
using DataEditorX.Language; using DataEditorX.Language;
using System.Globalization;
namespace DataEditorX.Config namespace DataEditorX.Config
{ {
...@@ -39,12 +40,17 @@ public class MSEConfig ...@@ -39,12 +40,17 @@ public class MSEConfig
public const string TAG_SPELL_TRAP = "spelltrap"; public const string TAG_SPELL_TRAP = "spelltrap";
public const string FILE_CONFIG = "mse-config.txt"; public const string FILE_CONFIG = "mse-config.txt";
public const string FILE_TEMPLATE = "mse-template.txt"; public const string FILE_TEMPLATE = "mse-template.txt";
public const string SEP_LINE = " ";
public MSEConfig(string path) public MSEConfig(string path)
{ {
Iscn2tw=false; init(path);
regx_monster="(\\s\\S*?)"; }
regx_pendulum="(\\s\\S*?)"; public void init(string path)
{
Iscn2tw = false;
regx_monster = "(\\s\\S*?)";
regx_pendulum = "(\\s\\S*?)";
string file = MyPath.Combine(path, FILE_TEMPLATE); string file = MyPath.Combine(path, FILE_TEMPLATE);
if (File.Exists(file)) if (File.Exists(file))
...@@ -58,51 +64,77 @@ public MSEConfig(string path) ...@@ -58,51 +64,77 @@ public MSEConfig(string path)
string tmp = MyPath.Combine(path, FILE_CONFIG); string tmp = MyPath.Combine(path, FILE_CONFIG);
replaces=new List<RegStr>(); replaces = new List<RegStr>();
if(File.Exists(tmp)) typeDic = new Dictionary<long, string>();
{ raceDic = new Dictionary<long, string>();
string[] lines=File.ReadAllLines(tmp, Encoding.UTF8); //读取配置
foreach(string line in lines) if (File.Exists(tmp))
{ {
if(string.IsNullOrEmpty(line) || line.StartsWith("#")) string[] lines = File.ReadAllLines(tmp, Encoding.UTF8);
continue; foreach (string line in lines)
if(line.StartsWith("cn2tw")) {
Iscn2tw=(getValue(line).ToLower()=="true")?true:false; if (string.IsNullOrEmpty(line) || line.StartsWith("#"))
else if(line.StartsWith("spell")) continue;
str_spell=getValue(line); if (line.StartsWith("cn2tw"))
else if(line.StartsWith("trap")) Iscn2tw = (getValue(line).ToLower() == "true") ? true : false;
str_trap=getValue(line); else if (line.StartsWith("spell"))
else if(line.StartsWith("pendulum-text")) str_spell = getValue(line);
regx_pendulum=getRegex(getValue(line)); else if (line.StartsWith("trap"))
else if(line.StartsWith("monster-text")) str_trap = getValue(line);
regx_monster=getRegex(getValue(line)); else if (line.StartsWith("pendulum-text"))
else if(line.StartsWith("maxcount")) regx_pendulum = getRegex(getValue(line));
int.TryParse(getValue(line),out maxcount); else if (line.StartsWith("monster-text"))
else if(line.StartsWith("imagepath")) regx_monster = getRegex(getValue(line));
else if (line.StartsWith("maxcount"))
int.TryParse(getValue(line), out maxcount);
else if (line.StartsWith("imagepath"))
imagepath = MyPath.CheckDir(getValue(line), MyPath.Combine(path, "Images")); imagepath = MyPath.CheckDir(getValue(line), MyPath.Combine(path, "Images"));
else if(line.StartsWith("replace")){ else if (line.StartsWith("replace"))
string word=getValue(line); {
int t=word.IndexOf(" "); string word = getValue(line);
if(t>0){ int t = word.IndexOf(" ");
string p=word.Substring(0,t); if (t > 0)
string r=word.Substring(t+1); {
if(!string.IsNullOrEmpty(p)) string p = word.Substring(0, t);
replaces.Add(new RegStr(p, r)); string r = word.Substring(t + 1);
} if (!string.IsNullOrEmpty(p))
replaces.Add(new RegStr(p, r));
} }
} }
if(str_spell=="%%" && str_trap =="%%") else if (line.StartsWith("race"))
st_is_symbol=true; {
else DicAdd(raceDic, line);
st_is_symbol=false; }
} else if (line.StartsWith("type"))
else {
{ DicAdd(typeDic, line);
Iscn2tw=false; }
} }
} if (str_spell == "%%" && str_trap == "%%")
st_is_symbol = true;
else
st_is_symbol = false;
}
else
{
Iscn2tw = false;
}
}
void DicAdd(Dictionary<long,string> dic, string line)
{
int i = line.IndexOf("0x");
int j = (i>0)?line.IndexOf(SEP_LINE, i+1):-1;
if (j > 0)
{
string strkey = line.Substring(i + 2, j - i - 1);
string strval = line.Substring(j + 1);
long key;
long.TryParse(strkey, NumberStyles.HexNumber, null, out key);
if (!dic.ContainsKey(key))
dic.Add(key, strval.Trim());
}
}
string getRegex(string word) string getRegex(string word)
{ {
return word.Replace("\\n","\n").Replace("\\t","\t"); return word.Replace("\\n","\n").Replace("\\t","\t");
...@@ -114,18 +146,29 @@ string getValue(string line) ...@@ -114,18 +146,29 @@ string getValue(string line)
return line.Substring(t+1).Trim(); return line.Substring(t+1).Trim();
return ""; return "";
} }
//每个存档最大数
public int maxcount; public int maxcount;
//图片路径
public string imagepath; public string imagepath;
//标志是符号
public bool st_is_symbol; public bool st_is_symbol;
//魔法标志
public string str_spell; public string str_spell;
//陷阱标志
public string str_trap; public string str_trap;
//简体转繁体?
public bool Iscn2tw; public bool Iscn2tw;
//特数字替换
public List<RegStr> replaces; public List<RegStr> replaces;
//效果文正则提取
public string regx_pendulum; public string regx_pendulum;
public string regx_monster; public string regx_monster;
//模版
public string head; public string head;
public string monster; public string monster;
public string pendulum; public string pendulum;
public string spelltrap; public string spelltrap;
public Dictionary<long, string> typeDic;
public Dictionary<long, string> raceDic;
} }
} }
...@@ -38,12 +38,11 @@ public string ImagePath ...@@ -38,12 +38,11 @@ public string ImagePath
get {return cfg.imagepath;} get {return cfg.imagepath;}
} }
public MSE(string path, public MSE(MSEConfig mcfg)
Dictionary<long,string> typedic,
Dictionary<long,string> racedic)
{ {
cfg=new MSEConfig(path); cfg = mcfg;
} }
//特殊字
public string reItalic(string str) public string reItalic(string str)
{ {
str = cn2tw(str); str = cn2tw(str);
...@@ -53,6 +52,7 @@ public string reItalic(string str) ...@@ -53,6 +52,7 @@ public string reItalic(string str)
} }
return str; return str;
} }
//简体转繁体
public string cn2tw(string str) public string cn2tw(string str)
{ {
if (cfg.Iscn2tw) if (cfg.Iscn2tw)
...@@ -62,6 +62,7 @@ public string cn2tw(string str) ...@@ -62,6 +62,7 @@ public string cn2tw(string str)
} }
return str; return str;
} }
//调整换行符
public string ReDesc(string desc) public string ReDesc(string desc)
{ {
desc = cn2tw(desc); desc = cn2tw(desc);
...@@ -72,6 +73,7 @@ public string ReDesc(string desc) ...@@ -72,6 +73,7 @@ public string ReDesc(string desc)
sb.Replace("\n", "\n\t\t"); sb.Replace("\n", "\n\t\t");
return sb.ToString(); return sb.ToString();
} }
//获取魔法陷阱的类型符号
public string GetST(Card c, bool isSpell) public string GetST(Card c, bool isSpell)
{ {
string level; string level;
...@@ -98,18 +100,221 @@ public string GetST(Card c, bool isSpell) ...@@ -98,18 +100,221 @@ public string GetST(Card c, bool isSpell)
level = cfg.str_trap.Replace("%%", level); level = cfg.str_trap.Replace("%%", level);
return level; return level;
} }
public string[] WriteSet(string file,Card[] cards) public static string GetCardImagePath(string picpath, Card c)
{
string jpg = MyPath.Combine(picpath, c.id + ".jpg");
string jpg2 = MyPath.Combine(picpath, c.idString + ".jpg");
string jpg3 = MyPath.Combine(picpath, c.name + ".jpg");
string png = MyPath.Combine(picpath, c.id + ".png");
string png2 = MyPath.Combine(picpath, c.idString + ".png");
string png3 = MyPath.Combine(picpath, c.name + ".png");
if (File.Exists(jpg))
{
return jpg;
}
else if (File.Exists(jpg2))
{
return jpg2;
}
else if (File.Exists(jpg3))
{
File.Copy(jpg3, jpg, true);
if (File.Exists(jpg))
{//复制失败
return jpg;
}
}
else if (File.Exists(png))
{
return png;
}
else if (File.Exists(png2))
{
return png2;
}
else if (File.Exists(png3))
{
File.Copy(png3, png, true);
if (File.Exists(png))
{//复制失败
return png;
}
}
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;
}
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 GetStar(long level)
{
long j = level & 0xff;
string star = "";
for (int i = 0; i < j; i++)
{
star += "*";
}
return star;
}
public string GetRace(long race)
{
if (cfg.raceDic.ContainsKey(race))
return cfg.raceDic[race].Trim();
return race.ToString("x");
}
public string GetType(CardType ctype)
{
long type = (long)ctype;
if (cfg.typeDic.ContainsKey(type))
return cfg.typeDic[type].Trim();
return type.ToString("x");
}
public 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] = (c.race == 0) ? "token card" : "token monster";
types[1] = GetType(CardType.TYPE_TOKEN);
}
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
{//效果怪兽
types[2] = GetType(CardType.TYPE_EFFECT);
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 (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 if (c.IsType(CardType.TYPE_FLIP))
types[1] = GetType(CardType.TYPE_FLIP);
else
{
types[1] = GetType(CardType.TYPE_EFFECT);
types[2] = "";
}
}
}
if (c.race == 0)
{
types[1] = "";
types[2] = "";
}
return types;
}
public string[] WriteSet(string file,Card[] cards)
{ {
List<string> list=new List<string>(); List<string> list=new List<string>();
string pic=cfg.imagepath; string pic=cfg.imagepath;
using(FileStream fs=new FileStream(file, using(FileStream fs=new FileStream(file,
FileMode.Create, FileAccess.Write)) FileMode.Create, FileAccess.Write))
{ {
StreamWriter sw=new StreamWriter(fs, Encoding.UTF8); StreamWriter sw=new StreamWriter(fs, Encoding.UTF8);
sw.WriteLine(cfg.head); sw.WriteLine(cfg.head);
foreach(Card c in cards) foreach(Card c in cards)
{ {
string jpg = YGOUtil.GetCardImagePath(pic, c); string jpg = GetCardImagePath(pic, c);
if (!string.IsNullOrEmpty(jpg)) if (!string.IsNullOrEmpty(jpg))
{ {
list.Add(jpg); list.Add(jpg);
...@@ -125,7 +330,7 @@ public string[] WriteSet(string file,Card[] cards) ...@@ -125,7 +330,7 @@ public string[] WriteSet(string file,Card[] cards)
return list.ToArray(); return list.ToArray();
} }
//pendulum怪兽
string getMonster(Card c,string img,bool isPendulum) string getMonster(Card c,string img,bool isPendulum)
{ {
StringBuilder sb=new StringBuilder(); StringBuilder sb=new StringBuilder();
...@@ -134,26 +339,26 @@ string getMonster(Card c,string img,bool isPendulum) ...@@ -134,26 +339,26 @@ string getMonster(Card c,string img,bool isPendulum)
else else
sb.Append(cfg.monster); sb.Append(cfg.monster);
string[] types = YGOUtil.GetTypes(c); string[] types = GetTypes(c);
string race = YGOUtil.GetRace(c.race); string race = GetRace(c.race);
sb.Replace("%type%", types[0]); sb.Replace("%type%", types[0]);
sb.Replace("%name%", reItalic(c.name)); sb.Replace("%name%", reItalic(c.name));
sb.Replace("%attribute%", YGOUtil.GetAttribute(c.attribute)); sb.Replace("%attribute%", GetAttribute(c.attribute));
sb.Replace("%level%", YGOUtil.GetStar(c.level)); sb.Replace("%level%", GetStar(c.level));
sb.Replace("%image%", img); sb.Replace("%image%", img);
sb.Replace("%race%", cn2tw(race)); sb.Replace("%race%", cn2tw(race));
sb.Replace("%type1%",cn2tw(types[1])); sb.Replace("%type1%",cn2tw(types[1]));
sb.Replace("%type2%",cn2tw(types[2])); sb.Replace("%type2%",cn2tw(types[2]));
sb.Replace("%type3%",cn2tw(types[3])); sb.Replace("%type3%",cn2tw(types[3]));
if(isPendulum){ if(isPendulum){
string text = YGOUtil.GetDesc(c.desc, cfg.regx_monster); string text = GetDesc(c.desc, cfg.regx_monster);
if(string.IsNullOrEmpty(text)) if(string.IsNullOrEmpty(text))
text=c.desc; text=c.desc;
sb.Replace("%desc%", ReDesc(text)); sb.Replace("%desc%", ReDesc(text));
sb.Replace("%pl%", ((c.level >> 0x18) & 0xff).ToString()); sb.Replace("%pl%", ((c.level >> 0x18) & 0xff).ToString());
sb.Replace("%pr%", ((c.level >> 0x10) & 0xff).ToString()); sb.Replace("%pr%", ((c.level >> 0x10) & 0xff).ToString());
sb.Replace("%pdesc%", ReDesc( sb.Replace("%pdesc%", ReDesc(
YGOUtil.GetDesc(c.desc, cfg.regx_pendulum))); GetDesc(c.desc, cfg.regx_pendulum)));
} }
else else
sb.Replace("%desc%", ReDesc(c.desc)); sb.Replace("%desc%", ReDesc(c.desc));
...@@ -163,6 +368,7 @@ string getMonster(Card c,string img,bool isPendulum) ...@@ -163,6 +368,7 @@ string getMonster(Card c,string img,bool isPendulum)
sb.Replace("%code%", c.idString); sb.Replace("%code%", c.idString);
return sb.ToString(); return sb.ToString();
} }
//魔法陷阱
string getSpellTrap(Card c,string img,bool isSpell) string getSpellTrap(Card c,string img,bool isSpell)
{ {
StringBuilder sb=new StringBuilder(cfg.spelltrap); StringBuilder sb=new StringBuilder(cfg.spelltrap);
......
...@@ -46,12 +46,10 @@ public class TaskHelper ...@@ -46,12 +46,10 @@ public class TaskHelper
private bool isRun = false; private bool isRun = false;
private BackgroundWorker worker; private BackgroundWorker worker;
public TaskHelper(string datapath, BackgroundWorker worker, public TaskHelper(string datapath, BackgroundWorker worker, MSEConfig mcfg)
Dictionary<long, string> typedic,
Dictionary<long, string> racedic)
{ {
this.worker = worker; this.worker = worker;
mseHelper = new MSE(datapath, typedic, racedic); mseHelper = new MSE(mcfg);
imgSet.Init(); imgSet.Init();
} }
public bool IsRuning() public bool IsRuning()
......
...@@ -33,197 +33,19 @@ public static bool isDataBase(string file) ...@@ -33,197 +33,19 @@ public static bool isDataBase(string file)
return true; return true;
return false; return false;
} }
public static string GetCardImagePath(string picpath,Card c)
{
string jpg = MyPath.Combine(picpath, c.id + ".jpg");
string jpg2 = MyPath.Combine(picpath, c.idString + ".jpg");
string jpg3 = MyPath.Combine(picpath, c.name + ".jpg");
string png = MyPath.Combine(picpath, c.id + ".png");
string png2 = MyPath.Combine(picpath, c.idString + ".png");
string png3 = MyPath.Combine(picpath, c.name + ".png");
if (File.Exists(jpg))
{
return jpg;
}
else if (File.Exists(jpg2))
{
return jpg2;
}
else if (File.Exists(jpg3))
{
File.Copy(jpg3, jpg, true);
if (File.Exists(jpg))
{//复制失败
return jpg;
}
}
else if (File.Exists(png))
{
return png;
}
else if (File.Exists(png2))
{
return png2;
}
else if (File.Exists(png3))
{
File.Copy(png3, png, true);
if (File.Exists(png))
{//复制失败
return png;
}
}
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 GetAttributeString(int attr) public static string GetAttributeString(int attr)
{ {
return DataManager.GetValue(datacfg.dicCardAttributes, attr); return DataManager.GetValue(datacfg.dicCardAttributes, attr);
} }
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;
}
public static string GetRace(long race) public static string GetRace(long race)
{ {
return DataManager.GetValue(datacfg.dicCardRaces, race); return DataManager.GetValue(datacfg.dicCardRaces, race);
} }
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] = (c.race == 0)?"token card":"token monster";
types[1] = GetType(CardType.TYPE_TOKEN);
}
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
{//效果怪兽
types[2] = GetType(CardType.TYPE_EFFECT);
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 (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 if (c.IsType(CardType.TYPE_FLIP))
types[1] = GetType(CardType.TYPE_FLIP);
else
{
types[1] = GetType(CardType.TYPE_EFFECT);
types[2] = "";
}
}
}
if (c.race == 0)
{
types[1] = "";
types[2] = "";
}
return types;
}
public static string GetCardType(Card c) public static string GetCardType(Card c)
{ {
...@@ -311,16 +133,7 @@ public static string GetSetNameString(long type) ...@@ -311,16 +133,7 @@ public static string GetSetNameString(long type)
return ""; 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 "";
}
#region 根据文件读取数据库 #region 根据文件读取数据库
/// <summary> /// <summary>
......
...@@ -113,9 +113,7 @@ void DataEditFormLoad(object sender, EventArgs e) ...@@ -113,9 +113,7 @@ void DataEditFormLoad(object sender, EventArgs e)
{ {
datacfg = new DataConfig(); datacfg = new DataConfig();
} }
tasker = new TaskHelper(datapath, bgWorker1, tasker = new TaskHelper(datapath, bgWorker1, datacfg.msecfg);
datacfg.dicCardTypes,
datacfg.dicCardRaces);
//设置空白卡片 //设置空白卡片
oldCard = new Card(0); oldCard = new Card(0);
SetCard(oldCard); SetCard(oldCard);
......
...@@ -53,7 +53,8 @@ public void SetLanguage(string language) ...@@ -53,7 +53,8 @@ public void SetLanguage(string language)
//文件路径 //文件路径
conflang = MyPath.Combine(datapath, MyConfig.FILE_LANGUAGE); conflang = MyPath.Combine(datapath, MyConfig.FILE_LANGUAGE);
//游戏数据 //游戏数据
datacfg = new DataConfig(MyPath.Combine(datapath, DataConfig.FILE_INFO)); datacfg = new DataConfig(MyPath.Combine(datapath, DataConfig.FILE_INFO)
, datapath);
//初始化YGOUtil的数据 //初始化YGOUtil的数据
YGOUtil.SetConfig(datacfg); YGOUtil.SetConfig(datacfg);
......
##rule ##rule
0x0 卡片规则 0x0 卡片规则
0x1 OCG专有 0x1 OCG专有
0x2 TCG专有 0x2 TCG专有
0x3 OCG&TCG 0x3 OCG&TCG
0x4 Anime/DIY 0x4 Anime/DIY
##attribute ##attribute
0x0 卡片属性 0x0 卡片属性
0x1 0x1
0x2 0x2
0x4 0x4
0x8 0x8
0x10 0x10
0x20 0x20
0x40 0x40
##level ##level
0x0 卡片等级/阶级 0x0 卡片等级/阶级
0x1 1★ 0x1 1★
0x2 2★ 0x2 2★
0x3 3★ 0x3 3★
0x4 4★ 0x4 4★
0x5 5★ 0x5 5★
0x6 6★ 0x6 6★
0x7 7★ 0x7 7★
0x8 8★ 0x8 8★
0x9 9★ 0x9 9★
0xa 10★ 0xa 10★
0xb 11★ 0xb 11★
0xc 12★ 0xc 12★
0xd 13★ 0xd 13★
##category ##category
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 LP伤害 0x400000 LP伤害
0x800000 LP回复 0x800000 LP回复
0x1000000 破坏耐性 0x1000000 破坏耐性
0x2000000 效果耐性 0x2000000 效果耐性
0x4000000 指示物 0x4000000 指示物
0x8000000 赌博相关 0x8000000 赌博相关
0x10000000 融合相关 0x10000000 融合相关
0x20000000 同调相关 0x20000000 同调相关
0x40000000 超量相关 0x40000000 超量相关
0x80000000 效果无效 0x80000000 效果无效
##race ##race
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 幻龙族
##type ##type
0x1 怪兽 0x1 怪兽
0x2 魔法 0x2 魔法
0x4 陷阱 0x4 陷阱
0x8 N/A 0x8 N/A
0x10 通常 0x10 通常
0x20 效果 0x20 效果
0x40 融合 0x40 融合
0x80 仪式 0x80 仪式
0x100 N/A 0x100 N/A
0x200 灵魂 0x200 灵魂
0x400 同盟 0x400 同盟
0x800 二重 0x800 二重
0x1000 调整 0x1000 调整
0x2000 同调 0x2000 同调
0x4000 衍生物 0x4000 衍生物
0x8000 N/A 0x8000 N/A
0x10000 速攻 0x10000 速攻
0x20000 永续 0x20000 永续
0x40000 装备 0x40000 装备
0x80000 场地 0x80000 场地
0x100000 反击 0x100000 反击
0x200000 反转 0x200000 反转
0x400000 卡通 0x400000 卡通
0x800000 超量 0x800000 超量
0x1000000 灵摆 0x1000000 灵摆
##setname ##setname
0x0 卡片系列 0x0 卡片系列
0x1 A·O·J 0x1 A·O·J
0x2 ジェネクス 0x2 ジェネクス
0x1002 レアル·ジェネクス 0x1002 レアル·ジェネクス
0x2002 A·ジェネクス 0x2002 A·ジェネクス
0x3 N/A 0x3 N/A
0x4 アマズネス 0x4 アマズネス
0x5 アルカナフォース 0x5 アルカナフォース
0x6 暗黑界 0x6 暗黑界
0x7 アンティーク・ギア 0x7 アンティーク・ギア
0x8 HERO 0x8 HERO
0x3008 E·HERO 0x3008 E·HERO
0x6008 E-HERO 0x6008 E-HERO
0xc008 D·HERO 0xc008 D·HERO
0x5008 V·HERO 0x5008 V·HERO
0xa008 M·HERO 0xa008 M·HERO
0x9 ネオス 0x9 ネオス
0xa ヴェルズ 0xa ヴェルズ
0x100a インヴェルズ 0x100a インヴェルズ
0xb インフェルニティ 0xb インフェルニティ
0xc エーリアン 0xc エーリアン
0xd セイバー 0xd セイバー
0x100d X-セイバー 0x100d X-セイバー
0x300d XX-セイバー 0x300d XX-セイバー
0xe エレキ 0xe エレキ
0xf オジャマ 0xf オジャマ
0x10 ガスタ 0x10 ガスタ
0x11 カラクリ 0x11 カラクリ
0x12 ガエル 0x12 ガエル
0x13 機皇 0x13 機皇
0x3013 機皇帝 0x3013 機皇帝
0x6013 機皇兵 0x6013 機皇兵
0x14 N/A 0x14 N/A
0x15 巨大戦艦 0x15 巨大戦艦
0x16 ロイド 0x16 ロイド
0x17 シンクロン 0x17 シンクロン
0x18 雲魔物 0x18 雲魔物
0x19 剣闘獣 0x19 剣闘獣
0x1a 黒蠍 0x1a 黒蠍
0x1b 幻獣 0x1b 幻獣
0x101b 幻獣機 0x101b 幻獣機
0x1c 幻魔 0x1c 幻魔
0x1d コアキメイル 0x1d コアキメイル
0x1e C(コクーン) 0x1e C(コクーン)
0x1f N(ネオスペーシアン) 0x1f N(ネオスペーシアン)
0x20 紫炎 0x20 紫炎
0x21 地縛神 0x21 地縛神
0x22 ジュラック 0x22 ジュラック
0x23 SIN 0x23 SIN
0x24 スクラップ 0x24 スクラップ
0x25 C(チェーン) 0x25 C(チェーン)
0x26 D(ディフォーマー) 0x26 D(ディフォーマー)
0x27 TG(テックジーナス) 0x27 TG(テックジーナス)
0x28 電池メン 0x28 電池メン
0x29 ドラグニティ 0x29 ドラグニティ
0x2a ナチュル 0x2a ナチュル
0x2b 忍者 0x2b 忍者
0x102b 機甲忍者 0x102b 機甲忍者
0x2c フレムベル 0x2c フレムベル
0x2d ハーピィ 0x2d ハーピィ
0x2e 墓守 0x2e 墓守
0x2f 氷結界 0x2f 氷結界
0x30 ヴァイロン 0x30 ヴァイロン
0x31 フォーチュンレディ 0x31 フォーチュンレディ
0x32 ヴォルカニック 0x32 ヴォルカニック
0x33 BF(ブラックフェザー) 0x33 BF(ブラックフェザー)
0x34 宝玉獣 0x34 宝玉獣
0x35 魔轟神 0x35 魔轟神
0x1035 魔轟神獣 0x1035 魔轟神獣
0x36 マシンナーズ 0x36 マシンナーズ
0x37 霞の谷 0x37 霞の谷
0x38 ライトロード 0x38 ライトロード
0x39 ラヴァル 0x39 ラヴァル
0x3a リチュア 0x3a リチュア
0x3b レッドアイズ 0x3b レッドアイズ
0x3c レプティレス 0x3c レプティレス
0x3d 六武衆 0x3d 六武衆
0x3e ワーム 0x3e ワーム
0x3f セイヴァ 0x3f セイヴァ
0x40 封印されし 0x40 封印されし
0x41 LV 0x41 LV
0x42 極星 0x42 極星
0x3042 極星天 0x3042 極星天
0x6042 極星獣 0x6042 極星獣
0xa042 極星霊 0xa042 極星霊
0x5042 極星宝 0x5042 極星宝
0x43 ジャンク 0x43 ジャンク
0x44 代行者 0x44 代行者
0x45 デーモン 0x45 デーモン
0x46 融合/フュージョン 0x46 融合/フュージョン
0x47 ジェム 0x47 ジェム
0x1047 ジェムナイト 0x1047 ジェムナイト
0x48 NO 0x48 NO
0x1048 CNO 0x1048 CNO
0x49 铳士 0x49 铳士
0x4a 時械神 0x4a 時械神
0x4b 極神 0x4b 極神
0x4c 落とし穴 0x4c 落とし穴
0x4e エヴォル 0x4e エヴォル
0x304e エヴォルド 0x304e エヴォルド
0x604e エヴォルダ 0x604e エヴォルダ
0x504e エヴォルカイザー 0x504e エヴォルカイザー
0x4f バスター 0x4f バスター
0x104f /バスター 0x104f /バスター
0x50 ヴェノム 0x50 ヴェノム
0x51 ガジェット 0x51 ガジェット
0x52 ガーディアン 0x52 ガーディアン
0x53 セイクリッド 0x53 セイクリッド
0x54 ガガガ 0x54 ガガガ
0x55 フォトン 0x55 フォトン
0x56 甲虫装機 0x56 甲虫装機
0x57 リゾネーター 0x57 リゾネーター
0x58 ゼンマイ 0x58 ゼンマイ
0x59 ゴゴゴ 0x59 ゴゴゴ
0x5a ペンギン 0x5a ペンギン
0x5b トマボー 0x5b トマボー
0x5c スフィンクス 0x5c スフィンクス
0x60 竹光 0x60 竹光
0x61 忍法 0x61 忍法
0x62 トゥーン 0x62 トゥーン
0x63 リアクター 0x63 リアクター
0x64 ハーピィ 0x64 ハーピィ
0x65 侵略の 0x65 侵略の
0x66 音響戦士 0x66 音響戦士
0x67 アイアン 0x67 アイアン
0x68 ブリキ 0x68 ブリキ
0x69 聖刻 0x69 聖刻
0x6a 幻蝶の刺客 0x6a 幻蝶の刺客
0x6b バウンサー 0x6b バウンサー
0x6c ライトレイ 0x6c ライトレイ
0x6d 魔人 0x6d 魔人
0x306d 竜魔人 0x306d 竜魔人
0x606d 儀式魔人 0x606d 儀式魔人
0x6e 魔導 0x6e 魔導
0x106e 魔導書 0x106e 魔導書
0x6f ヒロイック 0x6f ヒロイック
0x106f H・C 0x106f H・C
0x206f H-C 0x206f H-C
0x70 先史遺産 0x70 先史遺産
0x71 マドルチェ 0x71 マドルチェ
0x72 ギアギア 0x72 ギアギア
0x1072 ギアギアーノ 0x1072 ギアギアーノ
0x73 エクシーズ 0x73 エクシーズ
0x1073 CX 0x1073 CX
0x74 水精鱗 0x74 水精鱗
0x75 アビス 0x75 アビス
0x76 紋章獣 0x76 紋章獣
0x77 海皇 0x77 海皇
0x78 素早い 0x78 素早い
0x79 炎星 0x79 炎星
0x7a Nobel 0x7a Nobel
0x107a NobelKnight 0x107a NobelKnight
0x207a NobelArms 0x207a NobelArms
0x7b ギャラクシー 0x7b ギャラクシー
0x107b ギャラクシーアイズ 0x107b ギャラクシーアイズ
0x307b 银河眼时空龙 0x307b 银河眼时空龙
0x7c 炎舞 0x7c 炎舞
0x7d ヘイズ 0x7d ヘイズ
0x107d 陽炎獣 0x107d 陽炎獣
0x7e ZW 0x7e ZW
0x7f 希望皇ホープ 0x7f 希望皇ホープ
0x80 ダストン 0x80 ダストン
0x81 炎王 0x81 炎王
0x1081 炎王獣 0x1081 炎王獣
0x82 ドドド 0x82 ドドド
0x83 ギミック・パペット 0x83 ギミック・パペット
0x84 BK 0x84 BK
0x85 SDロボ 0x85 SDロボ
0x86 光天使 0x86 光天使
0x87 アンブラル 0x87 アンブラル
0x88 武神 0x88 武神
0x1088 武神器 0x1088 武神器
0x89 ホール 0x89 ホール
0x8a 蟲惑 0x8a 蟲惑
0x108a 蟲惑魔 0x108a 蟲惑魔
0x8b マリスボラス 0x8b マリスボラス
0x8c ドルイド 0x8c ドルイド
0x8d ゴーストリック 0x8d ゴーストリック
0x8e ヴァンパイア 0x8e ヴァンパイア
0x8f ズババ 0x8f ズババ
0x90 森羅 0x90 森羅
0x91 ネクロバレー 0x91 ネクロバレー
0x92 メダリオン 0x92 メダリオン
0x93 サイバー 0x93 サイバー
0x1093 サイバー・ドラゴン 0x1093 サイバー・ドラゴン
0x94 サイバネティック 0x94 サイバネティック
0x95 RUM 0x95 RUM
0x96 フィッシュボーグ 0x96 フィッシュボーグ
0x97 アーティファクト 0x97 アーティファクト
0x98 魔术师 0x98 魔术师
0x99 异色眼 0x99 异色眼
0x9a 超重武者 0x9a 超重武者
0x9b 幻奏 0x9b 幻奏
0x9c テラナイト 0x9c テラナイト
0x9d 影依 0x9d 影依
0x9e 龙星 0x9e 龙星
0x9f EM 0x9f EM
0xa0 伝説の騎士 0xa0 伝説の騎士
0xa1 伝説の竜 0xa1 伝説の竜
0xa2 ブラック·マジシャン 0xa2 ブラック·マジシャン
0xa3 スターダスト 0xa3 スターダスト
0xa4 ハネクリボー 0xa4 ハネクリボー
0xa5 チェンジ 0xa5 チェンジ
0xa6 スプラウト 0xa6 スプラウト
0xa7 アルトリウス 0xa7 アルトリウス
0xa8 ランスロット 0xa8 ランスロット
0xa9 ファーニマル 0xa9 ファーニマル
0xaa クリフォート 0xaa クリフォート
0xab ブンボーグ 0xab ブンボーグ
0xac ゴブリン 0xac ゴブリン
0xad デストーイ 0xad デストーイ
0xae 契約書 0xae 契約書
0xaf DD 0xaf DD
0xb0 ガトムズ 0xb0 ガトムズ
0xb1 Burning Abyss 0xb1 Burning Abyss
0xb2 U.A. 0xb2 U.A.
0xb3 妖仙獣 0xb3 妖仙獣
0xb4 影霊衣 0xb4 影霊衣
0xb5 霊獣 0xb5 霊獣
0x10b5 霊獣使い 0x10b5 霊獣使い
0x20b5 精霊獣 0x20b5 精霊獣
0x100 同调士相关同调怪兽 0x100 同调士相关同调怪兽
0x101 奇迹同调融合相关怪兽 0x101 奇迹同调融合相关怪兽
0x102 暗黑融合限定怪兽 0x102 暗黑融合限定怪兽
0x103 电子龙限定素材的融合怪兽 0x103 电子龙限定素材的融合怪兽
#end #end
\ No newline at end of file
...@@ -22,4 +22,55 @@ monster-text = [果|介|述|報]】\n([\S\s]*) ...@@ -22,4 +22,55 @@ monster-text = [果|介|述|報]】\n([\S\s]*)
########################### Replace ########################### Replace
replace = ([鮟|鱇|・|·]) <i>$1</i> replace = ([鮟|鱇|・|·]) <i>$1</i>
#replace = \s <sym-auto>^</sym-auto> #replace = \s <sym-auto>^</sym-auto>
#replace = ([A-Z]) <i>$1</i> #replace = ([A-Z]) <i>$1</i>
\ No newline at end of file ##race
race 0x1 战士族
race 0x2 魔法师族
race 0x4 天使族
race 0x8 恶魔族
race 0x10 不死族
race 0x20 机械族
race 0x40 水族
race 0x80 炎族
race 0x100 岩石族
race 0x200 鸟兽族
race 0x400 植物族
race 0x800 昆虫族
race 0x1000 雷族
race 0x2000 龙族
race 0x4000 兽族
race 0x8000 兽战士族
race 0x10000 恐龙族
race 0x20000 鱼族
race 0x40000 海龙族
race 0x80000 爬虫类族
race 0x100000 念动力族
race 0x200000 幻神兽族
race 0x400000 创造神族
race 0x800000 幻龙族
##type
type 0x1 怪兽
type 0x2 魔法
type 0x4 陷阱
type 0x8 N/A
type 0x10 通常
type 0x20 效果
type 0x40 融合
type 0x80 仪式
type 0x100 N/A
type 0x200 灵魂
type 0x400 同盟
type 0x800 二重
type 0x1000 调整
type 0x2000 同调
type 0x4000 衍生物
type 0x8000 N/A
type 0x10000 速攻
type 0x20000 永续
type 0x40000 装备
type 0x80000 场地
type 0x100000 反击
type 0x200000 反转
type 0x400000 卡通
type 0x800000 超量
type 0x1000000 灵摆
\ No newline at end of file
No preview for this file type
##rule ##rule
0x0 卡片规则 0x0 卡片规则
0x1 OCG专有 0x1 OCG专有
0x2 TCG专有 0x2 TCG专有
0x3 OCG&TCG 0x3 OCG&TCG
0x4 Anime/DIY 0x4 Anime/DIY
##attribute ##attribute
0x0 卡片属性 0x0 卡片属性
0x1 0x1
0x2 0x2
0x4 0x4
0x8 0x8
0x10 0x10
0x20 0x20
0x40 0x40
##level ##level
0x0 卡片等级/阶级 0x0 卡片等级/阶级
0x1 1★ 0x1 1★
0x2 2★ 0x2 2★
0x3 3★ 0x3 3★
0x4 4★ 0x4 4★
0x5 5★ 0x5 5★
0x6 6★ 0x6 6★
0x7 7★ 0x7 7★
0x8 8★ 0x8 8★
0x9 9★ 0x9 9★
0xa 10★ 0xa 10★
0xb 11★ 0xb 11★
0xc 12★ 0xc 12★
0xd 13★ 0xd 13★
##category ##category
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 LP伤害 0x400000 LP伤害
0x800000 LP回复 0x800000 LP回复
0x1000000 破坏耐性 0x1000000 破坏耐性
0x2000000 效果耐性 0x2000000 效果耐性
0x4000000 指示物 0x4000000 指示物
0x8000000 赌博相关 0x8000000 赌博相关
0x10000000 融合相关 0x10000000 融合相关
0x20000000 同调相关 0x20000000 同调相关
0x40000000 超量相关 0x40000000 超量相关
0x80000000 效果无效 0x80000000 效果无效
##race ##race
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 幻龙族
##type ##type
0x1 怪兽 0x1 怪兽
0x2 魔法 0x2 魔法
0x4 陷阱 0x4 陷阱
0x8 N/A 0x8 N/A
0x10 通常 0x10 通常
0x20 效果 0x20 效果
0x40 融合 0x40 融合
0x80 仪式 0x80 仪式
0x100 N/A 0x100 N/A
0x200 灵魂 0x200 灵魂
0x400 同盟 0x400 同盟
0x800 二重 0x800 二重
0x1000 调整 0x1000 调整
0x2000 同调 0x2000 同调
0x4000 衍生物 0x4000 衍生物
0x8000 N/A 0x8000 N/A
0x10000 速攻 0x10000 速攻
0x20000 永续 0x20000 永续
0x40000 装备 0x40000 装备
0x80000 场地 0x80000 场地
0x100000 反击 0x100000 反击
0x200000 反转 0x200000 反转
0x400000 卡通 0x400000 卡通
0x800000 超量 0x800000 超量
0x1000000 灵摆 0x1000000 灵摆
##setname ##setname
0x0 卡片系列 0x0 卡片系列
0x1 A·O·J 0x1 A·O·J
0x2 ジェネクス 0x2 ジェネクス
0x1002 レアル·ジェネクス 0x1002 レアル·ジェネクス
0x2002 A·ジェネクス 0x2002 A·ジェネクス
0x3 N/A 0x3 N/A
0x4 アマズネス 0x4 アマズネス
0x5 アルカナフォース 0x5 アルカナフォース
0x6 暗黑界 0x6 暗黑界
0x7 アンティーク・ギア 0x7 アンティーク・ギア
0x8 HERO 0x8 HERO
0x3008 E·HERO 0x3008 E·HERO
0x6008 E-HERO 0x6008 E-HERO
0xc008 D·HERO 0xc008 D·HERO
0x5008 V·HERO 0x5008 V·HERO
0xa008 M·HERO 0xa008 M·HERO
0x9 ネオス 0x9 ネオス
0xa ヴェルズ 0xa ヴェルズ
0x100a インヴェルズ 0x100a インヴェルズ
0xb インフェルニティ 0xb インフェルニティ
0xc エーリアン 0xc エーリアン
0xd セイバー 0xd セイバー
0x100d X-セイバー 0x100d X-セイバー
0x300d XX-セイバー 0x300d XX-セイバー
0xe エレキ 0xe エレキ
0xf オジャマ 0xf オジャマ
0x10 ガスタ 0x10 ガスタ
0x11 カラクリ 0x11 カラクリ
0x12 ガエル 0x12 ガエル
0x13 機皇 0x13 機皇
0x3013 機皇帝 0x3013 機皇帝
0x6013 機皇兵 0x6013 機皇兵
0x14 N/A 0x14 N/A
0x15 巨大戦艦 0x15 巨大戦艦
0x16 ロイド 0x16 ロイド
0x17 シンクロン 0x17 シンクロン
0x18 雲魔物 0x18 雲魔物
0x19 剣闘獣 0x19 剣闘獣
0x1a 黒蠍 0x1a 黒蠍
0x1b 幻獣 0x1b 幻獣
0x101b 幻獣機 0x101b 幻獣機
0x1c 幻魔 0x1c 幻魔
0x1d コアキメイル 0x1d コアキメイル
0x1e C(コクーン) 0x1e C(コクーン)
0x1f N(ネオスペーシアン) 0x1f N(ネオスペーシアン)
0x20 紫炎 0x20 紫炎
0x21 地縛神 0x21 地縛神
0x22 ジュラック 0x22 ジュラック
0x23 SIN 0x23 SIN
0x24 スクラップ 0x24 スクラップ
0x25 C(チェーン) 0x25 C(チェーン)
0x26 D(ディフォーマー) 0x26 D(ディフォーマー)
0x27 TG(テックジーナス) 0x27 TG(テックジーナス)
0x28 電池メン 0x28 電池メン
0x29 ドラグニティ 0x29 ドラグニティ
0x2a ナチュル 0x2a ナチュル
0x2b 忍者 0x2b 忍者
0x102b 機甲忍者 0x102b 機甲忍者
0x2c フレムベル 0x2c フレムベル
0x2d ハーピィ 0x2d ハーピィ
0x2e 墓守 0x2e 墓守
0x2f 氷結界 0x2f 氷結界
0x30 ヴァイロン 0x30 ヴァイロン
0x31 フォーチュンレディ 0x31 フォーチュンレディ
0x32 ヴォルカニック 0x32 ヴォルカニック
0x33 BF(ブラックフェザー) 0x33 BF(ブラックフェザー)
0x34 宝玉獣 0x34 宝玉獣
0x35 魔轟神 0x35 魔轟神
0x1035 魔轟神獣 0x1035 魔轟神獣
0x36 マシンナーズ 0x36 マシンナーズ
0x37 霞の谷 0x37 霞の谷
0x38 ライトロード 0x38 ライトロード
0x39 ラヴァル 0x39 ラヴァル
0x3a リチュア 0x3a リチュア
0x3b レッドアイズ 0x3b レッドアイズ
0x3c レプティレス 0x3c レプティレス
0x3d 六武衆 0x3d 六武衆
0x3e ワーム 0x3e ワーム
0x3f セイヴァ 0x3f セイヴァ
0x40 封印されし 0x40 封印されし
0x41 LV 0x41 LV
0x42 極星 0x42 極星
0x3042 極星天 0x3042 極星天
0x6042 極星獣 0x6042 極星獣
0xa042 極星霊 0xa042 極星霊
0x5042 極星宝 0x5042 極星宝
0x43 ジャンク 0x43 ジャンク
0x44 代行者 0x44 代行者
0x45 デーモン 0x45 デーモン
0x46 融合/フュージョン 0x46 融合/フュージョン
0x47 ジェム 0x47 ジェム
0x1047 ジェムナイト 0x1047 ジェムナイト
0x48 NO 0x48 NO
0x1048 CNO 0x1048 CNO
0x49 铳士 0x49 铳士
0x4a 時械神 0x4a 時械神
0x4b 極神 0x4b 極神
0x4c 落とし穴 0x4c 落とし穴
0x4e エヴォル 0x4e エヴォル
0x304e エヴォルド 0x304e エヴォルド
0x604e エヴォルダ 0x604e エヴォルダ
0x504e エヴォルカイザー 0x504e エヴォルカイザー
0x4f バスター 0x4f バスター
0x104f /バスター 0x104f /バスター
0x50 ヴェノム 0x50 ヴェノム
0x51 ガジェット 0x51 ガジェット
0x52 ガーディアン 0x52 ガーディアン
0x53 セイクリッド 0x53 セイクリッド
0x54 ガガガ 0x54 ガガガ
0x55 フォトン 0x55 フォトン
0x56 甲虫装機 0x56 甲虫装機
0x57 リゾネーター 0x57 リゾネーター
0x58 ゼンマイ 0x58 ゼンマイ
0x59 ゴゴゴ 0x59 ゴゴゴ
0x5a ペンギン 0x5a ペンギン
0x5b トマボー 0x5b トマボー
0x5c スフィンクス 0x5c スフィンクス
0x60 竹光 0x60 竹光
0x61 忍法 0x61 忍法
0x62 トゥーン 0x62 トゥーン
0x63 リアクター 0x63 リアクター
0x64 ハーピィ 0x64 ハーピィ
0x65 侵略の 0x65 侵略の
0x66 音響戦士 0x66 音響戦士
0x67 アイアン 0x67 アイアン
0x68 ブリキ 0x68 ブリキ
0x69 聖刻 0x69 聖刻
0x6a 幻蝶の刺客 0x6a 幻蝶の刺客
0x6b バウンサー 0x6b バウンサー
0x6c ライトレイ 0x6c ライトレイ
0x6d 魔人 0x6d 魔人
0x306d 竜魔人 0x306d 竜魔人
0x606d 儀式魔人 0x606d 儀式魔人
0x6e 魔導 0x6e 魔導
0x106e 魔導書 0x106e 魔導書
0x6f ヒロイック 0x6f ヒロイック
0x106f H・C 0x106f H・C
0x206f H-C 0x206f H-C
0x70 先史遺産 0x70 先史遺産
0x71 マドルチェ 0x71 マドルチェ
0x72 ギアギア 0x72 ギアギア
0x1072 ギアギアーノ 0x1072 ギアギアーノ
0x73 エクシーズ 0x73 エクシーズ
0x1073 CX 0x1073 CX
0x74 水精鱗 0x74 水精鱗
0x75 アビス 0x75 アビス
0x76 紋章獣 0x76 紋章獣
0x77 海皇 0x77 海皇
0x78 素早い 0x78 素早い
0x79 炎星 0x79 炎星
0x7a Nobel 0x7a Nobel
0x107a NobelKnight 0x107a NobelKnight
0x207a NobelArms 0x207a NobelArms
0x7b ギャラクシー 0x7b ギャラクシー
0x107b ギャラクシーアイズ 0x107b ギャラクシーアイズ
0x307b 银河眼时空龙 0x307b 银河眼时空龙
0x7c 炎舞 0x7c 炎舞
0x7d ヘイズ 0x7d ヘイズ
0x107d 陽炎獣 0x107d 陽炎獣
0x7e ZW 0x7e ZW
0x7f 希望皇ホープ 0x7f 希望皇ホープ
0x80 ダストン 0x80 ダストン
0x81 炎王 0x81 炎王
0x1081 炎王獣 0x1081 炎王獣
0x82 ドドド 0x82 ドドド
0x83 ギミック・パペット 0x83 ギミック・パペット
0x84 BK 0x84 BK
0x85 SDロボ 0x85 SDロボ
0x86 光天使 0x86 光天使
0x87 アンブラル 0x87 アンブラル
0x88 武神 0x88 武神
0x1088 武神器 0x1088 武神器
0x89 ホール 0x89 ホール
0x8a 蟲惑 0x8a 蟲惑
0x108a 蟲惑魔 0x108a 蟲惑魔
0x8b マリスボラス 0x8b マリスボラス
0x8c ドルイド 0x8c ドルイド
0x8d ゴーストリック 0x8d ゴーストリック
0x8e ヴァンパイア 0x8e ヴァンパイア
0x8f ズババ 0x8f ズババ
0x90 森羅 0x90 森羅
0x91 ネクロバレー 0x91 ネクロバレー
0x92 メダリオン 0x92 メダリオン
0x93 サイバー 0x93 サイバー
0x1093 サイバー・ドラゴン 0x1093 サイバー・ドラゴン
0x94 サイバネティック 0x94 サイバネティック
0x95 RUM 0x95 RUM
0x96 フィッシュボーグ 0x96 フィッシュボーグ
0x97 アーティファクト 0x97 アーティファクト
0x98 魔术师 0x98 魔术师
0x99 异色眼 0x99 异色眼
0x9a 超重武者 0x9a 超重武者
0x9b 幻奏 0x9b 幻奏
0x9c テラナイト 0x9c テラナイト
0x9d 影依 0x9d 影依
0x9e 龙星 0x9e 龙星
0x9f EM 0x9f EM
0xa0 伝説の騎士 0xa0 伝説の騎士
0xa1 伝説の竜 0xa1 伝説の竜
0xa2 ブラック·マジシャン 0xa2 ブラック·マジシャン
0xa3 スターダスト 0xa3 スターダスト
0xa4 ハネクリボー 0xa4 ハネクリボー
0xa5 チェンジ 0xa5 チェンジ
0xa6 スプラウト 0xa6 スプラウト
0xa7 アルトリウス 0xa7 アルトリウス
0xa8 ランスロット 0xa8 ランスロット
0xa9 ファーニマル 0xa9 ファーニマル
0xaa クリフォート 0xaa クリフォート
0xab ブンボーグ 0xab ブンボーグ
0xac ゴブリン 0xac ゴブリン
0xad デストーイ 0xad デストーイ
0xae 契約書 0xae 契約書
0xaf DD 0xaf DD
0xb0 ガトムズ 0xb0 ガトムズ
0xb1 Burning Abyss 0xb1 Burning Abyss
0xb2 U.A. 0xb2 U.A.
0xb3 妖仙獣 0xb3 妖仙獣
0xb4 影霊衣 0xb4 影霊衣
0xb5 霊獣 0xb5 霊獣
0x10b5 霊獣使い 0x10b5 霊獣使い
0x20b5 精霊獣 0x20b5 精霊獣
0x100 同调士相关同调怪兽 0x100 同调士相关同调怪兽
0x101 奇迹同调融合相关怪兽 0x101 奇迹同调融合相关怪兽
0x102 暗黑融合限定怪兽 0x102 暗黑融合限定怪兽
0x103 电子龙限定素材的融合怪兽 0x103 电子龙限定素材的融合怪兽
#end #end
\ No newline at end of file
...@@ -22,4 +22,55 @@ monster-text = [果|介|述|報]】\n([\S\s]*) ...@@ -22,4 +22,55 @@ monster-text = [果|介|述|報]】\n([\S\s]*)
########################### Replace ########################### Replace
replace = ([鮟|鱇|・|·]) <i>$1</i> replace = ([鮟|鱇|・|·]) <i>$1</i>
#replace = \s <sym-auto>^</sym-auto> #replace = \s <sym-auto>^</sym-auto>
#replace = ([A-Z]) <i>$1</i> #replace = ([A-Z]) <i>$1</i>
\ No newline at end of file ##race
race 0x1 战士族
race 0x2 魔法师族
race 0x4 天使族
race 0x8 恶魔族
race 0x10 不死族
race 0x20 机械族
race 0x40 水族
race 0x80 炎族
race 0x100 岩石族
race 0x200 鸟兽族
race 0x400 植物族
race 0x800 昆虫族
race 0x1000 雷族
race 0x2000 龙族
race 0x4000 兽族
race 0x8000 兽战士族
race 0x10000 恐龙族
race 0x20000 鱼族
race 0x40000 海龙族
race 0x80000 爬虫类族
race 0x100000 念动力族
race 0x200000 幻神兽族
race 0x400000 创造神族
race 0x800000 幻龙族
##type
type 0x1 怪兽
type 0x2 魔法
type 0x4 陷阱
type 0x8 N/A
type 0x10 通常
type 0x20 效果
type 0x40 融合
type 0x80 仪式
type 0x100 N/A
type 0x200 灵魂
type 0x400 同盟
type 0x800 二重
type 0x1000 调整
type 0x2000 同调
type 0x4000 衍生物
type 0x8000 N/A
type 0x10000 速攻
type 0x20000 永续
type 0x40000 装备
type 0x80000 场地
type 0x100000 反击
type 0x200000 反转
type 0x400000 卡通
type 0x800000 超量
type 0x1000000 灵摆
\ No newline at end of file
mse version: 0.3.8
game: yugioh
stylesheet: standard
set info:
language: TW
edition:
ST mark is text: no
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%
rule text:
%desc%
gamecode: %code%
\ No newline at end of file
card: ##head
mse version: 0.3.8
game: yugioh
stylesheet: standard
set info:
language: TW
edition:
ST mark is text: no
pendulum image is small: yes
##monster
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
card:
card type: %type% card type: %type%
name: %name% name: %name%
attribute: %attribute% attribute: %attribute%
...@@ -17,4 +43,15 @@ ...@@ -17,4 +43,15 @@
pendulum scale 2: %pr% pendulum scale 2: %pr%
pendulum text: pendulum text:
%pdesc% %pdesc%
gamecode: %code% gamecode: %code%
\ No newline at end of file ##spelltrap
card:
card type: %type%
name: %name%
attribute: %attribute%
level: %level%
image: %image%
rule text:
%desc%
gamecode: %code%
#end
\ No newline at end of file
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