Commit 99d81638 authored by keyongyu's avatar keyongyu

2.4.2.5

link
win32
parent ad2c0d18
...@@ -129,10 +129,11 @@ private void InitializeComponent() ...@@ -129,10 +129,11 @@ private void InitializeComponent()
this.pl_cardtype = new DataEditorX.DFlowLayoutPanel(); this.pl_cardtype = new DataEditorX.DFlowLayoutPanel();
this.lb_scripttext = new DataEditorX.DListBox(); this.lb_scripttext = new DataEditorX.DListBox();
this.lv_cardlist = new DataEditorX.DListView(); this.lv_cardlist = new DataEditorX.DListView();
this.ch_cardcode = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.ch_cardcode = new System.Windows.Forms.ColumnHeader();
this.ch_cardname = ((System.Windows.Forms.ColumnHeader)(new System.Windows.Forms.ColumnHeader())); this.ch_cardname = new System.Windows.Forms.ColumnHeader();
this.lb_markers = new System.Windows.Forms.Label(); this.lb_markers = new System.Windows.Forms.Label();
this.pl_markers = new DataEditorX.DFlowLayoutPanel(); this.pl_markers = new DataEditorX.DFlowLayoutPanel();
this.tb_link = new System.Windows.Forms.TextBox();
this.mainMenu.SuspendLayout(); this.mainMenu.SuspendLayout();
this.SuspendLayout(); this.SuspendLayout();
// //
...@@ -480,7 +481,7 @@ private void InitializeComponent() ...@@ -480,7 +481,7 @@ private void InitializeComponent()
this.cb_cardattribute.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cb_cardattribute.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cb_cardattribute.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.cb_cardattribute.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cb_cardattribute.FormattingEnabled = true; this.cb_cardattribute.FormattingEnabled = true;
this.cb_cardattribute.Location = new System.Drawing.Point(400, 78); this.cb_cardattribute.Location = new System.Drawing.Point(403, 78);
this.cb_cardattribute.Name = "cb_cardattribute"; this.cb_cardattribute.Name = "cb_cardattribute";
this.cb_cardattribute.Size = new System.Drawing.Size(140, 20); this.cb_cardattribute.Size = new System.Drawing.Size(140, 20);
this.cb_cardattribute.TabIndex = 2; this.cb_cardattribute.TabIndex = 2;
...@@ -501,7 +502,7 @@ private void InitializeComponent() ...@@ -501,7 +502,7 @@ private void InitializeComponent()
this.cb_cardrule.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cb_cardrule.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cb_cardrule.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.cb_cardrule.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cb_cardrule.FormattingEnabled = true; this.cb_cardrule.FormattingEnabled = true;
this.cb_cardrule.Location = new System.Drawing.Point(400, 52); this.cb_cardrule.Location = new System.Drawing.Point(403, 52);
this.cb_cardrule.Name = "cb_cardrule"; this.cb_cardrule.Name = "cb_cardrule";
this.cb_cardrule.Size = new System.Drawing.Size(140, 20); this.cb_cardrule.Size = new System.Drawing.Size(140, 20);
this.cb_cardrule.TabIndex = 2; this.cb_cardrule.TabIndex = 2;
...@@ -512,7 +513,7 @@ private void InitializeComponent() ...@@ -512,7 +513,7 @@ private void InitializeComponent()
this.cb_cardlevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cb_cardlevel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cb_cardlevel.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.cb_cardlevel.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cb_cardlevel.FormattingEnabled = true; this.cb_cardlevel.FormattingEnabled = true;
this.cb_cardlevel.Location = new System.Drawing.Point(400, 105); this.cb_cardlevel.Location = new System.Drawing.Point(403, 105);
this.cb_cardlevel.Name = "cb_cardlevel"; this.cb_cardlevel.Name = "cb_cardlevel";
this.cb_cardlevel.Size = new System.Drawing.Size(140, 20); this.cb_cardlevel.Size = new System.Drawing.Size(140, 20);
this.cb_cardlevel.TabIndex = 2; this.cb_cardlevel.TabIndex = 2;
...@@ -524,7 +525,7 @@ private void InitializeComponent() ...@@ -524,7 +525,7 @@ private void InitializeComponent()
this.cb_cardrace.DropDownWidth = 107; this.cb_cardrace.DropDownWidth = 107;
this.cb_cardrace.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.cb_cardrace.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.cb_cardrace.FormattingEnabled = true; this.cb_cardrace.FormattingEnabled = true;
this.cb_cardrace.Location = new System.Drawing.Point(400, 130); this.cb_cardrace.Location = new System.Drawing.Point(403, 130);
this.cb_cardrace.Name = "cb_cardrace"; this.cb_cardrace.Name = "cb_cardrace";
this.cb_cardrace.Size = new System.Drawing.Size(140, 20); this.cb_cardrace.Size = new System.Drawing.Size(140, 20);
this.cb_cardrace.TabIndex = 2; this.cb_cardrace.TabIndex = 2;
...@@ -539,7 +540,7 @@ private void InitializeComponent() ...@@ -539,7 +540,7 @@ private void InitializeComponent()
this.cb_setname2.FormattingEnabled = true; this.cb_setname2.FormattingEnabled = true;
this.cb_setname2.IntegralHeight = false; this.cb_setname2.IntegralHeight = false;
this.cb_setname2.ItemHeight = 12; this.cb_setname2.ItemHeight = 12;
this.cb_setname2.Location = new System.Drawing.Point(401, 182); this.cb_setname2.Location = new System.Drawing.Point(404, 182);
this.cb_setname2.Name = "cb_setname2"; this.cb_setname2.Name = "cb_setname2";
this.cb_setname2.Size = new System.Drawing.Size(106, 20); this.cb_setname2.Size = new System.Drawing.Size(106, 20);
this.cb_setname2.TabIndex = 2; this.cb_setname2.TabIndex = 2;
...@@ -555,7 +556,7 @@ private void InitializeComponent() ...@@ -555,7 +556,7 @@ private void InitializeComponent()
this.cb_setname1.FormattingEnabled = true; this.cb_setname1.FormattingEnabled = true;
this.cb_setname1.IntegralHeight = false; this.cb_setname1.IntegralHeight = false;
this.cb_setname1.ItemHeight = 12; this.cb_setname1.ItemHeight = 12;
this.cb_setname1.Location = new System.Drawing.Point(401, 156); this.cb_setname1.Location = new System.Drawing.Point(404, 156);
this.cb_setname1.Name = "cb_setname1"; this.cb_setname1.Name = "cb_setname1";
this.cb_setname1.Size = new System.Drawing.Size(106, 20); this.cb_setname1.Size = new System.Drawing.Size(106, 20);
this.cb_setname1.TabIndex = 2; this.cb_setname1.TabIndex = 2;
...@@ -571,7 +572,7 @@ private void InitializeComponent() ...@@ -571,7 +572,7 @@ private void InitializeComponent()
this.cb_setname4.FormattingEnabled = true; this.cb_setname4.FormattingEnabled = true;
this.cb_setname4.IntegralHeight = false; this.cb_setname4.IntegralHeight = false;
this.cb_setname4.ItemHeight = 12; this.cb_setname4.ItemHeight = 12;
this.cb_setname4.Location = new System.Drawing.Point(401, 234); this.cb_setname4.Location = new System.Drawing.Point(404, 234);
this.cb_setname4.Name = "cb_setname4"; this.cb_setname4.Name = "cb_setname4";
this.cb_setname4.Size = new System.Drawing.Size(106, 20); this.cb_setname4.Size = new System.Drawing.Size(106, 20);
this.cb_setname4.TabIndex = 2; this.cb_setname4.TabIndex = 2;
...@@ -587,7 +588,7 @@ private void InitializeComponent() ...@@ -587,7 +588,7 @@ private void InitializeComponent()
this.cb_setname3.FormattingEnabled = true; this.cb_setname3.FormattingEnabled = true;
this.cb_setname3.IntegralHeight = false; this.cb_setname3.IntegralHeight = false;
this.cb_setname3.ItemHeight = 12; this.cb_setname3.ItemHeight = 12;
this.cb_setname3.Location = new System.Drawing.Point(401, 208); this.cb_setname3.Location = new System.Drawing.Point(404, 208);
this.cb_setname3.Name = "cb_setname3"; this.cb_setname3.Name = "cb_setname3";
this.cb_setname3.Size = new System.Drawing.Size(106, 20); this.cb_setname3.Size = new System.Drawing.Size(106, 20);
this.cb_setname3.TabIndex = 2; this.cb_setname3.TabIndex = 2;
...@@ -599,24 +600,26 @@ private void InitializeComponent() ...@@ -599,24 +600,26 @@ private void InitializeComponent()
this.tb_cardtext.AcceptsTab = true; this.tb_cardtext.AcceptsTab = true;
this.tb_cardtext.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_cardtext.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_cardtext.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.tb_cardtext.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.tb_cardtext.Location = new System.Drawing.Point(219, 340); this.tb_cardtext.Location = new System.Drawing.Point(219, 369);
this.tb_cardtext.MaxLength = 5000; this.tb_cardtext.MaxLength = 5000;
this.tb_cardtext.Multiline = true; this.tb_cardtext.Multiline = true;
this.tb_cardtext.Name = "tb_cardtext"; this.tb_cardtext.Name = "tb_cardtext";
this.tb_cardtext.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.tb_cardtext.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.tb_cardtext.Size = new System.Drawing.Size(326, 200); this.tb_cardtext.Size = new System.Drawing.Size(326, 210);
this.tb_cardtext.TabIndex = 4; this.tb_cardtext.TabIndex = 4;
// //
// tb_edittext // tb_edittext
// //
this.tb_edittext.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_edittext.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_edittext.HideSelection = false; this.tb_edittext.HideSelection = false;
this.tb_edittext.Location = new System.Drawing.Point(547, 519); this.tb_edittext.Location = new System.Drawing.Point(547, 535);
this.tb_edittext.MaxLength = 2000; this.tb_edittext.MaxLength = 2000;
this.tb_edittext.Multiline = true;
this.tb_edittext.Name = "tb_edittext"; this.tb_edittext.Name = "tb_edittext";
this.tb_edittext.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; this.tb_edittext.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
this.tb_edittext.Size = new System.Drawing.Size(310, 21); this.tb_edittext.Size = new System.Drawing.Size(310, 44);
this.tb_edittext.TabIndex = 4; this.tb_edittext.TabIndex = 4;
this.tb_edittext.WordWrap = false;
this.tb_edittext.TextChanged += new System.EventHandler(this.Tb_edittextTextChanged); this.tb_edittext.TextChanged += new System.EventHandler(this.Tb_edittextTextChanged);
// //
// lb_pleft_right // lb_pleft_right
...@@ -624,7 +627,7 @@ private void InitializeComponent() ...@@ -624,7 +627,7 @@ private void InitializeComponent()
this.lb_pleft_right.Anchor = System.Windows.Forms.AnchorStyles.Top; this.lb_pleft_right.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.lb_pleft_right.AutoSize = true; this.lb_pleft_right.AutoSize = true;
this.lb_pleft_right.BackColor = System.Drawing.SystemColors.Control; this.lb_pleft_right.BackColor = System.Drawing.SystemColors.Control;
this.lb_pleft_right.Location = new System.Drawing.Point(221, 321); this.lb_pleft_right.Location = new System.Drawing.Point(222, 325);
this.lb_pleft_right.Name = "lb_pleft_right"; this.lb_pleft_right.Name = "lb_pleft_right";
this.lb_pleft_right.Size = new System.Drawing.Size(41, 12); this.lb_pleft_right.Size = new System.Drawing.Size(41, 12);
this.lb_pleft_right.TabIndex = 7; this.lb_pleft_right.TabIndex = 7;
...@@ -633,10 +636,10 @@ private void InitializeComponent() ...@@ -633,10 +636,10 @@ private void InitializeComponent()
// tb_pleft // tb_pleft
// //
this.tb_pleft.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_pleft.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_pleft.Location = new System.Drawing.Point(296, 316); this.tb_pleft.Location = new System.Drawing.Point(302, 322);
this.tb_pleft.MaxLength = 12; this.tb_pleft.MaxLength = 12;
this.tb_pleft.Name = "tb_pleft"; this.tb_pleft.Name = "tb_pleft";
this.tb_pleft.Size = new System.Drawing.Size(38, 21); this.tb_pleft.Size = new System.Drawing.Size(39, 21);
this.tb_pleft.TabIndex = 8; this.tb_pleft.TabIndex = 8;
this.tb_pleft.Text = "0"; this.tb_pleft.Text = "0";
this.tb_pleft.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.tb_pleft.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
...@@ -644,10 +647,10 @@ private void InitializeComponent() ...@@ -644,10 +647,10 @@ private void InitializeComponent()
// tb_pright // tb_pright
// //
this.tb_pright.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_pright.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_pright.Location = new System.Drawing.Point(352, 316); this.tb_pright.Location = new System.Drawing.Point(358, 322);
this.tb_pright.MaxLength = 12; this.tb_pright.MaxLength = 12;
this.tb_pright.Name = "tb_pright"; this.tb_pright.Name = "tb_pright";
this.tb_pright.Size = new System.Drawing.Size(38, 21); this.tb_pright.Size = new System.Drawing.Size(37, 21);
this.tb_pright.TabIndex = 8; this.tb_pright.TabIndex = 8;
this.tb_pright.Text = "0"; this.tb_pright.Text = "0";
this.tb_pright.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; this.tb_pright.TextAlign = System.Windows.Forms.HorizontalAlignment.Center;
...@@ -656,7 +659,7 @@ private void InitializeComponent() ...@@ -656,7 +659,7 @@ private void InitializeComponent()
// //
this.lb_atkdef.Anchor = System.Windows.Forms.AnchorStyles.Top; this.lb_atkdef.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.lb_atkdef.AutoSize = true; this.lb_atkdef.AutoSize = true;
this.lb_atkdef.Location = new System.Drawing.Point(398, 320); this.lb_atkdef.Location = new System.Drawing.Point(223, 350);
this.lb_atkdef.Name = "lb_atkdef"; this.lb_atkdef.Name = "lb_atkdef";
this.lb_atkdef.Size = new System.Drawing.Size(47, 12); this.lb_atkdef.Size = new System.Drawing.Size(47, 12);
this.lb_atkdef.TabIndex = 7; this.lb_atkdef.TabIndex = 7;
...@@ -666,7 +669,7 @@ private void InitializeComponent() ...@@ -666,7 +669,7 @@ private void InitializeComponent()
// //
this.lb4.Anchor = System.Windows.Forms.AnchorStyles.Top; this.lb4.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.lb4.AutoSize = true; this.lb4.AutoSize = true;
this.lb4.Location = new System.Drawing.Point(101, 551); this.lb4.Location = new System.Drawing.Point(101, 593);
this.lb4.Name = "lb4"; this.lb4.Name = "lb4";
this.lb4.Size = new System.Drawing.Size(11, 12); this.lb4.Size = new System.Drawing.Size(11, 12);
this.lb4.TabIndex = 7; this.lb4.TabIndex = 7;
...@@ -675,7 +678,7 @@ private void InitializeComponent() ...@@ -675,7 +678,7 @@ private void InitializeComponent()
// tb_page // tb_page
// //
this.tb_page.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_page.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_page.Location = new System.Drawing.Point(65, 547); this.tb_page.Location = new System.Drawing.Point(65, 589);
this.tb_page.MaxLength = 12; this.tb_page.MaxLength = 12;
this.tb_page.Name = "tb_page"; this.tb_page.Name = "tb_page";
this.tb_page.Size = new System.Drawing.Size(34, 21); this.tb_page.Size = new System.Drawing.Size(34, 21);
...@@ -687,7 +690,7 @@ private void InitializeComponent() ...@@ -687,7 +690,7 @@ private void InitializeComponent()
// tb_pagenum // tb_pagenum
// //
this.tb_pagenum.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_pagenum.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_pagenum.Location = new System.Drawing.Point(116, 547); this.tb_pagenum.Location = new System.Drawing.Point(116, 589);
this.tb_pagenum.MaxLength = 12; this.tb_pagenum.MaxLength = 12;
this.tb_pagenum.Name = "tb_pagenum"; this.tb_pagenum.Name = "tb_pagenum";
this.tb_pagenum.ReadOnly = true; this.tb_pagenum.ReadOnly = true;
...@@ -699,7 +702,7 @@ private void InitializeComponent() ...@@ -699,7 +702,7 @@ private void InitializeComponent()
// btn_PageUp // btn_PageUp
// //
this.btn_PageUp.Anchor = System.Windows.Forms.AnchorStyles.Top; this.btn_PageUp.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btn_PageUp.Location = new System.Drawing.Point(0, 543); this.btn_PageUp.Location = new System.Drawing.Point(0, 585);
this.btn_PageUp.Name = "btn_PageUp"; this.btn_PageUp.Name = "btn_PageUp";
this.btn_PageUp.Size = new System.Drawing.Size(64, 27); this.btn_PageUp.Size = new System.Drawing.Size(64, 27);
this.btn_PageUp.TabIndex = 5; this.btn_PageUp.TabIndex = 5;
...@@ -710,7 +713,7 @@ private void InitializeComponent() ...@@ -710,7 +713,7 @@ private void InitializeComponent()
// btn_PageDown // btn_PageDown
// //
this.btn_PageDown.Anchor = System.Windows.Forms.AnchorStyles.Top; this.btn_PageDown.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btn_PageDown.Location = new System.Drawing.Point(152, 543); this.btn_PageDown.Location = new System.Drawing.Point(152, 585);
this.btn_PageDown.Name = "btn_PageDown"; this.btn_PageDown.Name = "btn_PageDown";
this.btn_PageDown.Size = new System.Drawing.Size(64, 27); this.btn_PageDown.Size = new System.Drawing.Size(64, 27);
this.btn_PageDown.TabIndex = 5; this.btn_PageDown.TabIndex = 5;
...@@ -721,7 +724,7 @@ private void InitializeComponent() ...@@ -721,7 +724,7 @@ private void InitializeComponent()
// btn_add // btn_add
// //
this.btn_add.Anchor = System.Windows.Forms.AnchorStyles.Top; this.btn_add.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btn_add.Location = new System.Drawing.Point(547, 542); this.btn_add.Location = new System.Drawing.Point(547, 584);
this.btn_add.Name = "btn_add"; this.btn_add.Name = "btn_add";
this.btn_add.Size = new System.Drawing.Size(75, 28); this.btn_add.Size = new System.Drawing.Size(75, 28);
this.btn_add.TabIndex = 5; this.btn_add.TabIndex = 5;
...@@ -733,7 +736,7 @@ private void InitializeComponent() ...@@ -733,7 +736,7 @@ private void InitializeComponent()
// //
this.lb5.Anchor = System.Windows.Forms.AnchorStyles.Top; this.lb5.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.lb5.AutoSize = true; this.lb5.AutoSize = true;
this.lb5.Location = new System.Drawing.Point(491, 319); this.lb5.Location = new System.Drawing.Point(343, 350);
this.lb5.Name = "lb5"; this.lb5.Name = "lb5";
this.lb5.Size = new System.Drawing.Size(11, 12); this.lb5.Size = new System.Drawing.Size(11, 12);
this.lb5.TabIndex = 7; this.lb5.TabIndex = 7;
...@@ -742,7 +745,7 @@ private void InitializeComponent() ...@@ -742,7 +745,7 @@ private void InitializeComponent()
// tb_atk // tb_atk
// //
this.tb_atk.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_atk.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_atk.Location = new System.Drawing.Point(451, 315); this.tb_atk.Location = new System.Drawing.Point(303, 346);
this.tb_atk.MaxLength = 12; this.tb_atk.MaxLength = 12;
this.tb_atk.Name = "tb_atk"; this.tb_atk.Name = "tb_atk";
this.tb_atk.Size = new System.Drawing.Size(38, 21); this.tb_atk.Size = new System.Drawing.Size(38, 21);
...@@ -753,7 +756,7 @@ private void InitializeComponent() ...@@ -753,7 +756,7 @@ private void InitializeComponent()
// tb_def // tb_def
// //
this.tb_def.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_def.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_def.Location = new System.Drawing.Point(503, 315); this.tb_def.Location = new System.Drawing.Point(357, 346);
this.tb_def.MaxLength = 12; this.tb_def.MaxLength = 12;
this.tb_def.Name = "tb_def"; this.tb_def.Name = "tb_def";
this.tb_def.Size = new System.Drawing.Size(38, 21); this.tb_def.Size = new System.Drawing.Size(38, 21);
...@@ -764,7 +767,7 @@ private void InitializeComponent() ...@@ -764,7 +767,7 @@ private void InitializeComponent()
// tb_cardcode // tb_cardcode
// //
this.tb_cardcode.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_cardcode.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_cardcode.Location = new System.Drawing.Point(473, 286); this.tb_cardcode.Location = new System.Drawing.Point(475, 346);
this.tb_cardcode.MaxLength = 12; this.tb_cardcode.MaxLength = 12;
this.tb_cardcode.Name = "tb_cardcode"; this.tb_cardcode.Name = "tb_cardcode";
this.tb_cardcode.Size = new System.Drawing.Size(68, 21); this.tb_cardcode.Size = new System.Drawing.Size(68, 21);
...@@ -777,7 +780,7 @@ private void InitializeComponent() ...@@ -777,7 +780,7 @@ private void InitializeComponent()
// //
this.lb_cardalias.Anchor = System.Windows.Forms.AnchorStyles.Top; this.lb_cardalias.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.lb_cardalias.AutoSize = true; this.lb_cardalias.AutoSize = true;
this.lb_cardalias.Location = new System.Drawing.Point(404, 263); this.lb_cardalias.Location = new System.Drawing.Point(401, 325);
this.lb_cardalias.Name = "lb_cardalias"; this.lb_cardalias.Name = "lb_cardalias";
this.lb_cardalias.Size = new System.Drawing.Size(65, 12); this.lb_cardalias.Size = new System.Drawing.Size(65, 12);
this.lb_cardalias.TabIndex = 7; this.lb_cardalias.TabIndex = 7;
...@@ -786,7 +789,7 @@ private void InitializeComponent() ...@@ -786,7 +789,7 @@ private void InitializeComponent()
// tb_cardalias // tb_cardalias
// //
this.tb_cardalias.Anchor = System.Windows.Forms.AnchorStyles.Top; this.tb_cardalias.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.tb_cardalias.Location = new System.Drawing.Point(473, 260); this.tb_cardalias.Location = new System.Drawing.Point(476, 320);
this.tb_cardalias.MaxLength = 12; this.tb_cardalias.MaxLength = 12;
this.tb_cardalias.Name = "tb_cardalias"; this.tb_cardalias.Name = "tb_cardalias";
this.tb_cardalias.Size = new System.Drawing.Size(67, 21); this.tb_cardalias.Size = new System.Drawing.Size(67, 21);
...@@ -797,7 +800,7 @@ private void InitializeComponent() ...@@ -797,7 +800,7 @@ private void InitializeComponent()
// btn_mod // btn_mod
// //
this.btn_mod.Anchor = System.Windows.Forms.AnchorStyles.Top; this.btn_mod.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btn_mod.Location = new System.Drawing.Point(626, 542); this.btn_mod.Location = new System.Drawing.Point(626, 584);
this.btn_mod.Name = "btn_mod"; this.btn_mod.Name = "btn_mod";
this.btn_mod.Size = new System.Drawing.Size(75, 28); this.btn_mod.Size = new System.Drawing.Size(75, 28);
this.btn_mod.TabIndex = 5; this.btn_mod.TabIndex = 5;
...@@ -809,7 +812,7 @@ private void InitializeComponent() ...@@ -809,7 +812,7 @@ private void InitializeComponent()
// //
this.btn_del.Anchor = System.Windows.Forms.AnchorStyles.Top; this.btn_del.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btn_del.ForeColor = System.Drawing.Color.DarkRed; this.btn_del.ForeColor = System.Drawing.Color.DarkRed;
this.btn_del.Location = new System.Drawing.Point(782, 542); this.btn_del.Location = new System.Drawing.Point(782, 584);
this.btn_del.Name = "btn_del"; this.btn_del.Name = "btn_del";
this.btn_del.Size = new System.Drawing.Size(75, 28); this.btn_del.Size = new System.Drawing.Size(75, 28);
this.btn_del.TabIndex = 5; this.btn_del.TabIndex = 5;
...@@ -821,7 +824,7 @@ private void InitializeComponent() ...@@ -821,7 +824,7 @@ private void InitializeComponent()
// //
this.btn_lua.Anchor = System.Windows.Forms.AnchorStyles.Top; this.btn_lua.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btn_lua.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(0))))); this.btn_lua.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(64)))), ((int)(((byte)(0)))));
this.btn_lua.Location = new System.Drawing.Point(464, 542); this.btn_lua.Location = new System.Drawing.Point(464, 584);
this.btn_lua.Name = "btn_lua"; this.btn_lua.Name = "btn_lua";
this.btn_lua.Size = new System.Drawing.Size(80, 28); this.btn_lua.Size = new System.Drawing.Size(80, 28);
this.btn_lua.TabIndex = 5; this.btn_lua.TabIndex = 5;
...@@ -832,7 +835,7 @@ private void InitializeComponent() ...@@ -832,7 +835,7 @@ private void InitializeComponent()
// btn_reset // btn_reset
// //
this.btn_reset.Anchor = System.Windows.Forms.AnchorStyles.Top; this.btn_reset.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btn_reset.Location = new System.Drawing.Point(300, 542); this.btn_reset.Location = new System.Drawing.Point(300, 584);
this.btn_reset.Name = "btn_reset"; this.btn_reset.Name = "btn_reset";
this.btn_reset.Size = new System.Drawing.Size(80, 28); this.btn_reset.Size = new System.Drawing.Size(80, 28);
this.btn_reset.TabIndex = 5; this.btn_reset.TabIndex = 5;
...@@ -843,7 +846,7 @@ private void InitializeComponent() ...@@ -843,7 +846,7 @@ private void InitializeComponent()
// btn_serach // btn_serach
// //
this.btn_serach.Anchor = System.Windows.Forms.AnchorStyles.Top; this.btn_serach.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btn_serach.Location = new System.Drawing.Point(218, 542); this.btn_serach.Location = new System.Drawing.Point(218, 584);
this.btn_serach.Name = "btn_serach"; this.btn_serach.Name = "btn_serach";
this.btn_serach.Size = new System.Drawing.Size(80, 28); this.btn_serach.Size = new System.Drawing.Size(80, 28);
this.btn_serach.TabIndex = 0; this.btn_serach.TabIndex = 0;
...@@ -855,7 +858,7 @@ private void InitializeComponent() ...@@ -855,7 +858,7 @@ private void InitializeComponent()
// //
this.lb_categorys.Anchor = System.Windows.Forms.AnchorStyles.Top; this.lb_categorys.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.lb_categorys.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); this.lb_categorys.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255)))));
this.lb_categorys.Location = new System.Drawing.Point(547, 198); this.lb_categorys.Location = new System.Drawing.Point(547, 173);
this.lb_categorys.Margin = new System.Windows.Forms.Padding(3, 3, 3, 0); this.lb_categorys.Margin = new System.Windows.Forms.Padding(3, 3, 3, 0);
this.lb_categorys.Name = "lb_categorys"; this.lb_categorys.Name = "lb_categorys";
this.lb_categorys.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0); this.lb_categorys.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0);
...@@ -868,7 +871,7 @@ private void InitializeComponent() ...@@ -868,7 +871,7 @@ private void InitializeComponent()
// //
this.lb2.Anchor = System.Windows.Forms.AnchorStyles.Top; this.lb2.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.lb2.AutoSize = true; this.lb2.AutoSize = true;
this.lb2.Location = new System.Drawing.Point(338, 320); this.lb2.Location = new System.Drawing.Point(345, 326);
this.lb2.Name = "lb2"; this.lb2.Name = "lb2";
this.lb2.Size = new System.Drawing.Size(11, 12); this.lb2.Size = new System.Drawing.Size(11, 12);
this.lb2.TabIndex = 7; this.lb2.TabIndex = 7;
...@@ -883,7 +886,7 @@ private void InitializeComponent() ...@@ -883,7 +886,7 @@ private void InitializeComponent()
this.pl_image.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.pl_image.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.pl_image.Location = new System.Drawing.Point(217, 52); this.pl_image.Location = new System.Drawing.Point(217, 52);
this.pl_image.Name = "pl_image"; this.pl_image.Name = "pl_image";
this.pl_image.Size = new System.Drawing.Size(179, 256); this.pl_image.Size = new System.Drawing.Size(184, 266);
this.pl_image.TabIndex = 14; this.pl_image.TabIndex = 14;
this.pl_image.DragDrop += new System.Windows.Forms.DragEventHandler(this.Pl_imageDragDrop); this.pl_image.DragDrop += new System.Windows.Forms.DragEventHandler(this.Pl_imageDragDrop);
this.pl_image.DragEnter += new System.Windows.Forms.DragEventHandler(this.Pl_imageDragEnter); this.pl_image.DragEnter += new System.Windows.Forms.DragEventHandler(this.Pl_imageDragEnter);
...@@ -906,7 +909,7 @@ private void InitializeComponent() ...@@ -906,7 +909,7 @@ private void InitializeComponent()
// //
this.lb_tiptexts.Anchor = System.Windows.Forms.AnchorStyles.Top; this.lb_tiptexts.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.lb_tiptexts.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); this.lb_tiptexts.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255)))));
this.lb_tiptexts.Location = new System.Drawing.Point(547, 386); this.lb_tiptexts.Location = new System.Drawing.Point(547, 370);
this.lb_tiptexts.Margin = new System.Windows.Forms.Padding(3, 3, 3, 0); this.lb_tiptexts.Margin = new System.Windows.Forms.Padding(3, 3, 3, 0);
this.lb_tiptexts.Name = "lb_tiptexts"; this.lb_tiptexts.Name = "lb_tiptexts";
this.lb_tiptexts.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0); this.lb_tiptexts.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0);
...@@ -927,7 +930,7 @@ private void InitializeComponent() ...@@ -927,7 +930,7 @@ private void InitializeComponent()
// //
this.btn_undo.Anchor = System.Windows.Forms.AnchorStyles.Top; this.btn_undo.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btn_undo.Enabled = false; this.btn_undo.Enabled = false;
this.btn_undo.Location = new System.Drawing.Point(704, 542); this.btn_undo.Location = new System.Drawing.Point(704, 584);
this.btn_undo.Name = "btn_undo"; this.btn_undo.Name = "btn_undo";
this.btn_undo.Size = new System.Drawing.Size(75, 28); this.btn_undo.Size = new System.Drawing.Size(75, 28);
this.btn_undo.TabIndex = 5; this.btn_undo.TabIndex = 5;
...@@ -938,7 +941,7 @@ private void InitializeComponent() ...@@ -938,7 +941,7 @@ private void InitializeComponent()
// btn_img // btn_img
// //
this.btn_img.Anchor = System.Windows.Forms.AnchorStyles.Top; this.btn_img.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.btn_img.Location = new System.Drawing.Point(382, 542); this.btn_img.Location = new System.Drawing.Point(382, 584);
this.btn_img.Name = "btn_img"; this.btn_img.Name = "btn_img";
this.btn_img.Size = new System.Drawing.Size(80, 28); this.btn_img.Size = new System.Drawing.Size(80, 28);
this.btn_img.TabIndex = 17; this.btn_img.TabIndex = 17;
...@@ -949,7 +952,7 @@ private void InitializeComponent() ...@@ -949,7 +952,7 @@ private void InitializeComponent()
// tb_setcode1 // tb_setcode1
// //
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(511, 156); this.tb_setcode1.Location = new System.Drawing.Point(514, 156);
this.tb_setcode1.MaxLength = 4; 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);
...@@ -961,7 +964,7 @@ private void InitializeComponent() ...@@ -961,7 +964,7 @@ private void InitializeComponent()
// tb_setcode2 // tb_setcode2
// //
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(511, 182); this.tb_setcode2.Location = new System.Drawing.Point(514, 182);
this.tb_setcode2.MaxLength = 4; 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);
...@@ -973,7 +976,7 @@ private void InitializeComponent() ...@@ -973,7 +976,7 @@ private void InitializeComponent()
// tb_setcode3 // tb_setcode3
// //
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(511, 208); this.tb_setcode3.Location = new System.Drawing.Point(514, 208);
this.tb_setcode3.MaxLength = 4; 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);
...@@ -985,7 +988,7 @@ private void InitializeComponent() ...@@ -985,7 +988,7 @@ private void InitializeComponent()
// tb_setcode4 // tb_setcode4
// //
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(511, 234); this.tb_setcode4.Location = new System.Drawing.Point(514, 234);
this.tb_setcode4.MaxLength = 4; 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);
...@@ -998,7 +1001,7 @@ private void InitializeComponent() ...@@ -998,7 +1001,7 @@ private void InitializeComponent()
// //
this.lb_cardcode.Anchor = System.Windows.Forms.AnchorStyles.Top; this.lb_cardcode.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.lb_cardcode.AutoSize = true; this.lb_cardcode.AutoSize = true;
this.lb_cardcode.Location = new System.Drawing.Point(404, 291); this.lb_cardcode.Location = new System.Drawing.Point(401, 350);
this.lb_cardcode.Name = "lb_cardcode"; this.lb_cardcode.Name = "lb_cardcode";
this.lb_cardcode.Size = new System.Drawing.Size(59, 12); this.lb_cardcode.Size = new System.Drawing.Size(59, 12);
this.lb_cardcode.TabIndex = 7; this.lb_cardcode.TabIndex = 7;
...@@ -1009,11 +1012,11 @@ private void InitializeComponent() ...@@ -1009,11 +1012,11 @@ 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.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.pl_category.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.pl_category.Location = new System.Drawing.Point(547, 219); this.pl_category.Location = new System.Drawing.Point(547, 195);
this.pl_category.Margin = new System.Windows.Forms.Padding(1, 2, 1, 2); this.pl_category.Margin = new System.Windows.Forms.Padding(1, 2, 1, 2);
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, 165); this.pl_category.Size = new System.Drawing.Size(310, 172);
this.pl_category.TabIndex = 13; this.pl_category.TabIndex = 13;
// //
// pl_cardtype // pl_cardtype
...@@ -1025,7 +1028,7 @@ private void InitializeComponent() ...@@ -1025,7 +1028,7 @@ private void InitializeComponent()
this.pl_cardtype.Margin = new System.Windows.Forms.Padding(1, 2, 1, 2); this.pl_cardtype.Margin = new System.Windows.Forms.Padding(1, 2, 1, 2);
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, 106); this.pl_cardtype.Size = new System.Drawing.Size(310, 120);
this.pl_cardtype.TabIndex = 12; this.pl_cardtype.TabIndex = 12;
// //
// lb_scripttext // lb_scripttext
...@@ -1036,10 +1039,10 @@ private void InitializeComponent() ...@@ -1036,10 +1039,10 @@ private void InitializeComponent()
this.lb_scripttext.FormattingEnabled = true; this.lb_scripttext.FormattingEnabled = true;
this.lb_scripttext.IntegralHeight = false; this.lb_scripttext.IntegralHeight = false;
this.lb_scripttext.ItemHeight = 12; this.lb_scripttext.ItemHeight = 12;
this.lb_scripttext.Location = new System.Drawing.Point(547, 409); this.lb_scripttext.Location = new System.Drawing.Point(547, 393);
this.lb_scripttext.Name = "lb_scripttext"; this.lb_scripttext.Name = "lb_scripttext";
this.lb_scripttext.ScrollAlwaysVisible = true; this.lb_scripttext.ScrollAlwaysVisible = true;
this.lb_scripttext.Size = new System.Drawing.Size(310, 109); this.lb_scripttext.Size = new System.Drawing.Size(310, 136);
this.lb_scripttext.TabIndex = 6; this.lb_scripttext.TabIndex = 6;
this.lb_scripttext.SelectedIndexChanged += new System.EventHandler(this.Lb_scripttextSelectedIndexChanged); this.lb_scripttext.SelectedIndexChanged += new System.EventHandler(this.Lb_scripttextSelectedIndexChanged);
// //
...@@ -1058,7 +1061,7 @@ private void InitializeComponent() ...@@ -1058,7 +1061,7 @@ private void InitializeComponent()
this.lv_cardlist.Name = "lv_cardlist"; this.lv_cardlist.Name = "lv_cardlist";
this.lv_cardlist.Scrollable = false; this.lv_cardlist.Scrollable = false;
this.lv_cardlist.ShowItemToolTips = true; this.lv_cardlist.ShowItemToolTips = true;
this.lv_cardlist.Size = new System.Drawing.Size(216, 514); this.lv_cardlist.Size = new System.Drawing.Size(216, 552);
this.lv_cardlist.TabIndex = 1; this.lv_cardlist.TabIndex = 1;
this.lv_cardlist.UseCompatibleStateImageBehavior = false; this.lv_cardlist.UseCompatibleStateImageBehavior = false;
this.lv_cardlist.View = System.Windows.Forms.View.Details; this.lv_cardlist.View = System.Windows.Forms.View.Details;
...@@ -1079,11 +1082,11 @@ private void InitializeComponent() ...@@ -1079,11 +1082,11 @@ private void InitializeComponent()
// //
this.lb_markers.Anchor = System.Windows.Forms.AnchorStyles.Top; this.lb_markers.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.lb_markers.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255))))); this.lb_markers.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(192)))), ((int)(((byte)(255)))));
this.lb_markers.Location = new System.Drawing.Point(547, 155); this.lb_markers.Location = new System.Drawing.Point(407, 260);
this.lb_markers.Margin = new System.Windows.Forms.Padding(3, 3, 3, 0); this.lb_markers.Margin = new System.Windows.Forms.Padding(3, 3, 3, 0);
this.lb_markers.Name = "lb_markers"; this.lb_markers.Name = "lb_markers";
this.lb_markers.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0); this.lb_markers.Padding = new System.Windows.Forms.Padding(4, 0, 0, 0);
this.lb_markers.Size = new System.Drawing.Size(310, 20); this.lb_markers.Size = new System.Drawing.Size(59, 54);
this.lb_markers.TabIndex = 19; this.lb_markers.TabIndex = 19;
this.lb_markers.Text = "Link Markers"; this.lb_markers.Text = "Link Markers";
this.lb_markers.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; this.lb_markers.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
...@@ -1093,19 +1096,33 @@ private void InitializeComponent() ...@@ -1093,19 +1096,33 @@ private void InitializeComponent()
this.pl_markers.Anchor = System.Windows.Forms.AnchorStyles.Top; this.pl_markers.Anchor = System.Windows.Forms.AnchorStyles.Top;
this.pl_markers.AutoScroll = true; this.pl_markers.AutoScroll = true;
this.pl_markers.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.pl_markers.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.pl_markers.Location = new System.Drawing.Point(547, 175); this.pl_markers.Location = new System.Drawing.Point(479, 256);
this.pl_markers.Margin = new System.Windows.Forms.Padding(1, 2, 1, 2); this.pl_markers.Margin = new System.Windows.Forms.Padding(1, 2, 1, 2);
this.pl_markers.Name = "pl_markers"; this.pl_markers.Name = "pl_markers";
this.pl_markers.Padding = new System.Windows.Forms.Padding(2); this.pl_markers.Padding = new System.Windows.Forms.Padding(2);
this.pl_markers.Size = new System.Drawing.Size(310, 23); this.pl_markers.Size = new System.Drawing.Size(60, 60);
this.pl_markers.TabIndex = 20; this.pl_markers.TabIndex = 20;
// //
// tb_link
//
this.tb_link.HideSelection = false;
this.tb_link.Location = new System.Drawing.Point(469, 293);
this.tb_link.MaxLength = 9;
this.tb_link.Name = "tb_link";
this.tb_link.Size = new System.Drawing.Size(75, 21);
this.tb_link.TabIndex = 21;
this.tb_link.TextAlign = System.Windows.Forms.HorizontalAlignment.Right;
this.tb_link.Visible = false;
this.tb_link.WordWrap = false;
this.tb_link.TextChanged += new System.EventHandler(this.Tb_linkTextChanged);
this.tb_link.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Tb_linkKeyPress);
//
// DataEditForm // DataEditForm
// //
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.ClientSize = new System.Drawing.Size(859, 572); this.ClientSize = new System.Drawing.Size(859, 617);
this.Controls.Add(this.pl_markers);
this.Controls.Add(this.lb_markers); this.Controls.Add(this.lb_markers);
this.Controls.Add(this.pl_markers);
this.Controls.Add(this.tb_setcode4); this.Controls.Add(this.tb_setcode4);
this.Controls.Add(this.tb_setcode3); this.Controls.Add(this.tb_setcode3);
this.Controls.Add(this.tb_setcode2); this.Controls.Add(this.tb_setcode2);
...@@ -1155,6 +1172,7 @@ private void InitializeComponent() ...@@ -1155,6 +1172,7 @@ private void InitializeComponent()
this.Controls.Add(this.cb_cardattribute); this.Controls.Add(this.cb_cardattribute);
this.Controls.Add(this.lv_cardlist); this.Controls.Add(this.lv_cardlist);
this.Controls.Add(this.mainMenu); this.Controls.Add(this.mainMenu);
this.Controls.Add(this.tb_link);
this.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134))); this.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
this.MainMenuStrip = this.mainMenu; this.MainMenuStrip = this.mainMenu;
...@@ -1269,5 +1287,6 @@ private void InitializeComponent() ...@@ -1269,5 +1287,6 @@ private void InitializeComponent()
private System.Windows.Forms.ToolStripMenuItem menuitem_autoreturn; private System.Windows.Forms.ToolStripMenuItem menuitem_autoreturn;
private System.Windows.Forms.Label lb_markers; private System.Windows.Forms.Label lb_markers;
private DFlowLayoutPanel pl_markers; private DFlowLayoutPanel pl_markers;
private System.Windows.Forms.TextBox tb_link;
} }
} }
...@@ -287,16 +287,29 @@ void InitCheckPanel(FlowLayoutPanel fpanel, Dictionary<long, string> dic) ...@@ -287,16 +287,29 @@ void InitCheckPanel(FlowLayoutPanel fpanel, Dictionary<long, string> dic)
fpanel.Controls.Clear(); fpanel.Controls.Clear();
foreach (long key in dic.Keys) foreach (long key in dic.Keys)
{ {
string value = dic[key];
if(value != null && value.StartsWith("NULL"))
{
Label lab=new Label();
string[] sizes = value.Split(',');
if(sizes.Length>=3){
lab.Size=new Size(int.Parse(sizes[1]),int.Parse(sizes[2]));
}
lab.AutoSize = false;
lab.Margin = fpanel.Margin;
fpanel.Controls.Add(lab);
}else{
CheckBox _cbox = new CheckBox(); CheckBox _cbox = new CheckBox();
//_cbox.Name = fpanel.Name + key.ToString("x"); //_cbox.Name = fpanel.Name + key.ToString("x");
_cbox.Tag = key;//绑定值 _cbox.Tag = key;//绑定值
_cbox.Text = dic[key]; _cbox.Text = value;
_cbox.AutoSize = true; _cbox.AutoSize = true;
_cbox.Margin = fpanel.Margin; _cbox.Margin = fpanel.Margin;
_cbox.CheckedChanged += _cbox_CheckedChanged; _cbox.CheckedChanged += _cbox_CheckedChanged;
//_cbox.Click += PanelOnCheckClick; //_cbox.Click += PanelOnCheckClick;
fpanel.Controls.Add(_cbox); fpanel.Controls.Add(_cbox);
} }
}
fpanel.ResumeLayout(false); fpanel.ResumeLayout(false);
fpanel.PerformLayout(); fpanel.PerformLayout();
} }
...@@ -310,7 +323,10 @@ private void _cbox_CheckedChanged(object sender, EventArgs e) ...@@ -310,7 +323,10 @@ private void _cbox_CheckedChanged(object sender, EventArgs e)
{ {
SetEnabled(pl_markers, cbox.Checked); SetEnabled(pl_markers, cbox.Checked);
tb_def.ReadOnly = cbox.Checked; tb_def.ReadOnly = cbox.Checked;
tb_link.ReadOnly = !cbox.Checked;
} }
}else if(cbox.Parent == pl_markers){
setLinkMarks(GetCheck(pl_markers));
} }
} }
...@@ -379,10 +395,13 @@ void SetEnabled(FlowLayoutPanel fpl, bool set) ...@@ -379,10 +395,13 @@ void SetEnabled(FlowLayoutPanel fpl, bool set)
{ {
foreach (Control c in fpl.Controls) foreach (Control c in fpl.Controls)
{ {
CheckBox cbox=(CheckBox)c; CheckBox cbox= c as CheckBox;
if(cbox != null)
{
cbox.Enabled = set; cbox.Enabled = set;
} }
} }
}
//设置combobox //设置combobox
void SetSelect(ComboBox cb, long k) void SetSelect(ComboBox cb, long k)
{ {
...@@ -483,6 +502,16 @@ public Card GetOldCard() ...@@ -483,6 +502,16 @@ public Card GetOldCard()
{ {
return oldCard; return oldCard;
} }
private void setLinkMarks(long mark,bool setCheck=false)
{
if(setCheck)
{
SetCheck(pl_markers, mark);
}
tb_link.Text= Convert.ToString(mark, 2).PadLeft(9,'0');
}
public void SetCard(Card c) public void SetCard(Card c)
{ {
oldCard = c; oldCard = c;
...@@ -508,10 +537,13 @@ public void SetCard(Card c) ...@@ -508,10 +537,13 @@ public void SetCard(Card c)
tb_setcode4.Text = setcodes[3].ToString("x"); tb_setcode4.Text = setcodes[3].ToString("x");
//type,category //type,category
SetCheck(pl_cardtype, c.type); SetCheck(pl_cardtype, c.type);
if (c.IsType(Core.Info.CardType.TYPE_LINK)) if (c.IsType(Core.Info.CardType.TYPE_LINK)){
SetCheck(pl_markers, c.def); setLinkMarks(c.def, true);
else }
else{
tb_link.Text="";
SetCheck(pl_markers, 0); SetCheck(pl_markers, 0);
}
SetCheck(pl_category, c.category); SetCheck(pl_category, c.category);
//Pendulum //Pendulum
tb_pleft.Text = ((c.level >> 24) & 0xff).ToString(); tb_pleft.Text = ((c.level >> 24) & 0xff).ToString();
...@@ -1713,5 +1745,30 @@ void Menuitem_autoreturnClick(object sender, EventArgs e) ...@@ -1713,5 +1745,30 @@ void Menuitem_autoreturnClick(object sender, EventArgs e)
} }
} }
private void text2LinkMarks(string text)
{
try{
long mark=Convert.ToInt64(text, 2);
setLinkMarks(mark, true);
}catch{
//
}
}
void Tb_linkTextChanged(object sender, EventArgs e)
{
text2LinkMarks(tb_link.Text);
}
void Tb_linkKeyPress(object sender, KeyPressEventArgs e)
{
if(e.KeyChar != '0' && e.KeyChar != '1' && e.KeyChar != 1 && e.KeyChar!=22 && e.KeyChar!=3 && e.KeyChar != 8){
// MessageBox.Show("key="+(int)e.KeyChar);
e.Handled = true;
}else{
text2LinkMarks(tb_link.Text);
}
}
} }
} }
...@@ -86,7 +86,7 @@ private void InitializeComponent() ...@@ -86,7 +86,7 @@ private void InitializeComponent()
this.dockPanel1.Location = new System.Drawing.Point(0, 25); this.dockPanel1.Location = new System.Drawing.Point(0, 25);
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(864, 573); this.dockPanel1.Size = new System.Drawing.Size(864, 617);
dockPanelGradient1.EndColor = System.Drawing.SystemColors.ControlLight; dockPanelGradient1.EndColor = System.Drawing.SystemColors.ControlLight;
dockPanelGradient1.StartColor = System.Drawing.SystemColors.ControlLight; dockPanelGradient1.StartColor = System.Drawing.SystemColors.ControlLight;
autoHideStripSkin1.DockStripGradient = dockPanelGradient1; autoHideStripSkin1.DockStripGradient = dockPanelGradient1;
...@@ -335,7 +335,7 @@ private void InitializeComponent() ...@@ -335,7 +335,7 @@ private void InitializeComponent()
// //
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.SystemColors.Control; this.BackColor = System.Drawing.SystemColors.Control;
this.ClientSize = new System.Drawing.Size(864, 598); this.ClientSize = new System.Drawing.Size(864, 642);
this.Controls.Add(this.dockPanel1); this.Controls.Add(this.dockPanel1);
this.Controls.Add(this.mainMenu); this.Controls.Add(this.mainMenu);
this.IsMdiContainer = true; this.IsMdiContainer = true;
......
...@@ -117,10 +117,13 @@ ...@@ -117,10 +117,13 @@
<resheader name="writer"> <resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader> </resheader>
<metadata name="dockPanel1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="mainMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="mainMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>135, 17</value> <value>237, 17</value>
</metadata> </metadata>
<metadata name="bgWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="bgWorker1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>130, 17</value>
</metadata> </metadata>
</root> </root>
\ No newline at end of file
...@@ -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.4.2.4")] [assembly: AssemblyVersion("2.4.2.5")]
★更新历史 ★更新历史
2.4.2.5
link的箭头控件
2.4.2.4 2.4.2.4
导出数据,中文名字乱码 导出数据,中文名字乱码
2.4.2.3 2.4.2.3
......
...@@ -30,14 +30,15 @@ ...@@ -30,14 +30,15 @@
0xc 12★ 0xc 12★
0xd 13★ 0xd 13★
##link marker ##link marker
0x1 ↙ 0x40
0x2 ↓ 0x80
0x4 ↘ 0x100
0x8 ← 0x8
0x20 → 0x10 NULL,15,15
0x40 ↖ 0x20
0x80 ↑ 0x1
0x100 ↗ 0x2
0x4
##category ##category
0x1 魔陷破坏 0x1 魔陷破坏
0x2 怪兽破坏 0x2 怪兽破坏
......
...@@ -30,14 +30,15 @@ ...@@ -30,14 +30,15 @@
0xc 12★ 0xc 12★
0xd 13★ 0xd 13★
##link marker ##link marker
0x1 ↙ 0x40
0x2 ↓ 0x80
0x4 ↘ 0x100
0x8 ← 0x8
0x20 → 0x10 NULL,15,15
0x40 ↖ 0x20
0x80 ↑ 0x1
0x100 ↗ 0x2
0x4
##category ##category
0x1 S/T Destroy 0x1 S/T Destroy
0x2 Destroy Monster 0x2 Destroy Monster
......
[DataEditorX]2.4.2.4[DataEditorX] [DataEditorX]2.4.2.5[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]
★运行环境(Environment) ★运行环境(Environment)
......
/*.dll
/*.exe
/data
/Magic Set Editor 2
/Newtonsoft.Json.xml
/*.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<!-- Example connection to a SQL Server Database on localhost. -->
<!-- <add name="ExampleConnectionString"
connectionString="Data Source=.;Initial Catalog=DBName;Integrated Security=True"
providerName="System.Data.SqlClient" /> -->
</connectionStrings>
<appSettings>
<!-- access these values via the property:
System.Configuration.ConfigurationManager.AppSettings[key]
-->
<!-- MSE language data/mse_xxx.txt -->
<add key="mse" value="Chinese-Simplified" />
<!-- Language data/cardinfo_xxxx.txt data/language_xxx.txt -->
<add key="language" value="Chinese" />
<!-- Check system language when running program first time -->
<add key="check_system_language" value="false" />
<!-- async load data -->
<add key="async" value="false" />
<!-- DataEditorX source code -->
<add key="sourceURL" value="https://github.com/247321453/DataEditorX" />
<!-- DataEditorX update url-->
<add key="updateURL" value="https://github.com/247321453/DataEditorX/tree/master/win32/readme.txt" />
<!-- delete,modify with card's files image script -->
<add key="opera_with_cards_file" value="true" />
<!-- open file in this.such as lua -->
<add key="open_file_in_this" value="true" />
<!-- check update when opening application automatically -->
<add key="auto_check_update" value="true" />
<!-- Cut Images Setting -->
<add key="image_quilty" value="100" />
<add key="image" value="44,64,177,254" />
<add key="image_other" value="25,54,128,128" />
<add key="image_xyz" value="24,51,128,128" />
<add key="image_pendulum" value="16,50,147,109" />
<!-- CodeEdiotr Setting
IME = true 使用輸入法,正常顯示文字,反應變慢
IME = false English
-->
<add key="IME" value="false" />
<add key="wordwrap" value="true" />
<add key="tabisspace" value="false" />
<add key="fontname" value="Consolas" />
<add key="fontsize" value="14.5" />
<!-- MSE path-->
<add key="mse_path" value="./MagicSetEditor2/mse.exe" />
<add key="mse_exprotpath" value="./exprot" />
<add key="mse_auto_rarity" value="true" />
<add key="pack_db" value="./pack.db" />
<!-- 1024 : 40-->
<add key="autolength" value="37" />
</appSettings>
</configuration>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<!-- Example connection to a SQL Server Database on localhost. -->
<!-- <add name="ExampleConnectionString"
connectionString="Data Source=.;Initial Catalog=DBName;Integrated Security=True"
providerName="System.Data.SqlClient" /> -->
</connectionStrings>
<appSettings>
<!-- access these values via the property:
System.Configuration.ConfigurationManager.AppSettings[key]
-->
<!-- MSE language data/mse_xxx.txt -->
<add key="mse" value="Chinese-Simplified" />
<!-- Language data/cardinfo_xxxx.txt data/language_xxx.txt -->
<add key="language" value="Chinese" />
<!-- Check system language when running program first time -->
<add key="check_system_language" value="false" />
<!-- async load data -->
<add key="async" value="false" />
<!-- DataEditorX source code -->
<add key="sourceURL" value="https://github.com/247321453/DataEditorX" />
<!-- DataEditorX update url-->
<add key="updateURL" value="https://github.com/247321453/DataEditorX/tree/master/win32/readme.txt" />
<!-- delete,modify with card's files image script -->
<add key="opera_with_cards_file" value="true" />
<!-- open file in this.such as lua -->
<add key="open_file_in_this" value="true" />
<!-- check update when opening application automatically -->
<add key="auto_check_update" value="true" />
<!-- Cut Images Setting -->
<add key="image_quilty" value="100" />
<add key="image" value="44,64,177,254" />
<add key="image_other" value="25,54,128,128" />
<add key="image_xyz" value="24,51,128,128" />
<add key="image_pendulum" value="16,50,147,109" />
<!-- CodeEdiotr Setting
IME = true 使用輸入法,正常顯示文字,反應變慢
IME = false English
-->
<add key="IME" value="false" />
<add key="wordwrap" value="true" />
<add key="tabisspace" value="false" />
<add key="fontname" value="Consolas" />
<add key="fontsize" value="14.5" />
<!-- MSE path-->
<add key="mse_path" value="./MagicSetEditor2/mse.exe" />
<add key="mse_exprotpath" value="./exprot" />
<add key="mse_auto_rarity" value="true" />
<add key="pack_db" value="./pack.db" />
<!-- 1024 : 40-->
<add key="autolength" value="37" />
</appSettings>
</configuration>
\ No newline at end of file
@echo off
cd /d "%~dp0/update"
if exist update_new.exe move /y update_new.exe update.exe
start update.exe -d "%~dp0" "https://github.com/247321453/MagicSetEditor2/raw/master/"
exit
\ No newline at end of file
客户端使用:
注意:
1、更新的时候,请不要打开游戏目录。
2、知道显示更新完成,才能关闭本程序。
3、客户端改名:
例如:
自动更新.exe
自动更新.exe.bat
自动更新.exe.config
设置:
保存的文件夹
key="path" value="D:\ygopro"
如果文件已经存在,则跳过,不存在则下载。
key="ignore1" value="textrue/*"
key="ignore上面的数字+1" value="忽略文件的相对路径,允许通配符*"
下载的地址(最后必须为/)
key="url" value="https://github.com/247321453/ygocore-update/raw/master/"
代理设置(可无视)
useproxy的value为true(小写),则通过代理下载文件
key="useproxy" value="false"
key="proxy" value="127.0.0.1:8080"
服务端使用:
运行update.exe.bat,即可生成对应的文件列表
update.exe -m "【需要更新的文件夹】"
【需要更新的文件夹】后最后不能为\
例如:
错误 update.exe -m "D:\pro files\"
正确 update.exe -m "D:\pro files"
注意:
【需要更新的文件夹】为D:\game
update.exe在D:\game\update 【需要更新的文件夹】的子目录
则可以直接使用update.exe -m
结果保存在 【需要更新的文件夹】\update
然后再修改rename和delete文件的内容
注意:delete先执行
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<!-- <startup>
<supportedRuntime version="vv2.0.50727" sku=".NETFramework,Version=vv2.0.50727" />
</startup> -->
<appSettings>
<!-- access these values via the property:
System.Configuration.ConfigurationManager.AppSettings[key]
-->
<add key="url" value="https://github.com/247321453/MagicSetEditor2/raw/master/" />
<!-- game save path -->
<add key="path" value="..\" />
<!-- use proxy -->
<add key="useproxy" value="false" />
<add key="proxy" value="127.0.0.1:8080" />
<!-- if file exitis then no download -->
<add key="ignore1" value="update/update.exe" />
</appSettings>
</configuration>
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
★更新历史 ★更新历史
2.4.2.5
link的箭头控件
2.4.2.4 2.4.2.4
导出数据,中文名字乱码 导出数据,中文名字乱码
2.4.2.3 2.4.2.3
......
#####################################################
# The data types used in the script are the following:
# Int: Integer type
# Bool: Boolean type (true or false)
# String: String
# Function: Function
# Card: The card class
# Effect: The effect class
# Group: The deck class
# Nil: empty type, also said that the empty variables (only that meaningful empty return value)
# Any: any type
# In order to facilitate the description, the use of similar C function representation
# [] Indicates that there are default values ​​that can be omitted
# Indicate only meaningful nil type parameters or return values
#
# Note: Regarding the filter condition function
# The filter condition function is the function whose first argument is of type Card and whose return value is boolean. This function is used to retrieve calls in a filter function that meets the criteria for a deck. The filter condition function can have indefinite parameters, and the second start parameter is obtained from the extra parameters of the filter function. For example:
# Function sample_filter (c, atk, def)
# Return c: GetAttack ()> = atk and c: GetDefense ()> = def
# End
# This function returns true if attack power> = atk and defence> = def for a card c, otherwise false
# G = Duel.GetFieldGroup (0, LOCATION_HAND, 0) - Grab Player 1's Hand Card
# Fg = g: Filter (sample_filter, nil, 1000,500) - Select the attack power> = 1000 from g and the card with> = 500
# Group.Filter only three parameters, the first four parameters start as additional parameters, additional parameters will be passed to the sample_filter
#
# Note: Regarding the specified position
# Some functions can get the specified location of the card, through the three parameters specified int player, int s, int o
# S refers to the player's player's own side of the position, o refers to the player's player for each other's position
# Such as Duel.GetFieldGroup (0, LOCATION_GRAVE, LOCATION_MZONE)
# Return all cards of player 0's cemetery and player's monster zone
#
# Note: For description
# Script system is not directly use the string display prompt text, but by the system through an integer (int desc) to find the appropriate description
# For desc <2048, the system looks for it in string.conf, where some commonly used numbers (usually the prompt text) are recorded in constant.lua
# For desc> 10000, the system looks for a description in the card database, usually specified with the aux.Stringid () function
####################################################
● void initial_effect (Card c)
Called when the card is loaded
General is to register the initial card effect, and set the Soviet students limit and so on
========== bit ===========
● int bit.band (int a, int b)
A and b with the bit
● int bit.lshift (int a, int b)
A Move to the left b
● int bit.bor (int a, int b)
A or b
● int bit.rshift (int a, int b)
A Move to the right b
● int bit.bxor (int a, int b)
A and b bit XOR
========== Card ==========
● int [, int] Card.GetCode (Card c)
Returns the current codename for c (possibly because the effect changes)
● int Card.GetOriginalCode (Card c)
Returns the code number of the card in c
● int, int Card.GetOriginalCodeRule (Card c)
Returns the codename on the c rule (used as a card rule on this card)
● int, int, ... Card.GetFusionCode (Card c)
Return c as the fusion material when the card number (including the original c card number)
● bool Card.IsFusionCode (Card c, int code)
Check the c as a fusion material can be used as the card number for the code card
● bool Card.IsSetCard (Card c, int setname)
Check whether c is a card with the name setname
● bool Card.IsPreviousSetCard (Card c, int setname)
Check whether the name c contains a setname before the c position changes
● bool Card.IsFusionSetCard (Card c, int setname)
Check the c as a fusion material can be used as a name setname card
● int Card.GetType (Card c)
Returns the current type of c
● int Card.GetOriginalType (Card c)
Returns the type of card entry for c
● int Card.GetLevel (Card c)
Returns the current level of c
● int Card.GetRank (Card c)
Returns the current class of c
● int Card.GetSynchroLevel (Card c, Card sc)
Return to the co-ordination of c with the call monster sc with the level
This function returns the same value as Card.GetLevel (c) except for certain cards such as modems.
● int Card.GetRitualLevel (Card c, Card rc)
Returns the ritual liberation level for rc ritual monsters
This function returns the same value as Card.GetLevel (c) except for certain cards such as ritual objects
● int Card.GetOriginalLevel (Card c)
Returns the rank of the card in c
● int Card.GetOriginalRank (Card c)
Returns the class of the card in c
● bool Card.IsXyzLevel (Card c, Card xyzc, int lv)
Check c for excess monster xyzc with the level of whether the excess is lv
● int Card.GetLeftScale (Card c)
Returns the left-hand pendulum scale of c
● int Card.GetOriginalLeftScale (Card c)
Returns the original left-hand pendulum scale of c
● int Card.GetRightScale (Card c)
Returns the right-hand pendulum scale of c
● int Card.GetOriginalRightScale (Card c)
Returns the original right pendulum scale of c
● int Card.GetAttribute (Card c)
Returns the current attribute of c
Note: For some multi-attribute monsters such as light and dark dragon, the return value of this function may be a combination of several properties of the value
● int Card.GetOriginalAttribute (Card c)
Returns the attributes of the card that c is describing
● int Card.GetRace (Card c)
Returns the current race of c
Note: For some multi-ethnic monsters such as animation effects of the magic ape, the function of the return value may be a combination of several racial values
● int Card.GetOriginalRace (Card c)
Returns the c of the card record race
● int Card.GetAttack (Card c)
Return the current attack power of c, the return value is a negative that is "?"
● int Card.GetBaseAttack (Card c)
Return the original attack power of c
● int Card.GetTextAttack (Card c)
Returns the attack power recorded on card c
● int Card.GetDefense (Card c)
Returns the current defense of c, the return value is negative that is "?"
● int Card.GetBaseDefense (Card c)
Return to the original c of the defense
● int Card.GetTextDefense (Card c)
Return the c 's card record of the garrison
● int Card.GetPreviousCodeOnField (Card c)
Returns the card number prior to the c position change
● int Card.GetPreviousTypeOnField (Card c)
Returns the type before the c position change
● int Card.GetPreviousLevelOnField (Card c)
Returns the rank before the c position change
● int Card.GetPreviousRankOnField (Card c)
Returns the class before the c position changes
● int Card.GetPreviousAttributeOnField (Card c)
Returns the attribute before the c position change
● int Card.GetPreviousRaceOnField (Card c)
Returns the race before the c position changes
● int Card.GetPreviousAttackOnField (Card c)
Returns the attack power before the c position changes
● int Card.GetPreviousDefenseOnField (Card c)
Returns the defensive power before the c position changes
● int Card.GetOwner (Card c)
Returns the holder of c
● int Card.GetControler (Card c)
Returns the current controller of c
● int Card.GetPreviousControler (Card c)
Returns the controller before the position change of c
● int Card.GetReason (Card c)
Returns the position change reason for c
● Card Card.GetReasonCard (Card c)
Returns the card that caused the position of c to change
This function is only valid when a card is destroyed by a battle, because the superior call is released, or becomes a special call to use the material
● int Card.GetReasonPlayer (Card c)
Returns the player that caused the position of c to change
● Effect Card.GetReasonEffect (Card c)
Returns the effect that causes the position of c to change
● int Card.GetPosition (Card c)
Returns the current representation of c
● int Card.GetPreviousPosition (Card c)
Returns the representation of the position before the c position changes
● int Card.GetBattlePosition (Card c)
Returns the representation of c before this battle occurs
● int Card.GetLocation (Card c)
Returns the current position of c
● int Card.GetPreviousLocation (Card c)
Returns the position before the c position changes
● int Card.GetSequence (Card c)
Returns the serial number of the current position
In the field, the sequence number on behalf of the grid, from left to right are 0-4, the venue magic number is 5, left and right pendulum area is 6-7
In other places, the serial number represents the first card, the lowest card number is 0
● int Card.GetPreviousSequence (Card c)
Returns the sequence number before the c position changes
● int Card.GetSummonType (Card c)
Returns the call / special call of c
● int Card.GetSummonLocation (Card c)
Returns the call position of c
● int Card.GetSummonPlayer (Card c)
Return to Summoner / Special Summoner c Players
● int Card.GetDestination (Card c)
Returns the destination of the c position change
This function is valid only when processing position transitions instead of effects
● int Card.GetLeaveFieldDest (Card c)
Returns the destination of an effect (such as the universe) that was changed as a result of departure from c
● int Card.GetTurnID (Card c)
Return c The round to the current position
● int Card.GetFieldID (Card c)
Returns the time stamp of the transition to the current position
This value is unique, the smaller the c is the earlier appear in that position
Opening the card from the inside will also change this value
● int Card.GetRealFieldID (Card c)
Returns the actual timestamp for the c transition to the current position
Opening the card from the inside does not change this value
● bool Card.IsCode (Card c, int code1 [, int code2, ...])
Check whether the card number c is code1 [, or code2 ...]
● bool Card.IsType (Card c, int type)
Check if c is of type type
● bool Card.IsRace (Card c, int race)
Check if c is race race
● bool Card.IsAttribute (Card c, int attribute)
Check whether c belongs to attribute attribute
● bool Card.IsReason (Card c, int reason)
Check if c contains the reason
● bool Card.IsStatus (Card c, int status)
Check whether c contains a status code
● bool Card.IsNotTuner (Card c)
Check whether c can be used as a non-adjustment
Void Card.SetStatus (Card c, int state, bool enable)
Set or cancel the status code for c
Do not use this function unless you clearly understand the meaning of each status code
● bool Card.IsDualState (Card c)
Check whether c is in the re-call state
● void Card.EnableDualState (Card c)
Set c to re-call state
Void Card.SetTurnCounter (Card c, int counter)
Set c of the round counter (light of the sword, etc.)
● int Card.GetTurnCounter (Card c)
Returns the round counter for c
● void Card.SetMaterial (Card c, Group g)
The g of all the cards as the c material (superior summon, special summon)
● Group Card.GetMaterial (Card c)
Returns the material used for the appearance of c
● int Card.GetMaterialCount (Card c)
Returns the amount of material used for c appearance
● Group Card.GetEquipGroup (Card c)
Returns the current set of cards
● int Card.GetEquipCount (Card c)
Returns the number of cards currently loaded
● Card Card.GetEquipTarget (Card c)
Returns the current artefact object
● Card Card.GetPreviousEquipTarget (Card c)
Returns the device object before c
● bool Card.CheckEquipTarget (Card c1, Card c2)
Check whether c2 is the correct equipment object for c1
## Determined by the EFFECT_EQUIP_LIMIT effect or confederation state
● int Card.GetUnionCount (Card c)
Returns the number of ally cards for the current device
● Group Card.GetOverlayGroup (Card c)
Returns the currently stacked deck
• int Card.GetOverlayCount (Card c)
Returns the number of cards currently stacked
● Card Card.GetOverlayTarget (Card c)
Returns the card with c as the excess material
● bool Card.CheckRemoveOverlayCard (Card c, int player, int count, int reason)
Check the player player can be reason for the reason, at least remove the c stacked count cards
● bool Card.RemoveOverlayCard (Card c, int player, int min, int max, int reason)
For reason reason, let players player remove c stacked min-max card, the return value that is successful
● Group Card.GetAttackedGroup (Card c)
Returns the card set attacked by this turn
● int Card.GetAttackedGroupCount (Card c)
Returns the number of cards that have been attacked this turn
● int Card.GetAttackedCount (Card c)
Returns the number of times this round has been attacked
Note: If this value is different from the return value of the previous function, then this card has been a direct attack this round
● Group Card.GetBattledGroup (Card c)
Returns the deck of the card that fought this turn
Fighting has occurred in the calculation of the damage occurred, for the sword and other animals, animal judgments
● int Card.GetBattledGroupCount (Card c)
Returns the number of cards battled for this turn
● int Card.GetAttackAncountCount (Card c)
Returns the number of times this declaration was asserted
Note: Attack is invalid will not count the number of attacks, but will be counted into the number of attacks on the Declaration
● bool Card.IsDirectAttacked (Card c)
Check whether c direct attack
Void Card.SetCardTarget (Card c1, Card c2)
C2 as the perpetual object of c1
C1 and c2 of the contact will c1 or c2 any one card to leave or become the side of that reset
● Group Card.GetCardTarget (Card c)
Returns all currently persistent objects
● Card Card.GetFirstCardTarget (Card c)
Returns c the current first persistent object
● int Card.GetCardTargetCount (Card c)
Returns the number of current persistent objects
● bool Card.IsHasCardTarget (Card c1, Card c2)
Check whether c1 takes c2 as a persistent object
● void Card.CancelCardTarget (Card c1, Card c2)
Cancel c2 as a perpetual object of c1
● Group Card.GetOwnerTarget (Card c)
Returns all cards with c as the persistent object
● int Card.GetOwnerTargetCount (Card c)
Returns the number of cards that take c as the persistent object
● Effect Card.GetActivateEffect (Card c)
Returns the effect of the "card firing" of c, that is, the effect of type EFFECT_TYPE_ACTIVATE
Only for magic and traps
● Effect [, Group, int, effect, int, int] Card.CheckActivateEffect (Card c, bool neglect_con, bool neglect_cost, bool copy_info)
Return to the timing of the launch of the correct c "card launch" effect, ignored_con = true ignoring the launch conditions, ignored_cost = true ignoring the launch cost
Copy_info = false or the free-time effect only returns the effect
Otherwise return the effect of the time point for the code when the trigger point information eg, ep, ev, re, r, rp
● int Card.RegisterEffect (Card c, Effect e [, bool forced = false])
Register the effect e to c, return the global id of the effect, and set the Handler of e to c
By default, if c is registered with the effect of immune e then the registration will fail
If forced is true, the immune effect of c against e will not be checked
● bool Card.IsHasEffect (Card c, int code)
Check if c is affected by the effect type
Void Card.ResetEffect (Card c, int reset_code, int reset_type)
To reset the type to reset_type, reset the type reset_code manual reset c impact of the impact
The reset_type can only be one of the following types, and the corresponding reset type is
RESET_EVENT An event reset_code is set for the event
RESET_PHASE End of phase Reset the reset_code to phase
RESET_CODE reset the effect of the specified code reset_code for the type of effect code, can only be reset EFFECT_TYPE_SINGLE sustainable type effect
RESET_COPY resets the effect of the copy. Reset_code is copy_id
RESET_CARD The effect of resetting the card reset_code is the card number of the effect owner
● int Card.GetEffectCount (Card c, int code)
Returns the number of effects that c is affected by the type of code
● Effect Card.RegisterFlagEffect (Card c, int code, int reset_flag, int property, int reset_count [, int label, int desc])
For the registration of a logo with the results
Note: The effect of the registration to the card is not used for the system,
Even if the code and the built-in effect code coincidence will not affect,
And the type is always EFFECT_TYPE_SINGLE, reset method, property, and the general effect of the same,
And will not be invalidated, immune effect from the card
● int Card.GetFlagEffect (Card c, int code)
The type of returned c is the number of identifying effects of the code
Void Card.ResetFlagEffect (Card c, int code)
Manually clear the type of c is the code of the identification effect
● bool Card.SetFlagEffectLabel (Card c, int code, int label)
Returns whether or not c has an identifier of type code, and sets its Label property to label
● int Card.GetFlagEffectLabel (Card c, int code)
The type of c is the label that identifies the effect of code, and returns nil if it does not
● void Card.CreateRelation (Card c1, Card c2, int reset_flag)
For c1 established in c2 contact this contact, only because c1 occurred RESET_EVENT the event reset
● void Card.ReleaseRelation (Card c1, Card c2)
Manually release c1 for c2
● void Card.CreateEffectRelation (Card c, Effect e)
For the card c and the effect of e to establish contact
Void Card.ReleaseEffectRelation (Card c, Effect e)
Manually release the link between c and effect e
● void Card.ClearEffectRelation (Card c)
Clear all the effects of c contact
● bool Card.IsRelateToEffect (Card c, Effect e)
Check whether c is associated with effect e
Note: Each launch into the effect of chain, the effect of launching the card, and the effect of the specified object
(With Duel.SetTargetCard or Duel.SelectTarget specified, including the take and not take objects)
● bool Card.IsRelateToChain (Card c, int chainc)
Check if c is linked to chained chainc
Note: Each launch into the effect of chain, the effect of launching the card, and the effect of the specified object
(With Duel.SetTargetCard or Duel.SelectTarget specified, including the take and not take objects)
Will automatically establish contact with that effect, once the departure, contact will be reset
● bool Card.IsRelateToCard (Card c1, Card c2)
Check whether c1 and c2 are linked
● bool Card.IsRelateToBattle (Card c)
Check whether c is associated with this battle
Note: This effect is usually used for damage calculation before the end of the injury phase, used to check whether the fighting off the card too
● int Card.CopyEffect (Card c, int code, int reset_flag [, int reset_count])
Adding a card number for c is the replicable effect of the card's code, and adding an additional reset condition
The return value is the code id representing the copy effect
● int Card.ReplaceEffect (Card c, int code, int reset_flag [, int reset_count])
Replace the effect of c with the effect of the card whose card number is code, and add additional reset conditions
The return value is the code id representing the replacement effect
● void Card.EnableUnsummonable (Card c)
Set c to a monster that can not normally be called
## is actually a non-replicable, will not be invalid EFFECT_UNSUMMONABLE_CARD effect
● void Card.EnableReviveLimit (Card c)
Add a limit to the cs for c
## Actually is not copyable and will not be affected by invalid EFFECT_UNSUMMONABLE_CARD and EFFECT_REVIVE_LIMIT effects
● void Card.CompleteProcedure (Card c)
So that c to complete the formal call procedures
## This function can also be implemented with Card.SetStatus
● bool Card.IsDisabled (Card c)
Check whether c is in an invalid state
● bool Card.IsDestructable (Card c [, Effect e])
Check whether c is destructible
● bool Card.IsSummonableCard (Card c)
Check whether c is a card that can be called normally
● bool Card.IsSpecialSummonable (Card c)
Check if you can make a special call to c
● bool Card.IsSynchroSummonable (Card c, Card tuner | nil [, Group mg])
Check whether tuner can be used as an adjustment, the field card [or mg] for the coherent material on the c cohomology summon procedures
If the tuner is nil, this function has the same effect as Card.IsSpecialSummonable
● bool Card.IsXyzSummonable (Card c, Group mg | nil [, min = 0, max = 0])
Check whether mg can be selected in the [min-max months] excessive material on the c to call the excess procedure
If mg is nil, this function has the same effect as Card.IsSpecialSummonable
● bool Card.IsSummonable (Card c, bool ignore_count, Effect e | nil [, int min = 0])
Check whether c is usually called (not including the normally called set), ignore_count = true does not check the number of calls limit
E ~ = nil check whether c can be the effect of e is usually called, min said at least the number of sacrifice (used to distinguish between compromise summons and superior call)
● bool Card.IsMSetable (Card, bool ignore_count, Effect e | nil [, int min = 0])
Check whether c can be normally called set, ignore_count = true does not check the number of calls limit
E ~ = nil then check whether c can be the effect of e is usually called set, min that at least the number of sacrifices needed (used to distinguish between compromise summoned set and superior summoned set)
● bool Card.IsSSetable (Card c [, bool ignore_field = false])
Check whether c can be set to the magic trap area, ignore_field = true is disregard of the trap area trap trap
● bool Card.IsCanBeSpecialSummoned (Card c, Effect e, int sumtype, int sumplayer, bool nocheck, bool nolimit [, int sumpos = POS_FACEUP, int target_player = sumplayer])
Check whether c can be sumplayer with the effect of the player e to sumtype form sumpos special summon to target_player field
If nocheck is true, the call condition of c is not checked, and if nolimit is true, then the limit of c is not checked
● bool Card.IsAbleToHand (Card c)
Check whether c can hand
Note: This function returns false only if the card or player is affected by the effect of being unable to join the hand (such as Ray King)
# # The following functions are similar
● bool Card.IsAbleToDeck (Card c)
Check whether c can be sent to the card group
● bool Card.IsAbleToExtra (Card c)
Check if c can send extra cards
This function returns false for non-fusion, cohomology, and overdrive cards
● bool Card.IsAbleToGrave (Card c)
Check whether c can be sent to the cemetery
● bool Card.IsAbleToRemove (Card c [, int player])
Check whether c can be player except player
● bool Card.IsAbleToHandAsCost (Card c)
Check whether c can be sent as the cost of hand cards
Note: This function appends the actual destination of c to Card.IsAbleToHand
This function returns false when c is sent to the other hand (if the retraction loop is applicable, or c is a blend, cohomology, and oversize)
# # The following functions are similar
● bool Card.IsAbleToDeckAsCost (Card c)
Check whether c can be sent to the card as a cost group
● bool Card.IsAbleToExtraAsCost (Card c)
Check whether c can be sent as an additional cost card group
● bool Card.IsAbleToDeckOrExtraAsCost (Card c)
Check whether c can be sent as a cost card group or additional card group (for the new Yu-xia, sword fighting beast fusion call monster detection procedures)
● bool Card.IsAbleToGraveAsCost (Card c)
Check whether c can be sent to the cemetery as a cost
● bool Card.IsAbleToRemoveAsCost (Card c)
Check whether c can be excluded as a cost
● bool Card.IsReleasable (Card c)
Check whether c can be liberated (non-superior call)
● bool Card.IsReleasableByEffect (Card c)
Check whether c can be liberated by the effect
● bool Card.IsDiscardable (Card [, int reason = REASON_COST])
Check whether c can be discarded
Note: This function is only used to detect,
REASON_DISCARD as a reason to hand a card to the tomb and will not lead to that card can not be discarded
● bool Card.IsAttackable (Card c)
Check whether c can attack
● bool Card.IsChainAttackable (Card c [, int ac = 2, bool monsteronly = false])
Check whether c can be a continuous attack, c the number of attacks declared> = ac return false
Note: This function returns false when c has made multiple attacks due to effects such as flashing swords
● bool Card.IsFaceup (Card c)
Check whether c is a surface-side representation
● bool Card.IsAttackPos (Card c)
Check whether c is an attack
● bool Card.IsFacedown (Card c)
Check whether c is the backside representation
● bool Card.IsDefensePos (Card c)
Check whether c is a defensive representation
● bool Card.IsPosition (Card c, int pos)
Check whether c is the representation pos
● bool Card.IsPreviousPosition (Card c, int pos)
Check whether the c position before the change is represented by pos
● bool Card.IsControler (Card c, int controler)
Check whether the current control of c is a controler
● bool Card.IsOnField (Card c)
Check if c is present
Note: This function returns false when the monster summons, reverses the call, and when the summon is successful
● bool Card.IsLocation (Card c, int location)
Check if c is the current location
Note: When the monster summon, reverse call, call special summon before the success,
And location = LOCATION_MZONE, this function returns false
● bool Card.IsPreviousLocation (Card c, int location)
Check if the location before c is location
● bool Card.IsLevelBelow (Card c, int level)
Check whether c is below the level level (at least 1)
● bool Card.IsLevelAbove (Card c, int level)
Check whether c is above level level
● bool Card.IsRankBelow (Card c, int rank)
Check whether c is below the rank rank (at least 1)
● bool Card.IsRankAbove (Card c, int rank)
Check whether c is above the class rank
● bool Card.IsAttackBelow (Card c, int atk)
Check whether c is attack power atk below (at least 0)
● bool Card.IsAttackAbove (Card c, int atk)
Check whether c is more than attack power atk
● bool Card.IsDefenseBelow (Card c, int def)
Check whether c is defensive def below (at least 0)
● bool Card.IsDefenseAbove (Card c, int def)
Check c is defensive def above
● bool Card.IsPublic (Card c)
Check if c is open
● bool Card.IsForbidden (Card c)
Check whether c is in the declaration prohibition state
● bool Card.IsAbleToChangeControler (Card c)
Check whether c can change the control
Note: This function returns false only if the card receives the effect of "Can not change control"
● bool Card.IsControlerCanBeChanged (Card c)
Check whether the control of c can be changed
Note: This function appends the space on the field to the Card.IsAbleToChangeControler
● bool Card.AddCounter (Card c, int countertype, int count [, int singly = false])
Place count count counter type c for c, singly true to add one to the upper limit
Void Card.RemoveCounter (Card c, int player, int countertype, int count, int reason)
Let the player player remove count counters of type c on c with reason
● int Card.GetCounter (Card c, int countertype)
Returns the number of countertype types on c
Void Card.EnableCounterPermit (Card c, int countertype [, int location])
Allow c [to be placed in the location location] that can be placed "can be placed on the counter countertype
The default value of location depends on the type of c, and the monster needs to specify whether it can place a pointer in a monster or pendulum area
Void Card.SetCounterLimit (Card c, int countertype, int count)
Set c to place the upper limit of countertype type counters
● bool Card.IsCanTurnSet (Card c)
Check whether c can turn into the inside of that
● bool Card.IsCanAddCounter (Card c, int countertype, int count [, int singly = false])
Check if c can place count counters of type countertype [singly = true]
● bool Card.IsCanRemoveCounter (Card c, int player, int countertype, int count, int reason)
Check if the player player can remove count counters of type c on c for reason
● bool Card.IsCanBeFusionMaterial (Card c [, Card fc, bool ignore_mon = false])
Check whether c can become a [fusion monster fc] fusion material, ignore_mon = true does not check whether c is a monster
● bool Card.IsCanBeSynchroMaterial (Card c [, Card sc, Card tuner])
Check whether c can become a homophonic homophonic monster sc material
● bool Card.IsCanBeRitualMaterial (Card c [, Card sc])
Check whether c can serve as ritual monsters sc sacrifice
● bool Card.IsCanBeXyzMaterial (Card c, Card sc | nil)
Check whether c can become an excessive monster sc excess material
● bool Card.CheckFusionMaterial (Card c [, Group g, Card gc | nil, int chkf = PLAYER_NONE])
Check if g contains a set of fusion material that c needs [must contain gc]
## Check the Condition function for the effect of EFFECT_FUSION_MATERIAL according to the type of c
● bool Card.CheckFusionSubstitute (Card c, Card fc)
Check whether the c can replace the material description card name of the fusion monster fc
● bool Card.IsImmuneToEffect (Card c, Effect e)
Check whether c immune effect e (that is not affected by the impact of e)
● bool Card.IsCanBeEffectTarget (Card c, Effect e)
Check whether c can be the object of effect e
● bool Card.IsCanBeBattleTarget (Card c1, Card c2)
Check whether c1 can become a target of c2
Void Card.AddMonsterAttribute (Card c, int attribute, int race, int level, int atk, int def)
Add the monster value to the trap card
Note: Values ​​recorded in the database are treated as the original value, and are set to zero here
Void Card.TrapMonsterComplete (Card c, int extra_type)
So trap the trap monster c to occupy a magic trap grid, and add the extra_type monster type
Note: The Trap Monster attribute refers to both the monster and the trap at the same time, and an extra trap that makes a magic trap can not be used
Void Card.CancelToGrave (Card c [, bool cancel = true])
Cancel to send to determine the state tomb, cancel = false to reset the tomb to determine the state
Note: to send the tomb to determine the state refers to the field to start without leaving field magic and traps, the state of these cards
Cards sent to the tomb determine the state can not return cards and cards, and sent to the cemetery at the end of the chain
The purpose of this function is to cancel this state to stay in the field, for the light of the sword and seal the Scarlet Scarlet card
● int, int Card.GetTributeRequirement (Card c)
Returns the minimum and maximum number of sacrifices required to normally call c
● Card Card.GetBattleTarget (Card c)
Returns the card that fought with c
● Group, bool Card.GetAttackableTarget (Card c)
Returns the attackable card set and whether it can attack directly
Void Card.SetHint (Card c, int type, int value)
Set the card prompt for type c to c
Type can only be the following value, the corresponding value type is
CHINT_TURN Turns
CHINT_CARD card id
CHINT_RACE race
CHINT_ATTRIBUTE property
CHINT_NUMBER number
CHINT_DESC Description
● void Card.ReverseInDeck (Card c)
The setting c is indicated in the front of the deck
Void Card.SetUniqueOnField (Card c, int s, int o, int unique_code [, int unique_location = LOCATIOIN_ONFIELD])
Set c to unique_code only in the field [or monster area or magic trap area, determined by the unique_location] can only exist one
S is not 0 will check the uniqueness of their field, o is not 0 check the other field uniqueness
● bool Card.CheckUniqueOnField (Card c, int check_player)
Check the uniqueness of c in the check_player field
Void Card.ResetNegateEffect (Card c [, int code1, ...])
Reset c affected by the effect of cards whose card number is code1, code2 ...
Void Card.AssumeProperty (Card c, int assume_type, int assume_value)
Use the value of assume_type c as assume_value (genome fighter)
Assume_type is the following type
ASSUME_CODE card number
The ASSUME_TYPE type
ASSUME_LEVEL class
ASSUME_RANK class
ASSUME_ATTRIBUTE property
ASSUME_RACE race
ASSUME_ATTACK Attack power
ASSUME_DEFENSE Defense
Void Card.SetSPSummonOnce (Card c, int spsummon_code)
Set c can only be a round of a special call (they reveal, wave dragon)
The same spsummon_code shares 1 number of times
========== Effect ==========
● Effect Effect.CreateEffect (Card c)
Create a new empty effect
And the owner of the effect is c
● Effect Effect.GlobalEffect ()
Create a new global effect
● Effect Effect.Clone (Effect e)
Create a new copy of effect e
● void Effect.Reset (Effect e)
The effect of e reset, reset can not be used after this effect
● int Effect.GetFieldID (Effect e)
Gets the id of the effect e
● void Effect.SetDescription (Effect e, int desc)
Sets the effect description for effect e
Void effect.SetCategory (Effect e, int cate)
Set the Category property
Void effect.SetType (Effect e, int type)
Set the Type property for effect e
Void effect.SetCode (Effect e, int code)
Set the Code property for effect e
Void effect.SetProperty (Effect e, int prop1 [, int prop2])
Set the Property property
● void Effect.SetRange (Effect e, int range)
Set the Range property for effect e
Void effect.SetAbsoluteRange (Effect e, int playerid, int s_range, int o_range)
Set the target range property and set the EFFECT_FLAG_ABSOLUTE_RANGE flag
Playerid! = 0 s_range and o_range invert
Void effect.SetCountLimit (Effect e, int count [, int code = 0])
Set the number of times a round can be launched count (only trigger type effect is valid), the same code (not equal to 0 or 1) share a number of times
The code contains the following values ​​that have special properties
EFFECT_COUNT_CODE_OATH The number of vows
EFFECT_COUNT_CODE_DUEL The number of times in the duel
EFFECT_COUNT_CODE_SINGLE the same card more than the number of public use of the effect (not the same name card)
Void effect.SetReset (Effect e, int reset_flag [, int reset_count = 1])
Set the reset parameter
Void effect.SetLabel (Effect e, int label)
Sets the Label property
Void effect.SetLabelObject (Effect e, Card | Group | Effect labelobject)
Sets the LabelObject property
Void effect.SetHintTiming (Effect e, int s_time [, int o_time = s_time])
Set the prompt point
Void effect.SetCondition (Effect e, function con_func)
Set the Condition property
● void Effect.SetCost (Effect e, function cost_func)
Set the Cost property
Void effect.SetTarget (Effect e, function targ_func)
Set the Target property
● void Effect.SetTargetRange (Effect e, int s_range, int o_range)
Set the Target Range property for effect e
S_range refers to our area of ​​influence
The o_range value affects the partner area
If the EFFECT_FLAG_ABSOLUTE_RANGE flag is specified in the property property,
Then s_range refers to the player 1 affected area, o_range refers to player 2 affected area
If this is a call (cover) / limit call (cover) / special call procedure
(EFFECT_SUMMON_PROC / EFFECT_LIMIT_SUMMON_PROC / EFFECT_SPSUMMON_PROC, etc.)
And the property specifies the EFFECT_FLAG_SPSUM_PARAM flag,
Then s_range that special summoned to the players of the venue,
O_range represents a selectable representation
Void effect.SetValue (Effect e, function | int | bool val)
Set the Value property
● void Effect.SetOperation (Effect e, function op_func)
Set the Operation property
Void effect.SetOwnerPlayer (Effect e [, int player])
Set the OwnerPlayer property to player
● int Effect.GetDescription (Effect e)
Returns the description of the effect
● int Effect.GetCode (Effect e)
Returns the code property
● int Effect.GetType (Effect e)
Returns the Type property
● int, int Effect.GetProperty (Effect e)
Returns the Property property
● int Effect.GetLabel (Effect e)
Returns the Label property
● Card | Group | Effect Effect.GetLabelObject (Effect e)
Returns the LabelObject property
● int Effect.GetCategory (Effect e)
Returns the Category property
● Card Effect.GetOwner (Effect e)
Returns the Owner property
● Card Effect.GetHandler (Effect e)
Returns the card on which the effect takes effect (usually a card that registers the effect with Card.RegisterEffect)
● function Effect.GetCondition (Effect e)
Returns the condition property
● function Effect.GetTarget (Effect e)
Returns the target attribute
● function Effect.GetCost (Effect e)
Returns the cost attribute
● function | int Effect.GetValue (Effect e)
Returns the value attribute
● function Effect.GetOperation (Effect e)
Returns the operation attribute
● int Effect.GetActiveType (Effect e)
Returns the effect type of e (monster, magic, trap)
And launch the effect of the type of card is not necessarily the same, such as the spirit of pendulum effect as a magic card effect
● bool Effect.IsActiveType (Effect e, int type)
Check if the effect type of e (monster, magic, trap) has a type
● int Effect.GetOwnerPlayer (Effect e)
Returns the OwnerPlayer property, which is typically the controller of the Owner
● int Effect.GetHandlerPlayer (Effect e)
Return to the current, usually Handle controller
● bool Effect.IsHasProperty (Effect e, int prop1 [, int prop2])
Check if the effect contains the flags prop1 [and prop2]
● bool Effect.IsHasCategory (Effect e, int cate)
Check whether the effect contains cate
● bool Effect.IsHasType (Effect e, int type)
Check if the effect is of type type
● bool Effect.IsActivatable (Effect e, int player)
Check whether the effect can be launched by the player
● bool Effect.IsActivated (Effect e)
Check the effect of e is the effect of starting (chassis)
● int Effect.GetActivateLocation (Effect e)
Returns the firing area of ​​the effect e
========== Group ==========
● Group Group.CreateGroup ()
Create a new empty deck
● void Group.KeepAlive (Group g)
Let the deck continue, set the deck to effect LabelObject needs to be set
● void Group.DeleteGroup (Group g)
Delete the card group g
● Group Group.Clone (Group g)
Create a new copy of card group g
● Group Group.FromCards (Card c [, ...])
Indefinite parameters, the incoming card into a combination of all cards and return
● void Group.Clear (Group g)
Empty the deck
● void Group.AddCard (Group g, Card c)
Increase g to g
● void Group.RemoveCard (Group g, Card c)
Remove c from g
● Card Group.GetFirst (Group g)
Returns the first card in g and resets the current pointer to the first card in g
Returns nil if card does not exist in g
● Card Group.GetNext (Group g)
Point the pointer to the next card and return the card, or nil if it does not exist
● int Group.GetCount (Group g)
Returns the number of cards in g
● void Group.ForEach (Group g, function f)
Call f once for each card in g as a parameter
● Group Group.Filter (Group g, function f, Card ex | nil, ...)
The filter function filters the card from g that satisfies the filter condition f and is not equal to ex
Starting from the 4th parameter as an additional parameter
● int Group.FilterCount (Group g, function f, Card ex | nil, ...)
Filter function, and Group.Filter is basically the same, the difference is that this function only returns the number of cards to meet the conditions
● Group Group.FilterSelect (Group g, int player, function f, int min, int max, Card ex | nil, ...)
Filter function, allowing players to choose from the g player min-max sheets meet the screening conditions f and not equal to the ex card
Starting with the 7th argument is an additional parameter
● Group Group.Select (Group g, int player, int min, int max, Card ex | nil)
Let player player from g select the min-max Zhang is not equal to the ex card
● Group Group.RandomSelect (Group g, int player, int count)
Let the player player randomly select count cards from g
Because it is a random choice, so the basic parameter useless player, randomly selected by the system
● bool Group.IsExists (Group g, function f, int count, Card ex | nil, ...)
Filter function to check if there is at least count of cards in g that satisfy the filter condition f and not equal to ex
Starting from the 5th parameter as an additional parameter
● bool Group.CheckWithSumEqual (Group g, function f, int sum, int min, int max, ...)
The subset summation decision function, f, is a function that returns an interger value
Check whether there is a subset of min-max in g that satisfies that the sum of the values ​​of each element of the subset f is equal to sum, starting at the 6th argument as an extra parameter
For example: g: CheckWithSumEqual (Card.GetSynchroLevel, 7,2,99)
Check if the sum of the same call levels in a subset of g satisfies a subset equal to 7
● Group Group.SelectWithSumEqual (Group g, int player, function f, int sum, int min, int max, ...)
Let the player player select a subset of min-max from g so that the sum of the specific functions of the subset is equal to sum, starting at the 7th argument as an extra parameter
● bool Group.CheckWithSumGreater (Group g, function f, int sum, ...)
The sum of the subsets is determined by a function f, which is a function that returns an interger value
Check that there is a subset in g that satisfies that the sum of the values ​​of each element of the subset f is just greater than or equal to sum, starting at the fourth argument as an extra parameter
For example: g: CheckWithSumGreater (Card.GetRitualLevel, 8)
Check if the sum of the ritual classes in g satisfies a subset of 8 or greater
Note: The decision must be "just" greater than or equal to
To grade, for example, to make the total level is greater than or equal to 8, you can choose LV1 + LV7 and can not choose LV1 + LV4 + LV4
● Group Group.SelectWithSumGreater (Group g, int player, function f, int sum, ...)
Let the player player select a subset from g so that the sum of the particular function f of the subset is greater than or equal to sum, starting at the fifth argument as an extra parameter
● Group, int Group.GetMinGroup (Group g, function f, ...)
F is a function that returns an interger value, and the card with the smallest value of f is selected from g
The second return value is the minimum value, starting at the third parameter as an additional parameter
To use the second return value Note Check g is not empty
● Group, int Group.GetMaxGroup (Group g, function f, ...)
F is the function that returns an interger value, and the card with the largest value of f is selected from g
The second return value is the maximum value, starting with the third parameter as an additional parameter
To use the second return value Note Check g is not empty
● int Group.GetSum (Group g, function f, ...)
Calculates the sum of the values ​​of all cards in g, f is the value function for each card, starting with the third parameter as an additional parameter
● int Group.GetClassCount (Group g, function f, ...)
Calculate the number of all cards in g, f is the basis of the classification, return the same value as the same category, starting from the first three parameters for additional parameters
● void Group.Remove (Group g, function f, Card ex | nil, ...)
Remove all cards from g that satisfy the filter condition f and not equal to ex, the fourth parameter starts with the extra argument
● void Group.Merge (Group g1, Group g2)
Combine all cards in g2 to g1
Note: g2 itself does not change
● void Group.Sub (Group g1, Group g2)
Remove the card from g1 that belongs to g2
Note: g2 itself does not change
● bool Group.Equal (Group g1, Group g2)
It is judged whether or not g1 and g2 are the same
● bool Group.IsContains (Group g, Card c)
Check g for card c
● Card Group.SearchCard (Group g, function f, ...)
Returns the first card in g that satisfies the filter condition f, starting at the third argument as an extra argument
========== Duel ==========
● void Duel.EnableGlobalFlag (int global_flag)
Set the global flag global_flag
● int Duel.GetLP (int player)
Returns the current LP of the player's player
● void Duel.SetLP (int player, int lp)
Set the player's current LP to lp
● int Duel.GetTurnPlayer ()
Returns the current round of players
● int Duel.GetTurnCount ()
Returns the current number of turns
● int Duel.GetDrawCount (int player)
Returns the player's number of rules drawn per turn
● void Duel.RegisterEffect (Effect e, int player)
Register the effect e as the player's effect to the global environment
● Effect Duel.RegisterFlagEffect (int player, int code, int reset_flag, int property, int reset_count)
For the player to register the global environment logo effect
This effect always affects the player's (EFFECT_FLAG_PLAYER_TARGET) and will not be invalidated
The rest is the same as Card.RegisterFlagEffect
● int Duel.GetFlagEffect (int player, int code)
Returns the number of specific marker effects for the player's player
● void Duel.ResetFlagEffect (int player, int code)
Manually reset the player player's specific logo effect
● int Duel.Destroy (Card | Group targets, int reason [, int dest = LOCATION_GRAVE])
Destroy targets dest by reason reason, the return value is actually destroyed by the number
If the reason contains REASON_RULE, the break event will not check whether the card is immune,
Does not trigger the generation of breaking effect and ignore the "can not destroy"
● int Duel.Remove (Card | Group targets, int pos, int reason)
In the case of reason, except for the pos form, the return value is the actual number being manipulated
If the reason contains REASON_TEMPORARY, then the exception is considered temporary, you can return to the field by Duel.ReturnToField
● int Duel.SendtoGrave (Card | Group targets, int reason)
The reason for the targets to the cemetery, the return value is the actual number of operations
Int Duel.SendtoHand (Card | Group targets, int player | nil, int reason)
The reason to target the player sent to the player's hand, the return value is the actual number of operations
If player is nil, the card's holder's hand is returned
Int Duel.SendtoDeck (Card | Group targets, int player | nil, int seq, int reason)
The reason for the targets sent to the players player card group, the return value is the actual number of operations
If player is nil, the card holder of the card is returned
If seq = 0, it is the top of the returned card group; seq = 1 is the bottom of the returned card group;
The rest of the case is to return to the top and mark the need to wash the card group
Int Duel.SendtoExtraP (Card | Group targets, int player | nil, int reason)
The reason for the reason the spirit of the swing card targets sent to the player player extra card group, the return value is the actual number of operations
If player is nil, it returns the extra card group for the card holder
● Group Duel.GetOperatedGroup ()
This function returns a card set that was actually manipulated before a card operation
Duel. Destroy, Duel.Remove, Duel.SendtoGrave,
Duel.SendtoHand, Duel.SendtoDeck, Duel.SendtoExtraP, Duel.Release,
Duel.ChangePosition, Duel.SpecialSummon, Duel.DiscardDeck
● void Duel.Summon (int player, Card c, bool ignore_count, Effect e | nil [, min = 0])
Let the player to the effect of e to c is usually called (not set), at least use min sacrifice
If e = nil, then in accordance with the general rules of the general call usually call
If ignore_count = true, the usual number of calls per turn limit is ignored
● void Duel.SpecialSummonRule (int player, Card c)
Let player player on c special summon procedures
● void Duel.SynchroSummon (int player, Card c, Card tuner [, Group mg])
Let the player player to tuner as the adjustment [mg for the material] on the c cohomology summon procedures
● void Duel.XyzSummon (int player, Card c, Group mg | nil [, min = 0, max = 0])
Let the player player [from the mg] [choose min-max a material] on the c to call the excess procedure
Mg is not empty and min is 0 mg directly to all the excess material
Void void Duel.MSet (int player, Card c, bool ignore_count, Effect e | nil [, min = 0])
Let the player to the effect of c is usually called Set, at least use min sacrifice
If e = nil, then in accordance with the general rules of the general call usually call
If ignore_count = true, the usual number of calls per turn limit is ignored
● void | int Duel.SSet (int player, Card | Group targets [, int target_player = player])
Let the player player place the targets into the target trap's magic trap
If targets is Group, the number of successful operations is returned
● Card Duel.CreateToken (int player, int code [, int setcode, int attack, inte defense, int level, int race, int attribute])
Creates a new Token with the passed in parameter value and returns
Int Duel.SpecialSummon (Card | Group targets, int sumtype, int sumplayer, int target_player, bool nocheck, bool nolimit, int pos)
Let player player to sumtype way, pos that special targets to target_player target field
If nocheck is true, the card's calling condition is disregarded. If nolimit is true,
The return value is the number of cards that were successfully summoned
● bool Duel.SpecialSummonStep (Card c, int sumtype, int sumplayer, int target_player, bool nocheck, bool nolimit, int pos)
This function is Duel.SpecialSummon decomposition process, only a special summon a card c
This function is used for an effect while simultaneously calling multiple cards with different parameters
This function must be used with Duel.SpecialSummonComplete
The return value indicates whether or not the special call succeeded
● void | int Duel.SpecialSummonComplete ()
This function is called after determining that a number of calls to Duel.SpecialSummonStep are completed, for triggering an event
● bool Duel.IsCanAddCounter (int player, int countertype, int count, Card c)
Check if the player can add count counterstype to card c
● bool Duel.RemoveCounter (int player, int s, int o, int countertype, int count, int reason)
Causes the player player to remove count objects of the countertype type present on the farm for reason reasons. The return value indicates success
S represents the position of the player's own removable pointer, o represents the position of the opponent's removable pointer for the player
● bool Duel.IsCanRemoveCounter (int player, int s, int o, int countertype, int count, int reason)
Checks whether the player player can remove count objects of the countertype type on the farm for reason reasons
S represents the position of the player's own removable pointer, o represents the position of the opponent's removable pointer for the player
Int Duel.GetCounter (int player, int s, int o, int countertype)
Returns the number of counterstype types that exist on the farm
S represents the position of the player's own removable pointer, o represents the position of the opponent's removable pointer for the player
Int Duel.ChangePosition (Card | Group targets, int au [, int ad = au, int du = au, int dd = au, bool noflip = false, bool setavailable = false])
Changing the representation of targets returns the number of actual operations
The attack on the watch side becomes au, the attack on the inside indicates ad,
The side of the garage that becomes du, inside the garrison said to become dd
If noflip = true, the reverse effect will not be triggered (but the effect of inversion will be triggered)
If setavailable = true then the object will become the back side also launched reversal effect
● int Duel.Release (Card | Group targets, int reason)
The reason for the liberation of targets to return the value of the actual liberation of the number of targets
If the reason contains REASON_COST, it will not check whether the card is not affected by the effect
● bool Duel.MoveToField (Card c, int move_player, int target_player, int dest, int pos, bool enabled)
Let the player move_player to move the c target_player field, the return value that is successful
Dest can only be LOCATION_MZONE or LOCATION_SZONE, pos represents an optional representation, and enable indicates whether or not the effect of c is applied immediately
● bool Duel.ReturnToField (Card c [, int pos])
To return the form c to the field pos, pos default value is the expression before leaving the field, the return value indicates whether the success
C must be a REASON_TEMPORARY reason to leave, and leave the position did not leave that position
● void Duel.MoveSequence (Card c, int seq)
Move the serial number of c, usually used to change the grid in the field or in the card group to move to the top or bottom
● void Duel.SetChainLimit (function f)
Set the chain conditions, f function prototype for bool f (e, ep, tp)
E said to limit the effect of chain, ep said to limit the chain of players, tp that launched the effect of the players
Calling this function in cost or target processing can limit the kinds of effects that can be chained (such as superfusion)
If f returns false, it means that the chain can not be chained. Once the chain condition has been set, the new chain will be canceled.
● void Duel.SetChainLimitTillChainEnd (function f)
Function with Duel.SetChainLimit, but this function sets the chain until the end of the chain will be lifted
● Effect Duel.GetChainMaterial (int player)
Returns the effect of the chained material that is played by the player. This function is only used to blend the effect of a class card
● void Duel.ConfirmDecktop (int player, int count)
Confirm the player card group above count cards
● void Duel.ConfirmCards (int player, Card | Group targets)
Identify targets for the player
● void Duel.SortDecktop (int sort_player, int target_player, int count)
Let the player sort_player on the player target_player card group at the top count card sort
● bool [, Group, int, int, Effect, int, int] Duel.CheckEvent (int event [, bool get_info])
Check whether the current event point
If get_info = true and is the correct time point also returns the trigger point information eg, ep, ev, re, r, rp
● void Duel.RaiseEvent (Group | Card eg, int code, Effect re, int r, int rp, int ep, int ev)
To eg, ep, ev, re, r, rp trigger a point in time
● void Duel.RaiseSingleEvent (Card ec, int code, Effect re, int r, int rp, int ep, int ev)
To eg, ep, ev, re, r, rp for the card ec trigger a single point in time
● bool Duel.CheckTiming (int timing)
Check whether the current prompt is the timing point
● int, int Duel.GetEnvironment ()
Returns the two values ​​that represent the current venue code, as well as the source of the current venue effect
The site code refers to the code of the venue card in effect, or the value of the effect of the venue change
Source Player is the controller of the card in effect, or the controller of the Poseidon Witch, etc.
● bool Duel.IsEnvironment (int code [, int player = PLAYER_ALL])
Check whether the player player is the source code of the venue code
The site code refers to the code of the venue card in effect, or the value of the effect of the venue change
Source Player is the controller of the card in effect, or the controller of the Poseidon Witch, etc.
● void Duel.Win (int player, int win_reason)
The current effect is dealt with so players win_reason duel victory
● int Duel.Draw (int player, int count, int reason)
Let the player play the count card with the reason, and return the number of cards actually drawn
If the reason contains REASON_RULE the draw is not affected by the "can not draw" effect
● int Duel.Damage (int player, int value, int reason [, bool is_step = false])
To the reason reason to give players the player caused value damage, the actual value of the damage received
The return value is 0 if the damage becomes an effect such as a reply.
Is_step to true is the damage / recovery LP process decomposition, need to call Duel.RDComplete () trigger point
Int Duel.Recover (int player, int value, int reason [, bool is_step = false])
To reason reason players to player value LP, return to the actual response value
The return value is 0 if it is affected by an effect such as a return to harm.
Is_step to true is the damage / recovery LP process decomposition, need to call Duel.RDComplete () trigger point
● void Duel.RDComplete ()
In the call Duel.Damage / Duel.Recover, if is_step parameter is true, you need to call this function when the trigger point
● bool Duel.Equip (int player, Card c1, Card c2 [, bool up = true, bool is_step = false])
The player as a player c1 equipment card equipment to the c2, the return value that is successful
Up = false to retain the card before the representation
Is_step = true is the decomposition of the equipment process, the need to cooperate with Duel.EquipComplete use
● void Duel.EquipComplete ()
In the call Duel.Equip, if is_step parameter is true, you need to call this function when the trigger point
● bool Duel.GetControl (Card | Group targets, int player [, int reset_phase = 0, int reset_count = 0])
Let players get control of the player, the return value indicates success
● bool Duel.SwapControl (Card c1, Card c2 [, int reset_phase = 0, int reset_count = 0])
Exchange c1 and c2 control, the return value that is successful
● bool Duel.CheckLPCost (int player, int cost)
Check player player can pay cost point lp
• void Duel.PayLPCost (int player, int cost)
Allow players to pay cost point player lp
● int Duel.DiscardDeck (int player, int count, int reason)
To reason player player card group top count cards sent to the cemetery, the actual transfer of the number
Int Duel.DiscardHand (int player, function f, int min, int max, int reason, Card ex | nil, ...)
Filter function allows the player to select and discard the player to meet the screening conditions f soldiers is not equal to ex min-max Zhang card
The seventh argument starts as an extra parameter
● void Duel.DisableShuffleCheck ([disable = true])
So that the next operation does not check for the need for a wash card set or a hand card
Note: If you do not call this function,
In addition to calling Duel.DiscardDeck and Duel.Draw remove the card from the card group or add the card to the card
Or the card is added to the deck (not the top or bottom), the system automatically cleans the card group or the hand card at the end of the effect process
If you do not want to do so, for example, from the top of the card group, except for a card and other operations, you need to call this function
This function only ensures that no subsequent scrub detection is performed in the next operation
● void Duel.ShuffleDeck (int player)
Manually cleans the player group
NOTE: The status of the wash detection is reset
● void Duel.ShuffleHand (int player)
Manual wash player player's hand card
NOTE: The status of the wash detection is reset
● void Duel.ShuffleSetCard (Group g)
Cut the card (magic hat) over the monster area
● void Duel.ChangeAttacker (Card c)
Will attack the monster into c
Note: This function will make the original attack monster attack
# ● void Duel.ReplaceAttacker (Card c)
# Use c to replace the currently attacked card for the damage phase
● bool Duel.ChangeAttackTarget (Card c | nil)
Will attack the object into c, c for nil that direct attack, the return value indicates whether the successful transfer of attack objects
● void Duel.ReplaceAttackTarget (Card c)
(Reserved)
● void Duel.CalculateDamage (Card c1, Card c2)
Let c1 and c2 combat damage calculation
● int Duel.GetBattleDamage (int player)
Returns the player's player's damage during this battle
● void Duel.ChangeBattleDamage (int player, int value [, bool check = true])
The player player in this battle by the harm into value, check for false is the original combat damage to 0 also change the damage
● void Duel.ChangeTargetCard (int chainc, Group g)
The chain chainc the object into g
● void Duel.ChangeTargetPlayer (int chainc, in player)
The chain chainc the object player into player
● void Duel.ChangeTargetParam (int chainc, int param)
The chain chainc parameters into param
● void Duel.BreakEffect ()
Interrupt the current effect, so that after the effect of treatment as not treated simultaneously, this function will cause the wrong time
● void Duel.ChangeChainOperation (int chainc, function f)
The effect of the chain chainc processing function replaced by f, used to achieve "the effect becomes" effect
● bool Duel.NegateActivation (int chainc)
So that the chain chainc launch invalid, the return value that is successful
● bool Duel.NegateEffect (int chainc)
So that the chain chainc invalid effect, the return value that is successful
● void Duel.NegateRelatedChain (Card c, int reset)
So that card c has launched the chain are invalid, reset event occurs reset
● void Duel.NegateSummon (Card | Group targets)
So that the call is being summoned · reverse call special summoned targets invalid
● void Duel.IncreaseSummonedCount ([Card c])
Manual consumption of 1 player [for card c] the number of the usual call
● bool Duel.CheckSummonedCount ([Card c])
Check whether the round player can still summon this turn [Card c]
● int Duel.GetLocationCount (int player, int location [, int use_player, int reason = LOCATION_REASON_TOFIELD])
Returns the number of spaces available in the player's field
Location can only be LOCATION_MZONE or LOCATION_SZONE
Reason is LOCATION_REASON_TOFIELD or LOCATION_REASON_CONTROL
# # Additional parameters related to the effect of Caesar fighting field
● Card Duel.GetFieldCard (int player, int location, int seq)
Back to player The player's field is located in the location number seq card, commonly used to obtain the field area · Spirit pendulum area card
● bool Duel.CheckLocation (int player, int location, int seq)
Check if the player's player field is seq in the location of the space is available
● int Duel.GetCurrentChain ()
Returns the chain number currently being processed
● ... Duel.GetChainInfo (int chainc, ...)
Returns the chainc information, if chainc = 0, returns the chain of information currently being processed
This function returns the corresponding number of return values ​​in sequence according to the number of arguments passed in. The arguments can be:
CHAININFO_CHAIN_COUNT The serial number of the chain
CHAININFO_TRIGGERING_EFFECT The effect of the chain
CHAININFO_TRIGGERING_PLAYER
CHAININFO_TRIGGERING_CONTROLER The player to which the chained position belongs
CHAININFO_TRIGGERING_LOCATION The location where the chain occurred
CHAININFO_TRIGGERING_SEQUENCE The number of the position where the chain occurred
CHAININFO_TARGET_CARDS Chain of object cards
CHAININFO_TARGET_PLAYER The target player for the chain
CHAININFO_TARGET_PARAM The object parameters of the chain
CHAININFO_DISABLE_REASON The chain is invalid for the effect of the effect
CHAININFO_DISABLE_PLAYER The chain is invalid for the reason the player
CHAININFO_CHAIN_ID The unique identifier for the chain
CHAININFO_TYPE Type of Chain Card (Monster, Magic, Trap)
CHAININFO_EXTTYPE The specific type of chain card (for example, monster, continuous magic, counterattack trap)
For example:
Duel.GetChainInfo (0, CHAININFO_TRIGGERING_LOCATION, CHAININFO_TARGET_CARDS)
This will return the location and object card where the current chain occurred
● Card, ... Duel.GetFirstTarget ()
Returns all linked object cards that are normally only used when an object is used
● int Duel.GetCurrentPhase ()
Returns the current stage
● void Duel.SkipPhase (int player, int phase, int reset_flag, int reset_count [, int value])
Skip player phase phase player, and in a specific stage after reset, reset parameters and the same effect
#value is only useful for phase = PHASE_BATTLE, value = 1 Skip the end of the combat phase, for "turn into the end of the round" (Lucky Elvis, Flash)
● bool Duel.IsDamageCalculated ()
Used to check if damage has been calculated during the damage phase
● Card Duel.GetAttacker ()
Return the card for this combat attack
● Card | nil Duel.GetAttackTarget ()
Return to the battle was attacked card, if the return nil said that a direct attack
● bool Duel.NegateAttack ()
Invalid This attack, the return value indicates whether the success
This attack has been invalidated by other effects or cause the attack card can not attack is false
● void Duel.ChainAttack ([Card c])
So that the attack card [or card c] can be carried out an attack (opening up, the queen of the Queen)
● void Duel.Readjust ()
Refresh the card information on the field
Unspecified or unclear principle Do not use this function to avoid an infinite loop
● void Duel.AdjustInstantly ([Card c])
Manually refreshing the card's inactive state on card [affected by card c]
● Group Duel.GetFieldGroup (int player, int s, int o)
Returns the card at the specified location
● int Duel.GetFieldGroupCount (int player, int s, int o)
Returns the number of cards in the specified location
● Group Duel.GetDecktopGroup (int player, int count)
Returns the count card at the top of the player's deck
● Group Duel.GetMatchingGroup (function f, int player, int s, int o, Card ex | nil, ...)
Filter function to return to the specified location to meet the filter condition f and not equal to the ex card
The sixth parameter starts as an extra parameter
Int Duel.GetMatchingGroupCount (function f, int player, int s, int o, Card ex | nil, ...)
Filter function to return to the specified location to meet the filter condition f and not equal to the number of ex card
Card Duel.GetFirstMatchingCard (function f, int player, int s, int o, Card ex | nil, ...)
Filter function to return to the specified location to meet the filter condition f and not equal to the first card ex
The sixth parameter starts as an extra parameter
● bool Duel.IsExistingMatchingCard (function f, int player, int s, int o, int count, Card ex | nil, ...)
Filter the function to check if there are at least count cards that satisfy the filter condition f and not equal to ex
The seventh argument starts as an extra parameter
● Group Duel.SelectMatchingCard (int sel_player, function f, int player, int s, int o, int min, int max, Card ex | nil, ...)
Filter function, the player sel_player select the specified location to meet the filter condition f and not equal to the ex min-max card
The ninth parameter starts as an extra parameter
● Group Duel.GetReleaseGroup (int player [, bool use_hand = false])
Return to the player player can be liberated (non-superior summoned use) of the deck, use_hand is true, including the hand card
● integer Duel.GetReleaseGroupCount (int player [, bool use_hand = false])
Return player player can be liberated (non-superior summoned with) the number of cards, use_hand is true, including the hand card
● bool Duel.CheckReleaseGroup (int player, function f, int count, Card ex | nil, ...)
Check if the player has at least count of cards that meet the filter condition f and are not equal to ex (non-superior summons)
The fifth parameter starts as an extra parameter
● Group Duel.SelectReleaseGroup (int sel_player, function f, int min, int max, Card ex | nil, ...)
Filter function, allowing players to choose from the field min-max Zhang is not equal to ex to meet the conditions f can be liberated card (non-superior summon)
● bool Duel.CheckReleaseGroupEx (int player, function f, int count, Card ex | nil, ...)
Check whether there are at least count cards that can satisfy the filter condition f and are not equal to ex. (For non-superior summoning)
● Group Duel.SelectReleaseGroupEx (int player, function f, int min, int max, Card ex | nil, ...)
Filter function, allowing the player player from the field · hand card selection min-max Zhang does not equal ex to meet the conditions of f can be liberated card (non-superior call)
● Group Duel.GetTributeGroup (Card c)
Returns the deck of cards used for the normal summon c to be released (for higher-level summons)
● int Duel.GetTributeCount (Card c [, Group mg, bool ex = false])
Returns the number of sacrifices that are normally used to invoke c, where ex = true allows monsters on the other side of the field (the wing of the Sun God-Sphere)
This number does not necessarily equal the number of cards in the return value of Duel.GetTributeGroup
Because some cards can be used as two sacrifices
● Group Duel.SelectTribute (int player, Card c, int min, int max [, Group mg, bool ex = false])
Let the player player [from the mg] choose the min-max sacrifices that are normally used to summon c, ex = true to allow the monster on the other side of the field (the wing of the Sun God-Sphere)
Int Duel.GetTargetCount (function f, int player, int s, int o, Card ex | nil, ...)
Basic with Duel.GetMatchingGroupCount, the difference lies in the need to add to determine whether the card is currently being processed by the effect of the object
● bool Duel.IsExistingTarget (function f, int player, int s, int o, int count, Card ex | nil, ...)
Filter function to check whether there is at least the specified number of positions to meet the filter conditions f and not equal ex
And can become a card of an object that is currently being processed
The seventh argument starts as an extra parameter
● Group Duel.SelectTarget (int sel_player, function f, int player, int s, int o, int min, int max, Card ex | nil, ...)
Filter function, so that player sel_player select the specified location to meet the filter condition f and not equal ex
And can be the min-max card of the object that is currently processing the effect
The ninth parameter starts as an extra parameter
This function sets the currently locked object to the selected card at the same time
● Group Duel.SelectFusionMaterial (int player, Card c, Group g [, Card gc | nil, int chkf = PLAYER_NONE])
Let the player player from the g to select a group [must contain gc] fusion fusion monster c material
## Operation based on the effect of the c type of EFFECT_FUSION_MATERIAL
● void Duel.SetFusionMaterial (Group g)
Set g to be the fusion material you want to use
● void Duel.SetSynchroMaterial (Group g)
Set g to be the cohomology material you want to use
● Group Duel.SelectSynchroMaterial (int player, Card c, function f1, function f2, int min, int max [, Card smat, Group mg])
Let the player player [from mg] select a set of clips that are required for the cohomology c [must contain smat (if there is mg ~ = nil this parameter is ignored)] The number of min-max clips that satisfy the condition
F1 is to adjust the filter conditions to be met, f2 is outside the adjustment to meet the needs of the filter conditions
● bool Duel.CheckSynchroMaterial (Card c, function f1, function f2, int min, int max [, Card smat, Group mg])
Check [mg] whether there is a group [must include smat] meet the conditions of the min-max cards as cohort calls c material
F1 is to adjust the filter conditions to be met, f2 is outside the adjustment to meet the needs of the filter conditions
● Group Duel.SelectTunerMaterial (int player, Card c, Card tuner, function f1, function f2, int min, int max [, Group mg])
Let the player [from the mg] select a set of clips of the min-max cards that are tuned to be used for co-ordination of the required conditions for c.
F1 is to adjust the filter conditions to be met, f2 is outside the adjustment to meet the needs of the filter conditions
● bool Duel.CheckTunerMaterial (Card c, Card tuner, function f1, function f2, int min, int max [, Group mg])
Check to tuner as an adjustment [in the mg] whether there is a set of min-max card to meet the conditions as cohort call c material
F1 is to adjust the filter conditions to be met, f2 is outside the adjustment to meet the needs of the filter conditions
● Group Duel.GetRitualMaterial (int player)
Returns the player's deck of cards available for ritual summoning material
Including hands, the field can be the liberation of the ceremony and the cemetery and other magic people card
● void Duel.ReleaseRitualMaterial (Group g)
Liberation ceremony with the material g, if the ceremony is the cemetery and other magic cards are excluded
● void Duel.SetSelectedCard (Card | Group cards)
Set the card to the selected card for Group.SelectWithSumEqual or Group.SelectWithSumGreater,
● void Duel.SetTargetCard (Card | Group targets)
Sets the currently chained objects to targets
Note that here the object refers to the generalized object, including objects that do not take the effect that the object may have to deal with
● void Duel.ClearTargetCard ()
The current processing of the chain of all the objects cleared
● void Duel.SetTargetPlayer (int player)
Set the player that is currently handling the chained object to player
● void Duel.SetTargetParam (integer)
Void Duel.SetTargetParam (inte param)
Sets the object parameters of the chain that is currently being processed into param
● void Duel.SetOperationInfo (int chainc, int category, Card | Group targets, int count, int target_player, int target_param)
Sets the operation information of the currently processed chain This operation information contains the effect classification determined in the effect processing to be processed
For example, stealth snipers need to set CATEGORY_DICE, but can not set CATEGORY_DESTROY, because not sure
For destructive effects, targets need to be set to launch the object may become the impact of chain card,
And sets count to the number of cards to be processed as determined at launch
For example, when the black hole launched, targets need to be set to all the monsters on the field, count to set the number of strange field
For CATEGORY_SPECIAL_SUMMON, CATEGORY_TOHAND, CATEGORY_TODECK, etc., which need to move the card position,
If the card to be processed is deterministic (such as fetching objects), set targets for these cards, count for the number,
If the card to be processed is uncertain (the effect can be determined when processing, is generally not take the effect of the object)
Set the targets to nil, count is expected to deal with the number of cards,
Target_player is expected to be handled by the holder of the card (not sure to 0)
Target_param is the location of the card expected to be processed
For example: SetOperationInfo (0, CATEGORY_TOHAND, nil, 1, tp, LOCATION_DECK)
Operational information is used to initiate detection of many effects, such as Stardust Dragon, Royal Valley
● bool, Card | Group, int, int, int Duel.GetOperationInfo (int chainc, int category)
Returns the operation information of the chained chainc category, with a return value of 5,
The first return value is false to indicate that the class does not exist
The last four return values ​​correspond to the last four parameters of Duel.SetOperationInfo: Card | Group targets, int count, int target_player, int target_param
● int Duel.GetOperationCount (int chainc)
Returns the number of operational classifications contained in chained chainc
● bool Duel.CheckXyzMaterial (Card c, function f, int lv, int min, int max, Group mg | nil)
Check on the field or mg in the presence of excess call c excess with the level of lv min-max meet the conditions of the stack f material
● Group Duel.SelectXyzMaterial (int player, Card c, function f, int lv, int min, int max [, Group mg])
Let the player player for the excess monster c [from the mg] to select the excess with the level of lv for the min-max meet the conditions of the stack f material
● void Duel.Overlay (Card c, Card | Group ocard)
The ocard as a stack of cards stacked c
● Group Duel.GetOverlayGroup (int player, int s, int o)
Returns all stacked cards at a specified location
Int Duel.GetOverlayCount (int player, int s, int o)
Returns the number of all stacked cards in the specified location
● bool Duel.CheckRemoveOverlayCard (int player, int s, int o, int count, int reason)
Check if the player can remove at least count cards for the specified reason
● bool Duel.RemoveOverlayCard (int player, int s, int o, int min, int max, int reason)
Let the player remove the min-max overlay card at the specified location for the reason reason. The return value indicates success
● void Duel.Hint (int hint_type, int player, int desc)
Send hint_type to the player player type of message prompts, the contents of the prompt desc
#hint_type can only be of the following types:
#HINT_SELECTMSG will prompt the content into the cache, used to select the card prompts, such as Duel.SelectMatchingCard, etc.
# HINT_OPSELECTED to the player tips "the other selected: ...", often used to prompt the player to choose what effect the other
# HINT_CARD desc should be the card number at this time, manually display the animated card launched, often used to prompt not to chain processing
# HINT_RACE desc should be race at this time, to the player prompted "the other party declared: ..." race
# HINT_ATTRIB At this time desc should be attributes, to the player prompted "the other party declared: ..." attribute
# HINT_CODE desc should be the card number, to the player prompt "the other party declared: ..." card
# HINT_NUMBER At this point desc as a simple number, to the player prompted "the other selected: ..."
#HINT_MESSAGE A dialog box appears to display information
# HINT_EVENT will be prompted to write the contents of the cache for the time of the prompt information (prompting prompt real-time effects)
#HINT_EFFECT Same as HINT_CARD
● void Duel.HintSelection (Group g)
Manually displays the animated effect of the selected object for g and records that the card is selected as the object
● bool Duel.SelectEffectYesNo (int player, Card c)
Let players choose whether to launch the card player c effect
● bool Duel.SelectYesNo (int player, int desc)
Let player player select Yes or No
● int Duel.SelectOption (int player, int desc1, ...)
Let the player select the option, starting with the second argument, where each parameter represents an option
Returns the serial number of the selected option (0-based)
# ● void Duel.SelectSequence ()
# (Reserved)
● int Duel.SelectPosition (int player, Card c, int pos)
Let player player select the representation of c and return
Int Duel.SelectDisableField (int player, int count, int s, int o, int filter)
Let the player player select the specified position to meet the marker condition filter count of the available space, and return to select the location of the marker
Commonly used to select areas can not use or move the monster grid
## Position markers are defined as follows
## flag = 0;
## seq is the number of the grid selected in player p, position l
## for (int32 i = 0; i <count; ++ i) {
0: 16) + (l [i] == LOCATION_MZONE? 0: 8)) ## flag | = 1 << (seq [i] + (p [i] == player?
##}
● int Duel.AnnounceRace (int player, int count, int available)
Let the player player declare count races from the optional races
Available is the combined value of all the optional races
● int Duel.AnnounceAttribute (int player, int count, int available)
Let the player player declare count attributes from the optional attribute
Available is the combined value of all optional attributes
● int Duel.AnnounceLevel (int player)
Let the player declare a level
● int Duel.AnnounceCard (int player [, type = TYPE_MONSTER + TYPE_SPELL + TYPE_TRAP])
Let players declare a player [type type] card code
● int Duel.AnnounceType (int player)
Let the player player declare a card type
● int, int Duel.AnnounceNumber (int player, int number, ...)
Let the player player declare a number
Starting with the second argument, each parameter represents a declarable number
The first return value is the number of declarations, and the second return value is the declaration number of the position in all options
● int Duel.AnnounceCoin (int player)
Let the player declare the positive and negative sides of the coin
● ... Duel.TossCoin (int player, int count)
Let the player player cast count (<= 5) coins, the return value for the count results, 0 or 1.
● ... Duel.TossDice (int player, int count1 [, int count2 = 0])
Let the player to cast count1 dice [, 1-player to vote count2 dice] (count1 + count2 <= 5)
The return value is count1 + count2 results, 1-6
● int, int, int, int, int Duel.GetCoinResult ()
Returns the result of the current coin
• int, int, int, int, int Duel.GetDiceResult ()
Returns the result of the current dice
● void Duel.SetCoinResult (int res, ...)
Forcibly modify the result of casting coins to res
This function is used in the persistent EVENT_TOSS_COIN event
● void Duel.SetDiceResult (int res, ...)
Forcibly modify the result of casting dice to res
This function is used in the persistent EVENT_TOSS_DICE event
● Effect | nil Duel.IsPlayerAffectedByEffect (int player, int code)
Check if the player is affected by the effect of the code type, and return the effect if there is one
● bool Duel.IsPlayerCanDraw (int player [, int count = 0])
Check the player player can effect pumping [count Zhang] card
● bool Duel.IsPlayerCanDiscardDeck (int player, int count)
Check player player can put the card group top count cards sent to the cemetery
● bool Duel.IsPlayerCanDiscardDeckAsCost (int player, int count)
Check the player player can put the card group top count cards sent to the cemetery as cost
● bool Duel.IsPlayerCanSummon (int player [, int sumtype, Card c])
Check player player can usually call [c, to sumtype]
If optional parameters are required, they must all be used
Returns false only if the player receives an effect such as "can not summon a superordinate"
● bool Duel.IsPlayerCanSpecialSummon (int player [, int sumtype, int sumpos, int target_player, Card c])
Check player player can special summon [c to target_player field to sumtype summation, sumpos form]
If optional parameters are required, they must all be used
● bool Duel.IsPlayerCanFlipSummon (int player, Card c)
Check whether the player can reverse the call player c
● bool Duel.IsPlayerCanSpecialSummonMonster (int player, int code, int setcode, int type, int atk, int def, int level, int race, int attribute
[, Integer pos = POS_FACEUP, integer target_player = player, int sumtype])
Check player player can be pos to the form of special summon the parameters of the monster to the target_player field
This function is usually used to determine whether it is possible to trick token and trap monsters
● bool Duel.IsPlayerCanSpecialSummonCount (int player, int count)
Check whether the player player special call count times
● bool Duel.IsPlayerCanRelease (int player, Card c)
Check whether the player can liberate the player c
● bool Duel.IsPlayerCanRemove (int player, Card c)
Check whether the player player except c
● bool Duel.IsPlayerCanSendtoHand (int player, Card c)
Check whether the player can send c to hand
● bool Duel.IsPlayerCanSendtoGrave (int player, Card c)
Check whether the player can send c to the cemetery
● bool Duel.IsPlayerCanSendtoDeck (int player, Card c)
Check whether the player can send c to the card group
● bool Duel.IsChainNegatable (int chainc)
Check the chain chainc launch can be invalid
● bool Duel.IsChainDisablable (int chainc)
Check chainC effect can be invalid
● bool Duel.CheckChainTarget (int chainc, Card c)
Check whether c is the correct object for chained chainc effects
● bool Duel.CheckChainUniqueness ()
Check the existence of the current chain of the same name card launch, true that no card with the same name
● int, ... Duel.GetActivityCount (int player, int activity_type, ...)
Returns the number of times the player performed the corresponding activity_type operation
The activity_type is of the following type
ACTIVITY_SUMMON call (not including the usual call placed)
ACTIVITY_NORMALSUMMON Usually called (including the usual call placed)
ACTIVITY_SPSUMMON Special call
ACTIVITY_FLIPSUMMON Reverse call
ACTIVITY_ATTACK attack
ACTIVITY_BATTLE_PHASE enters the combat phase
● bool Duel.CheckPhaseActivity ()
Check the player at the current stage whether the operation (whether at the beginning of the stage, such as the Seven King of the sword)
● void Duel.AddCustomActivityCounter (int counter_id, int activity_type, function f)
Set the action type to activity_type, code counter_id counter, placed in the initial_effect function
F for the filter function, the card type parameters, the return value of false cards for the following types of operations, the counter increased by 1 (at present up to 1)
The activity_type is of the following type
ACTIVITY_SUMMON call (not including the usual call set)
ACTIVITY_NORMALSUMMON usually called (including the usual call set)
ACTIVITY_SPSUMMON Special call
ACTIVITY_FLIPSUMMON Reverse call
ACTIVITY_CHAIN ​​Activates the effect
● int Duel.GetCustomActivityCount (int counter_id, int player, int activity_type)
Counter number counter_id count, the number of players to return to the following (currently up to 1)
The activity_type is of the following type
ACTIVITY_SUMMON call (not including the usual call set)
ACTIVITY_NORMALSUMMON usually called (including the usual call set)
ACTIVITY_SPSUMMON Special call
ACTIVITY_FLIPSUMMON Reverse call
ACTIVITY_CHAIN ​​Activates the effect
● int Duel.GetBattledCount (int player)
Returns the number of times a player fought this turn
● bool Duel.IsAbleToEnterBP ()
Check whether the player can enter the combat phase of the round
# ● bool Duel.VenomSwampCheck (Effect e, Card c)
# Dedicated snake venom swamp. The attack is the effect of the card into 0 damage
● void Duel.SwapDeckAndGrave (int player)
This world and the underworld reversal dedicated. The players player card group and the cemetery exchange
● void Duel.MajesticCopy (Card c1, Card c2)
Salvation Star Dragon dedicated. Copy the effect described in c2 to c1
Forced to launch the effect can choose whether to launch
========== aux ============
# # Only commonly used functions
● int aux.Stringid (int code, int id)
Used to index the card number code for the card the first id (from 0) effect prompts
● function aux.TargetEqualFunction (function f, value, a, b, c)
Return function (effect, target)
Return f (target, a, b, c) == value
End
● function aux.TargetBoolFunction (function f, a, b, c)
Return function (effect, target)
Return f (target, a, b, c)
End
● function aux.FilterEqualFunction (function f, value, a, b, c)
Return function (target)
Return f (target, a, b, c) == value
End
● function aux.FilterBoolFunction (function f, a, b, c)
Return function (target)
Return f (target, a, b, c)
End
● function aux.NonTuner (function f, a, b, c)
Return function (target)
Return target: IsNotTuner () and (not f or f (target, a, b, c))
End
● void aux.AddSynchroProcedure (Card c, function f1, function f2, int ct)
Add a cohomology call to c
F1 to adjust the filter to meet the conditions, f2 to adjust to meet other than the filter conditions (usually aux.NonTuner)
Adjust monsters other than ct at least
● void aux.AddSynchroProcedure2 (Card c, function f1, function f2)
Add a cohomology call to c
F1 to adjust the filter to meet the conditions, f2 to adjust to meet other than the filter conditions (usually aux.NonTuner)
Can only be adjusted with a monster outside
Nil, int maxct = ct, function op | nil]) void aux.AddXyzProcedure (Card c, function f, int lv, int ct [, function alterf |
Add an excess summon for c
With the conditions to meet the conditions for the f-level cv-maxct lv monster to be stacked
The rest of the parameters are used to stack on a single monster (usually an excess of monsters)
Alterf for this monster to meet the conditions, desc for the description, op for the stacked operation (hope Huanglong)
Void aux.AddFusionProcCode2 (Card c, int code1, int code2, bool sub, bool insf)
For the c designated card number for the code1 and code2 monster for the fusion material
Sub that can use fusion instead of material, insf that can be summoned with a simple fusion
Void aux.AddFusionProcCode3 (Card c, int code1, int code2, int code3, bool sub, bool insf)
For the c designated card number code1, code2, code3 monster for the fusion material
Void aux.AddFusionProcCode4 (Card c, int code1, int code2, int code3, int code4, bool sub, bool insf)
For the c designated card number for the code1, code2, code3, code4 monster for the fusion material
Void aux.AddFusionProcCodeFun (Card c, int code, function f, int cc, bool sub, bool insf)
For the c designated card number for the code and cc meet the conditions of the monster f fusion material
Void aux.AddFusionProcFun2 (Card c, function f1, function f2, bool insf)
For the c to specify conditions for the f1 and f2 monsters for the fusion material
Void aux.AddFusionProcCodeRep (Card c, int code, int cc, bool sub, bool insf)
For the c designated cc the same monster for the fusion material, code for the card number
Void aux.AddFusionProcFunRep (Card c, function f, int cc, bool insf)
For the c designated cc meet the same conditions f monster for the fusion material
Void aux.AddRitualProcGreater (Card c, function filter)
Add a ritual summon effect to c
Filter for the ritual monster to meet the conditions, the material level can be more than the ritual monster level
● void aux.AddRitualProcEqual (Card c, function filter)
Add a ritual summon effect to c
Filter for the ritual monster to meet the conditions, the material level must be equal to the ritual monster level
Void aux.EnablePendulumAttribute (Card c [, active_effect = true])
For the spirit to put the monster c to add the soul to put the monster attributes (spiritual swing call, the spirit of the launch of the card)
Active_effect = false is not registered Ling card "card launch" effect
● void aux.EnableDualAttribute (Card c)
Add double for the c monster attributes
● bool aux.IsDualState (Effect e)
Check the double monster e: GetHandler () is re-call state
Commonly used in the double monster re-summoned to obtain the effect of e Condition attribute
● bool aux.DualNormalCondition (Effect e)
Check if the double monster e: GetHandler () is considered a normal monster state
● bool aux.IsNotDualState (Effect e)
Antisense of aux.IsDualState
● void aux.BeginPuzzle ()
Start the mess
# # This function registers three global effects:
At the end of the # # turn, the player's base points become 0
## Skip drawing phase and preparation phase
========== Debug ==========
● void Debug.Message (any msg)
Displays the message
● Card Debug.AddCard (int code, int owner, int player, int location, int seq, int pos [, bool proc = false])
Add a card, the card number for the card holder is set to owner, to represent the form of pos placed in the player's field is located in the location on the seq seq grid
Proc = true then lifted the Soviet students limit
Void Debug.SetPlayerInfo (int playerid, int lp, int startcount, int drawcount)
Set the player information, divided into lp, the initial hand card for the startcount Zhang, drawcount each round of pumping
Playerid below 0, top 1
● void Debug.PreSummon (Card c, int sum_type [, int sum_location = 0])
Set summon information for card c: Summarize with sum_type method (usually summoned, special summoned, etc.) [from sum_location]
● bool Debug.PreEquip (Card equip_card, Card target)
Add equip_card to the target
● void Debug.PreSetTarget (Card c, Card target)
The target selected as the perpetual object c
● void Debug.PreAddCounter (Card c, int counter_type, int count)
Add count counters_type counters for c
● void Debug.ReloadFieldBegin (int flag)
Start with the option flag
Flag: DUEL_ATTACK_FIRST_TURN + DUEL_SIMPLE_AI
● void Debug.ReloadFieldEnd ()
Layout ends
● void Debug.SetAIName (string name)
Set the name of the AI
● void Debug.ShowHint (string msg)
A message box appears
###############################################
# 脚本中用到的数据类型为以下几类:
# int: 整数类型
# bool: 布尔类型(true 或者 false)
# string: 字符串
# function: 函数
# Card: 卡片类
# Effect: 效果类
# Group: 卡片组类
# nil: 空类型,也表示空的变量
# any: 任意类型
# 为方便说明,采用类似C的函数表示方法说明
# []表示有默认值可省略的参数
# 只说明有意义的nil类型参数或返回值
#
# 注:关于过滤条件函数
# 过滤条件函数是指第一个参数是Card类型,并且返回值是boolean的函数。此函数用于在一些获取满足条件的卡片组的过滤函数中重复调用。过滤条件函数可以有不定的参数,第二个开始的参数从过滤函数的额外参数获得。举例:
# function sample_filter(c, atk, def)
# return c:GetAttack()>=atk and c:GetDefense()>=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
#
# 注:关于指定位置
# 一些函数可以获取指定位置的卡,通过三个参数指定 int player, int s, int o
# s指对玩家player来说的己方的位置,o指对玩家player来说的对方的位置
# 比如Duel.GetFieldGroup(0,LOCATION_GRAVE,LOCATION_MZONE)
# 返回玩家0墓地和玩家1的怪兽区的所有卡
#
# 注:关于描述
# 脚本系统并不是直接使用字符串显示提示文字,而是由系统通过一个整数(int desc)查找相应的描述
# 对于desc<2048,系统在string.conf里面寻找,其中一些常用的数字(通常是提示选择的文字)在constant.lua中有记录
# 对于desc>10000,系统在卡片数据库中寻找描述,通常使用aux.Stringid()函数指定
##############################################
●void initial_effect(Card c)
载入卡片时调用
一般是注册初始卡片效果,以及设置苏生限制等等
========== bit ===========
●int bit.band(int a, int b)
a与b的位与
●int bit.lshift(int a, int b)
a左移b
●int bit.bor(int a, int b)
a与b的位或
●int bit.rshift(int a, int b)
a右移b
●int bit.bxor(int a, int b)
a与b的位异或
========== Card ==========
●int[,int] Card.GetCode(Card c)
返回c的当前代号(可能因为效果改变)
●int Card.GetOriginalCode(Card c)
返回c的卡片记载的代号
●int,int Card.GetOriginalCodeRule(Card c)
返回c规则上的代号(这张卡规则上当作...使用)
●int,int,... Card.GetFusionCode(Card c)
返回c作为融合素材时的卡号(包括c原本的卡号)
●bool Card.IsFusionCode(Card c, int code)
检查c作为融合素材时能否当作卡号为code的卡
●bool Card.IsSetCard(Card c, int setname)
检查c是否是卡名含有setname的卡
●bool Card.IsOriginalSetCard(Card c, int setname)
检查c是否是原本卡名含有setname的卡
●bool Card.IsPreviousSetCard(Card c, int setname)
检查c位置变化之前是否是名字含有setname的卡
●bool Card.IsFusionSetCard(Card c, int setname)
检查c作为融合素材时能否当作名字含有setname的卡
●int Card.GetType(Card c)
返回c的当前类型
●int Card.GetOriginalType(Card c)
返回c的卡片记载的类型
●int Card.GetFusionType(Card c)
返回c用作融合素材时的类型(与GetType的区别在于对于魔陷区的怪兽卡,返回其原本类型)
●int Card.GetLevel(Card c)
返回c的当前等级
●int Card.GetRank(Card c)
返回c的当前阶级
●int Card.GetSynchroLevel(Card c, Card sc)
返回c的对于同调怪兽sc的同调用等级
此函数除了某些特定卡如调节支援士,返回值与Card.GetLevel(c)相同
●int Card.GetRitualLevel(Card c, Card rc)
返回c的对于仪式怪兽rc仪式解放等级
此函数除了某些特定卡如仪式供物,返回值与Card.GetLevel(c)相同
●int Card.GetOriginalLevel(Card c)
返回c的卡片记载的等级
●int Card.GetOriginalRank(Card c)
返回c的卡片记载的阶级
●bool Card.IsXyzLevel(Card c, Card xyzc, int lv)
检查c对于超量怪兽xyzc的超量用等级是否是lv
●int Card.GetLeftScale(Card c)
返回c的左灵摆刻度
●int Card.GetOriginalLeftScale(Card c)
返回c的原本的左灵摆刻度
●int Card.GetRightScale(Card c)
返回c的右灵摆刻度
●int Card.GetOriginalRightScale(Card c)
返回c的原本的右灵摆刻度
●int Card.GetAttribute(Card c)
返回c的当前属性
注:对某些多属性怪兽如光与暗之龙,此函数的返回值可能是几个属性的组合值
●int Card.GetOriginalAttribute(Card c)
返回c的卡片记载的属性
●int Card.GetFusionAttribute(Card c[, int player])
返回c[由player融合召唤时]用作融合素材时的属性
●int Card.GetRace(Card c)
返回c的当前种族
注:对某些多种族怪兽如动画效果的魔术猿,此函数的返回值可能是几个种族的组合值
●int Card.GetOriginalRace(Card c)
返回c的卡片记载的种族
●int Card.GetAttack(Card c)
返回c的当前攻击力,返回值是负数表示是"?"
●int Card.GetBaseAttack(Card c)
返回c的原本攻击力
●int Card.GetTextAttack(Card c)
返回c的卡片记载的攻击力
●int Card.GetDefense(Card c)
返回c的当前守备力,返回值是负数表示是"?"
●int Card.GetBaseDefense(Card c)
返回c的原本守备力
●int Card.GetTextDefense(Card c)
返回c的卡片记载的守备力
●int Card.GetPreviousCodeOnField(Card c)
返回c位置变化之前的卡号
●int Card.GetPreviousTypeOnField(Card c)
返回c位置变化之前的类型
●int Card.GetPreviousLevelOnField(Card c)
返回c位置变化之前的等级
●int Card.GetPreviousRankOnField(Card c)
返回c位置变化之前的阶级
●int Card.GetPreviousAttributeOnField(Card c)
返回c位置变化之前的属性
●int Card.GetPreviousRaceOnField(Card c)
返回c位置变化之前的种族
●int Card.GetPreviousAttackOnField(Card c)
返回c位置变化之前的攻击力
●int Card.GetPreviousDefenseOnField(Card c)
返回c位置变化之前的守备力
●int Card.GetOwner(Card c)
返回c的持有者
●int Card.GetControler(Card c)
返回c的当前控制者
●int Card.GetPreviousControler(Card c)
返回c的位置变化之前的控制者
●int Card.GetReason(Card c)
返回c的位置变化原因
●Card Card.GetReasonCard(Card c)
返回导致c的位置变化的卡
此函数仅在某卡被战斗破坏时,因为上级召唤被解放,或者成为特殊召唤使用的素材时有效
●int Card.GetReasonPlayer(Card c)
返回导致c的位置变化的玩家
●Effect Card.GetReasonEffect(Card c)
返回导致c的位置变化的效果
●int Card.GetPosition(Card c)
返回c当前的表示形式
●int Card.GetPreviousPosition(Card c)
返回c位置变化前的表示形式
●int Card.GetBattlePosition(Card c)
返回c在本次战斗发生之前的表示形式
●int Card.GetLocation(Card c)
返回c当前的所在位置
●int Card.GetPreviousLocation(Card c)
返回c位置变化前的所在的位置
●int Card.GetSequence(Card c)
返回c在当前位置的序号
在场上时,序号代表所在的格子,从左往右分别是0-4,场地魔法格的序号为5,左右灵摆区域为6-7
在其它地方时,序号表示的是第几张卡,最下面的卡的序号为0
●int Card.GetPreviousSequence(Card c)
返回c位置变化前的序号
●int Card.GetSummonType(Card c)
返回c的召唤/特殊召唤的方式
●int Card.GetSummonLocation(Card c)
返回c的召唤位置
●int Card.GetSummonPlayer(Card c)
返回召唤/特殊召唤c上场的玩家
●int Card.GetDestination(Card c)
返回c位置变化的目的地
此函数仅在处理位置转移代替效果时有效
●int Card.GetLeaveFieldDest(Card c)
返回c离场时因改变去向的效果(如大宇宙)的目的地
●int Card.GetTurnID(Card c)
返回c转移到当前位置的回合
●int Card.GetFieldID(Card c)
返回c转移到当前位置的时间标识
此数值唯一,越小表示c是越早出现在那个位置
卡片从里侧翻开也会改变此数值
●int Card.GetRealFieldID(Card c)
返回c转移到当前位置的真实的时间标识
卡片从里侧翻开不会改变此数值
●bool Card.IsCode(Card c, int code1[, int code2,...])
检查c的卡号是否是code1[, 或者为code2...]
●bool Card.IsType(Card c, int type)
检查c是否属于类型type
●bool Card.IsFusionType(Card c, int type)
检查c用作融合素材时是否属于类型type(与IsType的区别在于对于魔陷区的怪兽卡,用其原本类型作判断)
●bool Card.IsRace(Card c, int race)
检查c是否属于种族race
●bool Card.IsAttribute(Card c, int attribute)
检查c是否属于属性attribute
●bool Card.IsFusionAttribute(Card c, int attribute[, int player])
检查c[由player融合召唤时]用作融合素材是否属于属性attribute
●bool Card.IsReason(Card c, int reason)
检查c是否包含原因reason
●bool Card.IsStatus(Card c, int status)
检查c是否包含某个状态码
●bool Card.IsNotTuner(Card c)
检查c是否可以当成非调整来使用
●void Card.SetStatus(Card c, int state, bool enable)
给c设置或者取消状态码
除非妳清楚的了解每个状态码的含意,否则不要轻易使用此函数
●bool Card.IsDualState(Card c)
检查c属否处于再召唤状态
●void Card.EnableDualState(Card c)
把c设置成再召唤状态
●void Card.SetTurnCounter(Card c, int counter)
设置c的回合计数器(光之护封剑等)
●int Card.GetTurnCounter(Card c)
返回c的回合计数器
●void Card.SetMaterial(Card c, Group g)
把g中的所有卡作为c的素材(上级召唤,特殊召唤)
●Group Card.GetMaterial(Card c)
返回c出场使用的素材
●int Card.GetMaterialCount(Card c)
返回c出场使用的素材数量
●Group Card.GetEquipGroup(Card c)
返回c当前装备着的卡片组
●int Card.GetEquipCount(Card c)
返回c当前装备着的卡片数量
●Card Card.GetEquipTarget(Card c)
返回c当前的装备对象
●Card Card.GetPreviousEquipTarget(Card c)
返回c之前的装备对象
●bool Card.CheckEquipTarget(Card c1, Card c2)
检查c2是否是c1的正确的装备对象
##由EFFECT_EQUIP_LIMIT效果或同盟状态确定
●int Card.GetUnionCount(Card c)
返回c当前装备的同盟卡数量
●Group Card.GetOverlayGroup(Card c)
返回c当前叠放着的卡片组
●int Card.GetOverlayCount(Card c)
返回c当前叠放着的卡片数量
●Card Card.GetOverlayTarget(Card c)
返回以c为超量素材的卡
●bool Card.CheckRemoveOverlayCard(Card c, int player, int count, int reason)
检查玩家player能否以reason为原因,至少移除c叠放的count张卡
●bool Card.RemoveOverlayCard(Card c, int player, int min, int max, int reason)
以reason为原因,让玩家player移除c叠放的min-max张卡,返回值表示是否成功
●Group Card.GetAttackedGroup(Card c)
返回c本回合攻击过的卡片组
●int Card.GetAttackedGroupCount(Card c)
返回c本回合攻击过的卡片数量
●int Card.GetAttackedCount(Card c)
返回c本回合攻击过的次数
注:如果此值与上一个函数的返回值不同,那么说明此卡本回合进行过直接攻击
●Group Card.GetBattledGroup(Card c)
返回与c本回合进行过战斗的卡片组
进行过战斗指发生过伤害的计算,用于剑斗兽等卡的判定
●int Card.GetBattledGroupCount(Card c)
返回与c本回合进行过战斗的的卡片数量
●int Card.GetAttackAnnouncedCount(Card c)
返回c本回合攻击宣言的次数
注:攻击被无效不会被计入攻击过的次数,但是会计入攻击宣言的次数
●bool Card.IsDirectAttacked(Card c)
检查c是否直接攻击过
●void Card.SetCardTarget(Card c1, Card c2)
把c2作为c1的永续对象
c1和c2的联系会在c1或c2任意一卡离场或变成里侧表示时reset
●Group Card.GetCardTarget(Card c)
返回c当前所有的永续对象
●Card Card.GetFirstCardTarget(Card c)
返回c当前第一个永续对象
●int Card.GetCardTargetCount(Card c)
返回c当前的永续对象的数量
●bool Card.IsHasCardTarget(Card c1, Card c2)
检查c1是否取c2为永续对象
●void Card.CancelCardTarget(Card c1, Card c2)
取消c2为c1的永续对象
●Group Card.GetOwnerTarget(Card c)
返回取c作为永续对象的所有卡
●int Card.GetOwnerTargetCount(Card c)
返回取c作为永续对象的卡的数量
●Effect Card.GetActivateEffect(Card c)
返回c的“卡片发动”的效果,即类型为EFFECT_TYPE_ACTIVATE的效果
仅对魔法和陷阱有效
●Effect[,Group,int,int,Effect,int,int] Card.CheckActivateEffect(Card c, bool neglect_con, bool neglect_cost, bool copy_info)
返回c的可以发动时机正确的“卡的发动”的效果,neglect_con=true则无视发动条件,neglect_cost=true则无视发动cost
copy_info=false或者自由时点的效果则只返回这个效果
否则还返回这个效果的时点为code的触发时点的信息 eg,ep,ev,re,r,rp
●int Card.RegisterEffect(Card c, Effect e[, bool forced=false])
把效果e注册给c,返回效果的全局id,并设置e的Handler为c
默认情况下注册时如果c带有免疫e的效果那么注册会失败
如果forced为true则不会检查c对e的免疫效果
●bool Card.IsHasEffect(Card c, int code)
检查c是否受到效果种类是code的效果的影响
●void Card.ResetEffect(Card c, int reset_code, int reset_type)
以重置类型为reset_type、重置种类为reset_code手动重置c受到的效果的影响
reset_type只能是以下类型,对应的重置种类为
RESET_EVENT 发生事件重置 reset_code为事件
RESET_PHASE 阶段结束重置 reset_code为阶段
RESET_CODE 重置指定code的效果 reset_code为效果的种类code,只能重置EFFECT_TYPE_SINGLE的永续型效果
RESET_COPY 重置复制的效果 reset_code为copy_id
RESET_CARD 重置卡片的效果 reset_code为效果owner的卡号
●int Card.GetEffectCount(Card c, int code)
返回c受到影响的种类是code的效果的数量
●Effect Card.RegisterFlagEffect(Card c, int code, int reset_flag, int property, int reset_count[, int label, int desc])
为c注册一个标识用效果
注:注册给卡的标识用效果不会用于系统,
即使code与内置效果code重合也不会影响,
并且类型总是EFFECT_TYPE_SINGLE,reset方法,property和一般的效果相同,
并且不会无效化,不受卡的免疫效果影响
●int Card.GetFlagEffect(Card c, int code)
返回c的种类是code的标识效果的数量
●void Card.ResetFlagEffect(Card c, int code)
手动清除c的种类是code的标识效果
●bool Card.SetFlagEffectLabel(Card c, int code, int label)
返回c是否存在种类为code的标识效果,并设置其Label属性为label
●int Card.GetFlagEffectLabel(Card c, int code)
返回c的种类为code的标识效果的Label,没有此效果则返回nil
●void Card.CreateRelation(Card c1, Card c2, int reset_flag)
为c1建立于c2的联系此联系,仅会由于c1发生RESET_EVENT的事件reset
●void Card.ReleaseRelation(Card c1, Card c2)
手动释放c1对于c2的联系
●void Card.CreateEffectRelation(Card c, Effect e)
为卡片c和效果e建立联系
●void Card.ReleaseEffectRelation(Card c,Effect e)
手动释放c与效果e的联系
●void Card.ClearEffectRelation(Card c)
清空c所有联系的效果
●bool Card.IsRelateToEffect(Card c, Effect e)
检查c是否和效果e有联系
注:每次发动进入连锁的效果时,发动效果的卡,以及发动效果时指定的对象
(用Duel.SetTargetCard或者Duel.SelectTarget指定的,包括取对象和不取对象)
●bool Card.IsRelateToChain(Card c, int chainc)
检查c是否和连锁chainc有联系
注:每次发动进入连锁的效果时,发动效果的卡,以及发动效果时指定的对象
(用Duel.SetTargetCard或者Duel.SelectTarget指定的,包括取对象和不取对象)
会自动与那个效果建立联系,一旦离场,联系会重置
●bool Card.IsRelateToCard(Card c1, Card c2)
检查c1是否和c2有联系
●bool Card.IsRelateToBattle(Card c)
检查c是否和本次战斗关联
注:此效果通常用于伤害计算后伤害阶段结束前,用于检查战斗的卡是否离场过
●int Card.CopyEffect(Card c, int code, int reset_flag[, int reset_count])
为c添加卡号是code的卡的可复制的效果,并且添加额外的reset条件
返回值是表示复制效果的代号id
●int Card.ReplaceEffect(Card c, int code, int reset_flag[, int reset_count])
把c的效果替换为卡号是code的卡的效果,并且添加额外的reset条件
返回值是表示替换效果的代号id
●void Card.EnableUnsummonable(Card c)
将c设置为不可通常召唤的怪兽
##实际上是个不可复制、不会被无效的EFFECT_UNSUMMONABLE_CARD效果
●void Card.EnableReviveLimit(Card c)
为c添加苏生限制
##实际上是不可复制、不会被无效的EFFECT_UNSUMMONABLE_CARD和EFFECT_REVIVE_LIMIT效果
●void Card.CompleteProcedure(Card c)
使c完成正规的召唤手续
##此函数也可通过Card.SetStatus实现
●bool Card.IsDisabled(Card c)
检查c是否处于无效状态
●bool Card.IsDestructable(Card c[, Effect e])
检查c是否是可破坏的
●bool Card.IsSummonableCard(Card c)
检查c是否是可通常召唤的卡
●bool Card.IsFusionSummonableCard(Card c)
检查c是否是可融合召唤的卡
●bool Card.IsSpecialSummonable(Card c)
检查是否可以对c进行特殊召唤手续
●bool Card.IsSynchroSummonable(Card c ,Card tuner|nil[, Group mg])
检查是否可以以tuner作为调整,场上的卡[或mg]为同调素材对c进行同调召唤手续
如果tuner是nil,此函数与Card.IsSpecialSummonable作用相同
●bool Card.IsXyzSummonable(Card c, Group mg|nil[, min=0, max=0])
检查是否可以在mg中选出[min-max个]超量素材对c进行超量召唤手续
如果mg为nil,此函数与Card.IsSpecialSummonable作用相同
●bool Card.IsSummonable(Card c, bool ignore_count, Effect e|nil[, int min=0])
检查c是否进行通常召唤(不包含通常召唤的set),ignore_count=true则不检查召唤次数限制
e~=nil则检查c是否可以以效果e进行通常召唤,min表示至少需要的祭品数(用于区分妥协召唤与上级召唤)
●bool Card.IsMSetable(Card, bool ignore_count, Effect e|nil[, int min=0])
检查c是否可进行通常召唤的set,ignore_count=true则不检查召唤次数限制
e~=nil则检查c是否可以以效果e进行通常召唤的set,min表示至少需要的祭品数(用于区分妥协召唤set与上级召唤set)
●bool Card.IsSSetable(Card c[, bool ignore_field=false])
检查c是否可以set到魔法陷阱区,ignore_field=true则无视魔陷区格子限制
●bool Card.IsCanBeSpecialSummoned(Card c, Effect e, int sumtype, int sumplayer, bool nocheck, bool nolimit[, int sumpos=POS_FACEUP, int target_player=sumplayer])
检查c是否可以被玩家sumplayer用效果e以sumtype方式和sumpos表示形式特殊召唤到target_player场上
如果nocheck是true则不检查c的召唤条件,如果nolimit是true则不检查c的苏生限制
●bool Card.IsAbleToHand(Card c)
检查c是否可以送去手牌
注:仅当卡片或者玩家受到“不能加入手牌”的效果的影响时(如雷王)此函数才返回false
##以下几个函数类似
●bool Card.IsAbleToDeck(Card c)
检查c是否可以送去卡组
●bool Card.IsAbleToExtra(Card c)
检查c是否可以送去额外卡组
对于非融合,同调,超量卡此函数均返回false
●bool Card.IsAbleToGrave(Card c)
检查c是否可以送去墓地
●bool Card.IsAbleToRemove(Card c[, int player])
检查c是否可以被玩家player除外
●bool Card.IsAbleToHandAsCost(Card c)
检查c是否可以作为cost送去手牌
注:此函数会在Card.IsAbleToHand的基础上追加检测c的实际目的地
当c送往手牌会被送去其它地方时(如缩退回路适用中,或者c是融合,同调和超量怪的一种),此函数返回false
##以下几个函数类似
●bool Card.IsAbleToDeckAsCost(Card c)
检查c是否可以作为cost送去卡组
●bool Card.IsAbleToExtraAsCost(Card c)
检查c是否可以作为cost送去额外卡组
●bool Card.IsAbleToDeckOrExtraAsCost(Card c)
检查c是否可以作为cost送去卡组或额外卡组(用于新宇侠、剑斗兽融合怪兽的召唤手续检测)
●bool Card.IsAbleToGraveAsCost(Card c)
检查c是否可以作为cost送去墓地
●bool Card.IsAbleToRemoveAsCost(Card c)
检查c是否可以作为cost除外
●bool Card.IsReleasable(Card c)
检查c是否可以被解放(非上级召唤用)
●bool Card.IsReleasableByEffect(Card c)
检查c是否可以被效果解放
●bool Card.IsDiscardable(Card[, int reason=REASON_COST])
检查c是否可以丢弃
注:此函数仅用于检测,
以REASON_DISCARD作为原因把一张手卡送墓并不会导致那张卡不能丢弃
●bool Card.IsAttackable(Card c)
检查c是否可以攻击
●bool Card.IsChainAttackable(Card c[, int ac = 2, bool monsteronly = false])
检查c是否可以连续攻击,c的攻击宣言次数>=ac则返回false
注:当c因为闪光之双剑等效果进行过多次攻击之后此函数返回false
●bool Card.IsFaceup(Card c)
检查c是否是表侧表示
●bool Card.IsAttackPos(Card c)
检查c是否是攻击表示
●bool Card.IsFacedown(Card c)
检查c是否是里侧表示
●bool Card.IsDefensePos(Card c)
检查c是否是守备表示
●bool Card.IsPosition(Card c, int pos)
检查c是否是表示形式pos
●bool Card.IsPreviousPosition(Card c, int pos)
检查c位置变化之前是否是表示形式pos
●bool Card.IsControler(Card c, int controler)
检查c的当前控制着是否是controler
●bool Card.IsOnField(Card c)
检查c是否在场
注:当怪兽召唤,反转召唤,特殊召唤时召唤成功之前,此函数返回false
●bool Card.IsLocation(Card c, int location)
检查c当前位置是否是location
注:当怪兽召唤,反转召唤,特殊召唤时召唤成功之前,
并且location=LOCATION_MZONE时,此函数返回false
●bool Card.IsPreviousLocation(Card c, int location)
检查c之前的位置是否是location
●bool Card.IsLevelBelow(Card c, int level)
检查c是否是等级level以下(至少为1)
●bool Card.IsLevelAbove(Card c, int level)
检查c是否是等级level以上
●bool Card.IsRankBelow(Card c, int rank)
检查c是否是阶级rank以下(至少为1)
●bool Card.IsRankAbove(Card c, int rank)
检查c是否是阶级rank以上
●bool Card.IsAttackBelow(Card c, int atk)
检查c是否是攻击力atk以下(至少为0)
●bool Card.IsAttackAbove(Card c, int atk)
检查c是否是攻击力atk以上
●bool Card.IsDefenseBelow(Card c, int def)
检查c是否是守备力def以下(至少为0)
●bool Card.IsDefenseAbove(Card c, int def)
检查c是否是守备力def以上
●bool Card.IsPublic(Card c)
检查c是否处于公开状态
●bool Card.IsForbidden(Card c)
检查c是否处于被宣言禁止状态
●bool Card.IsAbleToChangeControler(Card c)
检查c是否可以改变控制权
注:仅当卡收到了“不能改变控制权”的效果的影响时,此函数返回false
●bool Card.IsControlerCanBeChanged(Card c)
检查c的控制权是否可以改变
注:此函数会在Card.IsAbleToChangeControler的基础上追加检测场上的空格位
●bool Card.AddCounter(Card c, int countertype, int count[, int singly=false])
为c放置count个countertype类型的指示物,singly为true表示逐个添加至上限为止
●void Card.RemoveCounter(Card c, int player, int countertype, int count, int reason)
让玩家player以原因reason移除c上的count个countertype类型的指示物
●int Card.GetCounter(Card c, int countertype)
返回c上的countertype类型的指示物的数量
●void Card.EnableCounterPermit(Card c, int countertype[, int location])
允许c[在位置location]放置那个需要“可以放置”才能放置的指示物countertype
location的默认值与c的种类有关,灵摆怪兽需要指定能否在怪兽区域或灵摆区域放置指示物
●void Card.SetCounterLimit(Card c, int countertype, int count)
设定c放置countertype类型指示物的上限
●bool Card.IsCanTurnSet(Card c)
检查c是否可以转成里侧表示
●bool Card.IsCanAddCounter(Card c, int countertype, int count[, int singly=false])
检查c是否可以[逐个(singly=true)]放置count个countertype类型的指示物
●bool Card.IsCanRemoveCounter(Card c, int player, int countertype, int count, int reason)
检查玩家player是否可以以原因reason移除c上的count个countertype类型的指示物
●bool Card.IsCanBeFusionMaterial(Card c[, Card fc])
检查c是否可以成为[融合怪兽fc的]融合素材
●bool Card.IsCanBeSynchroMaterial(Card c[, Card sc, Card tuner])
检查c是否可以成为同调怪兽sc的同调素材
●bool Card.IsCanBeRitualMaterial(Card c[, Card sc])
检查c是否能作为仪式怪兽sc的祭品
●bool Card.IsCanBeXyzMaterial(Card c, Card sc|nil)
检查c是否可以成为超量怪兽sc的超量素材
●bool Card.CheckFusionMaterial(Card c[, Group g, Card gc|nil, int chkf=PLAYER_NONE])
检查g是否包含了c需要[必须包含gc在内]的一组融合素材
##根据c的种类为EFFECT_FUSION_MATERIAL的效果的Condition函数检查
●bool Card.CheckFusionSubstitute(Card c, Card fc)
检查c能否代替融合怪兽fc的记述卡名的素材
●bool Card.IsImmuneToEffect(Card c, Effect e)
检查c是否免疫效果e(即不受效果e的影响)
●bool Card.IsCanBeEffectTarget(Card c, Effect e)
检查c是否可以成为效果e的对象
●bool Card.IsCanBeBattleTarget(Card c1, Card c2)
检查c1是否可以成为c2的攻击目标
●void Card.AddMonsterAttribute(Card c, int attribute, int race, int level, int atk, int def)
为魔陷卡c添加怪兽数值
注:在数据库中有记录的数值视为原本数值,此处设置为0
●void Card.TrapMonsterComplete(Card c, int extra_type)
使陷阱怪兽c占用一个魔法陷阱格子,并添加extra_type怪兽类型
注:陷阱怪兽属性指的是同时作为怪兽和陷阱,并且额外使一个魔法陷阱的格子不能使用
●void Card.CancelToGrave(Card c[, bool cancel=true])
取消送墓确定状态,cancel=false则重新设置送墓确定状态
注:送墓确定状态指的是在场上发动的不留场的魔法和陷阱后,这些卡片的状态
送墓确定状态中的卡无法返回手牌和卡组,并且连锁结束时送去墓地
此函数的作用是取消此状态使其留场,用于光之护封剑和废铁稻草人等卡
●int,int Card.GetTributeRequirement(Card c)
返回通常召唤c所需要的祭品的最小和最大数量
●Card Card.GetBattleTarget(Card c)
返回与c进行战斗的卡
●Group,bool Card.GetAttackableTarget(Card c)
返回c可攻击的卡片组以及能否直接攻击
●void Card.SetHint(Card c, int type, int value)
为c设置类型为type的卡片提示信息
type只能为以下值,对应的value类型为
CHINT_TURN 回合数
CHINT_CARD 卡片id
CHINT_RACE 种族
CHINT_ATTRIBUTE 属性
CHINT_NUMBER 数字
CHINT_DESC 描述
●void Card.ReverseInDeck(Card c)
设置c在卡组中正面表示
●void Card.SetUniqueOnField(Card c, int s, int o, int unique_code[, int unique_location=LOCATIOIN_ONFIELD])
设置c以unique_code只能在场上[或怪兽区域或魔陷区域,由unique_location决定]只能存在1张
s不为0会检查自己场上的唯一性,o不为0则检查对方场上的唯一性
●bool Card.CheckUniqueOnField(Card c,int check_player)
检查c在check_player场上的唯一性
●void Card.ResetNegateEffect(Card c[, int code1,...])
重置c受到的卡号为code1, code2...的卡片的效果的影响
●void Card.AssumeProperty(Card c,int assume_type, int assume_value)
把c的assume_type的数值当作assume_value使用(基因组斗士)
assume_type为以下类型
ASSUME_CODE 卡号
ASSUME_TYPE 类型
ASSUME_LEVEL 等级
ASSUME_RANK 阶级
ASSUME_ATTRIBUTE 属性
ASSUME_RACE 种族
ASSUME_ATTACK 攻击力
ASSUME_DEFENSE 守备力
●void Card.SetSPSummonOnce(Card c, int spsummon_code)
设置c一回合只能进行1次特殊召唤(灵兽,波动龙)
相同的spsummon_code共用1个次数
========== Effect ==========
●Effect Effect.CreateEffect(Card c)
新建一个空效果
并且效果的Owner为c
●Effect Effect.GlobalEffect()
新建一个全局效果
●Effect Effect.Clone(Effect e)
新建一个效果e的副本
●void Effect.Reset(Effect e)
把效果e重置,重置之后不可以再使用此效果
●int Effect.GetFieldID(Effect e)
获取效果e的id
●void Effect.SetDescription(Effect e, int desc)
为效果e设置效果描述
●void Effect.SetCategory(Effect e, int cate)
设置Category属性
●void Effect.SetType(Effect e, int type)
为效果e设置Type属性
●void Effect.SetCode(Effect e, int code)
为效果e设置Code属性
●void Effect.SetProperty(Effect e, int prop1[, int prop2])
设置Property属性
●void Effect.SetRange(Effect e, int range)
为效果e设置Range属性
●void Effect.SetAbsoluteRange(Effect e, int playerid, int s_range, int o_range)
设置target range属性并设置EFFECT_FLAG_ABSOLUTE_RANGE标志
playerid != 0 s_range和o_range反转
●void Effect.SetCountLimit(Effect e, int count[, int code=0])
设置一回合可以发动的次数count(仅触发型效果有效),相同的code(不等于0或1时)共用1个次数
code包含以下数值具有特殊的性质
EFFECT_COUNT_CODE_OATH 誓约使用次数
EFFECT_COUNT_CODE_DUEL 决斗中使用次数
EFFECT_COUNT_CODE_SINGLE 同一张卡多个效果公共使用次数(不限制同名卡)
●void Effect.SetReset(Effect e, int reset_flag[, int reset_count=1])
设置reset参数
●void Effect.SetLabel(Effect e, int label)
设置Label属性
●void Effect.SetLabelObject(Effect e, Card|Group|Effect labelobject)
设置LabelObject属性
●void Effect.SetHintTiming(Effect e, int s_time[, int o_time=s_time])
设置提示时点
●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.SetTargetRange(Effect e, int s_range, int o_range)
为效果e设置Target Range属性
s_range指影响的我方区域
o_range值影响的对方区域
如果property属性中指定了EFFECT_FLAG_ABSOLUTE_RANGE标志,
那么s_range指玩家1受到影响的区域,o_range指玩家2受到影响的区域
如果这是一个召唤(覆盖)/限制召唤(覆盖)/特殊召唤手续
(EFFECT_SUMMON_PROC/EFFECT_LIMIT_SUMMON_PROC/EFFECT_SPSUMMON_PROC等)的效果,
并且property指定了EFFECT_FLAG_SPSUM_PARAM标志,
那么s_range表示特殊召唤到的哪个玩家的场地,
o_range表示可选择的表示形式
●void Effect.SetValue(Effect e, function|int|bool val)
设置Value属性
●void Effect.SetOperation(Effect e, function op_func)
设置Operation属性
●void Effect.SetOwnerPlayer(Effect e[, int player])
设置OwnerPlayer属性为player
●int Effect.GetDescription(Effect e)
返回效果描述
●int Effect.GetCode(Effect e)
返回code属性
●int Effect.GetType(Effect e)
返回Type属性
●int,int Effect.GetProperty(Effect e)
返回Property属性
●int Effect.GetLabel(Effect e)
返回Label属性
●Card|Group|Effect Effect.GetLabelObject(Effect e)
返回LabelObject属性
●int Effect.GetCategory(Effect e)
返回Category属性
●Card Effect.GetOwner(Effect e)
返回Owner属性
●Card Effect.GetHandler(Effect e)
返回效果在哪一张卡上生效(通常是用Card.RegisterEffect注册该效果的卡)
●function Effect.GetCondition(Effect e)
返回condition属性
●function Effect.GetTarget(Effect e)
返回target属性
●function Effect.GetCost(Effect e)
返回cost属性
●function|int Effect.GetValue(Effect e)
返回value属性
●function Effect.GetOperation(Effect e)
返回operation属性
●int Effect.GetActiveType(Effect e)
返回e的效果类型(怪兽·魔法·陷阱)
与发动该效果的卡的类型不一定相同,比如灵摆效果视为魔法卡的效果
●bool Effect.IsActiveType(Effect e, int type)
检查e的效果类型(怪兽·魔法·陷阱)是否有type
●int Effect.GetOwnerPlayer(Effect e)
返回OwnerPlayer属性,一般是Owner的控制者
●int Effect.GetHandlerPlayer(Effect e)
返回当前者,一般是Handle的控制者
●bool Effect.IsHasProperty(Effect e, int prop1[, int prop2])
检查效果是否含有标志prop1[和prop2]
●bool Effect.IsHasCategory(Effect e, int cate)
检查效果是否含有效果分类cate
●bool Effect.IsHasType(Effect e, int type)
检查效果是否属于类型type
●bool Effect.IsActivatable(Effect e, int player)
检查效果e能否由player发动
●bool Effect.IsActivated(Effect e)
检查效果e能否是发动的效果(机壳)
●int Effect.GetActivateLocation(Effect e)
返回效果e的发动区域
========== Group ==========
●Group Group.CreateGroup()
新建一个空的卡片组
●void Group.KeepAlive(Group g)
让卡片组持续,把卡片组设置为效果的LabelObject需要设置
●void Group.DeleteGroup(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)
使指针指向下一张卡并返回这张卡,如果不存在则返回nil
●int Group.GetCount(Group g)
返回g中卡的数量
●void Group.ForEach(Group g, function f)
以g中的每一张卡作为参数调用一次f
●Group Group.Filter(Group g, function f, Card ex|nil, ...)
过滤函数,从g中筛选满足筛选条件f并且不等于ex的卡
从第4个参数开始为额外参数
●int Group.FilterCount(Group g, function f, Card ex|nil, ...)
过滤函数,和Group.Filter基本相同,不同之处在于此函数只返回满足条件的卡的数量
●Group Group.FilterSelect(Group g, int player, function f, int min, int max, Card ex|nil, ...)
过滤函数,让玩家player从g中选择min-max张满足筛选条件f并且不等于ex的卡
从第7个参数开始为额外参数
●Group Group.Select(Group g, int player, int min, int max, Card ex|nil)
让玩家player从g中选择min-max张不等于ex的卡
●Group Group.RandomSelect(Group g, int player, int count)
让玩家player从g中随机选择count张卡
因为是随机选择,所以参数player基本无用,由系统随机选取
●bool Group.IsExists(Group g, function f, int count, Card ex|nil, ...)
过滤函数,检查g中是否存在至少count张满足筛选条件f并且不等于ex的卡
从第5个参数开始为额外参数
●bool Group.CheckWithSumEqual(Group g, function f, int sum, int min, int max, ...)
子集求和判定函数,f为返回一个interger值的函数
检查g中是否存在一个数量为min-max的子集满足以f对子集的每一个元素求值的和等于sum,从第6个参数开始为额外参数
比如:g:CheckWithSumEqual(Card.GetSynchroLevel,7,2,99)
检查g中是否存在一个子集满足子集的同调用等级之和等于7
●Group Group.SelectWithSumEqual(Group g, int player, function f, int sum, int min, int max, ...)
让玩家player从g中选取一个数量为min-max的子集使子集的特定函数的和等于sum,从第7个参数开始为额外参数
●bool Group.CheckWithSumGreater(Group g, function f, int sum, ...)
子集求和判定函数之二,f为返回一个interger值的函数
检查g中是否存在一个子集满足以f对子集的每一个元素求值的和刚好大于或者等于sum,从第4个参数开始为额外参数
比如:g:CheckWithSumGreater(Card.GetRitualLevel,8)
检查g中是否存在一个子集满足子集的仪式用等级之和大于等于8
注:判定必须是“刚好”大于或者等于
以等级为例,要使等级合计大于等于8,可以选择LV1+LV7而不可以选择LV1+LV4+LV4
●Group Group.SelectWithSumGreater(Group g, int player, function f, int sum, ...)
让玩家player从g中选取一个子集使子集的特定函数f的和大于等于sum,从第5个参数开始为额外参数
●Group,int Group.GetMinGroup(Group g, function f, ...)
f为返回一个interger值的函数,从g中筛选出具有最小的f的值的卡
第2个返回值为这个最小值,从第3个参数开始为额外参数
要使用第2个返回值注意检查g非空
●Group,int Group.GetMaxGroup(Group g, function f, ...)
f为返回一个interger值的函数,从g中筛选出具有最大的f的值的卡
第2个返回值为这个最大值,从第3个参数开始为额外参数
要使用第2个返回值注意检查g非空
●int Group.GetSum(Group g, function f, ...)
计算g中所有卡的取值的总和,f为为每张卡的取值函数,从第3个参数开始为额外参数
●int Group.GetClassCount(Group g, function f, ...)
计算g中所有卡的种类数量,f为分类的依据,返回相同的值视为同一种类,从第3个参数开始为额外参数
●void Group.Remove(Group g, function f, Card ex|nil, ...)
从g中移除满足筛选条件f并且不等于ex的所有卡,第4个参数开始是额外参数
●void Group.Merge(Group g1, Group g2)
把g2中的所有卡合并到g1
注:g2本身不会发生变化
●void Group.Sub(Group g1, Group g2)
从g1中移除属于g2中的卡
注:g2本身不会发生变化
●bool Group.Equal(Group g1, Group g2)
判断g1和g2是否相同
●bool Group.IsContains(Group g, Card c)
检查g中是否存在卡片c
●Card Group.SearchCard(Group g, function f, ...)
过滤函数,返回g中满足筛选条件f的第一张卡,从第3个参数开始为额外参数
========== Duel ==========
●void Duel.EnableGlobalFlag(int global_flag)
设置全局标记global_flag
●int Duel.GetLP(int player)
返回玩家player的当前LP
●void Duel.SetLP(int player, int lp)
设置玩家player的当前LP为lp
●int Duel.GetTurnPlayer()
返回当前的回合玩家
●int Duel.GetTurnCount([int player])
返回[player所经过的]当前的回合数
●int Duel.GetDrawCount(int player)
返回玩家player每回合的规则抽卡数量
●void Duel.RegisterEffect(Effect e, int player)
把效果e作为玩家player的效果注册给全局环境
●Effect Duel.RegisterFlagEffect(int player, int code, int reset_flag, int property, int reset_count)
为玩家player注册全局环境下的标识效果
此效果总是影响玩家的(EFFECT_FLAG_PLAYER_TARGET)并且不会被无效化
其余部分与Card.RegisterFlagEffect相同
●int Duel.GetFlagEffect(int player, int code)
返回玩家player的特定的标识效果的数量
●void Duel.ResetFlagEffect(int player, int code)
手动reset玩家player的特定的标识效果
●int Duel.Destroy(Card|Group targets, int reason[ ,int dest = LOCATION_GRAVE])
以reason原因破坏targets去dest,返回值是实际被破坏的数量
如果reason包含REASON_RULE,则破坏事件将不会检查卡片是否免疫效果,
不会触发代破效果并且无视“不能破坏”
●int Duel.Remove(Card|Group targets, int pos, int reason)
以reason原因,pos表示形式除外targets,返回值是实际被操作的数量
如果reason包含REASON_TEMPORARY,那么视为是暂时除外,可以通过Duel.ReturnToField返回到场上
●int Duel.SendtoGrave(Card|Group targets, int reason)
以reason原因把targets送去墓地,返回值是实际被操作的数量
●int Duel.SendtoHand(Card|Group targets, int player|nil, int reason)
以reason原因把targets送去玩家player的手牌,返回值是实际被操作的数量
如果player是nil则返回卡的持有者的手牌
●int Duel.SendtoDeck(Card|Group targets, int player|nil, int seq, int reason)
以reason原因把targets送去玩家player的卡组,返回值是实际被操作的数量
如果player是nil则返回卡的持有者的卡组
如果seq=0,则是返回卡组最顶端;seq=1则是返回卡组最底端;
其余情况则是返回最顶端并且标记需要洗卡组
●int Duel.SendtoExtraP(Card|Group targets, int player|nil, int reason)
以reason原因把灵摆卡targets送去玩家player的额外卡组,返回值是实际被操作的数量
如果player是nil则返回卡的持有者的额外卡组
●Group Duel.GetOperatedGroup()
此函数返回之前一次卡片操作实际操作的卡片组包括
Duel.Destroy, Duel.Remove, Duel.SendtoGrave,
Duel.SendtoHand, Duel.SendtoDeck, Duel.SendtoExtraP, Duel.Release,
Duel.ChangePosition, Duel.SpecialSummon, Duel.DiscardDeck
●void Duel.Summon(int player, Card c, bool ignore_count, Effect e|nil[, min=0])
让玩家以效果e对c进行通常召唤(非set),至少使用min个祭品
如果e=nil,那么就按照一般的通常召唤规则进行通常召唤
如果ignore_count=true,则忽略每回合的通常召唤次数限制
●void Duel.SpecialSummonRule(int player, Card c)
让玩家player对c进行特殊召唤手续
●void Duel.SynchroSummon(int player, Card c, Card tuner[, Group mg])
让玩家player以tuner作为调整[mg为素材]对c进行同调召唤手续
●void Duel.XyzSummon(int player, Card c, Group mg|nil[, min=0, max=0])
让玩家player[从mg中][选min-max个素材]对c进行超量召唤手续
mg非空且min为0则直接把mg全部作为超量素材
●void Duel.MSet(int player, Card c, bool ignore_count, Effect e|nil[, min=0])
让玩家以效果e对c进行通常召唤的Set,至少使用min个祭品
如果e=nil,那么就按照一般的通常召唤规则进行通常召唤
如果ignore_count=true,则忽略每回合的通常召唤次数限制
●void|int Duel.SSet(int player, Card|Group targets[, int target_player = player])
让玩家player把targets放置到target_player的魔法陷阱区
若targets为Group,则返回成功操作的数量
●Card Duel.CreateToken(int player, int code[, int setcode, int attack, inte defense, int level, int race, int attribute])
以传入的参数数值新建一个Token并返回
●int Duel.SpecialSummon(Card|Group targets, int sumtype, int sumplayer, int target_player, bool nocheck, bool nolimit, int pos)
让玩家player以sumtype方式,pos表示形式把targets特殊召唤到target_player场上
如果nocheck为true则无视卡的召唤条件如果nolimit为true则无视卡的苏生限制
返回值是特殊召唤成功的卡的数量
●bool Duel.SpecialSummonStep(Card c, int sumtype, int sumplayer, int target_player, bool nocheck, bool nolimit, int pos)
此函数是Duel.SpecialSummon的分解过程,只特殊召唤一张卡c
此函数用于一个效果同时特殊召唤多张参数不同的卡
此函数必须和Duel.SpecialSummonComplete一起使用
返回值表示是否特殊召唤成功
●void|int Duel.SpecialSummonComplete()
此函数在确定复数个Duel.SpecialSummonStep调用完毕之后调用,用于触发事件
●bool Duel.IsCanAddCounter(int player, int countertype, int count, Card c)
检查玩家player能否向卡片c添加count个countertype类型的指示物
●bool Duel.RemoveCounter(int player, int s, int o, int countertype, int count, int reason)
让玩家player以reason为原因移除场上存在的countertype类型的count个指示物,返回值表示是否成功
s表示对player来说的己方的可移除指示物的位置,o表示对player来说的对方的可移除指示物的位置
●bool Duel.IsCanRemoveCounter(int player, int s, int o, int countertype, int count, int reason)
检查玩家player以reason为原因是否能移除场上的countertype类型的count个指示物
s表示对player来说的己方的可移除指示物的位置,o表示对player来说的对方的可移除指示物的位置
●int Duel.GetCounter(int player, int s, int o, int countertype)
返回场上存在的countertype类型的指示物的数量
s表示对player来说的己方的可移除指示物的位置,o表示对player来说的对方的可移除指示物的位置
●int Duel.ChangePosition(Card|Group targets, int au[, int ad=au, int du=au, int dd=au, bool noflip=false, bool setavailable=false])
改变targets的表示形式返回实际操作的数量
表侧攻击表示的变成au,里侧攻击表示的变成ad,
表侧守备表示变成du,里侧守备表示变成dd
如果noflip=true则不触发反转效果(但会触发反转时的诱发效果)
如果setavailable=true则对象之后变成里侧也发动反转效果
●int Duel.Release(Card|Group targets, int reason)
以reason原因解放targets返回值是实际解放的数量
如果reason含有REASON_COST,则不会检查卡片是否不受效果影响
●bool Duel.MoveToField(Card c, int move_player, int target_player, int dest, int pos, bool enabled)
让玩家move_player把c移动的target_player的场上,返回值表示是否成功
dest只能是LOCATION_MZONE或者LOCATION_SZONE,pos表示可选表示形式,enable表示是否立刻适用c的效果
●bool Duel.ReturnToField(Card c[, int pos])
把c以表示形式pos返回到场上,pos默认值是离场前的表示形式,返回值表示是否成功
c必须是以REASON_TEMPORARY原因离场,并且离场后没有离开过那个位置
●void Duel.MoveSequence(Card c, int seq)
移动c的序号,通常用于在场上换格子或者在卡组中移动到最上方或者最下方
●void Duel.SetChainLimit(function f)
设定连锁条件,f的函数原型为 bool f(e,ep,tp)
e表示要限制连锁的效果,ep表示要限制连锁的玩家,tp表示发动该效果的玩家
在cost或者target处理中调用此函数可以限制可以连锁的效果的种类(如超融合)
如果f返回false表示不能连锁,一旦设置连锁条件后发生了新的连锁那么连锁条件将会解除
●void Duel.SetChainLimitTillChainEnd(function f)
功能同Duel.SetChainLimit,但是此函数设定的连锁条件直到连锁结束才会解除
●Effect Duel.GetChainMaterial(int player)
返回玩家player受到的连锁素材的效果,此函数仅用于融合类卡的效果
●void Duel.ConfirmDecktop(int player, int count)
确认玩家player卡组上方count张卡
●void Duel.ConfirmCards(int player, Card|Group targets)
给玩家player确认targets
●void Duel.SortDecktop(int sort_player, int target_player, int count)
让玩家sort_player对玩家target_player的卡组最上方count张卡进行排序
●bool[,Group,int,int,Effect,int,int] Duel.CheckEvent(int event[, bool get_info])
检查当前是否是event时点
若get_info=true并且是正确的时点则还返回触发时点的信息 eg,ep,ev,re,r,rp
●void Duel.RaiseEvent(Group|Card eg, int code, Effect re, int r, int rp, int ep, int ev)
以eg,ep,ev,re,r,rp触发一个时点
●void Duel.RaiseSingleEvent(Card ec, int code, Effect re, int r, int rp, int ep, int ev)
以eg,ep,ev,re,r,rp为卡片ec触发一个单体时点
●bool Duel.CheckTiming(int timing)
检查当前是否是timing提示时点
●int,int Duel.GetEnvironment()
返回两个值,表示当前场地代号,以及当前场地效果的来源玩家
场地代号指当前生效的场地卡的代号,或者海神的巫女把场地变化效果的值
来源玩家指当前生效的场地卡的控制者,或者海神的巫女等卡的控制者
●bool Duel.IsEnvironment(int code[, int player=PLAYER_ALL])
检查玩家player是否为场地代号code的来源玩家
场地代号指当前生效的场地卡的代号,或者海神的巫女把场地变化效果的值
来源玩家指当前生效的场地卡的控制者,或者海神的巫女等卡的控制者
●void Duel.Win(int player, int win_reason)
当前效果处理完令player以win_reason决斗胜利
●int Duel.Draw(int player, int count, int reason)
让玩家player以原因reason抽count张卡,返回实际抽的卡的数量
如果reason含有REASON_RULE则此次抽卡不受“不能抽卡”的效果的影响
●int Duel.Damage(int player, int value, int reason[, bool is_step=false])
以reason原因给与玩家player造成value的伤害,返回实际收到的伤害值
如果受到伤害变成回复等效果的影响时,返回值为0.
is_step为true则是伤害/恢复LP过程的分解,需要调用Duel.RDComplete()触发时点
●int Duel.Recover(int player, int value, int reason[, bool is_step=false])
以reason原因使玩家player回复value的LP,返回实际的回复值
如果受到回复变成伤害等效果的影响时,返回值为0.
is_step为true则是伤害/恢复LP过程的分解,需要调用Duel.RDComplete()触发时点
●void Duel.RDComplete()
在调用Duel.Damage/Duel.Recover时,若is_step参数为true,则需调用此函数触发时点
●bool Duel.Equip(int player, Card c1, Card c2[, bool up=true, bool is_step=false])
把c1作为玩家player的装备卡装备给c2,返回值表示是否成功
up=false则保持装备卡之前的表示形式
is_step=true则是装备过程的分解,需要配合Duel.EquipComplete使用
●void Duel.EquipComplete()
在调用Duel.Equip时,若is_step参数为true,则需调用此函数触发时点
●bool Duel.GetControl(Card|Group targets, int player[, int reset_phase=0, int reset_count=0])
让玩家player得到targets的控制权,返回值表示是否成功
●bool Duel.SwapControl(Card|Group targets1, Card|Group targets2[, int reset_phase=0, int reset_count=0])
交换targets1与targets2的控制权,返回值表示是否成功
●bool Duel.CheckLPCost(int player, int cost)
检查玩家player是否能支付cost点lp
●void Duel.PayLPCost(int player, int cost)
让玩家player支付cost点lp
●int Duel.DiscardDeck(int player, int count, int reason)
以原因reason把玩家player的卡组最上端count张卡送去墓地,返回实际转移的数量
●int Duel.DiscardHand(int player, function f, int min, int max, int reason, Card ex|nil, ...)
过滤函数让玩家player选择并丢弃满足筛选条件f兵不等于ex的min-max张手卡
第7个参数开始为额外参数
●void Duel.DisableShuffleCheck([disable=true])
使下一个操作不检查是否需要洗切卡组或手卡
注:如果不调用此函数,
除了调用Duel.DiscardDeck和Duel.Draw之外从卡组中取出卡或者把卡加入手卡
或者把卡加入卡组(非最上端或最底端)时,系统会自动在效果处理结束时洗切卡组或手卡
如果不希望如此,比如从卡组顶端除外一张卡等操作,那么需要调用此函数
此函数仅保证紧接着的一次操作不会进行洗卡检测
●void Duel.ShuffleDeck(int player)
手动洗切玩家player的卡组
注:会重置洗卡检测的状态
●void Duel.ShuffleHand(int player)
手动洗切玩家player的手卡
注:会重置洗卡检测的状态
●void Duel.ShuffleSetCard(Group g)
洗切覆盖在怪兽区域的卡(魔术礼帽)
●void Duel.ChangeAttacker(Card c)
将攻击怪兽变为c
注:此函数会使原来的攻击怪兽视为攻击过
#●void Duel.ReplaceAttacker(Card c)
#用c代替当前攻击的卡进行伤害阶段
●bool Duel.ChangeAttackTarget(Card c|nil)
将攻击对象变为c,c为nil表示直接攻击,返回值表示是否成功转移攻击对象
●void Duel.ReplaceAttackTarget(Card c)
(预留)
●void Duel.CalculateDamage(Card c1, Card c2)
令c1与c2进行战斗伤害计算
●int Duel.GetBattleDamage(int player)
返回玩家player在本次战斗中受到的伤害
●void Duel.ChangeBattleDamage(int player, int value[, bool check=true])
把玩家player在本次战斗中受到的伤害变成value,check为false则原本战斗伤害为0也改变伤害
●void Duel.ChangeTargetCard(int chainc, Group g)
把连锁chainc的对象换成g
●void Duel.ChangeTargetPlayer(int chainc, in player)
把连锁chainc的对象玩家换成player
●void Duel.ChangeTargetParam(int chainc, int param)
把连锁chainc的参数换成param
●void Duel.BreakEffect()
中断当前效果,使之后的效果处理视为不同时处理,此函数会造成错时点
●void Duel.ChangeChainOperation(int chainc, function f)
把连锁chainc的效果的处理函数换成f,用于实现“把效果变成”等的效果
●bool Duel.NegateActivation(int chainc)
使连锁chainc的发动无效,返回值表示是否成功
●bool Duel.NegateEffect(int chainc)
使连锁chainc的效果无效,返回值表示是否成功
●void Duel.NegateRelatedChain(Card c, int reset)
使卡片c的已经发动的连锁都无效化,发生reset事件则重置
●void Duel.NegateSummon(Card|Group targets)
使正在召唤·反转召唤·特殊召唤的targets的召唤无效
●void Duel.IncreaseSummonedCount([Card c])
手动消耗1次玩家[对于卡片c]的通常召唤的次数
●bool Duel.CheckSummonedCount([Card c])
检查回合玩家本回合是否还能通常召唤[卡片c]
●int Duel.GetLocationCount(int player, int location[, int use_player, int reason = LOCATION_REASON_TOFIELD])
返回玩家player的场上location可用的空格数
location只能是LOCATION_MZONE或者LOCATION_SZONE
reason为LOCATION_REASON_TOFIELD或LOCATION_REASON_CONTROL
##额外参数与凯撒斗技场的效果有关
●Card Duel.GetFieldCard(int player, int location, int seq)
返回玩家player的场上位于location序号为seq的卡,常用于获得场地区域·灵摆区域的卡
●bool Duel.CheckLocation(int player, int location, int seq)
检查玩家player的场上位于location序号为seq的空格是否可用
●int Duel.GetCurrentChain()
返回当前正在处理的连锁序号
●... Duel.GetChainInfo(int 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 连锁的唯一标识
CHAININFO_TYPE 连锁卡片的类型(怪兽·魔法·陷阱)
CHAININFO_EXTTYPE 连锁卡片的具体类型(例如同调怪兽·永续魔法·反击陷阱)
举例:
Duel.GetChainInfo(0,CHAININFO_TRIGGERING_LOCATION,CHAININFO_TARGET_CARDS)
将会返回当前连锁发生的位置和对象卡
●Card,... Duel.GetFirstTarget()
返回连锁的所有的对象卡,一般只有一个对象时使用
●int Duel.GetCurrentPhase()
返回当前的阶段
●void Duel.SkipPhase(int player, int phase, int reset_flag, int reset_count[, int value])
跳过玩家player的phase阶段,并在特定的阶段后reset,reset参数和效果相同
#value只对phase=PHASE_BATTLE才有用,value=1跳过战斗阶段的结束步骤,用于“变成回合结束阶段”等(招财猫王,闪光弹)
●bool Duel.IsDamageCalculated()
用于在伤害阶段检查是否已经计算了战斗伤害
●Card Duel.GetAttacker()
返回此次战斗攻击的卡
●Card|nil Duel.GetAttackTarget()
返回此次战斗被攻击的卡,如果返回nil表示是直接攻击
●bool Duel.NegateAttack()
无效此次攻击,返回值表示是否成功
此次攻击已经被其他效果无效或导致攻击的卡不能攻击则返回false
●void Duel.ChainAttack([Card c])
使攻击卡[或卡片c]可以再进行1次攻击(开辟,破灭的女王)
●void Duel.Readjust()
刷新场上的卡的信息
非特定情况或者不清楚原理请勿使用此函数以免形成死循环
●void Duel.AdjustInstantly([Card c])
手动刷新场上[受到卡片c影响]的卡的无效状态
●Group Duel.GetFieldGroup(int player, int s, int o)
返回指定位置的卡
●int Duel.GetFieldGroupCount(int player, int s, int o)
返回指定位置的卡的数量
●Group Duel.GetDecktopGroup(int player, int count)
返回玩家player的卡组最上方的count张卡
●Group Duel.GetMatchingGroup(function f, int player, int s, int o, Card ex|nil, ...)
过滤函数,返回指定位置满足过滤条件f并且不等于ex的卡
第6个参数开始为额外参数
●int Duel.GetMatchingGroupCount(function f, int player, int s, int o, Card ex|nil, ...)
过滤函数,返回指定位置满足过滤条件f并且不等于ex的卡的数量
●Card Duel.GetFirstMatchingCard(function f, int player, int s, int o, Card ex|nil, ...)
过滤函数,返回指定位置满足过滤条件f并且不等于ex的第一张卡
第6个参数开始为额外参数
●bool Duel.IsExistingMatchingCard(function f, int player, int s, int o, int count, Card ex|nil, ...)
过滤函数,检查指定位置是否存在至少count张满足过滤条件f并且不等于ex的卡
第7个参数开始为额外参数
●Group Duel.SelectMatchingCard(int sel_player, function f, int player, int s, int o, int min, int max, Card ex|nil, ...)
过滤函数,让玩家sel_player选择指定位置满足过滤条件f并且不等于ex的min-max张卡
第9个参数开始为额外参数
●Group Duel.GetReleaseGroup(int player[, bool use_hand=false])
返回玩家player可解放(非上级召唤用)的卡片组,use_hand为true则包括手卡
●integer Duel.GetReleaseGroupCount(int player[, bool use_hand=false])
返回玩家player可解放(非上级召唤用)的卡片数量,use_hand为true则包括手卡
●bool Duel.CheckReleaseGroup(int player, function f, int count, Card ex|nil, ...)
检查玩家player场上是否存在至少count张满足过滤条件f并且不等于ex的可解放的卡(非上级召唤用)
第5个参数开始为额外参数
●Group Duel.SelectReleaseGroup(int sel_player, function f, int min, int max, Card ex|nil, ...)
过滤函数,让玩家player从场上选择min-max张不等于ex的满足条件f的可解放的卡(非上级召唤用)
●bool Duel.CheckReleaseGroupEx(int player, function f, int count, Card ex|nil, ...)
检查玩家player场上·手卡是否存在至少count张满足过滤条件f并且不等于ex的可解放的卡(非上级召唤用)
●Group Duel.SelectReleaseGroupEx(int player, function f, int min, int max, Card ex|nil, ...)
过滤函数,让玩家player从场上·手卡选择min-max张不等于ex的满足条件f的可解放的卡(非上级召唤用)
●Group Duel.GetTributeGroup(Card c)
返回用于通常召唤c可解放(上级召唤用)的卡片组
●int Duel.GetTributeCount(Card c[, Group mg, bool ex=false])
返回[mg中]用于通常召唤c的祭品数量,ex=true则允许对方场上的怪兽(太阳神之翼神龙-球体形)
此数量不一定等于Duel.GetTributeGroup的返回值中的卡片数量
因为某些卡可以作为两个祭品来使用
●Group Duel.CheckTribute(Card c, int min[, int max, Group mg, int toplayer])
[为了召唤到toplayer场上,]判断[在mg中]是否存在用于通常召唤c的min[到max]个祭品
●Group Duel.SelectTribute(int player, Card c, int min, int max[, Group mg, bool ex=false])
让玩家player[从mg中]选择用于通常召唤c的min-max个祭品,ex=true则允许对方场上的怪兽(太阳神之翼神龙-球体形)
●int Duel.GetTargetCount(function f, int player, int s, int o, Card ex|nil, ...)
基本同Duel.GetMatchingGroupCount,不同之处在于需要追加判定卡片是否能成为当前正在处理的效果的对象
●bool Duel.IsExistingTarget(function f, int player, int s, int o, int count, Card ex|nil, ...)
过滤函数,检查指定位置是否存在至少count张满足过滤条件f并且不等于ex
并且可以成为当前正在处理的效果的对象的卡
第7个参数开始为额外参数
●Group Duel.SelectTarget(int sel_player, function f, int player, int s, int o, int min, int max, Card ex|nil, ...)
过滤函数,让玩家sel_player选择指定位置满足过滤条件f并且不等于ex
并且可以成为当前正在处理的效果的对象的min-max张卡
第9个参数开始为额外参数
此函数会同时将当前正在处理的连锁的对象设置成选择的卡
●Group Duel.SelectFusionMaterial(int player, Card c, Group g[, Card gc|nil, int chkf=PLAYER_NONE])
让玩家player从g中选择一组[必须包含gc在内的]融合怪兽c的融合素材
##根据c的种类为EFFECT_FUSION_MATERIAL的效果的Operation操作
●void Duel.SetFusionMaterial(Group g)
设置g为需要使用的融合素材
●void Duel.SetSynchroMaterial(Group g)
设置g为需要使用的同调素材
●Group Duel.SelectSynchroMaterial(int player, Card c, function f1, function f2, int min, int max[, Card smat, Group mg])
让玩家player[从mg中]选择用于同调c需要的[必须包含smat在内(如果有mg~=nil则忽略此参数)]满足条件的数量为min-max的一组素材
f1是调整需要满足的过滤条件,f2是调整以外的部分需要满足的过滤条件
●bool Duel.CheckSynchroMaterial(Card c, function f1, function f2, int min, int max[, Card smat, Group mg])
检查[mg中]是否存在一组[必须包括smat在内的]满足条件的min-max张卡作为同调召唤c的素材
f1是调整需要满足的过滤条件,f2是调整以外的部分需要满足的过滤条件
●Group Duel.SelectTunerMaterial(int player, Card c, Card tuner, function f1, function f2, int min, int max[, Group mg])
让玩家[从mg中]选择用于同调c需要的满足条件的以tuner作为调整的min-max张卡的一组素材
f1是调整需要满足的过滤条件,f2是调整以外的部分需要满足的过滤条件
●bool Duel.CheckTunerMaterial(Card c, Card tuner, function f1, function f2, int min, int max[, Group mg])
检查以tuner作为调整[在mg中]是否存在一组满足条件的min-max张卡作为同调召唤c的素材
f1是调整需要满足的过滤条件,f2是调整以外的部分需要满足的过滤条件
●Group Duel.GetRitualMaterial(int player)
返回玩家player可用的用于仪式召唤素材的卡片组
包含手上,场上可解放的以及墓地的仪式魔人等卡
●void Duel.ReleaseRitualMaterial(Group g)
解放仪式用的素材g,如果是墓地的仪式魔人等卡则除外
●Group Duel.GetFusionMaterial(int player)
返回玩家player可用的用于融合召唤素材的卡片组
包含手卡·场上的怪兽的以及万溶炼金术师的装备卡
●void Duel.SetSelectedCard(Card|Group cards)
将cards设置为Group.SelectWithSumEqual或Group.SelectWithSumGreater已选择的卡片,
●void Duel.SetTargetCard(Card|Group targets)
把当前正在处理的连锁的对象设置成targets
注,这里的对象指的的广义的对象,包括不取对象的效果可能要处理的对象
●void Duel.ClearTargetCard()
把当前正在处理的连锁的对象全部清除
●void Duel.SetTargetPlayer(int player)
把当前正在处理的连锁的对象玩家设置成player
●void Duel.SetTargetParam(integer)
void Duel.SetTargetParam(inte param)
把当前正在处理的连锁的对象参数设置成param
●void Duel.SetOperationInfo(int chainc, int category, Card|Group targets, int count, int target_player, int target_param)
设置当前处理的连锁的操作信息此操作信息包含了效果处理中确定要处理的效果分类
比如潜行狙击手需要设置CATEGORY_DICE,但是不能设置CATEGORY_DESTROY,因为不确定
对于破坏效果,targets需要设置成发动时可能成为连锁的影响对象的卡,
并设置count为发动时确定的要处理的卡的数量
比如黑洞发动时,targets需要设定为场上的所有怪兽,count设置成场上的怪的数量
对于需要移动卡片位置的CATEGORY_SPECIAL_SUMMON,CATEGORY_TOHAND,CATEGORY_TODECK等分类,
如果要处理的卡是确定的(比如取对象),则设置targets为这些卡,count为数量,
如果要处理的卡是不确定的(效果处理时才能确定,一般是不取对象的效果),
则设置targets为nil,count为预计要处理的卡的数量,
target_player为预计要处理的卡的持有者(不确定就为0)
target_param为预计要处理的卡的位置
例如增援:SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
操作信息用于很多效果的发动的检测,例如星尘龙,王家长眠之谷等
●bool,Card|Group,int,int,int Duel.GetOperationInfo(int chainc, int category)
返回连锁chainc的category分类的操作信息,返回值为5个,
第一个返回值是false的话表示不存在该分类
后4个返回值对应Duel.SetOperationInfo的后4个参数:Card|Group targets, int count, int target_player, int target_param
●int Duel.GetOperationCount(int chainc)
返回连锁chainc包含的操作分类的数量
●bool Duel.CheckXyzMaterial(Card c, function f, int lv, int min, int max, Group mg|nil)
检查场上或mg中是否存在超量召唤c的超量用等级为lv的min-max个满足条件f的叠放素材
●Group Duel.SelectXyzMaterial(int player, Card c, function f, int lv, int min, int max[, Group mg])
让玩家player为超量怪兽c[从mg中]选择超量用等级为lv的min-max个满足条件f的叠放素材
●void Duel.Overlay(Card c, Card|Group ocard)
把ocard作为c的叠放卡叠放
●Group Duel.GetOverlayGroup(int player, int s, int o)
返回指定位置的所有叠放的卡
●int Duel.GetOverlayCount(int player, int s, int o)
返回指定位置的所有叠放的卡的数量
●bool Duel.CheckRemoveOverlayCard(int player, int s, int o, int count, int reason)
检查player能否以原因reason移除指定位置至少count张卡
●bool Duel.RemoveOverlayCard(int player, int s, int o, int min, int max, int reason)
让player以reason原因移除指定位置的min-max张叠放卡,返回值表示是否成功
●void Duel.Hint(int hint_type, int player, int desc)
给玩家player发送hint_type类型的消息提示,提示内容为desc
#hint_type只能为以下类型:
#HINT_SELECTMSG 将提示内容写入缓存,用于选择卡片的提示,例如Duel.SelectMatchingCard等
#HINT_OPSELECTED 向player提示“对方选择了:...”,常用于向对方玩家提示选择发动了什么效果
#HINT_CARD 此时desc应为卡号,手动显示卡片发动的动画,常用于提示不入连锁的处理
#HINT_RACE 此时desc应为种族,向player提示“对方宣言了:...”种族
#HINT_ATTRIB 此时desc应为属性,向player提示“对方宣言了:...”属性
#HINT_CODE 此时desc应为卡号,向player提示“对方宣言了:...”卡片
#HINT_NUMBER 此时desc视为单纯的数字,向player提示“对方选择了:...”数字
#HINT_MESSAGE 弹出一个对话框显示信息
#HINT_EVENT 将提示内容写入缓存,用于时点的提示信息(诱发即时效果的提示)
#HINT_EFFECT 同HINT_CARD
●void Duel.HintSelection(Group g)
手动为g显示被选为对象的动画效果,并记录这些卡被选为对象
●bool Duel.SelectEffectYesNo(int player, Card c)
让玩家player选择是否发动卡片c的效果
●bool Duel.SelectYesNo(int player, int desc)
让玩家player选择是或否
●int Duel.SelectOption(int player, int desc1, ...)
让玩家选择选项,从第二个参数开始,每一个参数代表一条选项
返回选择的选项的序号(从0开始)
#●void Duel.SelectSequence()
#(预留)
●int Duel.SelectPosition(int player, Card c, int pos)
让玩家player选择c的表示形式并返回
●int Duel.SelectDisableField(int player, int count, int s, int o, int filter)
让玩家player选择指定位置满足标记条件filter的count个可用的空格,并返回选择位置的标记
常用于选择区域不能使用或移动怪兽格子
##位置标记的定义如下
##flag = 0;
##seq为在玩家p,位置l中选择的格子序号
##for(int32 i = 0; i < count; ++i) {
## flag |= 1 << (seq[i] + (p[i] == player ? 0 : 16) + (l[i] == LOCATION_MZONE ? 0 : 8));
##}
●int Duel.AnnounceRace(int player, int count, int available)
让玩家player从可选的种族中宣言count个种族
available是所有可选种族的组合值
●int Duel.AnnounceAttribute(int player, int count, int available)
让玩家player从可选的属性中宣言count个属性
available是所有可选属性的组合值
●int Duel.AnnounceLevel(int player)
让玩家宣言一个等级
●int Duel.AnnounceCard(int player[, int type=TYPE_MONSTER+TYPE_SPELL+TYPE_TRAP])
让玩家player宣言一个[type类型的]卡片代号
●int Duel.AnnounceCardFilter(int player, ...)
让玩家player宣言一个满足条件的卡片代号,条件用后缀表达式...表示
●int Duel.AnnounceType(int player)
让玩家player宣言一个卡片类型
●int,int Duel.AnnounceNumber(int player, int number, ...)
让玩家player宣言一个数字
从第二个参数开始,每一个参数代表一个可宣言的数字
第一个返回值的宣言的数字,第二个返回值是宣言数字在所有选项中的位置
●int Duel.AnnounceCoin(int player)
让玩家player宣言硬币的正反面
●... Duel.TossCoin(int player, int count)
让玩家player投count(<=5)次硬币,返回值为count个结果,0或者1.
●... Duel.TossDice(int player, int count1[, int count2 = 0])
让玩家player投count1次骰子[,1-player投count2次骰子](count1+count2<=5)
返回值为count1+count2个结果,1-6
●int,int,int,int,int Duel.GetCoinResult()
返回当前投硬币的结果
●int,int,int,int,int Duel.GetDiceResult()
返回当前掷骰子的结果
●void Duel.SetCoinResult(int res, ... )
强行修改投硬币的结果为res
此函数用于永续的EVENT_TOSS_COIN事件中
●void Duel.SetDiceResult(int res, ...)
强行修改投骰子的结果为res
此函数用于永续的EVENT_TOSS_DICE事件中
●Effect|nil Duel.IsPlayerAffectedByEffect(int player, int code)
检查player是否受到种类为code的效果影响,如果有就返回该效果
●bool Duel.IsPlayerCanDraw(int player[, int count=0])
检查玩家player是否可以效果抽[count张]卡
●bool Duel.IsPlayerCanDiscardDeck(int player, int count)
检查玩家player是否可以把卡组顶端count张卡送去墓地
●bool Duel.IsPlayerCanDiscardDeckAsCost(int player, int count)
检查玩家player能否把卡组顶端count张卡送去墓地作为cost
●bool Duel.IsPlayerCanSummon(int player[, int sumtype, Card c])
检查玩家player是否可以通常召唤[c,以sumtype方式]
如果需要可选参数,则必须全部使用
仅当玩家收到“不能上级召唤”等效果的影响时返回false
●bool Duel.IsPlayerCanSpecialSummon(int player[, int sumtype, int sumpos, int target_player, Card c])
检查玩家player能否特殊召唤[c到target_player场上,以sumtype召唤方式,sumpos表示形式]
如果需要可选参数,则必须全部使用
●bool Duel.IsPlayerCanFlipSummon(int player, Card c)
检查玩家player是否可以反转召唤c
●bool Duel.IsPlayerCanSpecialSummonMonster(int player, int code, int setcode, int type, int atk, int def, int level, int race, int attribute
[, integer pos=POS_FACEUP, integer target_player=player, int sumtype])
检查玩家player是否可以以pos的表示形式特殊召唤给定参数的怪兽到target_player场上
此函数通常用于判定是否可以特招token和陷阱怪兽
●bool Duel.IsPlayerCanSpecialSummonCount(int player, int count)
检查玩家player能否特殊召唤count次
●bool Duel.IsPlayerCanRelease(int player, Card c)
检查玩家player是否能解放c
●bool Duel.IsPlayerCanRemove(int player, Card c)
检查玩家player是否能除外c
●bool Duel.IsPlayerCanSendtoHand(int player, Card c)
检查玩家是否能把c送去手牌
●bool Duel.IsPlayerCanSendtoGrave(int player, Card c)
检查玩家是否能把c送去墓地
●bool Duel.IsPlayerCanSendtoDeck(int player, Card c)
检查玩家是否能把c送去卡组
●bool Duel.IsChainNegatable(int chainc)
检查连锁chainc的发动能否被无效
●bool Duel.IsChainDisablable(int chainc)
检查连锁chainc的效果能否被无效
●bool Duel.CheckChainTarget(int chainc, Card c)
检查c是否是连锁chainc的效果的正确的对象
●bool Duel.CheckChainUniqueness()
检查当前连锁中是否存在同名卡的发动,true表示无同名卡
●int,... Duel.GetActivityCount(int player, int activity_type, ...)
返回player进行对应的activity_type操作的次数
activity_type为以下类型
ACTIVITY_SUMMON 召唤(不包括通常召唤的放置)
ACTIVITY_NORMALSUMMON 通常召唤(包括通常召唤的放置)
ACTIVITY_SPSUMMON 特殊召唤
ACTIVITY_FLIPSUMMON 反转召唤
ACTIVITY_ATTACK 攻击
ACTIVITY_BATTLE_PHASE 进入战斗阶段
●bool Duel.CheckPhaseActivity()
检查玩家在当前阶段是否有操作(是否处于阶段开始时,如七皇之剑)
●void Duel.AddCustomActivityCounter(int counter_id, int activity_type, function f)
设置操作类型为activity_type、代号为counter_id的计数器,放在initial_effect函数内
f为过滤函数,以Card类型为参数,返回值为false的卡片进行以下类型的操作,计数器增加1(目前最多为1)
activity_type为以下类型
ACTIVITY_SUMMON 召唤(不包括通常召唤的set)
ACTIVITY_NORMALSUMMON 通常召唤(包括通常召唤的set)
ACTIVITY_SPSUMMON 特殊召唤
ACTIVITY_FLIPSUMMON 反转召唤
ACTIVITY_CHAIN 发动效果
●int Duel.GetCustomActivityCount(int counter_id, int player, int activity_type)
代号为counter_id的计数器的计数,返回player进行以下操作的次数(目前最多为1)
activity_type为以下类型
ACTIVITY_SUMMON 召唤(不包括通常召唤的set)
ACTIVITY_NORMALSUMMON 通常召唤(包括通常召唤的set)
ACTIVITY_SPSUMMON 特殊召唤
ACTIVITY_FLIPSUMMON 反转召唤
ACTIVITY_CHAIN 发动效果
●int Duel.GetBattledCount(int player)
返回玩家player这回合战斗过的次数
●bool Duel.IsAbleToEnterBP()
检查回合玩家能否进入战斗阶段
#●bool Duel.VenomSwampCheck(Effect e, Card c)
#蛇毒沼泽专用。把攻击力被其效果变成0的卡片破坏
●void Duel.SwapDeckAndGrave(int player)
现世与冥界的逆转专用。把玩家player的卡组和墓地交换
●void Duel.MajesticCopy(Card c1, Card c2)
救世星龙专用。把c2记述的效果复制给c1
强制发动的效果可以选择是否发动
========== aux ============
##只说明常用的函数
●int aux.Stringid(int code, int id)
用于索引卡号为code的卡片第id个(从0开始)效果提示
●function aux.TargetEqualFunction(function f, value, a, b, c)
return function(effect,target)
return f(target,a,b,c)==value
end
●function aux.TargetBoolFunction(function f, a, b, c)
return function(effect,target)
return f(target,a,b,c)
end
●function aux.FilterEqualFunction(function f, value, a, b, c)
return function(target)
return f(target,a,b,c)==value
end
●function aux.FilterBoolFunction(function f, a, b, c)
return function(target)
return f(target,a,b,c)
end
●function aux.NonTuner(function f, a, b, c)
return function(target)
return target:IsNotTuner() and (not f or f(target,a,b,c))
end
●void aux.AddSynchroProcedure(Card c, function f1, function f2, int ct)
为c添加同调召唤手续
f1为调整满足的过滤条件,f2为调整以外满足的过滤条件(通常用aux.NonTuner)
调整以外的怪兽至少需要ct只
●void aux.AddSynchroProcedure2(Card c, function f1, function f2)
为c添加同调召唤手续
f1为调整满足的过滤条件,f2为调整以外满足的过滤条件(通常用aux.NonTuner)
只能用1只调整以外的怪兽
●void aux.AddXyzProcedure(Card c, function f, int lv, int ct[, function alterf|nil, int desc|nil, int maxct=ct, function op|nil])
为c添加超量召唤手续
用满足条件f的等级为lv的ct-maxct只怪兽进行叠放
其余的参数用于在单个怪兽(通常是超量怪兽)上叠放
alterf为这个怪兽满足的条件,desc为描述,op为叠放时需要的操作(希望皇龙)
●void aux.AddFusionProcCode2(Card c, int code1, int code2, bool sub, bool insf)
为c指定卡号为code1和code2的怪兽为融合素材
sub表示能否使用融合代替素材,insf表示能否用简易融合召唤
●void aux.AddFusionProcCode3(Card c, int code1, int code2, int code3, bool sub, bool insf)
为c指定卡号为code1,code2,code3的怪兽为融合素材
●void aux.AddFusionProcCode4(Card c, int code1, int code2, int code3, int code4, bool sub, bool insf)
为c指定卡号为code1,code2,code3,code4的怪兽为融合素材
●void aux.AddFusionProcCodeFun(Card c, int code, function f, int cc, bool sub, bool insf)
为c指定卡号号为code和cc个满足条件f的怪兽为融合素材
●void aux.AddFusionProcFun2(Card c, function f1, function f2, bool insf)
为c指定满足条件f1与f2的怪兽为融合素材
●void aux.AddFusionProcCodeRep(Card c, int code, int cc, bool sub, bool insf)
为c指定cc个相同的怪兽为融合素材,code为卡号
●void aux.AddFusionProcFunRep(Card c, function f, int cc, bool insf)
为c指定cc个满足相同条件f的怪兽为融合素材
●void aux.AddRitualProcGreater(Card c, function filter)
为c添加仪式召唤效果
filter为仪式怪兽满足的条件,素材的等级之和可以超过仪式怪兽的等级
●void aux.AddRitualProcEqual(Card c, function filter)
为c添加仪式召唤效果
filter为仪式怪兽满足的条件,素材的等级之和必须等于仪式怪兽的等级
●void aux.EnablePendulumAttribute(Card c[, active_effect=true])
为灵摆怪兽c添加灵摆怪兽属性(灵摆召唤,灵摆卡的发动)
active_effect=false则不注册灵摆卡“卡的发动”的效果
●void aux.EnableDualAttribute(Card c)
为c添加二重怪兽属性
●bool aux.IsDualState(Effect e)
检查二重怪兽e:GetHandler()是否是再度召唤状态(用于效果的Condition属性)
常用于二重怪兽再度召唤获得的效果e的Condition属性
●bool aux.DualNormalCondition(Effect e)
检查二重怪兽e:GetHandler()是否为被视为通常怪兽的状态(用于效果的Condition属性)
●bool aux.IsNotDualState(Effect e)
aux.IsDualState的反义(用于效果的Condition属性)
●bool aux.IsUnionState(Effect e)
检查同盟怪兽e:GetHandler()是否处于同盟装备的状态(用于效果的Condition属性)
●void aux.SetUnionState(Card c)
为c添加同盟怪兽属性
●bool aux.CheckUnionEquip(Card uc, Card tc)
检查同盟怪兽uc能否作为同盟装备在怪兽tc上
●void aux.EnableSpiritReturn(Card c, int event1,...)
为c添加灵魂怪兽结束阶段回到手卡的效果(发生事件event1,...的回合,结束阶段回到手卡)
●function aux.NecroValleyFilter(function f)
根据过滤条件f返回一个新的过滤条件:满足f并且不受王家长眠之谷的影响的卡
●void aux.BeginPuzzle()
开始残局
##此函数注册3个全局效果:
##回合结束时玩家的基本分变成0
##跳过抽卡阶段与准备阶段
========== Debug ==========
●void Debug.Message(any msg)
显示消息
●Card Debug.AddCard(int code, int owner, int player, int location, int seq, int pos[, bool proc=false])
添加卡片,将卡号为code的卡片的持有者设置为owner,以表示形式pos放置在player的场上位于location上序号为seq的格子处
proc=true则解除苏生限制
●void Debug.SetPlayerInfo(int playerid, int lp, int startcount, int drawcount)
设置玩家信息,基本分为lp,初始手卡为startcount张,每回合抽drawcount张
playerid 下方 0,上方 1
●void Debug.PreSummon(Card c, int sum_type[, int sum_location=0])
设置卡片c的召唤信息:以sum_type方法(通常召唤、特殊召唤等)[从sum_location]出场
●bool Debug.PreEquip(Card equip_card, Card target)
为target添加装备equip_card
●void Debug.PreSetTarget(Card c, Card target)
把target选为c的永续对象
●void Debug.PreAddCounter(Card c, int counter_type, int count)
为c添加count个counter_type的指示物
●void Debug.ReloadFieldBegin(int flag)
以选项flag开始布局
flag 残局:DUEL_ATTACK_FIRST_TURN+DUEL_SIMPLE_AI
●void Debug.ReloadFieldEnd()
布局结束
●void Debug.SetAIName(string name)
设置AI的名字
●void Debug.ShowHint(string msg)
显示消息提示框

一 编写脚本的前提条件:
1 了解了lua的相关知识(至少要知道语法,语句,基本的运算,Table和Metatable)
2 熟悉游戏王的规则,包含常见的和各种不常见的规则
3 一个文本编辑器。
二 关于脚本系统的简要架构说明
脚本系统中包含4个主函数库,Card,Effect,Group和Duel,这几个函数库包含了脚本中需要的所有的基本功能。另外还有一个简单的位操作库bit和辅助函数库Auxiliary,包含了一些辅助用的函数。具体的函数清参考函数手册。
脚本系统包含3种自定义类型(Userdata),包括Card,Effect,Group。这几个类型分别以相应的函数库作为Metatable来实现模拟的OOP功能。Effect和Group直接以上述的同名函数库作为Metatable,Card则多了一个中间的模板Metatable。
对于Card类型,系统每载入一张卡,首先会根据那张卡的唯一代号(8位密码)创建一个模板Table('c'+8位密码),然后调用那张卡的脚本文件(即那些.lua文件)一次初始化模板。然后会生成一个Card的Userdata作为新卡的变量,并设置这个模板Table作为变量的Metatable。最后会将这个变量作为参数调用模板Table的initial_effect函数来对这张卡经行初始化工作。卡的静态效果都是在initial_effect函数中注册。对于通常怪物,此函数通常是一个空函数,不写这个函数也没问题,但是会报告一个“函数未找到”的错误。
对于Effect类型,此类型包含了卡的效果的信息,具体后面会详细介绍此类型的设置和说明。
Group类型即是卡片组,顾名思义就是存多张卡片使用的。此类型通常用于对多张卡片同时进行操作。Group库中提供了一些函数进行添加,删除,搜索特定的卡片。要注意的是:1、Group中卡片的排列顺序随机(但操作时会进行排序以满足replay的需要) 2、一个Group中同一张卡只能存在一次
三 脚本中的一些常量说明
--Locations
LOCATION_DECK 卡组
LOCATION_HAND 手牌
LOCATION_MZONE 怪兽区域
LOCATION_SZONE 魔陷区域
LOCATION_GRAVE 墓地
LOCATION_REMOVED 除外区
LOCATION_EXTRA 额外
LOCATION_OVERLAY 叠放卡
--Positions
POS_FACEUP_ATTACK 表侧攻击
POS_FACEDOWN_ATTACK 里侧攻击
POS_FACEUP_DEFENCE 表侧守备
POS_FACEDOWN_DEFENCE 里侧守备
POS_FACEUP 表侧
POS_FACEDOWN 里侧
POS_ATTACK 攻击
POS_DEFENCE 守备
--Phase
PHASE_DRAW 抽卡阶段
PHASE_STANDBY 准备阶段
PHASE_MAIN1 主要阶段1
PHASE_BATTLE 战斗阶段
PHASE_DAMAGE 伤害阶段
PHASE_DAMAGE_CAL 伤害计算时
PHASE_MAIN2 主要阶段2
PHASE_END 结束阶段
--Player
PLAYER_NONE 无玩家
PLAYER_ALL 双方
玩家的标识: 0=玩家1, 1=玩家2
四 Effect(效果)详解?
Effect是实现各种效果的中心部分。在此系统中,根据一个效果是否有操作动作(比如破坏,伤害等),卡的效果主要被分成两种,一种是永续型,另一种是触发型。永续型一般是表示状态变化的效果,触发型一般是需要有动作或者需要执行特定的函数才能实现的效果。当然也有特例,具体参考效果说明文档。
Effect可以通过两个函数来创建
●Effect.CreateEffect() 此函数将会建议一个新的空效果
●Effect.Clone(e) 此函数将会创建一个已存在的效果e的副本
当然,Effect不注册是不能生效的。Effect可以通过以下两个函数注册给卡片或者全局环境
●Card.RegisterEffect(c,e) 将效果e注册给卡片c
●Duel.RegisterEffect(e,player) 将效果e作为玩家player的效果注册给全局环境
Effect主要包含了以下需要设置的值:
description,code,type,category,range,target range,count limit,reset,property,label,
condition,target,cost,operation,value,owner player
这些属性基本都可以通过相关的Set和Get函数来设置和获取。具体参考Effect库的函数说明。
两种类型通用的属性:
●Description: 效果描述,大部分效果可不用,从多个效果中选择一个发动时才会用到这一属性
●Code: 此属性表示效果的种类。效果列表清查阅效果手册。
●Category: 效果分类。仅用于那些进入连锁的效果,用于标识该效果包含了那些分类。需要注意的是,只要包含了某个效果,即使效果处理时不会处理那个效果,也要把那个效果的分类加入此属性。举例:大宇宙和星光大道,这两张卡“包含”了特殊召唤的效果,即使不一定特殊召唤。此属性用于某些卡的发动的判定(如弹压)。
此属性可以是以下值的组合:
CATEGORY_DESTROY 破坏效果
CATEGORY_RELEASE 解放效果
CATEGORY_REMOVE 除外效果
CATEGORY_TOHAND 送去手牌效果
CATEGORY_TODECK 送去卡组效果
CATEGORY_TOGRAVE 送去墓地效果
CATEGORY_DECKDES 卡组破坏效果
CATEGORY_HANDES 手牌破坏效果
CATEGORY_SUMMON 召唤效果
CATEGORY_SPECIAL_SUMMON 特殊召唤效果
CATEGORY_TOKEN 生成Token效果
CATEGORY_FLIP 反转效果
CATEGORY_POSITION 改变表示形式效果
CATEGORY_CONTROL 改变控制权效果
CATEGORY_DISABLE 无效效果的效果
CATEGORY_DISABLE_SUMMON 无效召唤,特殊召唤的效果
CATEGORY_DRAW 抽卡效果
CATEGORY_SEARCH 检索效果(一般是卡组)
CATEGORY_EQUIP 装备效果
CATEGORY_DAMAGE 直接伤害效果
CATEGORY_RECOVER 回复效果
CATEGORY_ATKCHANGE 攻击变化效果
CATEGORY_DEFCHANGE 守备变化效果
CATEGORY_COUNTER 指示物相关效果
CATEGORY_COIN 需要扔硬币的效果
CATEGORY_DICE 需要扔骰子的效果
●Type: 此属性用于表示效果的分类,可以是下面的值的组合。组合方法见下面的分类解释。
EFFECT_TYPE_SINGLE 单体
EFFECT_TYPE_FIELD 群体
EFFECT_TYPE_EQUIP 装备
EFFECT_TYPE_ACTIONS 触发型
EFFECT_TYPE_ACTIVATE 发动
EFFECT_TYPE_FLIP 反转
EFFECT_TYPE_IGNITION 启动
EFFECT_TYPE_TRIGGER_O 诱发(选发)
EFFECT_TYPE_QUICK_O 诱发即使(选发)
EFFECT_TYPE_TRIGGER_F 诱发(必发)
EFFECT_TYPE_QUICK_F 诱发即时(必发)
EFFECT_TYPE_CONTINUOUS 永续
●Reset: 此属性用于标识效果被Reset的时机。此属性可以是以下值的组合:
RESET_DRAW 抽卡阶段
RESET_STANDBY 准备阶段
RESET_MAIN1 主要阶段1
RESET_BATTLE 战斗阶段
RESET_DAMAGE 伤害阶段
RESET_DAMAGE_CAL 伤害计算阶段
RESET_MAIN2 主要阶段2
RESET_END 结束阶段
RESET_SELF_TURN 我方回合
RESET_OPPO_TURN 对方回合
RESET_PHASE 阶段结束时Reset,此flag需要配合以上值一起使用
RESET_LABEL 根据标签Reset
RESET_EVENT 根据事件Reset,此flag需要配合从RESET_DISABLE开始的标志一起使用
RESET_USE 效果计数变成0之后Reset
RESET_CODE 根据效果种类Reset
RESET_COPY 复制效果Reset
RESET_DISABLE 进入无效化状态时Reset
RESET_TURN_SET 变成里侧表示时Reset
RESET_TOGRAVE 送去墓地时Reset
RESET_REMOVE 除外(永久)时Reset
RESET_TEMP_REMOVE 除外(暂时)时Reset
RESET_TOHAND 送去手牌时Reset
RESET_TODECK 送去卡组时Reset
RESET_LEAVE 离场时Reset
RESET_TOFIELD 上场时Reset
RESET_CONTROL 控制权转移时Reset
脚本中一般只需要使用RESET_PHASE和RESET_EVENT以及相关的值
●Property: 此属性包含了此效果的一些额外的信息,可以是以下值的组合:
EFFECT_FLAG_FUNC_VALUE 此效果的Value属性是函数
EFFECT_FLAG_COUNT_LIMIT 此效果有内置的次数限制
EFFECT_FLAG_FIELD_ONLY 此效果是注册给全局环境的
//以上3个属性为系统内置,无法在脚本中进行设置
EFFECT_FLAG_CARD_TARGET 此效果取对象
EFFECT_FLAG_IGNORE_RANGE 忽略Target Range属性,
EFFECT_FLAG_ABSOLUTE_TARGET Target Range不会因为控制权的改变而改变
EFFECT_FLAG_IGNORE_IMMUNE 忽略免疫属性
EFFECT_FLAG_SET_AVAILABLE 影响里侧表示的卡
EFFECT_FLAG_AUXILIARY (预留)
EFFECT_FLAG_CANNOT_DISABLE 不能无效化的效果
EFFECT_FLAG_PLAYER_TARGET 以玩家为对象
EFFECT_FLAG_BOTH_SIDE 双方都可以发动
EFFECT_FLAG_COPY_INHERIT 继承复制的效果的Reset属性
EFFECT_FLAG_DAMAGE_STEP 伤害阶段可以发动
EFFECT_FLAG_DAMAGE_CAL 伤害计算时可以发动
EFFECT_FLAG_DELAY 延迟处理
EFFECT_FLAG_SINGLE_RANGE 单体效果
EFFECT_FLAG_UNCOPYABLE 不可被黑豹,混沌幻影等卡复制
EFFECT_FLAG_OATH 契约效果
EFFECT_FLAG_SPSUM_PARAM 特殊召唤参数
一些特定的标志的使用见分类解释。
●Label: 此属性不会被系统使用,通常用于脚本传递或者保存简单的整数参数使用
●owner player: 此属性表示这个效果属于那个玩家。一般注册效果时,此属性会被自动设置成当前正在发动效果的那个玩家。当然也可以手动设置此值。
以下根据两种不同的类型解释需要设置的值
1 永续型
永续型效果主要表现状态的变化,首先Type属性只能是EFFECT_TYPE_SINGLE,EFFECT_TYPE_FIELD以及EFFECT_TYPE_EQUIP中的一个。其中EFFECT_TYPE_SINGLE表示效果只影响注册的卡本身,EFFECT_TYPE_FIELD表示效果影响某个区域的卡,EFFECT_TYPE_EQUIP表示效果影响注册的卡装备着的卡。
●对于EFFECT_TYPE_FIELD效果需要设置Range和Target Range属性。其中Range表示注册的卡在什么地方生效,Target Range表示影响那个区域的卡。举例:
local e=Effect.CreateEffect(c)
e:SetType(EFFECT_TYPE_FIELD)
e:SetRange(LOCATION_SZONE) 此效果在魔陷区生效
e:SetTargetRange(LOCATION_MZONE,LOCATION_MZONE) 此效果影响双方的怪兽区域
c:RegisterEffect(e)
如果Range属性被设置成怪兽区域或者魔陷区,那么那张卡必须是表侧表示这个效果才能生效。
一些额外的property说明
EFFECT_FLAG_IGNORE_RANGE: 当设置了这个标志时,target range属性将会被忽略,此时所有区域的卡收回收到影响
EFFECT_FLAG_PLAYER_TARGET: 设置了这个标志时 这个效果被视为影响玩家,此时需要通过类似以下的方式设定影响的范围
e:SetTargetRange(0,1) 只影响对方玩家
EFFECT_FLAG_PLAYER_TARGET: 设置了这个标志时,这个效果影响的区域不会随着卡的控制权的改变而改变。例子可参考“仪式魔人解放者”的不能特殊召唤的效果。
EFFECT_FLAG_SET_AVAILABLE: 此效果影响场上里侧的卡。默认情况下不会影响。比如“场地防护罩”的“不能破坏”的效果。
●对于EFFECT_TYPE_SINGLE效果,一般情况下不需要设定Range和Target range。此时次效果被视为是暂时性的状态改变。如果设置了EFFECT_FLAG_SINGLE_RANGE属性,那么需要同时设置Range属性来注明这个单体效果在何处生效。使用了EFFECT_FLAG_SINGLE_RANGE标志的single效果视为永续型的效果。
●EFFECT_TYPE_EQUIP无特定的Property标志
Condition表示这个效果生效的条件。如果不设置表示永久生效。此属性需要一个函数作为判定生效的依据。函数原型如下:
function sample_condition(e)
end
其中参数e是那个效果本身
Target表示这个效果影响的卡的具体要求。可视为是详细的过滤函数。如果不设置则表示影响区域的所有卡均适用。single和equip类型不需要设置此项。此属性同样需要需要一个函数作为判断卡是否受影响的依据。原型如下:
function sample_target(e,c)
end
其中参数e是效果本身,c是需要判断的卡
Value用于设置效果的值,一般只用于数值变化效果和其他一些特定的效果。此属性可以直接填数值,也可以是一个函数,原型同target,用函数可以针对不同的卡设置不同的值。
2 触发型
触发型效果需要为Type设置EFFECT_TYPE_ACTIONS以下中的任意一个类型,并且设置的时候系统会自动为Type属性添加EFFECT_TYPE_ACTIONS标志。除此之外,对于EFFECT_TYPE_TRIGGER_O,EFFECT_TYPE_TRIGGER_F和EFFECT_TYPE_CONTINUOUS需要额外添加EFFECT_TYPE_SINGLE或者EFFECT_TYPE_FIELD。触发型的code一般指的是触发的事件,比如EVENT_DESTROY表示破坏时触发这一效果。某些类型不需要设定code。
●EFFECT_TYPE_ACTIVATE: 卡片的发动都应使用设个类型。非魔法或者陷阱卡添加此效果没有任何作用。此类型不需要设定Range,code则是发动时点,如果是无发动时点的卡则将code设置成EVENT_FREE_CHAIN。
●EFFECT_TYPE_FLIP: 反转效果,不需要设置code
●EFFECT_TYPE_IGNITION: 启动效果。此效果需要设置Range为发动启动效果所在的位置。比如亚特兰蒂斯的战士是手牌
,成长的鳞茎是墓地。不需要设置code。
●EFFECT_TYPE_TRIGGER_O和EFFECT_TYPE_TRIGGER_F: 诱发效果。前者表示选发,后者表示必发。诱发效果需要额外指明是single还是field类型,表示是卡本身的触发事件还是其它卡的触发事件。简单来说single类型表示“当这张卡XXX时”的效果,field类型是“当有卡XXXX时”的效果。举例:三眼怪的效果是“当这张卡从场上送去墓地时”的效果,所以是EFFECT_TYPE_TRIGGER_F+EFFECT_TYPE_SINGLE;王虎的效果是“当有卡特殊召唤时”的效果,所以是EFFECT_TYPE_TRIGGER_F+EFFECT_TYOE_FIELD。另外的区别是single类型不需要设置Range,而field类型需要设置成发动诱发效果的位置。
关于错时点的一些解释:EFFECT_TYPE_TRIGGER_F不会错时点,在当前连锁处理完之后会新开连锁;EFFECT_TYPE_TRIGGER_O一般来说如果之后进行了会中断的操作比如处理新连锁,召唤上场等行为就会错过时点。在Property的标志EFFECT_FLAG_DELAY可以让这个选发的诱发效果效果延迟发动而不会错时点,用来实现“XXXX的场合”“可以”发动的效果。加上此标志之后选发的效果也会等到当前的行为处理完之后新开连锁处理。
●EFFECT_TYPE_QUICK_O: 绝大部分的诱发即时效果,设置和EFFECT_TYPE_ACTIVATE基本相同,唯一的不同点在于这个类型需要设置Range指明发动的位置,比如死灵守卫需要指定为墓地。
●EFFECT_TYPE_QUICK_F: 只有极少数卡有此类型的效果(死灵骑士,光与暗之龙,青冰白夜龙等)。此效果会强制针对最后一个触发此效果的事件进行连锁。使用此类型的效果时要注意发动条件的判定避免形成无限连锁(比如光暗龙的自连锁,每次连锁中只能发动一次的原因)。
●EFFECT_TYPE_CONTINUOUS: 和EFFECT_TYPE_TRIGGER_F基本相同,不同点在于此类型的效果会在触发事件后立刻处理并且不会进入连锁。常用来实现一些辅助效果。
触发型效果常会用到的一些Property值:
EFFECT_FLAG_CARD_TARGET 此效果取对象,表示此效果取对象
EFFECT_FLAG_PLAYER_TARGET 以玩家为对象,通常用于抽卡效果。拥有这个标志的效果可以被精灵之镜连锁。
EFFECT_FLAG_BOTH_SIDE 双方都可以发动的效果。比如融合之门,王宫的弹压。
EFFECT_FLAG_DAMAGE_STEP 伤害阶段可以发动
EFFECT_FLAG_DAMAGE_CAL 伤害计算时可以发动
EFFECT_FLAG_DELAY 延迟处理
触发型效果的具体实现主要依赖于4个属性:Condition,Cost,Target和Operation。这4项必须是函数,或者留空。其中Condition用于发动条件判定,Cost用于发动cost的满足性判定和具体进行cost行为,Target用于发动对象判定(主要是判定是否满足对象的条件和空发判定)以及具体的指定对象等操作,Operation则是在效果处理时会执行的具体的效果操作。
函数原型分别为:
function sample_condition(e,tp,eg,ep,ev,re,r,rp) end
function sample_cost(e,tp,eg,ep,ev,re,r,rp,chk) end
function sample_target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) end
function sample_operation(e,tp,eg,ep,ev,re,r,rp) end
这几个函数的前8个参数作用相同,具体解释如下:
e: 该效果本身
tp: 发动或者准备发动该效果的玩家
eg: event group, 事件涉及卡片组
ep: event player, 事件涉及的玩家
ev: event value, 事件涉及参数
re: reason effect, 触发事件的效果
r: reason, 事件原因描述
rp: reason, 触发事件的玩家
第3-8个参数记录了触发事件的信息,
举例来说:玩家1发动某效果e1对玩家2造成了500的效果伤害,那么
eg:空
ep:1 (=玩家2)
ev:500
re: e1
r: REASON_EFFECT(效果伤害)
rp: 0 (=玩家1)
触发事件的哪些参数有用具体参考事件说明。
cost和target还有第9个参数chk。此参数是在效果发动之前对效果的发动可能性经行判定。判定时,chk会被设置成0传入函数,然后在具体经行cost操作或者指定目标等操作时,chk会被设置成1传入。举例:
function c87910978.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,800) --检查阶段,检查是否能支付800LP的cost
else Duel.PayLPCost(tp,800) end --非检查阶段,支付800LP的cost
end
如果效果是指定目标的,那么target会有第10个参数chkc,用来判断某一张卡是否是正确的对象(主要用于六武众的影武者等转移对象的效果),并且检查是chk会被置0.举例:
function c87910978.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then
if chkc then return chkc:GetLocation()==LOCATION_MZONE and chkc:GetControler()~=tp and c87910978.filter(chkc) end
--如果存在第10个参数,则检查那张卡是否满足这个效果的对象的要求。非指定对象的效果不需要此判定。
return Duel.IsExistingTarget(c87910978.filter,tp,0,LOCATION_MZONE,1,nil)
--否则进行对象的存在性判定
end
--进行对象选择
local g=Duel.SelectTarget(tp,c87910978.filter,tp,0,LOCATION_MZONE,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_CONTROL,g,1,0,0)
end
要注意的是,即使是不指定对象的效果也要进行对象的判定,用于防止空发。比如黑洞需要检查场上是否存在可破坏的怪,抽卡系效果需要判断卡组中是否存在足够的卡。
condition, cost, target都需要返回一个boolean型数据,true表示满足条件,false表示不满足。如果留空则认为总是满足条件。operation中进行实际的效果处理,并且不需要返回值。
某些效果可能有更多的额外参数,具体参考效果分类说明。
●关于契约效果的补充说明:
如果是在一个效果发动的cost和target阶段注册了一个契约效果(包含EFFECT_FLAG_OATH标志),那么当这个效果的发动被无效时,此契约效果将会被自动reset。比如强欲谦虚之壶等不能特招,一回合只能发动一张的效果。
A prerequisite for scripting:
1 to understand the lua knowledge (at least know the syntax, statements, the basic operations, Table and Metatable)
2 familiar with the rules of the game king, including common and a variety of unusual rules
3 A text editor.
2. A brief architectural description of the scripting system
The scripting system consists of four main libraries, Card, Effect, Group and Duel, which contain all of the basic functions required in the script. There is also a simple bit operation library bit and auxiliary library Auxiliary, contains a number of auxiliary functions. Specific function clear reference function manual.
The scripting system contains three kinds of custom types (Userdata), including Card, Effect, Group. These types are the corresponding functions of the library as Metatable to achieve the simulation of OOP function. Effect and Group directly to the above-named function library as Metatable, Card is more than an intermediate template Metatable.
For the Card type, the system will first create a template Table ('c' + 8-bit password) according to the card's unique code (8-digit password) for each card loaded, and then invoke the card's script file Those. Lua files) to initialize the template. It then generates a Card's Userdata as the new card's variable, and sets the template Table as the Metatable for the variable. Finally, this variable will be called as an argument to the initial_effect function of the template Table to initialize the card through the work. The card's static effects are registered in the initial_effect function. For normal monsters, this function is usually an empty function, not write this function is no problem, but will report a "function not found" error.
For the Effect type, this type contains information about the effect of the card, details of which are described later in this section.
Group type is the card group, as the name suggests is the use of more than one card. This type is commonly used for simultaneous operation of multiple cards. Group library provides a number of functions to add, delete, search for a specific card. Note that: 1, the cards in the Group of random order (but the operation will be sorted to meet the needs of the replay) 2, a group with a card can only exist once
Three constants in some of the instructions
--Locations
LOCATION_DECK Card group
LOCATION_HAND hand
LOCATION_MZONE Monster Zone
LOCATION_SZONE Magic Depression area
LOCATION_GRAVE Cemetery
LOCATION_REMOVED excluded
LOCATION_EXTRA Extra
LOCATION_OVERLAY stack card
--Positions
POS_FACEUP_ATTACK Side attack
POS_FACEDOWN_ATTACK Side attack
POS_FACEUP_DEFENCE Side of the table
POS_FACEDOWN_DEFENCE Rear side garrison
POS_FACEUP The table side
POS_FACEDOWN The back side
POS_ATTACK attack
POS_DEFENCE fielding
- Phase
PHASE_DRAW Draw stage
PHASE_STANDBY Preparation phase
PHASE_MAIN1 Main Phase 1
PHASE_BATTLE Battle phase
PHASE_DAMAGE damage phase
PHASE_DAMAGE_CAL damage calculation
PHASE_MAIN2 Main Phase 2
PHASE_END End of phase
--Player
PLAYER_NONE No players
PLAYER_ALL
Player ID: 0 = Player1, 1 = Player2
Four Effects (effect) Xiangjie?
Effect is the central part of the various effects. In this system, according to whether there is an effect of action (such as damage, injury, etc.), the effect of the card is divided into two kinds, one is the perpetual type, the other is the trigger type. Persistent type is generally expressed the effect of state changes, trigger type is generally required to have action or need to perform a specific function to achieve results. Of course, there are special cases, the specific reference to the effect of documentation.
Effect can be created by two functions
● Effect.CreateEffect () This function will suggest a new empty effect
● Effect.Clone (e) This function creates a copy of the existing effect e
Of course, Effect is not registered can not be effective. Effect can be registered to the card or global environment by the following two functions
● Card.Register Effect (c, e) registers effect e to card c
● Duel.RegisterEffect (e, player) will effect e as the player player to register the effect to the global environment
Effect mainly contains the following needs to set the value:
Description, code, type, category, range, target range, count limit, reset, property, label,
Condition, target, cost, operation, value, owner player
These properties are basically set and retrieved via the associated Set and Get functions. Refer to the function library for details.
Two types of common attributes:
● Description: Description of effects, most of the effects can not, from a number of effects to select a launch will use this attribute
● Code: This attribute indicates the type of effect. Effects List Clear the effect manual.
Category: Effect classification. Used only for those chained effects that are used to identify which effects are included in those effects. It should be noted that, as long as the inclusion of an effect, even if the effect of treatment will not deal with that effect, but also that the effect of classification added to this property. For example: the universe and the Avenue of Stars, these two cards "contain" the effect of special calls, if not necessarily special call. This attribute is used to determine the activation of certain cards (such as pinch).
This attribute can be a combination of the following values:
CATEGORY_DESTROY Damage effect
CATEGORY_RELEASE liberation effect
CATEGORY_REMOVE exception
CATEGORY_TOHAND Send hand effect
CATEGORY_TODECK sent to the card group effect
CATEGORY_TOGRAVE sent to the cemetery effect
CATEGORY_DECKDES Card group destruction effect
CATEGORY_HANDES Hand Damage
CATEGORY_SUMMON Summon effect
CATEGORY_SPECIAL_SUMMON Special Summon Effect
CATEGORY_TOKEN Generates Token effects
CATEGORY_FLIP Reverse effect
CATEGORY_POSITION Changes the representation effect
CATEGORY_CONTROL Changes the control effect
CATEGORY_DISABLE The effect of an invalid effect
CATEGORY_DISABLE_SUMMON Invalid summon, special summon effect
CATEGORY_DRAW drawing effect
CATEGORY_SEARCH search results (typically card groups)
CATEGORY_EQUIP equipment effect
CATEGORY_DAMAGE direct damage effect
CATEGORY_RECOVER Response effect
CATEGORY_ATKCHANGE Attack change effect
CATEGORY_DEFCHANGE Defeat change effect
CATEGORY_COUNTER indicator-related effect
CATEGORY_COIN The effect of a coin toss
CATEGORY_DICE The effect of throwing a dice
● Type: This attribute is used to indicate the classification of the effect. It can be a combination of the following values. The combination method is explained in the following categories.
EFFECT_TYPE_SINGLE Monomer
EFFECT_TYPE_FIELD community
EFFECT_TYPE_EQUIP equipment
EFFECT_TYPE_ACTIONS Trigger type
EFFECT_TYPE_ACTIVATE is launched
EFFECT_TYPE_FLIP Reverse
EFFECT_TYPE_IGNITION starts
EFFECT_TYPE_TRIGGER_O Induced (optional)
EFFECT_TYPE_QUICK_O Induced Even if (optional)
EFFECT_TYPE_TRIGGER_F Induced (Betfair)
EFFECT_TYPE_QUICK_F Induced Instant (Betfair)
EFFECT_TYPE_CONTINUOUS
● Reset: This attribute is used to identify when the effect is Reset. This attribute can be a combination of the following values:
RESET_DRAW Draw phase
RESET_STANDBY Preparation phase
RESET_MAIN1 Main phase 1
RESET_BATTLE Battle phase
RESET_DAMAGE damage phase
RESET_DAMAGE_CAL Damage calculation phase
RESET_MAIN2 Main Phase 2
RESET_END The end phase
RESET_SELF_TURN Our round
RESET_OPPO_TURN Turn each other round
RESET_PHASE At the end of the reset, this flag needs to be used in conjunction with the above values
RESET_LABEL according to the label Reset
RESET_EVENT Depending on the event Reset, this flag needs to be used in conjunction with the flag starting with RESET_DISABLE
RESET_USE Reset after effect count becomes 0
RESET_CODE Reset according to effect type
RESET_COPY Reset effect
RESET_DISABLE When inactive state
RESET_TURN_SET Turns to the back side
RESET_TOGRAVE When sent to the cemetery Reset
Reset except for RESET_REMOVE (permanent)
Reset (except for RESET_TEMP_REMOVE)
RESET_TOHAND Reset the hand
RESET_TODECK Reset when sending to card group
RESET_LEAVE Reset when leaving
RESET_TOFIELD Reset when playing
RESET_CONTROL Reset control transition
Scripts generally only need to use RESET_PHASE and RESET_EVENT and related values
● Property: This property contains some additional information about the effect, and can be a combination of the following:
EFFECT_FLAG_FUNC_VALUE The Value property of this effect is a function
EFFECT_FLAG_COUNT_LIMIT This effect has a built-in limit
EFFECT_FLAG_FIELD_ONLY This effect is registered to the global environment
// The above three properties are built in to the system and can not be set in the script
EFFECT_FLAG_CARD_TARGET This effect fetches the object
EFFECT_FLAG_IGNORE_RANGE Ignore the Target Range property,
EFFECT_FLAG_ABSOLUTE_TARGET Target Range does not change because of changes in control
EFFECT_FLAG_IGNORE_IMMUNE Ignores the immune attribute
EFFECT_FLAG_SET_AVAILABLE affects the card indicated on the back side
EFFECT_FLAG_AUXILIARY (Reserved)
EFFECT_FLAG_CANNOT_DISABLE The effect that can not be disabled
EFFECT_FLAG_PLAYER_TARGET is for players
EFFECT_FLAG_BOTH_SIDE Both sides can fire
EFFECT_FLAG_COPY_INHERIT The Reset property that inherits the effect of the copy
The EFFECT_FLAG_DAMAGE_STEP damage phase can be fired
EFFECT_FLAG_DAMAGE_CAL damage calculation can be launched
EFFECT_FLAG_DELAY Delay processing
EFFECT_FLAG_SINGLE_RANGE Single effect
EFFECT_FLAG_UNCOPYABLE can not be Panthers, Chaos Phantom, etc. card copy
EFFECT_FLAG_OATH Contract effect
EFFECT_FLAG_SPSUM_PARAM Special call parameters
The use of some specific flags is explained in the category.
● Label: This property is not used by the system. It is usually used for script passing or for saving simple integer parameters.
● owner player: This attribute indicates that the effect belongs to that player. General registration effect, this property will be automatically set to the current effect is to launch the player. You can also set this value manually.
The values ​​that need to be set are interpreted according to two different types
1 sustainable type
A persistent effect is a change in state. First, the Type attribute can only be one of EFFECT_TYPE_SINGLE, EFFECT_TYPE_FIELD, and EFFECT_TYPE_EQUIP. EFFECT_TYPE_SINGLE indicates that the effect only affects the registered card itself, EFFECT_TYPE_FIELD indicates that the effect of a region of the card, EFFECT_TYPE_EQUIP that the effect of the registration card is equipped with the card.
● For the EFFECT_TYPE_FIELD effect, set the Range and Target Range properties. Where Range indicates where the registered card is in effect, and Target Range represents the card that affects that area. For example:
Local e = Effect.CreateEffect (c)
E: SetType (EFFECT_TYPE_FIELD)
E: SetRange (LOCATION_SZONE) This effect takes effect in the trap area
E: SetTargetRange (LOCATION_MZONE, LOCATION_MZONE) This effect affects both sides of the monster area
C: RegisterEffect (e)
If the Range property is set to a monster area or a magpie area, that card must be the side of the table to indicate that the effect is effective.
Some additional property descriptions
EFFECT_FLAG_IGNORE_RANGE: When this flag is set, the target range attribute will be ignored, and all areas of the card will be recovered
EFFECT_FLAG_PLAYER_TARGET: When this flag is set, this effect is considered to affect the player. In this case, it is necessary to set the influence range by the following
E: SetTargetRange (0,1) only affects the other player
EFFECT_FLAG_PLAYER_TARGET: When this flag is set, the area affected by this effect does not change as the card's control is changed. Examples can refer to the "ritual magic devil" can not be special summoned effect.
EFFECT_FLAG_SET_AVAILABLE: This effect affects the card on the inside of the field. By default, this is not affected. Such as "site protective cover" and "can not destroy" effect.
● For the EFFECT_TYPE_SINGLE effect, there is no need to set the Range and Target range in general. The secondary effect is considered to be a temporary state change. If you set the EFFECT_FLAG_SINGLE_RANGE property, you need to set the Range property to indicate where this single effect will take effect. The single effect using the EFFECT_FLAG_SINGLE_RANGE flag is considered a perpetual effect.
● EFFECT_TYPE_EQUIP No specific Property flag
Condition Indicates the condition for this effect to take effect. If not set, it means that it will take effect permanently. This property requires a function as the basis for the decision to take effect. The function prototype is as follows:
Function sample_condition (e)
End
Where the parameter e is the effect itself
Target indicates the card's specific requirements for this effect. Can be considered as a detailed filtering function. If it is not set, all cards in the affected area are applicable. The single and equip types do not need to be set. This property also requires the need for a function to determine whether the card is affected by the basis. The prototype is as follows:
Function sample_target (e, c)
End
Which parameter e is the effect itself, c is the need to determine the card
Value is used to set the value of the effect, generally only used for numerical change effects and other specific effects. This property can be directly filled values, it can be a function, the prototype with the target, with the function can be set for different cards of different values.
2 trigger type
Triggered effects need to set the Type for the Type of EFFECT_TYPE_ACTIONS any of the following types, and set the system when the Type property will automatically add the EFFECT_TYPE_ACTIONS flag. In addition, EFFECT_TYPE_TRIGGER_O, EFFECT_TYPE_TRIGGER_F, and EFFECT_TYPE_CONTINUOUS require an additional EFFECT_TYPE_SINGLE or EFFECT_TYPE_FIELD. Trigger type of the code generally refers to the trigger event, such as EVENT_DESTROY said that the destruction of the trigger this effect. Some types do not require code.
● EFFECT_TYPE_ACTIVATE: the card should be used to launch a set type. Non-Magic or Trap Cards Add this effect without any effect. This type does not need to set the Range, code is the launch point, if there is no time to start the card will be set to EVENT_FREE_CHAIN ​​code.
● EFFECT_TYPE_FLIP: Reverse effect, do not need to set the code
● EFFECT_TYPE_IGNITION: Activates the effect. This effect needs to set the Range to start the location of the launch effect. Atlantis, for example, is a soldier
, The growth of the bulb is the cemetery. You do not need to set code.
● EFFECT_TYPE_TRIGGER_O and EFFECT_TYPE_TRIGGER_F: Induced effects. The former said the election, which said the Betfair. Evoked effects need to be specified is a single or field type, said the card itself is the trigger event or other card trigger event. Simply said single type "when this card XXX" effect, field type is "when a card XXXX" effect. For example: the effect of the three blame is "when the card from the field sent to the cemetery" effect, it is EFFECT_TYPE_TRIGGER_F + EFFECT_TYPE_SINGLE; Wang Hu effect is "when a special call card" effect, it is EFFECT_TYPE_TRIGGER_F + EFFECT_TYOE_FIELD. The other difference is that the single type does not need to set Range, and the field type needs to be set to the position where the evoked effect is fired.
EFFECT_TYPE_TRIGGER_O In general, if the operation will be interrupted after the operation such as dealing with the new chain, such as the behavior of the call will be missed when the point of time, the effect will not be the same time, . In the Property of the flag EFFECT_FLAG_DELAY can make this election effect of the induced effect of delay can not start at the wrong time, used to achieve "XXXX occasions" "can" launch effect. With this flag after the election results will wait until the current behavior of the new chain processing.
● EFFECT_TYPE_QUICK_O: most of the induced real-time effects, settings and EFFECT_TYPE_ACTIVATE basically the same, the only difference is that this type needs to be set to specify the location of the Range Range, such as necromancy guards need to specify the cemetery.
● EFFECT_TYPE_QUICK_F: Only a few cards have this type of effect (Necro Knight, light and dark dragon, blue ice night dragon, etc.). This effect forces an event to be interlocked for the last event that triggered this effect. Use this type of effect should pay attention to determine the conditions of the launch to avoid the formation of an unlimited chain (such as light dark dragon since the chain, each chain can only be launched once the reason).
● EFFECT_TYPE_CONTINUOUS: Same as EFFECT_TYPE_TRIGGER_F, except that the effect of this type is handled immediately after the trigger event and does not enter the chain. Commonly used to achieve some secondary effects.
Trigger type effects often use some of the Property value:
EFFECT_FLAG_CARD_TARGET This effect takes an object, indicating that the effect takes an object
EFFECT_FLAG_PLAYER_TARGET is targeted at the player and is typically used for drawing effects. Have the effect of this logo can be the wizard of the mirror chain.
EFFECT_FLAG_BOTH_SIDE The effect that both sides can launch. Such as integration of the door, the palace of the spring pressure.
The EFFECT_FLAG_DAMAGE_STEP damage phase can be fired
EFFECT_FLAG_DAMAGE_CAL damage calculation can be launched
EFFECT_FLAG_DELAY Delay processing
Trigonometric effects of the concrete realization of the main depend on four properties: Condition, Cost, Target and Operation. These four must be functions, or leave blank. Which is used to launch the condition determination, Cost to launch the cost of satisfaction and specific cost behavior, Target for launching the object to determine (mainly to determine whether to meet the conditions of the object and the air to determine) and the specific operation of the specified object , Operation is in the effect of the implementation of the specific effects of operation.
The function prototypes are:
Function sample_condition (e, tp, eg, ep, ev, re, r, rp) end
Function sample_cost (e, tp, eg, ep, ev, re, r, rp, chk) end
Function sample_target (e, tp, eg, ep, ev, re, r, rp, chk, chkc) end
Function sample_operation (e, tp, eg, ep, ev, re, r, rp) end
The first eight parameters of these functions the same role, specifically explained as follows:
E: the effect itself
Tp: launch or ready to launch the effect of the players
Eg: event group, event involving a deck
Ep: event player, the players involved in the event
Ev: event value, event related parameters
Re: reason effect, the effect of the trigger event
R: reason, the cause of the event description
Rp: reason, the player that triggered the event
The third 3-8 parameters record the trigger event information,
For example: player 1 to launch an effect e1 on the player 2 caused 500 effect damage, then
Empty
Ep: 1 (= player 2)
Ev: 500
Re: e1
R: REASON_EFFECT (effect damage)
Rp: 0 (= player 1)
The parameters that trigger the event are useful for specific reference event descriptions.
Cost and target there is the first nine parameters chk. This parameter is determined by the row before the effect is launched. Judgment, chk will be set to 0 pass-in function, and then in the specific line cost operations or specify the target operation, chk will be set to 1 incoming. For example:
Function c87910978.cost (e, tp, eg, ep, ev, re, r, rp, chk)
If chk == 0 then return Duel.CheckLPCost (tp, 800) - Check the stage to see if it can pay 800LP of cost
Else Duel.PayLPCost (tp, 800) end - Non-check phase, pay 800LP cost
End
If the effect is to specify the target, then the target will have the first 10 parameters chkc, used to determine whether a card is the correct object (mainly used for the six weapons of the Wu Wu and other objects of the transfer effect), and check is chk Is set to 0. Example:
Function c87910978.target (e, tp, eg, ep, ev, re, r, rp, chk, chkc)
If chk == 0 then
If chkc then return chkc: GetLocation () == LOCATION_MZONE and chkc: GetControler () ~ = tp and c87910978.filter (chkc) end
- If the 10th argument is present, then check if that card meets the requirements of the object for this effect. This determination is not required for effects of non-specified objects.
Return Duel.IsExistingTarget (c87910978.filter, tp, 0, LOCATION_MZONE, 1, nil)
- Otherwise the existence of the object is determined
End
- Perform object selection
Local g = Duel.SelectTarget (tp, c87910978.filter, tp, 0, LOCATION_MZONE, 1,1, nil)
Duel.SetOperationInfo (0, CATEGORY_CONTROL, g, 1,0,0)
End
It is to be noted that even if the effect of the object is not specified, the decision of the object is performed to prevent the empty transmission. Such as black holes need to check the existence of the field can damage the strange, pumping card system needs to determine whether there is enough card group card.
Condition, cost, target need to return a boolean-type data, true that meet the conditions, false that does not meet. If you leave the space is considered to always meet the conditions. Operation in the actual effect of treatment, and do not need to return value.
Some effects may have more additional parameters, specific reference to the effects of classification.
● Supplementary explanation of contractual effect:
If an effect is launched in the cost and target stage of the registration of a contract effect (including EFFECT_FLAG_OATH flag), then when the launch of this effect is invalid, the contract effect will be automatically reset. Such as strong desire to modest pot, etc. can not be special, can only be launched one round of the effect.
################ 使用 tab 分隔
##rule
0x0 规则
0x1 OCG专有
0x2 TCG专有
0x3 OCG&TCG
0x4 Anime/DIY
##attribute
0x0 属性
0x1 地
0x2 水
0x4 炎
0x8 风
0x10 光
0x20 暗
0x40 神
##level
0x0 星数/连接数
0x1 1★
0x2 2★
0x3 3★
0x4 4★
0x5 5★
0x6 6★
0x7 7★
0x8 8★
0x9 9★
0xa 10★
0xb 11★
0xc 12★
0xd 13★
##link marker
0x1 ↙
0x2 ↓
0x4 ↘
0x8 ←
0x20 →
0x40 ↖
0x80 ↑
0x100 ↗
##category
0x1 魔陷破坏
0x2 怪兽破坏
0x4 卡片除外
0x8 送去墓地
0x10 返回手牌
0x20 返回卡组
0x40 手牌破坏
0x80 卡组破坏
0x100 抽卡辅助
0x200 卡组检索
0x400 卡片回收
0x800 表示变更
0x1000 控制权
0x2000 攻守变化
0x4000 贯穿伤害
0x8000 多次攻击
0x10000 攻击限制
0x20000 直接攻击
0x40000 特殊召唤
0x80000 衍生物
0x100000 种族相关
0x200000 属性相关
0x400000 LP伤害
0x800000 LP回复
0x1000000 破坏耐性
0x2000000 效果耐性
0x4000000 指示物
0x8000000 赌博相关
0x10000000 融合相关
0x20000000 同调相关
0x40000000 超量相关
0x80000000 效果无效
##race
0x0 种族
0x1 战士族
0x2 魔法师族
0x4 天使族
0x8 恶魔族
0x10 不死族
0x20 机械族
0x40 水族
0x80 炎族
0x100 岩石族
0x200 鸟兽族
0x400 植物族
0x800 昆虫族
0x1000 雷族
0x2000 龙族
0x4000 兽族
0x8000 兽战士族
0x10000 恐龙族
0x20000 鱼族
0x40000 海龙族
0x80000 爬虫类族
0x100000 念动力族
0x200000 幻神兽族
0x400000 创造神族
0x800000 幻龙族
0x1000000 电子界族
##type
0x1 怪兽
0x2 魔法
0x4 陷阱
0x8 N/A
0x10 通常
0x20 效果
0x40 融合
0x80 仪式
0x100 N/A
0x200 灵魂
0x400 同盟
0x800 二重
0x1000 调整
0x2000 同调
0x4000 衍生物
0x8000 N/A
0x10000 速攻
0x20000 永续
0x40000 装备
0x80000 场地
0x100000 反击
0x200000 反转
0x400000 卡通
0x800000 超量
0x1000000 灵摆
0x2000000 特殊召唤
0x4000000 连接
##setname
-1 自定义
0x0 系列
0x1 正义盟军 A・O・J
0x2 次世代 ジェネクス
0x1002 真次世代 レアル・ジェネクス
0x2002 N/A 盟军·次世代 A・ジェネクス
0x3 N/A
0x4 亚马逊 アマゾネス
0x5 秘仪之力 アルカナフォース
0x6 暗黑界 暗黒界
0x7 古代的机械 アンティーク・ギア
0x8 英雄 HERO
0x3008 元素英雄 E・HERO
0x6008 N/A 邪心英雄 E-HERO
0xc008 命运英雄 D-HERO
0x5008 N/A 幻影英雄 V・HERO
0xa008 假面英雄 M・HERO
0x9 新宇 ネオス
0xa 入魔 ヴェルズ
0x100a 侵入魔鬼 インヴェルズ
0xb 永火 インフェルニティ
0xc 外星人 エーリアン
0xd 剑士 セイバー
0x100d X-剑士 X-セイバー
0x300d N/A XX-剑士 XX-セイバー
0xe 电气 エレキ
0xf 扰乱 おジャマ
0x10 薰风 ガスタ
0x11 机巧 カラクリ
0x12 青蛙 ガエル
0x13 机皇 機皇
0x3013 机皇帝 機皇帝
0x6013 机皇兵 機皇兵
0x14 N/A
0x15 巨大战舰 巨大戦艦
0x16 机人 ロイド
0x1016 交通机人 ビークロイド
0x2016 疾行机人 スピードロイド
0x17 N/A 同调 シンクロ
0x1017 同调士 シンクロン
0x2017 同调龙 シンクロ・ドラゴン
0x18 云魔物 雲魔物
0x19 剑斗兽 剣闘獣
0x1a 黑蝎 黒蠍
0x1b 幻兽 幻獣
0x101b 幻兽机 幻獣機
0x1c N/A
0x1d 核成 コアキメイル
0x1e 茧状体 C(コクーン)
0x1f 新空间侠 N(ネオスペーシアン)
0x20 紫炎 紫炎(シエン)
0x21 地缚神 地縛神
0x22 朱罗纪 ジュラック
0x23 罪 Sin
0x24 废铁 スクラップ
0x25 链 C(チェーン)
0x26 变形斗士 D(ディフォーマー)
0x27 科技属 TG(テックジーナス)
0x28 电池人 電池メン
0x29 龙骑兵团 ドラグニティ
0x2a 自然 ナチュル
0x2b 忍者
0x2c 炎狱 フレムベル
0x2d N/A
0x2e 守墓 墓守
0x2f 冰结界 氷結界
0x30 大日 ヴァイロン
0x31 命运女郎 フォーチュンレディ
0x32 火山 ヴォルカニック
0x33 黑羽 BF(ブラックフェザー)
0x34 宝玉 宝玉
0x1034 宝玉兽 宝玉獣
0x2034 究极宝玉神 究極宝玉神
0x35 魔轰神 魔轟神
0x36 机甲 マシンナーズ
0x37 霞之谷 霞の谷
0x38 光道 ライトロード
0x39 熔岩 ラヴァル
0x3a 遗式 リチュア
0x3b 真红眼 レッドアイズ
0x3c 爬虫妖 レプティレス
0x3d 六武众 六武衆
0x3e 异虫 ワーム
0x3f 救世 セイヴァー
0x40 被封印 封印されし
0x41 LV LV(レベル)
0x42 极星 極星
0x3042 极星天 極星天
0x6042 极星兽 極星獣
0xa042 极星灵 極星霊
0x5042 极星宝 極星宝
0x43 废品 ジャンク
0x44 代行者
0x45 恶魔 デーモン
0x1045 红莲魔 レッド・デーモン
0x46 融合 融合/フュージョン
0x1046 融合龙 フュージョン・ドラゴン
0x47 宝石 ジェム
0x1047 宝石骑士 ジェムナイト
0x48 No. No.
0x1048 混沌No. CNo.
0x49 铳士 銃士
0x4a N/A 时械神 時械神
0x4b 极神 極神
0x4c 落穴 落とし穴
0x4d N/A
0x4e 进化 エヴォル
0x304e 进化虫 エヴォルド
0x604e 进化龙 エヴォルダ
0x504e 进化帝 エヴォルカイザー
0x4f N/A 爆裂 バスター
0x104f /爆裂体 /バスター
0x50 蛇毒 ヴェノム
0x51 齿轮 ガジェット
0x52 守护者 ガーディアン
0x53 星圣 セイクリッド
0x54 我我我 ガガガ
0x55 光子 フォトン
0x56 甲虫装机 甲虫装機
0x57 共鸣者 リゾネーター
0x58 发条 ゼンマイ
0x59 隆隆隆 ゴゴゴ
0x5a 企鹅 ペンギン
0x5b 番茄小子 トマボー
0x5c 斯芬克斯 スフィンクス
0x5d N/A
0x5e N/A
0x5f N/A
0x60 竹光
0x61 忍法
0x62 卡通 トゥーン
0x63 反应机 リアクター
0x64 鹰身 ハーピィ
0x65 侵略的 侵略の
0x66 战士 ウォリアー
0x1066 音响战士 音響戦士
0x67 N/A 钢铁 アイアン
0x68 N/A 铁皮 ブリキ
0x69 圣刻 聖刻
0x6a 幻蝶刺客 幻蝶の刺客
0x6b 保镖 バウンサー
0x6c N/A 光芒使者 ライトレイ
0x6d 魔人
0x6e 魔导 魔導
0x106e 魔导书 魔導書
0x6f 英豪 ヒロイック
0x106f 英豪挑战者 H・C
0x206f N/A 英豪冠军 H-C
0x70 先史遗产 先史遺産
0x71 魔偶甜点 マドルチェ
0x72 齿轮齿轮 ギアギア
0x1072 齿轮齿轮人 ギアギアーノ
0x73 超量 エクシーズ
0x1073 混沌超量 CX(カオスエクシーズ)
0x2073 超量龙 エクシーズ・ドラゴン
0x74 水精鱗
0x75 深渊 アビス
0x76 纹章兽 紋章獣
0x77 海皇
0x78 迅捷 素早い
0x79 炎星
0x7a Nobel 聖(せい)
0x107a 圣骑士 聖騎士(せいきし)
0x207a 圣剑 聖剣(せいけん)
0x7b 银河 ギャラクシー
0x107b 银河眼 ギャラクシーアイズ
0x307b 银河眼时空龙 ギャラクシーアイズ・タキオン・ドラゴン
0x7c 炎舞
0x7d 阳炎 ヘイズ
0x107d 阳炎兽 陽炎獣
0x7e 异热同心武器 ZW(ゼアル・ウェポン)
0x7f 霍普 ホープ
0x107f 希望皇 霍普 希望皇ホープ
0x80 尘妖 ダストン
0x81 炎王
0x1081 炎王兽 炎王獣
0x82 怒怒怒 ドドド
0x83 机关傀儡 ギミック・パペット
0x84 燃烧拳击手 BK(バーニングナックラー)
0x85 超级防御机器人 SDロボ
0x86 光天使
0x87 阴影 アンブラル
0x88 武神
0x89 洞 ホール
0x8a N/A 虫惑 蟲惑
0x108a 虫惑魔 蟲惑魔
0x8b 恶餐 マリスボラス
0x8c N/A 德鲁伊 ドルイド
0x8d 鬼计 ゴーストリック
0x8e 吸血鬼 ヴァンパイア
0x8f 刷啦啦 ズババ
0x90 森罗 森羅
0x91 王家长眠之谷 ネクロバレー
0x92 纹章 メダリオン
0x93 电子 サイバー
0x1093 电子龙 サイバー・ドラゴン
0x2093 电子化天使 サイバー・エンジェル
0x94 电子科技 サイバネティック
0x95 升阶魔法 RUM
0x96 电子鱼人 フィッシュボーグ
0x97 古遗物 アーティファクト
0x98 魔术师 魔術師
0x99 异色眼 オッドアイズ
0x9a 超重武者
0x109a 超重武者装留
0x9b 幻奏
0x109b 幻奏的音姬 幻奏の音姫
0x9c 星守 テラナイト
0x109c 星辉士 ステラナイト
0x9d 影依 シャドール
0x9e 龙星 竜星
0x9f 娱乐伙伴 EM(エンタメイト)
0xa0 传说的骑士 伝説の騎士
0xa1 传说之龙 伝説の竜
0xa2 N/A 魔术 マジシャン
0x10a2 黑魔术 ブラック・マジシャン
0x20a2 魔术少女 マジシャン・ガール
0x30a2 黑魔术少女 ブラック・マジシャン・ガール
0xa3 星尘 スターダスト
0xa4 栗子球 クリボー
0x10a4 羽翼栗子球 ハネクリボー
0xa5 变化 チェンジ
0xa6 幼芽 スプラウト
0xa7 阿托利斯 アルトリウス
0xa8 兰斯洛特 ランスロット
0xa9 毛绒动物 ファーニマル
0xaa 机壳 クリフォート
0xab 文具电子人 ブンボーグ
0xac 哥布林 ゴブリン
0xad 魔玩具 デストーイ
0xae 契约书 契約書
0xaf DD
0x10af DDD
0xb0 加特姆士 ガトムズ
0xb1 彼岸
0xb2 超级运动员 U.A.
0xb3 妖仙兽 妖仙獣
0xb4 影灵衣 影霊衣
0xb5 灵兽 霊獣
0x10b5 灵兽使 霊獣使い
0x20b5 精灵兽 精霊獣
0x30b5 N/A 精灵兽使 精霊獣使い
0x40b5 圣灵兽骑 聖霊獣騎
0xb6 外神
0xb7 旧神
0xb8 古神
0xb9 烈焰加农炮 ブレイズ・キャノン
0xba 急袭猛禽 RR(レイド・ラプターズ)
0xbb 狱火机 インフェルノイド
0xbc 人造人 人造人間
0xbd 暗黑骑士 盖亚 暗黒騎士ガイア
0xbe 帝王 帝王
0xbf 灵使 霊使い
0xc0 凭依装着 憑依装着
0xc1 PSY骨架 PSYフレーム
0xc2 动力工具 パワー・ツール
0xc3 锋利小鬼 エッジインプ
0xc4 神数 セフィラ
0xc5 炼狱 煉獄
0xc6 娱乐法师 Em(エンタメイジ)
0xc7 龙剑士 竜剣士
0xc8 点火骑士 イグナイト
0xc9 芳香 アロマ
0xca 魔装战士 魔装戦士
0xcb 以太神兵龙 イーサルウェポン
0xcc 占术姬 占術姫
0xcd 水伶女 アクアアクトレス
0xce 水族馆 アクアリウム
0xcf 混沌 カオス
0x10cf 混沌战士 カオス・ソルジャー
0xd0 威风妖怪 マジェスペクター
0xd1 灰篮 グレイドル
0xd2 星际仙踪 Kozmo
0xd3 坏兽 壊獣
0xd4 伯吉斯异兽 バージェストマ
0xd5 但丁 ダンテ
0xd6 破坏剑 破壊剣
0xd7 巴斯达·布雷达 バスター・ブレイダー
0xd8 雾动机龙 ダイナミスト
0xd9 不知火
0xda 龙魔王 竜魔王
0xdb 幻影 ファントム
0x10db 幻影骑士团 幻影騎士団
0xdc 超级量子 超量
0x10dc 超级量子战士 超量士
0x20dc 超级量子机兽 超量機獣
0xdd 青眼 ブルーアイズ
0xde 艾克佐迪亚 エクゾディア
0xdf 月光 ムーンライト
0xe0 无形噬体 アモルファージ
0xe1 炼装 メタルフォーゼ
0xe2 三形金字塔 トラミッド
0xe3 方界
0xe4 精灵剑士 エルフの剣士
0xe5 光波 サイファー
0xe6 花札卫 花札衛
0xe7 沉默剑士 サイレント・ソードマン
0xe8 沉默魔术师 サイレント・マジシャン
0xe9 磁石战士 磁石の戦士(じしゃくのせんし)
0xea 水晶机巧 クリストロン
0xeb 化合兽 化合獣
0xec N/A 魔界 魔界
0x10ec 魔界剧团 魔界劇団
0x20ec 魔界台本 魔界台本
0xed 地底恐魔 Subterror
0x10ed 地底恐魔 巨魔 Subterror Behemoth
0xee 秘旋谍 SPYRAL
0x10ee 秘旋谍装备 SPYRAL GEAR
0x20ee 秘旋谍任务 SPYRAL MISSION
0xef 堕天使
0xf0 风魔女 WW(ウィンド・ウィッチ)
0xf1 十二兽 十二獣
0xf2 灵摆 ペンデュラム
0x10f2 灵摆龙 ペンデュラム・ドラゴン
0x20f2 灵摆读阵 ペンデュラムグラフ
0xf3 捕食 プレデター
0x10f3 捕食植物
0xf4 召唤兽 召喚獣
0xf5 甘多拉 ガンドラ
0xf6 摩天楼
0xf7 抒情歌鸲 LL(リリカル・ルスキニア)
0xf8 N/A 霸王 覇王
0x10f8 霸王门 覇王門
0x20f8 霸王眷龙 覇王眷竜
0xf9 真龙 真竜
0xfa 幻煌龙 幻煌龍
#end
\ No newline at end of file
################ use tab
##rule
0x0 Rule
0x1 OCG
0x2 TCG
0x3 OCG&TCG
0x4 Anime/DIY
##attribute
0x0 Attribute
0x1 EARTH
0x2 WATER
0x4 FIRE
0x8 WIND
0x10 LIGHT
0x20 DARK
0x40 DIVINE
##level
0x0 Level/Rank/Link
0x1 1★
0x2 2★
0x3 3★
0x4 4★
0x5 5★
0x6 6★
0x7 7★
0x8 8★
0x9 9★
0xa 10★
0xb 11★
0xc 12★
0xd 13★
##link marker
0x1 ↙
0x2 ↓
0x4 ↘
0x8 ←
0x20 →
0x40 ↖
0x80 ↑
0x100 ↗
##category
0x1 S/T Destroy
0x2 Destroy Monster
0x4 Banish
0x8 Graveyard
0x10 Back to Hand
0x20 Back to Deck
0x40 Destroy Hand
0x80 Destroy Deck
0x100 Draw
0x200 Search
0x400 Recovery
0x800 Position
0x1000 Control
0x2000 Change ATK/DEF
0x4000 Piercing
0x8000 Repeat Attack
0x10000 Limit Attack
0x20000 Direct Attack
0x40000 Special Summon
0x80000 Token
0x100000 Type-Related
0x200000 Property-Related
0x400000 Damage LP
0x800000 Recover LP
0x1000000 Destroy
0x2000000 Select
0x4000000 Counter
0x8000000 Gamble
0x10000000 Fusion-Related
0x20000000 Tuner-Related
0x40000000 Xyz-Related
0x80000000 Negate Effect
##race
0x0 Race
0x1 Warrior
0x2 Spellcaster
0x4 Fairy
0x8 Fiend
0x10 Zombie
0x20 Machine
0x40 Aqua
0x80 Pyro
0x100 Rock
0x200 Winged Beast
0x400 Plant
0x800 Insect
0x1000 Thunder
0x2000 Dragon
0x4000 Beast
0x8000 Beast-Warrior
0x10000 Dinosaur
0x20000 Fish
0x40000 Sea Serpent
0x80000 Reptile
0x100000 Psychic
0x200000 Divine-Beast
0x400000 Creator God
0x800000 Wyrm
0x1000000 Cyverse
##type
0x1 Monster
0x2 Spell
0x4 Trap
0x8 N/A
0x10 Normal
0x20 Effect
0x40 Fusion
0x80 Ritual
0x100 N/A
0x200 Spirit
0x400 Union
0x800 Gemini
0x1000 Tuner
0x2000 Synchro
0x4000 Token
0x8000 N/A
0x10000 Quick-Play
0x20000 Continuous
0x40000 Equip
0x80000 Field
0x100000 Counter
0x200000 Flip
0x400000 Toon
0x800000 Xyz
0x1000000 Pendulum
0x2000000 SPSummon
0x4000000 Link
##setname
-1 Custom
0x0 Archetype
0x1 Ally of Justice A・O・J
0x2 Genex ジェネクス
0x1002 R-Genex レアル・ジェネクス
0x2002 N/A Genex Ally A・ジェネクス
0x3 N/A
0x4 Amazoness アマゾネス
0x5 Arcana Force アルカナフォース
0x6 Dark World 暗黒界
0x7 Ancient Gear アンティーク・ギア
0x8 HERO HERO
0x3008 Elemental HERO E・HERO
0x6008 N/A Evil HERO E-HERO
0xc008 Destiny HERO D-HERO
0x5008 N/A Vision HERO V・HERO
0xa008 Masked HERO M・HERO
0x9 Neos ネオス
0xa lswarm ヴェルズ
0x100a Steelswarm インヴェルズ
0xb Infernity インフェルニティ
0xc Alien エーリアン
0xd Saber セイバー
0x100d X-Saber X-セイバー
0x300d N/A XX-Saber XX-セイバー
0xe Watt エレキ
0xf Ojama おジャマ
0x10 Gusto ガスタ
0x11 Karakuri カラクリ
0x12 Frog ガエル
0x13 Meklord 機皇
0x3013 Meklord Emperor 機皇帝
0x6013 Meklord Army 機皇兵
0x14 N/A
0x15 B.E.S. 巨大戦艦
0x16 roid ロイド
0x1016 Vehicroid ビークロイド
0x2016 Speedroid スピードロイド
0x17 Synchro シンクロ
0x1017 Synchron シンクロン
0x2017 Synchro Dragon シンクロ・ドラゴン
0x18 Cloudian 雲魔物
0x19 Gladiator Beast 剣闘獣
0x1a Dark Scorpion 黒蠍
0x1b Phantom Beast 幻獣
0x101b Mecha Phantom Beast 幻獣機
0x1c N/A
0x1d Koa'ki Meiru コアキメイル
0x1e Chrysalis C(コクーン)
0x1f Neo-Spacian N(ネオスペーシアン)
0x20 Shien 紫炎
0x21 Earthbound Immortal 地縛神
0x22 Jurrac ジュラック
0x23 Malefic Sin
0x24 Scrap スクラップ
0x25 Iron Chain C(チェーン)
0x26 Morphtronic D(ディフォーマー)
0x27 T.G. TG(テックジーナス)
0x28 Batteryman 電池メン
0x29 Dragunity ドラグニティ
0x2a Naturia ナチュル
0x2b Ninja 忍者
0x102b Armor Ninja 機甲忍者
0x2c Flamvell フレムベル
0x2d N/A
0x2e Gravekeeper's 墓守
0x2f Ice Barrier 氷結界
0x30 Vylon ヴァイロン
0x31 Fortune Lady フォーチュンレディ
0x32 Volcanic ヴォルカニック
0x33 Blackwing BF(ブラックフェザー)
0x1033 Assault Blackwing A BF(ブラックフェザー)
0x34 Crystal 宝玉
0x1034 Crystal Beast 宝玉獣
0x2034 Ultimate Gem God 究極宝玉神
0x35 Fabled 魔轟神
0x36 Machina マシンナーズ
0x37 Mist Valley 霞の谷
0x38 Lightsworn ライトロード
0x39 Laval ラヴァル
0x3a Gishki リチュア
0x3b Red-Eyes レッドアイズ
0x3c Reptilianne レプティレス
0x3d Six Samurai 六武衆
0x3e Worm ワーム
0x3f Majestic セイヴァー
0x40 Forbidden One 封印されし
0x41 LV LV(レベル)
0x42 Nordic 極星
0x3042 Nordic Ascendant 極星天
0x6042 Nordic Beast 極星獣
0xa042 Nordic Alfar 極星霊
0x5042 Nordic Relic 極星宝
0x43 Junk ジャンク
0x44 The Agent 代行者
0x45 Archfiend デーモン
0x1045 Red Dragon Archfiend レッド・デーモン
0x46 Polymerization/Fusion 融合/フュージョン
0x1046 Fusion Dragon フュージョン・ドラゴン
0x47 Gem- ジェム
0x1047 Gem-Knight ジェムナイト
0x48 Number No.
0x1048 Number C CNo.
0x49 Skyblaster 銃士
0x4a N/A Timelord 時械神
0x4b Aesir 極神
0x4c Trap Hole 落とし穴
0x4e Evol エヴォル
0x304e Evoltile エヴォルド
0x604e Evolsaur エヴォルダ
0x504e Evolzar エヴォルカイザー
0xf4 N/A
0x104f /Assault Mode /バスター
0x50 Venom ヴェノム
0x51 Gadget ガジェット
0x52 Guardian ガーディアン
0x53 Constellar セイクリッド
0x54 Gagaga ガガガ
0x55 Photon フォトン
0x56 Inzektor 甲虫装機
0x57 Resonator リゾネーター
0x58 Wind-Up ゼンマイ
0x59 Gogogo ゴゴゴ
0x5a Penguin ペンギン
0x5b Inmato トマボー
0x5c Sphinx スフィンクス
0x5d N/A
0x5e N/A
0x5f N/A
0x60 Bamboo Sword 竹光
0x61 Ninjitsu Art 忍法
0x62 Toon トゥーン
0x63 Reactor リアクター
0x64 Harpie ハーピィ
0x65 Infestation 侵略の
0x66 Warrior ウォリアー
0x1066 Symphonic Warrior 音響戦士
0x2066 Magnet Warrior マグネット・ウォリアー
0x67 N/A Iron アイアン
0x68 N/A Tin ブリキ
0x69 Hieratic 聖刻
0x6a Butterspy 幻蝶の刺客
0x6b Bounzer バウンサー
0x6c N/A Lightray ライトレイ
0x6d Djinn 魔人
0x106d N/A Djinn of Rituals 儀式魔人
0x6e Prophecy 魔導
0x106e Spellbook 魔導書
0x6f Heroic ヒロイック
0x106f Heroic Challenger H・C
0x206f N/A Heroic Champion H-C
0x70 Chronomaly 先史遺産
0x71 Madolche マドルチェ
0x72 Geargia ギアギア
0x1072 Geargiano ギアギアーノ
0x73 Xyz エクシーズ
0x1073 CXyz CX(カオスエクシーズ)
0x2073 Xyz Dragon エクシーズ・ドラゴン
0x74 Mermail 水精鱗
0x75 Abyss- アビス
0x76 Heraldic Beast 紋章獣
0x77 Atlantean 海皇
0x78 Nimble 素早い
0x79 Fire Fist 炎星
0x7a Noble 聖
0x107a Noble Knight 聖騎士
0x207a Noble Arms 聖剣
0x7b Galaxy ギャラクシー
0x107b Galaxy-Eyes ギャラクシーアイズ
0x307b Galaxy-Eyes Tachyon Dragon ギャラクシーアイズ・タキオン・ドラゴン
0x7c Fire Formation 炎舞
0x7d Hazy ヘイズ
0x107d Hazy Flame 陽炎獣
0x7e ZW ZW(ゼアル・ウェポン)
0x7f Utopic ホープ
0x107f Utopia 希望皇ホープ
0x80 Duston ダストン
0x81 Fire King 炎王
0x1081 Fire King Avatar 炎王獣
0x82 Dododo ドドド
0x83 Gimmick Puppet ギミック・パペット
0x84 Battlin' Boxer BK(バーニングナックラー)
0x85 Super Defense Robot SDロボ
0x86 Star Seraph 光天使
0x87 Umbral Horror アンブラル
0x88 Bujin 武神
0x89 Hole ホール
0x8a N/A 蟲惑
0x108a Traptrix 蟲惑魔
0x8b Malicevorous マリスボラス
0x8c N/A Druid ドルイド
0x8d Ghostrick ゴーストリック
0x8e Vampire ヴァンパイア
0x8f Zubaba ズババ
0x90 Sylvan 森羅
0x91 Necrovalley ネクロバレー
0x92 Heraldry メダリオン
0x93 Cyber サイバー
0x1093 Cyber Dragon サイバー・ドラゴン
0x2093 Cyber Angel サイバー・エンジェル
0x94 Cybernetic サイバネティック
0x95 Rank-Up-Magic RUM
0x96 Fishborg フィッシュボーグ
0x97 Artifact アーティファクト
0x98 Magician 魔術師
0x99 Odd-Eyes 异色眼
0x9a Superheavy Samurai 超重武者
0x109a Superheavy Samurai Soul 超重武者装留
0x9b Melodious 幻奏
0x109b Melodious Maestra 幻奏の音姫
0x9c tellarknight テラナイト
0x109c Stellarknight ステラナイト
0x9d Shaddoll 影依
0x9e Yang Zing 龙星
0x9f Performapal EM(エンタメイト)
0xa0 Legendary Knight 伝説の騎士
0xa1 Legendary Dragon 伝説の竜
0xa2 N/A Magician マジシャン
0x10a2 Dark Magician ブラック・マジシャン
0x20a2 Magician Girl マジシャン・ガール
0x30a2 Dark Magician Girl ブラック・マジシャン・ガール
0xa3 Stardust スターダスト
0xa4 Kuriboh クリボー
0x10a4 Winged Kuriboh ハネクリボー
0xa5 Change チェンジ
0xa6 sprout スプラウト
0xa7 Artorigus アルトリウス
0xa8 Laundsallyn ランスロット
0xa9 Fluffal ファーニマル
0xaa Qli クリフォート
0x10aa Apoqliphort アポクリフォート
0xab Deskbot ブンボーグ
0xac Goblin ゴブリン
0xad Frightfur デストーイ
0xae Dark Contract 契約書
0xaf D/D DD
0x10af D/D/D DDD
0xb0 Gottoms ガトムズ
0xb1 Burning Abyss 彼岸
0xb2 U.A. U.A.
0xb3 Yosenju 妖仙獣
0xb4 Nekroz 影霊衣
0xb5 Ritual Beast 霊獣
0x10b5 Ritual Beast Tamer 霊獣使い
0x20b5 Spiritual Beast 精霊獣
0x30b5 Spiritual Beast Tamer 精霊獣使い
0x40b5 Ritual Beast Ulti- 聖霊獣騎
0xb6 Outer Entity 外神
0xb7 Elder Entity 旧神
0xb8 Old Entity 古神
0xb9 Blaze Accelerator ブレイズ・キャノン
0xba Raidraptor RR(レイド・ラプターズ)
0xbb Infernoid インフェルノイド
0xbc Jinzo 人造人間
0xbd Gaia The Fierce Knight 暗黒騎士ガイア
0xbe Monarch 帝王
0xbf Charmer 霊使い
0xc0 Familiar-Possessed 憑依装着
0xc1 PSY-Frame PSYフレーム
0xc2 Power Tool パワー·ツール
0xc3 Edge Imp エッジインプ
0xc4 Zefra セフィラ
0xc5 Void 煉獄
0xc6 Performage Em(エンタメイジ)
0xc7 Dracoslayer 竜剣士
0xc8 Igknight イグナイト
0xc9 Aroma アロマ
0xca Empowered Warrior 魔装戦士
0xcb Aether イーサルウェポン
0xcc Prediction Princess 占術姫
0xcd Aquaactress アクアアクトレス
0xce Aquarium アクアリウム
0xcf Chaos カオス
0x10cf Black Luster Soldier カオス・ソルジャー
0xd0 Majespecter マジェスペクター
0xd1 Graydle グレイドル
0xd2 Kozmo Kozmo
0xd3 Kaiju 壊獣
0xd4 Paleozoic バージェストマ
0xd5 Dante ダンテ
0xd6 Destruction Sword 破壊剣
0xd7 Buster Blader バスター・ブレイダー
0xd8 Dinomist ダイナミスト
0xd9 Shiranui 不知火
0xda Dracoverlord 竜魔王
0xdb Phantom Knights ファントム
0x10db The Phantom Knights 幻影騎士団
0xdc Super Quant 超量
0x10dc Super Quantum 超量士
0x20dc Super Quantal Mech Beast 超量機獣
0xdd Blue-Eyes ブルーアイズ
0xde Exodia エクゾディア
0xdf Lunalight ムーンライト
0xe0 Amorphage アモルファージ
0xe1 Metalfoes メタルフォーゼ
0xe2 Triamid トラミッド
0xe3 Cubic 方界
0xe4 Celtic Guard エルフの剣士
0xe5 Cipher サイファー
0xe6 Flower Cardian 花札衛
0xe7 Silent Swordsman サイレント・ソードマン
0xe8 Silent Magician サイレント・マジシャン
0xe9 Magna Warrior 磁石の戦士(じしゃくのせんし)
0xea Crystron クリストロン
0xeb Chemicritter 化合獣
0xec N/A Abyss 魔界
0x10ec Abyss Actor 魔界劇団
0x20ec Abyss Script 魔界台本
0xed Subterror
0x10ed Subterror Behemoth
0xee SPYRAL
0x10ee SPYRAL GEAR
0x20ee SPYRAL MISSION
0xef Darklord 堕天使
0xf0 Windwitch WW(ウィンド・ウィッチ)
0xf1 Zoodiac 十二獣
0xf2 Pendulum ペンデュラム
0x10f2 Pendulum Dragon ペンデュラム・ドラゴン
0x20f2 Pendulumgraph ペンデュラムグラフ
0xf3 Preda プレデター
0x10f3 Predaplant 捕食植物
0xf4 Invoked 召喚獣
0xf5 Gandora ガンドラ
0xf6 Skyscraper 摩天楼
0xf7 Lyrical Luscinia LL(リリカル・ルスキニア)
0xf8 N/A Supreme King 覇王
0x10f8 Supreme King Gate 覇王門
0x20f8 Supreme King Servant Dragon 覇王眷竜
0xf9 True King 真竜
0xfa Mythic Radiance Dragon 幻煌龍
#end
--min/max value
MIN_ID =1000 --4 digit, by DataManager::GetDesc()
MAX_ID =268435455 --9 digit, by DataManager::GetDesc()
MAX_COUNTER =65535 --max number for adding/removing counters, by card::add_counter(), field::remove_counter()
--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 --场上(怪兽+魔陷)
--Locations (for redirect) 若在重定向类效果中指定LOCATION_DECK则为弹回卡组顶部
LOCATION_DECKBOT =0x10001 --弹回卡组底部
LOCATION_DECKSHF =0x20001 --弹回卡组并洗牌
--Locations (for SetRange)
LOCATION_FZONE =0x100 --场地区
LOCATION_PZONE =0x200 --灵摆区
--Positions 表示形式
POS_FACEUP =0x5 --正面表示
POS_FACEDOWN =0xa --背面表示
POS_FACEUP_ATTACK =0x1 --表侧攻击
POS_FACEUP_DEFENSE =0x4 --表侧守备
POS_FACEDOWN_DEFENSE =0x8 --里侧守备
POS_ATTACK =0x3 --攻击表示
POS_DEFENSE =0xc --守备表示
NO_FLIP_EFFECT =0x10000--不发动反转效果
POS_FACEDOWN_ATTACK =0x2 --里侧攻击
--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 --灵摆
TYPE_SPSUMMON =0x2000000 --特殊召唤
--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 --用於代價或無法支付代價而破壞
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 --翻开卡组(森罗)
--Location Reason
LOCATION_REASON_TOFIELD =0x1 --Duel.GetLocationCount()預設值,凱薩競技場
LOCATION_REASON_CONTROL =0x2 --Card.IsControlerCanBeChanged()使用
--Summon Type --召唤类型
SUMMON_TYPE_NORMAL =0x10000000 --通常召唤(EFFECT_SUMMON_PROC,EFFECT_SET_PROC 可用Value修改數值)
SUMMON_TYPE_ADVANCE =0x11000000 --上级召唤
SUMMON_TYPE_DUAL =0x12000000 --再度召唤(二重)
SUMMON_TYPE_FLIP =0x20000000 --翻转召唤
SUMMON_TYPE_SPECIAL =0x40000000 --特殊召唤(EFFECT_SPSUMMON_PROC,EFFECT_SPSUMMON_PROC_G 可用Value修改數值)
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_NO_LEVEL =0x0020 --无等级
STATUS_BATTLE_RESULT =0x0040 --傷害計算結果預計要破壞的怪獸
STATUS_SPSUMMON_STEP =0x0080 --效果特召處理中
STATUS_FORM_CHANGED =0x0100 --改变过表示形式
STATUS_SUMMONING =0x0200 --召唤中
STATUS_EFFECT_ENABLED =0x0400 --卡片準備就緒(不在移動、召喚、魔法陷阱發動中)
STATUS_SUMMON_TURN =0x0800 --在本回合召喚/SET
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_EFFECT_REPLACED =0x80000 --效果被替代(红莲霸权)
STATUS_UNION =0x100000 --N/A
STATUS_ATTACK_CANCELED =0x200000 --若其為攻擊者,則攻擊中止
STATUS_INITIALIZING =0x400000 --初始化..
STATUS_ACTIVATED =0x800000 --魔法陷阱卡发动過
STATUS_JUST_POS =0x1000000 --已改變表示形式(用於STATUS_CONTINUOUS_POS判定)
STATUS_CONTINUOUS_POS =0x2000000 --改變後再次設定成其他表示形式
STATUS_FORBIDDEN =0x4000000 --不能play
STATUS_ACT_FROM_HAND =0x8000000 --從手牌发动
STATUS_OPPO_BATTLE =0x10000000 --和對手的怪兽戰鬥
STATUS_FLIP_SUMMON_TURN =0x20000000 --在本回合反转召唤
STATUS_SPSUMMON_TURN =0x40000000 --在本回合特殊召唤
--Assume
ASSUME_CODE =1
ASSUME_TYPE =2
ASSUME_LEVEL =3
ASSUME_RANK =4
ASSUME_ATTRIBUTE =5
ASSUME_RACE =6
ASSUME_ATTACK =7
ASSUME_DEFENSE =8
--Counter --指示物
COUNTER_WITHOUT_PERMIT =0x1000 --可以放置在非特定對象的指示物
COUNTER_NEED_ENABLE =0x2000 --在卡片本身放置上述指示物的標記(卡片守衛)
--Phase --阶段
PHASE_DRAW =0x01 --抽卡阶段
PHASE_STANDBY =0x02 --准备阶段
PHASE_MAIN1 =0x04 --主要阶段1
PHASE_BATTLE_START =0x08 --战斗阶段开始
PHASE_BATTLE_STEP =0x10 --战斗步驟
PHASE_DAMAGE =0x20 --伤害步驟
PHASE_DAMAGE_CAL =0x40 --伤害计算时
PHASE_BATTLE =0x80 --战斗阶段結束
PHASE_MAIN2 =0x100 --主要阶段2
PHASE_END =0x200 --结束阶段
--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 ========== --重置条件(注意:重置条件可以多个相加)
RESET_SELF_TURN =0x10000000 --自己回合的階段重置
RESET_OPPO_TURN =0x20000000 --对方回合的階段重置
RESET_PHASE =0x40000000 --阶段结束重置(一般和上面那些阶段配合使用)
RESET_CHAIN =0x80000000 --连锁结束重置
RESET_EVENT =0x1000 --指定的條件下重置(一般和下面这些事件配合使用)
RESET_CARD =0x2000 --重置Owner為指定卡片的效果
RESET_CODE =0x4000 --重置指定Code的single效果(不含EFFECT_FLAG_SINGLE_RANGE)
RESET_COPY =0x8000 --重置以复制取得的效果
RESET_DISABLE =0x00010000 --效果无效重置(只適用於owner==handler的效果)
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 --到场上重置(move_to_field())
RESET_CONTROL =0x02000000 --控制者变更重置
RESET_OVERLAY =0x04000000 --超量叠放重置
RESET_MSCHANGE =0x08000000 --从怪兽区到魔法区,或者从魔法区到怪兽区(move_to_field()、寶玉獸)
----组合时点
RESETS_STANDARD =0x1fe0000 --RESET_TOFIELD+RESET_LEAVE+RESET_TODECK+RESET_TOHAND+RESET_TEMP_REMOVE+RESET_REMOVE+RESET_TOGRAVE+RESET_TURN_SET
RESETS_STANDARD_DISABLE =0x1ff0000 --0x1fe0000+RESET_DISABLE
--========== 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 --由事件觸發的輔助用效果/永續效果
EFFECT_TYPE_XMATERIAL =0x1000 --
--========== Flags ========== --效果的特殊性质
EFFECT_FLAG_INITIAL =0x0001 --可以发动的
EFFECT_FLAG_FUNC_VALUE =0x0002 --此效果的Value属性是函数
EFFECT_FLAG_COUNT_LIMIT =0x0004 --发动次数限制
EFFECT_FLAG_FIELD_ONLY =0x0008 --此效果是注册给全局环境的
EFFECT_FLAG_CARD_TARGET =0x0010 --取对象效果
EFFECT_FLAG_IGNORE_RANGE =0x0020 --影响所有区域的卡(禁止令 大宇宙 王宫的铁壁)
EFFECT_FLAG_ABSOLUTE_TARGET =0x0040 --Target Range不会因为控制权的改变而改变
EFFECT_FLAG_IGNORE_IMMUNE =0x0080 --无视效果免疫
EFFECT_FLAG_SET_AVAILABLE =0x0100 --影响场上里侧的卡/裡側狀態可發動
EFFECT_FLAG_CANNOT_NEGATE =0x0200 --含有"此效果不會被無效"的敘述
EFFECT_FLAG_CANNOT_DISABLE =0x0400 --不会被无效
EFFECT_FLAG_PLAYER_TARGET =0x0800 --以玩家为对象
EFFECT_FLAG_BOTH_SIDE =0x1000 --双方都能使用(部分场地,弹压)
EFFECT_FLAG_COPY_INHERIT =0x2000 --若由复制的效果產生則继承其Reset属性
EFFECT_FLAG_DAMAGE_STEP =0x4000 --可以在伤害步骤发动
EFFECT_FLAG_DAMAGE_CAL =0x8000 --可以在伤害计算时发动
EFFECT_FLAG_DELAY =0x10000 --場合型誘發效果、用於永續效果的EFFECT_TYPE_CONTINUOUS、神之化身/恐惧之源的攻击力变化最后计算
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 --N/A
EFFECT_FLAG_COF =0x20000000 --N/A
EFFECT_FLAG_CVAL_CHECK =0x40000000 --以卡为COST的诱发效果需要使用
EFFECT_FLAG_IMMEDIATELY_APPLY =0x80000000 --卡在发动时效果就立即适用(卡通王國)
EFFECT_FLAG2_NAGA =0x0001 --特殊情况时发动不会被无效(神卡纳迦的特殊处理)
EFFECT_FLAG2_COF =0x0002 --通常魔法卡在MP1以外发动(邪恶的仪式的特殊处理)
--========== 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 --在連鎖串中無效(processor.cpp)
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 --不能放置counter
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 --设置攻击力(永續型效果、攻擊力變成X特殊召喚)
EFFECT_SET_ATTACK_FINAL =102 --设置最终攻击力(所有入連鎖的改變攻擊力)
EFFECT_SET_BASE_ATTACK =103 --设置原本攻击力
EFFECT_UPDATE_DEFENSE =104 --改变防御力
EFFECT_SET_DEFENSE =105 --设置防御力
EFFECT_SET_DEFENSE_FINAL =106 --设置最终防御力
EFFECT_SET_BASE_DEFENSE =107 --设置原本防御力
EFFECT_REVERSE_UPDATE =108 --倒置改变攻击力、防御力(天邪鬼)
EFFECT_SWAP_AD =109 --交换攻防(超級漏洞人)
EFFECT_SWAP_BASE_AD =110 --交换原本攻防
EFFECT_SWAP_ATTACK_FINAL =111 --設定最終攻擊力(用於交換攻防)
EFFECT_SWAP_DEFENSE_FINAL =112 --設定最終防禦力(用於交換攻防)
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_SELF_TOGRAVE =142 --不入連鎖的送墓
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_TRIPLE_TRIBUTE =156
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_DEFENSE_ATTACK =190 --可以守备表示攻击
EFFECT_MUST_ATTACK =191 --必须攻击
EFFECT_FIRST_ATTACK =192 --必须第一个攻击
EFFECT_ATTACK_ALL =193 --可以攻击所有怪兽
EFFECT_EXTRA_ATTACK =194 --增加攻击次数
EFFECT_MUST_BE_ATTACKED =195 --必须攻击此卡
EFFECT_ONLY_BE_ATTACKED =196 --只能攻击此卡
EFFECT_ATTACK_DISABLED =197 --攻击已被無效(Duel.NegateAttack()成功的標記)
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_TUNE_MAGICIAN_X =247--
EFFECT_PRE_MONSTER =250 --可存取怪獸的各項數值(Card.AddMonsterAttribute()專用)
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 --不能Play(禁止令)
EFFECT_NECRO_VALLEY_IM =293 --不受「王家长眠之谷」的影响
EFFECT_REVERSE_DECK =294 --翻转卡组
EFFECT_REMOVE_BRAINWASHING =295 --洗脑解除
EFFECT_BP_TWICE =296 --2次战斗阶段
EFFECT_UNIQUE_CHECK =297 --場上只能存在1張(Card.SetUniqueOnField()專用)
EFFECT_MATCH_KILL =300 --Match胜利(胜利龙)
EFFECT_SYNCHRO_CHECK =310 --基因组斗士
EFFECT_QP_ACT_IN_NTPHAND =311 --对方回合从自己手卡发动(失乐的圣女)
EFFECT_MUST_BE_SMATERIAL =312 --必须作为同调素材(波动龙 声子龙)
EFFECT_TO_GRAVE_REDIRECT_CB =313 --重新指定去向(寶玉獸)
EFFECT_CHANGE_LEVEL_FINAL =314 --設定最終等級(銀河女王之光)
EFFECT_CHANGE_RANK_FINAL =315 --設定最終階級
EFFECT_SPSUMMON_PROC_G =320 --P召唤规则
EFFECT_SPSUMMON_COUNT_LIMIT =330 --特殊召唤次数限制
EFFECT_LEFT_SPSUMMON_COUNT =331 --剩餘召喚次數(召喚限制網)
EFFECT_CANNOT_SELECT_BATTLE_TARGET =332 --對手不能選擇為攻擊對象
EFFECT_CANNOT_SELECT_EFFECT_TARGET =333 --對手不能選擇為效果對象
EFFECT_ADD_SETCODE =334 --视为「XX」字段的效果
EFFECT_NO_EFFECT_DAMAGE =335 --玩家已受到"效果傷害變成0"的效果影響
EFFECT_UNSUMMONABLE_CARD =336 --不能通常召唤的怪獸
EFFECT_DISABLE_CHAIN_FIELD =337 --N/A
EFFECT_DISCARD_COST_CHANGE =338 --反制陷阱捨棄手牌的代價改變(解放之阿里阿德涅)
EFFECT_HAND_SYNCHRO =339 --用手牌的怪獸當作同步素材
EFFECT_ADD_FUSION_CODE =340 --作为融合素材时可以当作某一卡名(融合识别)
EFFECT_ADD_FUSION_SETCODE =341 --作为融合素材时可以当作某一字段(魔玩具改造)
EFFECT_RISE_TO_FULL_HEIGHT =342 --仁王立
EFFECT_ONLY_ATTACK_MONSTER =343 --只能攻擊X
EFFECT_MUST_ATTACK_MONSTER =344 --若攻擊則必須攻擊X
EFFECT_PATRICIAN_OF_DARKNESS =345 --由對手選擇攻擊對象(黑暗貴族)
EFFECT_EXTRA_ATTACK_MONSTER =346 --對怪獸攻擊X次
EFFECT_UNION_STATUS =347 --同盟状态
EFFECT_OLDUNION_STATUS =348 --旧同盟状态
EFFECT_ADD_FUSION_ATTRIBUTE =349 --reserve
EFFECT_REMOVE_FUSION_ATTRIBUTE =350 --reserve
EFFECT_CHANGE_FUSION_ATTRIBUTE =351 --用作融合素材时的属性
EFFECT_EXTRA_FUSION_MATERIAL =352 --
--下面是诱发效果的诱发事件、时点 (如果是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 --送去墓地时(不含REASON_RETURN)
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之後)
EVENT_CHAIN_ACTIVATING =1021 --连锁处理准备中
EVENT_CHAIN_SOLVED =1022 --连锁处理结束时
EVENT_CHAIN_ACTIVATED =1023 --N/A
EVENT_CHAIN_NEGATED =1024 --连锁发动无效时(EVENT_CHAIN_ACTIVATING之後)
EVENT_CHAIN_DISABLED =1025 --连锁效果无效时
EVENT_CHAIN_END =1026 --连锁串结束时
EVENT_CHAINING =1027 --效果发动时
EVENT_BECOME_TARGET =1028 --成为效果对象时
EVENT_DESTROYED =1029 --被破坏时
EVENT_ADJUST =1040 --adjust_all()调整後(御前试合)
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 --N/A
EVENT_PRE_BATTLE_DAMAGE =1136 --即将产生战斗伤害(只能使用EFFECT_TYPE_CONTINUOUS)
EVENT_BATTLE_END =1137 --N/A
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_RETURN_TO_GRAVE =1203 --回到墓地时
EVENT_TURN_END =1210 --回合结束时
EVENT_PHASE =0x1000 --阶段结束时
EVENT_PHASE_START =0x2000 --阶段开始时
EVENT_ADD_COUNTER =0x10000 --增加指示物时
EVENT_REMOVE_COUNTER =0x20000 --去除指示物时(A指示物),Card.RemoveCounter()必須手動觸發此事件
EVENT_CUSTOM =0x10000000 --自訂事件
--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 --使发动无效效果
CATEGORY_ANNOUNCE =0x20000000 --發動時宣言卡名的效果
CATEGORY_FUSION_SUMMON =0x40000000
--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
--Opcode
OPCODE_ADD =0x40000000
OPCODE_SUB =0x40000001
OPCODE_MUL =0x40000002
OPCODE_DIV =0x40000003
OPCODE_AND =0x40000004
OPCODE_OR =0x40000005
OPCODE_NEG =0x40000006
OPCODE_NOT =0x40000007
OPCODE_ISCODE =0x40000100
OPCODE_ISSETCARD =0x40000101
OPCODE_ISTYPE =0x40000102
OPCODE_ISRACE =0x40000103
OPCODE_ISATTRIBUTE =0x40000104
--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_DEFENSE =517 --请选择守备表示的怪兽
HINTMSG_EQUIP =518 --请选择要装备的卡
HINTMSG_REMOVEXYZ =519 --请选择要取除的超量素材
HINTMSG_CONTROL =520 --请选择要改变控制权的怪兽
HINTMSG_DESREPLACE =521 --请选择要代替破坏的卡
HINTMSG_FACEUPATTACK =522 --请选择表侧攻击表示的怪兽
HINTMSG_FACEUPDEFENSE =523 --请选择表侧守备表示的怪兽
HINTMSG_FACEDOWNATTACK =524 --请选择里侧攻击表示的怪兽
HINTMSG_FACEDOWNDEFENSE =525 --请选择里侧守备表示的怪兽
HINTMSG_CONFIRM =526 --请选择给对方确认的卡
HINTMSG_TOFIELD =527 --请选择要放置到场上的卡
HINTMSG_POSCHANGE =528 --请选择要改变表示形式的怪兽
HINTMSG_SELF =529 --请选择自己的卡
HINTMSG_OPPO =530 --请选择对方的卡
HINTMSG_ATTACKTARGET =549 --请选择攻击的对象
HINTMSG_EFFECT =550 --请选择要发动的效果
HINTMSG_TARGET =551 --请选择效果的对象
HINTMSG_COIN =552 --请选择硬币的正反面
HINTMSG_DICE =553 --请选择骰子的结果
HINTMSG_CARDTYPE =554 --请选择一个种类
HINTMSG_OPTION =555 --请选择一个选项
HINTMSG_SELECT =560 --请选择
HINTMSG_POSITION =561 --请选择表示形式
HINTMSG_ATTRIBUTE =562 --请选择要宣言的属性
HINTMSG_RACE =563 --请选择要宣言的种族
HINTMSG_CODE =564 --请宣言一个卡名
HINGMSG_NUMBER =565 --请选择一个数字
HINGMSG_LVRANK =567 --请宣言一个等级
--Select --请选择
SELECT_HEADS =60 --正面
SELECT_TAILS =61 --反面
--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 --装备时点
TIMING_BATTLE_STEP_END =0x4000000 --戰鬥步驟結束時
----组合时点
TIMINGS_CHECK_MONSTER =0x1c0 -- 怪兽正面上场
TIMINGS_CHECK_MONSTER_E =0x1e0 -- 怪兽正面上场 + EP
--Global flag --特殊标记
GLOBALFLAG_DECK_REVERSE_CHECK =0x1 --卡组翻转标记
GLOBALFLAG_BRAINWASHING_CHECK =0x2 --洗脑解除标记
GLOBALFLAG_SCRAP_CHIMERA =0x4 --废铁奇美拉标记
GLOBALFLAG_DELAYED_QUICKEFFECT =0x8 --N/A
GLOBALFLAG_DETACH_EVENT =0x10 --EVENT_DETACH_MATERIAL
GLOBALFLAG_MUST_BE_SMATERIAL =0x20 --必须作为同调素材(波动龙 声子龙)
GLOBALFLAG_SPSUMMON_COUNT =0x40 --玩家的特殊召唤次数限制
GLOBALFLAG_XMAT_COUNT_LIMIT =0x80 --超量素材数量限制标记(光天使 天座)
GLOBALFLAG_SELF_TOGRAVE =0x100 --不入連鎖的送墓檢查(EFFECT_SELF_TOGRAVE)
GLOBALFLAG_SPSUMMON_ONCE =0x200 --1回合只能特殊召喚1次(Card.SetSPSummonOnce())
GLOBALFLAG_TUNE_MAGICIAN =0x400 --
--count_code
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 --N/A
DUEL_OBSOLETE_RULING =0x08 --使用舊規則
DUEL_PSEUDO_SHUFFLE =0x10 --不洗牌
DUEL_TAG_MODE =0x20 --双打PP
DUEL_SIMPLE_AI =0x40 --AI(用于残局)
--Activity counter
--global: 1-6 (binary: 5,6)
--custom: 1-5,7 (binary: 1-5)
ACTIVITY_SUMMON =1 --
ACTIVITY_NORMALSUMMON =2 --
ACTIVITY_SPSUMMON =3 --
ACTIVITY_FLIPSUMMON =4 --
ACTIVITY_ATTACK =5 --
ACTIVITY_BATTLE_PHASE =6 -- not available in custom counter
ACTIVITY_CHAIN =7 -- only available in custom counter
--announce type(宣言类型,CATEGORY_ANNOUNCE的OperationInfo的target_param)
ANNOUNCE_CARD =0x7 --宣言卡片
ANNOUNCE_CARD_FILTER =0x8 --
--cards with double names
CARD_MARINE_DOLPHIN =78734254 --海洋海豚
CARD_TWINKLE_MOSS =13857930 --光輝苔蘚
#
CodeEditForm.mainMenu.menuitem_file 文件(&F)
CodeEditForm.mainMenu.menuitem_open 打开
CodeEditForm.mainMenu.menuitem_save 保存
CodeEditForm.mainMenu.menuitem_saveas 另存为
CodeEditForm.mainMenu.menuitem_quit 退出
CodeEditForm.mainMenu.menuitem_setting 选项(&S)
CodeEditForm.mainMenu.menuitem_showmap 显示/隐藏结构图
CodeEditForm.mainMenu.menuitem_showinput 显示/隐藏输入框
CodeEditForm.mainMenu.menuitem_find 查找
CodeEditForm.mainMenu.menuitem_replace 替换
CodeEditForm.mainMenu.menuitem_setcard 设置卡片库
CodeEditForm.mainMenu.menuitem_help 帮助(&H)
CodeEditForm.mainMenu.menuitem_about 关于
#
DataEditForm.btn_img 导入图片
DataEditForm.lb_types 卡片类型
DataEditForm.lb_markers 连接标记
DataEditForm.lb_tiptexts 脚本提示文字
DataEditForm.lb_categorys 效果分类
DataEditForm.lb_cardcode 卡片密码
DataEditForm.lb_cardalias 同名卡
DataEditForm.lb_atkdef ATK/DEF
DataEditForm.lb_pleft_right 灵摆刻度
DataEditForm.btn_reset 重置
DataEditForm.btn_lua 脚本
DataEditForm.btn_serach 搜索
DataEditForm.btn_del 删除
DataEditForm.btn_undo 撤销
DataEditForm.btn_mod 修改
DataEditForm.btn_add 添加
DataEditForm.btn_PageDown 下一页
DataEditForm.btn_PageUp 上一页
DataEditForm.lv_cardlist.0 卡片密码
DataEditForm.lv_cardlist.1 卡片名称
DataEditForm.mainMenu.menuitem_file 文件(&F)
DataEditForm.mainMenu.menuitem_open 打开(&O)
DataEditForm.mainMenu.menuitem_new 新建(&N)
DataEditForm.mainMenu.menuitem_copyselectto 把选中复制到...
DataEditForm.mainMenu.menuitem_copyto 把结果复制到...
DataEditForm.mainMenu.menuitem_openLastDataBase 打开最后的数据库
DataEditForm.mainMenu.menuitem_quit 退出
DataEditForm.mainMenu.menu_image MSE(&M)
DataEditForm.mainMenu.menuitem_importmseimg 设置为MSE图片库
DataEditForm.mainMenu.menuitem_mseconfig 设置MSE的配置文件
DataEditForm.mainMenu.menu_data 数据(&D)
DataEditForm.mainMenu.menuitem_operacardsfile 同步操作卡片图片和脚本
DataEditForm.mainMenu.menuitem_openfileinthis 用CodeEditor打开脚本
DataEditForm.mainMenu.menuitem_findluafunc 从C++源码查找Lua函数
DataEditForm.mainMenu.menuitem_readydk 从卡组文件读取卡片(&Y)
DataEditForm.mainMenu.menuitem_readimages 从卡图文件夹读取卡片(&I)
DataEditForm.mainMenu.menuitem_compdb 压缩数据库
DataEditForm.mainMenu.menuitem_exportdata 导出数据库和图片脚本为zip
DataEditForm.mainMenu.menuitem_readmse 读取MSE存档
DataEditForm.mainMenu.menuitem_saveasmse_select 把选中导为MSE存档
DataEditForm.mainMenu.menuitem_saveasmse 把结果导为MSE存档
DataEditForm.mainMenu.menuitem_cutimages 批量裁剪卡图
DataEditForm.mainMenu.menuitem_convertimage 批量导入卡图
DataEditForm.mainMenu.menuitem_exportMSEimage 从MSE存档导出图片(再次点击停止)
DataEditForm.mainMenu.menuitem_cancelTask 取消任务
DataEditForm.mainMenu.menuitem_testpendulumtext 测试灵摆效果文本
DataEditForm.mainMenu.menuitem_export_all_sql 所有卡片导出为sql
DataEditForm.mainMenu.menuitem_export_select_sql 选择卡片导出为sql
DataEditForm.mainMenu.menuitem_help 帮助(&H)
DataEditForm.mainMenu.menuitem_about 关于
DataEditForm.mainMenu.menuitem_language 语言
DataEditForm.mainMenu.menuitem_checkupdate 检查更新
DataEditForm.mainMenu.menuitem_autocheckupdate 自动检查更新
DataEditForm.mainMenu.menuitem_github 源码
DataEditForm.mainMenu.menuitem_autoreturn (特殊功能)中文自动换行
#
MainForm.mainMenu.menuitem_file 文件(&F)
MainForm.mainMenu.menuitem_open 打开
MainForm.mainMenu.menuitem_new 新建
MainForm.mainMenu.menuitem_save 保存
MainForm.mainMenu.menuitem_copyselect 复制选中卡片
MainForm.mainMenu.menuitem_copyall 复制所有卡片
MainForm.mainMenu.menuitem_pastecards 粘贴卡片
MainForm.mainMenu.menuitem_comp1 作为对比的数据库1
MainForm.mainMenu.menuitem_comp2 作为对比的数据库2
MainForm.mainMenu.menuitem_history 数据库历史
MainForm.mainMenu.menuitem_shistory 脚本历史
MainForm.mainMenu.menuitem_quit 退出
MainForm.mainMenu.menuitem_windows 窗口(&W)
MainForm.mainMenu.menuitem_dataeditor 数据编辑
MainForm.mainMenu.menuitem_codeeditor 脚本编辑
MainForm.mainMenu.menuitem_close 关闭当前
MainForm.mainMenu.menuitem_closeother 关闭其他
MainForm.mainMenu.menuitem_closeall 关闭所有
#
0x0 提示
0x1 错误
0x2 警告
0x3 询问
0x4 创建成功!
0x5 创建失败!
0x6 添加成功!
0x7 添加失败!
0x8 密码不能为0!
0x9 已经存在!
0xa 内容没有改变。
0xb 是否删除卡片?
0xc 是否创建脚本文件?
0xd 是否打开数据库?
0xe 是否替换已经存在的卡片?
0xf 已经是最新版本了。\n需要重新下载,请点击“确定”重新下载。
0x10 检查更新失败,请检查网络。
0x11 发现新的版本,是否更新?
0x12 文件不存在!
0x13 没有选择数据库!
0x14 选择数据库文件
0x15 选择ydk文件
0x16 选择图像目录
0x17 下载成功!
0x18 下载失败!
0x19 没有选中脚本文本!
0x1a 删除成功!
0x1b 删除失败!
0x1c 修改成功!
0x1d 修改失败!
0x1e 关于:
0x1f 版本:
0x20 作者:
0x21 数据库文件(*.cdb)|*.cdb|所有文件(*.*)|*.*
0x22 卡组文件(*.ydk)|*.ydk|所有文件(*.*)|*.*
0x23 系列号输入出错!
0x24 选择卡片图像
0x25 jpg图像(*.jpg)|*.jpg|bmp图像(*.bmp)|*.bmp|png图像(*.png)|*.png|所有文件(*.*)|*.*
0x26 当前有其他任务正在进行
0x27 正在检查更新
0x28 正在复制卡片
0x29 卡片复制完成
0x2a MSE存档
0x2b MSE存档文件(*.mse-set)|*.mse-set|所有文件(*.*)|*.*
0x2c 正在导出MSE存档
0x2d 导出MSE存档完成
0x2e 正在裁剪图片
0x2f 裁剪图片完成
0x30 没有选中一张卡片
0x31 是否替换存在的图片?
0x32 正在转换图片
0x33 转换图片完成
0x34 压缩数据库完成
0x35 仅更新存档的文字?
0x36 任务已经停止
0x37 任务已经暂停
0x38 继续任务
0x39 任务出错
0x3a 是否取消当前任务?
0x3b 复制完成
0x3c 粘贴完成
0x3d 清空历史记录
0x3e 正在导出数据
0x3f 导出数据完成
0x40 是否对比卡片信息?
0x41 对比完成
0x42 打开文件
0x43 脚本文件(*.lua)|*.lua|所有文件(*.*)|*.*
0x44 新建文件
0x45 保存完成
0x46 是否保存脚本?
0x47 读取MSE存档
0x48 读取MSE存档完成!
0x49 请重启程序使更改生效。
0x4a 从MSE存档导出图片完成。
0x4b 从MSE存档导出图片失败。
#
CodeEditForm.mainMenu.menuitem_file File(&F)
CodeEditForm.mainMenu.menuitem_open Open
CodeEditForm.mainMenu.menuitem_save Save
CodeEditForm.mainMenu.menuitem_saveas Save As
CodeEditForm.mainMenu.menuitem_quit Quit
CodeEditForm.mainMenu.menuitem_setting Tools(&S)
CodeEditForm.mainMenu.menuitem_showmap Display/Hide Document Maps
CodeEditForm.mainMenu.menuitem_showinput Display/Hide TextBox
CodeEditForm.mainMenu.menuitem_find Find String
CodeEditForm.mainMenu.menuitem_replace Replace
CodeEditForm.mainMenu.menuitem_setcard Set DataBase
CodeEditForm.mainMenu.menuitem_help Help(&H)
CodeEditForm.mainMenu.menuitem_about About
DataEditForm.mainMenu.menuitem_autoreturn (*)Text auto return
#
DataEditForm.btn_img Import Img
DataEditForm.lb_types Card type
DataEditForm.lb_tiptexts Script texts
DataEditForm.lb_categorys Category
DataEditForm.lb_cardcode Code
DataEditForm.lb_cardalias Alias
DataEditForm.lb_atkdef ATK/DEF
DataEditForm.lb_pleft_right Pscale
DataEditForm.btn_reset Reset
DataEditForm.btn_lua Script
DataEditForm.btn_serach Search
DataEditForm.btn_del Delete
DataEditForm.btn_undo Undo
DataEditForm.btn_mod Modify
DataEditForm.btn_add Add
#DataEditForm.btn_PageDown Page Down
#DataEditForm.btn_PageUp Page Up
DataEditForm.lv_cardlist.0 Card Code
DataEditForm.lv_cardlist.1 Card Name
DataEditForm.mainMenu.menuitem_file File(&F)
DataEditForm.mainMenu.menuitem_open Open(&O)
DataEditForm.mainMenu.menuitem_new New(&N)
DataEditForm.mainMenu.menuitem_copyselectto Copy Selected...
DataEditForm.mainMenu.menuitem_copyto Copy All Search...
DataEditForm.mainMenu.menuitem_openLastDataBase Open Last DataBase
DataEditForm.mainMenu.menuitem_quit Quit
DataEditForm.mainMenu.menu_image MSE(&M)
DataEditForm.mainMenu.menu_data Data(&D)
DataEditForm.mainMenu.menuitem_operacardsfile Opera with Card's files
DataEditForm.mainMenu.menuitem_openfileinthis Open Script With CodeEditor
DataEditForm.mainMenu.menuitem_readydk Read From ydk File(&Y)
DataEditForm.mainMenu.menuitem_readimages Read From Images Path(&I)
DataEditForm.mainMenu.menuitem_compdb Compress DataBase
DataEditForm.mainMenu.menuitem_exportdata Export Data As zip
DataEditForm.mainMenu.menuitem_mseconfig Set MSE Config
DataEditForm.mainMenu.menuitem_testpendulumtext test pendulum texts
DataEditForm.mainMenu.menuitem_readmse Read MSE-set
DataEditForm.mainMenu.menuitem_saveasmse_select Save Selected As MSE-set
DataEditForm.mainMenu.menuitem_saveasmse Save All As MSE-set
DataEditForm.mainMenu.menuitem_cutimages Cut Images
DataEditForm.mainMenu.menuitem_convertimage Convert Images
DataEditForm.mainMenu.menuitem_importmseimg Set MSE'Image
DataEditForm.mainMenu.menuitem_export_all_sql Export all to sql
DataEditForm.mainMenu.menuitem_export_select_sql Export select to sql
DataEditForm.mainMenu.menuitem_cancelTask Cancel Task
DataEditForm.mainMenu.menuitem_exportMSEimage export mse-set to images(Click stop)
DataEditForm.mainMenu.menuitem_help Help(&H)
DataEditForm.mainMenu.menuitem_about About
DataEditForm.mainMenu.menuitem_language Laguage
DataEditForm.mainMenu.menuitem_checkupdate Check Update
DataEditForm.mainMenu.menuitem_autocheckupdate Auto Check Update
DataEditForm.mainMenu.menuitem_github Source Code in GitHub
#
MainForm.mainMenu.menuitem_file File(&F)
MainForm.mainMenu.menuitem_open Open
MainForm.mainMenu.menuitem_new New
MainForm.mainMenu.menuitem_save Save
MainForm.mainMenu.menuitem_copyselect Copy Selected
MainForm.mainMenu.menuitem_copyall Copy All Search
MainForm.mainMenu.menuitem_pastecards Paste Cards
MainForm.mainMenu.menuitem_comp1Set Compare Database 1
MainForm.mainMenu.menuitem_comp2Set Compare Database 2
MainForm.mainMenu.menuitem_history DataBase Histroy
MainForm.mainMenu.menuitem_shistory Script History
MainForm.mainMenu.menuitem_quit Quit
MainForm.mainMenu.menuitem_windows Windows(&W)
MainForm.mainMenu.menuitem_dataeditor DataEditor
MainForm.mainMenu.menuitem_codeeditor CodeEditor
MainForm.mainMenu.menuitem_close Close
MainForm.mainMenu.menuitem_closeother Close Others
MainForm.mainMenu.menuitem_closeall Close All
#
0x0 Info
0x1 Error
0x2 Warning
0x3 Question
0x4 Create succeed!
0x5 Create fail!
0x6 Add succeed!
0x7 Add fail!
0x8 Code can't be 0!
0x9 It already exists!
0xa It's no changed.
0xb If delete Card(s)?
0xc If create script file?
0xd If open database?
0xe If replace exitis cards?
0xf It's up to date.\nDo you want to download it again?
0x10 Check update fail. Please Check Network.
0x11 Find a new version,\nIf Download it?
0x12 File doesn't exitis!
0x13 No selected database!
0x14 select database file
0x15 select ydk file
0x16 selcet image folder
0x17 Download succeed!
0x18 Download fail?
0x19 No selected script text!
0x1a Delete succeed!
0x1b Delete fail!
0x1c Modify succeed!
0x1d Modify fail!
0x1e About :
0x1f Version:
0x20 Author :
0x21 cdb file(*.cdb)|*.cdb|all files(*.*)|*.*
0x22 ydk file(*.ydk)|*.ydk|all files(*.*)|*.*
0x23 SetCode Input Error?
0x24 Select Image For Card
0x25 jpg(*.jpg)|*.jpg|bmp(*.bmp)|*.bmp|png(*.png)|*.png|all files(*.*)|*.*
0x26 The Task is runing.
0x27 Checking Update...
0x28 Copying Database...
0x29 Copy Database OK
0x2a Save Mse-set file
0x2b MSE set(*.mse-set)|*.mse-set|all files(*.*)|*.*
0x2c Exporting Mse-set
0x2d Export Mse-set OK
0x2e Cutting Images...
0x2f Cut Images OK
0x30 No Selected Cards
0x31 If Replace Image When it's exisit?
0x32 Converting Images
0x33 Convert Images OK
0x34 Compression DataBase OK
0x35 Only Update Text of Set?
0x36 Task is Canceled
0x37 Task is Paused
0x38 Task is Resume
0x39 Task has Error
0x3a Cancel Task?
0x3b Copy
0x3c Paste
0x3d Clear History
0x3e Exporting Data
0x3f Export Data OK
0x40 Compare Cards With Text?
0x41 Cards is Compared.
0x42 Open File
0x43 Script(*.lua)|*.lua|all files(*.*)|*.*
0x44 New File
0x45 Save OK
0x46 If Save Script?
0x47 Read MSE-set
0x48 Read MSE-set is OK.
0x49 Please restart program to apply changes.
0x4a Export Mse-set to Images OK.
0x4b Export Mse-set to Images Fail.
###########################
# Magic Set Editor 2
# 简体中文
# \t = Tab \n = Enter [:space:] = Space
########################### 简体转繁体
cn2tw = false
########################### 存档最大卡片数
maxcount = 0
imagepath = ./Images
########################### 中间图
reimage = false
width = 319
height = 317
pwidth = 363
pheight= 275
########################### Spell/Trap
#jp setting
# spell = %%
# trap = %%
spell = [魔法卡%%]
trap = [陷阱卡%%]
############################ language,style,other setting
head = mse version: 0.3.8\r\ngame: yugioh\r\nstylesheet: standard\r\nset info:\r\n\tlanguage: CN\r\n\tedition: \r\n\tST mark is text: no\r\n\tpendulum image is small: yes\r\n\thide gamecode: yes
end = version control:\n\ttype: none\napprentice code:
############################ Text
text =【摇摆文本】\n%ptext%\n【怪兽效果】\n%text%\n
############################
# chs jp
pendulum-text = 】[\s\S]*?\n([\S\s]*?)\n【
# cht pendulum-text = ([\S\s]*?)\n【
# en pendulum-text = Text:\n([\S\s]*?)\n[\S\s]*?Text:
# chs jp cht
monster-text = [果|介|述|報]】\n([\S\s]*)
# en monster-text = Text:[\s\S]*?Text:\n([\S\s]*)
########################### Replace
replace = ([鮟|鱇]) <i>$1</i>
#replace = [:space:] <sym-auto>^</sym-auto>
#replace = ([A-Z]) <i>$1</i>
###########################
##race
race 0x1 战士族
race 0x2 魔法师族
race 0x4 天使族
race 0x8 恶魔族
race 0x10 不死族
race 0x20 机械族
race 0x40 水族
race 0x80 炎族
race 0x100 岩石族
race 0x200 鸟兽族
race 0x400 植物族
race 0x800 昆虫族
race 0x1000 雷族
race 0x2000 龙族
race 0x4000 兽族
race 0x8000 兽战士族
race 0x10000 恐龙族
race 0x20000 鱼族
race 0x40000 海龙族
race 0x80000 爬虫类族
race 0x100000 念动力族
race 0x200000 幻神兽族
race 0x400000 创造神族
race 0x800000 幻龙族
###########################
##type
type 0x1 怪兽
type 0x2 魔法
type 0x4 陷阱
type 0x8 N/A
type 0x10 通常
type 0x20 效果
type 0x40 融合
type 0x80 仪式
type 0x100 N/A
type 0x200 灵魂
type 0x400 同盟
type 0x800 二重
type 0x1000 调整
type 0x2000 同调
type 0x4000 衍生物
type 0x8000 N/A
type 0x10000 速攻
type 0x20000 永续
type 0x40000 装备
type 0x80000 场地
type 0x100000 反击
type 0x200000 反转
type 0x400000 卡通
type 0x800000 超量
type 0x1000000 灵摆
##########################
\ No newline at end of file
###########################
# Magic Set Editor 2
# 繁体中文
# \t = Tab \n = Enter [:space:] = Space
########################### Chs 2 Cht
cn2tw = false
########################### Setting
maxcount = 0
imagepath = ./Images
########################### 中间图
reimage = false
width = 319
height = 317
pwidth = 363
pheight= 275
########################### Spell/Trap
#jp setting
# spell = %%
# trap = %%
spell = [魔法卡%%]
trap = [陷阱卡%%]
############################ language,style,other setting
head = mse version: 0.3.8\r\ngame: yugioh\r\nstylesheet: standard\r\nset info:\r\n\tlanguage: TW\r\n\tedition: \r\n\tST mark is text: no\r\n\tpendulum image is small: yes
end = version control:\n\ttype: none\napprentice code:
############################ Text
text =【摇摆文本】\n%ptext%\n【怪獸效果】\n%text%\n
############################
# chs jp
pendulum-text = ([\S\s]*?)\n【
# cht pendulum-text = ([\S\s]*?)\n【
# en pendulum-text = Text:\n([\S\s]*?)\n[\S\s]*?Text:
# chs jp cht
monster-text = [果|介|述|報]】\n([\S\s]*)
# en monster-text = Text:[\s\S]*?Text:\n([\S\s]*)
########################### Replace
replace = ([鮟|鱇|・|·]) <i>$1</i>
#replace = \s <sym-auto>^</sym-auto>
#replace = ([A-Z]) <i>$1</i>
###########################
##race
race 0x1 戰士族
race 0x2 魔法師族
race 0x4 天使族
race 0x8 惡魔族
race 0x10 不死族
race 0x20 機械族
race 0x40 水族
race 0x80 炎族
race 0x100 岩石族
race 0x200 鳥獸族
race 0x400 植物族
race 0x800 昆蟲族
race 0x1000 雷族
race 0x2000 龍族
race 0x4000 獸族
race 0x8000 獸戰士族
race 0x10000 恐龍族
race 0x20000 魚族
race 0x40000 海龍族
race 0x80000 爬蟲類族
race 0x100000 念動力族
race 0x200000 幻神獸族
race 0x400000 創造神族
race 0x800000 幻龍族
###########################
##type
type 0x1 怪獸
type 0x2 魔法
type 0x4 陷阱
type 0x8 N/A
type 0x10 通常
type 0x20 效果
type 0x40 融合
type 0x80 儀式
type 0x100 N/A
type 0x200 靈魂
type 0x400 同盟
type 0x800 二重
type 0x1000 調整
type 0x2000 同調
type 0x4000 衍生物
type 0x8000 N/A
type 0x10000 速攻
type 0x20000 永續
type 0x40000 裝備
type 0x80000 場地
type 0x100000 反擊
type 0x200000 反轉
type 0x400000 卡通
type 0x800000 超量
type 0x1000000 靈擺
##########################
\ No newline at end of file
###########################
# Magic Set Editor 2
# English
# \t = Tab \n = Enter [:space:] = Space
########################### Chs 2 Cht
cn2tw = false
########################### Setting
maxcount = 0
imagepath = ./Images
########################### Artwork
reimage = false
width = 319
height = 317
pwidth = 363
pheight= 275
########################### Spell/Trap
spell = %%
trap = %%
############################ language,style,other setting
head = mse version: 0.3.8\r\ngame: yugioh\r\nstylesheet: standard\r\nset info:\r\n\tlanguage: EN\r\n\tedition: \r\n\tST mark is text: yes\r\n\tpendulum image is small: no
end = version control:\n\ttype: none\napprentice code:
############################ Text
text = Pendulum Text :\n%ptext%\nMonster Text :\n%text%\n
############################
pendulum-text = \[ Pendulum Effect \]\s*\n(?:-n/a-)*([\S\s]*?)\n---
monster-text = (?:Monster Effect|Flavor Text) \]\s*\n([\S\s]*)
########################### Replace
#replace = \s <sym-auto>^</sym-auto>
#replace = ([A-Z]) <i>$1</i>
###########################
##race
race 0x1 Warrior
race 0x2 Spellcaster
race 0x4 Fairy
race 0x8 Fiend
race 0x10 Zombie
race 0x20 Machine
race 0x40 Aqua
race 0x80 Pyro
race 0x100 Rock
race 0x200 Winged Beast
race 0x400 Plant
race 0x800 Insect
race 0x1000 Thunder
race 0x2000 Dragon
race 0x4000 Beast
race 0x8000 Beast-Warrior
race 0x10000 Dinosaur
race 0x20000 Fish
race 0x40000 Sea Serpent
race 0x80000 Reptile
race 0x100000 Psychic
race 0x200000 Divine-Beast
race 0x400000 Creator God
race 0x800000 Wyrm
###########################
##type
type 0x1 Monster
type 0x2 Spell
type 0x4 Trap
type 0x8 N/A
type 0x10 Normal
type 0x20 Effect
type 0x40 Fusion
type 0x80 Ritual
type 0x100 T-Monster
type 0x200 Spirit
type 0x400 Union
type 0x800 Gemini
type 0x1000 Tuner
type 0x2000 Synchro
type 0x4000 Token
type 0x8000 N/A
type 0x10000 Quick-Play
type 0x20000 Continuous
type 0x40000 Equip
type 0x80000 Field
type 0x100000 Counter
type 0x200000 Flip
type 0x400000 Toon
type 0x800000 Xyz
type 0x1000000 Pendulum
##########################
\ No newline at end of file
###########################
# Magic Set Editor 2
# Italian
# \t = Tab \n = Enter [:space:] = Space
########################### Chs 2 Cht
cn2tw = false
########################### Setting
maxcount = 0
imagepath = ./Images
########################### 中间图
width = 544
height = 544
pwidth = 544
pheight= 544
########################### Spell/Trap
spell = [Carta Magia%%]
trap = [Carta Trappola%%]
############################ language,style,other setting
head = mse version: 0.3.8\r\ngame: yugioh\r\nstylesheet: standard\r\nset info:\r\n\tlanguage: IT\r\n\tedition: \r\n\tST mark is text: yes\r\n\tpendulum image is small: no
end = version control:\n\ttype: none\napprentice code:
############################ Text
text = Pendulum Text :\n%ptext%\nMonster Text :\n%text%\n
############################
pendulum-text = \[ Effetto Pendulum \]\s*\n(?:-n/a-)*([\S\s]*?)\n---
monster-text = (?:Effetto Mostro|Testo Carta) \]\s*\n([\S\s]*)
########################### Replace
#replace = \s <sym-auto>^</sym-auto>
#replace = ([A-Z]) <i>$1</i>
###########################
##race
race 0x1 Guerriero
race 0x2 Incantatore
race 0x4 Fata
race 0x8 Demone
race 0x10 Zombie
race 0x20 Macchina
race 0x40 Acqua
race 0x80 Pyro
race 0x100 Roccia
race 0x200 Bestia Alata
race 0x400 Pianta
race 0x800 Insetto
race 0x1000 Tuono
race 0x2000 Drago
race 0x4000 Bestia
race 0x8000 Guerriero-Bestia
race 0x10000 Dinosauro
race 0x20000 Pesce
race 0x40000 Serpente Marino
race 0x80000 Rettile
race 0x100000 Psichico
race 0x200000 Bestia-Divinità
race 0x400000 Creatore Divino
race 0x800000 Wyrm
###########################
##type
type 0x1 Mostro
type 0x2 Magia
type 0x4 Trappola
type 0x8 N/A
type 0x10 Normale
type 0x20 Effetto
type 0x40 Fusione
type 0x80 Rituale
type 0x100 T-Monster
type 0x200 Spirit
type 0x400 Union
type 0x800 Gemello
type 0x1000 Tuner
type 0x2000 Synchro
type 0x4000 Segna-Mostro
type 0x8000 N/A
type 0x10000 Quick-Play
type 0x20000 Continuous
type 0x40000 Equip
type 0x80000 Field
type 0x100000 Counter
type 0x200000 Scoperta
type 0x400000 Toon
type 0x800000 Xyz
type 0x1000000 Pendulum
##########################
\ No newline at end of file
###########################
# Magic Set Editor 2
#
# \t = Tab \n = Enter [:space:] = Space
########################### Chs 2 Cht
cn2tw = false
########################### Setting
maxcount = 0
imagepath = ./Images
########################### Artwork
reimage = false
width = 319
height = 317
pwidth = 363
pheight= 275
########################### Spell/Trap
#jp setting
spell = %%
trap = %%
############################ language,style,other setting
head = mse version: 0.3.8\r\ngame: yugioh\r\nstylesheet: standard\r\nset info:\r\n\tlanguage: JP\r\n\tedition: \r\n\tST mark is text: yes\r\n\tpendulum image is small: yes
end = version control:\n\ttype: none\napprentice code:
############################ Text
text =【摇摆文本】\n%ptext%\n【怪兽效果】\n%text%\n
############################
# chs jp
pendulum-text = 】[\s\S]*?\n([\S\s]*?)\n【
# cht pendulum-text = ([\S\s]*?)\n【
# en pendulum-text = Text:\n([\S\s]*?)\n[\S\s]*?Text:
# chs jp cht
monster-text = [果|介|述|報]】\n([\S\s]*)
# en monster-text = Text:[\s\S]*?Text:\n([\S\s]*)
########################### Replace
replace = \n
replace = ([·]) ・
#replace = ([鮟|鱇|・|·]) <i>$1</i>
#replace = \s <sym-auto>^</sym-auto>
#replace = ([A-Z]) <i>$1</i>
###########################
##race
race 0x1 戦士族
race 0x2 魔法使い族
race 0x4 天使族
race 0x8 悪魔族
race 0x10 アンデット族
race 0x20 機械族
race 0x40 水族
race 0x80 炎族
race 0x100 岩石族
race 0x200 鳥獣族
race 0x400 植物族
race 0x800 昆虫族
race 0x1000 雷族
race 0x2000 ドラゴン族
race 0x4000 獣族
race 0x8000 獣戦士族
race 0x10000 恐竜族
race 0x20000 魚族
race 0x40000 海竜族
race 0x80000 爬虫類族
race 0x100000 サイキック族
race 0x200000 幻神獣族
race 0x400000 創造神族
race 0x800000 幻竜族
###########################
##type
type 0x1 モンスター
type 0x2 魔法
type 0x4 罠
type 0x8 N/A
type 0x10 通常
type 0x20 効果
type 0x40 融合
type 0x80 儀式
type 0x100 N/A
type 0x200 スピリット
type 0x400 ユニオン
type 0x800 デュアル
type 0x1000 チューナー
type 0x2000 シンクロ
type 0x4000 衍生物
type 0x8000 N/A
type 0x10000 速攻
type 0x20000 永続
type 0x40000 装備
type 0x80000 場所
type 0x100000 反撃
type 0x200000 リバース
type 0x400000 トゥーン
type 0x800000 エクシーズ
type 0x1000000 ペンデュラム
##########################
\ No newline at end of file
--created by DataEditorX
Debug.SetAIName("AI Name")
Debug.ReloadFieldBegin(DUEL_ATTACK_FIRST_TURN+DUEL_SIMPLE_AI)
Debug.SetPlayerInfo(0,8000,0,0) --player
Debug.SetPlayerInfo(1,15000,0,0) --AI
--Debug.AddCard(int code,int owner,int playerid,int location,int sequence,int position)
--Debug.AddCard(int code,int owner,int playerid,int location,int sequence,int position,bool revive_limit)
--Debug.PreAddCounter(Card card,int counter,int ccount)
--Debug.PreEquip(Card equip_card, Card target)
--Debug.PreSetTarget(Card card, Card target)
--end
Debug.ReloadFieldEnd()
Debug.ShowHint("Message")
aux.BeginPuzzle()
#The first line is used for comment
#line doesn't start with '!' is also neglected
#called by DataManager::GetSysString(), DataManager::GetDesc()
#system
!system 1 通常召唤
!system 2 特殊召唤
!system 3 翻转召唤
!system 4 通常召唤成功
!system 5 特殊召唤成功
!system 6 翻转召唤成功
!system 7 发动
!system 10 移除指示物
!system 11 支付LP
!system 12 移除本身的素材
!system 20 抽卡阶段中
!system 21 准备阶段中
!system 22 主要阶段中
!system 23 即将结束主要阶段
!system 24 战斗阶段中
!system 25 战斗结束阶段中
!system 26 结束阶段中
!system 27 抽卡前
!system 28 战斗阶段开始
!system 30 战斗回卷,是否继续攻击?
!system 31 是否直接攻击?
!system 40 伤害步骤开始时
!system 41 伤害计算前
!system 42 伤害计算时
!system 43 伤害计算后
!system 44 伤害步骤结束时
!system 60 正面
!system 61 反面
!system 62 表效果适用中
!system 63 里效果适用中
!system 64 二重状态
!system 65 使用效果
!system 70 怪物卡
!system 71 魔法卡
!system 72 陷阱卡
!system 80 进入战斗阶段
!system 81 进入结束阶段
!system 90 是否不解放怪物通常召唤?
!system 91 是否使用额外的召唤机会?
!system 92 是否要解放对方怪兽进行上级召唤?
!system 93 是否要继续选择素材?
!system 94 是否现在使用这张卡的效果?
!system 100 先攻
!system 101 后攻
!system 200 是否在[%ls]发动[%ls]的效果?
!system 201 此时没有可以发动的效果
!system 202 是否要确认场上的情况?
!system 203 是否要进行连锁?
!system 204 请移除%d个[%ls]
!system 205 请选择排列顺序
!system 206 请选择连锁顺序
!system 207 翻开卡组上方%d张卡:
!system 208 确认%d张卡:
!system 209 当前所选的卡已满足选择条件
!system 210 是否要继续选择?
!system 211 回合计数:
!system 212 已选择卡:
!system 213 已选择种族:
!system 214 已选择属性:
!system 215 已选择数字:
!system 500 请选择要解放的卡
!system 501 请选择要丢弃的手牌
!system 502 请选择要破坏的卡
!system 503 请选择要除外的卡
!system 504 请选择要送去墓地的卡
!system 505 请选择要返回手牌的卡
!system 506 请选择要加入手牌的卡
!system 507 请选择要返回卡组的卡
!system 508 请选择要召唤的卡
!system 509 请选择要特殊召唤的卡
!system 510 请选择要盖放的卡
!system 511 请选择融合召唤的素材
!system 512 请选择同调召唤的素材
!system 513 请选择超量召唤的素材
!system 514 请选择表侧表示的卡
!system 515 请选择里侧表示的卡
!system 516 请选择攻击表示的怪兽
!system 517 请选择守备表示的怪兽
!system 518 请选择要装备的卡
!system 519 请选择要取除的超量素材
!system 520 请选择要改变控制权的怪兽
!system 521 请选择要代替破坏的卡
!system 522 请选择表侧攻击表示的怪兽
!system 523 请选择表侧守备表示的怪兽
!system 524 请选择里侧攻击表示的怪兽
!system 525 请选择里侧守备表示的怪兽
!system 526 请选择给对方确认的卡
!system 527 请选择要放置到场上的卡
!system 528 请选择要改变表示形式的怪兽
!system 529 请选择自己的卡
!system 530 请选择对方的卡
!system 531 请选择上级召唤用需要解放的怪兽:
!system 532 请选择要取除超量素材的怪兽
!system 550 请选择要发动的效果
!system 551 请选择效果的对象
!system 552 请选择硬币的正反面
!system 553 请选择骰子的结果
!system 554 请选择一个种类
!system 555 请选择一个选项
!system 560 请选择
!system 561 请选择表示形式
!system 562 请选择要宣言的属性
!system 563 请选择要宣言的种族
!system 564 请宣言一个卡名
!system 565 请选择一个数字
!system 566 请选择要发动效果的卡
!system 567 请宣言一个等级
!system 1000 卡组
!system 1001 手牌
!system 1002 怪兽区
!system 1003 魔法陷阱区
!system 1004 墓地
!system 1005 除外
!system 1006 额外
!system 1007 叠放
!system 1008 场地魔法区
!system 1009 灵摆区
!system 1010
!system 1011
!system 1012
!system 1013
!system 1014
!system 1015
!system 1016
!system 1020 战士
!system 1021 魔法师
!system 1022 天使
!system 1023 恶魔
!system 1024 不死
!system 1025 机械
!system 1026
!system 1027
!system 1028 岩石
!system 1029 鸟兽
!system 1030 植物
!system 1031 昆虫
!system 1032
!system 1033
!system 1034
!system 1035 兽战士
!system 1036 恐龙
!system 1037
!system 1038 海龙
!system 1039 爬虫
!system 1040 念动力
!system 1041 幻神兽
!system 1042 创造神
!system 1043 幻龙
!system 1050 怪兽
!system 1051 魔法
!system 1052 陷阱
!system 1053 ???
!system 1054 通常
!system 1055 效果
!system 1056 融合
!system 1057 仪式
!system 1058 陷阱怪兽
!system 1059 灵魂
!system 1060 同盟
!system 1061 二重
!system 1062 调整
!system 1063 同调
!system 1064 衍生物
!system 1065 ???
!system 1066 速攻
!system 1067 永续
!system 1068 装备
!system 1069 场地
!system 1070 反击
!system 1071 反转
!system 1072 卡通
!system 1073 超量
!system 1074 灵摆
!system 1080 (N/A)
#GUI
!system 1100 魔陷破坏
!system 1101 怪兽破坏
!system 1102 卡片除外
!system 1103 送去墓地
!system 1104 返回手牌
!system 1105 返回卡组
!system 1106 手牌破坏
!system 1107 卡组破坏
!system 1108 抽卡辅助
!system 1109 卡组检索
!system 1110 卡片回收
!system 1111 表示形式
!system 1112 控制权
!system 1113 攻守变化
!system 1114 穿刺伤害
!system 1115 多次攻击
!system 1116 攻击限制
!system 1117 直接攻击
!system 1118 特殊召唤
!system 1119 衍生物
!system 1120 种族相关
!system 1121 属性相关
!system 1122 LP伤害
!system 1123 LP回复
!system 1124 破坏耐性
!system 1125 效果耐性
!system 1126 指示物
!system 1127 幸运
!system 1128 融合相关
!system 1129 同调相关
!system 1130 超量相关
!system 1131 效果无效
#actions
!system 1150 发动
!system 1151 召唤
!system 1152 特殊召唤
!system 1153 放置
!system 1154 反转召唤
!system 1155 守备表示
!system 1156 攻击表示
!system 1157 攻击
!system 1158 查看列表
!system 1159 当魔法卡放置
#menu
!system 1200 联机模式
!system 1201 残局模式
!system 1202 观看录像
!system 1203 N/A
!system 1204 编辑卡组
!system 1210 退出
!system 1211 确定
!system 1212 取消
!system 1213
!system 1214
!system 1215 开始
!system 1216 消息
!system 1217 刷新主机
!system 1220 昵称:
!system 1221 主机信息:
!system 1222 主机密码:
!system 1223 加入游戏
!system 1224 建立主机
!system 1225 卡片允许:
!system 1226 禁限卡表:
!system 1227 决斗模式:
!system 1228 ↓额外选项(无特殊要求请勿修改)
!system 1229 不检查卡组
!system 1230 不洗切卡组
!system 1231 初始LP
!system 1232 初始手牌数:
!system 1233 每回合抽卡:
!system 1234 主机名称:
!system 1235 主机密码:
!system 1236 旧规则(先攻抽卡、启动效果优先权等)
!system 1237 每回合时间:
!system 1240 OCG
!system 1241 TCG
!system 1242 OCG&TCG
!system 1243 专有卡禁止
!system 1244 单局模式
!system 1245 比赛模式
!system 1246 TAG
!system 1250 决斗准备
!system 1251 →决斗者
!system 1252 →观战
!system 1253 当前观战人数:
!system 1254 卡组选择:
!system 1255 准备完毕!
!system 1270 卡片信息
!system 1271 消息记录
!system 1272 清除记录
!system 1273 系统设定
!system 1274 自动选择卡片位置
!system 1275 ↑随机选择位置
!system 1276 自动排列连锁顺序
!system 1277 没有可连锁的卡时延迟回应
!system 1280 标准对战
!system 1281 自定义
!system 1290 忽略对方发言
!system 1291 忽略观战者发言
!system 1300 禁限卡表:
!system 1301 卡组列表:
!system 1302 保存
!system 1303 另存
!system 1304 清空
!system 1305 排序
!system 1306 退出编辑
!system 1307 打乱
!system 1310 (无)
!system 1311 种类:
!system 1312 怪兽
!system 1313 魔法
!system 1314 陷阱
!system 1315 禁限:
!system 1316 禁止
!system 1317 限制
!system 1318 准限制
!system 1319 属性:
!system 1321 种族:
!system 1322 攻击:
!system 1323 守备:
!system 1324 星数:
!system 1325 关键字:
!system 1326 效果
!system 1327 重新搜索
!system 1328 结果中搜索
!system 1330 主卡组:
!system 1331 额外卡组:
!system 1332 副卡组:
!system 1333 搜索结果:
!system 1334 副卡组更换完成
!system 1335 保存成功
!system 1340 是否保存录像?
!system 1341 保存
!system 1342 录像文件:
!system 1343 播放
!system 1344 暂停
!system 1345 下一步
!system 1346 切换视角
!system 1347 退出
!system 1348 载入录像
!system 1349 录像信息:
!system 1350 离开
!system 1351 投降
!system 1352 主要信息:
!system 1353 播放起始于回合:
!system 1390 等待行动中...
!system 1391 等待行动中....
!system 1392 等待行动中.....
!system 1400 无法连接到主机。
!system 1401 连接已断开。
!system 1402 网络传输发生错误。
!system 1403 无法加入主机。
!system 1404 密码错误。
!system 1405 主机拒绝了连接。
!system 1406 无效卡组。
!system 1407 「%ls」的数量不符合当前设定。
!system 1408 更换副卡组失败。
!system 1409 等待更换副卡组中...
!system 1410 卡组数量与先前不符合。
!system 1411 版本不匹配(%X.0%X.%X)。
!system 1500 决斗结束。
!system 1501 录像结束。
!system 1502 连接已断开。
!system 1510 对方选择了:[%ls]
!system 1511 对方宣言了:[%ls]
!system 1512 对方选择了:[%d]
!system 1600 卡片改变了表示形式
!system 1601 放置了卡片
!system 1602 卡的控制权改变了
!system 1603 [%ls]召唤中
!system 1604 怪兽召唤成功
!system 1605 [%ls]特殊召唤中
!system 1606 怪兽特殊召唤成功
!system 1607 [%ls]反转召唤中
!system 1608 怪兽反转召唤成功
!system 1609 [%ls]的效果发动
!system 1610 [%ls](%ls,%d)成为对象
!system 1611 我方抽了%d张卡
!system 1612 对手抽了%d张卡
!system 1613 我方受到%d伤害
!system 1614 对方受到%d伤害
!system 1615 我方回复%dLP
!system 1616 对方回复%dLP
!system 1617 [%ls]放置了%d个[%ls]
!system 1618 [%ls]移除了%d个[%ls]
!system 1619 [%ls]攻击[%ls]
!system 1620 [%ls]直接攻击
!system 1621 攻击被无效
!system 1622 [%ls]错过时点
!system 1623 投掷硬币结果:
!system 1624 投掷骰子结果:
#vistory reason
!victory 0x0 投降
!victory 0x1 LP变成0
!victory 0x2 没有卡可抽
!victory 0x3 超时
!victory 0x4 失去连接
!victory 0x10 「被封印的艾克佐迪亚」效果胜利
!victory 0x11 「终焉的倒计时」效果胜利
!victory 0x12 「毒蛇神 维诺米纳迦」效果胜利
!victory 0x13 「光之创造神 哈拉克提」效果胜利
!victory 0x14 「究极封印神 艾克佐迪奥斯」效果胜利
!victory 0x15 「通灵盘」效果胜利
!victory 0x16 「最终一战!」效果胜利
!victory 0x17No.88 机关傀儡-命运狮子」效果胜利
!victory 0x18 「混沌No.88 机关傀儡-灾厄狮子」效果胜利
!victory 0x19 「头奖壶7」效果胜利
!victory 0x1a 「魂之接力」效果胜利
!victory 0x1b 「鬼计惰天使」效果胜利
!victory 0x20 由于「%ls」的效果获得比赛胜利
#counters
!counter 0x1 魔力指示物
!counter 0x1002 楔指示物
!counter 0x3 武士道指示物
!counter 0x4 念力指示物
!counter 0x5 光指示物
!counter 0x6 宝玉指示物
!counter 0x7 指示物(剑斗兽之槛)
!counter 0x8 变形斗士指示物
!counter 0x1009 毒指示物
!counter 0xa 次世代指示物
!counter 0xb 指示物(古代的机械城)
!counter 0xc 雷指示物
!counter 0xd 强欲指示物
!counter 0x100e A指示物
!counter 0xf 虫指示物
!counter 0x10 黑羽指示物
!counter 0x11 超毒指示物
!counter 0x12 机巧指示物
!counter 0x13 混沌指示物
!counter 0x14 指示物(奇迹之侏罗纪蛋)
!counter 0x1015 冰指示物
!counter 0x16 魔石指示物
!counter 0x17 橡子指示物
!counter 0x18 花指示物
!counter 0x1019 雾指示物
!counter 0x1a 倍倍指示物
!counter 0x1b 时计指示物
!counter 0x1c D指示物
!counter 0x1d 废品指示物
!counter 0x1e 门指示物
!counter 0x1f 指示物(巨大战舰)
!counter 0x20 植物指示物
!counter 0x1021 守卫指示物
!counter 0x22 龙神指示物
!counter 0x23 海洋指示物
!counter 0x1024 弦指示物
!counter 0x25 年代记指示物
!counter 0x26 指示物(金属射手)
!counter 0x27 指示物(死亡蚊)
!counter 0x28 指示物(暗黑投射手)
!counter 0x29 指示物(气球蜥蜴)
!counter 0x102a 指示物(魔法防护器)
!counter 0x2b 命运指示物
!counter 0x2c 遵命指示物
!counter 0x2d 指示物(踢火)
!counter 0x2e 鲨指示物
!counter 0x2f 南瓜指示物
!counter 0x30 毅飞冲天指示物
!counter 0x31 希望剑指示物
!counter 0x32 气球指示物
!counter 0x33 妖仙指示物
!counter 0x34 指示物(BOX
!counter 0x35 音响指示物
!counter 0x36 娱乐法师指示物
!counter 0x37 大怪兽指示物
!counter 0x1038 方界指示物
!counter 0x1039 咕咚指示物
!counter 0x40 指示物(No.51 怪腕之必杀摔角手)
!counter 0x1041 捕食指示物
[DataEditorX]2.4.2.4[DataEditorX] [DataEditorX]2.4.2.5[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]
★运行环境(Environment) ★运行环境(Environment)
......
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