Commit 937fc508 authored by keyongyu's avatar keyongyu

2.2.0.0

parent eab7049c
/*
* 由SharpDevelop创建。
* 用户: Acer
* 日期: 2014-10-22
* 时间: 19:16
*
*/
namespace DataEditorX
{
partial class CodeEditForm
{
/// <summary>
/// Designer variable used to keep track of non-visual components.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Disposes resources used by the form.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing) {
if (components != null) {
components.Dispose();
}
}
base.Dispose(disposing);
}
/// <summary>
/// This method is required for Windows Forms designer support.
/// Do not change the method contents inside the source code editor. The Forms designer might
/// not be able to load this method if it was changed manually.
/// </summary>
private void InitializeComponent()
{
this.components = new System.ComponentModel.Container();
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.menuitem_file = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_open = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_save = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_saveas = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_quit = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_setting = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_showmap = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_showinput = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_help = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_about = new System.Windows.Forms.ToolStripMenuItem();
this.fctb = new FastColoredTextBoxNS.FastColoredTextBox();
this.documentMap1 = new FastColoredTextBoxNS.DocumentMap();
this.tb_input = new System.Windows.Forms.TextBox();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.menuStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.fctb)).BeginInit();
this.SuspendLayout();
//
// menuStrip1
//
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuitem_file,
this.menuitem_setting,
this.menuitem_help});
this.menuStrip1.Location = new System.Drawing.Point(0, 0);
this.menuStrip1.Name = "menuStrip1";
this.menuStrip1.Size = new System.Drawing.Size(695, 25);
this.menuStrip1.TabIndex = 0;
this.menuStrip1.Text = "menuStrip1";
//
// menuitem_file
//
this.menuitem_file.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuitem_open,
this.menuitem_save,
this.menuitem_saveas,
this.toolStripSeparator1,
this.menuitem_quit});
this.menuitem_file.Name = "menuitem_file";
this.menuitem_file.Size = new System.Drawing.Size(53, 21);
this.menuitem_file.Text = "File(&F)";
//
// menuitem_open
//
this.menuitem_open.Name = "menuitem_open";
this.menuitem_open.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.O)));
this.menuitem_open.Size = new System.Drawing.Size(155, 22);
this.menuitem_open.Text = "Open";
this.menuitem_open.Click += new System.EventHandler(this.Menuitem_openClick);
//
// menuitem_save
//
this.menuitem_save.Name = "menuitem_save";
this.menuitem_save.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.S)));
this.menuitem_save.Size = new System.Drawing.Size(155, 22);
this.menuitem_save.Text = "Save";
this.menuitem_save.Click += new System.EventHandler(this.SaveToolStripMenuItemClick);
//
// menuitem_saveas
//
this.menuitem_saveas.Name = "menuitem_saveas";
this.menuitem_saveas.Size = new System.Drawing.Size(155, 22);
this.menuitem_saveas.Text = "Save As";
this.menuitem_saveas.Click += new System.EventHandler(this.SaveAsToolStripMenuItemClick);
//
// menuitem_quit
//
this.menuitem_quit.Name = "menuitem_quit";
this.menuitem_quit.Size = new System.Drawing.Size(155, 22);
this.menuitem_quit.Text = "Quit";
this.menuitem_quit.Click += new System.EventHandler(this.QuitToolStripMenuItemClick);
//
// menuitem_setting
//
this.menuitem_setting.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuitem_showmap,
this.menuitem_showinput});
this.menuitem_setting.Name = "menuitem_setting";
this.menuitem_setting.Size = new System.Drawing.Size(75, 21);
this.menuitem_setting.Text = "Setting(&S)";
//
// menuitem_showmap
//
this.menuitem_showmap.Name = "menuitem_showmap";
this.menuitem_showmap.Size = new System.Drawing.Size(163, 22);
this.menuitem_showmap.Text = "Show Map";
this.menuitem_showmap.Click += new System.EventHandler(this.ShowMapToolStripMenuItemClick);
//
// menuitem_showinput
//
this.menuitem_showinput.Name = "menuitem_showinput";
this.menuitem_showinput.Size = new System.Drawing.Size(163, 22);
this.menuitem_showinput.Text = "Show InputBox";
this.menuitem_showinput.Click += new System.EventHandler(this.Menuitem_showinputClick);
//
// menuitem_help
//
this.menuitem_help.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuitem_about});
this.menuitem_help.Name = "menuitem_help";
this.menuitem_help.Size = new System.Drawing.Size(64, 21);
this.menuitem_help.Text = "Help(&H)";
//
// menuitem_about
//
this.menuitem_about.Name = "menuitem_about";
this.menuitem_about.Size = new System.Drawing.Size(111, 22);
this.menuitem_about.Text = "About";
this.menuitem_about.Click += new System.EventHandler(this.AboutToolStripMenuItemClick);
//
// fctb
//
this.fctb.AutoCompleteBracketsList = new char[] {
'(',
')',
'{',
'}',
'[',
']',
'\"',
'\"',
'\'',
'\''};
this.fctb.AutoIndentChars = false;
this.fctb.AutoIndentCharsPatterns = "\n^\\s*[\\w\\.]+(\\s\\w+)?\\s*(?<range>=)\\s*(?<range>.+)\n";
this.fctb.AutoScrollMinSize = new System.Drawing.Size(0, 22);
this.fctb.BackBrush = null;
this.fctb.BracketsHighlightStrategy = FastColoredTextBoxNS.BracketsHighlightStrategy.Strategy2;
this.fctb.CharHeight = 22;
this.fctb.CharWidth = 10;
this.fctb.CommentPrefix = "--";
this.fctb.Cursor = System.Windows.Forms.Cursors.IBeam;
this.fctb.DisabledColor = System.Drawing.Color.FromArgb(((int)(((byte)(100)))), ((int)(((byte)(180)))), ((int)(((byte)(180)))), ((int)(((byte)(180)))));
this.fctb.Dock = System.Windows.Forms.DockStyle.Fill;
this.fctb.Font = new System.Drawing.Font("Consolas", 14.25F);
this.fctb.IsReplaceMode = false;
this.fctb.Language = FastColoredTextBoxNS.Language.Lua;
this.fctb.LeftBracket = '(';
this.fctb.LeftBracket2 = '{';
this.fctb.Location = new System.Drawing.Point(0, 25);
this.fctb.Name = "fctb";
this.fctb.Paddings = new System.Windows.Forms.Padding(0);
this.fctb.RightBracket = ')';
this.fctb.RightBracket2 = '}';
this.fctb.SelectionColor = System.Drawing.Color.FromArgb(((int)(((byte)(60)))), ((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(255)))));
this.fctb.Size = new System.Drawing.Size(498, 390);
this.fctb.TabIndex = 0;
this.fctb.WordWrap = true;
this.fctb.Zoom = 100;
this.fctb.ToolTipNeeded += new System.EventHandler<FastColoredTextBoxNS.ToolTipNeededEventArgs>(this.FctbToolTipNeeded);
this.fctb.SelectionChanged += new System.EventHandler(this.FctbSelectionChanged);
this.fctb.TextChangedDelayed += new System.EventHandler<FastColoredTextBoxNS.TextChangedEventArgs>(this.FctbTextChangedDelayed);
this.fctb.KeyDown += new System.Windows.Forms.KeyEventHandler(this.FctbKeyDown);
//
// documentMap1
//
this.documentMap1.Dock = System.Windows.Forms.DockStyle.Right;
this.documentMap1.ForeColor = System.Drawing.Color.Maroon;
this.documentMap1.Location = new System.Drawing.Point(498, 25);
this.documentMap1.Name = "documentMap1";
this.documentMap1.Size = new System.Drawing.Size(197, 390);
this.documentMap1.TabIndex = 5;
this.documentMap1.Target = this.fctb;
this.documentMap1.Text = "documentMap1";
this.documentMap1.Visible = false;
//
// tb_input
//
this.tb_input.Dock = System.Windows.Forms.DockStyle.Bottom;
this.tb_input.Location = new System.Drawing.Point(0, 394);
this.tb_input.Name = "tb_input";
this.tb_input.Size = new System.Drawing.Size(498, 21);
this.tb_input.TabIndex = 1;
this.tb_input.Visible = false;
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(152, 6);
//
// CodeEditForm
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(695, 415);
this.Controls.Add(this.tb_input);
this.Controls.Add(this.fctb);
this.Controls.Add(this.documentMap1);
this.Controls.Add(this.menuStrip1);
this.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.MainMenuStrip = this.menuStrip1;
this.Name = "CodeEditForm";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "CodeEditor";
this.Load += new System.EventHandler(this.CodeEditFormLoad);
this.Enter += new System.EventHandler(this.CodeEditFormEnter);
this.menuStrip1.ResumeLayout(false);
this.menuStrip1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.fctb)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripMenuItem menuitem_showinput;
private System.Windows.Forms.TextBox tb_input;
private FastColoredTextBoxNS.DocumentMap documentMap1;
private FastColoredTextBoxNS.FastColoredTextBox fctb;
private System.Windows.Forms.ToolStripMenuItem menuitem_showmap;
private System.Windows.Forms.ToolStripMenuItem menuitem_about;
private System.Windows.Forms.ToolStripMenuItem menuitem_help;
private System.Windows.Forms.ToolStripMenuItem menuitem_setting;
private System.Windows.Forms.ToolStripMenuItem menuitem_quit;
private System.Windows.Forms.ToolStripMenuItem menuitem_saveas;
private System.Windows.Forms.ToolStripMenuItem menuitem_save;
private System.Windows.Forms.ToolStripMenuItem menuitem_open;
private System.Windows.Forms.ToolStripMenuItem menuitem_file;
private System.Windows.Forms.MenuStrip menuStrip1;
}
}
/*
* 由SharpDevelop创建。
* 用户: Acer
* 日期: 2014-10-22
* 时间: 19:16
*
*/
using System;
using System.IO;
using System.Drawing;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Text;
using WeifenLuo.WinFormsUI.Docking;
using FastColoredTextBoxNS;
using DataEditorX.Language;
namespace DataEditorX
{
/// <summary>
/// Description of CodeEditForm.
/// </summary>
public partial class CodeEditForm : DockContent
{
#region init
AutocompleteMenu popupMenu;
AutocompleteMenu popupMenu_fun;
AutocompleteMenu popupMenu_con;
string nowFile;
string title;
Dictionary<string,string> tooltipDic;
public CodeEditForm()
{
InitForm();
}
public CodeEditForm(string file)
{
InitForm();
Open(file);
}
void InitForm()
{
tooltipDic=new Dictionary<string, string>();
InitializeComponent();
Font ft=new Font(fctb.Font.Name,fctb.Font.Size/1.2f,FontStyle.Regular);
popupMenu = new FastColoredTextBoxNS.AutocompleteMenu(fctb);
popupMenu.MinFragmentLength = 2;
popupMenu.Items.Font = ft;
popupMenu.Items.MaximumSize = new System.Drawing.Size(200, 400);
popupMenu.Items.Width = 300;
popupMenu_fun = new FastColoredTextBoxNS.AutocompleteMenu(fctb);
popupMenu_fun.MinFragmentLength = 2;
popupMenu_fun.Items.Font = ft;
popupMenu_fun.Items.MaximumSize = new System.Drawing.Size(200, 400);
popupMenu_fun.Items.Width = 300;
popupMenu_con = new FastColoredTextBoxNS.AutocompleteMenu(fctb);
popupMenu_con.MinFragmentLength = 2;
popupMenu_con.Items.Font = ft;
popupMenu_con.Items.MaximumSize = new System.Drawing.Size(200, 400);
popupMenu_con.Items.Width = 300;
title=this.Text;
}
public void LoadXml(string xmlfile)
{
fctb.DescriptionFile=xmlfile;
}
#endregion
#region Open
public void Open(string file)
{
if(!string.IsNullOrEmpty(file))
{
if(!File.Exists(file))
{
FileStream fs=new FileStream(file, FileMode.Create);
fs.Close();
}
nowFile=file;
fctb.OpenFile(nowFile, new UTF8Encoding(false));
SetTitle();
}
}
void HideMenu()
{
if(this.MdiParent ==null)
return;
menuStrip1.Visible=false;
menuitem_file.Visible=false;
menuitem_file.Enabled=false;
}
void CodeEditFormLoad(object sender, EventArgs e)
{
HideMenu();
fctb.OnTextChangedDelayed(fctb.Range);
}
#endregion
#region doc map
void ShowMapToolStripMenuItemClick(object sender, EventArgs e)
{
if(menuitem_showmap.Checked)
{
documentMap1.Visible=false;
menuitem_showmap.Checked=false;
}else{
documentMap1.Visible=true;
menuitem_showmap.Checked=true;
}
}
#endregion
#region folding
void FctbTextChangedDelayed(object sender, TextChangedEventArgs e)
{
//delete all markers
fctb.Range.ClearFoldingMarkers();
var currentIndent = 0;
var lastNonEmptyLine = 0;
for (int i = 0; i < fctb.LinesCount; i++)
{
var line = fctb[i];
var spacesCount = line.StartSpacesCount;
if (spacesCount == line.Count) //empty line
continue;
if (currentIndent < spacesCount)
//append start folding marker
fctb[lastNonEmptyLine].FoldingStartMarker = "m" + currentIndent;
else if (currentIndent > spacesCount)
//append end folding marker
fctb[lastNonEmptyLine].FoldingEndMarker = "m" + spacesCount;
currentIndent = spacesCount;
lastNonEmptyLine = i;
}
}
#endregion
#region title
void SetTitle()
{
string name=fctb.GetLineText(0);
string str=title;
if(string.IsNullOrEmpty(nowFile))
str=title;
else
str=nowFile+name;
if(this.MdiParent !=null)
{
if(string.IsNullOrEmpty(nowFile))
this.Text=title;
else
this.Text=Path.GetFileName(nowFile);
this.MdiParent.Text=str;
}
else
this.Text=str;
}
void CodeEditFormEnter(object sender, EventArgs e)
{
SetTitle();
}
#endregion
#region tooltip
public void InitTooltip(Dictionary<string,string> tooltipDic
,AutocompleteItem[] funlist
,AutocompleteItem[] conlist)
{
this.tooltipDic=tooltipDic;
List<AutocompleteItem> items=new List<AutocompleteItem>();
items.AddRange(funlist);
items.AddRange(conlist);
popupMenu.Items.SetAutocompleteItems(items);
popupMenu_con.Items.SetAutocompleteItems(conlist);
popupMenu_fun.Items.SetAutocompleteItems(funlist);
}
string FindTooltip(string word)
{
string desc="";
foreach(string v in tooltipDic.Keys)
{
int t=v.IndexOf(".");
string k=v;
if(t>0)
k=v.Substring(t+1);
if(word==k)
desc=tooltipDic[v];
}
return desc;
}
void FctbToolTipNeeded(object sender, ToolTipNeededEventArgs e)
{
if (!string.IsNullOrEmpty(e.HoveredWord))
{
string desc=FindTooltip(e.HoveredWord);
if(!string.IsNullOrEmpty(desc))
{
e.ToolTipTitle = e.HoveredWord;
e.ToolTipText = desc;
}
}
}
#endregion
#region Key
void FctbKeyDown(object sender, KeyEventArgs e)
{
if (e.KeyData == (Keys.K | Keys.Control))
{
//forced show (MinFragmentLength will be ignored)
popupMenu_fun.Show(true);
e.Handled = true;
}else if (e.KeyData == (Keys.T | Keys.Control))
{
//forced show (MinFragmentLength will be ignored)
popupMenu_con.Show(true);
e.Handled = true;
}
}
#endregion
#region input
void FctbSelectionChanged(object sender, EventArgs e)
{
tb_input.Text=fctb.SelectedText;
}
void Menuitem_showinputClick(object sender, EventArgs e)
{
if(menuitem_showinput.Checked)
{
menuitem_showinput.Checked=false;
tb_input.Visible=false;
}
else{
menuitem_showinput.Checked=true;
tb_input.Visible=true;
}
}
#endregion
void SaveToolStripMenuItemClick(object sender, EventArgs e)
{
if(string.IsNullOrEmpty(nowFile))
{
using(SaveFileDialog sfdlg=new SaveFileDialog())
{
sfdlg.Filter="Script(*.lua)|*.lua|All Files(*.*)|*.*";
if(sfdlg.ShowDialog()==DialogResult.OK)
{
nowFile=sfdlg.FileName;
}
else
return;
}
}
fctb.SaveToFile(nowFile, new UTF8Encoding(false));
}
void SaveAsToolStripMenuItemClick(object sender, EventArgs e)
{
using(SaveFileDialog sfdlg=new SaveFileDialog())
{
sfdlg.Filter="Script(*.lua)|*.lua|All Files(*.*)|*.*";
if(sfdlg.ShowDialog()==DialogResult.OK)
{
nowFile=sfdlg.FileName;
}
else
return;
}
fctb.SaveToFile(nowFile, new UTF8Encoding(false));
}
void QuitToolStripMenuItemClick(object sender, EventArgs e)
{
this.Close();
}
void AboutToolStripMenuItemClick(object sender, EventArgs e)
{
MyMsg.Show(
LANG.GetMsg(LMSG.About)+"\t"+Application.ProductName+"\n"
+LANG.GetMsg(LMSG.Version)+"\t1.0.0.0\n"
+LANG.GetMsg(LMSG.Author)+"\t247321453\n"
+"Email:\t247321453@qq.com");
}
void Menuitem_openClick(object sender, EventArgs e)
{
using(OpenFileDialog sfdlg=new OpenFileDialog())
{
sfdlg.Filter="Script(*.lua)|*.lua|All Files(*.*)|*.*";
if(sfdlg.ShowDialog()==DialogResult.OK)
{
nowFile=sfdlg.FileName;
fctb.OpenFile(nowFile, new UTF8Encoding(false));
}
}
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>44</value>
</metadata>
</root>
\ No newline at end of file
/*
* 由SharpDevelop创建。
* 用户: Acer
* 日期: 2014-10-23
* 时间: 7:54
*
*/
using System;
using System.Collections.Generic;
using System.IO;
namespace DataEditorX.Core
{
/// <summary>
/// Description of DataConfig.
/// </summary>
public class DataConfig
{
public DataConfig()
{
InitMember();
}
public DataConfig(string datapath)
{
confrule=Path.Combine(datapath, "card-rule.txt");
confattribute=Path.Combine(datapath, "card-attribute.txt");
confrace=Path.Combine(datapath, "card-race.txt");
conflevel=Path.Combine(datapath, "card-level.txt");
confsetname=Path.Combine(datapath, "card-setname.txt");
conftype=Path.Combine(datapath, "card-type.txt");
confcategory=Path.Combine(datapath, "card-category.txt");
InitMember();
}
void InitMember()
{
dicCardRules=new Dictionary<long, string>();
dicSetnames=new Dictionary<long, string>();
dicCardTypes=new Dictionary<long, string>();
dicCardcategorys=new Dictionary<long, string>();
dicCardAttributes=new Dictionary<long, string>();
dicCardRaces=new Dictionary<long, string>();
dicCardLevels=new Dictionary<long, string>();
}
public DataConfig Clone()
{
DataConfig datacfg=new DataConfig();
datacfg.confrule = confrule;
datacfg.confattribute = confattribute;
datacfg.confrace = confrace;
datacfg.conflevel = conflevel;
datacfg.confsetname = confsetname;
datacfg.conftype = conftype;
datacfg.confcategory = confcategory;
datacfg.dicCardRules = CopyDic(dicCardRules);
datacfg.dicSetnames = CopyDic(dicSetnames);
datacfg.dicCardTypes = CopyDic(dicCardTypes);
datacfg.dicCardcategorys = CopyDic(dicCardcategorys);
datacfg.dicCardAttributes = CopyDic(dicCardAttributes);
datacfg.dicCardRaces = CopyDic(dicCardRaces);
datacfg.dicCardLevels = CopyDic(dicCardLevels);
return datacfg;
}
Dictionary<long, string> CopyDic(Dictionary<long, string> dic)
{
Dictionary<long, string> ndic=new Dictionary<long, string>();
foreach(long k in dic.Keys)
{
ndic.Add(k, dic[k]);
}
return ndic;
}
public void Init()
{
dicCardRules=DataManager.Read(confrule);
dicSetnames=DataManager.Read(confsetname);
dicCardTypes=DataManager.Read(conftype);
dicCardcategorys=DataManager.Read(confcategory);
dicCardAttributes=DataManager.Read(confattribute);
dicCardRaces=DataManager.Read(confrace);
dicCardLevels=DataManager.Read(conflevel);
}
public string confrule, confattribute, confrace, conflevel;
public string confsetname, conftype, confcategory;
public Dictionary<long, string> dicCardRules=null;
public Dictionary<long, string> dicCardAttributes=null;
public Dictionary<long, string> dicCardRaces=null;
public Dictionary<long, string> dicCardLevels=null;
public Dictionary<long, string> dicSetnames=null;
public Dictionary<long, string> dicCardTypes=null;
public Dictionary<long, string> dicCardcategorys=null;
}
}
...@@ -761,7 +761,7 @@ private void InitializeComponent() ...@@ -761,7 +761,7 @@ private void InitializeComponent()
this.pl_cardtype.Anchor = System.Windows.Forms.AnchorStyles.Top; this.pl_cardtype.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.pl_cardtype.AutoScroll = true; this.pl_cardtype.AutoScroll = true;
this.pl_cardtype.Location = new System.Drawing.Point(548, 46); this.pl_cardtype.Location = new System.Drawing.Point(548, 46);
this.pl_cardtype.Margin = new System.Windows.Forms.Padding(1, 2, 1, 2); this.pl_cardtype.Margin = new System.Windows.Forms.Padding(1);
this.pl_cardtype.Name = "pl_cardtype"; this.pl_cardtype.Name = "pl_cardtype";
this.pl_cardtype.Padding = new System.Windows.Forms.Padding(2); this.pl_cardtype.Padding = new System.Windows.Forms.Padding(2);
this.pl_cardtype.Size = new System.Drawing.Size(310, 123); this.pl_cardtype.Size = new System.Drawing.Size(310, 123);
...@@ -772,7 +772,7 @@ private void InitializeComponent() ...@@ -772,7 +772,7 @@ private void InitializeComponent()
this.pl_category.Anchor = System.Windows.Forms.AnchorStyles.Top; this.pl_category.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.pl_category.AutoScroll = true; this.pl_category.AutoScroll = true;
this.pl_category.Location = new System.Drawing.Point(548, 189); this.pl_category.Location = new System.Drawing.Point(548, 189);
this.pl_category.Margin = new System.Windows.Forms.Padding(1, 2, 1, 2); this.pl_category.Margin = new System.Windows.Forms.Padding(1);
this.pl_category.Name = "pl_category"; this.pl_category.Name = "pl_category";
this.pl_category.Padding = new System.Windows.Forms.Padding(2); this.pl_category.Padding = new System.Windows.Forms.Padding(2);
this.pl_category.Size = new System.Drawing.Size(310, 174); this.pl_category.Size = new System.Drawing.Size(310, 174);
...@@ -850,6 +850,7 @@ private void InitializeComponent() ...@@ -850,6 +850,7 @@ private void InitializeComponent()
// //
this.tb_setcode1.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_setcode1.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_setcode1.Location = new System.Drawing.Point(512, 158); this.tb_setcode1.Location = new System.Drawing.Point(512, 158);
this.tb_setcode1.MaxLength = 4;
this.tb_setcode1.Name = "tb_setcode1"; this.tb_setcode1.Name = "tb_setcode1";
this.tb_setcode1.Size = new System.Drawing.Size(30, 21); this.tb_setcode1.Size = new System.Drawing.Size(30, 21);
this.tb_setcode1.TabIndex = 18; this.tb_setcode1.TabIndex = 18;
...@@ -861,6 +862,7 @@ private void InitializeComponent() ...@@ -861,6 +862,7 @@ private void InitializeComponent()
// //
this.tb_setcode2.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_setcode2.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_setcode2.Location = new System.Drawing.Point(512, 182); this.tb_setcode2.Location = new System.Drawing.Point(512, 182);
this.tb_setcode2.MaxLength = 4;
this.tb_setcode2.Name = "tb_setcode2"; this.tb_setcode2.Name = "tb_setcode2";
this.tb_setcode2.Size = new System.Drawing.Size(30, 21); this.tb_setcode2.Size = new System.Drawing.Size(30, 21);
this.tb_setcode2.TabIndex = 18; this.tb_setcode2.TabIndex = 18;
...@@ -872,6 +874,7 @@ private void InitializeComponent() ...@@ -872,6 +874,7 @@ private void InitializeComponent()
// //
this.tb_setcode3.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_setcode3.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_setcode3.Location = new System.Drawing.Point(512, 207); this.tb_setcode3.Location = new System.Drawing.Point(512, 207);
this.tb_setcode3.MaxLength = 4;
this.tb_setcode3.Name = "tb_setcode3"; this.tb_setcode3.Name = "tb_setcode3";
this.tb_setcode3.Size = new System.Drawing.Size(30, 21); this.tb_setcode3.Size = new System.Drawing.Size(30, 21);
this.tb_setcode3.TabIndex = 18; this.tb_setcode3.TabIndex = 18;
...@@ -883,6 +886,7 @@ private void InitializeComponent() ...@@ -883,6 +886,7 @@ private void InitializeComponent()
// //
this.tb_setcode4.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_setcode4.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_setcode4.Location = new System.Drawing.Point(512, 232); this.tb_setcode4.Location = new System.Drawing.Point(512, 232);
this.tb_setcode4.MaxLength = 4;
this.tb_setcode4.Name = "tb_setcode4"; this.tb_setcode4.Name = "tb_setcode4";
this.tb_setcode4.Size = new System.Drawing.Size(30, 21); this.tb_setcode4.Size = new System.Drawing.Size(30, 21);
this.tb_setcode4.TabIndex = 18; this.tb_setcode4.TabIndex = 18;
......
...@@ -47,15 +47,8 @@ public partial class DataEditForm : DockContent ...@@ -47,15 +47,8 @@ public partial class DataEditForm : DockContent
bool setcodeIsedit4; bool setcodeIsedit4;
Image m_cover; Image m_cover;
Dictionary<long, string> dicCardRules=null; DataConfig datacfg;
Dictionary<long, string> dicCardAttributes=null; string datapath, confcover;
Dictionary<long, string> dicCardRaces=null;
Dictionary<long, string> dicCardLevels=null;
Dictionary<long, string> dicSetnames=null;
Dictionary<long, string> dicCardTypes=null;
Dictionary<long, string> dicCardcategorys=null;
string datapath, confrule, confattribute, confrace, conflevel;
string confsetname, conftype, confcategory, confcover;
public string getNowCDB() public string getNowCDB()
{ {
...@@ -86,6 +79,7 @@ public DataEditForm() ...@@ -86,6 +79,7 @@ public DataEditForm()
} }
void Initialize() void Initialize()
{ {
datacfg=null;
complist=new Dictionary<long, Card>(); complist=new Dictionary<long, Card>();
InitializeComponent(); InitializeComponent();
title=this.Text; title=this.Text;
...@@ -108,8 +102,13 @@ void DataEditFormLoad(object sender, EventArgs e) ...@@ -108,8 +102,13 @@ void DataEditFormLoad(object sender, EventArgs e)
#endif #endif
SetTitle(); SetTitle();
InitGameData(); if(datacfg==null){
tasker=new TaskHelper(datapath, bgWorker1, dicCardTypes, dicCardRaces); datacfg=new DataConfig(datapath);
datacfg.Init();
}
tasker=new TaskHelper(datapath, bgWorker1,
datacfg.dicCardTypes,
datacfg.dicCardRaces);
SetCDB(nowCdbFile); SetCDB(nowCdbFile);
//设置空白卡片 //设置空白卡片
...@@ -143,6 +142,7 @@ void HideMenu() ...@@ -143,6 +142,7 @@ void HideMenu()
return; return;
menuStrip1.Visible=false; menuStrip1.Visible=false;
menuitem_file.Visible=false; menuitem_file.Visible=false;
menuitem_file.Enabled=false;
//this.SuspendLayout(); //this.SuspendLayout();
this.ResumeLayout(true); this.ResumeLayout(true);
foreach(Control c in this.Controls) foreach(Control c in this.Controls)
...@@ -208,16 +208,14 @@ void SetCDB(string cdb) ...@@ -208,16 +208,14 @@ void SetCDB(string cdb)
void InitPath(string datapath) void InitPath(string datapath)
{ {
this.datapath=datapath; this.datapath=datapath;
confrule=Path.Combine(datapath, "card-rule.txt");
confattribute=Path.Combine(datapath, "card-attribute.txt");
confrace=Path.Combine(datapath, "card-race.txt");
conflevel=Path.Combine(datapath, "card-level.txt");
confsetname=Path.Combine(datapath, "card-setname.txt");
conftype=Path.Combine(datapath, "card-type.txt");
confcategory=Path.Combine(datapath, "card-category.txt");
confcover= Path.Combine(datapath, "cover.jpg"); confcover= Path.Combine(datapath, "cover.jpg");
IMAGEPATH=Path.Combine(Application.StartupPath,"Images"); IMAGEPATH=Path.Combine(Application.StartupPath,"Images");
if(File.Exists(confcover))
m_cover=Image.FromFile(confcover);
else
m_cover=null;
} }
//保存dic //保存dic
...@@ -236,31 +234,29 @@ void SaveDic(string file, Dictionary<long, string> dic) ...@@ -236,31 +234,29 @@ void SaveDic(string file, Dictionary<long, string> dic)
} }
//初始化游戏数据 //初始化游戏数据
public void InitGameData() public void InitGameData(DataConfig dataconfig)
{ {
//初始化 //初始化
dicCardRules=InitComboBox(cb_cardrule,confrule); this.datacfg=dataconfig.Clone();
dicCardAttributes=InitComboBox(cb_cardattribute,confattribute); InitControl();
dicCardRaces=InitComboBox(cb_cardrace, confrace); }
dicCardLevels=InitComboBox(cb_cardlevel, conflevel); void InitControl()
dicSetnames=DataManager.Read(confsetname); {
InitComboBox(cb_cardrace, datacfg.dicCardRaces);
InitComboBox(cb_cardattribute, datacfg.dicCardAttributes);
InitComboBox(cb_cardrule, datacfg.dicCardRules);
InitComboBox(cb_cardlevel, datacfg.dicCardLevels);
//card types
InitCheckPanel(pl_cardtype, datacfg.dicCardTypes);
//card categorys
InitCheckPanel(pl_category, datacfg.dicCardcategorys);
//setname //setname
string[] setnames=DataManager.GetValues(dicSetnames); string[] setnames=DataManager.GetValues(datacfg.dicSetnames);
cb_setname1.Items.AddRange(setnames); cb_setname1.Items.AddRange(setnames);
cb_setname2.Items.AddRange(setnames); cb_setname2.Items.AddRange(setnames);
cb_setname3.Items.AddRange(setnames); cb_setname3.Items.AddRange(setnames);
cb_setname4.Items.AddRange(setnames); cb_setname4.Items.AddRange(setnames);
//card types
dicCardTypes=DataManager.Read(conftype);
InitCheckPanel(pl_cardtype, dicCardTypes);
//card categorys
dicCardcategorys=DataManager.Read(confcategory);
InitCheckPanel(pl_category, dicCardcategorys);
// //
if(File.Exists(confcover))
m_cover=Image.FromFile(confcover);
else
m_cover=null;
} }
//初始化FlowLayoutPanel //初始化FlowLayoutPanel
...@@ -289,13 +285,11 @@ void PanelOnCheckClick(object sender, EventArgs e) ...@@ -289,13 +285,11 @@ void PanelOnCheckClick(object sender, EventArgs e)
} }
//初始化ComboBox //初始化ComboBox
Dictionary<long, string> InitComboBox(ComboBox cb, string file) void InitComboBox(ComboBox cb, Dictionary<long, string> tempdic)
{ {
Dictionary<long, string> tempdic=DataManager.Read(file);
cb.Items.Clear(); cb.Items.Clear();
cb.Items.AddRange(DataManager.GetValues(tempdic)); cb.Items.AddRange(DataManager.GetValues(tempdic));
cb.SelectedIndex=0; cb.SelectedIndex=0;
return tempdic;
} }
//计算list最大行数 //计算list最大行数
...@@ -335,10 +329,10 @@ void SetCard(Card c) ...@@ -335,10 +329,10 @@ void SetCard(Card c)
lb_scripttext.Items.AddRange(c.str); lb_scripttext.Items.AddRange(c.str);
tb_edittext.Text=""; tb_edittext.Text="";
SetSelect(dicCardRules,cb_cardrule,(long)c.ot); SetSelect(datacfg.dicCardRules,cb_cardrule,(long)c.ot);
SetSelect(dicCardAttributes,cb_cardattribute,(long)c.attribute); SetSelect(datacfg.dicCardAttributes,cb_cardattribute,(long)c.attribute);
SetSelect(dicCardLevels,cb_cardlevel,(long)(c.level&0xff)); SetSelect(datacfg.dicCardLevels,cb_cardlevel,(long)(c.level&0xff));
SetSelect(dicCardRaces,cb_cardrace,c.race); SetSelect(datacfg.dicCardRaces,cb_cardrace,c.race);
long sc1=c.setcode&0xffff; long sc1=c.setcode&0xffff;
long sc2=(c.setcode>>0x10)&0xffff; long sc2=(c.setcode>>0x10)&0xffff;
...@@ -348,10 +342,10 @@ void SetCard(Card c) ...@@ -348,10 +342,10 @@ void SetCard(Card c)
tb_setcode2.Text=sc2.ToString("x"); tb_setcode2.Text=sc2.ToString("x");
tb_setcode3.Text=sc3.ToString("x"); tb_setcode3.Text=sc3.ToString("x");
tb_setcode4.Text=sc4.ToString("x"); tb_setcode4.Text=sc4.ToString("x");
SetSelect(dicSetnames, cb_setname1, sc1); SetSelect(datacfg.dicSetnames, cb_setname1, sc1);
SetSelect(dicSetnames, cb_setname2, sc2); SetSelect(datacfg.dicSetnames, cb_setname2, sc2);
SetSelect(dicSetnames, cb_setname3, sc3); SetSelect(datacfg.dicSetnames, cb_setname3, sc3);
SetSelect(dicSetnames, cb_setname4, sc4); SetSelect(datacfg.dicSetnames, cb_setname4, sc4);
SetCheck(pl_cardtype,c.type); SetCheck(pl_cardtype,c.type);
SetCheck(pl_category,c.category); SetCheck(pl_category,c.category);
...@@ -437,10 +431,10 @@ Card GetCard() ...@@ -437,10 +431,10 @@ Card GetCard()
c.desc=tb_cardtext.Text; c.desc=tb_cardtext.Text;
Array.Copy(strs,c.str, c.str.Length); Array.Copy(strs,c.str, c.str.Length);
int.TryParse(GetSelect(dicCardRules,cb_cardrule),out c.ot); int.TryParse(GetSelect(datacfg.dicCardRules,cb_cardrule),out c.ot);
int.TryParse(GetSelect(dicCardAttributes,cb_cardattribute),out c.attribute); int.TryParse(GetSelect(datacfg.dicCardAttributes,cb_cardattribute),out c.attribute);
long.TryParse(GetSelect(dicCardLevels,cb_cardlevel),out c.level); long.TryParse(GetSelect(datacfg.dicCardLevels,cb_cardlevel),out c.level);
long.TryParse(GetSelect(dicCardRaces,cb_cardrace),out c.race); long.TryParse(GetSelect(datacfg.dicCardRaces,cb_cardrace),out c.race);
int.TryParse(tb_setcode1.Text, NumberStyles.HexNumber,null,out temp); int.TryParse(tb_setcode1.Text, NumberStyles.HexNumber,null,out temp);
c.setcode =temp; c.setcode =temp;
...@@ -624,6 +618,8 @@ void Tb_pageKeyPress(object sender, KeyPressEventArgs e) ...@@ -624,6 +618,8 @@ void Tb_pageKeyPress(object sender, KeyPressEventArgs e)
//检查是否打开数据库 //检查是否打开数据库
public bool Check() public bool Check()
{ {
if(datacfg == null)
return false;
if(File.Exists(nowCdbFile)) if(File.Exists(nowCdbFile))
return true; return true;
else else
...@@ -1141,7 +1137,7 @@ void Menuitem_readimagesClick(object sender, EventArgs e) ...@@ -1141,7 +1137,7 @@ void Menuitem_readimagesClick(object sender, EventArgs e)
//关闭 //关闭
void Menuitem_quitClick(object sender, EventArgs e) void Menuitem_quitClick(object sender, EventArgs e)
{ {
Application.Exit(); this.Close();
} }
#endregion #endregion
...@@ -1222,7 +1218,7 @@ void Cb_setname2SelectedIndexChanged(object sender, EventArgs e) ...@@ -1222,7 +1218,7 @@ void Cb_setname2SelectedIndexChanged(object sender, EventArgs e)
if(setcodeIsedit2) if(setcodeIsedit2)
return; return;
setcodeIsedit2=true; setcodeIsedit2=true;
tb_setcode2.Text=GetSelectHex(dicSetnames, cb_setname2); tb_setcode2.Text=GetSelectHex(datacfg.dicSetnames, cb_setname2);
setcodeIsedit2=false; setcodeIsedit2=false;
} }
...@@ -1231,7 +1227,7 @@ void Cb_setname1SelectedIndexChanged(object sender, EventArgs e) ...@@ -1231,7 +1227,7 @@ void Cb_setname1SelectedIndexChanged(object sender, EventArgs e)
if(setcodeIsedit1) if(setcodeIsedit1)
return; return;
setcodeIsedit1=true; setcodeIsedit1=true;
tb_setcode1.Text=GetSelectHex(dicSetnames, cb_setname1); tb_setcode1.Text=GetSelectHex(datacfg.dicSetnames, cb_setname1);
setcodeIsedit1=false; setcodeIsedit1=false;
} }
...@@ -1240,7 +1236,7 @@ void Cb_setname3SelectedIndexChanged(object sender, EventArgs e) ...@@ -1240,7 +1236,7 @@ void Cb_setname3SelectedIndexChanged(object sender, EventArgs e)
if(setcodeIsedit3) if(setcodeIsedit3)
return; return;
setcodeIsedit3=true; setcodeIsedit3=true;
tb_setcode3.Text=GetSelectHex(dicSetnames, cb_setname3); tb_setcode3.Text=GetSelectHex(datacfg.dicSetnames, cb_setname3);
setcodeIsedit3=false; setcodeIsedit3=false;
} }
...@@ -1249,7 +1245,7 @@ void Cb_setname4SelectedIndexChanged(object sender, EventArgs e) ...@@ -1249,7 +1245,7 @@ void Cb_setname4SelectedIndexChanged(object sender, EventArgs e)
if(setcodeIsedit4) if(setcodeIsedit4)
return; return;
setcodeIsedit4=true; setcodeIsedit4=true;
tb_setcode4.Text=GetSelectHex(dicSetnames, cb_setname4); tb_setcode4.Text=GetSelectHex(datacfg.dicSetnames, cb_setname4);
setcodeIsedit4=false; setcodeIsedit4=false;
} }
...@@ -1260,7 +1256,7 @@ void Tb_setcode4TextChanged(object sender, EventArgs e) ...@@ -1260,7 +1256,7 @@ void Tb_setcode4TextChanged(object sender, EventArgs e)
setcodeIsedit4=true; setcodeIsedit4=true;
long temp; long temp;
long.TryParse(tb_setcode4.Text,NumberStyles.HexNumber, null ,out temp); long.TryParse(tb_setcode4.Text,NumberStyles.HexNumber, null ,out temp);
SetSelect(dicSetnames, cb_setname4, temp); SetSelect(datacfg.dicSetnames, cb_setname4, temp);
setcodeIsedit4=false; setcodeIsedit4=false;
} }
...@@ -1271,7 +1267,7 @@ void Tb_setcode3TextChanged(object sender, EventArgs e) ...@@ -1271,7 +1267,7 @@ void Tb_setcode3TextChanged(object sender, EventArgs e)
setcodeIsedit3=true; setcodeIsedit3=true;
long temp; long temp;
long.TryParse(tb_setcode3.Text,NumberStyles.HexNumber, null ,out temp); long.TryParse(tb_setcode3.Text,NumberStyles.HexNumber, null ,out temp);
SetSelect(dicSetnames, cb_setname3, temp); SetSelect(datacfg.dicSetnames, cb_setname3, temp);
setcodeIsedit3=false; setcodeIsedit3=false;
} }
...@@ -1282,7 +1278,7 @@ void Tb_setcode2TextChanged(object sender, EventArgs e) ...@@ -1282,7 +1278,7 @@ void Tb_setcode2TextChanged(object sender, EventArgs e)
setcodeIsedit2=true; setcodeIsedit2=true;
long temp; long temp;
long.TryParse(tb_setcode2.Text,NumberStyles.HexNumber, null ,out temp); long.TryParse(tb_setcode2.Text,NumberStyles.HexNumber, null ,out temp);
SetSelect(dicSetnames, cb_setname2, temp); SetSelect(datacfg.dicSetnames, cb_setname2, temp);
setcodeIsedit2=false; setcodeIsedit2=false;
} }
...@@ -1293,7 +1289,7 @@ void Tb_setcode1TextChanged(object sender, EventArgs e) ...@@ -1293,7 +1289,7 @@ void Tb_setcode1TextChanged(object sender, EventArgs e)
setcodeIsedit1=true; setcodeIsedit1=true;
long temp; long temp;
long.TryParse(tb_setcode1.Text,NumberStyles.HexNumber, null ,out temp); long.TryParse(tb_setcode1.Text,NumberStyles.HexNumber, null ,out temp);
SetSelect(dicSetnames, cb_setname1, temp); SetSelect(datacfg.dicSetnames, cb_setname1, temp);
setcodeIsedit1=false; setcodeIsedit1=false;
} }
#endregion #endregion
......
...@@ -43,6 +43,9 @@ ...@@ -43,6 +43,9 @@
<BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath> <BaseIntermediateOutputPath>obj\</BaseIntermediateOutputPath>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Reference Include="FastColoredTextBox">
<HintPath>DLL\FastColoredTextBox.dll</HintPath>
</Reference>
<Reference Include="Microsoft.VisualBasic" /> <Reference Include="Microsoft.VisualBasic" />
<Reference Include="System" /> <Reference Include="System" />
<Reference Include="System.Configuration" /> <Reference Include="System.Configuration" />
...@@ -58,6 +61,10 @@ ...@@ -58,6 +61,10 @@
</Reference> </Reference>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="CodeEditForm.cs" />
<Compile Include="CodeEditForm.Designer.cs">
<DependentUpon>CodeEditForm.cs</DependentUpon>
</Compile>
<Compile Include="Common\CheckUpdate.cs" /> <Compile Include="Common\CheckUpdate.cs" />
<Compile Include="Common\DoubleContorl.cs" /> <Compile Include="Common\DoubleContorl.cs" />
<Compile Include="Common\MyBitmap.cs" /> <Compile Include="Common\MyBitmap.cs" />
...@@ -67,6 +74,7 @@ ...@@ -67,6 +74,7 @@
<Compile Include="Core\CardRace.cs" /> <Compile Include="Core\CardRace.cs" />
<Compile Include="Core\CardType.cs" /> <Compile Include="Core\CardType.cs" />
<Compile Include="Core\DataBase.cs" /> <Compile Include="Core\DataBase.cs" />
<Compile Include="Core\DataConfig.cs" />
<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" />
...@@ -88,6 +96,9 @@ ...@@ -88,6 +96,9 @@
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<EmbeddedResource Include="CodeEditForm.resx">
<DependentUpon>CodeEditForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="DataEditForm.resx"> <EmbeddedResource Include="DataEditForm.resx">
<DependentUpon>DataEditForm.cs</DependentUpon> <DependentUpon>DataEditForm.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
...@@ -129,9 +140,15 @@ ...@@ -129,9 +140,15 @@
<None Include="chinese\card-type.txt"> <None Include="chinese\card-type.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="chinese\constant.lua">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="chinese\cover.jpg"> <None Include="chinese\cover.jpg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="chinese\language-codeeditor.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="chinese\language-dataeditor.txt"> <None Include="chinese\language-dataeditor.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
...@@ -156,6 +173,9 @@ ...@@ -156,6 +173,9 @@
<None Include="chinese\mse-spelltrap.txt"> <None Include="chinese\mse-spelltrap.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="chinese\_functions.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>
...@@ -177,9 +197,15 @@ ...@@ -177,9 +197,15 @@
<None Include="english\card-type.txt"> <None Include="english\card-type.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="english\constant.lua">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="english\cover.jpg"> <None Include="english\cover.jpg">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="english\language-codeeditor.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="english\language-dataeditor.txt"> <None Include="english\language-dataeditor.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
...@@ -204,6 +230,9 @@ ...@@ -204,6 +230,9 @@
<None Include="english\mse-spelltrap.txt"> <None Include="english\mse-spelltrap.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
<None Include="english\_functions.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Magic Set Editor 2\download.bat"> <None Include="Magic Set Editor 2\download.bat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None> </None>
......
...@@ -35,21 +35,21 @@ protected override void Dispose(bool disposing) ...@@ -35,21 +35,21 @@ protected override void Dispose(bool disposing)
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
WeifenLuo.WinFormsUI.Docking.DockPanelSkin dockPanelSkin1 = new WeifenLuo.WinFormsUI.Docking.DockPanelSkin(); WeifenLuo.WinFormsUI.Docking.DockPanelSkin dockPanelSkin2 = new WeifenLuo.WinFormsUI.Docking.DockPanelSkin();
WeifenLuo.WinFormsUI.Docking.AutoHideStripSkin autoHideStripSkin1 = new WeifenLuo.WinFormsUI.Docking.AutoHideStripSkin(); WeifenLuo.WinFormsUI.Docking.AutoHideStripSkin autoHideStripSkin2 = new WeifenLuo.WinFormsUI.Docking.AutoHideStripSkin();
WeifenLuo.WinFormsUI.Docking.DockPanelGradient dockPanelGradient1 = new WeifenLuo.WinFormsUI.Docking.DockPanelGradient(); WeifenLuo.WinFormsUI.Docking.DockPanelGradient dockPanelGradient4 = new WeifenLuo.WinFormsUI.Docking.DockPanelGradient();
WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient1 = new WeifenLuo.WinFormsUI.Docking.TabGradient(); WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient8 = new WeifenLuo.WinFormsUI.Docking.TabGradient();
WeifenLuo.WinFormsUI.Docking.DockPaneStripSkin dockPaneStripSkin1 = new WeifenLuo.WinFormsUI.Docking.DockPaneStripSkin(); WeifenLuo.WinFormsUI.Docking.DockPaneStripSkin dockPaneStripSkin2 = new WeifenLuo.WinFormsUI.Docking.DockPaneStripSkin();
WeifenLuo.WinFormsUI.Docking.DockPaneStripGradient dockPaneStripGradient1 = new WeifenLuo.WinFormsUI.Docking.DockPaneStripGradient(); WeifenLuo.WinFormsUI.Docking.DockPaneStripGradient dockPaneStripGradient2 = new WeifenLuo.WinFormsUI.Docking.DockPaneStripGradient();
WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient2 = new WeifenLuo.WinFormsUI.Docking.TabGradient(); WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient9 = new WeifenLuo.WinFormsUI.Docking.TabGradient();
WeifenLuo.WinFormsUI.Docking.DockPanelGradient dockPanelGradient2 = new WeifenLuo.WinFormsUI.Docking.DockPanelGradient(); WeifenLuo.WinFormsUI.Docking.DockPanelGradient dockPanelGradient5 = new WeifenLuo.WinFormsUI.Docking.DockPanelGradient();
WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient3 = new WeifenLuo.WinFormsUI.Docking.TabGradient(); WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient10 = new WeifenLuo.WinFormsUI.Docking.TabGradient();
WeifenLuo.WinFormsUI.Docking.DockPaneStripToolWindowGradient dockPaneStripToolWindowGradient1 = new WeifenLuo.WinFormsUI.Docking.DockPaneStripToolWindowGradient(); WeifenLuo.WinFormsUI.Docking.DockPaneStripToolWindowGradient dockPaneStripToolWindowGradient2 = new WeifenLuo.WinFormsUI.Docking.DockPaneStripToolWindowGradient();
WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient4 = new WeifenLuo.WinFormsUI.Docking.TabGradient(); WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient11 = new WeifenLuo.WinFormsUI.Docking.TabGradient();
WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient5 = new WeifenLuo.WinFormsUI.Docking.TabGradient(); WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient12 = new WeifenLuo.WinFormsUI.Docking.TabGradient();
WeifenLuo.WinFormsUI.Docking.DockPanelGradient dockPanelGradient3 = new WeifenLuo.WinFormsUI.Docking.DockPanelGradient(); WeifenLuo.WinFormsUI.Docking.DockPanelGradient dockPanelGradient6 = new WeifenLuo.WinFormsUI.Docking.DockPanelGradient();
WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient6 = new WeifenLuo.WinFormsUI.Docking.TabGradient(); WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient13 = new WeifenLuo.WinFormsUI.Docking.TabGradient();
WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient7 = new WeifenLuo.WinFormsUI.Docking.TabGradient(); WeifenLuo.WinFormsUI.Docking.TabGradient tabGradient14 = new WeifenLuo.WinFormsUI.Docking.TabGradient();
this.dockPanel1 = new WeifenLuo.WinFormsUI.Docking.DockPanel(); this.dockPanel1 = new WeifenLuo.WinFormsUI.Docking.DockPanel();
this.menuStrip1 = new System.Windows.Forms.MenuStrip(); this.menuStrip1 = new System.Windows.Forms.MenuStrip();
this.menuitem_file = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_file = new System.Windows.Forms.ToolStripMenuItem();
...@@ -57,11 +57,14 @@ private void InitializeComponent() ...@@ -57,11 +57,14 @@ private void InitializeComponent()
this.menuitem_new = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_new = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.menuitem_copyselect = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_copyselect = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_copyall = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_pastecards = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_pastecards = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator4 = new System.Windows.Forms.ToolStripSeparator();
this.menuitem_comp1 = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_comp1 = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_comp2 = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_comp2 = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.menuitem_history = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
this.menuitem_quit = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_quit = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_windows = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_windows = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_dataeditor = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_dataeditor = new System.Windows.Forms.ToolStripMenuItem();
...@@ -69,9 +72,7 @@ private void InitializeComponent() ...@@ -69,9 +72,7 @@ private void InitializeComponent()
this.menuitem_close = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_close = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_closeother = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_closeother = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_closeall = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_closeall = new System.Windows.Forms.ToolStripMenuItem();
this.menuitem_history = new System.Windows.Forms.ToolStripMenuItem(); this.menuitem_codeeditor = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator5 = new System.Windows.Forms.ToolStripSeparator();
this.menuitem_copyall = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout(); this.menuStrip1.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
...@@ -82,52 +83,52 @@ private void InitializeComponent() ...@@ -82,52 +83,52 @@ private void InitializeComponent()
this.dockPanel1.Margin = new System.Windows.Forms.Padding(0); this.dockPanel1.Margin = new System.Windows.Forms.Padding(0);
this.dockPanel1.Name = "dockPanel1"; this.dockPanel1.Name = "dockPanel1";
this.dockPanel1.Size = new System.Drawing.Size(868, 572); this.dockPanel1.Size = new System.Drawing.Size(868, 572);
dockPanelGradient1.EndColor = System.Drawing.SystemColors.ControlLight; dockPanelGradient4.EndColor = System.Drawing.SystemColors.ControlLight;
dockPanelGradient1.StartColor = System.Drawing.SystemColors.ControlLight; dockPanelGradient4.StartColor = System.Drawing.SystemColors.ControlLight;
autoHideStripSkin1.DockStripGradient = dockPanelGradient1; autoHideStripSkin2.DockStripGradient = dockPanelGradient4;
tabGradient1.EndColor = System.Drawing.SystemColors.Control; tabGradient8.EndColor = System.Drawing.SystemColors.Control;
tabGradient1.StartColor = System.Drawing.SystemColors.Control; tabGradient8.StartColor = System.Drawing.SystemColors.Control;
tabGradient1.TextColor = System.Drawing.SystemColors.ControlDarkDark; tabGradient8.TextColor = System.Drawing.SystemColors.ControlDarkDark;
autoHideStripSkin1.TabGradient = tabGradient1; autoHideStripSkin2.TabGradient = tabGradient8;
autoHideStripSkin1.TextFont = new System.Drawing.Font("微软雅黑", 9F); autoHideStripSkin2.TextFont = new System.Drawing.Font("微软雅黑", 9F);
dockPanelSkin1.AutoHideStripSkin = autoHideStripSkin1; dockPanelSkin2.AutoHideStripSkin = autoHideStripSkin2;
tabGradient2.EndColor = System.Drawing.SystemColors.ControlLightLight; tabGradient9.EndColor = System.Drawing.SystemColors.ControlLightLight;
tabGradient2.StartColor = System.Drawing.SystemColors.ControlLightLight; tabGradient9.StartColor = System.Drawing.SystemColors.ControlLightLight;
tabGradient2.TextColor = System.Drawing.SystemColors.ControlText; tabGradient9.TextColor = System.Drawing.SystemColors.ControlText;
dockPaneStripGradient1.ActiveTabGradient = tabGradient2; dockPaneStripGradient2.ActiveTabGradient = tabGradient9;
dockPanelGradient2.EndColor = System.Drawing.SystemColors.Control; dockPanelGradient5.EndColor = System.Drawing.SystemColors.Control;
dockPanelGradient2.StartColor = System.Drawing.SystemColors.Control; dockPanelGradient5.StartColor = System.Drawing.SystemColors.Control;
dockPaneStripGradient1.DockStripGradient = dockPanelGradient2; dockPaneStripGradient2.DockStripGradient = dockPanelGradient5;
tabGradient3.EndColor = System.Drawing.SystemColors.ControlLight; tabGradient10.EndColor = System.Drawing.SystemColors.ControlLight;
tabGradient3.StartColor = System.Drawing.SystemColors.ControlLight; tabGradient10.StartColor = System.Drawing.SystemColors.ControlLight;
tabGradient3.TextColor = System.Drawing.SystemColors.ControlText; tabGradient10.TextColor = System.Drawing.SystemColors.ControlText;
dockPaneStripGradient1.InactiveTabGradient = tabGradient3; dockPaneStripGradient2.InactiveTabGradient = tabGradient10;
dockPaneStripSkin1.DocumentGradient = dockPaneStripGradient1; dockPaneStripSkin2.DocumentGradient = dockPaneStripGradient2;
dockPaneStripSkin1.TextFont = new System.Drawing.Font("微软雅黑", 9F); dockPaneStripSkin2.TextFont = new System.Drawing.Font("微软雅黑", 9F);
tabGradient4.EndColor = System.Drawing.SystemColors.ActiveCaption; tabGradient11.EndColor = System.Drawing.SystemColors.ActiveCaption;
tabGradient4.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; tabGradient11.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
tabGradient4.StartColor = System.Drawing.SystemColors.GradientActiveCaption; tabGradient11.StartColor = System.Drawing.SystemColors.GradientActiveCaption;
tabGradient4.TextColor = System.Drawing.SystemColors.ActiveCaptionText; tabGradient11.TextColor = System.Drawing.SystemColors.ActiveCaptionText;
dockPaneStripToolWindowGradient1.ActiveCaptionGradient = tabGradient4; dockPaneStripToolWindowGradient2.ActiveCaptionGradient = tabGradient11;
tabGradient5.EndColor = System.Drawing.SystemColors.Control; tabGradient12.EndColor = System.Drawing.SystemColors.Control;
tabGradient5.StartColor = System.Drawing.SystemColors.Control; tabGradient12.StartColor = System.Drawing.SystemColors.Control;
tabGradient5.TextColor = System.Drawing.SystemColors.ControlText; tabGradient12.TextColor = System.Drawing.SystemColors.ControlText;
dockPaneStripToolWindowGradient1.ActiveTabGradient = tabGradient5; dockPaneStripToolWindowGradient2.ActiveTabGradient = tabGradient12;
dockPanelGradient3.EndColor = System.Drawing.SystemColors.ControlLight; dockPanelGradient6.EndColor = System.Drawing.SystemColors.ControlLight;
dockPanelGradient3.StartColor = System.Drawing.SystemColors.ControlLight; dockPanelGradient6.StartColor = System.Drawing.SystemColors.ControlLight;
dockPaneStripToolWindowGradient1.DockStripGradient = dockPanelGradient3; dockPaneStripToolWindowGradient2.DockStripGradient = dockPanelGradient6;
tabGradient6.EndColor = System.Drawing.SystemColors.InactiveCaption; tabGradient13.EndColor = System.Drawing.SystemColors.InactiveCaption;
tabGradient6.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical; tabGradient13.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical;
tabGradient6.StartColor = System.Drawing.SystemColors.GradientInactiveCaption; tabGradient13.StartColor = System.Drawing.SystemColors.GradientInactiveCaption;
tabGradient6.TextColor = System.Drawing.SystemColors.InactiveCaptionText; tabGradient13.TextColor = System.Drawing.SystemColors.InactiveCaptionText;
dockPaneStripToolWindowGradient1.InactiveCaptionGradient = tabGradient6; dockPaneStripToolWindowGradient2.InactiveCaptionGradient = tabGradient13;
tabGradient7.EndColor = System.Drawing.Color.Transparent; tabGradient14.EndColor = System.Drawing.Color.Transparent;
tabGradient7.StartColor = System.Drawing.Color.Transparent; tabGradient14.StartColor = System.Drawing.Color.Transparent;
tabGradient7.TextColor = System.Drawing.SystemColors.ControlDarkDark; tabGradient14.TextColor = System.Drawing.SystemColors.ControlDarkDark;
dockPaneStripToolWindowGradient1.InactiveTabGradient = tabGradient7; dockPaneStripToolWindowGradient2.InactiveTabGradient = tabGradient14;
dockPaneStripSkin1.ToolWindowGradient = dockPaneStripToolWindowGradient1; dockPaneStripSkin2.ToolWindowGradient = dockPaneStripToolWindowGradient2;
dockPanelSkin1.DockPaneStripSkin = dockPaneStripSkin1; dockPanelSkin2.DockPaneStripSkin = dockPaneStripSkin2;
this.dockPanel1.Skin = dockPanelSkin1; this.dockPanel1.Skin = dockPanelSkin2;
this.dockPanel1.TabIndex = 0; this.dockPanel1.TabIndex = 0;
// //
// menuStrip1 // menuStrip1
...@@ -192,6 +193,13 @@ private void InitializeComponent() ...@@ -192,6 +193,13 @@ private void InitializeComponent()
this.menuitem_copyselect.Text = "Copy Select Cards"; this.menuitem_copyselect.Text = "Copy Select Cards";
this.menuitem_copyselect.Click += new System.EventHandler(this.Menuitem_copyselecttoClick); this.menuitem_copyselect.Click += new System.EventHandler(this.Menuitem_copyselecttoClick);
// //
// menuitem_copyall
//
this.menuitem_copyall.Name = "menuitem_copyall";
this.menuitem_copyall.Size = new System.Drawing.Size(261, 22);
this.menuitem_copyall.Text = "Copy All Cards";
this.menuitem_copyall.Click += new System.EventHandler(this.Menuitem_copyallClick);
//
// menuitem_pastecards // menuitem_pastecards
// //
this.menuitem_pastecards.Name = "menuitem_pastecards"; this.menuitem_pastecards.Name = "menuitem_pastecards";
...@@ -226,6 +234,17 @@ private void InitializeComponent() ...@@ -226,6 +234,17 @@ private void InitializeComponent()
this.toolStripSeparator1.Name = "toolStripSeparator1"; this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(258, 6); this.toolStripSeparator1.Size = new System.Drawing.Size(258, 6);
// //
// menuitem_history
//
this.menuitem_history.Name = "menuitem_history";
this.menuitem_history.Size = new System.Drawing.Size(261, 22);
this.menuitem_history.Text = "History(&H)";
//
// toolStripSeparator5
//
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(258, 6);
//
// menuitem_quit // menuitem_quit
// //
this.menuitem_quit.Name = "menuitem_quit"; this.menuitem_quit.Name = "menuitem_quit";
...@@ -237,6 +256,7 @@ private void InitializeComponent() ...@@ -237,6 +256,7 @@ private void InitializeComponent()
// //
this.menuitem_windows.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.menuitem_windows.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.menuitem_dataeditor, this.menuitem_dataeditor,
this.menuitem_codeeditor,
this.toolStripSeparator2, this.toolStripSeparator2,
this.menuitem_close, this.menuitem_close,
this.menuitem_closeother, this.menuitem_closeother,
...@@ -278,23 +298,12 @@ private void InitializeComponent() ...@@ -278,23 +298,12 @@ private void InitializeComponent()
this.menuitem_closeall.Text = "Close All"; this.menuitem_closeall.Text = "Close All";
this.menuitem_closeall.Click += new System.EventHandler(this.CloseAllToolStripMenuItemClick); this.menuitem_closeall.Click += new System.EventHandler(this.CloseAllToolStripMenuItemClick);
// //
// menuitem_history // menuitem_codeeditor
//
this.menuitem_history.Name = "menuitem_history";
this.menuitem_history.Size = new System.Drawing.Size(261, 22);
this.menuitem_history.Text = "History(&H)";
//
// toolStripSeparator5
//
this.toolStripSeparator5.Name = "toolStripSeparator5";
this.toolStripSeparator5.Size = new System.Drawing.Size(258, 6);
//
// menuitem_copyall
// //
this.menuitem_copyall.Name = "menuitem_copyall"; this.menuitem_codeeditor.Name = "menuitem_codeeditor";
this.menuitem_copyall.Size = new System.Drawing.Size(261, 22); this.menuitem_codeeditor.Size = new System.Drawing.Size(152, 22);
this.menuitem_copyall.Text = "Copy All Cards"; this.menuitem_codeeditor.Text = "CodeEditor";
this.menuitem_copyall.Click += new System.EventHandler(this.Menuitem_copyallClick); this.menuitem_codeeditor.Click += new System.EventHandler(this.Menuitem_codeeditorClick);
// //
// MainForm // MainForm
// //
...@@ -315,6 +324,7 @@ private void InitializeComponent() ...@@ -315,6 +324,7 @@ private void InitializeComponent()
this.ResumeLayout(false); this.ResumeLayout(false);
this.PerformLayout(); this.PerformLayout();
} }
private System.Windows.Forms.ToolStripMenuItem menuitem_codeeditor;
private System.Windows.Forms.ToolStripMenuItem menuitem_copyall; private System.Windows.Forms.ToolStripMenuItem menuitem_copyall;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator5; private System.Windows.Forms.ToolStripSeparator toolStripSeparator5;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1; private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
......
...@@ -13,8 +13,10 @@ ...@@ -13,8 +13,10 @@
using System.Configuration; using System.Configuration;
using WeifenLuo.WinFormsUI.Docking; using WeifenLuo.WinFormsUI.Docking;
using FastColoredTextBoxNS;
using DataEditorX.Language; using DataEditorX.Language;
using DataEditorX.Core; using DataEditorX.Core;
using System.Text;
namespace DataEditorX namespace DataEditorX
{ {
...@@ -24,25 +26,39 @@ namespace DataEditorX ...@@ -24,25 +26,39 @@ namespace DataEditorX
public partial class MainForm : Form public partial class MainForm : Form
{ {
#region member #region member
bool isInitAuto=false;
bool isInitDataEditor=false;
public const int CLOSE_ONE=1; public const int CLOSE_ONE=1;
public const int CLOSE_OTHER=2; public const int CLOSE_OTHER=2;
public const int CLOSE_ALL=3; public const int CLOSE_ALL=3;
public const int WM_OPEN=0x0401; public const int WM_OPEN=0x0401;
public const int WM_OPEN_SCRIPT=0x0402;
public const string TMPFILE="open.tmp"; public const string TMPFILE="open.tmp";
public const int MAX_HISTORY=0x20; public const int MAX_HISTORY=0x20;
string cdbHistoryFile; string cdbHistoryFile;
List<string> cdblist; List<string> cdblist;
string datapath; string datapath;
string conflang,conflang_de,confmsg; string conflang,conflang_de,conflang_ce,confmsg;
string funtxt,conlua;
DataEditForm compare1,compare2; DataEditForm compare1,compare2;
Card[] tCards; Card[] tCards;
Dictionary<DataEditForm,string> list; Dictionary<DataEditForm,string> list;
//
DataConfig datacfg;
//函数提示
Dictionary<string,string> tooltipDic;
//自动完成
List<AutocompleteItem> funList;
List<AutocompleteItem> conList;
#endregion #endregion
#region init #region init
public MainForm(string datapath, string file) public MainForm(string datapath, string file)
{ {
Init(datapath); Init(datapath);
if(file.EndsWith("lua",StringComparison.OrdinalIgnoreCase))
OpenScript(file);
else
Open(file); Open(file);
} }
public MainForm(string datapath) public MainForm(string datapath)
...@@ -53,20 +69,33 @@ void Init(string datapath) ...@@ -53,20 +69,33 @@ void Init(string datapath)
{ {
tCards=null; tCards=null;
cdblist=new List<string>(); cdblist=new List<string>();
tooltipDic=new Dictionary<string, string>();
funList=new List<AutocompleteItem>();
conList=new List<AutocompleteItem>();
list=new Dictionary<DataEditForm,string>(); list=new Dictionary<DataEditForm,string>();
this.datapath=datapath; this.datapath=datapath;
datacfg=new DataConfig(datapath);
cdbHistoryFile =Path.Combine(datapath, "history.txt"); cdbHistoryFile =Path.Combine(datapath, "history.txt");
conflang = Path.Combine(datapath, "language-mainform.txt"); conflang = Path.Combine(datapath, "language-mainform.txt");
conflang_de = Path.Combine(datapath, "language-dataeditor.txt"); conflang_de = Path.Combine(datapath, "language-dataeditor.txt");
conflang_ce = Path.Combine(datapath, "language-codeeditor.txt");
confmsg = Path.Combine(datapath, "message.txt"); confmsg = Path.Combine(datapath, "message.txt");
funtxt = Path.Combine(datapath, "_functions.txt");
conlua = Path.Combine(datapath, "constant.lua");
InitializeComponent(); InitializeComponent();
LANG.InitForm(this, conflang); LANG.InitForm(this, conflang);
LANG.LoadMessage(confmsg); LANG.LoadMessage(confmsg);
LANG.SetLanguage(this); LANG.SetLanguage(this);
} }
#endregion #endregion
public static bool isScript(string file)
{
if(file.EndsWith("lua",StringComparison.OrdinalIgnoreCase))
return true;
return false;
}
#region History #region History
void ReadHistory() void ReadHistory()
{ {
...@@ -135,23 +164,36 @@ void MenuHistoryClear_Click(object sender, EventArgs e) ...@@ -135,23 +164,36 @@ void MenuHistoryClear_Click(object sender, EventArgs e)
void MenuHistoryItem_Click(object sender, EventArgs e) void MenuHistoryItem_Click(object sender, EventArgs e)
{ {
ToolStripMenuItem tsmi=sender as ToolStripMenuItem; ToolStripMenuItem tsmi=sender as ToolStripMenuItem;
if(tsmi!=null) if(tsmi!=null){
string file=tsmi.Text;
if(MainForm.isScript(file))
OpenScript(file);
else
Open(tsmi.Text); Open(tsmi.Text);
} }
}
#endregion #endregion
#region message #region message
protected override void DefWndProc(ref System.Windows.Forms.Message m) protected override void DefWndProc(ref System.Windows.Forms.Message m)
{ {
string file=null;
switch (m.Msg) switch (m.Msg)
{ {
case MainForm.WM_OPEN://处理消息 case MainForm.WM_OPEN://处理消息
string file=Path.Combine(Application.StartupPath, MainForm.TMPFILE); file=Path.Combine(Application.StartupPath, MainForm.TMPFILE);
if(File.Exists(file)){ if(File.Exists(file)){
Open(File.ReadAllText(file)); Open(File.ReadAllText(file));
File.Delete(file); File.Delete(file);
} }
break; break;
case MainForm.WM_OPEN_SCRIPT:
file=Path.Combine(Application.StartupPath, MainForm.TMPFILE);
if(File.Exists(file)){
OpenScript(File.ReadAllText(file));
File.Delete(file);
}
break;
default: default:
base.DefWndProc(ref m); base.DefWndProc(ref m);
break; break;
...@@ -160,6 +202,19 @@ protected override void DefWndProc(ref System.Windows.Forms.Message m) ...@@ -160,6 +202,19 @@ protected override void DefWndProc(ref System.Windows.Forms.Message m)
#endregion #endregion
#region DataEditor #region DataEditor
public void OpenScript(string file)
{
CodeEditForm cf=new CodeEditForm(file);
LANG.InitForm(cf, conflang_ce);
LANG.SetLanguage(cf);
if(!isInitAuto)
{
isInitAuto=true;
InitCodeEditor(funtxt, conlua);
}
cf.InitTooltip(tooltipDic, funList.ToArray(), conList.ToArray());
cf.Show(dockPanel1, DockState.Document);
}
public void Open(string file) public void Open(string file)
{ {
if(!string.IsNullOrEmpty(file) && File.Exists(file)){ if(!string.IsNullOrEmpty(file) && File.Exists(file)){
...@@ -176,6 +231,9 @@ public void Open(string file) ...@@ -176,6 +231,9 @@ public void Open(string file)
def=new DataEditForm(datapath,file); def=new DataEditForm(datapath,file);
LANG.InitForm(def, conflang_de); LANG.InitForm(def, conflang_de);
LANG.SetLanguage(def); LANG.SetLanguage(def);
if(!isInitDataEditor)
datacfg.Init();
def.InitGameData(datacfg);
def.FormClosed+=new FormClosedEventHandler(def_FormClosed); def.FormClosed+=new FormClosedEventHandler(def_FormClosed);
def.Show(dockPanel1, DockState.Document); def.Show(dockPanel1, DockState.Document);
list.Add(def, ""); list.Add(def, "");
...@@ -288,7 +346,11 @@ void Menuitem_openClick(object sender, EventArgs e) ...@@ -288,7 +346,11 @@ void Menuitem_openClick(object sender, EventArgs e)
dlg.Filter=LANG.GetMsg(LMSG.CdbType); dlg.Filter=LANG.GetMsg(LMSG.CdbType);
if(dlg.ShowDialog()==DialogResult.OK) if(dlg.ShowDialog()==DialogResult.OK)
{ {
Open(dlg.FileName); string file=dlg.FileName;
if(MainForm.isScript(file))
OpenScript(file);
else
Open(file);
} }
} }
} }
...@@ -306,10 +368,16 @@ void Menuitem_newClick(object sender, EventArgs e) ...@@ -306,10 +368,16 @@ void Menuitem_newClick(object sender, EventArgs e)
dlg.Filter=LANG.GetMsg(LMSG.CdbType); dlg.Filter=LANG.GetMsg(LMSG.CdbType);
if(dlg.ShowDialog()==DialogResult.OK) if(dlg.ShowDialog()==DialogResult.OK)
{ {
if(DataBase.Create(dlg.FileName)) string file=dlg.FileName;
if(MainForm.isScript(file))
OpenScript(file);
else
{
if(DataBase.Create(file))
{ {
if(MyMsg.Question(LMSG.IfOpenDataBase)) if(MyMsg.Question(LMSG.IfOpenDataBase))
Open(dlg.FileName); Open(file);
}
} }
} }
} }
...@@ -413,5 +481,143 @@ void Menuitem_comp2Click(object sender, EventArgs e) ...@@ -413,5 +481,143 @@ void Menuitem_comp2Click(object sender, EventArgs e)
} }
#endregion #endregion
void InitCodeEditor(string funtxt,string conlua)
{
if(!isInitDataEditor)
datacfg.Init();
tooltipDic.Clear();
funList.Clear();
conList.Clear();
AddFunction(funtxt);
AddConstant(conlua);
foreach(long k in datacfg.dicSetnames.Keys)
{
string key="0x"+k.ToString("x");
if(!tooltipDic.ContainsKey(key))
{
AddConToolTip(key, datacfg.dicSetnames[k]);
}
}
}
#region function
void AddFunction(string funtxt)
{
if(File.Exists(funtxt))
{
string[] lines=File.ReadAllLines(funtxt);
bool isFind=false;
string name="";
string desc="";
foreach(string line in lines)
{
if(string.IsNullOrEmpty(line)
|| line.StartsWith("=="))
continue;
if(line.StartsWith("●"))
{
//add
AddFuncTooltip(name, desc);
int t=line.IndexOf(" ");
int w=line.IndexOf("(");
if(t<w && t>0){
name=line.Substring(t+1,w-t-1);
isFind=true;
desc=line;
}
}
else if(isFind){
desc+=Environment.NewLine+line;
}
}
AddFuncTooltip(name, desc);
}
}
string GetFunName(string str)
{
int t=str.IndexOf(".");
if(t>0)
return str.Substring(t+1);
return str;
}
bool isANSIChar(char c)
{
if((int)c>127)
return false;
return true;
}
int CheckReturn(char[] chars, int index, int MAX)
{
int k=0;
for(k=0;k<MAX;k++)
{
if((index+k)<chars.Length){
if(chars[index+k]=='\n')
return k+1;
}
}
return -1;
}
void AddFuncTooltip(string name,string desc)
{
if(!string.IsNullOrEmpty(name))
{
string fname=GetFunName(name);
if(!tooltipDic.ContainsKey(fname)){
tooltipDic.Add(fname, desc);
AutocompleteItem aitem=new AutocompleteItem(fname);
aitem.ToolTipTitle = fname;
aitem.ToolTipText = desc;
funList.Add(aitem);
}
else
tooltipDic[fname] += Environment.NewLine + desc;
}
}
#endregion
#region constant
void AddConToolTip(string key, string desc)
{
AutocompleteItem aitem=new AutocompleteItem(key);
aitem.ToolTipTitle = key;
aitem.ToolTipText = desc;
conList.Add(aitem);
tooltipDic.Add(key, desc);
}
void AddConstant(string conlua)
{
//conList.Add("con");
if(File.Exists(conlua))
{
string[] lines=File.ReadAllLines(conlua);
foreach(string line in lines)
{
if(line.StartsWith("--"))
continue;
string k=line,desc=line;
int t=line.IndexOf("=");
int t2=line.IndexOf("--");
k = (t>0)?line.Substring(0,t).TrimEnd(new char[]{' ','\t'})
:line;
desc = (t>0)?line.Substring(t+1).Replace("--","\n")
:line;
if(!tooltipDic.ContainsKey(k)){
AddConToolTip(k, desc);
}
else
tooltipDic[k] += Environment.NewLine + desc;
}
}
}
#endregion
void Menuitem_codeeditorClick(object sender, EventArgs e)
{
OpenScript(null);
}
} }
} }
...@@ -42,8 +42,11 @@ private static void Main(string[] args) ...@@ -42,8 +42,11 @@ private static void Main(string[] args)
} }
else else
{ {
int msg=MainForm.WM_OPEN;
if(MainForm.isScript(arg))
msg=MainForm.WM_OPEN_SCRIPT;
File.WriteAllText(Path.Combine(Application.StartupPath, MainForm.TMPFILE), arg); File.WriteAllText(Path.Combine(Application.StartupPath, MainForm.TMPFILE), arg);
SendMessage(instance.MainWindowHandle, MainForm.WM_OPEN, 0 ,0); SendMessage(instance.MainWindowHandle, msg, 0 ,0);
//Thread.Sleep(1000); //Thread.Sleep(1000);
Environment.Exit(1); Environment.Exit(1);
} }
......
...@@ -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("2.1.4.0")] [assembly: AssemblyVersion("2.2.0.0")]
脚本中用到的数据类型为以下几类:
integer: 整数类型
boolean: 布尔类型(true 或者 false)
string: 字符串
function: 函数
Card: 卡片类
Effect: 效果类
Group: 卡片组类
any: 任意类型
为方便说明,采用类似c的函数表示方法说明
[]表示有默认值可省略的参数
注:关于过滤条件函数
过滤条件函数是指第一个参数是Card类型,并且返回值是boolean的函数。此函数用于在一些获取满足条件的卡片组的过滤函数中重复调用。过滤条件函数可以有不定的参数,第二个开始的参数从过滤函数的额外参数获得。举例:
function sample_filter(c, atk, def)
return c:GetAttack()>=atk and c:GetDefence()>=def
end
此函数对于一张卡c,如果攻击力>=atk并且守备力>=def则返回true,否则返回false
g=Duel.GetFieldGroup(0,LOCATION_HAND,0) --获取玩家1的手卡
fg=g:Filter(sample_filter, nil, 1000,500) --从g中筛选攻击力>=1000并且守备>=500的卡
Group.Filter只需要3个参数,第4个参数开始为额外参数,额外的参数会传给sample_filter
●void initial_effect(Card c)
注册卡片效果
========== bit ==========
●integer bit.band(integer a, integer b)
a与b的位与
●integer bit.bor(integer a, integer b)
a与b的位或
●integer bit.bxor(integer a, integer b)
a与b的位异或
●integer bit.bls(integer a, integer b)
a左移b
●integer bit.brs(integer a, integer b)
a右移b
========== Card ==========
●integer Card.GetCode(Card c)
返回c的当前代号(可能因为效果改变)
●integer Card.GetOriginalCode(Card c)
返回c的卡片记载的代号
●boolean Card.IsSetCard(Card c, integer setname)
检查c是否是名字含有setname的卡
●integer Card.GetType(Card c)
返回c的当前类型。
●integer Card.GetOriginalType(Card c)
返回c的卡片记载的类型。
●integer Card.GetLevel(Card c)
返回c的当前等级
●integer Card.GetSynchroLevel(Card c)
返回c的同调用等级。此函数除了某些特定卡如调节支援士,
返回值与Card.GetLevel(c)相同
●integer Card.GetRitualLevel(Card c)
返回c的仪式解放等级。此函数除了某些特定卡如仪式供物,
返回值与Card.GetLevel(c)相同
●integer Card.GetOriginalLevel(Card c)
返回c的卡片记载的等级
●integer Card.GetAttribute(Card c)
返回c的当前属性。注:对某些多属性怪物如光与暗之龙,
此函数的返回值可能是几个属性的组合值。
●integer Card.GetOriginalAttribute(Card c)
返回c的卡片记载的属性
●integer Card.GetRace(Card c)
返回c的当前种族。注:对某些多种族怪物如动画效果的魔术猿,
此函数的返回值可能是几个种族的组合值。
●integer Card.GetOriginalRace(Card c)
返回c的卡片记载的种族
●integer Card.GetAttack(Card c)
返回c的当前攻击力,返回值是负数表示是"?"
●integer Card.GetBaseAttack(Card c)
返回c的原本攻击力
●integer Card.GetTextAttack(Card c)
返回c的卡片记载的攻击力
●integer Card.GetDefence(Card c)
返回c的当前守备力,返回值是负数表示是"?"
●integer Card.GetBaseDefence(Card c)
返回c的原本守备力
●integer Card.GetTextDefence(Card c)
返回c的卡片记载的守备力
●integer Card.GetOwner(Card c)
返回c的持有者
●integer Card.GetControler(Card c)
返回c的当前控制者
●integer Card.GetPreviousControler(Card c)
返回c的位置变化之前的控制者
●integer Card.GetReason(Card c)
返回c的位置变化原因
●Card Card.GetReasonCard(Card c)
返回导致c的位置变化的卡。此函数仅在某卡被战斗破坏时,
因为上级召唤被解放,或者成为特殊召唤使用的素材时有效。
●Effect Card.GetReasonEffect(Card c)
返回导致c的位置变化的效果。
●integer Card.GetPosition(Card c)
返回c当前的表示形式
●integer Card.GetPreviousPosition(Card c)
返回c位置变化前的表示形式
●integer Card.GetBattlePosition(Card c)
返回c在本次战斗发生之前的表示形式
●integer Card.GetLocation(Card c)
返回c当前的所在位置
●integer Card.GetPreviousLocation(Card c)
返回c位置变化前的所在的位置
●integer Card.GetSequence(Card c)
返回c在当前位置的序号
在场上时,序号代表所在的格子,从左往右分别是0-4,场地魔法格的序号为5
在其它地方时,序号表示的是第几张卡。最底下的卡的序号为0
●integer Card.GetPreviousSequence(Card c)
返回c位置变化前的序号
●integer Card.GetSummonType(Card c)
返回c上场的方式。
●integer Card.GetSummonPlayer(Card c)
返回召唤,特殊召唤c上场的玩家
●integer Card.GetDestination(Card c)
返回c位置变化的目的地。此函数仅在处理位置转移代替效果时有效。
●integer Card.GetTurnID(Card c)
返回c转移到当前位置的回合
●integer Card.GetFieldID(Card c)
返回c转移到当前位置的时间标识。此数值唯一,越小表示c是越早出现在那个位置。
●boolean Card.IsCode(Card c, integer code)
检查c的代号是否是code。
●boolean Card.IsType(Card c, integer type)
检查c是否属于类型type。
●boolean Card.IsRace(Card c, integer race)
检查c是否属于种族race。
●boolean Card.IsAttribute(Card c, integer attribute)
检查c是否属于属性attribute。
●boolean Card.IsReason(Card c, integer reason)
检查c是否包含原因reason。
●boolean Card.IsStatus(Card c, integer status)
检查c是否包含某个状态码。
●boolean Card.IsNotTuner(Card c)
检查c是否可以当成非调整来使用。
●void Card.SetStatus(Card c, integer state, boolean enable)
给c设置或者取消状态码。除非妳清楚的了解每个状态码的含意,否则不要轻易使用此函数。
●boolean Card.IsDualState(Card c)
检查c属否处于再召唤状态。
●void Card.EnableDualState(Card c)
把c设置成再召唤状态。
●void Card.SetTurnCounter(Card c, integer counter)
设置c的回合计数器(光之护封剑等)
●integer Card.GetTurnCounter(Card c)
返回c的回合计数器
●void Card.SetCustomValue(Card c, string tag, any object)
以tag作为标签为c设置一个自定义值object
●any Card.GetCustomValue(Card c, string tag)
返回c的以tag作为标签的自定义值
●void Card.SetMaterial(Card c, Group g)
把g中的所有卡作为c的素材(上级召唤,特殊召唤)
●Group Card.GetMaterial(Card c)
返回c出场使用的素材
●integer Card.GetMaterialCount(Card c)
返回c出场使用的素材数量
●Group Card.GetEquipGroup(Card c)
返回c当前装备着的卡片组
●integer Card.GetEquipCount(Card c)
返回c当前装备着的卡片数量
●Card Card.GetEquipTarget(Card c)
返回c当前的装备对象
●boolean Card.CheckEquipTarget(Card c1, Card c2)
检查c2是否是c1的正确的装备对象
●integer Card.GetUnionCount(Card c)
返回c当前装备的同盟卡数量
●Group Card.GetOverlayGroup(Card c)
返回c当前叠放着的卡片组
●integer Card.GetOverlayCount(Card c)
返回c当前叠放着的卡片数量
●integer Card.RemoveOverlayCard
(Card c,integer player, integer min, integer max, integer reason)
以reason为原因,让玩家player移除c叠放的min-max张卡
●Group Card.GetAttackGroup(Card c)
返回c本回合攻击过的卡片组
●integer Card.GetAttackedGroupCount(Card c)
返回c本回合攻击过的卡片数量
●integer Card.GetAttackedCount(Card c)
返回c本回合攻击过的次数
注:如果此值与上一个函数的返回值不同,那么说明此卡本回合进行过直接攻击
●Group Card.GetBattledGroup(Card c)
返回与c本回合进行过战斗的卡片组
进行过战斗指发生过伤害的计算。用于剑斗兽等卡的判定。
●integer Card.GetBattledGroupCount(Card c)
返回与c本回合进行过战斗的的卡片数量
●integer Card.GetAttackAnnouncedCount(Card c)
返回c本回合攻击宣言的次数
注:攻击被无效不会被计入攻击过的次数,但是会计入攻击宣言的次数。
●void Card.SetCardTarget(Card c1, Card c2)
把c2作为c1的永续对象。
c1和c2的联系会在c1活c2任意一卡离场或变成里侧表示时reset。
●Group Card.GetCardTarget(Card c)
返回c当前所有的永续对象
●integer Card.GetCardTargetCount(Card c)
返回c当前的永续对象的数量
●boolean Card.IsHasCardTarget(Card c1, Card c2)
检查c1是否取c2为永续对象
●Group Card.GetOwnerTarget(Card c)
返回取c作为永续对象的所有卡
●integer Card.GetOwnerTargetCount(Card c)
返回取c作为永续对象的卡的数量
●Effect Card.GetActivateEffect(Card c)
返回c的“卡片发动”的效果。仅对魔法和陷阱有效。
●integer Card.RegisterEffect(Card c, Effect e, [boolean forced=false])
把效果e注册给c,返回效果的全局id。
默认情况下注册时如果c带有免疫e的效果那么注册会失败。
如果forced为true则不会检查c对e的免疫效果。
●boolean Card.IsHasEffect(Card c, integer code)
检查c是否受到效果种类是code的效果的影响
●integer Card.GetEffectCount(Card c, integer code)
返回c受到影响的种类是code的效果的数量
●Effect Card.RegisterFlagEffect(Card c, integer code, integer reset_flag, integer property, integer reset_count)
为c注册一个标识用效果。
注:注册给卡的标识用效果不会用于系统,
即使code与内置效果code重合也不会影响,
并且类型总是EFFECT_TYPE_SINGLE。reset方法,property和一般的效果相同,
并且不会无效化,不受卡的免疫效果影响。
●integer Card.GetFlagEffect(Card c, integer code)
返回c的种类是code的标识效果的数量。
●void Card.ResetFlagEffect(Card c, integer code)
手动清除c的种类是code的标识效果。
●void Card.CreateRelation(Card c1, Card c2, integer reset_flag)
为c1建立于c2的联系。此联系仅会由于RESET_EVENT的事件reset。
●void Card.ReleaseRelation(Card c1, Card c2)
手动释放c1对于c2的联系
●boolean Card.IsRelateToEffect(Card c, Effect e)
检查c是否和效果e有联系。
注:每次发动进入连锁的效果时,发动效果的卡,以及发动效果时指定的对象
(用Duel.SetTargetCard或者Duel.SelectTarget指定的,包括取对象和不取对象)
会自动与那个效果建立联系。一旦离场,联系会重置。
●boolean Card.IsRelateToCard(Card c1, Card c2)
检查c1是否和c2有联系。
●boolean Card.IsRelateToBattle(Card c)
检查c是否和本次战斗关联。
注:此效果通常用于伤害计算后伤害阶段结束前,用于检查战斗的卡是否离场过。
●integer Card.CopyEffect
(Card c, integer code, integer reset_flag,integer reset_count)
为c添加代号是code的卡的可复制的效果,并且添加额外的reset条件。
返回值是表示复制效果的代号id。
●void Card.EnableReviveLimit(Card c)
为c添加苏生限制。此函数也可通过Card.SetStatus实现。
●void Card.CompleteProcedure(Card c)
使c完成正规的召唤手续。此函数也可通过Card.SetStatus实现。
●boolean Card.IsDisabled(Card c)
检查c是否处于无效状态
●boolean Card.IsDestructable(Card c)
检查c是否是可破坏的。
注:不可破坏指的是类似场地护罩,宫廷的规矩等“破壊できない”的效果
●boolean Card.IsSummonableCard(Card c)
检查c是否是可通常召唤的卡。
●boolean Card.IsSpecialSummonable(Card c)
检查是否可以对c进行特殊召唤手续。
●boolean Card.IsSynchroSummonable(Card c, [Card tuner=nil])
检查是否可以以tuner作为调整对c进行同调召唤手续。
如果tuner是nil,此函数与上一个函数作用相同。
●boolean Card.IsSummonable(Card c)
检查c是否可进行通常召唤(不包含通常召唤的set)
●boolean Card.IsMSetable(Card c)
检查c是否可进行通常召唤的set
●boolean Card.IsSSetable(Card c)
检查c是否可以set到魔法陷阱区
●boolean Card.IsCanBeSpecialSummoned
(Card c, Effect e, integer sumtype, integer sumplayer,
boolean nocheck, boolean nolimit, [integer sumpos=POS_FACEUP,
integer target_player=sumplayer])
检查c是否可以被玩家sumplayer
用效果e以sumtype方式和sumpos表示形式特殊召唤到target_player场上。
如果nocheck是true则不检查c的召唤条件,如果nolimit是true则不检查c的苏生限制。
●boolean Card.IsAbleToHand(Card c)
检查c是否可以送去手牌。
注:仅当卡片或者玩家受到“不能加入手牌”的效果的影响时(如雷王)此函数才返回false。
以下几个函数类似。
●boolean Card.IsAbleToDeck(Card c)
检查c是否可以送去卡组。
●boolean Card.IsAbleToExtra(Card c)
检查c是否可以送去额外卡组。
对于非融合,同调,超量卡此函数均返回false。
●boolean Card.IsAbleToGrave(Card c)
检查c是否可以送去墓地。
●boolean Card.IsAbleToRemove(Card c)
检查c是否可以除外。
●boolean Card.IsAbleToHandAsCost(Card c)
检查c是否可以作为cost送去手牌。
注:此函数会在Card.IsAbleToHand的基础上追加检测c的实际目的地。
当c送往手牌会被送去其它地方时(如缩退回路适用中,或者c是融合,同调和超量怪的一种),
此函数返回false。以下几个函数类似。
●boolean Card.IsAbleToDeckAsCost(Card c)
检查c是否可以作为cost送去卡组。
●boolean Card.IsAbleToExtraAsCost(Card c)
检查c是否可以作为cost送去额外卡组。
●boolean Card.IsAbleToGraveAsCost(Card c)
检查c是否可以作为cost送去墓地。
●boolean Card.IsAbleToRemoveAsCost(Card c)
检查c是否可以作为cost除外。
●boolean Card.IsReleaseable(Card c)
检查c是否可以解放(非上级召唤用)
●boolean Card.IsDiscardable(Card c)
检查c是否可以丢弃
注:此函数仅用于检测,
以REASON_DISCARD作为原因把一张手卡送墓并不会导致那张卡不能丢弃。
●boolean Card.IsAttackable(Card c)
检查c是否可以攻击
●boolean Card.IsChainAttackable(Card c)
检查c是否可以连续攻击
注:当c因为闪光之双剑等效果进行过多次攻击之后此函数返回false。
●boolean Card.IsFaceup(Card c)
检查c是否是表侧表示
●boolean Card.IsFacedown(Card c)
检查c是否是里侧测表示
●boolean Card.IsAttack(Card c)
检查c是否是攻击表示
●boolean Card.IsDefence(Card c)
检查c是否是守备表示
●boolean Card.IsControler(Card c, integer con)
检查c的当前控制着是否是con
●boolean Card.IsOnField(Card c)
检查c是否在场。
注:当怪物召唤,反转召唤,特殊召唤时召唤成功之前,此函数返回false
●boolean Card.IsLocation(Card c, integer loc)
检查c当前位置是否是loc。
注:当怪物召唤,反转召唤,特殊召唤时召唤成功之前,
并且loc=LOCATION_MZONE时,此函数返回false
●boolean Card.IsPublic(Card c)
检查c是否处于公开状态
●boolean Card.IsForbidden(Card c)
检查c是否处于被宣言禁止状态
●boolean Card.IsAbleToChangeControler(Card c)
检查c是否可以改变控制权
注:仅当卡收到了“不能改变控制权”的效果的影响时,此函数返回false
●boolean Card.IsControlerCanBeChanged(Card c)
检查c的控制权是否可以改变
注:此函数会在上一个函数的基础上追加检测场上的空格位
●void Card.AddCounter(Card c, integer countertype, integer count)
为c放置count个countertype类型的指示物
●void Card.RemoveCounter
(Card c, integer player, integer countertype, integer count, integer reason)
让玩家player以原因reason移除c上的count个countertype类型的指示物
●integer Card.GetCounter(Card c, integer countertype)
返回c上的countertype类型的指示物的数量
●void Card.EnableCounterPermit(Card c, integer countertype)
允许c放置那个需要“可以放置”才能放置的指示物countertype
●void Card.SetCounterLimit(Card c, integer countertype, integer count)
设定c放置countertype类型指示物的上限
●boolean Card.IsCanTurnSet(Card c)
检查c是否可以转成里侧表示。
●boolean Card.IsCanAddCounter(Card c, integer countertype, integer count)
检查c是否可以放置count个countertype类型的指示物
●boolean Card.IsCanRemoveCounter
(Card c, integer player, integer countertype, integer count, integer reason)
检查玩家player是否可以以原因reason移除c上的count个countertype类型的指示物
●boolean Card.IsCanBeFusionMaterial(Card c)
检查c是否可以成为融合素材
●boolean Card.IsCanBeSynchroMaterial(Card c)
检查c是否可以成为同调素材
●boolean Card.IsCanBeExceedMaterial(Card c)
检查c是否可以成为超量素材
●boolean Card.CheckFusionMaterial(Card c, Group g)
检查g是否包含了c需要的一组融合素材
●boolean Card.IsImmuneToEffect(Card c, Effect e)
检查c是否免疫效果e(即不受效果e的影响)
●boolean Card.IsCanBeEffectTarget(Card c, Effect e)
检查c是否可以成为效果e的对象
●boolean Card.IsCanBeBattleTarget(Card c1, Card c2)
检查c1是否可以成为c2的攻击目标
●void Card.AddTrapMonsterAttribute(Card c, boolean is_effect)
为c添加陷阱怪物属性。is_effect=true表示视作效果怪物,否则视为通常怪物
注:陷阱怪物属性指的是同时作为怪物和陷阱,
并且额外使一个魔法陷阱的格子不能使用。
●void Card.CancelToGrave(Card c)
取消送墓确定状态。
注:送墓确定状态指的是在场上发动的不留场的魔法和陷阱后,这些卡片的状态。
送墓确定状态中的卡无法返回手牌和卡组,并且连锁结束时送去墓地。
此函数的作用是取消此状态使其留场。用于光之护封剑和废铁稻草人等卡。
●integer,integer Card.GetTributeRequirement(Card c)
返回通常召唤c所需要的祭品的最小和最大数量
========== Effect ==========
●Effect Effect.CreateEffect(Card c)
新建一个空效果,并且效果的拥有者为c
●Effect Effect.Clone(Effect e)
新建一个效果e的副本
●void Effect.Reset(Effect e)
把效果e重置。重置之后不可以再使用此效果
●void Effect.SetType(Effect e, integer type)
为效果e设置效果类型
●void Effect.SetDescription(Effect e, integer desc)
为效果e设置效果描述
●void Effect.SetCode(Effect e, integer code)
为效果e设置Code属性
●void Effect.SetRange(Effect e, integer range)
为效果e设置Range属性
●void Effect.SetTargetRange(Effect e, integer s_range, integer o_range)
为效果e设置Target Range属性
s_range指影响的我方区域。o_range值影响的对方区域。
如果property属性中指定了EFFECT_FLAG_ABSOLUTE_RANGE标志,
那么s_range指玩家1收到影响的区域,o_range指玩家2受到影响的区域。
如果这是一个特殊召唤手续(EFFECT_SPSUMMON_PROC)的效果,
并且property指定了EFFECT_FLAG_SPSUM_PARAM标志,
那么s_range表示特殊召唤到的哪个玩家的场地,
o_range表示可选择的表示形式。
●void Effect.SetAbsoluteRange(Effect e, integer s_range, integer o_range)
设置target range属性并设置EFFECT_FLAG_ABSOLUTE_RANGE标志
●void Effect.SetCountLimit(Effect e, integer count)
设置一回合可以发动的次数(仅触发型效果有效)
●void Effect.SetReset(Effect e, integer reset_flag, [integer reset_count=1])
设置reset参数
●void Effect.SetReset(Effect e, integer type)
设置Type属性
●void Effect.SetProperty(Effect e, integer prop)
设置Property属性
●void Effect.SetLabel(Effect e, integer label)
设置Label属性
●void Effect.SetCategory(Effect e, integer cate)
设置Category属性
●void Effect.SetCategory(Effect e, integer cate)
设置Category属性
●void Effect.SetCondition(Effect e, function con_func)
设置Condition属性
●void Effect.SetCost(Effect e, function cost_func)
设置Cost属性
●void Effect.SetTarget(Effect e, function targ_func)
设置Target属性
●void Effect.SetOperation(Effect e, function op_func)
设置Operation属性
●void Effect.SetValue(Effect e, integer|function val)
设置Value属性
●void Effect.SetOwnerPlayer(Effect e, integer player)
设置Owner player属性
●integer Effect.GetDescription(Effect e)
返回效果描述
●integer Effect.GetCode(Effect e)
返回code属性
●integer Effect.GetType(Effect e)
返回Type属性
●integer Effect.GetProperty(Effect e)
返回Property属性
●integer Effect.GetLabel(Effect e)
返回Label属性
●integer Effect.GetCategory(Effect e)
返回Category属性
●Card Effect.GetOwner(Effect e)
返回效果拥有者
●Card Effect.GetHandler(Effect e)
返回效果在哪一张卡上生效(通常是注册该效果的卡)
●function Effect.GetCondition(Effect e)
返回condition属性
●function Effect.GetCost(Effect e)
返回cost属性
●function Effect.GetTarget(Effect e)
返回target属性
●function Effect.GetOperation(Effect e)
返回operation属性
●function|integer Effect.GetValue(Effect e)
返回value属性
●boolean Effect.IsHasProperty(Effect e, integer prop)
检查效果是否含有标志prop
●boolean Effect.IsHasCategory(Effect e, integer cate)
检查效果是否含有效果分类cate
●boolean Effect.IsHasType(Effect e, integer type)
检查效果是否属于类型type
========== group ==========
●Group Group.CreateGroup()
新建一个空的卡片组
●void Group.CreateGroup(Group g)
删除卡片组g
●Group Group.Clone(Group g)
新建卡片组g的副本
●Group Group.FromCards(Card c, ...)
不定参数,把传入的所有卡组合成一个卡片组并返回
●void Group.Clear(Group g)
清空卡片组
●void Group.AddCard(Group g, Card c)
往g中增加c
●void Group.RemoveCard(Group g, Card c)
把c从g中移除
●Card Group.GetFirst(Group g)
返回g中第一张卡,并重置当前指针到g中第一张卡。
如果g中不存在卡则返回nil
●Card Group.GetNext(Group g)
返回并使指针指向下一张卡。如果g中不存在卡则返回nil
●integer Group.GetCount(Group g)
返回g中卡的数量
●void Group.ForEach(Group g, function f)
以g中的每一张卡作为参数调用一次f
●Group Group.Filter(Group g, function f, Card ex, ...)
过滤函数。从g中筛选满足筛选条件f并且不等于ex的卡。
从第4个参数开始为额外参数。
●integer Group.FilterCount(Group g, function f, Card ex, ...)
过滤函数。和上一个函数基本相同。不同指出在于此函数只返回满足条件的卡的数量。
●Group Group.FilterSelect
(Group g, integer player, function f,integer min, integer max, Card ex, ...)
过滤函数。让玩家player从g中选择min-max张满足筛选条件f并且不等于ex的卡。
从第7个参数开始为额外参数。
●Group Group.Select
(Group g, integer player, integer min, integer max, Card ex)
让玩家player从g中选择min-max张不等于ex的卡。
●Group Group.RandomSelect(Group g, integer player, integer count)
让玩家player从g中随机选择count张卡。
因为是随机算则,所以参数player基本无用,由系统随机选取。
●boolean Group.IsExists(Group g, function f, integer count, Card ex, ...)
过滤函数。检查g中是否存在至少count张满足筛选条件f并且不等于ex的卡。
从第5个参数开始为额外参数。
●boolean Group.CheckWithSumEqual
(Group g, function f, integer sum, integer min)
子集求和判定函数。f为返回一个interger值的函数(通常用于同调判定)。
检查g中是否存在一个数量至少为min的子集满足以f对子集的每一个元素求值的和等于sum。
比如:g:CheckWithSumEqual(Card.GetSynchroLevel,7,2)
检查g中是否存在一个子集满足子集的同调用等级之和等于7
●Group Group.SelectWithSumEqual
(Group g, integer player, function f, integer sum, integer min)
让玩家player从g中选取一个数量至少是min的子集使子集的特定函数的和等于sum
●boolean Group.CheckWithSumGreater(Group g, function f, integer sum)
子集求和判定函数之二。f为返回一个interger值的函数(通常用于仪式判定)。
检查g中是否存在一个子集满足以f对子集的每一个元素求值的和刚好大于或者等于sum。
比如:g:CheckWithSumGreater(Card.GetRitualLevel,8)
检查g中是否存在一个子集满足子集的仪式用等级之和大于等于8
注:判定必须是“刚好”大于或者等于。
以等级为例,要使等级合计大于等于8,可以选择LV1+LV7而不可以选择LV1+LV4+LV4
●Group Group.SelectWithSumGreater
(Group g, integer player, function f, integer sum)
让玩家player从g中选取一个子集使子集的特定函数的和大于等于sum
●Group Group.GetMinGroup(Group g, function f)
f为返回一个interger值的函数。从g中筛选出具有最小的f的值的卡。用于地裂等卡。
●Group Group.GetMaxGroup(Group g, function f)
f为返回一个interger值的函数。从g中筛选出具有最大的f的值的卡。用于地碎等卡。
●integer Group.GetSum(Group g, function f)
计算g中所有卡的取值的总和。f为为每张卡的取值函数。
●integer Group.GetSortCount(Group g, function f)
计算g中所有卡的种类数量。f为分类的依据,返回相同的值视为同一种类。
●Group Group.Remove(Group g, function f, ...)
过滤函数。从g中移除满足筛选条件f的所有卡。第三个参数开始是额外参数。
●Group Group.Merge(Group g1, Group g2)
把g2中的所有卡合并到g1。
注:g2本身不会发生变化。
●boolean Group.IsContains(Group g, Card c)
检查g中是否存在卡片c
●Card Group.SearchCard(Group g, function f, ...)
过滤函数。返回g中满足筛选条件f的第一张卡。第三个参数为额外参数。
========== Duel ==========
●integer Duel.GetLP(integer player)
返回玩家player的当前LP
●void Duel.SetLP(integer player, integer lp)
设置玩家player的当前LP为lp
●integer Duel.GetTurnPlayer()
返回当前的回合玩家
●integer Duel.GetTurnCount()
返回当前的回合数
●integer Duel.GetDrawCount(integer player)
返回玩家player每回合的规则抽卡数量
●void Duel.DebugMessage(any msg)
Debug用函数,用于显示信息
●void Duel.RegisterEffect(Effect e, integer player)
把效果作为玩家player的效果注册给全局环境。
●Effect Duel.RegisterFlagEffect(integer player, integer code,
integer reset_flag, integer property, integer reset_count)
此函数为玩家player注册全局环境下的标识效果。
此效果总是影响玩家的(EFFECT_FLAG_PLAYER_TARGET)并且不会被无效化。
其余部分与Card.RegisterFlagEffect相同
●integer Duel.GetFlagEffect(integer player, integer code)
返回玩家player的特定的标识效果的数量
●void Duel.ResetFlagEffect(integer player, integer code)
手动reset玩家player的特定的标识效果
●integer Duel.Destroy(Card|Group targets, integer reason)
以reason原因破坏targets。返回值是实际被破坏的数量。
如果reason包含REASON_RULE,则破坏事件将不会检查卡片是否免疫效果,
不会触发代破效果并且无视“不能破坏”。
●integer Duel.Remove(Card|Group targets, integer pos, integer reason)
以reason原因,pos表示形式除外targets。
返回值是实际被操作的数量。
如果reason包含REASON_TEMPORARY,
那么视为是暂时除外,可以通过Duel.ReturnToField返回到场上
●integer Duel.SendtoGrave(Card|Group targets, integer reason)
以reason原因把targets送去墓地。返回值是实际被操作的数量。
●integer Duel.SendtoHand(Card|Group targets,
integer player | nil, integer reason)
以reason原因把targets送去玩家player的手牌。
返回值是实际被操作的数量。
如果player是nil则返回卡的持有者的手牌。
●integer Duel.SendtoDeck(Card|Group targets,
integer player | nil, integer seq, integer reason)
以reason原因把targets送去玩家player的卡组。
返回值是实际被操作的数量。
如果player是nil则返回卡的持有者的卡组。
如果seq=0,则是返回卡组最顶端;seq=1则是返回卡组最低端;
其余情况则是返回最顶端并且标记需要洗卡组。
●Group Duel.GetOperatedGroup()
此函数返回之前一次卡片操作实际操作的卡片组。包括
Duel.Destroy, Duel.Remove, Duel.SendtoGrave,
Duel.SendtoHand, Duel.SendtoDeck, Duel.Release,
Duel.ChangePosition, Duel.SpecialSummon
●void Duel.Summon(integer player, Card c, boolean ignore_count, Effect e)
让玩家以效果e对c进行通常召唤(非set)。
如果e=nil,那么就按照一般的通常召唤规则进行通常召唤。
如果ignore_count=true,则忽略每回合的通常召唤次数限制。
●void Duel.SpecialSummonRule(integer player, Card c)
让玩家player对c进行特殊召唤手续。
●void Duel.SynchroSummon(integer player, Card c, Card tuner)
让玩家player以tuner作为调整对c进行特殊召唤手续。
●void Duel.MSet(integer player, Card c, boolean ignore_count, Effect e)
让玩家以效果e对c进行通常召唤的Set。
如果e=nil,那么就按照一般的通常召唤规则进行通常召唤。
如果ignore_count=true,则忽略每回合的通常召唤次数限制。
●void Duel.SSet(integer player, Card c)
让玩家player把c放置到魔法陷阱区
●Card Duel.CreateToken(integer player, integer code, integer setcode,
integer attack, integer defence, integer level, integer race,
integer attribute)
以传入的参数数值新建一个Token
●integer Duel.SpecialSummon(Card|Group targets, integer sumtype,
integer sumplayer, integer target_player, boolean nocheck, boolean nolimit,
integer pos)
让玩家player以sumtype方式,pos表示形式把targets特殊召唤到target_player场上。
如果nocheck为true则无视卡的召唤条件。如果nolimit为true则无视卡的苏生限制。
返回值是特殊召唤成功的卡的数量。
●boolean Duel.SpecialSummonStep(Card c, integer sumtype, integer sumplayer,
integer target_player, boolean nocheck, boolean nolimit, integer pos)
此函数是上一个函数的分解过程,只特殊召唤一张卡c。
此函数用于一个效果需要双方同时特殊召唤时。此函数必须和下面的函数一起使用。
返回值表示是否特殊召唤成功。
●integer Duel.SpecialSummonComplete()
此函数在确定复数个上一个函数调用完毕之后调用。用于触发事件。
●void Duel.RemoveCounter(integer player, integer s, integer o,
integer countertype, integer count, integer reason)
让玩家player移除场上存在的countertype类型的count个指示物。
s表示对player来说的己方的可移除指示物的位置,
o表示对player来说的对方的可移除指示物的位置
●boolean Duel.IsCanRemoveCounter(integer player, integer s,
integer o, integer countertype, integer count, integer reason)
检查玩家player是否能移除场上的countertype类型的count个指示物。
s和o参数作用同上。
●integer Duel.GetCounter(integer player, integer s, integer o,
integer countertype)
返回场上存在的countertype类型的指示物的数量。s和o参数作用同上。
●integer Duel.ChangePosition(Card|Group targets,integer au,
[integer ad=au, integer du=au, integer dd=au, boolean noflip=false])
改变targets的表示形式。表侧攻击表示的变成au,里侧攻击表示的变成ad,
表侧守备表示变成du,里侧守备表示变成dd
如果noflip=true则不触发翻转效果(但会触发翻转时的诱发效果)
●integer Duel.Release(Card|Group targets, integer reason)
以reason原因解放targets。返回值是实际解放的数量。
如果reason含有REASON_COST,则不会检查卡片是否不受效果影响
●void Duel.MoveToField(Card c, integer move_player,
integer target_player,integer dest, integer pos, boolean enabled)
让玩家move_player把c移动的target_player的场上。
dest只能是LOCATION_MZONE或者LOCATION_SZONE。pos表示可选表示形式。
enable表示是否立刻适用c的效果。
●void Duel.ReturnToField(Card c)
把c返回到场上。c必须是以REASON_TEMPORARY原因离场,并且离场后没有离开过那个位置。
●void Duel.MoveSequence(Card c, integer seq)
移动c的序号。通常用于在场上换格子或者在卡组中移动到最上方或者最下方。
●void Duel.SetChainLimit(function f)
设定连锁条件。f是接受一个Effect类型作为参数并且返回boolean值的函数。
在cost或者target处理中调用此函数可以限制可以连锁的效果的种类(如超融合)
。如果f返回false表示不能连锁。一旦设置连锁条件后发生了新的连锁那么连锁条件将会解除。
●void Duel.SetChainLimitTillChainEnd(function f)
功能同上,但是此函数设定的连锁条件直到连锁结束才会解除。
●Effect Duel.GetChainMaterial(integer player)
返回玩家player受到的连锁素材的效果。此函数仅用于融合类卡的效果。
●void Duel.ConfirmDeckTop(integer player, integer count)
确认玩家player卡组最上方的count张卡。双方均可确认。
●void Duel.ConfirmCards(integer player, Card|Group targets)
给玩家player确认targets
●void Duel.SortDecktop
(integer sort_player, integer target_player, integer count)
让玩家sort_player对玩家target_player的卡组最上方count张卡进行排序
●boolean Duel.CheckEvent(integer event)
检查当前是否是event时点
●void Duel.RaiseEvent
(Group eg,integer code, Effect reason_effect,integer reason,
integer reason_player,integer event_player,integer event param)
触发一个事件。
●void Duel.RaiseSingleEvent
(Card ec,integer code, Effect reason_effect,integer reason,
integer reason_player,integer event_player, integer event param)
触发一个单体事件。
●integer, integer Duel.GetEnvironment()
返回两个值,表示当前场地代号,以及当前场地效果的来源玩家。
场地代号指当前生效的场地卡的代号,或者海神的巫女把场地变化效果的值。
来源玩家指当前生效的场地卡的控制者,或者海神的巫女等卡的控制者。
●void Duel.Win(function f, Effect e, integer player)
在当前效果处理完之后调用f进行胜负检测。e和player作为f的两个参数传递给f。
f返回值的低16位表示胜负判定玩家,
0表示玩家1胜利,1表示玩家2胜利,2表示平局,
此外是无胜负兵继续进行。高16位表示胜负的原因。
●integer Duel.Draw(integer player, integer count, integer reason)
让玩家player以原因reason抽count张卡。返回实际抽的卡的数量。
如果reason含有REASON_RULE则此次抽卡不受“不能抽卡”的效果的影响。
●integer Duel.Damage(integer player, integer value, integer reason)
以reason原因给与玩家player造成value的伤害。返回实际收到的伤害值。
如果受到伤害变成回复等效果的影响时,返回值为0.
●integer Duel.Recover(integer player, integer value, integer reason)
以reason原因使玩家player回复value的LP。返回实际的回复值。
如果受到回复变成伤害等效果的影响时,返回值为0.
●boolean Duel.Equip(integer player, Card c1, Card c2)
把c1作为玩家player的装备卡装备给c2。返回值表示是否成功。
●boolean Duel.GetControler(integer player, Card c)
让玩家player得到c的控制权。返回值表示是否成功。
●boolean Duel.SwapControler(Card c1, Card c2)
交换c1和c2的控制权。返回值表示是否成功。
●boolean Duel.CheckLPCost(integer player, integer cost)
检查玩家player是否能支付cost点lp
●void Duel.PayLPCost(integer player, integer cost)
让玩家player支付cost点lp
●integer Duel.DiscardDeck(integer player, integer count, integer reason)
以原因reason把玩家player的卡组最上端count张卡送去墓地.返回实际转移的数量。
●integer Duel.DiscardHand(integer player, function f,
integer min, integer max, integer reason, Card ex, ...)
过滤函数。让玩家player选择并丢弃满足筛选条件f兵不等于ex的min-max张手卡。
第7个参数开始为额外参数。
●void Duel.DisableShuffleCheck()
使下一个操作不检查是否需要洗卡组或者洗手卡。
注:如果不调用此函数,
除了调用Duel.DiscardDeck和Duel.Draw之外从卡组中取出卡或者把卡加入手卡
或者把卡加入卡组(非最上端或最底端)时,系统会自动在效果处理结束时洗卡组或手卡。
如果不希望如此,比如从卡组顶端除外一张卡等操作,那么需要调用此函数。
此函数仅保证紧接着的一次操作不会进行洗卡检测。
●void Duel.ShuffleDeck(integer player)
手动洗玩家player的卡组
●void Duel.ShuffleHand(integer player)
手动洗玩家player的手卡
注:以上两个操作会重置洗卡检测的状态。
●void Duel.ChaingeAttacker(Card c)
把当前的攻击卡替换成c进行攻击
●void Duel.ReplaceAttacker(Card c)
用c代替当前攻击的卡进行伤害阶段
●void Duel.ChaingeAttackTarget(Card c)
把当前的攻击目标替换成c。如果c=nil则变成直接攻击。
●void Duel.ReplaceAttackTarget(Card c)
(预留)
●integer Duel.GetBattleDamage(integer player)
返回玩家player在本次战斗中收到的伤害
●void Duel.ChangeBattleDamage(integer player, integer value)
把玩家player在本次战斗中收到的伤害变成value
●void Duel.ChangeTarget(integer chainc, Group g)
把连锁chainc的对象换成g
●void Duel.ChangeTargetPlayer(integer chainc, integer player)
把连锁chainc的对象玩家换成player
●void Duel.ChangeTargetParam(integer chainc, integer param)
把连锁chainc的对象参数换成param
●void Duel.BreakEffect()
中断当前效果,使之后的效果处理视为不同时处理。此函数会造成错时点。
●void Duel.ChangeChainOperation(integer chainc, function f)
把连锁chainc的效果的处理函数换成f。用于实现“把效果变成”等的效果
●void Duel.NegateActivation(integer chainc)
使连锁chainc的发动无效
●void Duel.NegateEffect(integer chainc)
使连锁chainc的效果无效
●void Duel.NegateSummon(Card c)
使正在召唤,反转召唤,特殊召唤的c的召唤无效
●void Duel.IncreaseSummonCount()
本回合的通常召唤限制计数+1
●boolean Duel.CheckSummonCount()
检查回合玩家本回合的通常召唤限制计数。
●integer Duel.GetLocationCount(integer player, integer location)
返回玩家player的指定场地location剩余的空格数。
location只能是LOCATION_MZONE或者LOCATION_SZONE。
●Card Duel.GetFieldCard
(integer controler, integer location, integer sequence)
返回指定玩家指定地点指定序号的卡
●integer Duel.GetCurrentChain()
返回当前正在处理的连锁序号
●... Duel.GetChainInfo(integer chainc, ...)
返回连锁chainc的信息。如果chainc=0,则返回当前正在处理的连锁的信息。
此函数根据传入的参数个数按顺序返回相应数量的返回值。参数可以是:
CHAININFO_CHAIN_COUNT 连锁序号
CHAININFO_TRIGGERING_EFFECT 连锁的效果
CHAININFO_TRIGGERING_PLAYER 连锁的玩家
CHAININFO_TRIGGERING_CONTROLER 连锁发生位置所属玩家
CHAININFO_TRIGGERING_LOCATION 连锁发生位置
CHAININFO_TRIGGERING_SEQUENCE 连锁发生的位置的序号
CHAININFO_TARGET_CARDS 连锁的对象卡片组
CHAININFO_TARGET_PLAYER 连锁的对象玩家
CHAININFO_TARGET_PARAM 连锁的对象参数
CHAININFO_DISABLE_REASON 连锁被无效的原因效果
CHAININFO_DISABLE_PLAYER 连锁被无效的原因玩家
CHAININFO_CHAIN_ID 连锁的唯一标识
举例:
Duel.GetChainInfo(0,CHAININFO_TRIGGERING_LOCATION,CHAININFO_TARGET_CARDS)
将会返回当前连锁发生的位置和对象卡。
●integer Duel.GetCurrentPhase()
返回当前的阶段
●void Duel.SkipPhase
(integer player, integer phase, integer reset_flag, integer reset_count)
跳过玩家player的phase阶段,并在特定的阶段后reset。reset参数和效果相同。
●boolean Duel.IsDamageCalculated()
用于在伤害阶段检查是否已经计算了战斗伤害。
●Card Duel.GetAttacker()
返回此次战斗攻击的卡
●Card Duel.GetAttackTarget()
返回此次战斗被攻击的卡。如果返回nil表示是直接攻击。
●void Duel.DisableAttack()
使本次攻击无效
●void Duel.ChainAttack()
使攻击卡再进行一次连续攻击(开辟,破灭的女王)
●void Duel.Readjust()
刷新场上的卡的信息。非特定情况或者不清楚原理请勿使用此函数以免形成死循环。
●Group Duel.GetFieldGroup(integer player, integer s, integer o)
返回指定位置的卡。s指对玩家player来说的己方的位置,
o指对玩家player来说的对方的位置。下面提到的指定位置均为此意。
比如Duel.GetFieldGroup(0,LOCATION_GRAVE,LOCATION_MZONE)
返回玩家1墓地和玩家2的怪兽区的所有卡
●integer Duel.GetFieldGroupCount(integer player, integer s, integer o)
同上,返回值变成卡的数量
●Group Duel.GetDecktopGroup(integer player, integer count)
返回玩家player的卡组最上方的count张卡
●Group Duel.GetMatchingGroup
(function f, integer player, integer s, integer o, Card ex, ...)
过滤函数,返回指定位置满足过滤条件f并且不等于ex的卡。
第6个参数开始为额外参数。
●integer Duel.GetMatchingGroupCount
(function f, integer player, integer s, integer o, Card ex, ...)
同上,返回值变成符合的卡的数量。
●Card Duel.GetFirstMatchingCard
(function f, integer player, integer s, integer o, Card ex, ...)
过滤函数,返回指定位置满足过滤条件f并且不等于ex的第一张卡。
第6个参数开始为额外参数。
●boolean Duel.IsExistingMatchingCard
(function f, integer player, integer s, integer o, integer count, Card ex, ...)
过滤函数,检查指定位置是否存在至少count张满足过滤条件f并且不等于ex的卡。
第7个参数开始为额外参数。
●Group Duel.SelectMatchingCard
(integer sel_player, function f, integer player,
integer s, integer o, integer min, integer max, Card ex, ...)
过滤函数,让玩家sel_player选择指定位置满足过滤条件f并且不等于ex的min-max张卡。
第9个参数开始为额外参数。
●Group Duel.GetReleaseGroup(integer player)
返回玩家player可解放(非上级召唤用)的卡片组
●integer Duel.GetReleaseGroupCount(integer player)
返回玩家player可解放(非上级召唤用)的卡片数量
●boolean Duel.ChecktReleaseGroup
(integer player, function f, integer count, Card ex, ...)
过滤函数,检查玩家player是否存在至少count张不等于ex的满足条件f的可解放的卡
●Group Duel.SelectReleaseGroup
(integer player, function f, integer min, integer max, Card ex, ...)
过滤函数,让玩家player选择min-max张不等于ex的满足条件f的可解放的卡并返回
●Group Duel.GetTributeGroup(Card c)
返回用于通常召唤c可解放(上级召唤用)的卡片组
●integer Duel.GetTributeCount(Card c)
返回用于通常召唤c的祭品数量。
此数量不一定等于上一个函数的返回值中的卡片数量。
因为某些卡可以作为两个祭品来使用。
●Group Duel.SelectTribute(integer player, Card c, integer min, integer max)
让玩家player选择用于通常召唤c的min-max个祭品。
●integer Duel.GetTargetCount
(function f, integer player, integer s, integer o, Card ex, ...)
基本同Duel.GetMatchingGroupCount,
不同之处在于需要追加判定卡片是否能成为当前正在处理的效果的对象。
●boolean Duel.IsExistingTarget
(function f, integer player, integer s, integer o, integer count, Card ex, ...)
过滤函数,检查指定
位置是否存在至少count张满足过滤条件f并且不等于ex
并且可以成为当前正在处理的效果的对象的卡。
第7个参数开始为额外参数。
●Group Duel.SelectTarget(
integer sel_player, function f, integer player,
integer s, integer o, integer min, integer max,Card ex, ...)
过滤函数,让玩家sel_player选择指定
位置满足过滤条件f并且不等于ex
并且可以成为当前正在处理的效果的对象的min-max张卡。
第9个参数开始为额外参数。
此函数会同时酱当前正在处理的连锁的对象设置成选择的卡
●Group Duel.SelectFusionMaterial(integer player, Card c, Group g)
让玩家player从g中选择一组满足c的融合素材的卡
●void Duel.SetFusionMaterial(Group g)
设置g为需要使用的融合素材
●void Duel.SetSynchroMaterial(Group g)
设置g为需要使用的同调素材
●Group Duel.SelectSynchroMaterial
(integer player, Card c, function f1, function f2, integer min)
让玩家选择用于同调c需要的满足条件的数量至少是min的一组素材。
f1是调整需要满足的过滤条件。f2是调整以外的部分需要满足的过滤条件。
●boolean Duel.CheckSynchroMaterial
(Card c, function f1, function f2, integer min)
检查是否存在一组满足条件的卡作为同调召唤c的素材。f1,f2,min同上。
●Group Duel.SelectTunerMaterial
(integer player, Card c, Card tuner, function f1, function f2, integer min)
让玩家选择用于同调c需要的满足条件的以tuner作为调整的数量至少是min的一组素材。
f1是调整需要满足的过滤条件。f2是调整以外的部分需要满足的过滤条件。
●boolean Duel.CheckTunerMaterial
(Card c, Card tuner, function f1, function f2, integer min)
检查以tuner作为调整是否存在一组满足条件的卡作为同调召唤c的素材。f1,f2,min同上。
●Group Duel.GetRitualMaterial(integer player)
返回玩家player可用的用于仪式召唤素材的卡片组。
包含手上,场上可解放的以及墓地的仪式魔人等卡。
●void Duel.ReleaseRitualMaterial(Group g)
解放仪式用的素材g。如果是墓地的仪式魔人等卡则除外。
●void Duel.SetTargetCard(Group g)
把当前正在处理的连锁的对象设置成g。
注,这里的对象指的的广义的对象,包括不取对象的效果可能要处理的对象。
●void Duel.SetTargetPlayer(integer player)
把当前正在处理的连锁的对象玩家设置成player。
●void Duel.SetTargetParam(integer param)
把当前正在处理的连锁的对象参数设置成param。
●void Duel.SetOperationInfo(integer chainc, integer category,
Card|Group targets, integer count, integer target_player, integer target_param)
设置当前处理的连锁的操作信息。此操作信息包含了效果处理中确定要处理的效果分类。
比如潜行狙击手需要设置CATEGORY_DICE,但是不能设置CATEGORY_DESTROY,因为不确定。
对于破坏效果,targets需要设置成发动时可能成为连锁的影响对象的卡,
并设置count为发动时确定的要处理的卡的数量。
比如黑洞发动时,targets需要设定为场上的所有怪物,count设置成场上的怪的数量。
对于CATEGORY_SPECIAL_SUMMON,CATEGORY_TOHAND,CATEGORY_TODECK等分类,
如果取对象则设置targets为对象,count为对象的数量;
如果不取对象则设置targets为nil,count为预计要处理的卡的数量,
并设置target_param为预计要处理的卡的位置。
例如增援:SetOperationInfo(0,CATEGORY_TOHAND,nil,1,0,LOCATION_DECK)。
操作信息用于很多效果的发动的检测,例如星尘龙,王家沉眠之谷等。
●... Duel.GetOperationInfo(integer chainc, integer category)
返回连锁chainc的category分类的操作信息。返回值为5个,
第一个返回值是false的话表示不存在该分类。后4个返回值对应上一个函数的后4个参数。
●integer Duel.GetOperationCount(integer chainc)
返回连锁chainc包含的操作分类的数量
●Group Duel.GetExceedMaterial(Card c)
返回c的超量素材
●void Duel.Overlay(Card c, Card|Group ocard)
把ocard作为c的叠放卡叠放
●Group Duel.GetOverlayGroup(integer player, integer s, integer o)
返回指定位置的所有叠放的卡
●Integer Duel.GetOverlayCount(integer player, integer s, integer o)
返回指定位置的所有叠放的卡的数量
●void Duel.RemoveOverlayCard(integer player, integer s,
integer o, integer min, integer max, integer reason)
以reason原因移除指定位置的min-max张叠放卡
●void Duel.Hint(integer player, integer desc)
给玩家发送内置消息提示
●boolean Duel.SelectEffectYesNo(integer player, integer code)
让玩家选择是否发动卡的效果
●boolean Duel.SelectYesNo(integer player, integer desc)
让玩家选择是或否
●integer Duel.SelectOption(integer player, ...)
让玩家选择选项。从第二个参数开始,每一个参数代表一条选项。
返回选择的选项的序号。
●integer Duel.SelectDisableField
(integer player, integer count, integer s, integer o, integer filter)
让玩家player选择指定位置的count个位置不能使用。
●integer Duel.AnnounceRace(integer player, integer count, integer available)
让玩家player从可选的种族中宣言count个种族。available是所有可选种族的组合值。
●integer Duel.AnnounceAttribute(
integer player, integer count, integer available)
让玩家player从可选的属性中宣言count个属性。available是所有可选属性的组合值。
●integer Duel.AnnounceCard(integer player)
让玩家player宣言一个卡片代号。
●integer Duel.AnnounceType(integer player)
让玩家player宣言一个卡片类型。
●integer Duel.AnnounceNumber(integer player, ...)
让玩家player宣言一个数字。从第二个参数开始,每一个参数代表一个可宣言的数字。
返回选择的选项的序号。
●integer Duel.AnnounceCoin(integer player)
让玩家player宣言硬币的正反面。
●... Duel.TossCoin(integer player, integer count)
让玩家player投count次硬币。返回值为count个结果。结果是0或者1.
●... Duel.TossDice(integer player, integer count)
让玩家player投count次骰子。返回值为count个结果。结果是1-6.
●void Duel.SetCoinResult( ... )
强行修改投硬币的结果。此函数用于永续的EVENT_TOSS_COIN事件中
●void Duel.SetDiceResult( ... )
强行修改投骰子的结果。此函数用于永续的EVENT_TOSS_DICE事件中
●boolean Duel.IsPlayerAffectByEffect(integer player, integer code)
检查玩家player是否受特性效果的影响
●boolean Duel.IsPlayerCanDraw(integer player)
检查玩家player是否可以效果抽卡
●boolean Duel.IsPlayerCanDiscardDeck(integer player)
检查玩家player是否可以把卡组顶端的卡送去墓地
●boolean Duel.IsPlayerCanDiscardDeckAdCost(integer player, int count)
检查玩家player是否可以把卡组顶端的卡送去墓地作为cost。
当卡组没有足够数量的卡,
或者当卡组中的卡受到送墓转移效果的影响时(如大宇宙,次元裂缝,即使不是全部)
此函数会返回false
●boolean Duel.IsPlayerCanSummon(integer player, integer sumtype, Card c)
检查玩家player是否可以以sumtype方式通常召唤c。
仅当玩家收到“不能上级召唤”等效果的影响时返回false。
●boolean Duel.IsPlayerCanFlipSummon(integer player, Card c)
检查玩家player是否可以反转召唤c。
●boolean Duel.IsPlayerCanSpecialSummonMonster(
integer player, integet code, integer setcode,
integer attack, integer defence integer level,
integer race, integer attribute, [integer pos=POS_FACEUP,
integer target_player=player])
检查玩家player是否可以以pos的表示形式特殊召唤特定属性值的怪物到target_player场上。
此函数通常用于判定是否可以特招token和陷阱怪物。
●boolean Duel.IsPlayerCanRelease(integer player, Card c)
检查玩家是否能解放c
●boolean Duel.IsPlayerCanRemove(integer player, Card c)
检查玩家是否能除外c
●boolean Duel.IsPlayerCanSendtoHand(integer player, Card c)
检查玩家是否能把c送去手牌
●boolean Duel.IsPlayerCanSendtoGrave(integer player, Card c)
检查玩家是否能把c送去墓地
●boolean Duel.IsPlayerCanSendtoDeck(integer player, Card c)
检查玩家是否能把c送去卡组
●boolean Duel.IsChainInactivatable(integer chainc)
检查连锁chainc的发动是否可以被无效化
●boolean Duel.IsChainDisablable(integer chainc)
检查连锁chainc的效果是否可以被无效化
●boolean Duel.CheckChainTarget(integer chainc, Card c)
检查c是否是连锁chainc的正确的对象
●boolean Duel.CheckChainUniqueness()
检查当前连锁中是否存在同名卡的发动。true表示无同名卡。
●boolean Duel.SwapDeckAndGrave(integer player)
现世与冥界的逆转专用。把玩家player的卡组和墓地交换
●boolean Duel.CheckSummonActivity(integer player)
检查玩家player本回合有没有进行过召唤的行为。
召唤被无效视作进行过召唤行为。
●boolean Duel.CheckNormalSummonActivity(integer player)
检查玩家player本回合有没有进行过通常召唤的行为。包括召唤和set
●boolean Duel.CheckFlipSummonActivity(integer player)
检查玩家player本回合有没有进行过反转召唤的行为。
●boolean Duel.CheckFlipSummonActivity(integer player)
检查玩家player本回合有没有进行过特殊召唤的行为。
特殊召唤的行为包括:
进行了入连锁和不入连锁的特殊召唤;
发动了确定要特殊召唤的效果但是效果被无效
不包括:发动了确定要特殊召唤的效果但是发动被无效
●boolean Duel.CheckAttackActivity(integer player)
检查玩家player本回合有没有进行过攻击。
\ No newline at end of file
--Locations 区域
LOCATION_DECK =0x01 --卡组
LOCATION_HAND =0x02 --手牌
LOCATION_MZONE =0x04 --怪兽区
LOCATION_SZONE =0x08 --魔陷区
LOCATION_GRAVE =0x10 --墓地
LOCATION_REMOVED =0x20 --除外区
LOCATION_EXTRA =0x40 --额外
LOCATION_OVERLAY =0x80 --超量素材
LOCATION_ONFIELD =0x0c --场上(怪兽+魔陷)
LOCATION_DECKBOT =0x10001 --卡组底部
LOCATION_DECKSHF =0x20001 --卡组顶部
--Locations (for SetRange)
LOCATION_FZONE =0x100 --场地区
LOCATION_PZONE =0x200 --摇摆区
--Positions 表示形式
POS_FACEUP_ATTACK =0x1 --表侧攻击
POS_FACEDOWN_ATTACK =0x2 --里侧攻击
POS_FACEUP_DEFENCE =0x4 --表侧守备
POS_FACEDOWN_DEFENCE =0x8 --里侧守备
POS_FACEUP =0x5 --正面表示
POS_FACEDOWN =0xa --背面表示
POS_ATTACK =0x3 --攻击表示
POS_DEFENCE =0xc --守备表示
NO_FLIP_EFFECT =0x10000--不发动反转效果
--Types 卡片类型
TYPE_MONSTER =0x1 --怪兽卡
TYPE_SPELL =0x2 --魔法卡
TYPE_TRAP =0x4 --陷阱卡
TYPE_NORMAL =0x10 --通常
TYPE_EFFECT =0x20 --效果
TYPE_FUSION =0x40 --融合
TYPE_RITUAL =0x80 --仪式
TYPE_TRAPMONSTER =0x100 --陷阱怪兽
TYPE_SPIRIT =0x200 --灵魂
TYPE_UNION =0x400 --同盟
TYPE_DUAL =0x800 --二重
TYPE_TUNER =0x1000 --调整
TYPE_SYNCHRO =0x2000 --同调
TYPE_TOKEN =0x4000 --衍生物
TYPE_QUICKPLAY =0x10000 --速攻
TYPE_CONTINUOUS =0x20000 --永续
TYPE_EQUIP =0x40000 --装备
TYPE_FIELD =0x80000 --场地
TYPE_COUNTER =0x100000 --反击
TYPE_FLIP =0x200000 --翻转
TYPE_TOON =0x400000 --卡通
TYPE_XYZ =0x800000 --超量
TYPE_PENDULUM =0x1000000 --摇摆
--Attributes 属性
ATTRIBUTE_EARTH =0x01 --地
ATTRIBUTE_WATER =0x02 --水
ATTRIBUTE_FIRE =0x04 --炎
ATTRIBUTE_WIND =0x08 --风
ATTRIBUTE_LIGHT =0x10 --光
ATTRIBUTE_DARK =0x20 --暗
ATTRIBUTE_DEVINE =0x40 --神
--Races 种族
RACE_ALL =0xffffff --全种族
RACE_WARRIOR =0x1 --战士
RACE_SPELLCASTER =0x2 --魔法师
RACE_FAIRY =0x4 --天使
RACE_FIEND =0x8 --恶魔
RACE_ZOMBIE =0x10 --不死
RACE_MACHINE =0x20 --机械
RACE_AQUA =0x40 --水
RACE_PYRO =0x80 --炎
RACE_ROCK =0x100 --岩石
RACE_WINDBEAST =0x200 --鸟兽
RACE_PLANT =0x400 --植物
RACE_INSECT =0x800 --昆虫
RACE_THUNDER =0x1000 --雷
RACE_DRAGON =0x2000 --龙
RACE_BEAST =0x4000 --兽
RACE_BEASTWARRIOR =0x8000 --兽战士
RACE_DINOSAUR =0x10000 --恐龙
RACE_FISH =0x20000 --鱼
RACE_SEASERPENT =0x40000 --海龙
RACE_REPTILE =0x80000 --爬虫
RACE_PSYCHO =0x100000 --念动力
RACE_DEVINE =0x200000 --幻神兽
RACE_CREATORGOD =0x400000 --创造神
RACE_WYRM =0x800000 --幻龙
--Reason 卡片到当前位置的原因
REASON_DESTROY =0x1 --破坏
REASON_RELEASE =0x2 --解放
REASON_TEMPORARY =0x4 --暂时
REASON_MATERIAL =0x8 --作为融合/同调/超量等的素材
REASON_SUMMON =0x10 --召唤
REASON_BATTLE =0x20 --战斗破坏
REASON_EFFECT =0x40 --效果
REASON_COST =0x80 --COST
REASON_ADJUST =0x100 --调整(御前试合)
REASON_LOST_TARGET =0x200 --失去效果对象
REASON_RULE =0x400 --规则
REASON_SPSUMMON =0x800 --特殊召唤
REASON_DISSUMMON =0x1000 --召唤失败
REASON_FLIP =0x2000 --翻转
REASON_DISCARD =0x4000 --丢弃
REASON_RDAMAGE =0x8000 --基本分伤害
REASON_RRECOVER =0x10000 --基本分恢复
REASON_RETURN =0x20000 --回收
REASON_FUSION =0x40000 --融合
REASON_SYNCHRO =0x80000 --同调
REASON_RITUAL =0x100000 --仪式
REASON_XYZ =0x200000 --超量
REASON_REPLACE =0x1000000 --代替
REASON_DRAW =0x2000000 --抽卡
REASON_REDIRECT =0x4000000 --改变去向(大宇宙,带菌等)
REASON_REVEAL =0x8000000 --翻开卡组(森罗)
--Summon Type --召唤类型
SUMMON_TYPE_NORMAL =0x10000000 --通常召唤
SUMMON_TYPE_ADVANCE =0x11000000 --上级(祭品)召唤
SUMMON_TYPE_DUAL =0x12000000 --再度召唤(二重)
SUMMON_TYPE_FLIP =0x20000000 --翻转召唤
SUMMON_TYPE_SPECIAL =0x40000000 --特殊召唤
SUMMON_TYPE_FUSION =0x43000000 --融合召唤
SUMMON_TYPE_RITUAL =0x45000000 --仪式召唤
SUMMON_TYPE_SYNCHRO =0x46000000 --同调召唤
SUMMON_TYPE_XYZ =0x49000000 --超量召唤
SUMMON_TYPE_PENDULUM =0x4a000000 --摇摆召唤
--Status --卡片当前状态
STATUS_DISABLED =0x0001 --效果被无效
STATUS_TO_ENABLE =0x0002 --将变成有效
STATUS_TO_DISABLE =0x0004 --将变成无效
STATUS_PROC_COMPLETE =0x0008 --完成正规召唤(解除苏生限制)
STATUS_SET_TURN =0x0010 --覆盖
STATUS_FLIP_SUMMONED =0x0020 --翻转
STATUS_REVIVE_LIMIT =0x0040 --未解除苏生限制
STATUS_ATTACKED =0x0080 --攻击过
STATUS_FORM_CHANGED =0x0100 --改变过表示形式
STATUS_SUMMONING =0x0200 --召唤中
STATUS_EFFECT_ENABLED =0x0400 --效果有效
STATUS_SUMMON_TURN =0x0800 --在本回合召唤
STATUS_DESTROY_CONFIRMED =0x1000 --破坏确定
STATUS_LEAVE_CONFIRMED =0x2000 --离开确定
STATUS_BATTLE_DESTROYED =0x4000 --战斗破坏确定
STATUS_COPYING_EFFECT =0x8000 --复制效果
STATUS_CHAINING =0x10000 --进入连锁
STATUS_SUMMON_DISABLED =0x20000 --召唤无效
STATUS_ACTIVATE_DISABLED =0x40000 --发动无效
STATUS_UNSUMMONABLE_CARD =0x80000 --不能通常召唤
STATUS_UNION =0x100000 --同盟
STATUS_ATTACK_CANCELED =0x200000 --攻击取消(卷回?)
STATUS_INITIALIZING =0x400000 --初始化..
STATUS_ACTIVATED =0x800000 --效果已发动
STATUS_JUST_POS =0x1000000 --
STATUS_CONTINUOUS_POS =0x2000000 --连续变更表示形式?
STATUS_IS_PUBLIC =0x4000000 --公开展示
STATUS_ACT_FROM_HAND =0x8000000 --在手牌发动
--Assume
ASSUME_CODE =1
ASSUME_TYPE =2
ASSUME_LEVEL =3
ASSUME_RANK =4
ASSUME_ATTRIBUTE =5
ASSUME_RACE =6
ASSUME_ATTACK =7
ASSUME_DEFENCE =8
--Counter --指示物
COUNTER_NEED_PERMIT =0x1000 --某指示物数量上限
COUNTER_NEED_ENABLE =0x2000 --可以放置某指示物
--Phase --阶段
PHASE_DRAW =0x01 --抽卡阶段
PHASE_STANDBY =0x02 --准备阶段
PHASE_MAIN1 =0x04 --主要阶段1
PHASE_BATTLE =0x08 --战斗阶段
PHASE_DAMAGE =0x10 --伤害计算前
PHASE_DAMAGE_CAL =0x20 --伤害计算时
PHASE_MAIN2 =0x40 --主要阶段2
PHASE_END =0x80 --结束阶段
--Player --玩家
PLAYER_NONE =2 --2个玩家都不是
PLAYER_ALL =3 --2个玩家都是
--Chain info --连锁信息
CHAININFO_CHAIN_COUNT =0x01 --连锁数
CHAININFO_TRIGGERING_EFFECT =0x02 --连锁的效果
CHAININFO_TRIGGERING_PLAYER =0x04 --连锁的玩家
CHAININFO_TRIGGERING_CONTROLER =0x08 --连锁的卡的控制者
CHAININFO_TRIGGERING_LOCATION =0x10 --连锁的位置
CHAININFO_TRIGGERING_SEQUENCE =0x20 --连锁的位置的编号(指怪兽和魔陷区的格子)
CHAININFO_TARGET_CARDS =0x40 --连锁的效果的对象(以下3个需要在target函数里设置)
CHAININFO_TARGET_PLAYER =0x80 --连锁的效果的对象(玩家)
CHAININFO_TARGET_PARAM =0x100 --连锁的效果的参数值
CHAININFO_DISABLE_REASON =0x200 --无效的原因
CHAININFO_DISABLE_PLAYER =0x400 --无效的玩家
CHAININFO_CHAIN_ID =0x800 --连锁ID
CHAININFO_TYPE =0x1000 --连锁类型
CHAININFO_EXTTYPE =0x2000 --连锁额外类型
--========== Reset ========== --重置条件(注意:重置条件可以多个相加,例如0x000c0000=0x00040000+0x00080000=RESET_TOGRAVE+RESET_REMOVE)
RESET_DRAW =PHASE_DRAW --抽卡阶段重置
RESET_STANDBY =PHASE_STANDBY --准备阶段重置
RESET_MAIN1 =PHASE_MAIN1 --主要阶段1重置
RESET_BATTLE =PHASE_BATTLE --战斗阶段重置
RESET_DAMAGE =PHASE_DAMAGE --伤害计算前重置
RESET_DAMAGE_CAL =PHASE_DAMAGE_CAL --伤害计算时重置
RESET_MAIN2 =PHASE_MAIN2 --主要阶段2重置
RESET_END =PHASE_END --结束阶段重置
RESET_SELF_TURN =0x0100 --自己回合结束重置
RESET_OPPO_TURN =0x0200 --对方回合结束重置
RESET_PHASE =0x0400 --阶段结束重置(一般和上面那些阶段配合使用
RESET_CHAIN =0x0800 --连锁结束重置
RESET_EVENT =0x1000 --不明(一般和下面这些事件配合使用
RESET_CARD =0x2000
RESET_CODE =0x4000 --卡名改变重置
RESET_COPY =0x8000 --复制效果重置
RESET_DISABLE =0x00010000 --效果无效重置
RESET_TURN_SET =0x00020000 --变里侧重置
RESET_TOGRAVE =0x00040000 --去墓地重置
RESET_REMOVE =0x00080000 --除外重置
RESET_TEMP_REMOVE =0x00100000 --暂时除外重置
RESET_TOHAND =0x00200000 --回手牌或加入手牌重置
RESET_TODECK =0x00400000 --回卡组重置
RESET_LEAVE =0x00800000 --从场上离开重置
RESET_TOFIELD =0x01000000 --到场上重置
RESET_CONTROL =0x02000000 --控制器变更重置
RESET_OVERLAY =0x04000000 --超量叠放重置
--========== Types ========== --效果类型(定义效果触发类型,和codes一起使用)
EFFECT_TYPE_SINGLE =0x0001 --自己状态变化时触发
EFFECT_TYPE_FIELD =0x0002 --场上所有卡状态变化时触发
EFFECT_TYPE_EQUIP =0x0004 --装备效果
EFFECT_TYPE_ACTIONS =0x0008 --怪兽效果发动(对峙的G)
EFFECT_TYPE_ACTIVATE =0x0010 --魔陷发动
EFFECT_TYPE_FLIP =0x0020 --翻转效果
EFFECT_TYPE_IGNITION =0x0040 --起动效果
EFFECT_TYPE_TRIGGER_O =0x0080 --诱发选发效果
EFFECT_TYPE_QUICK_O =0x0100 --诱发即时效果
EFFECT_TYPE_TRIGGER_F =0x0200 --诱发必发效果
EFFECT_TYPE_QUICK_F =0x0400 --诱发即时必发效果(熊猫龙等)
EFFECT_TYPE_CONTINUOUS =0x0800 --不入连锁的诱发效果
--========== Flags ========== --效果的特殊性质
EFFECT_FLAG_INITIAL =0x0001 --可以发动的
EFFECT_FLAG_FUNC_VALUE =0x0002 --
EFFECT_FLAG_COUNT_LIMIT =0x0004 --
EFFECT_FLAG_FIELD_ONLY =0x0008 --场上只有1只
EFFECT_FLAG_CARD_TARGET =0x0010 --取对象效果
EFFECT_FLAG_IGNORE_RANGE =0x0020 --使用限制?(禁止令 大宇宙 王宫的铁壁)
EFFECT_FLAG_ABSOLUTE_TARGET =0x0040 --
EFFECT_FLAG_IGNORE_IMMUNE =0x0080 --无视效果免疫
EFFECT_FLAG_SET_AVAILABLE =0x0100 --不能发动?
EFFECT_FLAG_MULTIACT_HAND =0x0200 --手牌有多张可以同时诱发(蔷薇妖精等)
EFFECT_FLAG_CANNOT_DISABLE =0x0400 --不会被无效
EFFECT_FLAG_PLAYER_TARGET =0x0800 --以玩家为对象
EFFECT_FLAG_BOTH_SIDE =0x1000 --双方都能使用(部分场地,弹压)
EFFECT_FLAG_COPY_INHERIT =0x2000 --残留?持续?效果
EFFECT_FLAG_DAMAGE_STEP =0x4000 --可以在伤害步骤发动
EFFECT_FLAG_DAMAGE_CAL =0x8000 --可以在伤害计算时发动
EFFECT_FLAG_DELAY =0x10000 --场合(不会被卡时点
EFFECT_FLAG_SINGLE_RANGE =0x20000 --只对自己有效
EFFECT_FLAG_UNCOPYABLE =0x40000 --不能复制(规则效果
EFFECT_FLAG_OATH =0x80000 --誓约效果
EFFECT_FLAG_SPSUM_PARAM =0x100000 --规则特殊召唤(熔岩魔神 光子杀戮者)
EFFECT_FLAG_REPEAT =0x200000 --发动被无效后可以再次发动
EFFECT_FLAG_NO_TURN_RESET =0x400000 --发条等“这张卡在场上只能发动一次”的效果
EFFECT_FLAG_EVENT_PLAYER =0x800000 --视为对方玩家的效果(动作?)
EFFECT_FLAG_OWNER_RELATE =0x1000000 --和效果持有者相关
EFFECT_FLAG_AVAILABLE_BD =0x2000000 --战斗伤害操作(纳祭之魔 地狱战士)
EFFECT_FLAG_CLIENT_HINT =0x4000000 --获得效果?
EFFECT_FLAG_CHAIN_UNIQUE =0x8000000 --同一组连锁只能发动一次
EFFECT_FLAG_NAGA =0x10000000 --神卡纳迦!
EFFECT_FLAG_COF =0x20000000 --邪恶的仪式
EFFECT_FLAG_CVAL_CHECK =0x40000000 --以卡为COST的诱发效果需要使用
--========== Codes ========== --对永续性效果表示效果类型 EFFECT开头,对诱发型效果表示触发效果的事件/时点 EVENT开头
EFFECT_IMMUNE_EFFECT =1 --效果免疫
EFFECT_DISABLE =2 --效果无效(一时无效?)
EFFECT_CANNOT_DISABLE =3 --效果不能无效
EFFECT_SET_CONTROL =4 --改变控制器
EFFECT_CANNOT_CHANGE_CONTROL =5 --不能改变控制权
EFFECT_CANNOT_ACTIVATE =6 --不能发动(魔法·陷阱)卡
EFFECT_CANNOT_TRIGGER =7 --不能发动效果
EFFECT_DISABLE_EFFECT =8 --效果无效
EFFECT_DISABLE_CHAIN =9 --不能连锁
EFFECT_DISABLE_TRAPMONSTER =10 --陷阱怪兽无效
EFFECT_CANNOT_INACTIVATE =12 --不能发动
EFFECT_CANNOT_DISEFFECT =13 --效果不能被无效(魔法·陷阱)
EFFECT_CANNOT_CHANGE_POSITION =14 --不能改变表示形式
EFFECT_TRAP_ACT_IN_HAND =15 --陷阱可以从手牌发动
EFFECT_TRAP_ACT_IN_SET_TURN =16 --陷阱可以在盖放的回合发动
EFFECT_REMAIN_FIELD =17 --X回合内留在场上(光之护封剑等)
EFFECT_MONSTER_SSET =18 --怪兽可以在魔陷区放置
EFFECT_CANNOT_SUMMON =20 --不能召唤怪兽
EFFECT_CANNOT_FLIP_SUMMON =21 --不能翻转召唤怪兽
EFFECT_CANNOT_SPECIAL_SUMMON =22 --不能特殊召唤怪兽
EFFECT_CANNOT_MSET =23 --不能覆盖怪兽
EFFECT_CANNOT_SSET =24 --不能覆盖魔陷
EFFECT_CANNOT_DRAW =25 --不能抽卡
EFFECT_CANNOT_DISABLE_SUMMON =26 --召唤不会无效
EFFECT_CANNOT_DISABLE_SPSUMMON =27 --特殊召唤不会无效
EFFECT_SET_SUMMON_COUNT_LIMIT =28 --限制每回合放置怪兽次数
EFFECT_EXTRA_SUMMON_COUNT =29 --增加召唤(通常召唤)次数
EFFECT_SPSUMMON_CONDITION =30 --特殊召唤条件
EFFECT_REVIVE_LIMIT =31 --苏生限制
EFFECT_SUMMON_PROC =32 --召唤规则
EFFECT_LIMIT_SUMMON_PROC =33 --召唤规则限制
EFFECT_SPSUMMON_PROC =34 --特殊召唤规则
EFFECT_EXTRA_SET_COUNT =35 --增加盖放(通常召唤)次数
EFFECT_SET_PROC =36 --放置(通常召唤)规则
EFFECT_LIMIT_SET_PROC =37 --放置(通常召唤)规则限制
EFFECT_DEVINE_LIGHT =38 --???(神圣光辉 魔术礼帽)
EFFECT_CANNOT_DISABLE_FLIP_SUMMON =39 --翻转召唤不会无效
EFFECT_INDESTRUCTABLE =40 --不会被破坏
EFFECT_INDESTRUCTABLE_EFFECT =41 --不会被效果破坏
EFFECT_INDESTRUCTABLE_BATTLE =42 --不会被战斗破坏
EFFECT_UNRELEASABLE_SUM =43 --不能做上级召唤的祭品
EFFECT_UNRELEASABLE_NONSUM =44 --不能做上级召唤以外的祭品
EFFECT_DESTROY_SUBSTITUTE =45 --代替破坏(别人破坏时牺牲自己
EFFECT_CANNOT_RELEASE =46 --不能进行解放行为
EFFECT_INDESTRUCTABLE_COUNT =47 --一回合几次不会被破坏
EFFECT_UNRELEASABLE_EFFECT =48 --不能被解放
EFFECT_DESTROY_REPLACE =50 --代替破坏(自己破坏时牺牲别人
EFFECT_RELEASE_REPLACE =51 --代替解放
EFFECT_SEND_REPLACE =52 --可以不送去XX而送去OO(宝玉 甜点城堡等)
EFFECT_CANNOT_DISCARD_HAND =55 --不能丢弃手牌
EFFECT_CANNOT_DISCARD_DECK =56 --不能把卡组上方的卡送去墓地
EFFECT_CANNOT_USE_AS_COST =57 --不能作为COST使用
EFFECT_CANNOT_PLACE_COUNTER =58 --不能使用的位置
EFFECT_LEAVE_FIELD_REDIRECT =60 --离场时重新指定去向
EFFECT_TO_HAND_REDIRECT =61 --回手牌时重新指定去向
EFFECT_TO_DECK_REDIRECT =62 --回卡组时重新指定去向
EFFECT_TO_GRAVE_REDIRECT =63 --去墓地时重新指定去向
EFFECT_REMOVE_REDIRECT =64 --除外时重新指定去向
EFFECT_CANNOT_TO_HAND =65 --不能加入手牌
EFFECT_CANNOT_TO_DECK =66 --不能回卡组
EFFECT_CANNOT_REMOVE =67 --不能除外
EFFECT_CANNOT_TO_GRAVE =68 --不能去墓地
EFFECT_CANNOT_TURN_SET =69 --不能变里侧
EFFECT_CANNOT_BE_BATTLE_TARGET =70 --不能成为攻击对象
EFFECT_CANNOT_BE_EFFECT_TARGET =71 --不能成为效果对象
EFFECT_IGNORE_BATTLE_TARGET =72 --不能成为攻击对象-鶸型(传说的渔人)
EFFECT_CANNOT_DIRECT_ATTACK =73 --不能直接攻击
EFFECT_DIRECT_ATTACK =74 --可以直接攻击
EFFECT_DUAL_STATUS =75 --二重状态
EFFECT_EQUIP_LIMIT =76 --装备对象限制
EFFECT_DUAL_SUMMONABLE =77 --可以再度召唤
EFFECT_REVERSE_DAMAGE =80 --伤害变回复
EFFECT_REVERSE_RECOVER =81 --回复变伤害
EFFECT_CHANGE_DAMAGE =82 --改变伤害数值
EFFECT_REFLECT_DAMAGE =83 --反射伤害
EFFECT_CANNOT_ATTACK =85 --不能攻击
EFFECT_CANNOT_ATTACK_ANNOUNCE =86 --不能攻击宣言
EFFECT_CANNOT_CHANGE_POS_E =87 --不会被卡的效果变成守备表示(攻击性云魔物)
EFFECT_ACTIVATE_COST =90 --发动代价(魔力之枷)
EFFECT_SUMMON_COST =91 --召唤代价
EFFECT_SPSUMMON_COST =92 --特殊召唤代价(暴君龙)
EFFECT_FLIPSUMMON_COST =93 --翻转召唤代价
EFFECT_MSET_COST =94 --怪兽放置代价
EFFECT_SSET_COST =95 --魔陷放置代价
EFFECT_ATTACK_COST =96 --攻击代价(霞之谷猎鹰)
EFFECT_UPDATE_ATTACK =100 --改变攻击力(攻击力增加/减少)
EFFECT_SET_ATTACK =101 --设置攻击力(攻击变成)
EFFECT_SET_ATTACK_FINAL =102 --设置最终攻击力(神之化身)
EFFECT_SET_BASE_ATTACK =103 --设置原本攻击力
EFFECT_UPDATE_DEFENCE =104 --改变防御力(参考攻击力,下同)
EFFECT_SET_DEFENCE =105 --设置防御力
EFFECT_SET_DEFENCE_FINAL =106 --设置最终攻击力
EFFECT_SET_BASE_DEFENCE =107 --设置原本攻击力
EFFECT_REVERSE_UPDATE =108 --倒置改变攻击力、防御力(天邪鬼)
EFFECT_SWAP_AD =109 --交换攻防
EFFECT_SWAP_BASE_AD =110 --交换原本攻防
EFFECT_ADD_CODE =113 --增加卡名
EFFECT_CHANGE_CODE =114 --改名卡名
EFFECT_ADD_TYPE =115 --增加卡片种类(types)
EFFECT_REMOVE_TYPE =116 --删除卡片种类
EFFECT_CHANGE_TYPE =117 --改变卡片种类
EFFECT_ADD_RACE =120 --增加种族
EFFECT_REMOVE_RACE =121 --删除种族
EFFECT_CHANGE_RACE =122 --改变种族
EFFECT_ADD_ATTRIBUTE =125 --增加属性
EFFECT_REMOVE_ATTRIBUTE =126 --删除属性
EFFECT_CHANGE_ATTRIBUTE =127 --改变属性
EFFECT_UPDATE_LEVEL =130 --改变等级
EFFECT_CHANGE_LEVEL =131 --设置等级
EFFECT_UPDATE_RANK =132 --改变阶级
EFFECT_CHANGE_RANK =133 --设置阶级
EFFECT_UPDATE_LSCALE =134 --改变左刻度
EFFECT_CHANGE_LSCALE =135 --设置左刻度
EFFECT_UPDATE_RSCALE =136 --改变右刻度
EFFECT_CHANGE_RSCALE =137 --设置右刻度
EFFECT_SET_POSITION =140 --改变表示形式
EFFECT_SELF_DESTROY =141 --自灭(罪系列等)
EFFECT_DOUBLE_TRIBUTE =150 --可以作为2个祭品
EFFECT_DECREASE_TRIBUTE =151 --减少祭品
EFFECT_DECREASE_TRIBUTE_SET =152 --减少放置怪兽的祭品
EFFECT_EXTRA_RELEASE =153 --代替解放(灵魂交错)
EFFECT_TRIBUTE_LIMIT =154 --祭品限制
EFFECT_EXTRA_RELEASE_SUM =155 --代替召唤解放(帝王的烈旋)
EFFECT_PUBLIC =160 --公开手牌
EFFECT_COUNTER_PERMIT =0x10000--允许放置指示物类型
EFFECT_COUNTER_LIMIT =0x20000--允许放置指示物数量
EFFECT_RCOUNTER_REPLACE =0x30000--代替取除(指示物?)
EFFECT_LPCOST_CHANGE =170 --改变生命值代价
EFFECT_LPCOST_REPLACE =171 --代替生命值代价
EFFECT_SKIP_DP =180 --跳过抽卡阶段
EFFECT_SKIP_SP =181 --跳过准备阶段
EFFECT_SKIP_M1 =182 --跳过主要阶段1
EFFECT_SKIP_BP =183 --跳过战斗阶段
EFFECT_SKIP_M2 =184 --跳过主要阶段2
EFFECT_CANNOT_BP =185 --不能进入战斗阶段
EFFECT_CANNOT_M2 =186 --不能进入主要阶段2
EFFECT_CANNOT_EP =187 --不能进入结束阶段
EFFECT_SKIP_TURN =188 --跳过整个回合
EFFECT_DEFENCE_ATTACK =190 --可以守备表示攻击
EFFECT_MUST_ATTACK =191 --必须攻击
EFFECT_FIRST_ATTACK =192 --必须第一个攻击
EFFECT_ATTACK_ALL =193 --可以攻击所有怪兽
EFFECT_EXTRA_ATTACK =194 --增加攻击次数
EFFECT_MUST_BE_ATTACKED =195 --必须攻击(那只怪兽)
EFFECT_AUTO_BE_ATTACKED =196 --只能攻击(那只怪兽)
EFFECT_ATTACK_DISABLED =197 --不能攻击
EFFECT_NO_BATTLE_DAMAGE =200 --不会给对方造成战斗伤害
EFFECT_AVOID_BATTLE_DAMAGE =201 --不会对自己造成战斗伤害
EFFECT_REFLECT_BATTLE_DAMAGE =202 --反弹战斗伤害
EFFECT_PIERCE =203 --贯穿伤害
EFFECT_BATTLE_DESTROY_REDIRECT =204 --战斗破坏时重新指定去向
EFFECT_BATTLE_DAMAGE_TO_EFFECT =205 --战斗伤害视为效果伤害
EFFECT_TOSS_COIN_REPLACE =220 --重新抛硬币
EFFECT_TOSS_DICE_REPLACE =221 --重新掷骰子
EFFECT_FUSION_MATERIAL =230 --可以当作仪式素材
EFFECT_CHAIN_MATERIAL =231 --可以当作融合素材
EFFECT_SYNCHRO_MATERIAL =232 --可以当作同调素材
EFFECT_XYZ_MATERIAL =233 --可以当作超量素材
EFFECT_FUSION_SUBSTITUTE =234 --代替融合素材
EFFECT_CANNOT_BE_FUSION_MATERIAL =235--不能做融合素材
EFFECT_CANNOT_BE_SYNCHRO_MATERIAL =236--不能做同调素材
EFFECT_SYNCHRO_MATERIAL_CUSTOM =237--同调素材限制
EFFECT_CANNOT_BE_XYZ_MATERIAL =238--不能做超量素材
EFFECT_SYNCHRO_LEVEL =240--做同调素材时的等级
EFFECT_RITUAL_LEVEL =241--做仪式祭品时的等级
EFFECT_XYZ_LEVEL =242--做超量素材时的等级
EFFECT_EXTRA_RITUAL_MATERIAL =243--在墓地当做仪式祭品
EFFECT_NONTUNER =244--同时当作调整以外的怪兽(幻影王 幽骑)
EFFECT_OVERLAY_REMOVE_REPLACE =245--代替去除超量素材
EFFECT_SCRAP_CHIMERA =246--废铁奇美拉
EFFECT_XMAT_COUNT_LIMIT =247--超量素材限制(光天使 天座)
EFFECT_SPSUM_EFFECT_ACTIVATED =250 --发动特殊召唤的效果(冥府的使者 格斯)
EFFECT_MATERIAL_CHECK =251 --检查素材
EFFECT_DISABLE_FIELD =260 --无效区域(扰乱王等)
EFFECT_USE_EXTRA_MZONE =261 --怪兽区域封锁
EFFECT_USE_EXTRA_SZONE =262 --魔法区域封锁
EFFECT_MAX_MZONE =263 --宇宙收缩
EFFECT_MAX_SZONE =264 --宇宙收缩
EFFECT_HAND_LIMIT =270 --手牌数量限制
EFFECT_DRAW_COUNT =271 --抽卡阶段的抽卡数
EFFECT_SPIRIT_DONOT_RETURN =280 --灵魂怪兽不返会手牌
EFFECT_SPIRIT_MAYNOT_RETURN =281 --灵魂怪兽可以不返回手牌
EFFECT_CHANGE_ENVIRONMENT =290 --改变场地
EFFECT_NECRO_VALLEY =291 --王家长眠之谷
EFFECT_FORBIDDEN =292 --禁止令
EFFECT_NECRO_VALLEY_IM =293 --不受「王家长眠之谷」的影响
EFFECT_REVERSE_DECK =294 --翻转卡组
EFFECT_REMOVE_BRAINWASHING =295 --洗脑解除
EFFECT_BP_TWICE =296 --2次战斗阶段
EFFECT_UNIQUE_CHECK =297 --
EFFECT_MATCH_KILL =300 --胜利龙
EFFECT_SYNCHRO_CHECK =310 --基因组斗士
EFFECT_QP_ACT_IN_NTPHAND =311 --对方回合从自己手卡发动(失乐的圣女)
EFFECT_MUST_BE_SMATERIAL =312 --同调素材必须
EFFECT_SPSUMMON_PROC_G =320 --P召唤规则
EFFECT_SUMMON_COUNT_LIMIT =330 --召唤次数限制
EFFECT_SPSUMMON_COUNT_LIMIT =331 --特殊召唤次数限制
EFFECT_FLIP_SUMMON_COUNT_LIMIT =332 --反转召唤次数限制
--下面是诱发效果的诱发事件、时点 (如果是TYPE_SINGLE则自己发生以下事件后触发,如果TYPE_FIELD则场上任何卡发生以下事件都触发)
EVENT_STARTUP =1000 --游戏开始时
EVENT_FLIP =1001 --翻转时
EVENT_FREE_CHAIN =1002 --自由时点(强脱等,还有昴星团等诱发即时效果)
EVENT_DESTROY =1010 --破坏时
EVENT_REMOVE =1011 --除外时
EVENT_TO_HAND =1012 --加入手牌时
EVENT_TO_DECK =1013 --回卡组时
EVENT_TO_GRAVE =1014 --进墓地时
EVENT_LEAVE_FIELD =1015 --离场时
EVENT_CHANGE_POS =1016 --表示形式变更时
EVENT_RELEASE =1017 --解放时
EVENT_DISCARD =1018 --丢弃手牌时
EVENT_LEAVE_FIELD_P =1019 --永久离场时
EVENT_CHAIN_SOLVING =1020 --连锁处理时
EVENT_CHAIN_ACTIVATING =1021 --连锁发动时
EVENT_CHAIN_SOLVED =1022 --连锁处理结束时
EVENT_CHAIN_ACTIVATED =1023 --连锁发动完时
EVENT_CHAIN_NEGATED =1024 --连锁被无效时(发动无效)
EVENT_CHAIN_DISABLED =1025 --连锁被无效时(效果无效)
EVENT_CHAIN_END =1026 --连锁结束时
EVENT_CHAINING =1027 --正在连锁
EVENT_BECOME_TARGET =1028 --成为效果对象时
EVENT_DESTROYED =1029 --破坏确定时
EVENT_ADJUST =1040 --调整(御前试合)
EVENT_SUMMON_SUCCESS =1100 --通常召唤成功时
EVENT_FLIP_SUMMON_SUCCESS =1101 --翻转召唤成功时
EVENT_SPSUMMON_SUCCESS =1102 --特殊召唤成功时
EVENT_SUMMON =1103 --召唤时(怪兽还没上场、神宣等时点)
EVENT_FLIP_SUMMON =1104 --翻转召唤时
EVENT_SPSUMMON =1105 --特殊召唤时
EVENT_MSET =1106 --放置怪兽时
EVENT_SSET =1107 --放置魔陷时
EVENT_BE_MATERIAL =1108 --作为融合/仪式同调/超量素材时
EVENT_BE_PRE_MATERIAL =1109 --将要作为融合/仪式同调/超量素材时
EVENT_DRAW =1110 --抽卡
EVENT_DAMAGE =1111 --造成战斗/效果伤害时
EVENT_RECOVER =1112 --回复生命值时
EVENT_PREDRAW =1113 --抽卡前
EVENT_CONTROL_CHANGED =1120 --控制权变更
EVENT_EQUIP =1121 --装备卡装备时
EVENT_ATTACK_ANNOUNCE =1130 --攻击宣言时
EVENT_BE_BATTLE_TARGET =1131 --被选为攻击对象时
EVENT_BATTLE_START =1132 --战斗阶段开始时
EVENT_BATTLE_CONFIRM =1133 --选完攻击对象时
EVENT_PRE_DAMAGE_CALCULATE =1134 --伤害计算前
EVENT_DAMAGE_CALCULATING =1135 --伤害计算时
EVENT_PRE_BATTLE_DAMAGE =1136 --即将产生战斗伤害
EVENT_BATTLE_END =1137 --战斗结束(开辟)
EVENT_BATTLED =1138 --伤害计算后(异女、同反转效果时点)
EVENT_BATTLE_DESTROYING =1139 --战斗破坏送去墓地时(BF-苍炎之修罗)
EVENT_BATTLE_DESTROYED =1140 --战斗破坏送去墓地时(杀人番茄等)
EVENT_DAMAGE_STEP_END =1141 --伤害步骤结束时
EVENT_ATTACK_DISABLED =1142 --攻击无效时(翻倍机会)
EVENT_BATTLE_DAMAGE =1143 --造成战斗伤害时
EVENT_TOSS_DICE =1150 --掷骰子时
EVENT_TOSS_COIN =1151 --抛硬币时
EVENT_TOSS_COIN_NEGATE =1152 --抛硬币被无效时
EVENT_TOSS_DICE_NEGATE =1153 --掷骰子被无效时
EVENT_LEVEL_UP =1200 --等级上升时
EVENT_PAY_LPCOST =1201 --支付生命值时
EVENT_DETACH_MATERIAL =1202 --去除超量素材时
EVENT_CONFIRM_DECKTOP =1203 --确认卡组最上方时
EVENT_CONFIRM_CARDS =1204 --确认卡时
EVENT_TURN_END =1210 --回合结束时
EVENT_PHASE =0x1000 --阶段结束时
EVENT_PHASE_START =0x2000 --阶段开始时
EVENT_ADD_COUNTER =0x10000--增加指示物时
EVENT_REMOVE_COUNTER =0x20000--去除指示物时
--Categorys 效果分类(表示这个效果将要发生什么事,OperationInfo设置了效果分类才能触发针对这一类型发动的卡,如破坏->星尘龙
CATEGORY_DESTROY =0x1 --破坏效果
CATEGORY_RELEASE =0x2 --解放效果
CATEGORY_REMOVE =0x4 --除外效果
CATEGORY_TOHAND =0x8 --加入手牌效果
CATEGORY_TODECK =0x10 --回卡组效果
CATEGORY_TOGRAVE =0x20 --送去墓地效果
CATEGORY_DECKDES =0x40 --卡组破坏效果
CATEGORY_HANDES =0x80 --手牌破坏效果
CATEGORY_SUMMON =0x100 --含召唤的效果
CATEGORY_SPECIAL_SUMMON =0x200 --含特殊召唤的效果
CATEGORY_TOKEN =0x400 --含衍生物效果
CATEGORY_FLIP =0x800 --含翻转效果
CATEGORY_POSITION =0x1000 --改变表示形式效果
CATEGORY_CONTROL =0x2000 --改变控制权效果
CATEGORY_DISABLE =0x4000 --使效果无效效果
CATEGORY_DISABLE_SUMMON =0x8000 --无效召唤效果
CATEGORY_DRAW =0x10000 --抽卡效果
CATEGORY_SEARCH =0x20000 --检索卡组效果
CATEGORY_EQUIP =0x40000 --装备效果
CATEGORY_DAMAGE =0x80000 --伤害效果
CATEGORY_RECOVER =0x100000 --回复效果
CATEGORY_ATKCHANGE =0x200000 --改变攻击效果
CATEGORY_DEFCHANGE =0x400000 --改变防御效果
CATEGORY_COUNTER =0x800000 --指示物效果
CATEGORY_COIN =0x1000000 --硬币效果
CATEGORY_DICE =0x2000000 --骰子效果
CATEGORY_LEAVE_GRAVE =0x4000000 --离开墓地效果
CATEGORY_LVCHANGE =0x8000000 --改变等级效果
CATEGORY_NEGATE =0x10000000 --使发动无效效果
--Hint
HINT_EVENT =1
HINT_MESSAGE =2
HINT_SELECTMSG =3
HINT_OPSELECTED =4
HINT_EFFECT =5
HINT_RACE =6
HINT_ATTRIB =7
HINT_CODE =8
HINT_NUMBER =9
HINT_CARD =10
--Card Hint
CHINT_TURN =1
CHINT_CARD =2
CHINT_RACE =3
CHINT_ATTRIBUTE =4
CHINT_NUMBER =5
CHINT_DESC =6
--Hint Message --提示消息,显示在窗口的上面
HINTMSG_RELEASE =500 --请选择要解放的卡
HINTMSG_DISCARD =501 --请选择要丢弃的手牌
HINTMSG_DESTROY =502 --请选择要破坏的卡
HINTMSG_REMOVE =503 --请选择要除外的卡
HINTMSG_TOGRAVE =504 --请选择要送去墓地的卡
HINTMSG_RTOHAND =505 --请选择要返回手牌的卡
HINTMSG_ATOHAND =506 --请选择要加入手牌的卡
HINTMSG_TODECK =507 --请选择要返回卡组的卡
HINTMSG_SUMMON =508 --请选择要召唤的卡
HINTMSG_SPSUMMON =509 --请选择要特殊召唤的卡
HINTMSG_SET =510 --请选择要盖放的卡
HINTMSG_FMATERIAL =511 --请选择融合召唤的素材
HINTMSG_SMATERIAL =512 --请选择同调召唤的素材
HINTMSG_XMATERIAL =513 --请选择超量召唤的素材
HINTMSG_FACEUP =514 --请选择表侧表示的卡
HINTMSG_FACEDOWN =515 --请选择里侧表示的卡
HINTMSG_ATTACK =516 --请选择攻击表示的怪兽
HINTMSG_DEFENCE =517 --请选择守备表示的怪兽
HINTMSG_EQUIP =518 --请选择要装备的卡
HINTMSG_REMOVEXYZ =519 --请选择要取除的超量素材
HINTMSG_CONTROL =520 --请选择要改变控制权的怪兽
HINTMSG_DESREPLACE =521 --请选择要代替破坏的卡
HINTMSG_FACEUPATTACK =522 --请选择表侧攻击表示的怪兽
HINTMSG_FACEUPDEFENCE =523 --请选择表侧守备表示的怪兽
HINTMSG_FACEDOWNATTACK =524 --请选择里侧攻击表示的怪兽
HINTMSG_FACEDOWNDEFENCE =525 --请选择里侧守备表示的怪兽
HINTMSG_CONFIRM =526 --请选择给对方确认的卡
HINTMSG_TOFIELD =527 --请选择要放置到场上的卡
HINTMSG_POSCHANGE =528 --请选择要改变表示形式的怪兽
HINTMSG_SELF =529 --请选择自己的卡
HINTMSG_OPPO =530 --请选择对方的卡
HINTMSG_EFFECT =550 --请选择要发动的效果
HINTMSG_TARGET =551 --请选择效果的对象
HINTMSG_COIN =552 --请选择硬币的正反面
HINTMSG_DICE =553 --请选择骰子的结果
HINTMSG_CARDTYPE =554 --请选择一个种类
--Timing --提示时点,可以给freechain卡片增加自动提示时点
TIMING_DRAW_PHASE =0x1 --抽卡阶段时点
TIMING_STANDBY_PHASE =0x2 --准备阶段时点
TIMING_MAIN_END =0x4 --主要阶段结束时点
TIMING_BATTLE_START =0x8 --战斗阶段开始时点
TIMING_BATTLE_END =0x10 --战斗阶段结束时点
TIMING_END_PHASE =0x20 --结束阶段时点
TIMING_SUMMON =0x40 --召唤时点
TIMING_SPSUMMON =0x80 --特殊召唤时点
TIMING_FLIPSUMMON =0x100 --翻转召唤时点
TIMING_MSET =0x200 --放置怪兽时点
TIMING_SSET =0x400 --放置魔陷时点
TIMING_POS_CHANGE =0x800 --表示形式变更时点
TIMING_ATTACK =0x1000 --攻击宣言时点
TIMING_DAMAGE_STEP =0x2000 --伤害步骤时点
TIMING_DAMAGE_CAL =0x4000 --伤害计算时点
TIMING_CHAIN_END =0x8000 --连锁结束时点
TIMING_DRAW =0x10000 --抽卡时点(不是抽卡阶段
TIMING_DAMAGE =0x20000 --造成伤害时点
TIMING_RECOVER =0x40000 --回复时点
TIMING_DESTROY =0x80000 --破坏时点
TIMING_REMOVE =0x100000 --除外时点
TIMING_TOHAND =0x200000 --加入手牌时点(检索、回收等)
TIMING_TODECK =0x400000 --回卡组时点
TIMING_TOGRAVE =0x800000 --进墓地时点
TIMING_BATTLE_PHASE =0x1000000 --战斗阶段时点
TIMING_EQUIP =0x2000000 --装备时点
--Global flag --特殊标记
GLOBALFLAG_DECK_REVERSE_CHECK =0x1 --卡组翻转标记
GLOBALFLAG_BRAINWASHING_CHECK =0x2 --洗脑解除标记
GLOBALFLAG_SCRAP_CHIMERA =0x4 --废铁奇美拉标记
GLOBALFLAG_DELAYED_QUICKEFFECT =0x8 --小丑和锁鸟标记
GLOBALFLAG_DETACH_EVENT =0x10 --超量素材被取除标记
GLOBALFLAG_MUST_BE_SMATERIAL =0x20 --必须作为同调素材(波动龙 声子龙)
GLOBALFLAG_SPSUMMON_COUNT =0x40 --特殊召唤次数标记
GLOBALFLAG_XMAT_COUNT_LIMIT =0x80 --超量素材数量限制标记(光天使 天座)
--
EFFECT_COUNT_CODE_OATH =0x10000000 --誓约使用次数
EFFECT_COUNT_CODE_DUEL =0x20000000 --决斗中使用次数
EFFECT_COUNT_CODE_SINGLE =0x1 --多个效果公共使用次数
--特殊选项
DUEL_TEST_MODE =0x01 --测试模式?坑了?
DUEL_ATTACK_FIRST_TURN =0x02 --第一回合可以攻击(用于残局
DUEL_NO_CHAIN_HINT =0x04 --不提示连锁
DUEL_ENABLE_PRIORITY =0x08 --启动优先权
DUEL_PSEUDO_SHUFFLE =0x10 --不洗牌
DUEL_TAG_MODE =0x20 --双打
DUEL_SIMPLE_AI =0x40 --AI
CodeEditForm->CodeEditForm 脚本编辑器
CodeEditForm->menuitem_file 文件(&F)
CodeEditForm->menuitem_open 打开
CodeEditForm->menuitem_save 保存
CodeEditForm->menuitem_saveas 另存为
CodeEditForm->menuitem_quit 退出
CodeEditForm->menuitem_setting 设置(&S)
CodeEditForm->menuitem_showmap 显示缩略图
CodeEditForm->menuitem_showinput 显示输入框
CodeEditForm->menuitem_help 帮助(&H)
CodeEditForm->menuitem_about 关于
\ No newline at end of file
...@@ -10,6 +10,7 @@ MainForm->menuitem_history 历史(&H) ...@@ -10,6 +10,7 @@ MainForm->menuitem_history 历史(&H)
MainForm->menuitem_quit 退出(&Q) MainForm->menuitem_quit 退出(&Q)
MainForm->menuitem_windows 窗口(&W) MainForm->menuitem_windows 窗口(&W)
MainForm->menuitem_dataeditor DataEditor MainForm->menuitem_dataeditor DataEditor
MainForm->menuitem_codeeditor CodeEditor
MainForm->menuitem_closeall 关闭所有 MainForm->menuitem_closeall 关闭所有
MainForm->menuitem_closeother 关闭其他 MainForm->menuitem_closeother 关闭其他
MainForm->menuitem_close 关闭当前 MainForm->menuitem_close 关闭当前
\ No newline at end of file
脚本中用到的数据类型为以下几类:
integer: 整数类型
boolean: 布尔类型(true 或者 false)
string: 字符串
function: 函数
Card: 卡片类
Effect: 效果类
Group: 卡片组类
any: 任意类型
为方便说明,采用类似c的函数表示方法说明
[]表示有默认值可省略的参数
注:关于过滤条件函数
过滤条件函数是指第一个参数是Card类型,并且返回值是boolean的函数。此函数用于在一些获取满足条件的卡片组的过滤函数中重复调用。过滤条件函数可以有不定的参数,第二个开始的参数从过滤函数的额外参数获得。举例:
function sample_filter(c, atk, def)
return c:GetAttack()>=atk and c:GetDefence()>=def
end
此函数对于一张卡c,如果攻击力>=atk并且守备力>=def则返回true,否则返回false
g=Duel.GetFieldGroup(0,LOCATION_HAND,0) --获取玩家1的手卡
fg=g:Filter(sample_filter, nil, 1000,500) --从g中筛选攻击力>=1000并且守备>=500的卡
Group.Filter只需要3个参数,第4个参数开始为额外参数,额外的参数会传给sample_filter
●void initial_effect(Card c)
注册卡片效果
========== bit ==========
●integer bit.band(integer a, integer b)
a与b的位与
●integer bit.bor(integer a, integer b)
a与b的位或
●integer bit.bxor(integer a, integer b)
a与b的位异或
●integer bit.bls(integer a, integer b)
a左移b
●integer bit.brs(integer a, integer b)
a右移b
========== Card ==========
●integer Card.GetCode(Card c)
返回c的当前代号(可能因为效果改变)
●integer Card.GetOriginalCode(Card c)
返回c的卡片记载的代号
●boolean Card.IsSetCard(Card c, integer setname)
检查c是否是名字含有setname的卡
●integer Card.GetType(Card c)
返回c的当前类型。
●integer Card.GetOriginalType(Card c)
返回c的卡片记载的类型。
●integer Card.GetLevel(Card c)
返回c的当前等级
●integer Card.GetSynchroLevel(Card c)
返回c的同调用等级。此函数除了某些特定卡如调节支援士,
返回值与Card.GetLevel(c)相同
●integer Card.GetRitualLevel(Card c)
返回c的仪式解放等级。此函数除了某些特定卡如仪式供物,
返回值与Card.GetLevel(c)相同
●integer Card.GetOriginalLevel(Card c)
返回c的卡片记载的等级
●integer Card.GetAttribute(Card c)
返回c的当前属性。注:对某些多属性怪物如光与暗之龙,
此函数的返回值可能是几个属性的组合值。
●integer Card.GetOriginalAttribute(Card c)
返回c的卡片记载的属性
●integer Card.GetRace(Card c)
返回c的当前种族。注:对某些多种族怪物如动画效果的魔术猿,
此函数的返回值可能是几个种族的组合值。
●integer Card.GetOriginalRace(Card c)
返回c的卡片记载的种族
●integer Card.GetAttack(Card c)
返回c的当前攻击力,返回值是负数表示是"?"
●integer Card.GetBaseAttack(Card c)
返回c的原本攻击力
●integer Card.GetTextAttack(Card c)
返回c的卡片记载的攻击力
●integer Card.GetDefence(Card c)
返回c的当前守备力,返回值是负数表示是"?"
●integer Card.GetBaseDefence(Card c)
返回c的原本守备力
●integer Card.GetTextDefence(Card c)
返回c的卡片记载的守备力
●integer Card.GetOwner(Card c)
返回c的持有者
●integer Card.GetControler(Card c)
返回c的当前控制者
●integer Card.GetPreviousControler(Card c)
返回c的位置变化之前的控制者
●integer Card.GetReason(Card c)
返回c的位置变化原因
●Card Card.GetReasonCard(Card c)
返回导致c的位置变化的卡。此函数仅在某卡被战斗破坏时,
因为上级召唤被解放,或者成为特殊召唤使用的素材时有效。
●Effect Card.GetReasonEffect(Card c)
返回导致c的位置变化的效果。
●integer Card.GetPosition(Card c)
返回c当前的表示形式
●integer Card.GetPreviousPosition(Card c)
返回c位置变化前的表示形式
●integer Card.GetBattlePosition(Card c)
返回c在本次战斗发生之前的表示形式
●integer Card.GetLocation(Card c)
返回c当前的所在位置
●integer Card.GetPreviousLocation(Card c)
返回c位置变化前的所在的位置
●integer Card.GetSequence(Card c)
返回c在当前位置的序号
在场上时,序号代表所在的格子,从左往右分别是0-4,场地魔法格的序号为5
在其它地方时,序号表示的是第几张卡。最底下的卡的序号为0
●integer Card.GetPreviousSequence(Card c)
返回c位置变化前的序号
●integer Card.GetSummonType(Card c)
返回c上场的方式。
●integer Card.GetSummonPlayer(Card c)
返回召唤,特殊召唤c上场的玩家
●integer Card.GetDestination(Card c)
返回c位置变化的目的地。此函数仅在处理位置转移代替效果时有效。
●integer Card.GetTurnID(Card c)
返回c转移到当前位置的回合
●integer Card.GetFieldID(Card c)
返回c转移到当前位置的时间标识。此数值唯一,越小表示c是越早出现在那个位置。
●boolean Card.IsCode(Card c, integer code)
检查c的代号是否是code。
●boolean Card.IsType(Card c, integer type)
检查c是否属于类型type。
●boolean Card.IsRace(Card c, integer race)
检查c是否属于种族race。
●boolean Card.IsAttribute(Card c, integer attribute)
检查c是否属于属性attribute。
●boolean Card.IsReason(Card c, integer reason)
检查c是否包含原因reason。
●boolean Card.IsStatus(Card c, integer status)
检查c是否包含某个状态码。
●boolean Card.IsNotTuner(Card c)
检查c是否可以当成非调整来使用。
●void Card.SetStatus(Card c, integer state, boolean enable)
给c设置或者取消状态码。除非妳清楚的了解每个状态码的含意,否则不要轻易使用此函数。
●boolean Card.IsDualState(Card c)
检查c属否处于再召唤状态。
●void Card.EnableDualState(Card c)
把c设置成再召唤状态。
●void Card.SetTurnCounter(Card c, integer counter)
设置c的回合计数器(光之护封剑等)
●integer Card.GetTurnCounter(Card c)
返回c的回合计数器
●void Card.SetCustomValue(Card c, string tag, any object)
以tag作为标签为c设置一个自定义值object
●any Card.GetCustomValue(Card c, string tag)
返回c的以tag作为标签的自定义值
●void Card.SetMaterial(Card c, Group g)
把g中的所有卡作为c的素材(上级召唤,特殊召唤)
●Group Card.GetMaterial(Card c)
返回c出场使用的素材
●integer Card.GetMaterialCount(Card c)
返回c出场使用的素材数量
●Group Card.GetEquipGroup(Card c)
返回c当前装备着的卡片组
●integer Card.GetEquipCount(Card c)
返回c当前装备着的卡片数量
●Card Card.GetEquipTarget(Card c)
返回c当前的装备对象
●boolean Card.CheckEquipTarget(Card c1, Card c2)
检查c2是否是c1的正确的装备对象
●integer Card.GetUnionCount(Card c)
返回c当前装备的同盟卡数量
●Group Card.GetOverlayGroup(Card c)
返回c当前叠放着的卡片组
●integer Card.GetOverlayCount(Card c)
返回c当前叠放着的卡片数量
●integer Card.RemoveOverlayCard
(Card c,integer player, integer min, integer max, integer reason)
以reason为原因,让玩家player移除c叠放的min-max张卡
●Group Card.GetAttackGroup(Card c)
返回c本回合攻击过的卡片组
●integer Card.GetAttackedGroupCount(Card c)
返回c本回合攻击过的卡片数量
●integer Card.GetAttackedCount(Card c)
返回c本回合攻击过的次数
注:如果此值与上一个函数的返回值不同,那么说明此卡本回合进行过直接攻击
●Group Card.GetBattledGroup(Card c)
返回与c本回合进行过战斗的卡片组
进行过战斗指发生过伤害的计算。用于剑斗兽等卡的判定。
●integer Card.GetBattledGroupCount(Card c)
返回与c本回合进行过战斗的的卡片数量
●integer Card.GetAttackAnnouncedCount(Card c)
返回c本回合攻击宣言的次数
注:攻击被无效不会被计入攻击过的次数,但是会计入攻击宣言的次数。
●void Card.SetCardTarget(Card c1, Card c2)
把c2作为c1的永续对象。
c1和c2的联系会在c1活c2任意一卡离场或变成里侧表示时reset。
●Group Card.GetCardTarget(Card c)
返回c当前所有的永续对象
●integer Card.GetCardTargetCount(Card c)
返回c当前的永续对象的数量
●boolean Card.IsHasCardTarget(Card c1, Card c2)
检查c1是否取c2为永续对象
●Group Card.GetOwnerTarget(Card c)
返回取c作为永续对象的所有卡
●integer Card.GetOwnerTargetCount(Card c)
返回取c作为永续对象的卡的数量
●Effect Card.GetActivateEffect(Card c)
返回c的“卡片发动”的效果。仅对魔法和陷阱有效。
●integer Card.RegisterEffect(Card c, Effect e, [boolean forced=false])
把效果e注册给c,返回效果的全局id。
默认情况下注册时如果c带有免疫e的效果那么注册会失败。
如果forced为true则不会检查c对e的免疫效果。
●boolean Card.IsHasEffect(Card c, integer code)
检查c是否受到效果种类是code的效果的影响
●integer Card.GetEffectCount(Card c, integer code)
返回c受到影响的种类是code的效果的数量
●Effect Card.RegisterFlagEffect(Card c, integer code, integer reset_flag, integer property, integer reset_count)
为c注册一个标识用效果。
注:注册给卡的标识用效果不会用于系统,
即使code与内置效果code重合也不会影响,
并且类型总是EFFECT_TYPE_SINGLE。reset方法,property和一般的效果相同,
并且不会无效化,不受卡的免疫效果影响。
●integer Card.GetFlagEffect(Card c, integer code)
返回c的种类是code的标识效果的数量。
●void Card.ResetFlagEffect(Card c, integer code)
手动清除c的种类是code的标识效果。
●void Card.CreateRelation(Card c1, Card c2, integer reset_flag)
为c1建立于c2的联系。此联系仅会由于RESET_EVENT的事件reset。
●void Card.ReleaseRelation(Card c1, Card c2)
手动释放c1对于c2的联系
●boolean Card.IsRelateToEffect(Card c, Effect e)
检查c是否和效果e有联系。
注:每次发动进入连锁的效果时,发动效果的卡,以及发动效果时指定的对象
(用Duel.SetTargetCard或者Duel.SelectTarget指定的,包括取对象和不取对象)
会自动与那个效果建立联系。一旦离场,联系会重置。
●boolean Card.IsRelateToCard(Card c1, Card c2)
检查c1是否和c2有联系。
●boolean Card.IsRelateToBattle(Card c)
检查c是否和本次战斗关联。
注:此效果通常用于伤害计算后伤害阶段结束前,用于检查战斗的卡是否离场过。
●integer Card.CopyEffect
(Card c, integer code, integer reset_flag,integer reset_count)
为c添加代号是code的卡的可复制的效果,并且添加额外的reset条件。
返回值是表示复制效果的代号id。
●void Card.EnableReviveLimit(Card c)
为c添加苏生限制。此函数也可通过Card.SetStatus实现。
●void Card.CompleteProcedure(Card c)
使c完成正规的召唤手续。此函数也可通过Card.SetStatus实现。
●boolean Card.IsDisabled(Card c)
检查c是否处于无效状态
●boolean Card.IsDestructable(Card c)
检查c是否是可破坏的。
注:不可破坏指的是类似场地护罩,宫廷的规矩等“破壊できない”的效果
●boolean Card.IsSummonableCard(Card c)
检查c是否是可通常召唤的卡。
●boolean Card.IsSpecialSummonable(Card c)
检查是否可以对c进行特殊召唤手续。
●boolean Card.IsSynchroSummonable(Card c, [Card tuner=nil])
检查是否可以以tuner作为调整对c进行同调召唤手续。
如果tuner是nil,此函数与上一个函数作用相同。
●boolean Card.IsSummonable(Card c)
检查c是否可进行通常召唤(不包含通常召唤的set)
●boolean Card.IsMSetable(Card c)
检查c是否可进行通常召唤的set
●boolean Card.IsSSetable(Card c)
检查c是否可以set到魔法陷阱区
●boolean Card.IsCanBeSpecialSummoned
(Card c, Effect e, integer sumtype, integer sumplayer,
boolean nocheck, boolean nolimit, [integer sumpos=POS_FACEUP,
integer target_player=sumplayer])
检查c是否可以被玩家sumplayer
用效果e以sumtype方式和sumpos表示形式特殊召唤到target_player场上。
如果nocheck是true则不检查c的召唤条件,如果nolimit是true则不检查c的苏生限制。
●boolean Card.IsAbleToHand(Card c)
检查c是否可以送去手牌。
注:仅当卡片或者玩家受到“不能加入手牌”的效果的影响时(如雷王)此函数才返回false。
以下几个函数类似。
●boolean Card.IsAbleToDeck(Card c)
检查c是否可以送去卡组。
●boolean Card.IsAbleToExtra(Card c)
检查c是否可以送去额外卡组。
对于非融合,同调,超量卡此函数均返回false。
●boolean Card.IsAbleToGrave(Card c)
检查c是否可以送去墓地。
●boolean Card.IsAbleToRemove(Card c)
检查c是否可以除外。
●boolean Card.IsAbleToHandAsCost(Card c)
检查c是否可以作为cost送去手牌。
注:此函数会在Card.IsAbleToHand的基础上追加检测c的实际目的地。
当c送往手牌会被送去其它地方时(如缩退回路适用中,或者c是融合,同调和超量怪的一种),
此函数返回false。以下几个函数类似。
●boolean Card.IsAbleToDeckAsCost(Card c)
检查c是否可以作为cost送去卡组。
●boolean Card.IsAbleToExtraAsCost(Card c)
检查c是否可以作为cost送去额外卡组。
●boolean Card.IsAbleToGraveAsCost(Card c)
检查c是否可以作为cost送去墓地。
●boolean Card.IsAbleToRemoveAsCost(Card c)
检查c是否可以作为cost除外。
●boolean Card.IsReleaseable(Card c)
检查c是否可以解放(非上级召唤用)
●boolean Card.IsDiscardable(Card c)
检查c是否可以丢弃
注:此函数仅用于检测,
以REASON_DISCARD作为原因把一张手卡送墓并不会导致那张卡不能丢弃。
●boolean Card.IsAttackable(Card c)
检查c是否可以攻击
●boolean Card.IsChainAttackable(Card c)
检查c是否可以连续攻击
注:当c因为闪光之双剑等效果进行过多次攻击之后此函数返回false。
●boolean Card.IsFaceup(Card c)
检查c是否是表侧表示
●boolean Card.IsFacedown(Card c)
检查c是否是里侧测表示
●boolean Card.IsAttack(Card c)
检查c是否是攻击表示
●boolean Card.IsDefence(Card c)
检查c是否是守备表示
●boolean Card.IsControler(Card c, integer con)
检查c的当前控制着是否是con
●boolean Card.IsOnField(Card c)
检查c是否在场。
注:当怪物召唤,反转召唤,特殊召唤时召唤成功之前,此函数返回false
●boolean Card.IsLocation(Card c, integer loc)
检查c当前位置是否是loc。
注:当怪物召唤,反转召唤,特殊召唤时召唤成功之前,
并且loc=LOCATION_MZONE时,此函数返回false
●boolean Card.IsPublic(Card c)
检查c是否处于公开状态
●boolean Card.IsForbidden(Card c)
检查c是否处于被宣言禁止状态
●boolean Card.IsAbleToChangeControler(Card c)
检查c是否可以改变控制权
注:仅当卡收到了“不能改变控制权”的效果的影响时,此函数返回false
●boolean Card.IsControlerCanBeChanged(Card c)
检查c的控制权是否可以改变
注:此函数会在上一个函数的基础上追加检测场上的空格位
●void Card.AddCounter(Card c, integer countertype, integer count)
为c放置count个countertype类型的指示物
●void Card.RemoveCounter
(Card c, integer player, integer countertype, integer count, integer reason)
让玩家player以原因reason移除c上的count个countertype类型的指示物
●integer Card.GetCounter(Card c, integer countertype)
返回c上的countertype类型的指示物的数量
●void Card.EnableCounterPermit(Card c, integer countertype)
允许c放置那个需要“可以放置”才能放置的指示物countertype
●void Card.SetCounterLimit(Card c, integer countertype, integer count)
设定c放置countertype类型指示物的上限
●boolean Card.IsCanTurnSet(Card c)
检查c是否可以转成里侧表示。
●boolean Card.IsCanAddCounter(Card c, integer countertype, integer count)
检查c是否可以放置count个countertype类型的指示物
●boolean Card.IsCanRemoveCounter
(Card c, integer player, integer countertype, integer count, integer reason)
检查玩家player是否可以以原因reason移除c上的count个countertype类型的指示物
●boolean Card.IsCanBeFusionMaterial(Card c)
检查c是否可以成为融合素材
●boolean Card.IsCanBeSynchroMaterial(Card c)
检查c是否可以成为同调素材
●boolean Card.IsCanBeExceedMaterial(Card c)
检查c是否可以成为超量素材
●boolean Card.CheckFusionMaterial(Card c, Group g)
检查g是否包含了c需要的一组融合素材
●boolean Card.IsImmuneToEffect(Card c, Effect e)
检查c是否免疫效果e(即不受效果e的影响)
●boolean Card.IsCanBeEffectTarget(Card c, Effect e)
检查c是否可以成为效果e的对象
●boolean Card.IsCanBeBattleTarget(Card c1, Card c2)
检查c1是否可以成为c2的攻击目标
●void Card.AddTrapMonsterAttribute(Card c, boolean is_effect)
为c添加陷阱怪物属性。is_effect=true表示视作效果怪物,否则视为通常怪物
注:陷阱怪物属性指的是同时作为怪物和陷阱,
并且额外使一个魔法陷阱的格子不能使用。
●void Card.CancelToGrave(Card c)
取消送墓确定状态。
注:送墓确定状态指的是在场上发动的不留场的魔法和陷阱后,这些卡片的状态。
送墓确定状态中的卡无法返回手牌和卡组,并且连锁结束时送去墓地。
此函数的作用是取消此状态使其留场。用于光之护封剑和废铁稻草人等卡。
●integer,integer Card.GetTributeRequirement(Card c)
返回通常召唤c所需要的祭品的最小和最大数量
========== Effect ==========
●Effect Effect.CreateEffect(Card c)
新建一个空效果,并且效果的拥有者为c
●Effect Effect.Clone(Effect e)
新建一个效果e的副本
●void Effect.Reset(Effect e)
把效果e重置。重置之后不可以再使用此效果
●void Effect.SetType(Effect e, integer type)
为效果e设置效果类型
●void Effect.SetDescription(Effect e, integer desc)
为效果e设置效果描述
●void Effect.SetCode(Effect e, integer code)
为效果e设置Code属性
●void Effect.SetRange(Effect e, integer range)
为效果e设置Range属性
●void Effect.SetTargetRange(Effect e, integer s_range, integer o_range)
为效果e设置Target Range属性
s_range指影响的我方区域。o_range值影响的对方区域。
如果property属性中指定了EFFECT_FLAG_ABSOLUTE_RANGE标志,
那么s_range指玩家1收到影响的区域,o_range指玩家2受到影响的区域。
如果这是一个特殊召唤手续(EFFECT_SPSUMMON_PROC)的效果,
并且property指定了EFFECT_FLAG_SPSUM_PARAM标志,
那么s_range表示特殊召唤到的哪个玩家的场地,
o_range表示可选择的表示形式。
●void Effect.SetAbsoluteRange(Effect e, integer s_range, integer o_range)
设置target range属性并设置EFFECT_FLAG_ABSOLUTE_RANGE标志
●void Effect.SetCountLimit(Effect e, integer count)
设置一回合可以发动的次数(仅触发型效果有效)
●void Effect.SetReset(Effect e, integer reset_flag, [integer reset_count=1])
设置reset参数
●void Effect.SetReset(Effect e, integer type)
设置Type属性
●void Effect.SetProperty(Effect e, integer prop)
设置Property属性
●void Effect.SetLabel(Effect e, integer label)
设置Label属性
●void Effect.SetCategory(Effect e, integer cate)
设置Category属性
●void Effect.SetCategory(Effect e, integer cate)
设置Category属性
●void Effect.SetCondition(Effect e, function con_func)
设置Condition属性
●void Effect.SetCost(Effect e, function cost_func)
设置Cost属性
●void Effect.SetTarget(Effect e, function targ_func)
设置Target属性
●void Effect.SetOperation(Effect e, function op_func)
设置Operation属性
●void Effect.SetValue(Effect e, integer|function val)
设置Value属性
●void Effect.SetOwnerPlayer(Effect e, integer player)
设置Owner player属性
●integer Effect.GetDescription(Effect e)
返回效果描述
●integer Effect.GetCode(Effect e)
返回code属性
●integer Effect.GetType(Effect e)
返回Type属性
●integer Effect.GetProperty(Effect e)
返回Property属性
●integer Effect.GetLabel(Effect e)
返回Label属性
●integer Effect.GetCategory(Effect e)
返回Category属性
●Card Effect.GetOwner(Effect e)
返回效果拥有者
●Card Effect.GetHandler(Effect e)
返回效果在哪一张卡上生效(通常是注册该效果的卡)
●function Effect.GetCondition(Effect e)
返回condition属性
●function Effect.GetCost(Effect e)
返回cost属性
●function Effect.GetTarget(Effect e)
返回target属性
●function Effect.GetOperation(Effect e)
返回operation属性
●function|integer Effect.GetValue(Effect e)
返回value属性
●boolean Effect.IsHasProperty(Effect e, integer prop)
检查效果是否含有标志prop
●boolean Effect.IsHasCategory(Effect e, integer cate)
检查效果是否含有效果分类cate
●boolean Effect.IsHasType(Effect e, integer type)
检查效果是否属于类型type
========== group ==========
●Group Group.CreateGroup()
新建一个空的卡片组
●void Group.CreateGroup(Group g)
删除卡片组g
●Group Group.Clone(Group g)
新建卡片组g的副本
●Group Group.FromCards(Card c, ...)
不定参数,把传入的所有卡组合成一个卡片组并返回
●void Group.Clear(Group g)
清空卡片组
●void Group.AddCard(Group g, Card c)
往g中增加c
●void Group.RemoveCard(Group g, Card c)
把c从g中移除
●Card Group.GetFirst(Group g)
返回g中第一张卡,并重置当前指针到g中第一张卡。
如果g中不存在卡则返回nil
●Card Group.GetNext(Group g)
返回并使指针指向下一张卡。如果g中不存在卡则返回nil
●integer Group.GetCount(Group g)
返回g中卡的数量
●void Group.ForEach(Group g, function f)
以g中的每一张卡作为参数调用一次f
●Group Group.Filter(Group g, function f, Card ex, ...)
过滤函数。从g中筛选满足筛选条件f并且不等于ex的卡。
从第4个参数开始为额外参数。
●integer Group.FilterCount(Group g, function f, Card ex, ...)
过滤函数。和上一个函数基本相同。不同指出在于此函数只返回满足条件的卡的数量。
●Group Group.FilterSelect
(Group g, integer player, function f,integer min, integer max, Card ex, ...)
过滤函数。让玩家player从g中选择min-max张满足筛选条件f并且不等于ex的卡。
从第7个参数开始为额外参数。
●Group Group.Select
(Group g, integer player, integer min, integer max, Card ex)
让玩家player从g中选择min-max张不等于ex的卡。
●Group Group.RandomSelect(Group g, integer player, integer count)
让玩家player从g中随机选择count张卡。
因为是随机算则,所以参数player基本无用,由系统随机选取。
●boolean Group.IsExists(Group g, function f, integer count, Card ex, ...)
过滤函数。检查g中是否存在至少count张满足筛选条件f并且不等于ex的卡。
从第5个参数开始为额外参数。
●boolean Group.CheckWithSumEqual
(Group g, function f, integer sum, integer min)
子集求和判定函数。f为返回一个interger值的函数(通常用于同调判定)。
检查g中是否存在一个数量至少为min的子集满足以f对子集的每一个元素求值的和等于sum。
比如:g:CheckWithSumEqual(Card.GetSynchroLevel,7,2)
检查g中是否存在一个子集满足子集的同调用等级之和等于7
●Group Group.SelectWithSumEqual
(Group g, integer player, function f, integer sum, integer min)
让玩家player从g中选取一个数量至少是min的子集使子集的特定函数的和等于sum
●boolean Group.CheckWithSumGreater(Group g, function f, integer sum)
子集求和判定函数之二。f为返回一个interger值的函数(通常用于仪式判定)。
检查g中是否存在一个子集满足以f对子集的每一个元素求值的和刚好大于或者等于sum。
比如:g:CheckWithSumGreater(Card.GetRitualLevel,8)
检查g中是否存在一个子集满足子集的仪式用等级之和大于等于8
注:判定必须是“刚好”大于或者等于。
以等级为例,要使等级合计大于等于8,可以选择LV1+LV7而不可以选择LV1+LV4+LV4
●Group Group.SelectWithSumGreater
(Group g, integer player, function f, integer sum)
让玩家player从g中选取一个子集使子集的特定函数的和大于等于sum
●Group Group.GetMinGroup(Group g, function f)
f为返回一个interger值的函数。从g中筛选出具有最小的f的值的卡。用于地裂等卡。
●Group Group.GetMaxGroup(Group g, function f)
f为返回一个interger值的函数。从g中筛选出具有最大的f的值的卡。用于地碎等卡。
●integer Group.GetSum(Group g, function f)
计算g中所有卡的取值的总和。f为为每张卡的取值函数。
●integer Group.GetSortCount(Group g, function f)
计算g中所有卡的种类数量。f为分类的依据,返回相同的值视为同一种类。
●Group Group.Remove(Group g, function f, ...)
过滤函数。从g中移除满足筛选条件f的所有卡。第三个参数开始是额外参数。
●Group Group.Merge(Group g1, Group g2)
把g2中的所有卡合并到g1。
注:g2本身不会发生变化。
●boolean Group.IsContains(Group g, Card c)
检查g中是否存在卡片c
●Card Group.SearchCard(Group g, function f, ...)
过滤函数。返回g中满足筛选条件f的第一张卡。第三个参数为额外参数。
========== Duel ==========
●integer Duel.GetLP(integer player)
返回玩家player的当前LP
●void Duel.SetLP(integer player, integer lp)
设置玩家player的当前LP为lp
●integer Duel.GetTurnPlayer()
返回当前的回合玩家
●integer Duel.GetTurnCount()
返回当前的回合数
●integer Duel.GetDrawCount(integer player)
返回玩家player每回合的规则抽卡数量
●void Duel.DebugMessage(any msg)
Debug用函数,用于显示信息
●void Duel.RegisterEffect(Effect e, integer player)
把效果作为玩家player的效果注册给全局环境。
●Effect Duel.RegisterFlagEffect(integer player, integer code,
integer reset_flag, integer property, integer reset_count)
此函数为玩家player注册全局环境下的标识效果。
此效果总是影响玩家的(EFFECT_FLAG_PLAYER_TARGET)并且不会被无效化。
其余部分与Card.RegisterFlagEffect相同
●integer Duel.GetFlagEffect(integer player, integer code)
返回玩家player的特定的标识效果的数量
●void Duel.ResetFlagEffect(integer player, integer code)
手动reset玩家player的特定的标识效果
●integer Duel.Destroy(Card|Group targets, integer reason)
以reason原因破坏targets。返回值是实际被破坏的数量。
如果reason包含REASON_RULE,则破坏事件将不会检查卡片是否免疫效果,
不会触发代破效果并且无视“不能破坏”。
●integer Duel.Remove(Card|Group targets, integer pos, integer reason)
以reason原因,pos表示形式除外targets。
返回值是实际被操作的数量。
如果reason包含REASON_TEMPORARY,
那么视为是暂时除外,可以通过Duel.ReturnToField返回到场上
●integer Duel.SendtoGrave(Card|Group targets, integer reason)
以reason原因把targets送去墓地。返回值是实际被操作的数量。
●integer Duel.SendtoHand(Card|Group targets,
integer player | nil, integer reason)
以reason原因把targets送去玩家player的手牌。
返回值是实际被操作的数量。
如果player是nil则返回卡的持有者的手牌。
●integer Duel.SendtoDeck(Card|Group targets,
integer player | nil, integer seq, integer reason)
以reason原因把targets送去玩家player的卡组。
返回值是实际被操作的数量。
如果player是nil则返回卡的持有者的卡组。
如果seq=0,则是返回卡组最顶端;seq=1则是返回卡组最低端;
其余情况则是返回最顶端并且标记需要洗卡组。
●Group Duel.GetOperatedGroup()
此函数返回之前一次卡片操作实际操作的卡片组。包括
Duel.Destroy, Duel.Remove, Duel.SendtoGrave,
Duel.SendtoHand, Duel.SendtoDeck, Duel.Release,
Duel.ChangePosition, Duel.SpecialSummon
●void Duel.Summon(integer player, Card c, boolean ignore_count, Effect e)
让玩家以效果e对c进行通常召唤(非set)。
如果e=nil,那么就按照一般的通常召唤规则进行通常召唤。
如果ignore_count=true,则忽略每回合的通常召唤次数限制。
●void Duel.SpecialSummonRule(integer player, Card c)
让玩家player对c进行特殊召唤手续。
●void Duel.SynchroSummon(integer player, Card c, Card tuner)
让玩家player以tuner作为调整对c进行特殊召唤手续。
●void Duel.MSet(integer player, Card c, boolean ignore_count, Effect e)
让玩家以效果e对c进行通常召唤的Set。
如果e=nil,那么就按照一般的通常召唤规则进行通常召唤。
如果ignore_count=true,则忽略每回合的通常召唤次数限制。
●void Duel.SSet(integer player, Card c)
让玩家player把c放置到魔法陷阱区
●Card Duel.CreateToken(integer player, integer code, integer setcode,
integer attack, integer defence, integer level, integer race,
integer attribute)
以传入的参数数值新建一个Token
●integer Duel.SpecialSummon(Card|Group targets, integer sumtype,
integer sumplayer, integer target_player, boolean nocheck, boolean nolimit,
integer pos)
让玩家player以sumtype方式,pos表示形式把targets特殊召唤到target_player场上。
如果nocheck为true则无视卡的召唤条件。如果nolimit为true则无视卡的苏生限制。
返回值是特殊召唤成功的卡的数量。
●boolean Duel.SpecialSummonStep(Card c, integer sumtype, integer sumplayer,
integer target_player, boolean nocheck, boolean nolimit, integer pos)
此函数是上一个函数的分解过程,只特殊召唤一张卡c。
此函数用于一个效果需要双方同时特殊召唤时。此函数必须和下面的函数一起使用。
返回值表示是否特殊召唤成功。
●integer Duel.SpecialSummonComplete()
此函数在确定复数个上一个函数调用完毕之后调用。用于触发事件。
●void Duel.RemoveCounter(integer player, integer s, integer o,
integer countertype, integer count, integer reason)
让玩家player移除场上存在的countertype类型的count个指示物。
s表示对player来说的己方的可移除指示物的位置,
o表示对player来说的对方的可移除指示物的位置
●boolean Duel.IsCanRemoveCounter(integer player, integer s,
integer o, integer countertype, integer count, integer reason)
检查玩家player是否能移除场上的countertype类型的count个指示物。
s和o参数作用同上。
●integer Duel.GetCounter(integer player, integer s, integer o,
integer countertype)
返回场上存在的countertype类型的指示物的数量。s和o参数作用同上。
●integer Duel.ChangePosition(Card|Group targets,integer au,
[integer ad=au, integer du=au, integer dd=au, boolean noflip=false])
改变targets的表示形式。表侧攻击表示的变成au,里侧攻击表示的变成ad,
表侧守备表示变成du,里侧守备表示变成dd
如果noflip=true则不触发翻转效果(但会触发翻转时的诱发效果)
●integer Duel.Release(Card|Group targets, integer reason)
以reason原因解放targets。返回值是实际解放的数量。
如果reason含有REASON_COST,则不会检查卡片是否不受效果影响
●void Duel.MoveToField(Card c, integer move_player,
integer target_player,integer dest, integer pos, boolean enabled)
让玩家move_player把c移动的target_player的场上。
dest只能是LOCATION_MZONE或者LOCATION_SZONE。pos表示可选表示形式。
enable表示是否立刻适用c的效果。
●void Duel.ReturnToField(Card c)
把c返回到场上。c必须是以REASON_TEMPORARY原因离场,并且离场后没有离开过那个位置。
●void Duel.MoveSequence(Card c, integer seq)
移动c的序号。通常用于在场上换格子或者在卡组中移动到最上方或者最下方。
●void Duel.SetChainLimit(function f)
设定连锁条件。f是接受一个Effect类型作为参数并且返回boolean值的函数。
在cost或者target处理中调用此函数可以限制可以连锁的效果的种类(如超融合)
。如果f返回false表示不能连锁。一旦设置连锁条件后发生了新的连锁那么连锁条件将会解除。
●void Duel.SetChainLimitTillChainEnd(function f)
功能同上,但是此函数设定的连锁条件直到连锁结束才会解除。
●Effect Duel.GetChainMaterial(integer player)
返回玩家player受到的连锁素材的效果。此函数仅用于融合类卡的效果。
●void Duel.ConfirmDeckTop(integer player, integer count)
确认玩家player卡组最上方的count张卡。双方均可确认。
●void Duel.ConfirmCards(integer player, Card|Group targets)
给玩家player确认targets
●void Duel.SortDecktop
(integer sort_player, integer target_player, integer count)
让玩家sort_player对玩家target_player的卡组最上方count张卡进行排序
●boolean Duel.CheckEvent(integer event)
检查当前是否是event时点
●void Duel.RaiseEvent
(Group eg,integer code, Effect reason_effect,integer reason,
integer reason_player,integer event_player,integer event param)
触发一个事件。
●void Duel.RaiseSingleEvent
(Card ec,integer code, Effect reason_effect,integer reason,
integer reason_player,integer event_player, integer event param)
触发一个单体事件。
●integer, integer Duel.GetEnvironment()
返回两个值,表示当前场地代号,以及当前场地效果的来源玩家。
场地代号指当前生效的场地卡的代号,或者海神的巫女把场地变化效果的值。
来源玩家指当前生效的场地卡的控制者,或者海神的巫女等卡的控制者。
●void Duel.Win(function f, Effect e, integer player)
在当前效果处理完之后调用f进行胜负检测。e和player作为f的两个参数传递给f。
f返回值的低16位表示胜负判定玩家,
0表示玩家1胜利,1表示玩家2胜利,2表示平局,
此外是无胜负兵继续进行。高16位表示胜负的原因。
●integer Duel.Draw(integer player, integer count, integer reason)
让玩家player以原因reason抽count张卡。返回实际抽的卡的数量。
如果reason含有REASON_RULE则此次抽卡不受“不能抽卡”的效果的影响。
●integer Duel.Damage(integer player, integer value, integer reason)
以reason原因给与玩家player造成value的伤害。返回实际收到的伤害值。
如果受到伤害变成回复等效果的影响时,返回值为0.
●integer Duel.Recover(integer player, integer value, integer reason)
以reason原因使玩家player回复value的LP。返回实际的回复值。
如果受到回复变成伤害等效果的影响时,返回值为0.
●boolean Duel.Equip(integer player, Card c1, Card c2)
把c1作为玩家player的装备卡装备给c2。返回值表示是否成功。
●boolean Duel.GetControler(integer player, Card c)
让玩家player得到c的控制权。返回值表示是否成功。
●boolean Duel.SwapControler(Card c1, Card c2)
交换c1和c2的控制权。返回值表示是否成功。
●boolean Duel.CheckLPCost(integer player, integer cost)
检查玩家player是否能支付cost点lp
●void Duel.PayLPCost(integer player, integer cost)
让玩家player支付cost点lp
●integer Duel.DiscardDeck(integer player, integer count, integer reason)
以原因reason把玩家player的卡组最上端count张卡送去墓地.返回实际转移的数量。
●integer Duel.DiscardHand(integer player, function f,
integer min, integer max, integer reason, Card ex, ...)
过滤函数。让玩家player选择并丢弃满足筛选条件f兵不等于ex的min-max张手卡。
第7个参数开始为额外参数。
●void Duel.DisableShuffleCheck()
使下一个操作不检查是否需要洗卡组或者洗手卡。
注:如果不调用此函数,
除了调用Duel.DiscardDeck和Duel.Draw之外从卡组中取出卡或者把卡加入手卡
或者把卡加入卡组(非最上端或最底端)时,系统会自动在效果处理结束时洗卡组或手卡。
如果不希望如此,比如从卡组顶端除外一张卡等操作,那么需要调用此函数。
此函数仅保证紧接着的一次操作不会进行洗卡检测。
●void Duel.ShuffleDeck(integer player)
手动洗玩家player的卡组
●void Duel.ShuffleHand(integer player)
手动洗玩家player的手卡
注:以上两个操作会重置洗卡检测的状态。
●void Duel.ChaingeAttacker(Card c)
把当前的攻击卡替换成c进行攻击
●void Duel.ReplaceAttacker(Card c)
用c代替当前攻击的卡进行伤害阶段
●void Duel.ChaingeAttackTarget(Card c)
把当前的攻击目标替换成c。如果c=nil则变成直接攻击。
●void Duel.ReplaceAttackTarget(Card c)
(预留)
●integer Duel.GetBattleDamage(integer player)
返回玩家player在本次战斗中收到的伤害
●void Duel.ChangeBattleDamage(integer player, integer value)
把玩家player在本次战斗中收到的伤害变成value
●void Duel.ChangeTarget(integer chainc, Group g)
把连锁chainc的对象换成g
●void Duel.ChangeTargetPlayer(integer chainc, integer player)
把连锁chainc的对象玩家换成player
●void Duel.ChangeTargetParam(integer chainc, integer param)
把连锁chainc的对象参数换成param
●void Duel.BreakEffect()
中断当前效果,使之后的效果处理视为不同时处理。此函数会造成错时点。
●void Duel.ChangeChainOperation(integer chainc, function f)
把连锁chainc的效果的处理函数换成f。用于实现“把效果变成”等的效果
●void Duel.NegateActivation(integer chainc)
使连锁chainc的发动无效
●void Duel.NegateEffect(integer chainc)
使连锁chainc的效果无效
●void Duel.NegateSummon(Card c)
使正在召唤,反转召唤,特殊召唤的c的召唤无效
●void Duel.IncreaseSummonCount()
本回合的通常召唤限制计数+1
●boolean Duel.CheckSummonCount()
检查回合玩家本回合的通常召唤限制计数。
●integer Duel.GetLocationCount(integer player, integer location)
返回玩家player的指定场地location剩余的空格数。
location只能是LOCATION_MZONE或者LOCATION_SZONE。
●Card Duel.GetFieldCard
(integer controler, integer location, integer sequence)
返回指定玩家指定地点指定序号的卡
●integer Duel.GetCurrentChain()
返回当前正在处理的连锁序号
●... Duel.GetChainInfo(integer chainc, ...)
返回连锁chainc的信息。如果chainc=0,则返回当前正在处理的连锁的信息。
此函数根据传入的参数个数按顺序返回相应数量的返回值。参数可以是:
CHAININFO_CHAIN_COUNT 连锁序号
CHAININFO_TRIGGERING_EFFECT 连锁的效果
CHAININFO_TRIGGERING_PLAYER 连锁的玩家
CHAININFO_TRIGGERING_CONTROLER 连锁发生位置所属玩家
CHAININFO_TRIGGERING_LOCATION 连锁发生位置
CHAININFO_TRIGGERING_SEQUENCE 连锁发生的位置的序号
CHAININFO_TARGET_CARDS 连锁的对象卡片组
CHAININFO_TARGET_PLAYER 连锁的对象玩家
CHAININFO_TARGET_PARAM 连锁的对象参数
CHAININFO_DISABLE_REASON 连锁被无效的原因效果
CHAININFO_DISABLE_PLAYER 连锁被无效的原因玩家
CHAININFO_CHAIN_ID 连锁的唯一标识
举例:
Duel.GetChainInfo(0,CHAININFO_TRIGGERING_LOCATION,CHAININFO_TARGET_CARDS)
将会返回当前连锁发生的位置和对象卡。
●integer Duel.GetCurrentPhase()
返回当前的阶段
●void Duel.SkipPhase
(integer player, integer phase, integer reset_flag, integer reset_count)
跳过玩家player的phase阶段,并在特定的阶段后reset。reset参数和效果相同。
●boolean Duel.IsDamageCalculated()
用于在伤害阶段检查是否已经计算了战斗伤害。
●Card Duel.GetAttacker()
返回此次战斗攻击的卡
●Card Duel.GetAttackTarget()
返回此次战斗被攻击的卡。如果返回nil表示是直接攻击。
●void Duel.DisableAttack()
使本次攻击无效
●void Duel.ChainAttack()
使攻击卡再进行一次连续攻击(开辟,破灭的女王)
●void Duel.Readjust()
刷新场上的卡的信息。非特定情况或者不清楚原理请勿使用此函数以免形成死循环。
●Group Duel.GetFieldGroup(integer player, integer s, integer o)
返回指定位置的卡。s指对玩家player来说的己方的位置,
o指对玩家player来说的对方的位置。下面提到的指定位置均为此意。
比如Duel.GetFieldGroup(0,LOCATION_GRAVE,LOCATION_MZONE)
返回玩家1墓地和玩家2的怪兽区的所有卡
●integer Duel.GetFieldGroupCount(integer player, integer s, integer o)
同上,返回值变成卡的数量
●Group Duel.GetDecktopGroup(integer player, integer count)
返回玩家player的卡组最上方的count张卡
●Group Duel.GetMatchingGroup
(function f, integer player, integer s, integer o, Card ex, ...)
过滤函数,返回指定位置满足过滤条件f并且不等于ex的卡。
第6个参数开始为额外参数。
●integer Duel.GetMatchingGroupCount
(function f, integer player, integer s, integer o, Card ex, ...)
同上,返回值变成符合的卡的数量。
●Card Duel.GetFirstMatchingCard
(function f, integer player, integer s, integer o, Card ex, ...)
过滤函数,返回指定位置满足过滤条件f并且不等于ex的第一张卡。
第6个参数开始为额外参数。
●boolean Duel.IsExistingMatchingCard
(function f, integer player, integer s, integer o, integer count, Card ex, ...)
过滤函数,检查指定位置是否存在至少count张满足过滤条件f并且不等于ex的卡。
第7个参数开始为额外参数。
●Group Duel.SelectMatchingCard
(integer sel_player, function f, integer player,
integer s, integer o, integer min, integer max, Card ex, ...)
过滤函数,让玩家sel_player选择指定位置满足过滤条件f并且不等于ex的min-max张卡。
第9个参数开始为额外参数。
●Group Duel.GetReleaseGroup(integer player)
返回玩家player可解放(非上级召唤用)的卡片组
●integer Duel.GetReleaseGroupCount(integer player)
返回玩家player可解放(非上级召唤用)的卡片数量
●boolean Duel.ChecktReleaseGroup
(integer player, function f, integer count, Card ex, ...)
过滤函数,检查玩家player是否存在至少count张不等于ex的满足条件f的可解放的卡
●Group Duel.SelectReleaseGroup
(integer player, function f, integer min, integer max, Card ex, ...)
过滤函数,让玩家player选择min-max张不等于ex的满足条件f的可解放的卡并返回
●Group Duel.GetTributeGroup(Card c)
返回用于通常召唤c可解放(上级召唤用)的卡片组
●integer Duel.GetTributeCount(Card c)
返回用于通常召唤c的祭品数量。
此数量不一定等于上一个函数的返回值中的卡片数量。
因为某些卡可以作为两个祭品来使用。
●Group Duel.SelectTribute(integer player, Card c, integer min, integer max)
让玩家player选择用于通常召唤c的min-max个祭品。
●integer Duel.GetTargetCount
(function f, integer player, integer s, integer o, Card ex, ...)
基本同Duel.GetMatchingGroupCount,
不同之处在于需要追加判定卡片是否能成为当前正在处理的效果的对象。
●boolean Duel.IsExistingTarget
(function f, integer player, integer s, integer o, integer count, Card ex, ...)
过滤函数,检查指定
位置是否存在至少count张满足过滤条件f并且不等于ex
并且可以成为当前正在处理的效果的对象的卡。
第7个参数开始为额外参数。
●Group Duel.SelectTarget(
integer sel_player, function f, integer player,
integer s, integer o, integer min, integer max,Card ex, ...)
过滤函数,让玩家sel_player选择指定
位置满足过滤条件f并且不等于ex
并且可以成为当前正在处理的效果的对象的min-max张卡。
第9个参数开始为额外参数。
此函数会同时酱当前正在处理的连锁的对象设置成选择的卡
●Group Duel.SelectFusionMaterial(integer player, Card c, Group g)
让玩家player从g中选择一组满足c的融合素材的卡
●void Duel.SetFusionMaterial(Group g)
设置g为需要使用的融合素材
●void Duel.SetSynchroMaterial(Group g)
设置g为需要使用的同调素材
●Group Duel.SelectSynchroMaterial
(integer player, Card c, function f1, function f2, integer min)
让玩家选择用于同调c需要的满足条件的数量至少是min的一组素材。
f1是调整需要满足的过滤条件。f2是调整以外的部分需要满足的过滤条件。
●boolean Duel.CheckSynchroMaterial
(Card c, function f1, function f2, integer min)
检查是否存在一组满足条件的卡作为同调召唤c的素材。f1,f2,min同上。
●Group Duel.SelectTunerMaterial
(integer player, Card c, Card tuner, function f1, function f2, integer min)
让玩家选择用于同调c需要的满足条件的以tuner作为调整的数量至少是min的一组素材。
f1是调整需要满足的过滤条件。f2是调整以外的部分需要满足的过滤条件。
●boolean Duel.CheckTunerMaterial
(Card c, Card tuner, function f1, function f2, integer min)
检查以tuner作为调整是否存在一组满足条件的卡作为同调召唤c的素材。f1,f2,min同上。
●Group Duel.GetRitualMaterial(integer player)
返回玩家player可用的用于仪式召唤素材的卡片组。
包含手上,场上可解放的以及墓地的仪式魔人等卡。
●void Duel.ReleaseRitualMaterial(Group g)
解放仪式用的素材g。如果是墓地的仪式魔人等卡则除外。
●void Duel.SetTargetCard(Group g)
把当前正在处理的连锁的对象设置成g。
注,这里的对象指的的广义的对象,包括不取对象的效果可能要处理的对象。
●void Duel.SetTargetPlayer(integer player)
把当前正在处理的连锁的对象玩家设置成player。
●void Duel.SetTargetParam(integer param)
把当前正在处理的连锁的对象参数设置成param。
●void Duel.SetOperationInfo(integer chainc, integer category,
Card|Group targets, integer count, integer target_player, integer target_param)
设置当前处理的连锁的操作信息。此操作信息包含了效果处理中确定要处理的效果分类。
比如潜行狙击手需要设置CATEGORY_DICE,但是不能设置CATEGORY_DESTROY,因为不确定。
对于破坏效果,targets需要设置成发动时可能成为连锁的影响对象的卡,
并设置count为发动时确定的要处理的卡的数量。
比如黑洞发动时,targets需要设定为场上的所有怪物,count设置成场上的怪的数量。
对于CATEGORY_SPECIAL_SUMMON,CATEGORY_TOHAND,CATEGORY_TODECK等分类,
如果取对象则设置targets为对象,count为对象的数量;
如果不取对象则设置targets为nil,count为预计要处理的卡的数量,
并设置target_param为预计要处理的卡的位置。
例如增援:SetOperationInfo(0,CATEGORY_TOHAND,nil,1,0,LOCATION_DECK)。
操作信息用于很多效果的发动的检测,例如星尘龙,王家沉眠之谷等。
●... Duel.GetOperationInfo(integer chainc, integer category)
返回连锁chainc的category分类的操作信息。返回值为5个,
第一个返回值是false的话表示不存在该分类。后4个返回值对应上一个函数的后4个参数。
●integer Duel.GetOperationCount(integer chainc)
返回连锁chainc包含的操作分类的数量
●Group Duel.GetExceedMaterial(Card c)
返回c的超量素材
●void Duel.Overlay(Card c, Card|Group ocard)
把ocard作为c的叠放卡叠放
●Group Duel.GetOverlayGroup(integer player, integer s, integer o)
返回指定位置的所有叠放的卡
●Integer Duel.GetOverlayCount(integer player, integer s, integer o)
返回指定位置的所有叠放的卡的数量
●void Duel.RemoveOverlayCard(integer player, integer s,
integer o, integer min, integer max, integer reason)
以reason原因移除指定位置的min-max张叠放卡
●void Duel.Hint(integer player, integer desc)
给玩家发送内置消息提示
●boolean Duel.SelectEffectYesNo(integer player, integer code)
让玩家选择是否发动卡的效果
●boolean Duel.SelectYesNo(integer player, integer desc)
让玩家选择是或否
●integer Duel.SelectOption(integer player, ...)
让玩家选择选项。从第二个参数开始,每一个参数代表一条选项。
返回选择的选项的序号。
●integer Duel.SelectDisableField
(integer player, integer count, integer s, integer o, integer filter)
让玩家player选择指定位置的count个位置不能使用。
●integer Duel.AnnounceRace(integer player, integer count, integer available)
让玩家player从可选的种族中宣言count个种族。available是所有可选种族的组合值。
●integer Duel.AnnounceAttribute(
integer player, integer count, integer available)
让玩家player从可选的属性中宣言count个属性。available是所有可选属性的组合值。
●integer Duel.AnnounceCard(integer player)
让玩家player宣言一个卡片代号。
●integer Duel.AnnounceType(integer player)
让玩家player宣言一个卡片类型。
●integer Duel.AnnounceNumber(integer player, ...)
让玩家player宣言一个数字。从第二个参数开始,每一个参数代表一个可宣言的数字。
返回选择的选项的序号。
●integer Duel.AnnounceCoin(integer player)
让玩家player宣言硬币的正反面。
●... Duel.TossCoin(integer player, integer count)
让玩家player投count次硬币。返回值为count个结果。结果是0或者1.
●... Duel.TossDice(integer player, integer count)
让玩家player投count次骰子。返回值为count个结果。结果是1-6.
●void Duel.SetCoinResult( ... )
强行修改投硬币的结果。此函数用于永续的EVENT_TOSS_COIN事件中
●void Duel.SetDiceResult( ... )
强行修改投骰子的结果。此函数用于永续的EVENT_TOSS_DICE事件中
●boolean Duel.IsPlayerAffectByEffect(integer player, integer code)
检查玩家player是否受特性效果的影响
●boolean Duel.IsPlayerCanDraw(integer player)
检查玩家player是否可以效果抽卡
●boolean Duel.IsPlayerCanDiscardDeck(integer player)
检查玩家player是否可以把卡组顶端的卡送去墓地
●boolean Duel.IsPlayerCanDiscardDeckAdCost(integer player, int count)
检查玩家player是否可以把卡组顶端的卡送去墓地作为cost。
当卡组没有足够数量的卡,
或者当卡组中的卡受到送墓转移效果的影响时(如大宇宙,次元裂缝,即使不是全部)
此函数会返回false
●boolean Duel.IsPlayerCanSummon(integer player, integer sumtype, Card c)
检查玩家player是否可以以sumtype方式通常召唤c。
仅当玩家收到“不能上级召唤”等效果的影响时返回false。
●boolean Duel.IsPlayerCanFlipSummon(integer player, Card c)
检查玩家player是否可以反转召唤c。
●boolean Duel.IsPlayerCanSpecialSummonMonster(
integer player, integet code, integer setcode,
integer attack, integer defence integer level,
integer race, integer attribute, [integer pos=POS_FACEUP,
integer target_player=player])
检查玩家player是否可以以pos的表示形式特殊召唤特定属性值的怪物到target_player场上。
此函数通常用于判定是否可以特招token和陷阱怪物。
●boolean Duel.IsPlayerCanRelease(integer player, Card c)
检查玩家是否能解放c
●boolean Duel.IsPlayerCanRemove(integer player, Card c)
检查玩家是否能除外c
●boolean Duel.IsPlayerCanSendtoHand(integer player, Card c)
检查玩家是否能把c送去手牌
●boolean Duel.IsPlayerCanSendtoGrave(integer player, Card c)
检查玩家是否能把c送去墓地
●boolean Duel.IsPlayerCanSendtoDeck(integer player, Card c)
检查玩家是否能把c送去卡组
●boolean Duel.IsChainInactivatable(integer chainc)
检查连锁chainc的发动是否可以被无效化
●boolean Duel.IsChainDisablable(integer chainc)
检查连锁chainc的效果是否可以被无效化
●boolean Duel.CheckChainTarget(integer chainc, Card c)
检查c是否是连锁chainc的正确的对象
●boolean Duel.CheckChainUniqueness()
检查当前连锁中是否存在同名卡的发动。true表示无同名卡。
●boolean Duel.SwapDeckAndGrave(integer player)
现世与冥界的逆转专用。把玩家player的卡组和墓地交换
●boolean Duel.CheckSummonActivity(integer player)
检查玩家player本回合有没有进行过召唤的行为。
召唤被无效视作进行过召唤行为。
●boolean Duel.CheckNormalSummonActivity(integer player)
检查玩家player本回合有没有进行过通常召唤的行为。包括召唤和set
●boolean Duel.CheckFlipSummonActivity(integer player)
检查玩家player本回合有没有进行过反转召唤的行为。
●boolean Duel.CheckFlipSummonActivity(integer player)
检查玩家player本回合有没有进行过特殊召唤的行为。
特殊召唤的行为包括:
进行了入连锁和不入连锁的特殊召唤;
发动了确定要特殊召唤的效果但是效果被无效
不包括:发动了确定要特殊召唤的效果但是发动被无效
●boolean Duel.CheckAttackActivity(integer player)
检查玩家player本回合有没有进行过攻击。
\ No newline at end of file
--Locations 区域
LOCATION_DECK =0x01 --卡组
LOCATION_HAND =0x02 --手牌
LOCATION_MZONE =0x04 --怪兽区
LOCATION_SZONE =0x08 --魔陷区
LOCATION_GRAVE =0x10 --墓地
LOCATION_REMOVED =0x20 --除外区
LOCATION_EXTRA =0x40 --额外
LOCATION_OVERLAY =0x80 --超量素材
LOCATION_ONFIELD =0x0c --场上(怪兽+魔陷)
LOCATION_DECKBOT =0x10001 --卡组底部
LOCATION_DECKSHF =0x20001 --卡组顶部
--Locations (for SetRange)
LOCATION_FZONE =0x100 --场地区
LOCATION_PZONE =0x200 --摇摆区
--Positions 表示形式
POS_FACEUP_ATTACK =0x1 --表侧攻击
POS_FACEDOWN_ATTACK =0x2 --里侧攻击
POS_FACEUP_DEFENCE =0x4 --表侧守备
POS_FACEDOWN_DEFENCE =0x8 --里侧守备
POS_FACEUP =0x5 --正面表示
POS_FACEDOWN =0xa --背面表示
POS_ATTACK =0x3 --攻击表示
POS_DEFENCE =0xc --守备表示
NO_FLIP_EFFECT =0x10000--不发动反转效果
--Types 卡片类型
TYPE_MONSTER =0x1 --怪兽卡
TYPE_SPELL =0x2 --魔法卡
TYPE_TRAP =0x4 --陷阱卡
TYPE_NORMAL =0x10 --通常
TYPE_EFFECT =0x20 --效果
TYPE_FUSION =0x40 --融合
TYPE_RITUAL =0x80 --仪式
TYPE_TRAPMONSTER =0x100 --陷阱怪兽
TYPE_SPIRIT =0x200 --灵魂
TYPE_UNION =0x400 --同盟
TYPE_DUAL =0x800 --二重
TYPE_TUNER =0x1000 --调整
TYPE_SYNCHRO =0x2000 --同调
TYPE_TOKEN =0x4000 --衍生物
TYPE_QUICKPLAY =0x10000 --速攻
TYPE_CONTINUOUS =0x20000 --永续
TYPE_EQUIP =0x40000 --装备
TYPE_FIELD =0x80000 --场地
TYPE_COUNTER =0x100000 --反击
TYPE_FLIP =0x200000 --翻转
TYPE_TOON =0x400000 --卡通
TYPE_XYZ =0x800000 --超量
TYPE_PENDULUM =0x1000000 --摇摆
--Attributes 属性
ATTRIBUTE_EARTH =0x01 --地
ATTRIBUTE_WATER =0x02 --水
ATTRIBUTE_FIRE =0x04 --炎
ATTRIBUTE_WIND =0x08 --风
ATTRIBUTE_LIGHT =0x10 --光
ATTRIBUTE_DARK =0x20 --暗
ATTRIBUTE_DEVINE =0x40 --神
--Races 种族
RACE_ALL =0xffffff --全种族
RACE_WARRIOR =0x1 --战士
RACE_SPELLCASTER =0x2 --魔法师
RACE_FAIRY =0x4 --天使
RACE_FIEND =0x8 --恶魔
RACE_ZOMBIE =0x10 --不死
RACE_MACHINE =0x20 --机械
RACE_AQUA =0x40 --水
RACE_PYRO =0x80 --炎
RACE_ROCK =0x100 --岩石
RACE_WINDBEAST =0x200 --鸟兽
RACE_PLANT =0x400 --植物
RACE_INSECT =0x800 --昆虫
RACE_THUNDER =0x1000 --雷
RACE_DRAGON =0x2000 --龙
RACE_BEAST =0x4000 --兽
RACE_BEASTWARRIOR =0x8000 --兽战士
RACE_DINOSAUR =0x10000 --恐龙
RACE_FISH =0x20000 --鱼
RACE_SEASERPENT =0x40000 --海龙
RACE_REPTILE =0x80000 --爬虫
RACE_PSYCHO =0x100000 --念动力
RACE_DEVINE =0x200000 --幻神兽
RACE_CREATORGOD =0x400000 --创造神
RACE_WYRM =0x800000 --幻龙
--Reason 卡片到当前位置的原因
REASON_DESTROY =0x1 --破坏
REASON_RELEASE =0x2 --解放
REASON_TEMPORARY =0x4 --暂时
REASON_MATERIAL =0x8 --作为融合/同调/超量等的素材
REASON_SUMMON =0x10 --召唤
REASON_BATTLE =0x20 --战斗破坏
REASON_EFFECT =0x40 --效果
REASON_COST =0x80 --COST
REASON_ADJUST =0x100 --调整(御前试合)
REASON_LOST_TARGET =0x200 --失去效果对象
REASON_RULE =0x400 --规则
REASON_SPSUMMON =0x800 --特殊召唤
REASON_DISSUMMON =0x1000 --召唤失败
REASON_FLIP =0x2000 --翻转
REASON_DISCARD =0x4000 --丢弃
REASON_RDAMAGE =0x8000 --基本分伤害
REASON_RRECOVER =0x10000 --基本分恢复
REASON_RETURN =0x20000 --回收
REASON_FUSION =0x40000 --融合
REASON_SYNCHRO =0x80000 --同调
REASON_RITUAL =0x100000 --仪式
REASON_XYZ =0x200000 --超量
REASON_REPLACE =0x1000000 --代替
REASON_DRAW =0x2000000 --抽卡
REASON_REDIRECT =0x4000000 --改变去向(大宇宙,带菌等)
REASON_REVEAL =0x8000000 --翻开卡组(森罗)
--Summon Type --召唤类型
SUMMON_TYPE_NORMAL =0x10000000 --通常召唤
SUMMON_TYPE_ADVANCE =0x11000000 --上级(祭品)召唤
SUMMON_TYPE_DUAL =0x12000000 --再度召唤(二重)
SUMMON_TYPE_FLIP =0x20000000 --翻转召唤
SUMMON_TYPE_SPECIAL =0x40000000 --特殊召唤
SUMMON_TYPE_FUSION =0x43000000 --融合召唤
SUMMON_TYPE_RITUAL =0x45000000 --仪式召唤
SUMMON_TYPE_SYNCHRO =0x46000000 --同调召唤
SUMMON_TYPE_XYZ =0x49000000 --超量召唤
SUMMON_TYPE_PENDULUM =0x4a000000 --摇摆召唤
--Status --卡片当前状态
STATUS_DISABLED =0x0001 --效果被无效
STATUS_TO_ENABLE =0x0002 --将变成有效
STATUS_TO_DISABLE =0x0004 --将变成无效
STATUS_PROC_COMPLETE =0x0008 --完成正规召唤(解除苏生限制)
STATUS_SET_TURN =0x0010 --覆盖
STATUS_FLIP_SUMMONED =0x0020 --翻转
STATUS_REVIVE_LIMIT =0x0040 --未解除苏生限制
STATUS_ATTACKED =0x0080 --攻击过
STATUS_FORM_CHANGED =0x0100 --改变过表示形式
STATUS_SUMMONING =0x0200 --召唤中
STATUS_EFFECT_ENABLED =0x0400 --效果有效
STATUS_SUMMON_TURN =0x0800 --在本回合召唤
STATUS_DESTROY_CONFIRMED =0x1000 --破坏确定
STATUS_LEAVE_CONFIRMED =0x2000 --离开确定
STATUS_BATTLE_DESTROYED =0x4000 --战斗破坏确定
STATUS_COPYING_EFFECT =0x8000 --复制效果
STATUS_CHAINING =0x10000 --进入连锁
STATUS_SUMMON_DISABLED =0x20000 --召唤无效
STATUS_ACTIVATE_DISABLED =0x40000 --发动无效
STATUS_UNSUMMONABLE_CARD =0x80000 --不能通常召唤
STATUS_UNION =0x100000 --同盟
STATUS_ATTACK_CANCELED =0x200000 --攻击取消(卷回?)
STATUS_INITIALIZING =0x400000 --初始化..
STATUS_ACTIVATED =0x800000 --效果已发动
STATUS_JUST_POS =0x1000000 --
STATUS_CONTINUOUS_POS =0x2000000 --连续变更表示形式?
STATUS_IS_PUBLIC =0x4000000 --公开展示
STATUS_ACT_FROM_HAND =0x8000000 --在手牌发动
--Assume
ASSUME_CODE =1
ASSUME_TYPE =2
ASSUME_LEVEL =3
ASSUME_RANK =4
ASSUME_ATTRIBUTE =5
ASSUME_RACE =6
ASSUME_ATTACK =7
ASSUME_DEFENCE =8
--Counter --指示物
COUNTER_NEED_PERMIT =0x1000 --某指示物数量上限
COUNTER_NEED_ENABLE =0x2000 --可以放置某指示物
--Phase --阶段
PHASE_DRAW =0x01 --抽卡阶段
PHASE_STANDBY =0x02 --准备阶段
PHASE_MAIN1 =0x04 --主要阶段1
PHASE_BATTLE =0x08 --战斗阶段
PHASE_DAMAGE =0x10 --伤害计算前
PHASE_DAMAGE_CAL =0x20 --伤害计算时
PHASE_MAIN2 =0x40 --主要阶段2
PHASE_END =0x80 --结束阶段
--Player --玩家
PLAYER_NONE =2 --2个玩家都不是
PLAYER_ALL =3 --2个玩家都是
--Chain info --连锁信息
CHAININFO_CHAIN_COUNT =0x01 --连锁数
CHAININFO_TRIGGERING_EFFECT =0x02 --连锁的效果
CHAININFO_TRIGGERING_PLAYER =0x04 --连锁的玩家
CHAININFO_TRIGGERING_CONTROLER =0x08 --连锁的卡的控制者
CHAININFO_TRIGGERING_LOCATION =0x10 --连锁的位置
CHAININFO_TRIGGERING_SEQUENCE =0x20 --连锁的位置的编号(指怪兽和魔陷区的格子)
CHAININFO_TARGET_CARDS =0x40 --连锁的效果的对象(以下3个需要在target函数里设置)
CHAININFO_TARGET_PLAYER =0x80 --连锁的效果的对象(玩家)
CHAININFO_TARGET_PARAM =0x100 --连锁的效果的参数值
CHAININFO_DISABLE_REASON =0x200 --无效的原因
CHAININFO_DISABLE_PLAYER =0x400 --无效的玩家
CHAININFO_CHAIN_ID =0x800 --连锁ID
CHAININFO_TYPE =0x1000 --连锁类型
CHAININFO_EXTTYPE =0x2000 --连锁额外类型
--========== Reset ========== --重置条件(注意:重置条件可以多个相加,例如0x000c0000=0x00040000+0x00080000=RESET_TOGRAVE+RESET_REMOVE)
RESET_DRAW =PHASE_DRAW --抽卡阶段重置
RESET_STANDBY =PHASE_STANDBY --准备阶段重置
RESET_MAIN1 =PHASE_MAIN1 --主要阶段1重置
RESET_BATTLE =PHASE_BATTLE --战斗阶段重置
RESET_DAMAGE =PHASE_DAMAGE --伤害计算前重置
RESET_DAMAGE_CAL =PHASE_DAMAGE_CAL --伤害计算时重置
RESET_MAIN2 =PHASE_MAIN2 --主要阶段2重置
RESET_END =PHASE_END --结束阶段重置
RESET_SELF_TURN =0x0100 --自己回合结束重置
RESET_OPPO_TURN =0x0200 --对方回合结束重置
RESET_PHASE =0x0400 --阶段结束重置(一般和上面那些阶段配合使用
RESET_CHAIN =0x0800 --连锁结束重置
RESET_EVENT =0x1000 --不明(一般和下面这些事件配合使用
RESET_CARD =0x2000
RESET_CODE =0x4000 --卡名改变重置
RESET_COPY =0x8000 --复制效果重置
RESET_DISABLE =0x00010000 --效果无效重置
RESET_TURN_SET =0x00020000 --变里侧重置
RESET_TOGRAVE =0x00040000 --去墓地重置
RESET_REMOVE =0x00080000 --除外重置
RESET_TEMP_REMOVE =0x00100000 --暂时除外重置
RESET_TOHAND =0x00200000 --回手牌或加入手牌重置
RESET_TODECK =0x00400000 --回卡组重置
RESET_LEAVE =0x00800000 --从场上离开重置
RESET_TOFIELD =0x01000000 --到场上重置
RESET_CONTROL =0x02000000 --控制器变更重置
RESET_OVERLAY =0x04000000 --超量叠放重置
--========== Types ========== --效果类型(定义效果触发类型,和codes一起使用)
EFFECT_TYPE_SINGLE =0x0001 --自己状态变化时触发
EFFECT_TYPE_FIELD =0x0002 --场上所有卡状态变化时触发
EFFECT_TYPE_EQUIP =0x0004 --装备效果
EFFECT_TYPE_ACTIONS =0x0008 --怪兽效果发动(对峙的G)
EFFECT_TYPE_ACTIVATE =0x0010 --魔陷发动
EFFECT_TYPE_FLIP =0x0020 --翻转效果
EFFECT_TYPE_IGNITION =0x0040 --起动效果
EFFECT_TYPE_TRIGGER_O =0x0080 --诱发选发效果
EFFECT_TYPE_QUICK_O =0x0100 --诱发即时效果
EFFECT_TYPE_TRIGGER_F =0x0200 --诱发必发效果
EFFECT_TYPE_QUICK_F =0x0400 --诱发即时必发效果(熊猫龙等)
EFFECT_TYPE_CONTINUOUS =0x0800 --不入连锁的诱发效果
--========== Flags ========== --效果的特殊性质
EFFECT_FLAG_INITIAL =0x0001 --可以发动的
EFFECT_FLAG_FUNC_VALUE =0x0002 --
EFFECT_FLAG_COUNT_LIMIT =0x0004 --
EFFECT_FLAG_FIELD_ONLY =0x0008 --场上只有1只
EFFECT_FLAG_CARD_TARGET =0x0010 --取对象效果
EFFECT_FLAG_IGNORE_RANGE =0x0020 --使用限制?(禁止令 大宇宙 王宫的铁壁)
EFFECT_FLAG_ABSOLUTE_TARGET =0x0040 --
EFFECT_FLAG_IGNORE_IMMUNE =0x0080 --无视效果免疫
EFFECT_FLAG_SET_AVAILABLE =0x0100 --不能发动?
EFFECT_FLAG_MULTIACT_HAND =0x0200 --手牌有多张可以同时诱发(蔷薇妖精等)
EFFECT_FLAG_CANNOT_DISABLE =0x0400 --不会被无效
EFFECT_FLAG_PLAYER_TARGET =0x0800 --以玩家为对象
EFFECT_FLAG_BOTH_SIDE =0x1000 --双方都能使用(部分场地,弹压)
EFFECT_FLAG_COPY_INHERIT =0x2000 --残留?持续?效果
EFFECT_FLAG_DAMAGE_STEP =0x4000 --可以在伤害步骤发动
EFFECT_FLAG_DAMAGE_CAL =0x8000 --可以在伤害计算时发动
EFFECT_FLAG_DELAY =0x10000 --场合(不会被卡时点
EFFECT_FLAG_SINGLE_RANGE =0x20000 --只对自己有效
EFFECT_FLAG_UNCOPYABLE =0x40000 --不能复制(规则效果
EFFECT_FLAG_OATH =0x80000 --誓约效果
EFFECT_FLAG_SPSUM_PARAM =0x100000 --规则特殊召唤(熔岩魔神 光子杀戮者)
EFFECT_FLAG_REPEAT =0x200000 --发动被无效后可以再次发动
EFFECT_FLAG_NO_TURN_RESET =0x400000 --发条等“这张卡在场上只能发动一次”的效果
EFFECT_FLAG_EVENT_PLAYER =0x800000 --视为对方玩家的效果(动作?)
EFFECT_FLAG_OWNER_RELATE =0x1000000 --和效果持有者相关
EFFECT_FLAG_AVAILABLE_BD =0x2000000 --战斗伤害操作(纳祭之魔 地狱战士)
EFFECT_FLAG_CLIENT_HINT =0x4000000 --获得效果?
EFFECT_FLAG_CHAIN_UNIQUE =0x8000000 --同一组连锁只能发动一次
EFFECT_FLAG_NAGA =0x10000000 --神卡纳迦!
EFFECT_FLAG_COF =0x20000000 --邪恶的仪式
EFFECT_FLAG_CVAL_CHECK =0x40000000 --以卡为COST的诱发效果需要使用
--========== Codes ========== --对永续性效果表示效果类型 EFFECT开头,对诱发型效果表示触发效果的事件/时点 EVENT开头
EFFECT_IMMUNE_EFFECT =1 --效果免疫
EFFECT_DISABLE =2 --效果无效(一时无效?)
EFFECT_CANNOT_DISABLE =3 --效果不能无效
EFFECT_SET_CONTROL =4 --改变控制器
EFFECT_CANNOT_CHANGE_CONTROL =5 --不能改变控制权
EFFECT_CANNOT_ACTIVATE =6 --不能发动(魔法·陷阱)卡
EFFECT_CANNOT_TRIGGER =7 --不能发动效果
EFFECT_DISABLE_EFFECT =8 --效果无效
EFFECT_DISABLE_CHAIN =9 --不能连锁
EFFECT_DISABLE_TRAPMONSTER =10 --陷阱怪兽无效
EFFECT_CANNOT_INACTIVATE =12 --不能发动
EFFECT_CANNOT_DISEFFECT =13 --效果不能被无效(魔法·陷阱)
EFFECT_CANNOT_CHANGE_POSITION =14 --不能改变表示形式
EFFECT_TRAP_ACT_IN_HAND =15 --陷阱可以从手牌发动
EFFECT_TRAP_ACT_IN_SET_TURN =16 --陷阱可以在盖放的回合发动
EFFECT_REMAIN_FIELD =17 --X回合内留在场上(光之护封剑等)
EFFECT_MONSTER_SSET =18 --怪兽可以在魔陷区放置
EFFECT_CANNOT_SUMMON =20 --不能召唤怪兽
EFFECT_CANNOT_FLIP_SUMMON =21 --不能翻转召唤怪兽
EFFECT_CANNOT_SPECIAL_SUMMON =22 --不能特殊召唤怪兽
EFFECT_CANNOT_MSET =23 --不能覆盖怪兽
EFFECT_CANNOT_SSET =24 --不能覆盖魔陷
EFFECT_CANNOT_DRAW =25 --不能抽卡
EFFECT_CANNOT_DISABLE_SUMMON =26 --召唤不会无效
EFFECT_CANNOT_DISABLE_SPSUMMON =27 --特殊召唤不会无效
EFFECT_SET_SUMMON_COUNT_LIMIT =28 --限制每回合放置怪兽次数
EFFECT_EXTRA_SUMMON_COUNT =29 --增加召唤(通常召唤)次数
EFFECT_SPSUMMON_CONDITION =30 --特殊召唤条件
EFFECT_REVIVE_LIMIT =31 --苏生限制
EFFECT_SUMMON_PROC =32 --召唤规则
EFFECT_LIMIT_SUMMON_PROC =33 --召唤规则限制
EFFECT_SPSUMMON_PROC =34 --特殊召唤规则
EFFECT_EXTRA_SET_COUNT =35 --增加盖放(通常召唤)次数
EFFECT_SET_PROC =36 --放置(通常召唤)规则
EFFECT_LIMIT_SET_PROC =37 --放置(通常召唤)规则限制
EFFECT_DEVINE_LIGHT =38 --???(神圣光辉 魔术礼帽)
EFFECT_CANNOT_DISABLE_FLIP_SUMMON =39 --翻转召唤不会无效
EFFECT_INDESTRUCTABLE =40 --不会被破坏
EFFECT_INDESTRUCTABLE_EFFECT =41 --不会被效果破坏
EFFECT_INDESTRUCTABLE_BATTLE =42 --不会被战斗破坏
EFFECT_UNRELEASABLE_SUM =43 --不能做上级召唤的祭品
EFFECT_UNRELEASABLE_NONSUM =44 --不能做上级召唤以外的祭品
EFFECT_DESTROY_SUBSTITUTE =45 --代替破坏(别人破坏时牺牲自己
EFFECT_CANNOT_RELEASE =46 --不能进行解放行为
EFFECT_INDESTRUCTABLE_COUNT =47 --一回合几次不会被破坏
EFFECT_UNRELEASABLE_EFFECT =48 --不能被解放
EFFECT_DESTROY_REPLACE =50 --代替破坏(自己破坏时牺牲别人
EFFECT_RELEASE_REPLACE =51 --代替解放
EFFECT_SEND_REPLACE =52 --可以不送去XX而送去OO(宝玉 甜点城堡等)
EFFECT_CANNOT_DISCARD_HAND =55 --不能丢弃手牌
EFFECT_CANNOT_DISCARD_DECK =56 --不能把卡组上方的卡送去墓地
EFFECT_CANNOT_USE_AS_COST =57 --不能作为COST使用
EFFECT_CANNOT_PLACE_COUNTER =58 --不能使用的位置
EFFECT_LEAVE_FIELD_REDIRECT =60 --离场时重新指定去向
EFFECT_TO_HAND_REDIRECT =61 --回手牌时重新指定去向
EFFECT_TO_DECK_REDIRECT =62 --回卡组时重新指定去向
EFFECT_TO_GRAVE_REDIRECT =63 --去墓地时重新指定去向
EFFECT_REMOVE_REDIRECT =64 --除外时重新指定去向
EFFECT_CANNOT_TO_HAND =65 --不能加入手牌
EFFECT_CANNOT_TO_DECK =66 --不能回卡组
EFFECT_CANNOT_REMOVE =67 --不能除外
EFFECT_CANNOT_TO_GRAVE =68 --不能去墓地
EFFECT_CANNOT_TURN_SET =69 --不能变里侧
EFFECT_CANNOT_BE_BATTLE_TARGET =70 --不能成为攻击对象
EFFECT_CANNOT_BE_EFFECT_TARGET =71 --不能成为效果对象
EFFECT_IGNORE_BATTLE_TARGET =72 --不能成为攻击对象-鶸型(传说的渔人)
EFFECT_CANNOT_DIRECT_ATTACK =73 --不能直接攻击
EFFECT_DIRECT_ATTACK =74 --可以直接攻击
EFFECT_DUAL_STATUS =75 --二重状态
EFFECT_EQUIP_LIMIT =76 --装备对象限制
EFFECT_DUAL_SUMMONABLE =77 --可以再度召唤
EFFECT_REVERSE_DAMAGE =80 --伤害变回复
EFFECT_REVERSE_RECOVER =81 --回复变伤害
EFFECT_CHANGE_DAMAGE =82 --改变伤害数值
EFFECT_REFLECT_DAMAGE =83 --反射伤害
EFFECT_CANNOT_ATTACK =85 --不能攻击
EFFECT_CANNOT_ATTACK_ANNOUNCE =86 --不能攻击宣言
EFFECT_CANNOT_CHANGE_POS_E =87 --不会被卡的效果变成守备表示(攻击性云魔物)
EFFECT_ACTIVATE_COST =90 --发动代价(魔力之枷)
EFFECT_SUMMON_COST =91 --召唤代价
EFFECT_SPSUMMON_COST =92 --特殊召唤代价(暴君龙)
EFFECT_FLIPSUMMON_COST =93 --翻转召唤代价
EFFECT_MSET_COST =94 --怪兽放置代价
EFFECT_SSET_COST =95 --魔陷放置代价
EFFECT_ATTACK_COST =96 --攻击代价(霞之谷猎鹰)
EFFECT_UPDATE_ATTACK =100 --改变攻击力(攻击力增加/减少)
EFFECT_SET_ATTACK =101 --设置攻击力(攻击变成)
EFFECT_SET_ATTACK_FINAL =102 --设置最终攻击力(神之化身)
EFFECT_SET_BASE_ATTACK =103 --设置原本攻击力
EFFECT_UPDATE_DEFENCE =104 --改变防御力(参考攻击力,下同)
EFFECT_SET_DEFENCE =105 --设置防御力
EFFECT_SET_DEFENCE_FINAL =106 --设置最终攻击力
EFFECT_SET_BASE_DEFENCE =107 --设置原本攻击力
EFFECT_REVERSE_UPDATE =108 --倒置改变攻击力、防御力(天邪鬼)
EFFECT_SWAP_AD =109 --交换攻防
EFFECT_SWAP_BASE_AD =110 --交换原本攻防
EFFECT_ADD_CODE =113 --增加卡名
EFFECT_CHANGE_CODE =114 --改名卡名
EFFECT_ADD_TYPE =115 --增加卡片种类(types)
EFFECT_REMOVE_TYPE =116 --删除卡片种类
EFFECT_CHANGE_TYPE =117 --改变卡片种类
EFFECT_ADD_RACE =120 --增加种族
EFFECT_REMOVE_RACE =121 --删除种族
EFFECT_CHANGE_RACE =122 --改变种族
EFFECT_ADD_ATTRIBUTE =125 --增加属性
EFFECT_REMOVE_ATTRIBUTE =126 --删除属性
EFFECT_CHANGE_ATTRIBUTE =127 --改变属性
EFFECT_UPDATE_LEVEL =130 --改变等级
EFFECT_CHANGE_LEVEL =131 --设置等级
EFFECT_UPDATE_RANK =132 --改变阶级
EFFECT_CHANGE_RANK =133 --设置阶级
EFFECT_UPDATE_LSCALE =134 --改变左刻度
EFFECT_CHANGE_LSCALE =135 --设置左刻度
EFFECT_UPDATE_RSCALE =136 --改变右刻度
EFFECT_CHANGE_RSCALE =137 --设置右刻度
EFFECT_SET_POSITION =140 --改变表示形式
EFFECT_SELF_DESTROY =141 --自灭(罪系列等)
EFFECT_DOUBLE_TRIBUTE =150 --可以作为2个祭品
EFFECT_DECREASE_TRIBUTE =151 --减少祭品
EFFECT_DECREASE_TRIBUTE_SET =152 --减少放置怪兽的祭品
EFFECT_EXTRA_RELEASE =153 --代替解放(灵魂交错)
EFFECT_TRIBUTE_LIMIT =154 --祭品限制
EFFECT_EXTRA_RELEASE_SUM =155 --代替召唤解放(帝王的烈旋)
EFFECT_PUBLIC =160 --公开手牌
EFFECT_COUNTER_PERMIT =0x10000--允许放置指示物类型
EFFECT_COUNTER_LIMIT =0x20000--允许放置指示物数量
EFFECT_RCOUNTER_REPLACE =0x30000--代替取除(指示物?)
EFFECT_LPCOST_CHANGE =170 --改变生命值代价
EFFECT_LPCOST_REPLACE =171 --代替生命值代价
EFFECT_SKIP_DP =180 --跳过抽卡阶段
EFFECT_SKIP_SP =181 --跳过准备阶段
EFFECT_SKIP_M1 =182 --跳过主要阶段1
EFFECT_SKIP_BP =183 --跳过战斗阶段
EFFECT_SKIP_M2 =184 --跳过主要阶段2
EFFECT_CANNOT_BP =185 --不能进入战斗阶段
EFFECT_CANNOT_M2 =186 --不能进入主要阶段2
EFFECT_CANNOT_EP =187 --不能进入结束阶段
EFFECT_SKIP_TURN =188 --跳过整个回合
EFFECT_DEFENCE_ATTACK =190 --可以守备表示攻击
EFFECT_MUST_ATTACK =191 --必须攻击
EFFECT_FIRST_ATTACK =192 --必须第一个攻击
EFFECT_ATTACK_ALL =193 --可以攻击所有怪兽
EFFECT_EXTRA_ATTACK =194 --增加攻击次数
EFFECT_MUST_BE_ATTACKED =195 --必须攻击(那只怪兽)
EFFECT_AUTO_BE_ATTACKED =196 --只能攻击(那只怪兽)
EFFECT_ATTACK_DISABLED =197 --不能攻击
EFFECT_NO_BATTLE_DAMAGE =200 --不会给对方造成战斗伤害
EFFECT_AVOID_BATTLE_DAMAGE =201 --不会对自己造成战斗伤害
EFFECT_REFLECT_BATTLE_DAMAGE =202 --反弹战斗伤害
EFFECT_PIERCE =203 --贯穿伤害
EFFECT_BATTLE_DESTROY_REDIRECT =204 --战斗破坏时重新指定去向
EFFECT_BATTLE_DAMAGE_TO_EFFECT =205 --战斗伤害视为效果伤害
EFFECT_TOSS_COIN_REPLACE =220 --重新抛硬币
EFFECT_TOSS_DICE_REPLACE =221 --重新掷骰子
EFFECT_FUSION_MATERIAL =230 --可以当作仪式素材
EFFECT_CHAIN_MATERIAL =231 --可以当作融合素材
EFFECT_SYNCHRO_MATERIAL =232 --可以当作同调素材
EFFECT_XYZ_MATERIAL =233 --可以当作超量素材
EFFECT_FUSION_SUBSTITUTE =234 --代替融合素材
EFFECT_CANNOT_BE_FUSION_MATERIAL =235--不能做融合素材
EFFECT_CANNOT_BE_SYNCHRO_MATERIAL =236--不能做同调素材
EFFECT_SYNCHRO_MATERIAL_CUSTOM =237--同调素材限制
EFFECT_CANNOT_BE_XYZ_MATERIAL =238--不能做超量素材
EFFECT_SYNCHRO_LEVEL =240--做同调素材时的等级
EFFECT_RITUAL_LEVEL =241--做仪式祭品时的等级
EFFECT_XYZ_LEVEL =242--做超量素材时的等级
EFFECT_EXTRA_RITUAL_MATERIAL =243--在墓地当做仪式祭品
EFFECT_NONTUNER =244--同时当作调整以外的怪兽(幻影王 幽骑)
EFFECT_OVERLAY_REMOVE_REPLACE =245--代替去除超量素材
EFFECT_SCRAP_CHIMERA =246--废铁奇美拉
EFFECT_XMAT_COUNT_LIMIT =247--超量素材限制(光天使 天座)
EFFECT_SPSUM_EFFECT_ACTIVATED =250 --发动特殊召唤的效果(冥府的使者 格斯)
EFFECT_MATERIAL_CHECK =251 --检查素材
EFFECT_DISABLE_FIELD =260 --无效区域(扰乱王等)
EFFECT_USE_EXTRA_MZONE =261 --怪兽区域封锁
EFFECT_USE_EXTRA_SZONE =262 --魔法区域封锁
EFFECT_MAX_MZONE =263 --宇宙收缩
EFFECT_MAX_SZONE =264 --宇宙收缩
EFFECT_HAND_LIMIT =270 --手牌数量限制
EFFECT_DRAW_COUNT =271 --抽卡阶段的抽卡数
EFFECT_SPIRIT_DONOT_RETURN =280 --灵魂怪兽不返会手牌
EFFECT_SPIRIT_MAYNOT_RETURN =281 --灵魂怪兽可以不返回手牌
EFFECT_CHANGE_ENVIRONMENT =290 --改变场地
EFFECT_NECRO_VALLEY =291 --王家长眠之谷
EFFECT_FORBIDDEN =292 --禁止令
EFFECT_NECRO_VALLEY_IM =293 --不受「王家长眠之谷」的影响
EFFECT_REVERSE_DECK =294 --翻转卡组
EFFECT_REMOVE_BRAINWASHING =295 --洗脑解除
EFFECT_BP_TWICE =296 --2次战斗阶段
EFFECT_UNIQUE_CHECK =297 --
EFFECT_MATCH_KILL =300 --胜利龙
EFFECT_SYNCHRO_CHECK =310 --基因组斗士
EFFECT_QP_ACT_IN_NTPHAND =311 --对方回合从自己手卡发动(失乐的圣女)
EFFECT_MUST_BE_SMATERIAL =312 --同调素材必须
EFFECT_SPSUMMON_PROC_G =320 --P召唤规则
EFFECT_SUMMON_COUNT_LIMIT =330 --召唤次数限制
EFFECT_SPSUMMON_COUNT_LIMIT =331 --特殊召唤次数限制
EFFECT_FLIP_SUMMON_COUNT_LIMIT =332 --反转召唤次数限制
--下面是诱发效果的诱发事件、时点 (如果是TYPE_SINGLE则自己发生以下事件后触发,如果TYPE_FIELD则场上任何卡发生以下事件都触发)
EVENT_STARTUP =1000 --游戏开始时
EVENT_FLIP =1001 --翻转时
EVENT_FREE_CHAIN =1002 --自由时点(强脱等,还有昴星团等诱发即时效果)
EVENT_DESTROY =1010 --破坏时
EVENT_REMOVE =1011 --除外时
EVENT_TO_HAND =1012 --加入手牌时
EVENT_TO_DECK =1013 --回卡组时
EVENT_TO_GRAVE =1014 --进墓地时
EVENT_LEAVE_FIELD =1015 --离场时
EVENT_CHANGE_POS =1016 --表示形式变更时
EVENT_RELEASE =1017 --解放时
EVENT_DISCARD =1018 --丢弃手牌时
EVENT_LEAVE_FIELD_P =1019 --永久离场时
EVENT_CHAIN_SOLVING =1020 --连锁处理时
EVENT_CHAIN_ACTIVATING =1021 --连锁发动时
EVENT_CHAIN_SOLVED =1022 --连锁处理结束时
EVENT_CHAIN_ACTIVATED =1023 --连锁发动完时
EVENT_CHAIN_NEGATED =1024 --连锁被无效时(发动无效)
EVENT_CHAIN_DISABLED =1025 --连锁被无效时(效果无效)
EVENT_CHAIN_END =1026 --连锁结束时
EVENT_CHAINING =1027 --正在连锁
EVENT_BECOME_TARGET =1028 --成为效果对象时
EVENT_DESTROYED =1029 --破坏确定时
EVENT_ADJUST =1040 --调整(御前试合)
EVENT_SUMMON_SUCCESS =1100 --通常召唤成功时
EVENT_FLIP_SUMMON_SUCCESS =1101 --翻转召唤成功时
EVENT_SPSUMMON_SUCCESS =1102 --特殊召唤成功时
EVENT_SUMMON =1103 --召唤时(怪兽还没上场、神宣等时点)
EVENT_FLIP_SUMMON =1104 --翻转召唤时
EVENT_SPSUMMON =1105 --特殊召唤时
EVENT_MSET =1106 --放置怪兽时
EVENT_SSET =1107 --放置魔陷时
EVENT_BE_MATERIAL =1108 --作为融合/仪式同调/超量素材时
EVENT_BE_PRE_MATERIAL =1109 --将要作为融合/仪式同调/超量素材时
EVENT_DRAW =1110 --抽卡
EVENT_DAMAGE =1111 --造成战斗/效果伤害时
EVENT_RECOVER =1112 --回复生命值时
EVENT_PREDRAW =1113 --抽卡前
EVENT_CONTROL_CHANGED =1120 --控制权变更
EVENT_EQUIP =1121 --装备卡装备时
EVENT_ATTACK_ANNOUNCE =1130 --攻击宣言时
EVENT_BE_BATTLE_TARGET =1131 --被选为攻击对象时
EVENT_BATTLE_START =1132 --战斗阶段开始时
EVENT_BATTLE_CONFIRM =1133 --选完攻击对象时
EVENT_PRE_DAMAGE_CALCULATE =1134 --伤害计算前
EVENT_DAMAGE_CALCULATING =1135 --伤害计算时
EVENT_PRE_BATTLE_DAMAGE =1136 --即将产生战斗伤害
EVENT_BATTLE_END =1137 --战斗结束(开辟)
EVENT_BATTLED =1138 --伤害计算后(异女、同反转效果时点)
EVENT_BATTLE_DESTROYING =1139 --战斗破坏送去墓地时(BF-苍炎之修罗)
EVENT_BATTLE_DESTROYED =1140 --战斗破坏送去墓地时(杀人番茄等)
EVENT_DAMAGE_STEP_END =1141 --伤害步骤结束时
EVENT_ATTACK_DISABLED =1142 --攻击无效时(翻倍机会)
EVENT_BATTLE_DAMAGE =1143 --造成战斗伤害时
EVENT_TOSS_DICE =1150 --掷骰子时
EVENT_TOSS_COIN =1151 --抛硬币时
EVENT_TOSS_COIN_NEGATE =1152 --抛硬币被无效时
EVENT_TOSS_DICE_NEGATE =1153 --掷骰子被无效时
EVENT_LEVEL_UP =1200 --等级上升时
EVENT_PAY_LPCOST =1201 --支付生命值时
EVENT_DETACH_MATERIAL =1202 --去除超量素材时
EVENT_CONFIRM_DECKTOP =1203 --确认卡组最上方时
EVENT_CONFIRM_CARDS =1204 --确认卡时
EVENT_TURN_END =1210 --回合结束时
EVENT_PHASE =0x1000 --阶段结束时
EVENT_PHASE_START =0x2000 --阶段开始时
EVENT_ADD_COUNTER =0x10000--增加指示物时
EVENT_REMOVE_COUNTER =0x20000--去除指示物时
--Categorys 效果分类(表示这个效果将要发生什么事,OperationInfo设置了效果分类才能触发针对这一类型发动的卡,如破坏->星尘龙
CATEGORY_DESTROY =0x1 --破坏效果
CATEGORY_RELEASE =0x2 --解放效果
CATEGORY_REMOVE =0x4 --除外效果
CATEGORY_TOHAND =0x8 --加入手牌效果
CATEGORY_TODECK =0x10 --回卡组效果
CATEGORY_TOGRAVE =0x20 --送去墓地效果
CATEGORY_DECKDES =0x40 --卡组破坏效果
CATEGORY_HANDES =0x80 --手牌破坏效果
CATEGORY_SUMMON =0x100 --含召唤的效果
CATEGORY_SPECIAL_SUMMON =0x200 --含特殊召唤的效果
CATEGORY_TOKEN =0x400 --含衍生物效果
CATEGORY_FLIP =0x800 --含翻转效果
CATEGORY_POSITION =0x1000 --改变表示形式效果
CATEGORY_CONTROL =0x2000 --改变控制权效果
CATEGORY_DISABLE =0x4000 --使效果无效效果
CATEGORY_DISABLE_SUMMON =0x8000 --无效召唤效果
CATEGORY_DRAW =0x10000 --抽卡效果
CATEGORY_SEARCH =0x20000 --检索卡组效果
CATEGORY_EQUIP =0x40000 --装备效果
CATEGORY_DAMAGE =0x80000 --伤害效果
CATEGORY_RECOVER =0x100000 --回复效果
CATEGORY_ATKCHANGE =0x200000 --改变攻击效果
CATEGORY_DEFCHANGE =0x400000 --改变防御效果
CATEGORY_COUNTER =0x800000 --指示物效果
CATEGORY_COIN =0x1000000 --硬币效果
CATEGORY_DICE =0x2000000 --骰子效果
CATEGORY_LEAVE_GRAVE =0x4000000 --离开墓地效果
CATEGORY_LVCHANGE =0x8000000 --改变等级效果
CATEGORY_NEGATE =0x10000000 --使发动无效效果
--Hint
HINT_EVENT =1
HINT_MESSAGE =2
HINT_SELECTMSG =3
HINT_OPSELECTED =4
HINT_EFFECT =5
HINT_RACE =6
HINT_ATTRIB =7
HINT_CODE =8
HINT_NUMBER =9
HINT_CARD =10
--Card Hint
CHINT_TURN =1
CHINT_CARD =2
CHINT_RACE =3
CHINT_ATTRIBUTE =4
CHINT_NUMBER =5
CHINT_DESC =6
--Hint Message --提示消息,显示在窗口的上面
HINTMSG_RELEASE =500 --请选择要解放的卡
HINTMSG_DISCARD =501 --请选择要丢弃的手牌
HINTMSG_DESTROY =502 --请选择要破坏的卡
HINTMSG_REMOVE =503 --请选择要除外的卡
HINTMSG_TOGRAVE =504 --请选择要送去墓地的卡
HINTMSG_RTOHAND =505 --请选择要返回手牌的卡
HINTMSG_ATOHAND =506 --请选择要加入手牌的卡
HINTMSG_TODECK =507 --请选择要返回卡组的卡
HINTMSG_SUMMON =508 --请选择要召唤的卡
HINTMSG_SPSUMMON =509 --请选择要特殊召唤的卡
HINTMSG_SET =510 --请选择要盖放的卡
HINTMSG_FMATERIAL =511 --请选择融合召唤的素材
HINTMSG_SMATERIAL =512 --请选择同调召唤的素材
HINTMSG_XMATERIAL =513 --请选择超量召唤的素材
HINTMSG_FACEUP =514 --请选择表侧表示的卡
HINTMSG_FACEDOWN =515 --请选择里侧表示的卡
HINTMSG_ATTACK =516 --请选择攻击表示的怪兽
HINTMSG_DEFENCE =517 --请选择守备表示的怪兽
HINTMSG_EQUIP =518 --请选择要装备的卡
HINTMSG_REMOVEXYZ =519 --请选择要取除的超量素材
HINTMSG_CONTROL =520 --请选择要改变控制权的怪兽
HINTMSG_DESREPLACE =521 --请选择要代替破坏的卡
HINTMSG_FACEUPATTACK =522 --请选择表侧攻击表示的怪兽
HINTMSG_FACEUPDEFENCE =523 --请选择表侧守备表示的怪兽
HINTMSG_FACEDOWNATTACK =524 --请选择里侧攻击表示的怪兽
HINTMSG_FACEDOWNDEFENCE =525 --请选择里侧守备表示的怪兽
HINTMSG_CONFIRM =526 --请选择给对方确认的卡
HINTMSG_TOFIELD =527 --请选择要放置到场上的卡
HINTMSG_POSCHANGE =528 --请选择要改变表示形式的怪兽
HINTMSG_SELF =529 --请选择自己的卡
HINTMSG_OPPO =530 --请选择对方的卡
HINTMSG_EFFECT =550 --请选择要发动的效果
HINTMSG_TARGET =551 --请选择效果的对象
HINTMSG_COIN =552 --请选择硬币的正反面
HINTMSG_DICE =553 --请选择骰子的结果
HINTMSG_CARDTYPE =554 --请选择一个种类
--Timing --提示时点,可以给freechain卡片增加自动提示时点
TIMING_DRAW_PHASE =0x1 --抽卡阶段时点
TIMING_STANDBY_PHASE =0x2 --准备阶段时点
TIMING_MAIN_END =0x4 --主要阶段结束时点
TIMING_BATTLE_START =0x8 --战斗阶段开始时点
TIMING_BATTLE_END =0x10 --战斗阶段结束时点
TIMING_END_PHASE =0x20 --结束阶段时点
TIMING_SUMMON =0x40 --召唤时点
TIMING_SPSUMMON =0x80 --特殊召唤时点
TIMING_FLIPSUMMON =0x100 --翻转召唤时点
TIMING_MSET =0x200 --放置怪兽时点
TIMING_SSET =0x400 --放置魔陷时点
TIMING_POS_CHANGE =0x800 --表示形式变更时点
TIMING_ATTACK =0x1000 --攻击宣言时点
TIMING_DAMAGE_STEP =0x2000 --伤害步骤时点
TIMING_DAMAGE_CAL =0x4000 --伤害计算时点
TIMING_CHAIN_END =0x8000 --连锁结束时点
TIMING_DRAW =0x10000 --抽卡时点(不是抽卡阶段
TIMING_DAMAGE =0x20000 --造成伤害时点
TIMING_RECOVER =0x40000 --回复时点
TIMING_DESTROY =0x80000 --破坏时点
TIMING_REMOVE =0x100000 --除外时点
TIMING_TOHAND =0x200000 --加入手牌时点(检索、回收等)
TIMING_TODECK =0x400000 --回卡组时点
TIMING_TOGRAVE =0x800000 --进墓地时点
TIMING_BATTLE_PHASE =0x1000000 --战斗阶段时点
TIMING_EQUIP =0x2000000 --装备时点
--Global flag --特殊标记
GLOBALFLAG_DECK_REVERSE_CHECK =0x1 --卡组翻转标记
GLOBALFLAG_BRAINWASHING_CHECK =0x2 --洗脑解除标记
GLOBALFLAG_SCRAP_CHIMERA =0x4 --废铁奇美拉标记
GLOBALFLAG_DELAYED_QUICKEFFECT =0x8 --小丑和锁鸟标记
GLOBALFLAG_DETACH_EVENT =0x10 --超量素材被取除标记
GLOBALFLAG_MUST_BE_SMATERIAL =0x20 --必须作为同调素材(波动龙 声子龙)
GLOBALFLAG_SPSUMMON_COUNT =0x40 --特殊召唤次数标记
GLOBALFLAG_XMAT_COUNT_LIMIT =0x80 --超量素材数量限制标记(光天使 天座)
--
EFFECT_COUNT_CODE_OATH =0x10000000 --誓约使用次数
EFFECT_COUNT_CODE_DUEL =0x20000000 --决斗中使用次数
EFFECT_COUNT_CODE_SINGLE =0x1 --多个效果公共使用次数
--特殊选项
DUEL_TEST_MODE =0x01 --测试模式?坑了?
DUEL_ATTACK_FIRST_TURN =0x02 --第一回合可以攻击(用于残局
DUEL_NO_CHAIN_HINT =0x04 --不提示连锁
DUEL_ENABLE_PRIORITY =0x08 --启动优先权
DUEL_PSEUDO_SHUFFLE =0x10 --不洗牌
DUEL_TAG_MODE =0x20 --双打
DUEL_SIMPLE_AI =0x40 --AI
CodeEditForm->CodeEditForm 脚本编辑器
CodeEditForm->menuitem_file 文件(&F)
CodeEditForm->menuitem_open 打开
CodeEditForm->menuitem_save 保存
CodeEditForm->menuitem_saveas 另存为
CodeEditForm->menuitem_quit 退出
CodeEditForm->menuitem_setting 设置(&S)
CodeEditForm->menuitem_showmap 显示缩略图
CodeEditForm->menuitem_showinput 显示输入框
CodeEditForm->menuitem_help 帮助(&H)
CodeEditForm->menuitem_about 关于
\ No newline at end of file
...@@ -10,6 +10,7 @@ MainForm->menuitem_history History(&H) ...@@ -10,6 +10,7 @@ MainForm->menuitem_history History(&H)
MainForm->menuitem_quit Quit(&Q) MainForm->menuitem_quit Quit(&Q)
MainForm->menuitem_windows Windwos(&W) MainForm->menuitem_windows Windwos(&W)
MainForm->menuitem_dataeditor New DataEditor MainForm->menuitem_dataeditor New DataEditor
MainForm->menuitem_codeeditor New CodeEditor
MainForm->menuitem_closeall Close All MainForm->menuitem_closeall Close All
MainForm->menuitem_closeother Close Other MainForm->menuitem_closeother Close Other
MainForm->menuitem_close Close MainForm->menuitem_close Close
\ No newline at end of file
[DataEditorX]2.1.4.0[DataEditorX] [DataEditorX]2.2.0.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++,等。
...@@ -66,6 +66,12 @@ DataEditorX.exe.config ...@@ -66,6 +66,12 @@ DataEditorX.exe.config
描述不详细的bug,我修复不了。(都不知道是bug是什么) 描述不详细的bug,我修复不了。(都不知道是bug是什么)
★更新历史 ★更新历史
2.2.0.0
增加lua编辑器,支持关联lua文件
等待:
lua编辑器的文件菜单整合
常用函数模板
根据函数提示搜索
2.1.4.0 2.1.4.0
改善: 改善:
浏览和导入MSE图片库的图片 浏览和导入MSE图片库的图片
......
No preview for this file type
脚本中用到的数据类型为以下几类:
integer: 整数类型
boolean: 布尔类型(true 或者 false)
string: 字符串
function: 函数
Card: 卡片类
Effect: 效果类
Group: 卡片组类
any: 任意类型
为方便说明,采用类似c的函数表示方法说明
[]表示有默认值可省略的参数
注:关于过滤条件函数
过滤条件函数是指第一个参数是Card类型,并且返回值是boolean的函数。此函数用于在一些获取满足条件的卡片组的过滤函数中重复调用。过滤条件函数可以有不定的参数,第二个开始的参数从过滤函数的额外参数获得。举例:
function sample_filter(c, atk, def)
return c:GetAttack()>=atk and c:GetDefence()>=def
end
此函数对于一张卡c,如果攻击力>=atk并且守备力>=def则返回true,否则返回false
g=Duel.GetFieldGroup(0,LOCATION_HAND,0) --获取玩家1的手卡
fg=g:Filter(sample_filter, nil, 1000,500) --从g中筛选攻击力>=1000并且守备>=500的卡
Group.Filter只需要3个参数,第4个参数开始为额外参数,额外的参数会传给sample_filter
●void initial_effect(Card c)
注册卡片效果
========== bit ==========
●integer bit.band(integer a, integer b)
a与b的位与
●integer bit.bor(integer a, integer b)
a与b的位或
●integer bit.bxor(integer a, integer b)
a与b的位异或
●integer bit.bls(integer a, integer b)
a左移b
●integer bit.brs(integer a, integer b)
a右移b
========== Card ==========
●integer Card.GetCode(Card c)
返回c的当前代号(可能因为效果改变)
●integer Card.GetOriginalCode(Card c)
返回c的卡片记载的代号
●boolean Card.IsSetCard(Card c, integer setname)
检查c是否是名字含有setname的卡
●integer Card.GetType(Card c)
返回c的当前类型。
●integer Card.GetOriginalType(Card c)
返回c的卡片记载的类型。
●integer Card.GetLevel(Card c)
返回c的当前等级
●integer Card.GetSynchroLevel(Card c)
返回c的同调用等级。此函数除了某些特定卡如调节支援士,
返回值与Card.GetLevel(c)相同
●integer Card.GetRitualLevel(Card c)
返回c的仪式解放等级。此函数除了某些特定卡如仪式供物,
返回值与Card.GetLevel(c)相同
●integer Card.GetOriginalLevel(Card c)
返回c的卡片记载的等级
●integer Card.GetAttribute(Card c)
返回c的当前属性。注:对某些多属性怪物如光与暗之龙,
此函数的返回值可能是几个属性的组合值。
●integer Card.GetOriginalAttribute(Card c)
返回c的卡片记载的属性
●integer Card.GetRace(Card c)
返回c的当前种族。注:对某些多种族怪物如动画效果的魔术猿,
此函数的返回值可能是几个种族的组合值。
●integer Card.GetOriginalRace(Card c)
返回c的卡片记载的种族
●integer Card.GetAttack(Card c)
返回c的当前攻击力,返回值是负数表示是"?"
●integer Card.GetBaseAttack(Card c)
返回c的原本攻击力
●integer Card.GetTextAttack(Card c)
返回c的卡片记载的攻击力
●integer Card.GetDefence(Card c)
返回c的当前守备力,返回值是负数表示是"?"
●integer Card.GetBaseDefence(Card c)
返回c的原本守备力
●integer Card.GetTextDefence(Card c)
返回c的卡片记载的守备力
●integer Card.GetOwner(Card c)
返回c的持有者
●integer Card.GetControler(Card c)
返回c的当前控制者
●integer Card.GetPreviousControler(Card c)
返回c的位置变化之前的控制者
●integer Card.GetReason(Card c)
返回c的位置变化原因
●Card Card.GetReasonCard(Card c)
返回导致c的位置变化的卡。此函数仅在某卡被战斗破坏时,
因为上级召唤被解放,或者成为特殊召唤使用的素材时有效。
●Effect Card.GetReasonEffect(Card c)
返回导致c的位置变化的效果。
●integer Card.GetPosition(Card c)
返回c当前的表示形式
●integer Card.GetPreviousPosition(Card c)
返回c位置变化前的表示形式
●integer Card.GetBattlePosition(Card c)
返回c在本次战斗发生之前的表示形式
●integer Card.GetLocation(Card c)
返回c当前的所在位置
●integer Card.GetPreviousLocation(Card c)
返回c位置变化前的所在的位置
●integer Card.GetSequence(Card c)
返回c在当前位置的序号
在场上时,序号代表所在的格子,从左往右分别是0-4,场地魔法格的序号为5
在其它地方时,序号表示的是第几张卡。最底下的卡的序号为0
●integer Card.GetPreviousSequence(Card c)
返回c位置变化前的序号
●integer Card.GetSummonType(Card c)
返回c上场的方式。
●integer Card.GetSummonPlayer(Card c)
返回召唤,特殊召唤c上场的玩家
●integer Card.GetDestination(Card c)
返回c位置变化的目的地。此函数仅在处理位置转移代替效果时有效。
●integer Card.GetTurnID(Card c)
返回c转移到当前位置的回合
●integer Card.GetFieldID(Card c)
返回c转移到当前位置的时间标识。此数值唯一,越小表示c是越早出现在那个位置。
●boolean Card.IsCode(Card c, integer code)
检查c的代号是否是code。
●boolean Card.IsType(Card c, integer type)
检查c是否属于类型type。
●boolean Card.IsRace(Card c, integer race)
检查c是否属于种族race。
●boolean Card.IsAttribute(Card c, integer attribute)
检查c是否属于属性attribute。
●boolean Card.IsReason(Card c, integer reason)
检查c是否包含原因reason。
●boolean Card.IsStatus(Card c, integer status)
检查c是否包含某个状态码。
●boolean Card.IsNotTuner(Card c)
检查c是否可以当成非调整来使用。
●void Card.SetStatus(Card c, integer state, boolean enable)
给c设置或者取消状态码。除非妳清楚的了解每个状态码的含意,否则不要轻易使用此函数。
●boolean Card.IsDualState(Card c)
检查c属否处于再召唤状态。
●void Card.EnableDualState(Card c)
把c设置成再召唤状态。
●void Card.SetTurnCounter(Card c, integer counter)
设置c的回合计数器(光之护封剑等)
●integer Card.GetTurnCounter(Card c)
返回c的回合计数器
●void Card.SetCustomValue(Card c, string tag, any object)
以tag作为标签为c设置一个自定义值object
●any Card.GetCustomValue(Card c, string tag)
返回c的以tag作为标签的自定义值
●void Card.SetMaterial(Card c, Group g)
把g中的所有卡作为c的素材(上级召唤,特殊召唤)
●Group Card.GetMaterial(Card c)
返回c出场使用的素材
●integer Card.GetMaterialCount(Card c)
返回c出场使用的素材数量
●Group Card.GetEquipGroup(Card c)
返回c当前装备着的卡片组
●integer Card.GetEquipCount(Card c)
返回c当前装备着的卡片数量
●Card Card.GetEquipTarget(Card c)
返回c当前的装备对象
●boolean Card.CheckEquipTarget(Card c1, Card c2)
检查c2是否是c1的正确的装备对象
●integer Card.GetUnionCount(Card c)
返回c当前装备的同盟卡数量
●Group Card.GetOverlayGroup(Card c)
返回c当前叠放着的卡片组
●integer Card.GetOverlayCount(Card c)
返回c当前叠放着的卡片数量
●integer Card.RemoveOverlayCard
(Card c,integer player, integer min, integer max, integer reason)
以reason为原因,让玩家player移除c叠放的min-max张卡
●Group Card.GetAttackGroup(Card c)
返回c本回合攻击过的卡片组
●integer Card.GetAttackedGroupCount(Card c)
返回c本回合攻击过的卡片数量
●integer Card.GetAttackedCount(Card c)
返回c本回合攻击过的次数
注:如果此值与上一个函数的返回值不同,那么说明此卡本回合进行过直接攻击
●Group Card.GetBattledGroup(Card c)
返回与c本回合进行过战斗的卡片组
进行过战斗指发生过伤害的计算。用于剑斗兽等卡的判定。
●integer Card.GetBattledGroupCount(Card c)
返回与c本回合进行过战斗的的卡片数量
●integer Card.GetAttackAnnouncedCount(Card c)
返回c本回合攻击宣言的次数
注:攻击被无效不会被计入攻击过的次数,但是会计入攻击宣言的次数。
●void Card.SetCardTarget(Card c1, Card c2)
把c2作为c1的永续对象。
c1和c2的联系会在c1活c2任意一卡离场或变成里侧表示时reset。
●Group Card.GetCardTarget(Card c)
返回c当前所有的永续对象
●integer Card.GetCardTargetCount(Card c)
返回c当前的永续对象的数量
●boolean Card.IsHasCardTarget(Card c1, Card c2)
检查c1是否取c2为永续对象
●Group Card.GetOwnerTarget(Card c)
返回取c作为永续对象的所有卡
●integer Card.GetOwnerTargetCount(Card c)
返回取c作为永续对象的卡的数量
●Effect Card.GetActivateEffect(Card c)
返回c的“卡片发动”的效果。仅对魔法和陷阱有效。
●integer Card.RegisterEffect(Card c, Effect e, [boolean forced=false])
把效果e注册给c,返回效果的全局id。
默认情况下注册时如果c带有免疫e的效果那么注册会失败。
如果forced为true则不会检查c对e的免疫效果。
●boolean Card.IsHasEffect(Card c, integer code)
检查c是否受到效果种类是code的效果的影响
●integer Card.GetEffectCount(Card c, integer code)
返回c受到影响的种类是code的效果的数量
●Effect Card.RegisterFlagEffect(Card c, integer code, integer reset_flag, integer property, integer reset_count)
为c注册一个标识用效果。
注:注册给卡的标识用效果不会用于系统,
即使code与内置效果code重合也不会影响,
并且类型总是EFFECT_TYPE_SINGLE。reset方法,property和一般的效果相同,
并且不会无效化,不受卡的免疫效果影响。
●integer Card.GetFlagEffect(Card c, integer code)
返回c的种类是code的标识效果的数量。
●void Card.ResetFlagEffect(Card c, integer code)
手动清除c的种类是code的标识效果。
●void Card.CreateRelation(Card c1, Card c2, integer reset_flag)
为c1建立于c2的联系。此联系仅会由于RESET_EVENT的事件reset。
●void Card.ReleaseRelation(Card c1, Card c2)
手动释放c1对于c2的联系
●boolean Card.IsRelateToEffect(Card c, Effect e)
检查c是否和效果e有联系。
注:每次发动进入连锁的效果时,发动效果的卡,以及发动效果时指定的对象
(用Duel.SetTargetCard或者Duel.SelectTarget指定的,包括取对象和不取对象)
会自动与那个效果建立联系。一旦离场,联系会重置。
●boolean Card.IsRelateToCard(Card c1, Card c2)
检查c1是否和c2有联系。
●boolean Card.IsRelateToBattle(Card c)
检查c是否和本次战斗关联。
注:此效果通常用于伤害计算后伤害阶段结束前,用于检查战斗的卡是否离场过。
●integer Card.CopyEffect
(Card c, integer code, integer reset_flag,integer reset_count)
为c添加代号是code的卡的可复制的效果,并且添加额外的reset条件。
返回值是表示复制效果的代号id。
●void Card.EnableReviveLimit(Card c)
为c添加苏生限制。此函数也可通过Card.SetStatus实现。
●void Card.CompleteProcedure(Card c)
使c完成正规的召唤手续。此函数也可通过Card.SetStatus实现。
●boolean Card.IsDisabled(Card c)
检查c是否处于无效状态
●boolean Card.IsDestructable(Card c)
检查c是否是可破坏的。
注:不可破坏指的是类似场地护罩,宫廷的规矩等“破壊できない”的效果
●boolean Card.IsSummonableCard(Card c)
检查c是否是可通常召唤的卡。
●boolean Card.IsSpecialSummonable(Card c)
检查是否可以对c进行特殊召唤手续。
●boolean Card.IsSynchroSummonable(Card c, [Card tuner=nil])
检查是否可以以tuner作为调整对c进行同调召唤手续。
如果tuner是nil,此函数与上一个函数作用相同。
●boolean Card.IsSummonable(Card c)
检查c是否可进行通常召唤(不包含通常召唤的set)
●boolean Card.IsMSetable(Card c)
检查c是否可进行通常召唤的set
●boolean Card.IsSSetable(Card c)
检查c是否可以set到魔法陷阱区
●boolean Card.IsCanBeSpecialSummoned
(Card c, Effect e, integer sumtype, integer sumplayer,
boolean nocheck, boolean nolimit, [integer sumpos=POS_FACEUP,
integer target_player=sumplayer])
检查c是否可以被玩家sumplayer
用效果e以sumtype方式和sumpos表示形式特殊召唤到target_player场上。
如果nocheck是true则不检查c的召唤条件,如果nolimit是true则不检查c的苏生限制。
●boolean Card.IsAbleToHand(Card c)
检查c是否可以送去手牌。
注:仅当卡片或者玩家受到“不能加入手牌”的效果的影响时(如雷王)此函数才返回false。
以下几个函数类似。
●boolean Card.IsAbleToDeck(Card c)
检查c是否可以送去卡组。
●boolean Card.IsAbleToExtra(Card c)
检查c是否可以送去额外卡组。
对于非融合,同调,超量卡此函数均返回false。
●boolean Card.IsAbleToGrave(Card c)
检查c是否可以送去墓地。
●boolean Card.IsAbleToRemove(Card c)
检查c是否可以除外。
●boolean Card.IsAbleToHandAsCost(Card c)
检查c是否可以作为cost送去手牌。
注:此函数会在Card.IsAbleToHand的基础上追加检测c的实际目的地。
当c送往手牌会被送去其它地方时(如缩退回路适用中,或者c是融合,同调和超量怪的一种),
此函数返回false。以下几个函数类似。
●boolean Card.IsAbleToDeckAsCost(Card c)
检查c是否可以作为cost送去卡组。
●boolean Card.IsAbleToExtraAsCost(Card c)
检查c是否可以作为cost送去额外卡组。
●boolean Card.IsAbleToGraveAsCost(Card c)
检查c是否可以作为cost送去墓地。
●boolean Card.IsAbleToRemoveAsCost(Card c)
检查c是否可以作为cost除外。
●boolean Card.IsReleaseable(Card c)
检查c是否可以解放(非上级召唤用)
●boolean Card.IsDiscardable(Card c)
检查c是否可以丢弃
注:此函数仅用于检测,
以REASON_DISCARD作为原因把一张手卡送墓并不会导致那张卡不能丢弃。
●boolean Card.IsAttackable(Card c)
检查c是否可以攻击
●boolean Card.IsChainAttackable(Card c)
检查c是否可以连续攻击
注:当c因为闪光之双剑等效果进行过多次攻击之后此函数返回false。
●boolean Card.IsFaceup(Card c)
检查c是否是表侧表示
●boolean Card.IsFacedown(Card c)
检查c是否是里侧测表示
●boolean Card.IsAttack(Card c)
检查c是否是攻击表示
●boolean Card.IsDefence(Card c)
检查c是否是守备表示
●boolean Card.IsControler(Card c, integer con)
检查c的当前控制着是否是con
●boolean Card.IsOnField(Card c)
检查c是否在场。
注:当怪物召唤,反转召唤,特殊召唤时召唤成功之前,此函数返回false
●boolean Card.IsLocation(Card c, integer loc)
检查c当前位置是否是loc。
注:当怪物召唤,反转召唤,特殊召唤时召唤成功之前,
并且loc=LOCATION_MZONE时,此函数返回false
●boolean Card.IsPublic(Card c)
检查c是否处于公开状态
●boolean Card.IsForbidden(Card c)
检查c是否处于被宣言禁止状态
●boolean Card.IsAbleToChangeControler(Card c)
检查c是否可以改变控制权
注:仅当卡收到了“不能改变控制权”的效果的影响时,此函数返回false
●boolean Card.IsControlerCanBeChanged(Card c)
检查c的控制权是否可以改变
注:此函数会在上一个函数的基础上追加检测场上的空格位
●void Card.AddCounter(Card c, integer countertype, integer count)
为c放置count个countertype类型的指示物
●void Card.RemoveCounter
(Card c, integer player, integer countertype, integer count, integer reason)
让玩家player以原因reason移除c上的count个countertype类型的指示物
●integer Card.GetCounter(Card c, integer countertype)
返回c上的countertype类型的指示物的数量
●void Card.EnableCounterPermit(Card c, integer countertype)
允许c放置那个需要“可以放置”才能放置的指示物countertype
●void Card.SetCounterLimit(Card c, integer countertype, integer count)
设定c放置countertype类型指示物的上限
●boolean Card.IsCanTurnSet(Card c)
检查c是否可以转成里侧表示。
●boolean Card.IsCanAddCounter(Card c, integer countertype, integer count)
检查c是否可以放置count个countertype类型的指示物
●boolean Card.IsCanRemoveCounter
(Card c, integer player, integer countertype, integer count, integer reason)
检查玩家player是否可以以原因reason移除c上的count个countertype类型的指示物
●boolean Card.IsCanBeFusionMaterial(Card c)
检查c是否可以成为融合素材
●boolean Card.IsCanBeSynchroMaterial(Card c)
检查c是否可以成为同调素材
●boolean Card.IsCanBeExceedMaterial(Card c)
检查c是否可以成为超量素材
●boolean Card.CheckFusionMaterial(Card c, Group g)
检查g是否包含了c需要的一组融合素材
●boolean Card.IsImmuneToEffect(Card c, Effect e)
检查c是否免疫效果e(即不受效果e的影响)
●boolean Card.IsCanBeEffectTarget(Card c, Effect e)
检查c是否可以成为效果e的对象
●boolean Card.IsCanBeBattleTarget(Card c1, Card c2)
检查c1是否可以成为c2的攻击目标
●void Card.AddTrapMonsterAttribute(Card c, boolean is_effect)
为c添加陷阱怪物属性。is_effect=true表示视作效果怪物,否则视为通常怪物
注:陷阱怪物属性指的是同时作为怪物和陷阱,
并且额外使一个魔法陷阱的格子不能使用。
●void Card.CancelToGrave(Card c)
取消送墓确定状态。
注:送墓确定状态指的是在场上发动的不留场的魔法和陷阱后,这些卡片的状态。
送墓确定状态中的卡无法返回手牌和卡组,并且连锁结束时送去墓地。
此函数的作用是取消此状态使其留场。用于光之护封剑和废铁稻草人等卡。
●integer,integer Card.GetTributeRequirement(Card c)
返回通常召唤c所需要的祭品的最小和最大数量
========== Effect ==========
●Effect Effect.CreateEffect(Card c)
新建一个空效果,并且效果的拥有者为c
●Effect Effect.Clone(Effect e)
新建一个效果e的副本
●void Effect.Reset(Effect e)
把效果e重置。重置之后不可以再使用此效果
●void Effect.SetType(Effect e, integer type)
为效果e设置效果类型
●void Effect.SetDescription(Effect e, integer desc)
为效果e设置效果描述
●void Effect.SetCode(Effect e, integer code)
为效果e设置Code属性
●void Effect.SetRange(Effect e, integer range)
为效果e设置Range属性
●void Effect.SetTargetRange(Effect e, integer s_range, integer o_range)
为效果e设置Target Range属性
s_range指影响的我方区域。o_range值影响的对方区域。
如果property属性中指定了EFFECT_FLAG_ABSOLUTE_RANGE标志,
那么s_range指玩家1收到影响的区域,o_range指玩家2受到影响的区域。
如果这是一个特殊召唤手续(EFFECT_SPSUMMON_PROC)的效果,
并且property指定了EFFECT_FLAG_SPSUM_PARAM标志,
那么s_range表示特殊召唤到的哪个玩家的场地,
o_range表示可选择的表示形式。
●void Effect.SetAbsoluteRange(Effect e, integer s_range, integer o_range)
设置target range属性并设置EFFECT_FLAG_ABSOLUTE_RANGE标志
●void Effect.SetCountLimit(Effect e, integer count)
设置一回合可以发动的次数(仅触发型效果有效)
●void Effect.SetReset(Effect e, integer reset_flag, [integer reset_count=1])
设置reset参数
●void Effect.SetReset(Effect e, integer type)
设置Type属性
●void Effect.SetProperty(Effect e, integer prop)
设置Property属性
●void Effect.SetLabel(Effect e, integer label)
设置Label属性
●void Effect.SetCategory(Effect e, integer cate)
设置Category属性
●void Effect.SetCategory(Effect e, integer cate)
设置Category属性
●void Effect.SetCondition(Effect e, function con_func)
设置Condition属性
●void Effect.SetCost(Effect e, function cost_func)
设置Cost属性
●void Effect.SetTarget(Effect e, function targ_func)
设置Target属性
●void Effect.SetOperation(Effect e, function op_func)
设置Operation属性
●void Effect.SetValue(Effect e, integer|function val)
设置Value属性
●void Effect.SetOwnerPlayer(Effect e, integer player)
设置Owner player属性
●integer Effect.GetDescription(Effect e)
返回效果描述
●integer Effect.GetCode(Effect e)
返回code属性
●integer Effect.GetType(Effect e)
返回Type属性
●integer Effect.GetProperty(Effect e)
返回Property属性
●integer Effect.GetLabel(Effect e)
返回Label属性
●integer Effect.GetCategory(Effect e)
返回Category属性
●Card Effect.GetOwner(Effect e)
返回效果拥有者
●Card Effect.GetHandler(Effect e)
返回效果在哪一张卡上生效(通常是注册该效果的卡)
●function Effect.GetCondition(Effect e)
返回condition属性
●function Effect.GetCost(Effect e)
返回cost属性
●function Effect.GetTarget(Effect e)
返回target属性
●function Effect.GetOperation(Effect e)
返回operation属性
●function|integer Effect.GetValue(Effect e)
返回value属性
●boolean Effect.IsHasProperty(Effect e, integer prop)
检查效果是否含有标志prop
●boolean Effect.IsHasCategory(Effect e, integer cate)
检查效果是否含有效果分类cate
●boolean Effect.IsHasType(Effect e, integer type)
检查效果是否属于类型type
========== group ==========
●Group Group.CreateGroup()
新建一个空的卡片组
●void Group.CreateGroup(Group g)
删除卡片组g
●Group Group.Clone(Group g)
新建卡片组g的副本
●Group Group.FromCards(Card c, ...)
不定参数,把传入的所有卡组合成一个卡片组并返回
●void Group.Clear(Group g)
清空卡片组
●void Group.AddCard(Group g, Card c)
往g中增加c
●void Group.RemoveCard(Group g, Card c)
把c从g中移除
●Card Group.GetFirst(Group g)
返回g中第一张卡,并重置当前指针到g中第一张卡。
如果g中不存在卡则返回nil
●Card Group.GetNext(Group g)
返回并使指针指向下一张卡。如果g中不存在卡则返回nil
●integer Group.GetCount(Group g)
返回g中卡的数量
●void Group.ForEach(Group g, function f)
以g中的每一张卡作为参数调用一次f
●Group Group.Filter(Group g, function f, Card ex, ...)
过滤函数。从g中筛选满足筛选条件f并且不等于ex的卡。
从第4个参数开始为额外参数。
●integer Group.FilterCount(Group g, function f, Card ex, ...)
过滤函数。和上一个函数基本相同。不同指出在于此函数只返回满足条件的卡的数量。
●Group Group.FilterSelect
(Group g, integer player, function f,integer min, integer max, Card ex, ...)
过滤函数。让玩家player从g中选择min-max张满足筛选条件f并且不等于ex的卡。
从第7个参数开始为额外参数。
●Group Group.Select
(Group g, integer player, integer min, integer max, Card ex)
让玩家player从g中选择min-max张不等于ex的卡。
●Group Group.RandomSelect(Group g, integer player, integer count)
让玩家player从g中随机选择count张卡。
因为是随机算则,所以参数player基本无用,由系统随机选取。
●boolean Group.IsExists(Group g, function f, integer count, Card ex, ...)
过滤函数。检查g中是否存在至少count张满足筛选条件f并且不等于ex的卡。
从第5个参数开始为额外参数。
●boolean Group.CheckWithSumEqual
(Group g, function f, integer sum, integer min)
子集求和判定函数。f为返回一个interger值的函数(通常用于同调判定)。
检查g中是否存在一个数量至少为min的子集满足以f对子集的每一个元素求值的和等于sum。
比如:g:CheckWithSumEqual(Card.GetSynchroLevel,7,2)
检查g中是否存在一个子集满足子集的同调用等级之和等于7
●Group Group.SelectWithSumEqual
(Group g, integer player, function f, integer sum, integer min)
让玩家player从g中选取一个数量至少是min的子集使子集的特定函数的和等于sum
●boolean Group.CheckWithSumGreater(Group g, function f, integer sum)
子集求和判定函数之二。f为返回一个interger值的函数(通常用于仪式判定)。
检查g中是否存在一个子集满足以f对子集的每一个元素求值的和刚好大于或者等于sum。
比如:g:CheckWithSumGreater(Card.GetRitualLevel,8)
检查g中是否存在一个子集满足子集的仪式用等级之和大于等于8
注:判定必须是“刚好”大于或者等于。
以等级为例,要使等级合计大于等于8,可以选择LV1+LV7而不可以选择LV1+LV4+LV4
●Group Group.SelectWithSumGreater
(Group g, integer player, function f, integer sum)
让玩家player从g中选取一个子集使子集的特定函数的和大于等于sum
●Group Group.GetMinGroup(Group g, function f)
f为返回一个interger值的函数。从g中筛选出具有最小的f的值的卡。用于地裂等卡。
●Group Group.GetMaxGroup(Group g, function f)
f为返回一个interger值的函数。从g中筛选出具有最大的f的值的卡。用于地碎等卡。
●integer Group.GetSum(Group g, function f)
计算g中所有卡的取值的总和。f为为每张卡的取值函数。
●integer Group.GetSortCount(Group g, function f)
计算g中所有卡的种类数量。f为分类的依据,返回相同的值视为同一种类。
●Group Group.Remove(Group g, function f, ...)
过滤函数。从g中移除满足筛选条件f的所有卡。第三个参数开始是额外参数。
●Group Group.Merge(Group g1, Group g2)
把g2中的所有卡合并到g1。
注:g2本身不会发生变化。
●boolean Group.IsContains(Group g, Card c)
检查g中是否存在卡片c
●Card Group.SearchCard(Group g, function f, ...)
过滤函数。返回g中满足筛选条件f的第一张卡。第三个参数为额外参数。
========== Duel ==========
●integer Duel.GetLP(integer player)
返回玩家player的当前LP
●void Duel.SetLP(integer player, integer lp)
设置玩家player的当前LP为lp
●integer Duel.GetTurnPlayer()
返回当前的回合玩家
●integer Duel.GetTurnCount()
返回当前的回合数
●integer Duel.GetDrawCount(integer player)
返回玩家player每回合的规则抽卡数量
●void Duel.DebugMessage(any msg)
Debug用函数,用于显示信息
●void Duel.RegisterEffect(Effect e, integer player)
把效果作为玩家player的效果注册给全局环境。
●Effect Duel.RegisterFlagEffect(integer player, integer code,
integer reset_flag, integer property, integer reset_count)
此函数为玩家player注册全局环境下的标识效果。
此效果总是影响玩家的(EFFECT_FLAG_PLAYER_TARGET)并且不会被无效化。
其余部分与Card.RegisterFlagEffect相同
●integer Duel.GetFlagEffect(integer player, integer code)
返回玩家player的特定的标识效果的数量
●void Duel.ResetFlagEffect(integer player, integer code)
手动reset玩家player的特定的标识效果
●integer Duel.Destroy(Card|Group targets, integer reason)
以reason原因破坏targets。返回值是实际被破坏的数量。
如果reason包含REASON_RULE,则破坏事件将不会检查卡片是否免疫效果,
不会触发代破效果并且无视“不能破坏”。
●integer Duel.Remove(Card|Group targets, integer pos, integer reason)
以reason原因,pos表示形式除外targets。
返回值是实际被操作的数量。
如果reason包含REASON_TEMPORARY,
那么视为是暂时除外,可以通过Duel.ReturnToField返回到场上
●integer Duel.SendtoGrave(Card|Group targets, integer reason)
以reason原因把targets送去墓地。返回值是实际被操作的数量。
●integer Duel.SendtoHand(Card|Group targets,
integer player | nil, integer reason)
以reason原因把targets送去玩家player的手牌。
返回值是实际被操作的数量。
如果player是nil则返回卡的持有者的手牌。
●integer Duel.SendtoDeck(Card|Group targets,
integer player | nil, integer seq, integer reason)
以reason原因把targets送去玩家player的卡组。
返回值是实际被操作的数量。
如果player是nil则返回卡的持有者的卡组。
如果seq=0,则是返回卡组最顶端;seq=1则是返回卡组最低端;
其余情况则是返回最顶端并且标记需要洗卡组。
●Group Duel.GetOperatedGroup()
此函数返回之前一次卡片操作实际操作的卡片组。包括
Duel.Destroy, Duel.Remove, Duel.SendtoGrave,
Duel.SendtoHand, Duel.SendtoDeck, Duel.Release,
Duel.ChangePosition, Duel.SpecialSummon
●void Duel.Summon(integer player, Card c, boolean ignore_count, Effect e)
让玩家以效果e对c进行通常召唤(非set)。
如果e=nil,那么就按照一般的通常召唤规则进行通常召唤。
如果ignore_count=true,则忽略每回合的通常召唤次数限制。
●void Duel.SpecialSummonRule(integer player, Card c)
让玩家player对c进行特殊召唤手续。
●void Duel.SynchroSummon(integer player, Card c, Card tuner)
让玩家player以tuner作为调整对c进行特殊召唤手续。
●void Duel.MSet(integer player, Card c, boolean ignore_count, Effect e)
让玩家以效果e对c进行通常召唤的Set。
如果e=nil,那么就按照一般的通常召唤规则进行通常召唤。
如果ignore_count=true,则忽略每回合的通常召唤次数限制。
●void Duel.SSet(integer player, Card c)
让玩家player把c放置到魔法陷阱区
●Card Duel.CreateToken(integer player, integer code, integer setcode,
integer attack, integer defence, integer level, integer race,
integer attribute)
以传入的参数数值新建一个Token
●integer Duel.SpecialSummon(Card|Group targets, integer sumtype,
integer sumplayer, integer target_player, boolean nocheck, boolean nolimit,
integer pos)
让玩家player以sumtype方式,pos表示形式把targets特殊召唤到target_player场上。
如果nocheck为true则无视卡的召唤条件。如果nolimit为true则无视卡的苏生限制。
返回值是特殊召唤成功的卡的数量。
●boolean Duel.SpecialSummonStep(Card c, integer sumtype, integer sumplayer,
integer target_player, boolean nocheck, boolean nolimit, integer pos)
此函数是上一个函数的分解过程,只特殊召唤一张卡c。
此函数用于一个效果需要双方同时特殊召唤时。此函数必须和下面的函数一起使用。
返回值表示是否特殊召唤成功。
●integer Duel.SpecialSummonComplete()
此函数在确定复数个上一个函数调用完毕之后调用。用于触发事件。
●void Duel.RemoveCounter(integer player, integer s, integer o,
integer countertype, integer count, integer reason)
让玩家player移除场上存在的countertype类型的count个指示物。
s表示对player来说的己方的可移除指示物的位置,
o表示对player来说的对方的可移除指示物的位置
●boolean Duel.IsCanRemoveCounter(integer player, integer s,
integer o, integer countertype, integer count, integer reason)
检查玩家player是否能移除场上的countertype类型的count个指示物。
s和o参数作用同上。
●integer Duel.GetCounter(integer player, integer s, integer o,
integer countertype)
返回场上存在的countertype类型的指示物的数量。s和o参数作用同上。
●integer Duel.ChangePosition(Card|Group targets,integer au,
[integer ad=au, integer du=au, integer dd=au, boolean noflip=false])
改变targets的表示形式。表侧攻击表示的变成au,里侧攻击表示的变成ad,
表侧守备表示变成du,里侧守备表示变成dd
如果noflip=true则不触发翻转效果(但会触发翻转时的诱发效果)
●integer Duel.Release(Card|Group targets, integer reason)
以reason原因解放targets。返回值是实际解放的数量。
如果reason含有REASON_COST,则不会检查卡片是否不受效果影响
●void Duel.MoveToField(Card c, integer move_player,
integer target_player,integer dest, integer pos, boolean enabled)
让玩家move_player把c移动的target_player的场上。
dest只能是LOCATION_MZONE或者LOCATION_SZONE。pos表示可选表示形式。
enable表示是否立刻适用c的效果。
●void Duel.ReturnToField(Card c)
把c返回到场上。c必须是以REASON_TEMPORARY原因离场,并且离场后没有离开过那个位置。
●void Duel.MoveSequence(Card c, integer seq)
移动c的序号。通常用于在场上换格子或者在卡组中移动到最上方或者最下方。
●void Duel.SetChainLimit(function f)
设定连锁条件。f是接受一个Effect类型作为参数并且返回boolean值的函数。
在cost或者target处理中调用此函数可以限制可以连锁的效果的种类(如超融合)
。如果f返回false表示不能连锁。一旦设置连锁条件后发生了新的连锁那么连锁条件将会解除。
●void Duel.SetChainLimitTillChainEnd(function f)
功能同上,但是此函数设定的连锁条件直到连锁结束才会解除。
●Effect Duel.GetChainMaterial(integer player)
返回玩家player受到的连锁素材的效果。此函数仅用于融合类卡的效果。
●void Duel.ConfirmDeckTop(integer player, integer count)
确认玩家player卡组最上方的count张卡。双方均可确认。
●void Duel.ConfirmCards(integer player, Card|Group targets)
给玩家player确认targets
●void Duel.SortDecktop
(integer sort_player, integer target_player, integer count)
让玩家sort_player对玩家target_player的卡组最上方count张卡进行排序
●boolean Duel.CheckEvent(integer event)
检查当前是否是event时点
●void Duel.RaiseEvent
(Group eg,integer code, Effect reason_effect,integer reason,
integer reason_player,integer event_player,integer event param)
触发一个事件。
●void Duel.RaiseSingleEvent
(Card ec,integer code, Effect reason_effect,integer reason,
integer reason_player,integer event_player, integer event param)
触发一个单体事件。
●integer, integer Duel.GetEnvironment()
返回两个值,表示当前场地代号,以及当前场地效果的来源玩家。
场地代号指当前生效的场地卡的代号,或者海神的巫女把场地变化效果的值。
来源玩家指当前生效的场地卡的控制者,或者海神的巫女等卡的控制者。
●void Duel.Win(function f, Effect e, integer player)
在当前效果处理完之后调用f进行胜负检测。e和player作为f的两个参数传递给f。
f返回值的低16位表示胜负判定玩家,
0表示玩家1胜利,1表示玩家2胜利,2表示平局,
此外是无胜负兵继续进行。高16位表示胜负的原因。
●integer Duel.Draw(integer player, integer count, integer reason)
让玩家player以原因reason抽count张卡。返回实际抽的卡的数量。
如果reason含有REASON_RULE则此次抽卡不受“不能抽卡”的效果的影响。
●integer Duel.Damage(integer player, integer value, integer reason)
以reason原因给与玩家player造成value的伤害。返回实际收到的伤害值。
如果受到伤害变成回复等效果的影响时,返回值为0.
●integer Duel.Recover(integer player, integer value, integer reason)
以reason原因使玩家player回复value的LP。返回实际的回复值。
如果受到回复变成伤害等效果的影响时,返回值为0.
●boolean Duel.Equip(integer player, Card c1, Card c2)
把c1作为玩家player的装备卡装备给c2。返回值表示是否成功。
●boolean Duel.GetControler(integer player, Card c)
让玩家player得到c的控制权。返回值表示是否成功。
●boolean Duel.SwapControler(Card c1, Card c2)
交换c1和c2的控制权。返回值表示是否成功。
●boolean Duel.CheckLPCost(integer player, integer cost)
检查玩家player是否能支付cost点lp
●void Duel.PayLPCost(integer player, integer cost)
让玩家player支付cost点lp
●integer Duel.DiscardDeck(integer player, integer count, integer reason)
以原因reason把玩家player的卡组最上端count张卡送去墓地.返回实际转移的数量。
●integer Duel.DiscardHand(integer player, function f,
integer min, integer max, integer reason, Card ex, ...)
过滤函数。让玩家player选择并丢弃满足筛选条件f兵不等于ex的min-max张手卡。
第7个参数开始为额外参数。
●void Duel.DisableShuffleCheck()
使下一个操作不检查是否需要洗卡组或者洗手卡。
注:如果不调用此函数,
除了调用Duel.DiscardDeck和Duel.Draw之外从卡组中取出卡或者把卡加入手卡
或者把卡加入卡组(非最上端或最底端)时,系统会自动在效果处理结束时洗卡组或手卡。
如果不希望如此,比如从卡组顶端除外一张卡等操作,那么需要调用此函数。
此函数仅保证紧接着的一次操作不会进行洗卡检测。
●void Duel.ShuffleDeck(integer player)
手动洗玩家player的卡组
●void Duel.ShuffleHand(integer player)
手动洗玩家player的手卡
注:以上两个操作会重置洗卡检测的状态。
●void Duel.ChaingeAttacker(Card c)
把当前的攻击卡替换成c进行攻击
●void Duel.ReplaceAttacker(Card c)
用c代替当前攻击的卡进行伤害阶段
●void Duel.ChaingeAttackTarget(Card c)
把当前的攻击目标替换成c。如果c=nil则变成直接攻击。
●void Duel.ReplaceAttackTarget(Card c)
(预留)
●integer Duel.GetBattleDamage(integer player)
返回玩家player在本次战斗中收到的伤害
●void Duel.ChangeBattleDamage(integer player, integer value)
把玩家player在本次战斗中收到的伤害变成value
●void Duel.ChangeTarget(integer chainc, Group g)
把连锁chainc的对象换成g
●void Duel.ChangeTargetPlayer(integer chainc, integer player)
把连锁chainc的对象玩家换成player
●void Duel.ChangeTargetParam(integer chainc, integer param)
把连锁chainc的对象参数换成param
●void Duel.BreakEffect()
中断当前效果,使之后的效果处理视为不同时处理。此函数会造成错时点。
●void Duel.ChangeChainOperation(integer chainc, function f)
把连锁chainc的效果的处理函数换成f。用于实现“把效果变成”等的效果
●void Duel.NegateActivation(integer chainc)
使连锁chainc的发动无效
●void Duel.NegateEffect(integer chainc)
使连锁chainc的效果无效
●void Duel.NegateSummon(Card c)
使正在召唤,反转召唤,特殊召唤的c的召唤无效
●void Duel.IncreaseSummonCount()
本回合的通常召唤限制计数+1
●boolean Duel.CheckSummonCount()
检查回合玩家本回合的通常召唤限制计数。
●integer Duel.GetLocationCount(integer player, integer location)
返回玩家player的指定场地location剩余的空格数。
location只能是LOCATION_MZONE或者LOCATION_SZONE。
●Card Duel.GetFieldCard
(integer controler, integer location, integer sequence)
返回指定玩家指定地点指定序号的卡
●integer Duel.GetCurrentChain()
返回当前正在处理的连锁序号
●... Duel.GetChainInfo(integer chainc, ...)
返回连锁chainc的信息。如果chainc=0,则返回当前正在处理的连锁的信息。
此函数根据传入的参数个数按顺序返回相应数量的返回值。参数可以是:
CHAININFO_CHAIN_COUNT 连锁序号
CHAININFO_TRIGGERING_EFFECT 连锁的效果
CHAININFO_TRIGGERING_PLAYER 连锁的玩家
CHAININFO_TRIGGERING_CONTROLER 连锁发生位置所属玩家
CHAININFO_TRIGGERING_LOCATION 连锁发生位置
CHAININFO_TRIGGERING_SEQUENCE 连锁发生的位置的序号
CHAININFO_TARGET_CARDS 连锁的对象卡片组
CHAININFO_TARGET_PLAYER 连锁的对象玩家
CHAININFO_TARGET_PARAM 连锁的对象参数
CHAININFO_DISABLE_REASON 连锁被无效的原因效果
CHAININFO_DISABLE_PLAYER 连锁被无效的原因玩家
CHAININFO_CHAIN_ID 连锁的唯一标识
举例:
Duel.GetChainInfo(0,CHAININFO_TRIGGERING_LOCATION,CHAININFO_TARGET_CARDS)
将会返回当前连锁发生的位置和对象卡。
●integer Duel.GetCurrentPhase()
返回当前的阶段
●void Duel.SkipPhase
(integer player, integer phase, integer reset_flag, integer reset_count)
跳过玩家player的phase阶段,并在特定的阶段后reset。reset参数和效果相同。
●boolean Duel.IsDamageCalculated()
用于在伤害阶段检查是否已经计算了战斗伤害。
●Card Duel.GetAttacker()
返回此次战斗攻击的卡
●Card Duel.GetAttackTarget()
返回此次战斗被攻击的卡。如果返回nil表示是直接攻击。
●void Duel.DisableAttack()
使本次攻击无效
●void Duel.ChainAttack()
使攻击卡再进行一次连续攻击(开辟,破灭的女王)
●void Duel.Readjust()
刷新场上的卡的信息。非特定情况或者不清楚原理请勿使用此函数以免形成死循环。
●Group Duel.GetFieldGroup(integer player, integer s, integer o)
返回指定位置的卡。s指对玩家player来说的己方的位置,
o指对玩家player来说的对方的位置。下面提到的指定位置均为此意。
比如Duel.GetFieldGroup(0,LOCATION_GRAVE,LOCATION_MZONE)
返回玩家1墓地和玩家2的怪兽区的所有卡
●integer Duel.GetFieldGroupCount(integer player, integer s, integer o)
同上,返回值变成卡的数量
●Group Duel.GetDecktopGroup(integer player, integer count)
返回玩家player的卡组最上方的count张卡
●Group Duel.GetMatchingGroup
(function f, integer player, integer s, integer o, Card ex, ...)
过滤函数,返回指定位置满足过滤条件f并且不等于ex的卡。
第6个参数开始为额外参数。
●integer Duel.GetMatchingGroupCount
(function f, integer player, integer s, integer o, Card ex, ...)
同上,返回值变成符合的卡的数量。
●Card Duel.GetFirstMatchingCard
(function f, integer player, integer s, integer o, Card ex, ...)
过滤函数,返回指定位置满足过滤条件f并且不等于ex的第一张卡。
第6个参数开始为额外参数。
●boolean Duel.IsExistingMatchingCard
(function f, integer player, integer s, integer o, integer count, Card ex, ...)
过滤函数,检查指定位置是否存在至少count张满足过滤条件f并且不等于ex的卡。
第7个参数开始为额外参数。
●Group Duel.SelectMatchingCard
(integer sel_player, function f, integer player,
integer s, integer o, integer min, integer max, Card ex, ...)
过滤函数,让玩家sel_player选择指定位置满足过滤条件f并且不等于ex的min-max张卡。
第9个参数开始为额外参数。
●Group Duel.GetReleaseGroup(integer player)
返回玩家player可解放(非上级召唤用)的卡片组
●integer Duel.GetReleaseGroupCount(integer player)
返回玩家player可解放(非上级召唤用)的卡片数量
●boolean Duel.ChecktReleaseGroup
(integer player, function f, integer count, Card ex, ...)
过滤函数,检查玩家player是否存在至少count张不等于ex的满足条件f的可解放的卡
●Group Duel.SelectReleaseGroup
(integer player, function f, integer min, integer max, Card ex, ...)
过滤函数,让玩家player选择min-max张不等于ex的满足条件f的可解放的卡并返回
●Group Duel.GetTributeGroup(Card c)
返回用于通常召唤c可解放(上级召唤用)的卡片组
●integer Duel.GetTributeCount(Card c)
返回用于通常召唤c的祭品数量。
此数量不一定等于上一个函数的返回值中的卡片数量。
因为某些卡可以作为两个祭品来使用。
●Group Duel.SelectTribute(integer player, Card c, integer min, integer max)
让玩家player选择用于通常召唤c的min-max个祭品。
●integer Duel.GetTargetCount
(function f, integer player, integer s, integer o, Card ex, ...)
基本同Duel.GetMatchingGroupCount,
不同之处在于需要追加判定卡片是否能成为当前正在处理的效果的对象。
●boolean Duel.IsExistingTarget
(function f, integer player, integer s, integer o, integer count, Card ex, ...)
过滤函数,检查指定
位置是否存在至少count张满足过滤条件f并且不等于ex
并且可以成为当前正在处理的效果的对象的卡。
第7个参数开始为额外参数。
●Group Duel.SelectTarget(
integer sel_player, function f, integer player,
integer s, integer o, integer min, integer max,Card ex, ...)
过滤函数,让玩家sel_player选择指定
位置满足过滤条件f并且不等于ex
并且可以成为当前正在处理的效果的对象的min-max张卡。
第9个参数开始为额外参数。
此函数会同时酱当前正在处理的连锁的对象设置成选择的卡
●Group Duel.SelectFusionMaterial(integer player, Card c, Group g)
让玩家player从g中选择一组满足c的融合素材的卡
●void Duel.SetFusionMaterial(Group g)
设置g为需要使用的融合素材
●void Duel.SetSynchroMaterial(Group g)
设置g为需要使用的同调素材
●Group Duel.SelectSynchroMaterial
(integer player, Card c, function f1, function f2, integer min)
让玩家选择用于同调c需要的满足条件的数量至少是min的一组素材。
f1是调整需要满足的过滤条件。f2是调整以外的部分需要满足的过滤条件。
●boolean Duel.CheckSynchroMaterial
(Card c, function f1, function f2, integer min)
检查是否存在一组满足条件的卡作为同调召唤c的素材。f1,f2,min同上。
●Group Duel.SelectTunerMaterial
(integer player, Card c, Card tuner, function f1, function f2, integer min)
让玩家选择用于同调c需要的满足条件的以tuner作为调整的数量至少是min的一组素材。
f1是调整需要满足的过滤条件。f2是调整以外的部分需要满足的过滤条件。
●boolean Duel.CheckTunerMaterial
(Card c, Card tuner, function f1, function f2, integer min)
检查以tuner作为调整是否存在一组满足条件的卡作为同调召唤c的素材。f1,f2,min同上。
●Group Duel.GetRitualMaterial(integer player)
返回玩家player可用的用于仪式召唤素材的卡片组。
包含手上,场上可解放的以及墓地的仪式魔人等卡。
●void Duel.ReleaseRitualMaterial(Group g)
解放仪式用的素材g。如果是墓地的仪式魔人等卡则除外。
●void Duel.SetTargetCard(Group g)
把当前正在处理的连锁的对象设置成g。
注,这里的对象指的的广义的对象,包括不取对象的效果可能要处理的对象。
●void Duel.SetTargetPlayer(integer player)
把当前正在处理的连锁的对象玩家设置成player。
●void Duel.SetTargetParam(integer param)
把当前正在处理的连锁的对象参数设置成param。
●void Duel.SetOperationInfo(integer chainc, integer category,
Card|Group targets, integer count, integer target_player, integer target_param)
设置当前处理的连锁的操作信息。此操作信息包含了效果处理中确定要处理的效果分类。
比如潜行狙击手需要设置CATEGORY_DICE,但是不能设置CATEGORY_DESTROY,因为不确定。
对于破坏效果,targets需要设置成发动时可能成为连锁的影响对象的卡,
并设置count为发动时确定的要处理的卡的数量。
比如黑洞发动时,targets需要设定为场上的所有怪物,count设置成场上的怪的数量。
对于CATEGORY_SPECIAL_SUMMON,CATEGORY_TOHAND,CATEGORY_TODECK等分类,
如果取对象则设置targets为对象,count为对象的数量;
如果不取对象则设置targets为nil,count为预计要处理的卡的数量,
并设置target_param为预计要处理的卡的位置。
例如增援:SetOperationInfo(0,CATEGORY_TOHAND,nil,1,0,LOCATION_DECK)。
操作信息用于很多效果的发动的检测,例如星尘龙,王家沉眠之谷等。
●... Duel.GetOperationInfo(integer chainc, integer category)
返回连锁chainc的category分类的操作信息。返回值为5个,
第一个返回值是false的话表示不存在该分类。后4个返回值对应上一个函数的后4个参数。
●integer Duel.GetOperationCount(integer chainc)
返回连锁chainc包含的操作分类的数量
●Group Duel.GetExceedMaterial(Card c)
返回c的超量素材
●void Duel.Overlay(Card c, Card|Group ocard)
把ocard作为c的叠放卡叠放
●Group Duel.GetOverlayGroup(integer player, integer s, integer o)
返回指定位置的所有叠放的卡
●Integer Duel.GetOverlayCount(integer player, integer s, integer o)
返回指定位置的所有叠放的卡的数量
●void Duel.RemoveOverlayCard(integer player, integer s,
integer o, integer min, integer max, integer reason)
以reason原因移除指定位置的min-max张叠放卡
●void Duel.Hint(integer player, integer desc)
给玩家发送内置消息提示
●boolean Duel.SelectEffectYesNo(integer player, integer code)
让玩家选择是否发动卡的效果
●boolean Duel.SelectYesNo(integer player, integer desc)
让玩家选择是或否
●integer Duel.SelectOption(integer player, ...)
让玩家选择选项。从第二个参数开始,每一个参数代表一条选项。
返回选择的选项的序号。
●integer Duel.SelectDisableField
(integer player, integer count, integer s, integer o, integer filter)
让玩家player选择指定位置的count个位置不能使用。
●integer Duel.AnnounceRace(integer player, integer count, integer available)
让玩家player从可选的种族中宣言count个种族。available是所有可选种族的组合值。
●integer Duel.AnnounceAttribute(
integer player, integer count, integer available)
让玩家player从可选的属性中宣言count个属性。available是所有可选属性的组合值。
●integer Duel.AnnounceCard(integer player)
让玩家player宣言一个卡片代号。
●integer Duel.AnnounceType(integer player)
让玩家player宣言一个卡片类型。
●integer Duel.AnnounceNumber(integer player, ...)
让玩家player宣言一个数字。从第二个参数开始,每一个参数代表一个可宣言的数字。
返回选择的选项的序号。
●integer Duel.AnnounceCoin(integer player)
让玩家player宣言硬币的正反面。
●... Duel.TossCoin(integer player, integer count)
让玩家player投count次硬币。返回值为count个结果。结果是0或者1.
●... Duel.TossDice(integer player, integer count)
让玩家player投count次骰子。返回值为count个结果。结果是1-6.
●void Duel.SetCoinResult( ... )
强行修改投硬币的结果。此函数用于永续的EVENT_TOSS_COIN事件中
●void Duel.SetDiceResult( ... )
强行修改投骰子的结果。此函数用于永续的EVENT_TOSS_DICE事件中
●boolean Duel.IsPlayerAffectByEffect(integer player, integer code)
检查玩家player是否受特性效果的影响
●boolean Duel.IsPlayerCanDraw(integer player)
检查玩家player是否可以效果抽卡
●boolean Duel.IsPlayerCanDiscardDeck(integer player)
检查玩家player是否可以把卡组顶端的卡送去墓地
●boolean Duel.IsPlayerCanDiscardDeckAdCost(integer player, int count)
检查玩家player是否可以把卡组顶端的卡送去墓地作为cost。
当卡组没有足够数量的卡,
或者当卡组中的卡受到送墓转移效果的影响时(如大宇宙,次元裂缝,即使不是全部)
此函数会返回false
●boolean Duel.IsPlayerCanSummon(integer player, integer sumtype, Card c)
检查玩家player是否可以以sumtype方式通常召唤c。
仅当玩家收到“不能上级召唤”等效果的影响时返回false。
●boolean Duel.IsPlayerCanFlipSummon(integer player, Card c)
检查玩家player是否可以反转召唤c。
●boolean Duel.IsPlayerCanSpecialSummonMonster(
integer player, integet code, integer setcode,
integer attack, integer defence integer level,
integer race, integer attribute, [integer pos=POS_FACEUP,
integer target_player=player])
检查玩家player是否可以以pos的表示形式特殊召唤特定属性值的怪物到target_player场上。
此函数通常用于判定是否可以特招token和陷阱怪物。
●boolean Duel.IsPlayerCanRelease(integer player, Card c)
检查玩家是否能解放c
●boolean Duel.IsPlayerCanRemove(integer player, Card c)
检查玩家是否能除外c
●boolean Duel.IsPlayerCanSendtoHand(integer player, Card c)
检查玩家是否能把c送去手牌
●boolean Duel.IsPlayerCanSendtoGrave(integer player, Card c)
检查玩家是否能把c送去墓地
●boolean Duel.IsPlayerCanSendtoDeck(integer player, Card c)
检查玩家是否能把c送去卡组
●boolean Duel.IsChainInactivatable(integer chainc)
检查连锁chainc的发动是否可以被无效化
●boolean Duel.IsChainDisablable(integer chainc)
检查连锁chainc的效果是否可以被无效化
●boolean Duel.CheckChainTarget(integer chainc, Card c)
检查c是否是连锁chainc的正确的对象
●boolean Duel.CheckChainUniqueness()
检查当前连锁中是否存在同名卡的发动。true表示无同名卡。
●boolean Duel.SwapDeckAndGrave(integer player)
现世与冥界的逆转专用。把玩家player的卡组和墓地交换
●boolean Duel.CheckSummonActivity(integer player)
检查玩家player本回合有没有进行过召唤的行为。
召唤被无效视作进行过召唤行为。
●boolean Duel.CheckNormalSummonActivity(integer player)
检查玩家player本回合有没有进行过通常召唤的行为。包括召唤和set
●boolean Duel.CheckFlipSummonActivity(integer player)
检查玩家player本回合有没有进行过反转召唤的行为。
●boolean Duel.CheckFlipSummonActivity(integer player)
检查玩家player本回合有没有进行过特殊召唤的行为。
特殊召唤的行为包括:
进行了入连锁和不入连锁的特殊召唤;
发动了确定要特殊召唤的效果但是效果被无效
不包括:发动了确定要特殊召唤的效果但是发动被无效
●boolean Duel.CheckAttackActivity(integer player)
检查玩家player本回合有没有进行过攻击。
\ No newline at end of file
--Locations 区域
LOCATION_DECK =0x01 --卡组
LOCATION_HAND =0x02 --手牌
LOCATION_MZONE =0x04 --怪兽区
LOCATION_SZONE =0x08 --魔陷区
LOCATION_GRAVE =0x10 --墓地
LOCATION_REMOVED =0x20 --除外区
LOCATION_EXTRA =0x40 --额外
LOCATION_OVERLAY =0x80 --超量素材
LOCATION_ONFIELD =0x0c --场上(怪兽+魔陷)
LOCATION_DECKBOT =0x10001 --卡组底部
LOCATION_DECKSHF =0x20001 --卡组顶部
--Locations (for SetRange)
LOCATION_FZONE =0x100 --场地区
LOCATION_PZONE =0x200 --摇摆区
--Positions 表示形式
POS_FACEUP_ATTACK =0x1 --表侧攻击
POS_FACEDOWN_ATTACK =0x2 --里侧攻击
POS_FACEUP_DEFENCE =0x4 --表侧守备
POS_FACEDOWN_DEFENCE =0x8 --里侧守备
POS_FACEUP =0x5 --正面表示
POS_FACEDOWN =0xa --背面表示
POS_ATTACK =0x3 --攻击表示
POS_DEFENCE =0xc --守备表示
NO_FLIP_EFFECT =0x10000--不发动反转效果
--Types 卡片类型
TYPE_MONSTER =0x1 --怪兽卡
TYPE_SPELL =0x2 --魔法卡
TYPE_TRAP =0x4 --陷阱卡
TYPE_NORMAL =0x10 --通常
TYPE_EFFECT =0x20 --效果
TYPE_FUSION =0x40 --融合
TYPE_RITUAL =0x80 --仪式
TYPE_TRAPMONSTER =0x100 --陷阱怪兽
TYPE_SPIRIT =0x200 --灵魂
TYPE_UNION =0x400 --同盟
TYPE_DUAL =0x800 --二重
TYPE_TUNER =0x1000 --调整
TYPE_SYNCHRO =0x2000 --同调
TYPE_TOKEN =0x4000 --衍生物
TYPE_QUICKPLAY =0x10000 --速攻
TYPE_CONTINUOUS =0x20000 --永续
TYPE_EQUIP =0x40000 --装备
TYPE_FIELD =0x80000 --场地
TYPE_COUNTER =0x100000 --反击
TYPE_FLIP =0x200000 --翻转
TYPE_TOON =0x400000 --卡通
TYPE_XYZ =0x800000 --超量
TYPE_PENDULUM =0x1000000 --摇摆
--Attributes 属性
ATTRIBUTE_EARTH =0x01 --地
ATTRIBUTE_WATER =0x02 --水
ATTRIBUTE_FIRE =0x04 --炎
ATTRIBUTE_WIND =0x08 --风
ATTRIBUTE_LIGHT =0x10 --光
ATTRIBUTE_DARK =0x20 --暗
ATTRIBUTE_DEVINE =0x40 --神
--Races 种族
RACE_ALL =0xffffff --全种族
RACE_WARRIOR =0x1 --战士
RACE_SPELLCASTER =0x2 --魔法师
RACE_FAIRY =0x4 --天使
RACE_FIEND =0x8 --恶魔
RACE_ZOMBIE =0x10 --不死
RACE_MACHINE =0x20 --机械
RACE_AQUA =0x40 --水
RACE_PYRO =0x80 --炎
RACE_ROCK =0x100 --岩石
RACE_WINDBEAST =0x200 --鸟兽
RACE_PLANT =0x400 --植物
RACE_INSECT =0x800 --昆虫
RACE_THUNDER =0x1000 --雷
RACE_DRAGON =0x2000 --龙
RACE_BEAST =0x4000 --兽
RACE_BEASTWARRIOR =0x8000 --兽战士
RACE_DINOSAUR =0x10000 --恐龙
RACE_FISH =0x20000 --鱼
RACE_SEASERPENT =0x40000 --海龙
RACE_REPTILE =0x80000 --爬虫
RACE_PSYCHO =0x100000 --念动力
RACE_DEVINE =0x200000 --幻神兽
RACE_CREATORGOD =0x400000 --创造神
RACE_WYRM =0x800000 --幻龙
--Reason 卡片到当前位置的原因
REASON_DESTROY =0x1 --破坏
REASON_RELEASE =0x2 --解放
REASON_TEMPORARY =0x4 --暂时
REASON_MATERIAL =0x8 --作为融合/同调/超量等的素材
REASON_SUMMON =0x10 --召唤
REASON_BATTLE =0x20 --战斗破坏
REASON_EFFECT =0x40 --效果
REASON_COST =0x80 --COST
REASON_ADJUST =0x100 --调整(御前试合)
REASON_LOST_TARGET =0x200 --失去效果对象
REASON_RULE =0x400 --规则
REASON_SPSUMMON =0x800 --特殊召唤
REASON_DISSUMMON =0x1000 --召唤失败
REASON_FLIP =0x2000 --翻转
REASON_DISCARD =0x4000 --丢弃
REASON_RDAMAGE =0x8000 --基本分伤害
REASON_RRECOVER =0x10000 --基本分恢复
REASON_RETURN =0x20000 --回收
REASON_FUSION =0x40000 --融合
REASON_SYNCHRO =0x80000 --同调
REASON_RITUAL =0x100000 --仪式
REASON_XYZ =0x200000 --超量
REASON_REPLACE =0x1000000 --代替
REASON_DRAW =0x2000000 --抽卡
REASON_REDIRECT =0x4000000 --改变去向(大宇宙,带菌等)
REASON_REVEAL =0x8000000 --翻开卡组(森罗)
--Summon Type --召唤类型
SUMMON_TYPE_NORMAL =0x10000000 --通常召唤
SUMMON_TYPE_ADVANCE =0x11000000 --上级(祭品)召唤
SUMMON_TYPE_DUAL =0x12000000 --再度召唤(二重)
SUMMON_TYPE_FLIP =0x20000000 --翻转召唤
SUMMON_TYPE_SPECIAL =0x40000000 --特殊召唤
SUMMON_TYPE_FUSION =0x43000000 --融合召唤
SUMMON_TYPE_RITUAL =0x45000000 --仪式召唤
SUMMON_TYPE_SYNCHRO =0x46000000 --同调召唤
SUMMON_TYPE_XYZ =0x49000000 --超量召唤
SUMMON_TYPE_PENDULUM =0x4a000000 --摇摆召唤
--Status --卡片当前状态
STATUS_DISABLED =0x0001 --效果被无效
STATUS_TO_ENABLE =0x0002 --将变成有效
STATUS_TO_DISABLE =0x0004 --将变成无效
STATUS_PROC_COMPLETE =0x0008 --完成正规召唤(解除苏生限制)
STATUS_SET_TURN =0x0010 --覆盖
STATUS_FLIP_SUMMONED =0x0020 --翻转
STATUS_REVIVE_LIMIT =0x0040 --未解除苏生限制
STATUS_ATTACKED =0x0080 --攻击过
STATUS_FORM_CHANGED =0x0100 --改变过表示形式
STATUS_SUMMONING =0x0200 --召唤中
STATUS_EFFECT_ENABLED =0x0400 --效果有效
STATUS_SUMMON_TURN =0x0800 --在本回合召唤
STATUS_DESTROY_CONFIRMED =0x1000 --破坏确定
STATUS_LEAVE_CONFIRMED =0x2000 --离开确定
STATUS_BATTLE_DESTROYED =0x4000 --战斗破坏确定
STATUS_COPYING_EFFECT =0x8000 --复制效果
STATUS_CHAINING =0x10000 --进入连锁
STATUS_SUMMON_DISABLED =0x20000 --召唤无效
STATUS_ACTIVATE_DISABLED =0x40000 --发动无效
STATUS_UNSUMMONABLE_CARD =0x80000 --不能通常召唤
STATUS_UNION =0x100000 --同盟
STATUS_ATTACK_CANCELED =0x200000 --攻击取消(卷回?)
STATUS_INITIALIZING =0x400000 --初始化..
STATUS_ACTIVATED =0x800000 --效果已发动
STATUS_JUST_POS =0x1000000 --
STATUS_CONTINUOUS_POS =0x2000000 --连续变更表示形式?
STATUS_IS_PUBLIC =0x4000000 --公开展示
STATUS_ACT_FROM_HAND =0x8000000 --在手牌发动
--Assume
ASSUME_CODE =1
ASSUME_TYPE =2
ASSUME_LEVEL =3
ASSUME_RANK =4
ASSUME_ATTRIBUTE =5
ASSUME_RACE =6
ASSUME_ATTACK =7
ASSUME_DEFENCE =8
--Counter --指示物
COUNTER_NEED_PERMIT =0x1000 --某指示物数量上限
COUNTER_NEED_ENABLE =0x2000 --可以放置某指示物
--Phase --阶段
PHASE_DRAW =0x01 --抽卡阶段
PHASE_STANDBY =0x02 --准备阶段
PHASE_MAIN1 =0x04 --主要阶段1
PHASE_BATTLE =0x08 --战斗阶段
PHASE_DAMAGE =0x10 --伤害计算前
PHASE_DAMAGE_CAL =0x20 --伤害计算时
PHASE_MAIN2 =0x40 --主要阶段2
PHASE_END =0x80 --结束阶段
--Player --玩家
PLAYER_NONE =2 --2个玩家都不是
PLAYER_ALL =3 --2个玩家都是
--Chain info --连锁信息
CHAININFO_CHAIN_COUNT =0x01 --连锁数
CHAININFO_TRIGGERING_EFFECT =0x02 --连锁的效果
CHAININFO_TRIGGERING_PLAYER =0x04 --连锁的玩家
CHAININFO_TRIGGERING_CONTROLER =0x08 --连锁的卡的控制者
CHAININFO_TRIGGERING_LOCATION =0x10 --连锁的位置
CHAININFO_TRIGGERING_SEQUENCE =0x20 --连锁的位置的编号(指怪兽和魔陷区的格子)
CHAININFO_TARGET_CARDS =0x40 --连锁的效果的对象(以下3个需要在target函数里设置)
CHAININFO_TARGET_PLAYER =0x80 --连锁的效果的对象(玩家)
CHAININFO_TARGET_PARAM =0x100 --连锁的效果的参数值
CHAININFO_DISABLE_REASON =0x200 --无效的原因
CHAININFO_DISABLE_PLAYER =0x400 --无效的玩家
CHAININFO_CHAIN_ID =0x800 --连锁ID
CHAININFO_TYPE =0x1000 --连锁类型
CHAININFO_EXTTYPE =0x2000 --连锁额外类型
--========== Reset ========== --重置条件(注意:重置条件可以多个相加,例如0x000c0000=0x00040000+0x00080000=RESET_TOGRAVE+RESET_REMOVE)
RESET_DRAW =PHASE_DRAW --抽卡阶段重置
RESET_STANDBY =PHASE_STANDBY --准备阶段重置
RESET_MAIN1 =PHASE_MAIN1 --主要阶段1重置
RESET_BATTLE =PHASE_BATTLE --战斗阶段重置
RESET_DAMAGE =PHASE_DAMAGE --伤害计算前重置
RESET_DAMAGE_CAL =PHASE_DAMAGE_CAL --伤害计算时重置
RESET_MAIN2 =PHASE_MAIN2 --主要阶段2重置
RESET_END =PHASE_END --结束阶段重置
RESET_SELF_TURN =0x0100 --自己回合结束重置
RESET_OPPO_TURN =0x0200 --对方回合结束重置
RESET_PHASE =0x0400 --阶段结束重置(一般和上面那些阶段配合使用
RESET_CHAIN =0x0800 --连锁结束重置
RESET_EVENT =0x1000 --不明(一般和下面这些事件配合使用
RESET_CARD =0x2000
RESET_CODE =0x4000 --卡名改变重置
RESET_COPY =0x8000 --复制效果重置
RESET_DISABLE =0x00010000 --效果无效重置
RESET_TURN_SET =0x00020000 --变里侧重置
RESET_TOGRAVE =0x00040000 --去墓地重置
RESET_REMOVE =0x00080000 --除外重置
RESET_TEMP_REMOVE =0x00100000 --暂时除外重置
RESET_TOHAND =0x00200000 --回手牌或加入手牌重置
RESET_TODECK =0x00400000 --回卡组重置
RESET_LEAVE =0x00800000 --从场上离开重置
RESET_TOFIELD =0x01000000 --到场上重置
RESET_CONTROL =0x02000000 --控制器变更重置
RESET_OVERLAY =0x04000000 --超量叠放重置
--========== Types ========== --效果类型(定义效果触发类型,和codes一起使用)
EFFECT_TYPE_SINGLE =0x0001 --自己状态变化时触发
EFFECT_TYPE_FIELD =0x0002 --场上所有卡状态变化时触发
EFFECT_TYPE_EQUIP =0x0004 --装备效果
EFFECT_TYPE_ACTIONS =0x0008 --怪兽效果发动(对峙的G)
EFFECT_TYPE_ACTIVATE =0x0010 --魔陷发动
EFFECT_TYPE_FLIP =0x0020 --翻转效果
EFFECT_TYPE_IGNITION =0x0040 --起动效果
EFFECT_TYPE_TRIGGER_O =0x0080 --诱发选发效果
EFFECT_TYPE_QUICK_O =0x0100 --诱发即时效果
EFFECT_TYPE_TRIGGER_F =0x0200 --诱发必发效果
EFFECT_TYPE_QUICK_F =0x0400 --诱发即时必发效果(熊猫龙等)
EFFECT_TYPE_CONTINUOUS =0x0800 --不入连锁的诱发效果
--========== Flags ========== --效果的特殊性质
EFFECT_FLAG_INITIAL =0x0001 --可以发动的
EFFECT_FLAG_FUNC_VALUE =0x0002 --
EFFECT_FLAG_COUNT_LIMIT =0x0004 --
EFFECT_FLAG_FIELD_ONLY =0x0008 --场上只有1只
EFFECT_FLAG_CARD_TARGET =0x0010 --取对象效果
EFFECT_FLAG_IGNORE_RANGE =0x0020 --使用限制?(禁止令 大宇宙 王宫的铁壁)
EFFECT_FLAG_ABSOLUTE_TARGET =0x0040 --
EFFECT_FLAG_IGNORE_IMMUNE =0x0080 --无视效果免疫
EFFECT_FLAG_SET_AVAILABLE =0x0100 --不能发动?
EFFECT_FLAG_MULTIACT_HAND =0x0200 --手牌有多张可以同时诱发(蔷薇妖精等)
EFFECT_FLAG_CANNOT_DISABLE =0x0400 --不会被无效
EFFECT_FLAG_PLAYER_TARGET =0x0800 --以玩家为对象
EFFECT_FLAG_BOTH_SIDE =0x1000 --双方都能使用(部分场地,弹压)
EFFECT_FLAG_COPY_INHERIT =0x2000 --残留?持续?效果
EFFECT_FLAG_DAMAGE_STEP =0x4000 --可以在伤害步骤发动
EFFECT_FLAG_DAMAGE_CAL =0x8000 --可以在伤害计算时发动
EFFECT_FLAG_DELAY =0x10000 --场合(不会被卡时点
EFFECT_FLAG_SINGLE_RANGE =0x20000 --只对自己有效
EFFECT_FLAG_UNCOPYABLE =0x40000 --不能复制(规则效果
EFFECT_FLAG_OATH =0x80000 --誓约效果
EFFECT_FLAG_SPSUM_PARAM =0x100000 --规则特殊召唤(熔岩魔神 光子杀戮者)
EFFECT_FLAG_REPEAT =0x200000 --发动被无效后可以再次发动
EFFECT_FLAG_NO_TURN_RESET =0x400000 --发条等“这张卡在场上只能发动一次”的效果
EFFECT_FLAG_EVENT_PLAYER =0x800000 --视为对方玩家的效果(动作?)
EFFECT_FLAG_OWNER_RELATE =0x1000000 --和效果持有者相关
EFFECT_FLAG_AVAILABLE_BD =0x2000000 --战斗伤害操作(纳祭之魔 地狱战士)
EFFECT_FLAG_CLIENT_HINT =0x4000000 --获得效果?
EFFECT_FLAG_CHAIN_UNIQUE =0x8000000 --同一组连锁只能发动一次
EFFECT_FLAG_NAGA =0x10000000 --神卡纳迦!
EFFECT_FLAG_COF =0x20000000 --邪恶的仪式
EFFECT_FLAG_CVAL_CHECK =0x40000000 --以卡为COST的诱发效果需要使用
--========== Codes ========== --对永续性效果表示效果类型 EFFECT开头,对诱发型效果表示触发效果的事件/时点 EVENT开头
EFFECT_IMMUNE_EFFECT =1 --效果免疫
EFFECT_DISABLE =2 --效果无效(一时无效?)
EFFECT_CANNOT_DISABLE =3 --效果不能无效
EFFECT_SET_CONTROL =4 --改变控制器
EFFECT_CANNOT_CHANGE_CONTROL =5 --不能改变控制权
EFFECT_CANNOT_ACTIVATE =6 --不能发动(魔法·陷阱)卡
EFFECT_CANNOT_TRIGGER =7 --不能发动效果
EFFECT_DISABLE_EFFECT =8 --效果无效
EFFECT_DISABLE_CHAIN =9 --不能连锁
EFFECT_DISABLE_TRAPMONSTER =10 --陷阱怪兽无效
EFFECT_CANNOT_INACTIVATE =12 --不能发动
EFFECT_CANNOT_DISEFFECT =13 --效果不能被无效(魔法·陷阱)
EFFECT_CANNOT_CHANGE_POSITION =14 --不能改变表示形式
EFFECT_TRAP_ACT_IN_HAND =15 --陷阱可以从手牌发动
EFFECT_TRAP_ACT_IN_SET_TURN =16 --陷阱可以在盖放的回合发动
EFFECT_REMAIN_FIELD =17 --X回合内留在场上(光之护封剑等)
EFFECT_MONSTER_SSET =18 --怪兽可以在魔陷区放置
EFFECT_CANNOT_SUMMON =20 --不能召唤怪兽
EFFECT_CANNOT_FLIP_SUMMON =21 --不能翻转召唤怪兽
EFFECT_CANNOT_SPECIAL_SUMMON =22 --不能特殊召唤怪兽
EFFECT_CANNOT_MSET =23 --不能覆盖怪兽
EFFECT_CANNOT_SSET =24 --不能覆盖魔陷
EFFECT_CANNOT_DRAW =25 --不能抽卡
EFFECT_CANNOT_DISABLE_SUMMON =26 --召唤不会无效
EFFECT_CANNOT_DISABLE_SPSUMMON =27 --特殊召唤不会无效
EFFECT_SET_SUMMON_COUNT_LIMIT =28 --限制每回合放置怪兽次数
EFFECT_EXTRA_SUMMON_COUNT =29 --增加召唤(通常召唤)次数
EFFECT_SPSUMMON_CONDITION =30 --特殊召唤条件
EFFECT_REVIVE_LIMIT =31 --苏生限制
EFFECT_SUMMON_PROC =32 --召唤规则
EFFECT_LIMIT_SUMMON_PROC =33 --召唤规则限制
EFFECT_SPSUMMON_PROC =34 --特殊召唤规则
EFFECT_EXTRA_SET_COUNT =35 --增加盖放(通常召唤)次数
EFFECT_SET_PROC =36 --放置(通常召唤)规则
EFFECT_LIMIT_SET_PROC =37 --放置(通常召唤)规则限制
EFFECT_DEVINE_LIGHT =38 --???(神圣光辉 魔术礼帽)
EFFECT_CANNOT_DISABLE_FLIP_SUMMON =39 --翻转召唤不会无效
EFFECT_INDESTRUCTABLE =40 --不会被破坏
EFFECT_INDESTRUCTABLE_EFFECT =41 --不会被效果破坏
EFFECT_INDESTRUCTABLE_BATTLE =42 --不会被战斗破坏
EFFECT_UNRELEASABLE_SUM =43 --不能做上级召唤的祭品
EFFECT_UNRELEASABLE_NONSUM =44 --不能做上级召唤以外的祭品
EFFECT_DESTROY_SUBSTITUTE =45 --代替破坏(别人破坏时牺牲自己
EFFECT_CANNOT_RELEASE =46 --不能进行解放行为
EFFECT_INDESTRUCTABLE_COUNT =47 --一回合几次不会被破坏
EFFECT_UNRELEASABLE_EFFECT =48 --不能被解放
EFFECT_DESTROY_REPLACE =50 --代替破坏(自己破坏时牺牲别人
EFFECT_RELEASE_REPLACE =51 --代替解放
EFFECT_SEND_REPLACE =52 --可以不送去XX而送去OO(宝玉 甜点城堡等)
EFFECT_CANNOT_DISCARD_HAND =55 --不能丢弃手牌
EFFECT_CANNOT_DISCARD_DECK =56 --不能把卡组上方的卡送去墓地
EFFECT_CANNOT_USE_AS_COST =57 --不能作为COST使用
EFFECT_CANNOT_PLACE_COUNTER =58 --不能使用的位置
EFFECT_LEAVE_FIELD_REDIRECT =60 --离场时重新指定去向
EFFECT_TO_HAND_REDIRECT =61 --回手牌时重新指定去向
EFFECT_TO_DECK_REDIRECT =62 --回卡组时重新指定去向
EFFECT_TO_GRAVE_REDIRECT =63 --去墓地时重新指定去向
EFFECT_REMOVE_REDIRECT =64 --除外时重新指定去向
EFFECT_CANNOT_TO_HAND =65 --不能加入手牌
EFFECT_CANNOT_TO_DECK =66 --不能回卡组
EFFECT_CANNOT_REMOVE =67 --不能除外
EFFECT_CANNOT_TO_GRAVE =68 --不能去墓地
EFFECT_CANNOT_TURN_SET =69 --不能变里侧
EFFECT_CANNOT_BE_BATTLE_TARGET =70 --不能成为攻击对象
EFFECT_CANNOT_BE_EFFECT_TARGET =71 --不能成为效果对象
EFFECT_IGNORE_BATTLE_TARGET =72 --不能成为攻击对象-鶸型(传说的渔人)
EFFECT_CANNOT_DIRECT_ATTACK =73 --不能直接攻击
EFFECT_DIRECT_ATTACK =74 --可以直接攻击
EFFECT_DUAL_STATUS =75 --二重状态
EFFECT_EQUIP_LIMIT =76 --装备对象限制
EFFECT_DUAL_SUMMONABLE =77 --可以再度召唤
EFFECT_REVERSE_DAMAGE =80 --伤害变回复
EFFECT_REVERSE_RECOVER =81 --回复变伤害
EFFECT_CHANGE_DAMAGE =82 --改变伤害数值
EFFECT_REFLECT_DAMAGE =83 --反射伤害
EFFECT_CANNOT_ATTACK =85 --不能攻击
EFFECT_CANNOT_ATTACK_ANNOUNCE =86 --不能攻击宣言
EFFECT_CANNOT_CHANGE_POS_E =87 --不会被卡的效果变成守备表示(攻击性云魔物)
EFFECT_ACTIVATE_COST =90 --发动代价(魔力之枷)
EFFECT_SUMMON_COST =91 --召唤代价
EFFECT_SPSUMMON_COST =92 --特殊召唤代价(暴君龙)
EFFECT_FLIPSUMMON_COST =93 --翻转召唤代价
EFFECT_MSET_COST =94 --怪兽放置代价
EFFECT_SSET_COST =95 --魔陷放置代价
EFFECT_ATTACK_COST =96 --攻击代价(霞之谷猎鹰)
EFFECT_UPDATE_ATTACK =100 --改变攻击力(攻击力增加/减少)
EFFECT_SET_ATTACK =101 --设置攻击力(攻击变成)
EFFECT_SET_ATTACK_FINAL =102 --设置最终攻击力(神之化身)
EFFECT_SET_BASE_ATTACK =103 --设置原本攻击力
EFFECT_UPDATE_DEFENCE =104 --改变防御力(参考攻击力,下同)
EFFECT_SET_DEFENCE =105 --设置防御力
EFFECT_SET_DEFENCE_FINAL =106 --设置最终攻击力
EFFECT_SET_BASE_DEFENCE =107 --设置原本攻击力
EFFECT_REVERSE_UPDATE =108 --倒置改变攻击力、防御力(天邪鬼)
EFFECT_SWAP_AD =109 --交换攻防
EFFECT_SWAP_BASE_AD =110 --交换原本攻防
EFFECT_ADD_CODE =113 --增加卡名
EFFECT_CHANGE_CODE =114 --改名卡名
EFFECT_ADD_TYPE =115 --增加卡片种类(types)
EFFECT_REMOVE_TYPE =116 --删除卡片种类
EFFECT_CHANGE_TYPE =117 --改变卡片种类
EFFECT_ADD_RACE =120 --增加种族
EFFECT_REMOVE_RACE =121 --删除种族
EFFECT_CHANGE_RACE =122 --改变种族
EFFECT_ADD_ATTRIBUTE =125 --增加属性
EFFECT_REMOVE_ATTRIBUTE =126 --删除属性
EFFECT_CHANGE_ATTRIBUTE =127 --改变属性
EFFECT_UPDATE_LEVEL =130 --改变等级
EFFECT_CHANGE_LEVEL =131 --设置等级
EFFECT_UPDATE_RANK =132 --改变阶级
EFFECT_CHANGE_RANK =133 --设置阶级
EFFECT_UPDATE_LSCALE =134 --改变左刻度
EFFECT_CHANGE_LSCALE =135 --设置左刻度
EFFECT_UPDATE_RSCALE =136 --改变右刻度
EFFECT_CHANGE_RSCALE =137 --设置右刻度
EFFECT_SET_POSITION =140 --改变表示形式
EFFECT_SELF_DESTROY =141 --自灭(罪系列等)
EFFECT_DOUBLE_TRIBUTE =150 --可以作为2个祭品
EFFECT_DECREASE_TRIBUTE =151 --减少祭品
EFFECT_DECREASE_TRIBUTE_SET =152 --减少放置怪兽的祭品
EFFECT_EXTRA_RELEASE =153 --代替解放(灵魂交错)
EFFECT_TRIBUTE_LIMIT =154 --祭品限制
EFFECT_EXTRA_RELEASE_SUM =155 --代替召唤解放(帝王的烈旋)
EFFECT_PUBLIC =160 --公开手牌
EFFECT_COUNTER_PERMIT =0x10000--允许放置指示物类型
EFFECT_COUNTER_LIMIT =0x20000--允许放置指示物数量
EFFECT_RCOUNTER_REPLACE =0x30000--代替取除(指示物?)
EFFECT_LPCOST_CHANGE =170 --改变生命值代价
EFFECT_LPCOST_REPLACE =171 --代替生命值代价
EFFECT_SKIP_DP =180 --跳过抽卡阶段
EFFECT_SKIP_SP =181 --跳过准备阶段
EFFECT_SKIP_M1 =182 --跳过主要阶段1
EFFECT_SKIP_BP =183 --跳过战斗阶段
EFFECT_SKIP_M2 =184 --跳过主要阶段2
EFFECT_CANNOT_BP =185 --不能进入战斗阶段
EFFECT_CANNOT_M2 =186 --不能进入主要阶段2
EFFECT_CANNOT_EP =187 --不能进入结束阶段
EFFECT_SKIP_TURN =188 --跳过整个回合
EFFECT_DEFENCE_ATTACK =190 --可以守备表示攻击
EFFECT_MUST_ATTACK =191 --必须攻击
EFFECT_FIRST_ATTACK =192 --必须第一个攻击
EFFECT_ATTACK_ALL =193 --可以攻击所有怪兽
EFFECT_EXTRA_ATTACK =194 --增加攻击次数
EFFECT_MUST_BE_ATTACKED =195 --必须攻击(那只怪兽)
EFFECT_AUTO_BE_ATTACKED =196 --只能攻击(那只怪兽)
EFFECT_ATTACK_DISABLED =197 --不能攻击
EFFECT_NO_BATTLE_DAMAGE =200 --不会给对方造成战斗伤害
EFFECT_AVOID_BATTLE_DAMAGE =201 --不会对自己造成战斗伤害
EFFECT_REFLECT_BATTLE_DAMAGE =202 --反弹战斗伤害
EFFECT_PIERCE =203 --贯穿伤害
EFFECT_BATTLE_DESTROY_REDIRECT =204 --战斗破坏时重新指定去向
EFFECT_BATTLE_DAMAGE_TO_EFFECT =205 --战斗伤害视为效果伤害
EFFECT_TOSS_COIN_REPLACE =220 --重新抛硬币
EFFECT_TOSS_DICE_REPLACE =221 --重新掷骰子
EFFECT_FUSION_MATERIAL =230 --可以当作仪式素材
EFFECT_CHAIN_MATERIAL =231 --可以当作融合素材
EFFECT_SYNCHRO_MATERIAL =232 --可以当作同调素材
EFFECT_XYZ_MATERIAL =233 --可以当作超量素材
EFFECT_FUSION_SUBSTITUTE =234 --代替融合素材
EFFECT_CANNOT_BE_FUSION_MATERIAL =235--不能做融合素材
EFFECT_CANNOT_BE_SYNCHRO_MATERIAL =236--不能做同调素材
EFFECT_SYNCHRO_MATERIAL_CUSTOM =237--同调素材限制
EFFECT_CANNOT_BE_XYZ_MATERIAL =238--不能做超量素材
EFFECT_SYNCHRO_LEVEL =240--做同调素材时的等级
EFFECT_RITUAL_LEVEL =241--做仪式祭品时的等级
EFFECT_XYZ_LEVEL =242--做超量素材时的等级
EFFECT_EXTRA_RITUAL_MATERIAL =243--在墓地当做仪式祭品
EFFECT_NONTUNER =244--同时当作调整以外的怪兽(幻影王 幽骑)
EFFECT_OVERLAY_REMOVE_REPLACE =245--代替去除超量素材
EFFECT_SCRAP_CHIMERA =246--废铁奇美拉
EFFECT_XMAT_COUNT_LIMIT =247--超量素材限制(光天使 天座)
EFFECT_SPSUM_EFFECT_ACTIVATED =250 --发动特殊召唤的效果(冥府的使者 格斯)
EFFECT_MATERIAL_CHECK =251 --检查素材
EFFECT_DISABLE_FIELD =260 --无效区域(扰乱王等)
EFFECT_USE_EXTRA_MZONE =261 --怪兽区域封锁
EFFECT_USE_EXTRA_SZONE =262 --魔法区域封锁
EFFECT_MAX_MZONE =263 --宇宙收缩
EFFECT_MAX_SZONE =264 --宇宙收缩
EFFECT_HAND_LIMIT =270 --手牌数量限制
EFFECT_DRAW_COUNT =271 --抽卡阶段的抽卡数
EFFECT_SPIRIT_DONOT_RETURN =280 --灵魂怪兽不返会手牌
EFFECT_SPIRIT_MAYNOT_RETURN =281 --灵魂怪兽可以不返回手牌
EFFECT_CHANGE_ENVIRONMENT =290 --改变场地
EFFECT_NECRO_VALLEY =291 --王家长眠之谷
EFFECT_FORBIDDEN =292 --禁止令
EFFECT_NECRO_VALLEY_IM =293 --不受「王家长眠之谷」的影响
EFFECT_REVERSE_DECK =294 --翻转卡组
EFFECT_REMOVE_BRAINWASHING =295 --洗脑解除
EFFECT_BP_TWICE =296 --2次战斗阶段
EFFECT_UNIQUE_CHECK =297 --
EFFECT_MATCH_KILL =300 --胜利龙
EFFECT_SYNCHRO_CHECK =310 --基因组斗士
EFFECT_QP_ACT_IN_NTPHAND =311 --对方回合从自己手卡发动(失乐的圣女)
EFFECT_MUST_BE_SMATERIAL =312 --同调素材必须
EFFECT_SPSUMMON_PROC_G =320 --P召唤规则
EFFECT_SUMMON_COUNT_LIMIT =330 --召唤次数限制
EFFECT_SPSUMMON_COUNT_LIMIT =331 --特殊召唤次数限制
EFFECT_FLIP_SUMMON_COUNT_LIMIT =332 --反转召唤次数限制
--下面是诱发效果的诱发事件、时点 (如果是TYPE_SINGLE则自己发生以下事件后触发,如果TYPE_FIELD则场上任何卡发生以下事件都触发)
EVENT_STARTUP =1000 --游戏开始时
EVENT_FLIP =1001 --翻转时
EVENT_FREE_CHAIN =1002 --自由时点(强脱等,还有昴星团等诱发即时效果)
EVENT_DESTROY =1010 --破坏时
EVENT_REMOVE =1011 --除外时
EVENT_TO_HAND =1012 --加入手牌时
EVENT_TO_DECK =1013 --回卡组时
EVENT_TO_GRAVE =1014 --进墓地时
EVENT_LEAVE_FIELD =1015 --离场时
EVENT_CHANGE_POS =1016 --表示形式变更时
EVENT_RELEASE =1017 --解放时
EVENT_DISCARD =1018 --丢弃手牌时
EVENT_LEAVE_FIELD_P =1019 --永久离场时
EVENT_CHAIN_SOLVING =1020 --连锁处理时
EVENT_CHAIN_ACTIVATING =1021 --连锁发动时
EVENT_CHAIN_SOLVED =1022 --连锁处理结束时
EVENT_CHAIN_ACTIVATED =1023 --连锁发动完时
EVENT_CHAIN_NEGATED =1024 --连锁被无效时(发动无效)
EVENT_CHAIN_DISABLED =1025 --连锁被无效时(效果无效)
EVENT_CHAIN_END =1026 --连锁结束时
EVENT_CHAINING =1027 --正在连锁
EVENT_BECOME_TARGET =1028 --成为效果对象时
EVENT_DESTROYED =1029 --破坏确定时
EVENT_ADJUST =1040 --调整(御前试合)
EVENT_SUMMON_SUCCESS =1100 --通常召唤成功时
EVENT_FLIP_SUMMON_SUCCESS =1101 --翻转召唤成功时
EVENT_SPSUMMON_SUCCESS =1102 --特殊召唤成功时
EVENT_SUMMON =1103 --召唤时(怪兽还没上场、神宣等时点)
EVENT_FLIP_SUMMON =1104 --翻转召唤时
EVENT_SPSUMMON =1105 --特殊召唤时
EVENT_MSET =1106 --放置怪兽时
EVENT_SSET =1107 --放置魔陷时
EVENT_BE_MATERIAL =1108 --作为融合/仪式同调/超量素材时
EVENT_BE_PRE_MATERIAL =1109 --将要作为融合/仪式同调/超量素材时
EVENT_DRAW =1110 --抽卡
EVENT_DAMAGE =1111 --造成战斗/效果伤害时
EVENT_RECOVER =1112 --回复生命值时
EVENT_PREDRAW =1113 --抽卡前
EVENT_CONTROL_CHANGED =1120 --控制权变更
EVENT_EQUIP =1121 --装备卡装备时
EVENT_ATTACK_ANNOUNCE =1130 --攻击宣言时
EVENT_BE_BATTLE_TARGET =1131 --被选为攻击对象时
EVENT_BATTLE_START =1132 --战斗阶段开始时
EVENT_BATTLE_CONFIRM =1133 --选完攻击对象时
EVENT_PRE_DAMAGE_CALCULATE =1134 --伤害计算前
EVENT_DAMAGE_CALCULATING =1135 --伤害计算时
EVENT_PRE_BATTLE_DAMAGE =1136 --即将产生战斗伤害
EVENT_BATTLE_END =1137 --战斗结束(开辟)
EVENT_BATTLED =1138 --伤害计算后(异女、同反转效果时点)
EVENT_BATTLE_DESTROYING =1139 --战斗破坏送去墓地时(BF-苍炎之修罗)
EVENT_BATTLE_DESTROYED =1140 --战斗破坏送去墓地时(杀人番茄等)
EVENT_DAMAGE_STEP_END =1141 --伤害步骤结束时
EVENT_ATTACK_DISABLED =1142 --攻击无效时(翻倍机会)
EVENT_BATTLE_DAMAGE =1143 --造成战斗伤害时
EVENT_TOSS_DICE =1150 --掷骰子时
EVENT_TOSS_COIN =1151 --抛硬币时
EVENT_TOSS_COIN_NEGATE =1152 --抛硬币被无效时
EVENT_TOSS_DICE_NEGATE =1153 --掷骰子被无效时
EVENT_LEVEL_UP =1200 --等级上升时
EVENT_PAY_LPCOST =1201 --支付生命值时
EVENT_DETACH_MATERIAL =1202 --去除超量素材时
EVENT_CONFIRM_DECKTOP =1203 --确认卡组最上方时
EVENT_CONFIRM_CARDS =1204 --确认卡时
EVENT_TURN_END =1210 --回合结束时
EVENT_PHASE =0x1000 --阶段结束时
EVENT_PHASE_START =0x2000 --阶段开始时
EVENT_ADD_COUNTER =0x10000--增加指示物时
EVENT_REMOVE_COUNTER =0x20000--去除指示物时
--Categorys 效果分类(表示这个效果将要发生什么事,OperationInfo设置了效果分类才能触发针对这一类型发动的卡,如破坏->星尘龙
CATEGORY_DESTROY =0x1 --破坏效果
CATEGORY_RELEASE =0x2 --解放效果
CATEGORY_REMOVE =0x4 --除外效果
CATEGORY_TOHAND =0x8 --加入手牌效果
CATEGORY_TODECK =0x10 --回卡组效果
CATEGORY_TOGRAVE =0x20 --送去墓地效果
CATEGORY_DECKDES =0x40 --卡组破坏效果
CATEGORY_HANDES =0x80 --手牌破坏效果
CATEGORY_SUMMON =0x100 --含召唤的效果
CATEGORY_SPECIAL_SUMMON =0x200 --含特殊召唤的效果
CATEGORY_TOKEN =0x400 --含衍生物效果
CATEGORY_FLIP =0x800 --含翻转效果
CATEGORY_POSITION =0x1000 --改变表示形式效果
CATEGORY_CONTROL =0x2000 --改变控制权效果
CATEGORY_DISABLE =0x4000 --使效果无效效果
CATEGORY_DISABLE_SUMMON =0x8000 --无效召唤效果
CATEGORY_DRAW =0x10000 --抽卡效果
CATEGORY_SEARCH =0x20000 --检索卡组效果
CATEGORY_EQUIP =0x40000 --装备效果
CATEGORY_DAMAGE =0x80000 --伤害效果
CATEGORY_RECOVER =0x100000 --回复效果
CATEGORY_ATKCHANGE =0x200000 --改变攻击效果
CATEGORY_DEFCHANGE =0x400000 --改变防御效果
CATEGORY_COUNTER =0x800000 --指示物效果
CATEGORY_COIN =0x1000000 --硬币效果
CATEGORY_DICE =0x2000000 --骰子效果
CATEGORY_LEAVE_GRAVE =0x4000000 --离开墓地效果
CATEGORY_LVCHANGE =0x8000000 --改变等级效果
CATEGORY_NEGATE =0x10000000 --使发动无效效果
--Hint
HINT_EVENT =1
HINT_MESSAGE =2
HINT_SELECTMSG =3
HINT_OPSELECTED =4
HINT_EFFECT =5
HINT_RACE =6
HINT_ATTRIB =7
HINT_CODE =8
HINT_NUMBER =9
HINT_CARD =10
--Card Hint
CHINT_TURN =1
CHINT_CARD =2
CHINT_RACE =3
CHINT_ATTRIBUTE =4
CHINT_NUMBER =5
CHINT_DESC =6
--Hint Message --提示消息,显示在窗口的上面
HINTMSG_RELEASE =500 --请选择要解放的卡
HINTMSG_DISCARD =501 --请选择要丢弃的手牌
HINTMSG_DESTROY =502 --请选择要破坏的卡
HINTMSG_REMOVE =503 --请选择要除外的卡
HINTMSG_TOGRAVE =504 --请选择要送去墓地的卡
HINTMSG_RTOHAND =505 --请选择要返回手牌的卡
HINTMSG_ATOHAND =506 --请选择要加入手牌的卡
HINTMSG_TODECK =507 --请选择要返回卡组的卡
HINTMSG_SUMMON =508 --请选择要召唤的卡
HINTMSG_SPSUMMON =509 --请选择要特殊召唤的卡
HINTMSG_SET =510 --请选择要盖放的卡
HINTMSG_FMATERIAL =511 --请选择融合召唤的素材
HINTMSG_SMATERIAL =512 --请选择同调召唤的素材
HINTMSG_XMATERIAL =513 --请选择超量召唤的素材
HINTMSG_FACEUP =514 --请选择表侧表示的卡
HINTMSG_FACEDOWN =515 --请选择里侧表示的卡
HINTMSG_ATTACK =516 --请选择攻击表示的怪兽
HINTMSG_DEFENCE =517 --请选择守备表示的怪兽
HINTMSG_EQUIP =518 --请选择要装备的卡
HINTMSG_REMOVEXYZ =519 --请选择要取除的超量素材
HINTMSG_CONTROL =520 --请选择要改变控制权的怪兽
HINTMSG_DESREPLACE =521 --请选择要代替破坏的卡
HINTMSG_FACEUPATTACK =522 --请选择表侧攻击表示的怪兽
HINTMSG_FACEUPDEFENCE =523 --请选择表侧守备表示的怪兽
HINTMSG_FACEDOWNATTACK =524 --请选择里侧攻击表示的怪兽
HINTMSG_FACEDOWNDEFENCE =525 --请选择里侧守备表示的怪兽
HINTMSG_CONFIRM =526 --请选择给对方确认的卡
HINTMSG_TOFIELD =527 --请选择要放置到场上的卡
HINTMSG_POSCHANGE =528 --请选择要改变表示形式的怪兽
HINTMSG_SELF =529 --请选择自己的卡
HINTMSG_OPPO =530 --请选择对方的卡
HINTMSG_EFFECT =550 --请选择要发动的效果
HINTMSG_TARGET =551 --请选择效果的对象
HINTMSG_COIN =552 --请选择硬币的正反面
HINTMSG_DICE =553 --请选择骰子的结果
HINTMSG_CARDTYPE =554 --请选择一个种类
--Timing --提示时点,可以给freechain卡片增加自动提示时点
TIMING_DRAW_PHASE =0x1 --抽卡阶段时点
TIMING_STANDBY_PHASE =0x2 --准备阶段时点
TIMING_MAIN_END =0x4 --主要阶段结束时点
TIMING_BATTLE_START =0x8 --战斗阶段开始时点
TIMING_BATTLE_END =0x10 --战斗阶段结束时点
TIMING_END_PHASE =0x20 --结束阶段时点
TIMING_SUMMON =0x40 --召唤时点
TIMING_SPSUMMON =0x80 --特殊召唤时点
TIMING_FLIPSUMMON =0x100 --翻转召唤时点
TIMING_MSET =0x200 --放置怪兽时点
TIMING_SSET =0x400 --放置魔陷时点
TIMING_POS_CHANGE =0x800 --表示形式变更时点
TIMING_ATTACK =0x1000 --攻击宣言时点
TIMING_DAMAGE_STEP =0x2000 --伤害步骤时点
TIMING_DAMAGE_CAL =0x4000 --伤害计算时点
TIMING_CHAIN_END =0x8000 --连锁结束时点
TIMING_DRAW =0x10000 --抽卡时点(不是抽卡阶段
TIMING_DAMAGE =0x20000 --造成伤害时点
TIMING_RECOVER =0x40000 --回复时点
TIMING_DESTROY =0x80000 --破坏时点
TIMING_REMOVE =0x100000 --除外时点
TIMING_TOHAND =0x200000 --加入手牌时点(检索、回收等)
TIMING_TODECK =0x400000 --回卡组时点
TIMING_TOGRAVE =0x800000 --进墓地时点
TIMING_BATTLE_PHASE =0x1000000 --战斗阶段时点
TIMING_EQUIP =0x2000000 --装备时点
--Global flag --特殊标记
GLOBALFLAG_DECK_REVERSE_CHECK =0x1 --卡组翻转标记
GLOBALFLAG_BRAINWASHING_CHECK =0x2 --洗脑解除标记
GLOBALFLAG_SCRAP_CHIMERA =0x4 --废铁奇美拉标记
GLOBALFLAG_DELAYED_QUICKEFFECT =0x8 --小丑和锁鸟标记
GLOBALFLAG_DETACH_EVENT =0x10 --超量素材被取除标记
GLOBALFLAG_MUST_BE_SMATERIAL =0x20 --必须作为同调素材(波动龙 声子龙)
GLOBALFLAG_SPSUMMON_COUNT =0x40 --特殊召唤次数标记
GLOBALFLAG_XMAT_COUNT_LIMIT =0x80 --超量素材数量限制标记(光天使 天座)
--
EFFECT_COUNT_CODE_OATH =0x10000000 --誓约使用次数
EFFECT_COUNT_CODE_DUEL =0x20000000 --决斗中使用次数
EFFECT_COUNT_CODE_SINGLE =0x1 --多个效果公共使用次数
--特殊选项
DUEL_TEST_MODE =0x01 --测试模式?坑了?
DUEL_ATTACK_FIRST_TURN =0x02 --第一回合可以攻击(用于残局
DUEL_NO_CHAIN_HINT =0x04 --不提示连锁
DUEL_ENABLE_PRIORITY =0x08 --启动优先权
DUEL_PSEUDO_SHUFFLE =0x10 --不洗牌
DUEL_TAG_MODE =0x20 --双打
DUEL_SIMPLE_AI =0x40 --AI
# history # history
F:\games\ygocore\my.cdb F:\games\ygocore\script\c126218.lua
F:\games\ygocore\cards.cdb F:\games\ygocore\cards.cdb
\ No newline at end of file
F:\games\ygopro\cards.cdb
\ No newline at end of file
CodeEditForm->CodeEditForm 脚本编辑器
CodeEditForm->menuitem_file 文件(&F)
CodeEditForm->menuitem_open 打开
CodeEditForm->menuitem_save 保存
CodeEditForm->menuitem_saveas 另存为
CodeEditForm->menuitem_quit 退出
CodeEditForm->menuitem_setting 设置(&S)
CodeEditForm->menuitem_showmap 显示缩略图
CodeEditForm->menuitem_showinput 显示输入框
CodeEditForm->menuitem_help 帮助(&H)
CodeEditForm->menuitem_about 关于
\ No newline at end of file
...@@ -10,6 +10,7 @@ MainForm->menuitem_history 历史(&H) ...@@ -10,6 +10,7 @@ MainForm->menuitem_history 历史(&H)
MainForm->menuitem_quit 退出(&Q) MainForm->menuitem_quit 退出(&Q)
MainForm->menuitem_windows 窗口(&W) MainForm->menuitem_windows 窗口(&W)
MainForm->menuitem_dataeditor DataEditor MainForm->menuitem_dataeditor DataEditor
MainForm->menuitem_codeeditor CodeEditor
MainForm->menuitem_closeall 关闭所有 MainForm->menuitem_closeall 关闭所有
MainForm->menuitem_closeother 关闭其他 MainForm->menuitem_closeother 关闭其他
MainForm->menuitem_close 关闭当前 MainForm->menuitem_close 关闭当前
\ No newline at end of file
脚本中用到的数据类型为以下几类:
integer: 整数类型
boolean: 布尔类型(true 或者 false)
string: 字符串
function: 函数
Card: 卡片类
Effect: 效果类
Group: 卡片组类
any: 任意类型
为方便说明,采用类似c的函数表示方法说明
[]表示有默认值可省略的参数
注:关于过滤条件函数
过滤条件函数是指第一个参数是Card类型,并且返回值是boolean的函数。此函数用于在一些获取满足条件的卡片组的过滤函数中重复调用。过滤条件函数可以有不定的参数,第二个开始的参数从过滤函数的额外参数获得。举例:
function sample_filter(c, atk, def)
return c:GetAttack()>=atk and c:GetDefence()>=def
end
此函数对于一张卡c,如果攻击力>=atk并且守备力>=def则返回true,否则返回false
g=Duel.GetFieldGroup(0,LOCATION_HAND,0) --获取玩家1的手卡
fg=g:Filter(sample_filter, nil, 1000,500) --从g中筛选攻击力>=1000并且守备>=500的卡
Group.Filter只需要3个参数,第4个参数开始为额外参数,额外的参数会传给sample_filter
●void initial_effect(Card c)
注册卡片效果
========== bit ==========
●integer bit.band(integer a, integer b)
a与b的位与
●integer bit.bor(integer a, integer b)
a与b的位或
●integer bit.bxor(integer a, integer b)
a与b的位异或
●integer bit.bls(integer a, integer b)
a左移b
●integer bit.brs(integer a, integer b)
a右移b
========== Card ==========
●integer Card.GetCode(Card c)
返回c的当前代号(可能因为效果改变)
●integer Card.GetOriginalCode(Card c)
返回c的卡片记载的代号
●boolean Card.IsSetCard(Card c, integer setname)
检查c是否是名字含有setname的卡
●integer Card.GetType(Card c)
返回c的当前类型。
●integer Card.GetOriginalType(Card c)
返回c的卡片记载的类型。
●integer Card.GetLevel(Card c)
返回c的当前等级
●integer Card.GetSynchroLevel(Card c)
返回c的同调用等级。此函数除了某些特定卡如调节支援士,
返回值与Card.GetLevel(c)相同
●integer Card.GetRitualLevel(Card c)
返回c的仪式解放等级。此函数除了某些特定卡如仪式供物,
返回值与Card.GetLevel(c)相同
●integer Card.GetOriginalLevel(Card c)
返回c的卡片记载的等级
●integer Card.GetAttribute(Card c)
返回c的当前属性。注:对某些多属性怪物如光与暗之龙,
此函数的返回值可能是几个属性的组合值。
●integer Card.GetOriginalAttribute(Card c)
返回c的卡片记载的属性
●integer Card.GetRace(Card c)
返回c的当前种族。注:对某些多种族怪物如动画效果的魔术猿,
此函数的返回值可能是几个种族的组合值。
●integer Card.GetOriginalRace(Card c)
返回c的卡片记载的种族
●integer Card.GetAttack(Card c)
返回c的当前攻击力,返回值是负数表示是"?"
●integer Card.GetBaseAttack(Card c)
返回c的原本攻击力
●integer Card.GetTextAttack(Card c)
返回c的卡片记载的攻击力
●integer Card.GetDefence(Card c)
返回c的当前守备力,返回值是负数表示是"?"
●integer Card.GetBaseDefence(Card c)
返回c的原本守备力
●integer Card.GetTextDefence(Card c)
返回c的卡片记载的守备力
●integer Card.GetOwner(Card c)
返回c的持有者
●integer Card.GetControler(Card c)
返回c的当前控制者
●integer Card.GetPreviousControler(Card c)
返回c的位置变化之前的控制者
●integer Card.GetReason(Card c)
返回c的位置变化原因
●Card Card.GetReasonCard(Card c)
返回导致c的位置变化的卡。此函数仅在某卡被战斗破坏时,
因为上级召唤被解放,或者成为特殊召唤使用的素材时有效。
●Effect Card.GetReasonEffect(Card c)
返回导致c的位置变化的效果。
●integer Card.GetPosition(Card c)
返回c当前的表示形式
●integer Card.GetPreviousPosition(Card c)
返回c位置变化前的表示形式
●integer Card.GetBattlePosition(Card c)
返回c在本次战斗发生之前的表示形式
●integer Card.GetLocation(Card c)
返回c当前的所在位置
●integer Card.GetPreviousLocation(Card c)
返回c位置变化前的所在的位置
●integer Card.GetSequence(Card c)
返回c在当前位置的序号
在场上时,序号代表所在的格子,从左往右分别是0-4,场地魔法格的序号为5
在其它地方时,序号表示的是第几张卡。最底下的卡的序号为0
●integer Card.GetPreviousSequence(Card c)
返回c位置变化前的序号
●integer Card.GetSummonType(Card c)
返回c上场的方式。
●integer Card.GetSummonPlayer(Card c)
返回召唤,特殊召唤c上场的玩家
●integer Card.GetDestination(Card c)
返回c位置变化的目的地。此函数仅在处理位置转移代替效果时有效。
●integer Card.GetTurnID(Card c)
返回c转移到当前位置的回合
●integer Card.GetFieldID(Card c)
返回c转移到当前位置的时间标识。此数值唯一,越小表示c是越早出现在那个位置。
●boolean Card.IsCode(Card c, integer code)
检查c的代号是否是code。
●boolean Card.IsType(Card c, integer type)
检查c是否属于类型type。
●boolean Card.IsRace(Card c, integer race)
检查c是否属于种族race。
●boolean Card.IsAttribute(Card c, integer attribute)
检查c是否属于属性attribute。
●boolean Card.IsReason(Card c, integer reason)
检查c是否包含原因reason。
●boolean Card.IsStatus(Card c, integer status)
检查c是否包含某个状态码。
●boolean Card.IsNotTuner(Card c)
检查c是否可以当成非调整来使用。
●void Card.SetStatus(Card c, integer state, boolean enable)
给c设置或者取消状态码。除非妳清楚的了解每个状态码的含意,否则不要轻易使用此函数。
●boolean Card.IsDualState(Card c)
检查c属否处于再召唤状态。
●void Card.EnableDualState(Card c)
把c设置成再召唤状态。
●void Card.SetTurnCounter(Card c, integer counter)
设置c的回合计数器(光之护封剑等)
●integer Card.GetTurnCounter(Card c)
返回c的回合计数器
●void Card.SetCustomValue(Card c, string tag, any object)
以tag作为标签为c设置一个自定义值object
●any Card.GetCustomValue(Card c, string tag)
返回c的以tag作为标签的自定义值
●void Card.SetMaterial(Card c, Group g)
把g中的所有卡作为c的素材(上级召唤,特殊召唤)
●Group Card.GetMaterial(Card c)
返回c出场使用的素材
●integer Card.GetMaterialCount(Card c)
返回c出场使用的素材数量
●Group Card.GetEquipGroup(Card c)
返回c当前装备着的卡片组
●integer Card.GetEquipCount(Card c)
返回c当前装备着的卡片数量
●Card Card.GetEquipTarget(Card c)
返回c当前的装备对象
●boolean Card.CheckEquipTarget(Card c1, Card c2)
检查c2是否是c1的正确的装备对象
●integer Card.GetUnionCount(Card c)
返回c当前装备的同盟卡数量
●Group Card.GetOverlayGroup(Card c)
返回c当前叠放着的卡片组
●integer Card.GetOverlayCount(Card c)
返回c当前叠放着的卡片数量
●integer Card.RemoveOverlayCard
(Card c,integer player, integer min, integer max, integer reason)
以reason为原因,让玩家player移除c叠放的min-max张卡
●Group Card.GetAttackGroup(Card c)
返回c本回合攻击过的卡片组
●integer Card.GetAttackedGroupCount(Card c)
返回c本回合攻击过的卡片数量
●integer Card.GetAttackedCount(Card c)
返回c本回合攻击过的次数
注:如果此值与上一个函数的返回值不同,那么说明此卡本回合进行过直接攻击
●Group Card.GetBattledGroup(Card c)
返回与c本回合进行过战斗的卡片组
进行过战斗指发生过伤害的计算。用于剑斗兽等卡的判定。
●integer Card.GetBattledGroupCount(Card c)
返回与c本回合进行过战斗的的卡片数量
●integer Card.GetAttackAnnouncedCount(Card c)
返回c本回合攻击宣言的次数
注:攻击被无效不会被计入攻击过的次数,但是会计入攻击宣言的次数。
●void Card.SetCardTarget(Card c1, Card c2)
把c2作为c1的永续对象。
c1和c2的联系会在c1活c2任意一卡离场或变成里侧表示时reset。
●Group Card.GetCardTarget(Card c)
返回c当前所有的永续对象
●integer Card.GetCardTargetCount(Card c)
返回c当前的永续对象的数量
●boolean Card.IsHasCardTarget(Card c1, Card c2)
检查c1是否取c2为永续对象
●Group Card.GetOwnerTarget(Card c)
返回取c作为永续对象的所有卡
●integer Card.GetOwnerTargetCount(Card c)
返回取c作为永续对象的卡的数量
●Effect Card.GetActivateEffect(Card c)
返回c的“卡片发动”的效果。仅对魔法和陷阱有效。
●integer Card.RegisterEffect(Card c, Effect e, [boolean forced=false])
把效果e注册给c,返回效果的全局id。
默认情况下注册时如果c带有免疫e的效果那么注册会失败。
如果forced为true则不会检查c对e的免疫效果。
●boolean Card.IsHasEffect(Card c, integer code)
检查c是否受到效果种类是code的效果的影响
●integer Card.GetEffectCount(Card c, integer code)
返回c受到影响的种类是code的效果的数量
●Effect Card.RegisterFlagEffect(Card c, integer code, integer reset_flag, integer property, integer reset_count)
为c注册一个标识用效果。
注:注册给卡的标识用效果不会用于系统,
即使code与内置效果code重合也不会影响,
并且类型总是EFFECT_TYPE_SINGLE。reset方法,property和一般的效果相同,
并且不会无效化,不受卡的免疫效果影响。
●integer Card.GetFlagEffect(Card c, integer code)
返回c的种类是code的标识效果的数量。
●void Card.ResetFlagEffect(Card c, integer code)
手动清除c的种类是code的标识效果。
●void Card.CreateRelation(Card c1, Card c2, integer reset_flag)
为c1建立于c2的联系。此联系仅会由于RESET_EVENT的事件reset。
●void Card.ReleaseRelation(Card c1, Card c2)
手动释放c1对于c2的联系
●boolean Card.IsRelateToEffect(Card c, Effect e)
检查c是否和效果e有联系。
注:每次发动进入连锁的效果时,发动效果的卡,以及发动效果时指定的对象
(用Duel.SetTargetCard或者Duel.SelectTarget指定的,包括取对象和不取对象)
会自动与那个效果建立联系。一旦离场,联系会重置。
●boolean Card.IsRelateToCard(Card c1, Card c2)
检查c1是否和c2有联系。
●boolean Card.IsRelateToBattle(Card c)
检查c是否和本次战斗关联。
注:此效果通常用于伤害计算后伤害阶段结束前,用于检查战斗的卡是否离场过。
●integer Card.CopyEffect
(Card c, integer code, integer reset_flag,integer reset_count)
为c添加代号是code的卡的可复制的效果,并且添加额外的reset条件。
返回值是表示复制效果的代号id。
●void Card.EnableReviveLimit(Card c)
为c添加苏生限制。此函数也可通过Card.SetStatus实现。
●void Card.CompleteProcedure(Card c)
使c完成正规的召唤手续。此函数也可通过Card.SetStatus实现。
●boolean Card.IsDisabled(Card c)
检查c是否处于无效状态
●boolean Card.IsDestructable(Card c)
检查c是否是可破坏的。
注:不可破坏指的是类似场地护罩,宫廷的规矩等“破壊できない”的效果
●boolean Card.IsSummonableCard(Card c)
检查c是否是可通常召唤的卡。
●boolean Card.IsSpecialSummonable(Card c)
检查是否可以对c进行特殊召唤手续。
●boolean Card.IsSynchroSummonable(Card c, [Card tuner=nil])
检查是否可以以tuner作为调整对c进行同调召唤手续。
如果tuner是nil,此函数与上一个函数作用相同。
●boolean Card.IsSummonable(Card c)
检查c是否可进行通常召唤(不包含通常召唤的set)
●boolean Card.IsMSetable(Card c)
检查c是否可进行通常召唤的set
●boolean Card.IsSSetable(Card c)
检查c是否可以set到魔法陷阱区
●boolean Card.IsCanBeSpecialSummoned
(Card c, Effect e, integer sumtype, integer sumplayer,
boolean nocheck, boolean nolimit, [integer sumpos=POS_FACEUP,
integer target_player=sumplayer])
检查c是否可以被玩家sumplayer
用效果e以sumtype方式和sumpos表示形式特殊召唤到target_player场上。
如果nocheck是true则不检查c的召唤条件,如果nolimit是true则不检查c的苏生限制。
●boolean Card.IsAbleToHand(Card c)
检查c是否可以送去手牌。
注:仅当卡片或者玩家受到“不能加入手牌”的效果的影响时(如雷王)此函数才返回false。
以下几个函数类似。
●boolean Card.IsAbleToDeck(Card c)
检查c是否可以送去卡组。
●boolean Card.IsAbleToExtra(Card c)
检查c是否可以送去额外卡组。
对于非融合,同调,超量卡此函数均返回false。
●boolean Card.IsAbleToGrave(Card c)
检查c是否可以送去墓地。
●boolean Card.IsAbleToRemove(Card c)
检查c是否可以除外。
●boolean Card.IsAbleToHandAsCost(Card c)
检查c是否可以作为cost送去手牌。
注:此函数会在Card.IsAbleToHand的基础上追加检测c的实际目的地。
当c送往手牌会被送去其它地方时(如缩退回路适用中,或者c是融合,同调和超量怪的一种),
此函数返回false。以下几个函数类似。
●boolean Card.IsAbleToDeckAsCost(Card c)
检查c是否可以作为cost送去卡组。
●boolean Card.IsAbleToExtraAsCost(Card c)
检查c是否可以作为cost送去额外卡组。
●boolean Card.IsAbleToGraveAsCost(Card c)
检查c是否可以作为cost送去墓地。
●boolean Card.IsAbleToRemoveAsCost(Card c)
检查c是否可以作为cost除外。
●boolean Card.IsReleaseable(Card c)
检查c是否可以解放(非上级召唤用)
●boolean Card.IsDiscardable(Card c)
检查c是否可以丢弃
注:此函数仅用于检测,
以REASON_DISCARD作为原因把一张手卡送墓并不会导致那张卡不能丢弃。
●boolean Card.IsAttackable(Card c)
检查c是否可以攻击
●boolean Card.IsChainAttackable(Card c)
检查c是否可以连续攻击
注:当c因为闪光之双剑等效果进行过多次攻击之后此函数返回false。
●boolean Card.IsFaceup(Card c)
检查c是否是表侧表示
●boolean Card.IsFacedown(Card c)
检查c是否是里侧测表示
●boolean Card.IsAttack(Card c)
检查c是否是攻击表示
●boolean Card.IsDefence(Card c)
检查c是否是守备表示
●boolean Card.IsControler(Card c, integer con)
检查c的当前控制着是否是con
●boolean Card.IsOnField(Card c)
检查c是否在场。
注:当怪物召唤,反转召唤,特殊召唤时召唤成功之前,此函数返回false
●boolean Card.IsLocation(Card c, integer loc)
检查c当前位置是否是loc。
注:当怪物召唤,反转召唤,特殊召唤时召唤成功之前,
并且loc=LOCATION_MZONE时,此函数返回false
●boolean Card.IsPublic(Card c)
检查c是否处于公开状态
●boolean Card.IsForbidden(Card c)
检查c是否处于被宣言禁止状态
●boolean Card.IsAbleToChangeControler(Card c)
检查c是否可以改变控制权
注:仅当卡收到了“不能改变控制权”的效果的影响时,此函数返回false
●boolean Card.IsControlerCanBeChanged(Card c)
检查c的控制权是否可以改变
注:此函数会在上一个函数的基础上追加检测场上的空格位
●void Card.AddCounter(Card c, integer countertype, integer count)
为c放置count个countertype类型的指示物
●void Card.RemoveCounter
(Card c, integer player, integer countertype, integer count, integer reason)
让玩家player以原因reason移除c上的count个countertype类型的指示物
●integer Card.GetCounter(Card c, integer countertype)
返回c上的countertype类型的指示物的数量
●void Card.EnableCounterPermit(Card c, integer countertype)
允许c放置那个需要“可以放置”才能放置的指示物countertype
●void Card.SetCounterLimit(Card c, integer countertype, integer count)
设定c放置countertype类型指示物的上限
●boolean Card.IsCanTurnSet(Card c)
检查c是否可以转成里侧表示。
●boolean Card.IsCanAddCounter(Card c, integer countertype, integer count)
检查c是否可以放置count个countertype类型的指示物
●boolean Card.IsCanRemoveCounter
(Card c, integer player, integer countertype, integer count, integer reason)
检查玩家player是否可以以原因reason移除c上的count个countertype类型的指示物
●boolean Card.IsCanBeFusionMaterial(Card c)
检查c是否可以成为融合素材
●boolean Card.IsCanBeSynchroMaterial(Card c)
检查c是否可以成为同调素材
●boolean Card.IsCanBeExceedMaterial(Card c)
检查c是否可以成为超量素材
●boolean Card.CheckFusionMaterial(Card c, Group g)
检查g是否包含了c需要的一组融合素材
●boolean Card.IsImmuneToEffect(Card c, Effect e)
检查c是否免疫效果e(即不受效果e的影响)
●boolean Card.IsCanBeEffectTarget(Card c, Effect e)
检查c是否可以成为效果e的对象
●boolean Card.IsCanBeBattleTarget(Card c1, Card c2)
检查c1是否可以成为c2的攻击目标
●void Card.AddTrapMonsterAttribute(Card c, boolean is_effect)
为c添加陷阱怪物属性。is_effect=true表示视作效果怪物,否则视为通常怪物
注:陷阱怪物属性指的是同时作为怪物和陷阱,
并且额外使一个魔法陷阱的格子不能使用。
●void Card.CancelToGrave(Card c)
取消送墓确定状态。
注:送墓确定状态指的是在场上发动的不留场的魔法和陷阱后,这些卡片的状态。
送墓确定状态中的卡无法返回手牌和卡组,并且连锁结束时送去墓地。
此函数的作用是取消此状态使其留场。用于光之护封剑和废铁稻草人等卡。
●integer,integer Card.GetTributeRequirement(Card c)
返回通常召唤c所需要的祭品的最小和最大数量
========== Effect ==========
●Effect Effect.CreateEffect(Card c)
新建一个空效果,并且效果的拥有者为c
●Effect Effect.Clone(Effect e)
新建一个效果e的副本
●void Effect.Reset(Effect e)
把效果e重置。重置之后不可以再使用此效果
●void Effect.SetType(Effect e, integer type)
为效果e设置效果类型
●void Effect.SetDescription(Effect e, integer desc)
为效果e设置效果描述
●void Effect.SetCode(Effect e, integer code)
为效果e设置Code属性
●void Effect.SetRange(Effect e, integer range)
为效果e设置Range属性
●void Effect.SetTargetRange(Effect e, integer s_range, integer o_range)
为效果e设置Target Range属性
s_range指影响的我方区域。o_range值影响的对方区域。
如果property属性中指定了EFFECT_FLAG_ABSOLUTE_RANGE标志,
那么s_range指玩家1收到影响的区域,o_range指玩家2受到影响的区域。
如果这是一个特殊召唤手续(EFFECT_SPSUMMON_PROC)的效果,
并且property指定了EFFECT_FLAG_SPSUM_PARAM标志,
那么s_range表示特殊召唤到的哪个玩家的场地,
o_range表示可选择的表示形式。
●void Effect.SetAbsoluteRange(Effect e, integer s_range, integer o_range)
设置target range属性并设置EFFECT_FLAG_ABSOLUTE_RANGE标志
●void Effect.SetCountLimit(Effect e, integer count)
设置一回合可以发动的次数(仅触发型效果有效)
●void Effect.SetReset(Effect e, integer reset_flag, [integer reset_count=1])
设置reset参数
●void Effect.SetReset(Effect e, integer type)
设置Type属性
●void Effect.SetProperty(Effect e, integer prop)
设置Property属性
●void Effect.SetLabel(Effect e, integer label)
设置Label属性
●void Effect.SetCategory(Effect e, integer cate)
设置Category属性
●void Effect.SetCategory(Effect e, integer cate)
设置Category属性
●void Effect.SetCondition(Effect e, function con_func)
设置Condition属性
●void Effect.SetCost(Effect e, function cost_func)
设置Cost属性
●void Effect.SetTarget(Effect e, function targ_func)
设置Target属性
●void Effect.SetOperation(Effect e, function op_func)
设置Operation属性
●void Effect.SetValue(Effect e, integer|function val)
设置Value属性
●void Effect.SetOwnerPlayer(Effect e, integer player)
设置Owner player属性
●integer Effect.GetDescription(Effect e)
返回效果描述
●integer Effect.GetCode(Effect e)
返回code属性
●integer Effect.GetType(Effect e)
返回Type属性
●integer Effect.GetProperty(Effect e)
返回Property属性
●integer Effect.GetLabel(Effect e)
返回Label属性
●integer Effect.GetCategory(Effect e)
返回Category属性
●Card Effect.GetOwner(Effect e)
返回效果拥有者
●Card Effect.GetHandler(Effect e)
返回效果在哪一张卡上生效(通常是注册该效果的卡)
●function Effect.GetCondition(Effect e)
返回condition属性
●function Effect.GetCost(Effect e)
返回cost属性
●function Effect.GetTarget(Effect e)
返回target属性
●function Effect.GetOperation(Effect e)
返回operation属性
●function|integer Effect.GetValue(Effect e)
返回value属性
●boolean Effect.IsHasProperty(Effect e, integer prop)
检查效果是否含有标志prop
●boolean Effect.IsHasCategory(Effect e, integer cate)
检查效果是否含有效果分类cate
●boolean Effect.IsHasType(Effect e, integer type)
检查效果是否属于类型type
========== group ==========
●Group Group.CreateGroup()
新建一个空的卡片组
●void Group.CreateGroup(Group g)
删除卡片组g
●Group Group.Clone(Group g)
新建卡片组g的副本
●Group Group.FromCards(Card c, ...)
不定参数,把传入的所有卡组合成一个卡片组并返回
●void Group.Clear(Group g)
清空卡片组
●void Group.AddCard(Group g, Card c)
往g中增加c
●void Group.RemoveCard(Group g, Card c)
把c从g中移除
●Card Group.GetFirst(Group g)
返回g中第一张卡,并重置当前指针到g中第一张卡。
如果g中不存在卡则返回nil
●Card Group.GetNext(Group g)
返回并使指针指向下一张卡。如果g中不存在卡则返回nil
●integer Group.GetCount(Group g)
返回g中卡的数量
●void Group.ForEach(Group g, function f)
以g中的每一张卡作为参数调用一次f
●Group Group.Filter(Group g, function f, Card ex, ...)
过滤函数。从g中筛选满足筛选条件f并且不等于ex的卡。
从第4个参数开始为额外参数。
●integer Group.FilterCount(Group g, function f, Card ex, ...)
过滤函数。和上一个函数基本相同。不同指出在于此函数只返回满足条件的卡的数量。
●Group Group.FilterSelect
(Group g, integer player, function f,integer min, integer max, Card ex, ...)
过滤函数。让玩家player从g中选择min-max张满足筛选条件f并且不等于ex的卡。
从第7个参数开始为额外参数。
●Group Group.Select
(Group g, integer player, integer min, integer max, Card ex)
让玩家player从g中选择min-max张不等于ex的卡。
●Group Group.RandomSelect(Group g, integer player, integer count)
让玩家player从g中随机选择count张卡。
因为是随机算则,所以参数player基本无用,由系统随机选取。
●boolean Group.IsExists(Group g, function f, integer count, Card ex, ...)
过滤函数。检查g中是否存在至少count张满足筛选条件f并且不等于ex的卡。
从第5个参数开始为额外参数。
●boolean Group.CheckWithSumEqual
(Group g, function f, integer sum, integer min)
子集求和判定函数。f为返回一个interger值的函数(通常用于同调判定)。
检查g中是否存在一个数量至少为min的子集满足以f对子集的每一个元素求值的和等于sum。
比如:g:CheckWithSumEqual(Card.GetSynchroLevel,7,2)
检查g中是否存在一个子集满足子集的同调用等级之和等于7
●Group Group.SelectWithSumEqual
(Group g, integer player, function f, integer sum, integer min)
让玩家player从g中选取一个数量至少是min的子集使子集的特定函数的和等于sum
●boolean Group.CheckWithSumGreater(Group g, function f, integer sum)
子集求和判定函数之二。f为返回一个interger值的函数(通常用于仪式判定)。
检查g中是否存在一个子集满足以f对子集的每一个元素求值的和刚好大于或者等于sum。
比如:g:CheckWithSumGreater(Card.GetRitualLevel,8)
检查g中是否存在一个子集满足子集的仪式用等级之和大于等于8
注:判定必须是“刚好”大于或者等于。
以等级为例,要使等级合计大于等于8,可以选择LV1+LV7而不可以选择LV1+LV4+LV4
●Group Group.SelectWithSumGreater
(Group g, integer player, function f, integer sum)
让玩家player从g中选取一个子集使子集的特定函数的和大于等于sum
●Group Group.GetMinGroup(Group g, function f)
f为返回一个interger值的函数。从g中筛选出具有最小的f的值的卡。用于地裂等卡。
●Group Group.GetMaxGroup(Group g, function f)
f为返回一个interger值的函数。从g中筛选出具有最大的f的值的卡。用于地碎等卡。
●integer Group.GetSum(Group g, function f)
计算g中所有卡的取值的总和。f为为每张卡的取值函数。
●integer Group.GetSortCount(Group g, function f)
计算g中所有卡的种类数量。f为分类的依据,返回相同的值视为同一种类。
●Group Group.Remove(Group g, function f, ...)
过滤函数。从g中移除满足筛选条件f的所有卡。第三个参数开始是额外参数。
●Group Group.Merge(Group g1, Group g2)
把g2中的所有卡合并到g1。
注:g2本身不会发生变化。
●boolean Group.IsContains(Group g, Card c)
检查g中是否存在卡片c
●Card Group.SearchCard(Group g, function f, ...)
过滤函数。返回g中满足筛选条件f的第一张卡。第三个参数为额外参数。
========== Duel ==========
●integer Duel.GetLP(integer player)
返回玩家player的当前LP
●void Duel.SetLP(integer player, integer lp)
设置玩家player的当前LP为lp
●integer Duel.GetTurnPlayer()
返回当前的回合玩家
●integer Duel.GetTurnCount()
返回当前的回合数
●integer Duel.GetDrawCount(integer player)
返回玩家player每回合的规则抽卡数量
●void Duel.DebugMessage(any msg)
Debug用函数,用于显示信息
●void Duel.RegisterEffect(Effect e, integer player)
把效果作为玩家player的效果注册给全局环境。
●Effect Duel.RegisterFlagEffect(integer player, integer code,
integer reset_flag, integer property, integer reset_count)
此函数为玩家player注册全局环境下的标识效果。
此效果总是影响玩家的(EFFECT_FLAG_PLAYER_TARGET)并且不会被无效化。
其余部分与Card.RegisterFlagEffect相同
●integer Duel.GetFlagEffect(integer player, integer code)
返回玩家player的特定的标识效果的数量
●void Duel.ResetFlagEffect(integer player, integer code)
手动reset玩家player的特定的标识效果
●integer Duel.Destroy(Card|Group targets, integer reason)
以reason原因破坏targets。返回值是实际被破坏的数量。
如果reason包含REASON_RULE,则破坏事件将不会检查卡片是否免疫效果,
不会触发代破效果并且无视“不能破坏”。
●integer Duel.Remove(Card|Group targets, integer pos, integer reason)
以reason原因,pos表示形式除外targets。
返回值是实际被操作的数量。
如果reason包含REASON_TEMPORARY,
那么视为是暂时除外,可以通过Duel.ReturnToField返回到场上
●integer Duel.SendtoGrave(Card|Group targets, integer reason)
以reason原因把targets送去墓地。返回值是实际被操作的数量。
●integer Duel.SendtoHand(Card|Group targets,
integer player | nil, integer reason)
以reason原因把targets送去玩家player的手牌。
返回值是实际被操作的数量。
如果player是nil则返回卡的持有者的手牌。
●integer Duel.SendtoDeck(Card|Group targets,
integer player | nil, integer seq, integer reason)
以reason原因把targets送去玩家player的卡组。
返回值是实际被操作的数量。
如果player是nil则返回卡的持有者的卡组。
如果seq=0,则是返回卡组最顶端;seq=1则是返回卡组最低端;
其余情况则是返回最顶端并且标记需要洗卡组。
●Group Duel.GetOperatedGroup()
此函数返回之前一次卡片操作实际操作的卡片组。包括
Duel.Destroy, Duel.Remove, Duel.SendtoGrave,
Duel.SendtoHand, Duel.SendtoDeck, Duel.Release,
Duel.ChangePosition, Duel.SpecialSummon
●void Duel.Summon(integer player, Card c, boolean ignore_count, Effect e)
让玩家以效果e对c进行通常召唤(非set)。
如果e=nil,那么就按照一般的通常召唤规则进行通常召唤。
如果ignore_count=true,则忽略每回合的通常召唤次数限制。
●void Duel.SpecialSummonRule(integer player, Card c)
让玩家player对c进行特殊召唤手续。
●void Duel.SynchroSummon(integer player, Card c, Card tuner)
让玩家player以tuner作为调整对c进行特殊召唤手续。
●void Duel.MSet(integer player, Card c, boolean ignore_count, Effect e)
让玩家以效果e对c进行通常召唤的Set。
如果e=nil,那么就按照一般的通常召唤规则进行通常召唤。
如果ignore_count=true,则忽略每回合的通常召唤次数限制。
●void Duel.SSet(integer player, Card c)
让玩家player把c放置到魔法陷阱区
●Card Duel.CreateToken(integer player, integer code, integer setcode,
integer attack, integer defence, integer level, integer race,
integer attribute)
以传入的参数数值新建一个Token
●integer Duel.SpecialSummon(Card|Group targets, integer sumtype,
integer sumplayer, integer target_player, boolean nocheck, boolean nolimit,
integer pos)
让玩家player以sumtype方式,pos表示形式把targets特殊召唤到target_player场上。
如果nocheck为true则无视卡的召唤条件。如果nolimit为true则无视卡的苏生限制。
返回值是特殊召唤成功的卡的数量。
●boolean Duel.SpecialSummonStep(Card c, integer sumtype, integer sumplayer,
integer target_player, boolean nocheck, boolean nolimit, integer pos)
此函数是上一个函数的分解过程,只特殊召唤一张卡c。
此函数用于一个效果需要双方同时特殊召唤时。此函数必须和下面的函数一起使用。
返回值表示是否特殊召唤成功。
●integer Duel.SpecialSummonComplete()
此函数在确定复数个上一个函数调用完毕之后调用。用于触发事件。
●void Duel.RemoveCounter(integer player, integer s, integer o,
integer countertype, integer count, integer reason)
让玩家player移除场上存在的countertype类型的count个指示物。
s表示对player来说的己方的可移除指示物的位置,
o表示对player来说的对方的可移除指示物的位置
●boolean Duel.IsCanRemoveCounter(integer player, integer s,
integer o, integer countertype, integer count, integer reason)
检查玩家player是否能移除场上的countertype类型的count个指示物。
s和o参数作用同上。
●integer Duel.GetCounter(integer player, integer s, integer o,
integer countertype)
返回场上存在的countertype类型的指示物的数量。s和o参数作用同上。
●integer Duel.ChangePosition(Card|Group targets,integer au,
[integer ad=au, integer du=au, integer dd=au, boolean noflip=false])
改变targets的表示形式。表侧攻击表示的变成au,里侧攻击表示的变成ad,
表侧守备表示变成du,里侧守备表示变成dd
如果noflip=true则不触发翻转效果(但会触发翻转时的诱发效果)
●integer Duel.Release(Card|Group targets, integer reason)
以reason原因解放targets。返回值是实际解放的数量。
如果reason含有REASON_COST,则不会检查卡片是否不受效果影响
●void Duel.MoveToField(Card c, integer move_player,
integer target_player,integer dest, integer pos, boolean enabled)
让玩家move_player把c移动的target_player的场上。
dest只能是LOCATION_MZONE或者LOCATION_SZONE。pos表示可选表示形式。
enable表示是否立刻适用c的效果。
●void Duel.ReturnToField(Card c)
把c返回到场上。c必须是以REASON_TEMPORARY原因离场,并且离场后没有离开过那个位置。
●void Duel.MoveSequence(Card c, integer seq)
移动c的序号。通常用于在场上换格子或者在卡组中移动到最上方或者最下方。
●void Duel.SetChainLimit(function f)
设定连锁条件。f是接受一个Effect类型作为参数并且返回boolean值的函数。
在cost或者target处理中调用此函数可以限制可以连锁的效果的种类(如超融合)
。如果f返回false表示不能连锁。一旦设置连锁条件后发生了新的连锁那么连锁条件将会解除。
●void Duel.SetChainLimitTillChainEnd(function f)
功能同上,但是此函数设定的连锁条件直到连锁结束才会解除。
●Effect Duel.GetChainMaterial(integer player)
返回玩家player受到的连锁素材的效果。此函数仅用于融合类卡的效果。
●void Duel.ConfirmDeckTop(integer player, integer count)
确认玩家player卡组最上方的count张卡。双方均可确认。
●void Duel.ConfirmCards(integer player, Card|Group targets)
给玩家player确认targets
●void Duel.SortDecktop
(integer sort_player, integer target_player, integer count)
让玩家sort_player对玩家target_player的卡组最上方count张卡进行排序
●boolean Duel.CheckEvent(integer event)
检查当前是否是event时点
●void Duel.RaiseEvent
(Group eg,integer code, Effect reason_effect,integer reason,
integer reason_player,integer event_player,integer event param)
触发一个事件。
●void Duel.RaiseSingleEvent
(Card ec,integer code, Effect reason_effect,integer reason,
integer reason_player,integer event_player, integer event param)
触发一个单体事件。
●integer, integer Duel.GetEnvironment()
返回两个值,表示当前场地代号,以及当前场地效果的来源玩家。
场地代号指当前生效的场地卡的代号,或者海神的巫女把场地变化效果的值。
来源玩家指当前生效的场地卡的控制者,或者海神的巫女等卡的控制者。
●void Duel.Win(function f, Effect e, integer player)
在当前效果处理完之后调用f进行胜负检测。e和player作为f的两个参数传递给f。
f返回值的低16位表示胜负判定玩家,
0表示玩家1胜利,1表示玩家2胜利,2表示平局,
此外是无胜负兵继续进行。高16位表示胜负的原因。
●integer Duel.Draw(integer player, integer count, integer reason)
让玩家player以原因reason抽count张卡。返回实际抽的卡的数量。
如果reason含有REASON_RULE则此次抽卡不受“不能抽卡”的效果的影响。
●integer Duel.Damage(integer player, integer value, integer reason)
以reason原因给与玩家player造成value的伤害。返回实际收到的伤害值。
如果受到伤害变成回复等效果的影响时,返回值为0.
●integer Duel.Recover(integer player, integer value, integer reason)
以reason原因使玩家player回复value的LP。返回实际的回复值。
如果受到回复变成伤害等效果的影响时,返回值为0.
●boolean Duel.Equip(integer player, Card c1, Card c2)
把c1作为玩家player的装备卡装备给c2。返回值表示是否成功。
●boolean Duel.GetControler(integer player, Card c)
让玩家player得到c的控制权。返回值表示是否成功。
●boolean Duel.SwapControler(Card c1, Card c2)
交换c1和c2的控制权。返回值表示是否成功。
●boolean Duel.CheckLPCost(integer player, integer cost)
检查玩家player是否能支付cost点lp
●void Duel.PayLPCost(integer player, integer cost)
让玩家player支付cost点lp
●integer Duel.DiscardDeck(integer player, integer count, integer reason)
以原因reason把玩家player的卡组最上端count张卡送去墓地.返回实际转移的数量。
●integer Duel.DiscardHand(integer player, function f,
integer min, integer max, integer reason, Card ex, ...)
过滤函数。让玩家player选择并丢弃满足筛选条件f兵不等于ex的min-max张手卡。
第7个参数开始为额外参数。
●void Duel.DisableShuffleCheck()
使下一个操作不检查是否需要洗卡组或者洗手卡。
注:如果不调用此函数,
除了调用Duel.DiscardDeck和Duel.Draw之外从卡组中取出卡或者把卡加入手卡
或者把卡加入卡组(非最上端或最底端)时,系统会自动在效果处理结束时洗卡组或手卡。
如果不希望如此,比如从卡组顶端除外一张卡等操作,那么需要调用此函数。
此函数仅保证紧接着的一次操作不会进行洗卡检测。
●void Duel.ShuffleDeck(integer player)
手动洗玩家player的卡组
●void Duel.ShuffleHand(integer player)
手动洗玩家player的手卡
注:以上两个操作会重置洗卡检测的状态。
●void Duel.ChaingeAttacker(Card c)
把当前的攻击卡替换成c进行攻击
●void Duel.ReplaceAttacker(Card c)
用c代替当前攻击的卡进行伤害阶段
●void Duel.ChaingeAttackTarget(Card c)
把当前的攻击目标替换成c。如果c=nil则变成直接攻击。
●void Duel.ReplaceAttackTarget(Card c)
(预留)
●integer Duel.GetBattleDamage(integer player)
返回玩家player在本次战斗中收到的伤害
●void Duel.ChangeBattleDamage(integer player, integer value)
把玩家player在本次战斗中收到的伤害变成value
●void Duel.ChangeTarget(integer chainc, Group g)
把连锁chainc的对象换成g
●void Duel.ChangeTargetPlayer(integer chainc, integer player)
把连锁chainc的对象玩家换成player
●void Duel.ChangeTargetParam(integer chainc, integer param)
把连锁chainc的对象参数换成param
●void Duel.BreakEffect()
中断当前效果,使之后的效果处理视为不同时处理。此函数会造成错时点。
●void Duel.ChangeChainOperation(integer chainc, function f)
把连锁chainc的效果的处理函数换成f。用于实现“把效果变成”等的效果
●void Duel.NegateActivation(integer chainc)
使连锁chainc的发动无效
●void Duel.NegateEffect(integer chainc)
使连锁chainc的效果无效
●void Duel.NegateSummon(Card c)
使正在召唤,反转召唤,特殊召唤的c的召唤无效
●void Duel.IncreaseSummonCount()
本回合的通常召唤限制计数+1
●boolean Duel.CheckSummonCount()
检查回合玩家本回合的通常召唤限制计数。
●integer Duel.GetLocationCount(integer player, integer location)
返回玩家player的指定场地location剩余的空格数。
location只能是LOCATION_MZONE或者LOCATION_SZONE。
●Card Duel.GetFieldCard
(integer controler, integer location, integer sequence)
返回指定玩家指定地点指定序号的卡
●integer Duel.GetCurrentChain()
返回当前正在处理的连锁序号
●... Duel.GetChainInfo(integer chainc, ...)
返回连锁chainc的信息。如果chainc=0,则返回当前正在处理的连锁的信息。
此函数根据传入的参数个数按顺序返回相应数量的返回值。参数可以是:
CHAININFO_CHAIN_COUNT 连锁序号
CHAININFO_TRIGGERING_EFFECT 连锁的效果
CHAININFO_TRIGGERING_PLAYER 连锁的玩家
CHAININFO_TRIGGERING_CONTROLER 连锁发生位置所属玩家
CHAININFO_TRIGGERING_LOCATION 连锁发生位置
CHAININFO_TRIGGERING_SEQUENCE 连锁发生的位置的序号
CHAININFO_TARGET_CARDS 连锁的对象卡片组
CHAININFO_TARGET_PLAYER 连锁的对象玩家
CHAININFO_TARGET_PARAM 连锁的对象参数
CHAININFO_DISABLE_REASON 连锁被无效的原因效果
CHAININFO_DISABLE_PLAYER 连锁被无效的原因玩家
CHAININFO_CHAIN_ID 连锁的唯一标识
举例:
Duel.GetChainInfo(0,CHAININFO_TRIGGERING_LOCATION,CHAININFO_TARGET_CARDS)
将会返回当前连锁发生的位置和对象卡。
●integer Duel.GetCurrentPhase()
返回当前的阶段
●void Duel.SkipPhase
(integer player, integer phase, integer reset_flag, integer reset_count)
跳过玩家player的phase阶段,并在特定的阶段后reset。reset参数和效果相同。
●boolean Duel.IsDamageCalculated()
用于在伤害阶段检查是否已经计算了战斗伤害。
●Card Duel.GetAttacker()
返回此次战斗攻击的卡
●Card Duel.GetAttackTarget()
返回此次战斗被攻击的卡。如果返回nil表示是直接攻击。
●void Duel.DisableAttack()
使本次攻击无效
●void Duel.ChainAttack()
使攻击卡再进行一次连续攻击(开辟,破灭的女王)
●void Duel.Readjust()
刷新场上的卡的信息。非特定情况或者不清楚原理请勿使用此函数以免形成死循环。
●Group Duel.GetFieldGroup(integer player, integer s, integer o)
返回指定位置的卡。s指对玩家player来说的己方的位置,
o指对玩家player来说的对方的位置。下面提到的指定位置均为此意。
比如Duel.GetFieldGroup(0,LOCATION_GRAVE,LOCATION_MZONE)
返回玩家1墓地和玩家2的怪兽区的所有卡
●integer Duel.GetFieldGroupCount(integer player, integer s, integer o)
同上,返回值变成卡的数量
●Group Duel.GetDecktopGroup(integer player, integer count)
返回玩家player的卡组最上方的count张卡
●Group Duel.GetMatchingGroup
(function f, integer player, integer s, integer o, Card ex, ...)
过滤函数,返回指定位置满足过滤条件f并且不等于ex的卡。
第6个参数开始为额外参数。
●integer Duel.GetMatchingGroupCount
(function f, integer player, integer s, integer o, Card ex, ...)
同上,返回值变成符合的卡的数量。
●Card Duel.GetFirstMatchingCard
(function f, integer player, integer s, integer o, Card ex, ...)
过滤函数,返回指定位置满足过滤条件f并且不等于ex的第一张卡。
第6个参数开始为额外参数。
●boolean Duel.IsExistingMatchingCard
(function f, integer player, integer s, integer o, integer count, Card ex, ...)
过滤函数,检查指定位置是否存在至少count张满足过滤条件f并且不等于ex的卡。
第7个参数开始为额外参数。
●Group Duel.SelectMatchingCard
(integer sel_player, function f, integer player,
integer s, integer o, integer min, integer max, Card ex, ...)
过滤函数,让玩家sel_player选择指定位置满足过滤条件f并且不等于ex的min-max张卡。
第9个参数开始为额外参数。
●Group Duel.GetReleaseGroup(integer player)
返回玩家player可解放(非上级召唤用)的卡片组
●integer Duel.GetReleaseGroupCount(integer player)
返回玩家player可解放(非上级召唤用)的卡片数量
●boolean Duel.ChecktReleaseGroup
(integer player, function f, integer count, Card ex, ...)
过滤函数,检查玩家player是否存在至少count张不等于ex的满足条件f的可解放的卡
●Group Duel.SelectReleaseGroup
(integer player, function f, integer min, integer max, Card ex, ...)
过滤函数,让玩家player选择min-max张不等于ex的满足条件f的可解放的卡并返回
●Group Duel.GetTributeGroup(Card c)
返回用于通常召唤c可解放(上级召唤用)的卡片组
●integer Duel.GetTributeCount(Card c)
返回用于通常召唤c的祭品数量。
此数量不一定等于上一个函数的返回值中的卡片数量。
因为某些卡可以作为两个祭品来使用。
●Group Duel.SelectTribute(integer player, Card c, integer min, integer max)
让玩家player选择用于通常召唤c的min-max个祭品。
●integer Duel.GetTargetCount
(function f, integer player, integer s, integer o, Card ex, ...)
基本同Duel.GetMatchingGroupCount,
不同之处在于需要追加判定卡片是否能成为当前正在处理的效果的对象。
●boolean Duel.IsExistingTarget
(function f, integer player, integer s, integer o, integer count, Card ex, ...)
过滤函数,检查指定
位置是否存在至少count张满足过滤条件f并且不等于ex
并且可以成为当前正在处理的效果的对象的卡。
第7个参数开始为额外参数。
●Group Duel.SelectTarget(
integer sel_player, function f, integer player,
integer s, integer o, integer min, integer max,Card ex, ...)
过滤函数,让玩家sel_player选择指定
位置满足过滤条件f并且不等于ex
并且可以成为当前正在处理的效果的对象的min-max张卡。
第9个参数开始为额外参数。
此函数会同时酱当前正在处理的连锁的对象设置成选择的卡
●Group Duel.SelectFusionMaterial(integer player, Card c, Group g)
让玩家player从g中选择一组满足c的融合素材的卡
●void Duel.SetFusionMaterial(Group g)
设置g为需要使用的融合素材
●void Duel.SetSynchroMaterial(Group g)
设置g为需要使用的同调素材
●Group Duel.SelectSynchroMaterial
(integer player, Card c, function f1, function f2, integer min)
让玩家选择用于同调c需要的满足条件的数量至少是min的一组素材。
f1是调整需要满足的过滤条件。f2是调整以外的部分需要满足的过滤条件。
●boolean Duel.CheckSynchroMaterial
(Card c, function f1, function f2, integer min)
检查是否存在一组满足条件的卡作为同调召唤c的素材。f1,f2,min同上。
●Group Duel.SelectTunerMaterial
(integer player, Card c, Card tuner, function f1, function f2, integer min)
让玩家选择用于同调c需要的满足条件的以tuner作为调整的数量至少是min的一组素材。
f1是调整需要满足的过滤条件。f2是调整以外的部分需要满足的过滤条件。
●boolean Duel.CheckTunerMaterial
(Card c, Card tuner, function f1, function f2, integer min)
检查以tuner作为调整是否存在一组满足条件的卡作为同调召唤c的素材。f1,f2,min同上。
●Group Duel.GetRitualMaterial(integer player)
返回玩家player可用的用于仪式召唤素材的卡片组。
包含手上,场上可解放的以及墓地的仪式魔人等卡。
●void Duel.ReleaseRitualMaterial(Group g)
解放仪式用的素材g。如果是墓地的仪式魔人等卡则除外。
●void Duel.SetTargetCard(Group g)
把当前正在处理的连锁的对象设置成g。
注,这里的对象指的的广义的对象,包括不取对象的效果可能要处理的对象。
●void Duel.SetTargetPlayer(integer player)
把当前正在处理的连锁的对象玩家设置成player。
●void Duel.SetTargetParam(integer param)
把当前正在处理的连锁的对象参数设置成param。
●void Duel.SetOperationInfo(integer chainc, integer category,
Card|Group targets, integer count, integer target_player, integer target_param)
设置当前处理的连锁的操作信息。此操作信息包含了效果处理中确定要处理的效果分类。
比如潜行狙击手需要设置CATEGORY_DICE,但是不能设置CATEGORY_DESTROY,因为不确定。
对于破坏效果,targets需要设置成发动时可能成为连锁的影响对象的卡,
并设置count为发动时确定的要处理的卡的数量。
比如黑洞发动时,targets需要设定为场上的所有怪物,count设置成场上的怪的数量。
对于CATEGORY_SPECIAL_SUMMON,CATEGORY_TOHAND,CATEGORY_TODECK等分类,
如果取对象则设置targets为对象,count为对象的数量;
如果不取对象则设置targets为nil,count为预计要处理的卡的数量,
并设置target_param为预计要处理的卡的位置。
例如增援:SetOperationInfo(0,CATEGORY_TOHAND,nil,1,0,LOCATION_DECK)。
操作信息用于很多效果的发动的检测,例如星尘龙,王家沉眠之谷等。
●... Duel.GetOperationInfo(integer chainc, integer category)
返回连锁chainc的category分类的操作信息。返回值为5个,
第一个返回值是false的话表示不存在该分类。后4个返回值对应上一个函数的后4个参数。
●integer Duel.GetOperationCount(integer chainc)
返回连锁chainc包含的操作分类的数量
●Group Duel.GetExceedMaterial(Card c)
返回c的超量素材
●void Duel.Overlay(Card c, Card|Group ocard)
把ocard作为c的叠放卡叠放
●Group Duel.GetOverlayGroup(integer player, integer s, integer o)
返回指定位置的所有叠放的卡
●Integer Duel.GetOverlayCount(integer player, integer s, integer o)
返回指定位置的所有叠放的卡的数量
●void Duel.RemoveOverlayCard(integer player, integer s,
integer o, integer min, integer max, integer reason)
以reason原因移除指定位置的min-max张叠放卡
●void Duel.Hint(integer player, integer desc)
给玩家发送内置消息提示
●boolean Duel.SelectEffectYesNo(integer player, integer code)
让玩家选择是否发动卡的效果
●boolean Duel.SelectYesNo(integer player, integer desc)
让玩家选择是或否
●integer Duel.SelectOption(integer player, ...)
让玩家选择选项。从第二个参数开始,每一个参数代表一条选项。
返回选择的选项的序号。
●integer Duel.SelectDisableField
(integer player, integer count, integer s, integer o, integer filter)
让玩家player选择指定位置的count个位置不能使用。
●integer Duel.AnnounceRace(integer player, integer count, integer available)
让玩家player从可选的种族中宣言count个种族。available是所有可选种族的组合值。
●integer Duel.AnnounceAttribute(
integer player, integer count, integer available)
让玩家player从可选的属性中宣言count个属性。available是所有可选属性的组合值。
●integer Duel.AnnounceCard(integer player)
让玩家player宣言一个卡片代号。
●integer Duel.AnnounceType(integer player)
让玩家player宣言一个卡片类型。
●integer Duel.AnnounceNumber(integer player, ...)
让玩家player宣言一个数字。从第二个参数开始,每一个参数代表一个可宣言的数字。
返回选择的选项的序号。
●integer Duel.AnnounceCoin(integer player)
让玩家player宣言硬币的正反面。
●... Duel.TossCoin(integer player, integer count)
让玩家player投count次硬币。返回值为count个结果。结果是0或者1.
●... Duel.TossDice(integer player, integer count)
让玩家player投count次骰子。返回值为count个结果。结果是1-6.
●void Duel.SetCoinResult( ... )
强行修改投硬币的结果。此函数用于永续的EVENT_TOSS_COIN事件中
●void Duel.SetDiceResult( ... )
强行修改投骰子的结果。此函数用于永续的EVENT_TOSS_DICE事件中
●boolean Duel.IsPlayerAffectByEffect(integer player, integer code)
检查玩家player是否受特性效果的影响
●boolean Duel.IsPlayerCanDraw(integer player)
检查玩家player是否可以效果抽卡
●boolean Duel.IsPlayerCanDiscardDeck(integer player)
检查玩家player是否可以把卡组顶端的卡送去墓地
●boolean Duel.IsPlayerCanDiscardDeckAdCost(integer player, int count)
检查玩家player是否可以把卡组顶端的卡送去墓地作为cost。
当卡组没有足够数量的卡,
或者当卡组中的卡受到送墓转移效果的影响时(如大宇宙,次元裂缝,即使不是全部)
此函数会返回false
●boolean Duel.IsPlayerCanSummon(integer player, integer sumtype, Card c)
检查玩家player是否可以以sumtype方式通常召唤c。
仅当玩家收到“不能上级召唤”等效果的影响时返回false。
●boolean Duel.IsPlayerCanFlipSummon(integer player, Card c)
检查玩家player是否可以反转召唤c。
●boolean Duel.IsPlayerCanSpecialSummonMonster(
integer player, integet code, integer setcode,
integer attack, integer defence integer level,
integer race, integer attribute, [integer pos=POS_FACEUP,
integer target_player=player])
检查玩家player是否可以以pos的表示形式特殊召唤特定属性值的怪物到target_player场上。
此函数通常用于判定是否可以特招token和陷阱怪物。
●boolean Duel.IsPlayerCanRelease(integer player, Card c)
检查玩家是否能解放c
●boolean Duel.IsPlayerCanRemove(integer player, Card c)
检查玩家是否能除外c
●boolean Duel.IsPlayerCanSendtoHand(integer player, Card c)
检查玩家是否能把c送去手牌
●boolean Duel.IsPlayerCanSendtoGrave(integer player, Card c)
检查玩家是否能把c送去墓地
●boolean Duel.IsPlayerCanSendtoDeck(integer player, Card c)
检查玩家是否能把c送去卡组
●boolean Duel.IsChainInactivatable(integer chainc)
检查连锁chainc的发动是否可以被无效化
●boolean Duel.IsChainDisablable(integer chainc)
检查连锁chainc的效果是否可以被无效化
●boolean Duel.CheckChainTarget(integer chainc, Card c)
检查c是否是连锁chainc的正确的对象
●boolean Duel.CheckChainUniqueness()
检查当前连锁中是否存在同名卡的发动。true表示无同名卡。
●boolean Duel.SwapDeckAndGrave(integer player)
现世与冥界的逆转专用。把玩家player的卡组和墓地交换
●boolean Duel.CheckSummonActivity(integer player)
检查玩家player本回合有没有进行过召唤的行为。
召唤被无效视作进行过召唤行为。
●boolean Duel.CheckNormalSummonActivity(integer player)
检查玩家player本回合有没有进行过通常召唤的行为。包括召唤和set
●boolean Duel.CheckFlipSummonActivity(integer player)
检查玩家player本回合有没有进行过反转召唤的行为。
●boolean Duel.CheckFlipSummonActivity(integer player)
检查玩家player本回合有没有进行过特殊召唤的行为。
特殊召唤的行为包括:
进行了入连锁和不入连锁的特殊召唤;
发动了确定要特殊召唤的效果但是效果被无效
不包括:发动了确定要特殊召唤的效果但是发动被无效
●boolean Duel.CheckAttackActivity(integer player)
检查玩家player本回合有没有进行过攻击。
\ No newline at end of file
--Locations 区域
LOCATION_DECK =0x01 --卡组
LOCATION_HAND =0x02 --手牌
LOCATION_MZONE =0x04 --怪兽区
LOCATION_SZONE =0x08 --魔陷区
LOCATION_GRAVE =0x10 --墓地
LOCATION_REMOVED =0x20 --除外区
LOCATION_EXTRA =0x40 --额外
LOCATION_OVERLAY =0x80 --超量素材
LOCATION_ONFIELD =0x0c --场上(怪兽+魔陷)
LOCATION_DECKBOT =0x10001 --卡组底部
LOCATION_DECKSHF =0x20001 --卡组顶部
--Locations (for SetRange)
LOCATION_FZONE =0x100 --场地区
LOCATION_PZONE =0x200 --摇摆区
--Positions 表示形式
POS_FACEUP_ATTACK =0x1 --表侧攻击
POS_FACEDOWN_ATTACK =0x2 --里侧攻击
POS_FACEUP_DEFENCE =0x4 --表侧守备
POS_FACEDOWN_DEFENCE =0x8 --里侧守备
POS_FACEUP =0x5 --正面表示
POS_FACEDOWN =0xa --背面表示
POS_ATTACK =0x3 --攻击表示
POS_DEFENCE =0xc --守备表示
NO_FLIP_EFFECT =0x10000--不发动反转效果
--Types 卡片类型
TYPE_MONSTER =0x1 --怪兽卡
TYPE_SPELL =0x2 --魔法卡
TYPE_TRAP =0x4 --陷阱卡
TYPE_NORMAL =0x10 --通常
TYPE_EFFECT =0x20 --效果
TYPE_FUSION =0x40 --融合
TYPE_RITUAL =0x80 --仪式
TYPE_TRAPMONSTER =0x100 --陷阱怪兽
TYPE_SPIRIT =0x200 --灵魂
TYPE_UNION =0x400 --同盟
TYPE_DUAL =0x800 --二重
TYPE_TUNER =0x1000 --调整
TYPE_SYNCHRO =0x2000 --同调
TYPE_TOKEN =0x4000 --衍生物
TYPE_QUICKPLAY =0x10000 --速攻
TYPE_CONTINUOUS =0x20000 --永续
TYPE_EQUIP =0x40000 --装备
TYPE_FIELD =0x80000 --场地
TYPE_COUNTER =0x100000 --反击
TYPE_FLIP =0x200000 --翻转
TYPE_TOON =0x400000 --卡通
TYPE_XYZ =0x800000 --超量
TYPE_PENDULUM =0x1000000 --摇摆
--Attributes 属性
ATTRIBUTE_EARTH =0x01 --地
ATTRIBUTE_WATER =0x02 --水
ATTRIBUTE_FIRE =0x04 --炎
ATTRIBUTE_WIND =0x08 --风
ATTRIBUTE_LIGHT =0x10 --光
ATTRIBUTE_DARK =0x20 --暗
ATTRIBUTE_DEVINE =0x40 --神
--Races 种族
RACE_ALL =0xffffff --全种族
RACE_WARRIOR =0x1 --战士
RACE_SPELLCASTER =0x2 --魔法师
RACE_FAIRY =0x4 --天使
RACE_FIEND =0x8 --恶魔
RACE_ZOMBIE =0x10 --不死
RACE_MACHINE =0x20 --机械
RACE_AQUA =0x40 --水
RACE_PYRO =0x80 --炎
RACE_ROCK =0x100 --岩石
RACE_WINDBEAST =0x200 --鸟兽
RACE_PLANT =0x400 --植物
RACE_INSECT =0x800 --昆虫
RACE_THUNDER =0x1000 --雷
RACE_DRAGON =0x2000 --龙
RACE_BEAST =0x4000 --兽
RACE_BEASTWARRIOR =0x8000 --兽战士
RACE_DINOSAUR =0x10000 --恐龙
RACE_FISH =0x20000 --鱼
RACE_SEASERPENT =0x40000 --海龙
RACE_REPTILE =0x80000 --爬虫
RACE_PSYCHO =0x100000 --念动力
RACE_DEVINE =0x200000 --幻神兽
RACE_CREATORGOD =0x400000 --创造神
RACE_WYRM =0x800000 --幻龙
--Reason 卡片到当前位置的原因
REASON_DESTROY =0x1 --破坏
REASON_RELEASE =0x2 --解放
REASON_TEMPORARY =0x4 --暂时
REASON_MATERIAL =0x8 --作为融合/同调/超量等的素材
REASON_SUMMON =0x10 --召唤
REASON_BATTLE =0x20 --战斗破坏
REASON_EFFECT =0x40 --效果
REASON_COST =0x80 --COST
REASON_ADJUST =0x100 --调整(御前试合)
REASON_LOST_TARGET =0x200 --失去效果对象
REASON_RULE =0x400 --规则
REASON_SPSUMMON =0x800 --特殊召唤
REASON_DISSUMMON =0x1000 --召唤失败
REASON_FLIP =0x2000 --翻转
REASON_DISCARD =0x4000 --丢弃
REASON_RDAMAGE =0x8000 --基本分伤害
REASON_RRECOVER =0x10000 --基本分恢复
REASON_RETURN =0x20000 --回收
REASON_FUSION =0x40000 --融合
REASON_SYNCHRO =0x80000 --同调
REASON_RITUAL =0x100000 --仪式
REASON_XYZ =0x200000 --超量
REASON_REPLACE =0x1000000 --代替
REASON_DRAW =0x2000000 --抽卡
REASON_REDIRECT =0x4000000 --改变去向(大宇宙,带菌等)
REASON_REVEAL =0x8000000 --翻开卡组(森罗)
--Summon Type --召唤类型
SUMMON_TYPE_NORMAL =0x10000000 --通常召唤
SUMMON_TYPE_ADVANCE =0x11000000 --上级(祭品)召唤
SUMMON_TYPE_DUAL =0x12000000 --再度召唤(二重)
SUMMON_TYPE_FLIP =0x20000000 --翻转召唤
SUMMON_TYPE_SPECIAL =0x40000000 --特殊召唤
SUMMON_TYPE_FUSION =0x43000000 --融合召唤
SUMMON_TYPE_RITUAL =0x45000000 --仪式召唤
SUMMON_TYPE_SYNCHRO =0x46000000 --同调召唤
SUMMON_TYPE_XYZ =0x49000000 --超量召唤
SUMMON_TYPE_PENDULUM =0x4a000000 --摇摆召唤
--Status --卡片当前状态
STATUS_DISABLED =0x0001 --效果被无效
STATUS_TO_ENABLE =0x0002 --将变成有效
STATUS_TO_DISABLE =0x0004 --将变成无效
STATUS_PROC_COMPLETE =0x0008 --完成正规召唤(解除苏生限制)
STATUS_SET_TURN =0x0010 --覆盖
STATUS_FLIP_SUMMONED =0x0020 --翻转
STATUS_REVIVE_LIMIT =0x0040 --未解除苏生限制
STATUS_ATTACKED =0x0080 --攻击过
STATUS_FORM_CHANGED =0x0100 --改变过表示形式
STATUS_SUMMONING =0x0200 --召唤中
STATUS_EFFECT_ENABLED =0x0400 --效果有效
STATUS_SUMMON_TURN =0x0800 --在本回合召唤
STATUS_DESTROY_CONFIRMED =0x1000 --破坏确定
STATUS_LEAVE_CONFIRMED =0x2000 --离开确定
STATUS_BATTLE_DESTROYED =0x4000 --战斗破坏确定
STATUS_COPYING_EFFECT =0x8000 --复制效果
STATUS_CHAINING =0x10000 --进入连锁
STATUS_SUMMON_DISABLED =0x20000 --召唤无效
STATUS_ACTIVATE_DISABLED =0x40000 --发动无效
STATUS_UNSUMMONABLE_CARD =0x80000 --不能通常召唤
STATUS_UNION =0x100000 --同盟
STATUS_ATTACK_CANCELED =0x200000 --攻击取消(卷回?)
STATUS_INITIALIZING =0x400000 --初始化..
STATUS_ACTIVATED =0x800000 --效果已发动
STATUS_JUST_POS =0x1000000 --
STATUS_CONTINUOUS_POS =0x2000000 --连续变更表示形式?
STATUS_IS_PUBLIC =0x4000000 --公开展示
STATUS_ACT_FROM_HAND =0x8000000 --在手牌发动
--Assume
ASSUME_CODE =1
ASSUME_TYPE =2
ASSUME_LEVEL =3
ASSUME_RANK =4
ASSUME_ATTRIBUTE =5
ASSUME_RACE =6
ASSUME_ATTACK =7
ASSUME_DEFENCE =8
--Counter --指示物
COUNTER_NEED_PERMIT =0x1000 --某指示物数量上限
COUNTER_NEED_ENABLE =0x2000 --可以放置某指示物
--Phase --阶段
PHASE_DRAW =0x01 --抽卡阶段
PHASE_STANDBY =0x02 --准备阶段
PHASE_MAIN1 =0x04 --主要阶段1
PHASE_BATTLE =0x08 --战斗阶段
PHASE_DAMAGE =0x10 --伤害计算前
PHASE_DAMAGE_CAL =0x20 --伤害计算时
PHASE_MAIN2 =0x40 --主要阶段2
PHASE_END =0x80 --结束阶段
--Player --玩家
PLAYER_NONE =2 --2个玩家都不是
PLAYER_ALL =3 --2个玩家都是
--Chain info --连锁信息
CHAININFO_CHAIN_COUNT =0x01 --连锁数
CHAININFO_TRIGGERING_EFFECT =0x02 --连锁的效果
CHAININFO_TRIGGERING_PLAYER =0x04 --连锁的玩家
CHAININFO_TRIGGERING_CONTROLER =0x08 --连锁的卡的控制者
CHAININFO_TRIGGERING_LOCATION =0x10 --连锁的位置
CHAININFO_TRIGGERING_SEQUENCE =0x20 --连锁的位置的编号(指怪兽和魔陷区的格子)
CHAININFO_TARGET_CARDS =0x40 --连锁的效果的对象(以下3个需要在target函数里设置)
CHAININFO_TARGET_PLAYER =0x80 --连锁的效果的对象(玩家)
CHAININFO_TARGET_PARAM =0x100 --连锁的效果的参数值
CHAININFO_DISABLE_REASON =0x200 --无效的原因
CHAININFO_DISABLE_PLAYER =0x400 --无效的玩家
CHAININFO_CHAIN_ID =0x800 --连锁ID
CHAININFO_TYPE =0x1000 --连锁类型
CHAININFO_EXTTYPE =0x2000 --连锁额外类型
--========== Reset ========== --重置条件(注意:重置条件可以多个相加,例如0x000c0000=0x00040000+0x00080000=RESET_TOGRAVE+RESET_REMOVE)
RESET_DRAW =PHASE_DRAW --抽卡阶段重置
RESET_STANDBY =PHASE_STANDBY --准备阶段重置
RESET_MAIN1 =PHASE_MAIN1 --主要阶段1重置
RESET_BATTLE =PHASE_BATTLE --战斗阶段重置
RESET_DAMAGE =PHASE_DAMAGE --伤害计算前重置
RESET_DAMAGE_CAL =PHASE_DAMAGE_CAL --伤害计算时重置
RESET_MAIN2 =PHASE_MAIN2 --主要阶段2重置
RESET_END =PHASE_END --结束阶段重置
RESET_SELF_TURN =0x0100 --自己回合结束重置
RESET_OPPO_TURN =0x0200 --对方回合结束重置
RESET_PHASE =0x0400 --阶段结束重置(一般和上面那些阶段配合使用
RESET_CHAIN =0x0800 --连锁结束重置
RESET_EVENT =0x1000 --不明(一般和下面这些事件配合使用
RESET_CARD =0x2000
RESET_CODE =0x4000 --卡名改变重置
RESET_COPY =0x8000 --复制效果重置
RESET_DISABLE =0x00010000 --效果无效重置
RESET_TURN_SET =0x00020000 --变里侧重置
RESET_TOGRAVE =0x00040000 --去墓地重置
RESET_REMOVE =0x00080000 --除外重置
RESET_TEMP_REMOVE =0x00100000 --暂时除外重置
RESET_TOHAND =0x00200000 --回手牌或加入手牌重置
RESET_TODECK =0x00400000 --回卡组重置
RESET_LEAVE =0x00800000 --从场上离开重置
RESET_TOFIELD =0x01000000 --到场上重置
RESET_CONTROL =0x02000000 --控制器变更重置
RESET_OVERLAY =0x04000000 --超量叠放重置
--========== Types ========== --效果类型(定义效果触发类型,和codes一起使用)
EFFECT_TYPE_SINGLE =0x0001 --自己状态变化时触发
EFFECT_TYPE_FIELD =0x0002 --场上所有卡状态变化时触发
EFFECT_TYPE_EQUIP =0x0004 --装备效果
EFFECT_TYPE_ACTIONS =0x0008 --怪兽效果发动(对峙的G)
EFFECT_TYPE_ACTIVATE =0x0010 --魔陷发动
EFFECT_TYPE_FLIP =0x0020 --翻转效果
EFFECT_TYPE_IGNITION =0x0040 --起动效果
EFFECT_TYPE_TRIGGER_O =0x0080 --诱发选发效果
EFFECT_TYPE_QUICK_O =0x0100 --诱发即时效果
EFFECT_TYPE_TRIGGER_F =0x0200 --诱发必发效果
EFFECT_TYPE_QUICK_F =0x0400 --诱发即时必发效果(熊猫龙等)
EFFECT_TYPE_CONTINUOUS =0x0800 --不入连锁的诱发效果
--========== Flags ========== --效果的特殊性质
EFFECT_FLAG_INITIAL =0x0001 --可以发动的
EFFECT_FLAG_FUNC_VALUE =0x0002 --
EFFECT_FLAG_COUNT_LIMIT =0x0004 --
EFFECT_FLAG_FIELD_ONLY =0x0008 --场上只有1只
EFFECT_FLAG_CARD_TARGET =0x0010 --取对象效果
EFFECT_FLAG_IGNORE_RANGE =0x0020 --使用限制?(禁止令 大宇宙 王宫的铁壁)
EFFECT_FLAG_ABSOLUTE_TARGET =0x0040 --
EFFECT_FLAG_IGNORE_IMMUNE =0x0080 --无视效果免疫
EFFECT_FLAG_SET_AVAILABLE =0x0100 --不能发动?
EFFECT_FLAG_MULTIACT_HAND =0x0200 --手牌有多张可以同时诱发(蔷薇妖精等)
EFFECT_FLAG_CANNOT_DISABLE =0x0400 --不会被无效
EFFECT_FLAG_PLAYER_TARGET =0x0800 --以玩家为对象
EFFECT_FLAG_BOTH_SIDE =0x1000 --双方都能使用(部分场地,弹压)
EFFECT_FLAG_COPY_INHERIT =0x2000 --残留?持续?效果
EFFECT_FLAG_DAMAGE_STEP =0x4000 --可以在伤害步骤发动
EFFECT_FLAG_DAMAGE_CAL =0x8000 --可以在伤害计算时发动
EFFECT_FLAG_DELAY =0x10000 --场合(不会被卡时点
EFFECT_FLAG_SINGLE_RANGE =0x20000 --只对自己有效
EFFECT_FLAG_UNCOPYABLE =0x40000 --不能复制(规则效果
EFFECT_FLAG_OATH =0x80000 --誓约效果
EFFECT_FLAG_SPSUM_PARAM =0x100000 --规则特殊召唤(熔岩魔神 光子杀戮者)
EFFECT_FLAG_REPEAT =0x200000 --发动被无效后可以再次发动
EFFECT_FLAG_NO_TURN_RESET =0x400000 --发条等“这张卡在场上只能发动一次”的效果
EFFECT_FLAG_EVENT_PLAYER =0x800000 --视为对方玩家的效果(动作?)
EFFECT_FLAG_OWNER_RELATE =0x1000000 --和效果持有者相关
EFFECT_FLAG_AVAILABLE_BD =0x2000000 --战斗伤害操作(纳祭之魔 地狱战士)
EFFECT_FLAG_CLIENT_HINT =0x4000000 --获得效果?
EFFECT_FLAG_CHAIN_UNIQUE =0x8000000 --同一组连锁只能发动一次
EFFECT_FLAG_NAGA =0x10000000 --神卡纳迦!
EFFECT_FLAG_COF =0x20000000 --邪恶的仪式
EFFECT_FLAG_CVAL_CHECK =0x40000000 --以卡为COST的诱发效果需要使用
--========== Codes ========== --对永续性效果表示效果类型 EFFECT开头,对诱发型效果表示触发效果的事件/时点 EVENT开头
EFFECT_IMMUNE_EFFECT =1 --效果免疫
EFFECT_DISABLE =2 --效果无效(一时无效?)
EFFECT_CANNOT_DISABLE =3 --效果不能无效
EFFECT_SET_CONTROL =4 --改变控制器
EFFECT_CANNOT_CHANGE_CONTROL =5 --不能改变控制权
EFFECT_CANNOT_ACTIVATE =6 --不能发动(魔法·陷阱)卡
EFFECT_CANNOT_TRIGGER =7 --不能发动效果
EFFECT_DISABLE_EFFECT =8 --效果无效
EFFECT_DISABLE_CHAIN =9 --不能连锁
EFFECT_DISABLE_TRAPMONSTER =10 --陷阱怪兽无效
EFFECT_CANNOT_INACTIVATE =12 --不能发动
EFFECT_CANNOT_DISEFFECT =13 --效果不能被无效(魔法·陷阱)
EFFECT_CANNOT_CHANGE_POSITION =14 --不能改变表示形式
EFFECT_TRAP_ACT_IN_HAND =15 --陷阱可以从手牌发动
EFFECT_TRAP_ACT_IN_SET_TURN =16 --陷阱可以在盖放的回合发动
EFFECT_REMAIN_FIELD =17 --X回合内留在场上(光之护封剑等)
EFFECT_MONSTER_SSET =18 --怪兽可以在魔陷区放置
EFFECT_CANNOT_SUMMON =20 --不能召唤怪兽
EFFECT_CANNOT_FLIP_SUMMON =21 --不能翻转召唤怪兽
EFFECT_CANNOT_SPECIAL_SUMMON =22 --不能特殊召唤怪兽
EFFECT_CANNOT_MSET =23 --不能覆盖怪兽
EFFECT_CANNOT_SSET =24 --不能覆盖魔陷
EFFECT_CANNOT_DRAW =25 --不能抽卡
EFFECT_CANNOT_DISABLE_SUMMON =26 --召唤不会无效
EFFECT_CANNOT_DISABLE_SPSUMMON =27 --特殊召唤不会无效
EFFECT_SET_SUMMON_COUNT_LIMIT =28 --限制每回合放置怪兽次数
EFFECT_EXTRA_SUMMON_COUNT =29 --增加召唤(通常召唤)次数
EFFECT_SPSUMMON_CONDITION =30 --特殊召唤条件
EFFECT_REVIVE_LIMIT =31 --苏生限制
EFFECT_SUMMON_PROC =32 --召唤规则
EFFECT_LIMIT_SUMMON_PROC =33 --召唤规则限制
EFFECT_SPSUMMON_PROC =34 --特殊召唤规则
EFFECT_EXTRA_SET_COUNT =35 --增加盖放(通常召唤)次数
EFFECT_SET_PROC =36 --放置(通常召唤)规则
EFFECT_LIMIT_SET_PROC =37 --放置(通常召唤)规则限制
EFFECT_DEVINE_LIGHT =38 --???(神圣光辉 魔术礼帽)
EFFECT_CANNOT_DISABLE_FLIP_SUMMON =39 --翻转召唤不会无效
EFFECT_INDESTRUCTABLE =40 --不会被破坏
EFFECT_INDESTRUCTABLE_EFFECT =41 --不会被效果破坏
EFFECT_INDESTRUCTABLE_BATTLE =42 --不会被战斗破坏
EFFECT_UNRELEASABLE_SUM =43 --不能做上级召唤的祭品
EFFECT_UNRELEASABLE_NONSUM =44 --不能做上级召唤以外的祭品
EFFECT_DESTROY_SUBSTITUTE =45 --代替破坏(别人破坏时牺牲自己
EFFECT_CANNOT_RELEASE =46 --不能进行解放行为
EFFECT_INDESTRUCTABLE_COUNT =47 --一回合几次不会被破坏
EFFECT_UNRELEASABLE_EFFECT =48 --不能被解放
EFFECT_DESTROY_REPLACE =50 --代替破坏(自己破坏时牺牲别人
EFFECT_RELEASE_REPLACE =51 --代替解放
EFFECT_SEND_REPLACE =52 --可以不送去XX而送去OO(宝玉 甜点城堡等)
EFFECT_CANNOT_DISCARD_HAND =55 --不能丢弃手牌
EFFECT_CANNOT_DISCARD_DECK =56 --不能把卡组上方的卡送去墓地
EFFECT_CANNOT_USE_AS_COST =57 --不能作为COST使用
EFFECT_CANNOT_PLACE_COUNTER =58 --不能使用的位置
EFFECT_LEAVE_FIELD_REDIRECT =60 --离场时重新指定去向
EFFECT_TO_HAND_REDIRECT =61 --回手牌时重新指定去向
EFFECT_TO_DECK_REDIRECT =62 --回卡组时重新指定去向
EFFECT_TO_GRAVE_REDIRECT =63 --去墓地时重新指定去向
EFFECT_REMOVE_REDIRECT =64 --除外时重新指定去向
EFFECT_CANNOT_TO_HAND =65 --不能加入手牌
EFFECT_CANNOT_TO_DECK =66 --不能回卡组
EFFECT_CANNOT_REMOVE =67 --不能除外
EFFECT_CANNOT_TO_GRAVE =68 --不能去墓地
EFFECT_CANNOT_TURN_SET =69 --不能变里侧
EFFECT_CANNOT_BE_BATTLE_TARGET =70 --不能成为攻击对象
EFFECT_CANNOT_BE_EFFECT_TARGET =71 --不能成为效果对象
EFFECT_IGNORE_BATTLE_TARGET =72 --不能成为攻击对象-鶸型(传说的渔人)
EFFECT_CANNOT_DIRECT_ATTACK =73 --不能直接攻击
EFFECT_DIRECT_ATTACK =74 --可以直接攻击
EFFECT_DUAL_STATUS =75 --二重状态
EFFECT_EQUIP_LIMIT =76 --装备对象限制
EFFECT_DUAL_SUMMONABLE =77 --可以再度召唤
EFFECT_REVERSE_DAMAGE =80 --伤害变回复
EFFECT_REVERSE_RECOVER =81 --回复变伤害
EFFECT_CHANGE_DAMAGE =82 --改变伤害数值
EFFECT_REFLECT_DAMAGE =83 --反射伤害
EFFECT_CANNOT_ATTACK =85 --不能攻击
EFFECT_CANNOT_ATTACK_ANNOUNCE =86 --不能攻击宣言
EFFECT_CANNOT_CHANGE_POS_E =87 --不会被卡的效果变成守备表示(攻击性云魔物)
EFFECT_ACTIVATE_COST =90 --发动代价(魔力之枷)
EFFECT_SUMMON_COST =91 --召唤代价
EFFECT_SPSUMMON_COST =92 --特殊召唤代价(暴君龙)
EFFECT_FLIPSUMMON_COST =93 --翻转召唤代价
EFFECT_MSET_COST =94 --怪兽放置代价
EFFECT_SSET_COST =95 --魔陷放置代价
EFFECT_ATTACK_COST =96 --攻击代价(霞之谷猎鹰)
EFFECT_UPDATE_ATTACK =100 --改变攻击力(攻击力增加/减少)
EFFECT_SET_ATTACK =101 --设置攻击力(攻击变成)
EFFECT_SET_ATTACK_FINAL =102 --设置最终攻击力(神之化身)
EFFECT_SET_BASE_ATTACK =103 --设置原本攻击力
EFFECT_UPDATE_DEFENCE =104 --改变防御力(参考攻击力,下同)
EFFECT_SET_DEFENCE =105 --设置防御力
EFFECT_SET_DEFENCE_FINAL =106 --设置最终攻击力
EFFECT_SET_BASE_DEFENCE =107 --设置原本攻击力
EFFECT_REVERSE_UPDATE =108 --倒置改变攻击力、防御力(天邪鬼)
EFFECT_SWAP_AD =109 --交换攻防
EFFECT_SWAP_BASE_AD =110 --交换原本攻防
EFFECT_ADD_CODE =113 --增加卡名
EFFECT_CHANGE_CODE =114 --改名卡名
EFFECT_ADD_TYPE =115 --增加卡片种类(types)
EFFECT_REMOVE_TYPE =116 --删除卡片种类
EFFECT_CHANGE_TYPE =117 --改变卡片种类
EFFECT_ADD_RACE =120 --增加种族
EFFECT_REMOVE_RACE =121 --删除种族
EFFECT_CHANGE_RACE =122 --改变种族
EFFECT_ADD_ATTRIBUTE =125 --增加属性
EFFECT_REMOVE_ATTRIBUTE =126 --删除属性
EFFECT_CHANGE_ATTRIBUTE =127 --改变属性
EFFECT_UPDATE_LEVEL =130 --改变等级
EFFECT_CHANGE_LEVEL =131 --设置等级
EFFECT_UPDATE_RANK =132 --改变阶级
EFFECT_CHANGE_RANK =133 --设置阶级
EFFECT_UPDATE_LSCALE =134 --改变左刻度
EFFECT_CHANGE_LSCALE =135 --设置左刻度
EFFECT_UPDATE_RSCALE =136 --改变右刻度
EFFECT_CHANGE_RSCALE =137 --设置右刻度
EFFECT_SET_POSITION =140 --改变表示形式
EFFECT_SELF_DESTROY =141 --自灭(罪系列等)
EFFECT_DOUBLE_TRIBUTE =150 --可以作为2个祭品
EFFECT_DECREASE_TRIBUTE =151 --减少祭品
EFFECT_DECREASE_TRIBUTE_SET =152 --减少放置怪兽的祭品
EFFECT_EXTRA_RELEASE =153 --代替解放(灵魂交错)
EFFECT_TRIBUTE_LIMIT =154 --祭品限制
EFFECT_EXTRA_RELEASE_SUM =155 --代替召唤解放(帝王的烈旋)
EFFECT_PUBLIC =160 --公开手牌
EFFECT_COUNTER_PERMIT =0x10000--允许放置指示物类型
EFFECT_COUNTER_LIMIT =0x20000--允许放置指示物数量
EFFECT_RCOUNTER_REPLACE =0x30000--代替取除(指示物?)
EFFECT_LPCOST_CHANGE =170 --改变生命值代价
EFFECT_LPCOST_REPLACE =171 --代替生命值代价
EFFECT_SKIP_DP =180 --跳过抽卡阶段
EFFECT_SKIP_SP =181 --跳过准备阶段
EFFECT_SKIP_M1 =182 --跳过主要阶段1
EFFECT_SKIP_BP =183 --跳过战斗阶段
EFFECT_SKIP_M2 =184 --跳过主要阶段2
EFFECT_CANNOT_BP =185 --不能进入战斗阶段
EFFECT_CANNOT_M2 =186 --不能进入主要阶段2
EFFECT_CANNOT_EP =187 --不能进入结束阶段
EFFECT_SKIP_TURN =188 --跳过整个回合
EFFECT_DEFENCE_ATTACK =190 --可以守备表示攻击
EFFECT_MUST_ATTACK =191 --必须攻击
EFFECT_FIRST_ATTACK =192 --必须第一个攻击
EFFECT_ATTACK_ALL =193 --可以攻击所有怪兽
EFFECT_EXTRA_ATTACK =194 --增加攻击次数
EFFECT_MUST_BE_ATTACKED =195 --必须攻击(那只怪兽)
EFFECT_AUTO_BE_ATTACKED =196 --只能攻击(那只怪兽)
EFFECT_ATTACK_DISABLED =197 --不能攻击
EFFECT_NO_BATTLE_DAMAGE =200 --不会给对方造成战斗伤害
EFFECT_AVOID_BATTLE_DAMAGE =201 --不会对自己造成战斗伤害
EFFECT_REFLECT_BATTLE_DAMAGE =202 --反弹战斗伤害
EFFECT_PIERCE =203 --贯穿伤害
EFFECT_BATTLE_DESTROY_REDIRECT =204 --战斗破坏时重新指定去向
EFFECT_BATTLE_DAMAGE_TO_EFFECT =205 --战斗伤害视为效果伤害
EFFECT_TOSS_COIN_REPLACE =220 --重新抛硬币
EFFECT_TOSS_DICE_REPLACE =221 --重新掷骰子
EFFECT_FUSION_MATERIAL =230 --可以当作仪式素材
EFFECT_CHAIN_MATERIAL =231 --可以当作融合素材
EFFECT_SYNCHRO_MATERIAL =232 --可以当作同调素材
EFFECT_XYZ_MATERIAL =233 --可以当作超量素材
EFFECT_FUSION_SUBSTITUTE =234 --代替融合素材
EFFECT_CANNOT_BE_FUSION_MATERIAL =235--不能做融合素材
EFFECT_CANNOT_BE_SYNCHRO_MATERIAL =236--不能做同调素材
EFFECT_SYNCHRO_MATERIAL_CUSTOM =237--同调素材限制
EFFECT_CANNOT_BE_XYZ_MATERIAL =238--不能做超量素材
EFFECT_SYNCHRO_LEVEL =240--做同调素材时的等级
EFFECT_RITUAL_LEVEL =241--做仪式祭品时的等级
EFFECT_XYZ_LEVEL =242--做超量素材时的等级
EFFECT_EXTRA_RITUAL_MATERIAL =243--在墓地当做仪式祭品
EFFECT_NONTUNER =244--同时当作调整以外的怪兽(幻影王 幽骑)
EFFECT_OVERLAY_REMOVE_REPLACE =245--代替去除超量素材
EFFECT_SCRAP_CHIMERA =246--废铁奇美拉
EFFECT_XMAT_COUNT_LIMIT =247--超量素材限制(光天使 天座)
EFFECT_SPSUM_EFFECT_ACTIVATED =250 --发动特殊召唤的效果(冥府的使者 格斯)
EFFECT_MATERIAL_CHECK =251 --检查素材
EFFECT_DISABLE_FIELD =260 --无效区域(扰乱王等)
EFFECT_USE_EXTRA_MZONE =261 --怪兽区域封锁
EFFECT_USE_EXTRA_SZONE =262 --魔法区域封锁
EFFECT_MAX_MZONE =263 --宇宙收缩
EFFECT_MAX_SZONE =264 --宇宙收缩
EFFECT_HAND_LIMIT =270 --手牌数量限制
EFFECT_DRAW_COUNT =271 --抽卡阶段的抽卡数
EFFECT_SPIRIT_DONOT_RETURN =280 --灵魂怪兽不返会手牌
EFFECT_SPIRIT_MAYNOT_RETURN =281 --灵魂怪兽可以不返回手牌
EFFECT_CHANGE_ENVIRONMENT =290 --改变场地
EFFECT_NECRO_VALLEY =291 --王家长眠之谷
EFFECT_FORBIDDEN =292 --禁止令
EFFECT_NECRO_VALLEY_IM =293 --不受「王家长眠之谷」的影响
EFFECT_REVERSE_DECK =294 --翻转卡组
EFFECT_REMOVE_BRAINWASHING =295 --洗脑解除
EFFECT_BP_TWICE =296 --2次战斗阶段
EFFECT_UNIQUE_CHECK =297 --
EFFECT_MATCH_KILL =300 --胜利龙
EFFECT_SYNCHRO_CHECK =310 --基因组斗士
EFFECT_QP_ACT_IN_NTPHAND =311 --对方回合从自己手卡发动(失乐的圣女)
EFFECT_MUST_BE_SMATERIAL =312 --同调素材必须
EFFECT_SPSUMMON_PROC_G =320 --P召唤规则
EFFECT_SUMMON_COUNT_LIMIT =330 --召唤次数限制
EFFECT_SPSUMMON_COUNT_LIMIT =331 --特殊召唤次数限制
EFFECT_FLIP_SUMMON_COUNT_LIMIT =332 --反转召唤次数限制
--下面是诱发效果的诱发事件、时点 (如果是TYPE_SINGLE则自己发生以下事件后触发,如果TYPE_FIELD则场上任何卡发生以下事件都触发)
EVENT_STARTUP =1000 --游戏开始时
EVENT_FLIP =1001 --翻转时
EVENT_FREE_CHAIN =1002 --自由时点(强脱等,还有昴星团等诱发即时效果)
EVENT_DESTROY =1010 --破坏时
EVENT_REMOVE =1011 --除外时
EVENT_TO_HAND =1012 --加入手牌时
EVENT_TO_DECK =1013 --回卡组时
EVENT_TO_GRAVE =1014 --进墓地时
EVENT_LEAVE_FIELD =1015 --离场时
EVENT_CHANGE_POS =1016 --表示形式变更时
EVENT_RELEASE =1017 --解放时
EVENT_DISCARD =1018 --丢弃手牌时
EVENT_LEAVE_FIELD_P =1019 --永久离场时
EVENT_CHAIN_SOLVING =1020 --连锁处理时
EVENT_CHAIN_ACTIVATING =1021 --连锁发动时
EVENT_CHAIN_SOLVED =1022 --连锁处理结束时
EVENT_CHAIN_ACTIVATED =1023 --连锁发动完时
EVENT_CHAIN_NEGATED =1024 --连锁被无效时(发动无效)
EVENT_CHAIN_DISABLED =1025 --连锁被无效时(效果无效)
EVENT_CHAIN_END =1026 --连锁结束时
EVENT_CHAINING =1027 --正在连锁
EVENT_BECOME_TARGET =1028 --成为效果对象时
EVENT_DESTROYED =1029 --破坏确定时
EVENT_ADJUST =1040 --调整(御前试合)
EVENT_SUMMON_SUCCESS =1100 --通常召唤成功时
EVENT_FLIP_SUMMON_SUCCESS =1101 --翻转召唤成功时
EVENT_SPSUMMON_SUCCESS =1102 --特殊召唤成功时
EVENT_SUMMON =1103 --召唤时(怪兽还没上场、神宣等时点)
EVENT_FLIP_SUMMON =1104 --翻转召唤时
EVENT_SPSUMMON =1105 --特殊召唤时
EVENT_MSET =1106 --放置怪兽时
EVENT_SSET =1107 --放置魔陷时
EVENT_BE_MATERIAL =1108 --作为融合/仪式同调/超量素材时
EVENT_BE_PRE_MATERIAL =1109 --将要作为融合/仪式同调/超量素材时
EVENT_DRAW =1110 --抽卡
EVENT_DAMAGE =1111 --造成战斗/效果伤害时
EVENT_RECOVER =1112 --回复生命值时
EVENT_PREDRAW =1113 --抽卡前
EVENT_CONTROL_CHANGED =1120 --控制权变更
EVENT_EQUIP =1121 --装备卡装备时
EVENT_ATTACK_ANNOUNCE =1130 --攻击宣言时
EVENT_BE_BATTLE_TARGET =1131 --被选为攻击对象时
EVENT_BATTLE_START =1132 --战斗阶段开始时
EVENT_BATTLE_CONFIRM =1133 --选完攻击对象时
EVENT_PRE_DAMAGE_CALCULATE =1134 --伤害计算前
EVENT_DAMAGE_CALCULATING =1135 --伤害计算时
EVENT_PRE_BATTLE_DAMAGE =1136 --即将产生战斗伤害
EVENT_BATTLE_END =1137 --战斗结束(开辟)
EVENT_BATTLED =1138 --伤害计算后(异女、同反转效果时点)
EVENT_BATTLE_DESTROYING =1139 --战斗破坏送去墓地时(BF-苍炎之修罗)
EVENT_BATTLE_DESTROYED =1140 --战斗破坏送去墓地时(杀人番茄等)
EVENT_DAMAGE_STEP_END =1141 --伤害步骤结束时
EVENT_ATTACK_DISABLED =1142 --攻击无效时(翻倍机会)
EVENT_BATTLE_DAMAGE =1143 --造成战斗伤害时
EVENT_TOSS_DICE =1150 --掷骰子时
EVENT_TOSS_COIN =1151 --抛硬币时
EVENT_TOSS_COIN_NEGATE =1152 --抛硬币被无效时
EVENT_TOSS_DICE_NEGATE =1153 --掷骰子被无效时
EVENT_LEVEL_UP =1200 --等级上升时
EVENT_PAY_LPCOST =1201 --支付生命值时
EVENT_DETACH_MATERIAL =1202 --去除超量素材时
EVENT_CONFIRM_DECKTOP =1203 --确认卡组最上方时
EVENT_CONFIRM_CARDS =1204 --确认卡时
EVENT_TURN_END =1210 --回合结束时
EVENT_PHASE =0x1000 --阶段结束时
EVENT_PHASE_START =0x2000 --阶段开始时
EVENT_ADD_COUNTER =0x10000--增加指示物时
EVENT_REMOVE_COUNTER =0x20000--去除指示物时
--Categorys 效果分类(表示这个效果将要发生什么事,OperationInfo设置了效果分类才能触发针对这一类型发动的卡,如破坏->星尘龙
CATEGORY_DESTROY =0x1 --破坏效果
CATEGORY_RELEASE =0x2 --解放效果
CATEGORY_REMOVE =0x4 --除外效果
CATEGORY_TOHAND =0x8 --加入手牌效果
CATEGORY_TODECK =0x10 --回卡组效果
CATEGORY_TOGRAVE =0x20 --送去墓地效果
CATEGORY_DECKDES =0x40 --卡组破坏效果
CATEGORY_HANDES =0x80 --手牌破坏效果
CATEGORY_SUMMON =0x100 --含召唤的效果
CATEGORY_SPECIAL_SUMMON =0x200 --含特殊召唤的效果
CATEGORY_TOKEN =0x400 --含衍生物效果
CATEGORY_FLIP =0x800 --含翻转效果
CATEGORY_POSITION =0x1000 --改变表示形式效果
CATEGORY_CONTROL =0x2000 --改变控制权效果
CATEGORY_DISABLE =0x4000 --使效果无效效果
CATEGORY_DISABLE_SUMMON =0x8000 --无效召唤效果
CATEGORY_DRAW =0x10000 --抽卡效果
CATEGORY_SEARCH =0x20000 --检索卡组效果
CATEGORY_EQUIP =0x40000 --装备效果
CATEGORY_DAMAGE =0x80000 --伤害效果
CATEGORY_RECOVER =0x100000 --回复效果
CATEGORY_ATKCHANGE =0x200000 --改变攻击效果
CATEGORY_DEFCHANGE =0x400000 --改变防御效果
CATEGORY_COUNTER =0x800000 --指示物效果
CATEGORY_COIN =0x1000000 --硬币效果
CATEGORY_DICE =0x2000000 --骰子效果
CATEGORY_LEAVE_GRAVE =0x4000000 --离开墓地效果
CATEGORY_LVCHANGE =0x8000000 --改变等级效果
CATEGORY_NEGATE =0x10000000 --使发动无效效果
--Hint
HINT_EVENT =1
HINT_MESSAGE =2
HINT_SELECTMSG =3
HINT_OPSELECTED =4
HINT_EFFECT =5
HINT_RACE =6
HINT_ATTRIB =7
HINT_CODE =8
HINT_NUMBER =9
HINT_CARD =10
--Card Hint
CHINT_TURN =1
CHINT_CARD =2
CHINT_RACE =3
CHINT_ATTRIBUTE =4
CHINT_NUMBER =5
CHINT_DESC =6
--Hint Message --提示消息,显示在窗口的上面
HINTMSG_RELEASE =500 --请选择要解放的卡
HINTMSG_DISCARD =501 --请选择要丢弃的手牌
HINTMSG_DESTROY =502 --请选择要破坏的卡
HINTMSG_REMOVE =503 --请选择要除外的卡
HINTMSG_TOGRAVE =504 --请选择要送去墓地的卡
HINTMSG_RTOHAND =505 --请选择要返回手牌的卡
HINTMSG_ATOHAND =506 --请选择要加入手牌的卡
HINTMSG_TODECK =507 --请选择要返回卡组的卡
HINTMSG_SUMMON =508 --请选择要召唤的卡
HINTMSG_SPSUMMON =509 --请选择要特殊召唤的卡
HINTMSG_SET =510 --请选择要盖放的卡
HINTMSG_FMATERIAL =511 --请选择融合召唤的素材
HINTMSG_SMATERIAL =512 --请选择同调召唤的素材
HINTMSG_XMATERIAL =513 --请选择超量召唤的素材
HINTMSG_FACEUP =514 --请选择表侧表示的卡
HINTMSG_FACEDOWN =515 --请选择里侧表示的卡
HINTMSG_ATTACK =516 --请选择攻击表示的怪兽
HINTMSG_DEFENCE =517 --请选择守备表示的怪兽
HINTMSG_EQUIP =518 --请选择要装备的卡
HINTMSG_REMOVEXYZ =519 --请选择要取除的超量素材
HINTMSG_CONTROL =520 --请选择要改变控制权的怪兽
HINTMSG_DESREPLACE =521 --请选择要代替破坏的卡
HINTMSG_FACEUPATTACK =522 --请选择表侧攻击表示的怪兽
HINTMSG_FACEUPDEFENCE =523 --请选择表侧守备表示的怪兽
HINTMSG_FACEDOWNATTACK =524 --请选择里侧攻击表示的怪兽
HINTMSG_FACEDOWNDEFENCE =525 --请选择里侧守备表示的怪兽
HINTMSG_CONFIRM =526 --请选择给对方确认的卡
HINTMSG_TOFIELD =527 --请选择要放置到场上的卡
HINTMSG_POSCHANGE =528 --请选择要改变表示形式的怪兽
HINTMSG_SELF =529 --请选择自己的卡
HINTMSG_OPPO =530 --请选择对方的卡
HINTMSG_EFFECT =550 --请选择要发动的效果
HINTMSG_TARGET =551 --请选择效果的对象
HINTMSG_COIN =552 --请选择硬币的正反面
HINTMSG_DICE =553 --请选择骰子的结果
HINTMSG_CARDTYPE =554 --请选择一个种类
--Timing --提示时点,可以给freechain卡片增加自动提示时点
TIMING_DRAW_PHASE =0x1 --抽卡阶段时点
TIMING_STANDBY_PHASE =0x2 --准备阶段时点
TIMING_MAIN_END =0x4 --主要阶段结束时点
TIMING_BATTLE_START =0x8 --战斗阶段开始时点
TIMING_BATTLE_END =0x10 --战斗阶段结束时点
TIMING_END_PHASE =0x20 --结束阶段时点
TIMING_SUMMON =0x40 --召唤时点
TIMING_SPSUMMON =0x80 --特殊召唤时点
TIMING_FLIPSUMMON =0x100 --翻转召唤时点
TIMING_MSET =0x200 --放置怪兽时点
TIMING_SSET =0x400 --放置魔陷时点
TIMING_POS_CHANGE =0x800 --表示形式变更时点
TIMING_ATTACK =0x1000 --攻击宣言时点
TIMING_DAMAGE_STEP =0x2000 --伤害步骤时点
TIMING_DAMAGE_CAL =0x4000 --伤害计算时点
TIMING_CHAIN_END =0x8000 --连锁结束时点
TIMING_DRAW =0x10000 --抽卡时点(不是抽卡阶段
TIMING_DAMAGE =0x20000 --造成伤害时点
TIMING_RECOVER =0x40000 --回复时点
TIMING_DESTROY =0x80000 --破坏时点
TIMING_REMOVE =0x100000 --除外时点
TIMING_TOHAND =0x200000 --加入手牌时点(检索、回收等)
TIMING_TODECK =0x400000 --回卡组时点
TIMING_TOGRAVE =0x800000 --进墓地时点
TIMING_BATTLE_PHASE =0x1000000 --战斗阶段时点
TIMING_EQUIP =0x2000000 --装备时点
--Global flag --特殊标记
GLOBALFLAG_DECK_REVERSE_CHECK =0x1 --卡组翻转标记
GLOBALFLAG_BRAINWASHING_CHECK =0x2 --洗脑解除标记
GLOBALFLAG_SCRAP_CHIMERA =0x4 --废铁奇美拉标记
GLOBALFLAG_DELAYED_QUICKEFFECT =0x8 --小丑和锁鸟标记
GLOBALFLAG_DETACH_EVENT =0x10 --超量素材被取除标记
GLOBALFLAG_MUST_BE_SMATERIAL =0x20 --必须作为同调素材(波动龙 声子龙)
GLOBALFLAG_SPSUMMON_COUNT =0x40 --特殊召唤次数标记
GLOBALFLAG_XMAT_COUNT_LIMIT =0x80 --超量素材数量限制标记(光天使 天座)
--
EFFECT_COUNT_CODE_OATH =0x10000000 --誓约使用次数
EFFECT_COUNT_CODE_DUEL =0x20000000 --决斗中使用次数
EFFECT_COUNT_CODE_SINGLE =0x1 --多个效果公共使用次数
--特殊选项
DUEL_TEST_MODE =0x01 --测试模式?坑了?
DUEL_ATTACK_FIRST_TURN =0x02 --第一回合可以攻击(用于残局
DUEL_NO_CHAIN_HINT =0x04 --不提示连锁
DUEL_ENABLE_PRIORITY =0x08 --启动优先权
DUEL_PSEUDO_SHUFFLE =0x10 --不洗牌
DUEL_TAG_MODE =0x20 --双打
DUEL_SIMPLE_AI =0x40 --AI
CodeEditForm->CodeEditForm 脚本编辑器
CodeEditForm->menuitem_file 文件(&F)
CodeEditForm->menuitem_open 打开
CodeEditForm->menuitem_save 保存
CodeEditForm->menuitem_saveas 另存为
CodeEditForm->menuitem_quit 退出
CodeEditForm->menuitem_setting 设置(&S)
CodeEditForm->menuitem_showmap 显示缩略图
CodeEditForm->menuitem_showinput 显示输入框
CodeEditForm->menuitem_help 帮助(&H)
CodeEditForm->menuitem_about 关于
\ No newline at end of file
...@@ -10,6 +10,7 @@ MainForm->menuitem_history History(&H) ...@@ -10,6 +10,7 @@ MainForm->menuitem_history History(&H)
MainForm->menuitem_quit Quit(&Q) MainForm->menuitem_quit Quit(&Q)
MainForm->menuitem_windows Windwos(&W) MainForm->menuitem_windows Windwos(&W)
MainForm->menuitem_dataeditor New DataEditor MainForm->menuitem_dataeditor New DataEditor
MainForm->menuitem_codeeditor New CodeEditor
MainForm->menuitem_closeall Close All MainForm->menuitem_closeall Close All
MainForm->menuitem_closeother Close Other MainForm->menuitem_closeother Close Other
MainForm->menuitem_close Close MainForm->menuitem_close Close
\ No newline at end of file
[DataEditorX]2.1.4.0[DataEditorX] [DataEditorX]2.2.0.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++,等。
...@@ -66,6 +66,12 @@ DataEditorX.exe.config ...@@ -66,6 +66,12 @@ DataEditorX.exe.config
描述不详细的bug,我修复不了。(都不知道是bug是什么) 描述不详细的bug,我修复不了。(都不知道是bug是什么)
★更新历史 ★更新历史
2.2.0.0
增加lua编辑器,支持关联lua文件
等待:
lua编辑器的文件菜单整合
常用函数模板
根据函数提示搜索
2.1.4.0 2.1.4.0
改善: 改善:
浏览和导入MSE图片库的图片 浏览和导入MSE图片库的图片
......
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