Commit de09dd25 authored by mercury233's avatar mercury233
parents 83c3ff40 0093ef28
...@@ -243,6 +243,13 @@ void field::send_to(card_set* targets, effect* reason_effect, uint32 reason, uin ...@@ -243,6 +243,13 @@ void field::send_to(card_set* targets, effect* reason_effect, uint32 reason, uin
pcard->current.reason_effect = reason_effect; pcard->current.reason_effect = reason_effect;
pcard->current.reason_player = reason_player; pcard->current.reason_player = reason_player;
p = playerid; p = playerid;
/*
* if playerid not given, will send card from Deck to Hand,
* also that card is in Triggering Player's Deck,
* then send it to Triggering Player's Hand, insdead of Owner's Hand.
*/
if(p == PLAYER_NONE && (destination & LOCATION_HAND) && (pcard->current.location & LOCATION_DECK) && pcard->current.controler == reason_player)
p = reason_player;
if(destination & (LOCATION_GRAVE + LOCATION_REMOVED) || p == PLAYER_NONE) if(destination & (LOCATION_GRAVE + LOCATION_REMOVED) || p == PLAYER_NONE)
p = pcard->owner; p = pcard->owner;
if(destination != LOCATION_REMOVED) if(destination != LOCATION_REMOVED)
......
...@@ -9,7 +9,7 @@ function c15582767.initial_effect(c) ...@@ -9,7 +9,7 @@ function c15582767.initial_effect(c)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--destroy --destroy
local e2=Effect.CreateEffect(c) local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(15582767,1)) e2:SetDescription(aux.Stringid(15582767,0))
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW) e2:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW)
e2:SetType(EFFECT_TYPE_QUICK_O) e2:SetType(EFFECT_TYPE_QUICK_O)
e2:SetRange(LOCATION_SZONE) e2:SetRange(LOCATION_SZONE)
...@@ -30,7 +30,7 @@ function c15582767.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -30,7 +30,7 @@ function c15582767.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end if chk==0 then return true end
if Duel.GetFlagEffect(tp,15582767)==0 and Duel.IsPlayerCanDraw(tp,1) if Duel.GetFlagEffect(tp,15582767)==0 and Duel.IsPlayerCanDraw(tp,1)
and Duel.IsExistingTarget(c15582767.filter,tp,LOCATION_SZONE,0,1,nil) and Duel.IsExistingTarget(c15582767.filter,tp,LOCATION_SZONE,0,1,nil)
and Duel.SelectYesNo(tp,aux.Stringid(15582767,0)) then and Duel.SelectYesNo(tp,94) then
e:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW) e:SetCategory(CATEGORY_DESTROY+CATEGORY_DRAW)
e:SetProperty(EFFECT_FLAG_CARD_TARGET) e:SetProperty(EFFECT_FLAG_CARD_TARGET)
Duel.RegisterFlagEffect(tp,15582767,RESET_PHASE+PHASE_END,0,1) Duel.RegisterFlagEffect(tp,15582767,RESET_PHASE+PHASE_END,0,1)
......
...@@ -33,7 +33,7 @@ function c18235309.cost1(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -33,7 +33,7 @@ function c18235309.cost1(e,tp,eg,ep,ev,re,r,rp,chk)
local ph=Duel.GetCurrentPhase() local ph=Duel.GetCurrentPhase()
if (tn~=tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2 or ph==PHASE_BATTLE)) if (tn~=tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2 or ph==PHASE_BATTLE))
and Duel.IsExistingMatchingCard(c18235309.filter,tp,LOCATION_HAND,0,1,nil) and Duel.IsExistingMatchingCard(c18235309.filter,tp,LOCATION_HAND,0,1,nil)
and Duel.SelectYesNo(tp,aux.Stringid(18235309,1)) then and Duel.SelectYesNo(tp,94) then
e:SetLabel(1) e:SetLabel(1)
end end
end end
...@@ -41,7 +41,7 @@ function c18235309.target1(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -41,7 +41,7 @@ function c18235309.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
if e:GetLabel()~=1 then return end if e:GetLabel()~=1 then return end
e:GetHandler():RegisterFlagEffect(18235309,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(18235309,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
e:GetHandler():RegisterFlagEffect(0,RESET_CHAIN,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(18235309,2)) e:GetHandler():RegisterFlagEffect(0,RESET_CHAIN,EFFECT_FLAG_CLIENT_HINT,1,0,65)
Duel.SetOperationInfo(0,CATEGORY_SUMMON,nil,1,0,0) Duel.SetOperationInfo(0,CATEGORY_SUMMON,nil,1,0,0)
end end
function c18235309.activate(e,tp,eg,ep,ev,re,r,rp) function c18235309.activate(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -53,22 +53,22 @@ function c20426907.distg1(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -53,22 +53,22 @@ function c20426907.distg1(e,tp,eg,ep,ev,re,r,rp,chk)
if res then if res then
local tc=teg:GetFirst() local tc=teg:GetFirst()
if tc:IsLevelBelow(4) and not tc:IsType(TYPE_NORMAL) if tc:IsLevelBelow(4) and not tc:IsType(TYPE_NORMAL)
and Duel.SelectYesNo(tp,aux.Stringid(20426907,0)) then and Duel.SelectYesNo(tp,94) then
e:SetLabel(1) e:SetLabel(1)
Duel.SetTargetCard(teg) Duel.SetTargetCard(teg)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,teg,1,0,0) Duel.SetOperationInfo(0,CATEGORY_DISABLE,teg,1,0,0)
e:GetHandler():RegisterFlagEffect(0,RESET_CHAIN,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(20426907,1)) e:GetHandler():RegisterFlagEffect(0,RESET_CHAIN,EFFECT_FLAG_CLIENT_HINT,1,0,65)
end end
return return
end end
res,teg,tep,tev,tre,tr,trp=Duel.CheckEvent(EVENT_SPSUMMON_SUCCESS,true) res,teg,tep,tev,tre,tr,trp=Duel.CheckEvent(EVENT_SPSUMMON_SUCCESS,true)
if res then if res then
local g=teg:Filter(c20426907.filter,nil) local g=teg:Filter(c20426907.filter,nil)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(20426907,0)) then if g:GetCount()>0 and Duel.SelectYesNo(tp,94) then
e:SetLabel(2) e:SetLabel(2)
Duel.SetTargetCard(g) Duel.SetTargetCard(g)
Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,g:GetCount(),0,0) Duel.SetOperationInfo(0,CATEGORY_DISABLE,g,g:GetCount(),0,0)
e:GetHandler():RegisterFlagEffect(0,RESET_CHAIN,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(20426907,1)) e:GetHandler():RegisterFlagEffect(0,RESET_CHAIN,EFFECT_FLAG_CLIENT_HINT,1,0,65)
end end
end end
end end
......
...@@ -40,7 +40,7 @@ function c28265983.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -40,7 +40,7 @@ function c28265983.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
local res,teg,tep,tev,tre,tr,trp=Duel.CheckEvent(EVENT_RECOVER,true) local res,teg,tep,tev,tre,tr,trp=Duel.CheckEvent(EVENT_RECOVER,true)
local b1=res and c28265983.descon1(e,tp,teg,tep,tev,tre,tr,trp) and c28265983.destg1(e,tp,teg,tep,tev,tre,tr,trp,0) local b1=res and c28265983.descon1(e,tp,teg,tep,tev,tre,tr,trp) and c28265983.destg1(e,tp,teg,tep,tev,tre,tr,trp,0)
local b2=c28265983.descon2(e,tp,eg,ep,ev,re,r,rp) and c28265983.descost2(e,tp,eg,ep,ev,re,r,rp,0) and c28265983.destg2(e,tp,eg,ep,ev,re,r,rp,0) local b2=c28265983.descon2(e,tp,eg,ep,ev,re,r,rp) and c28265983.descost2(e,tp,eg,ep,ev,re,r,rp,0) and c28265983.destg2(e,tp,eg,ep,ev,re,r,rp,0)
if (b1 or b2) and Duel.SelectYesNo(tp,aux.Stringid(28265983,0)) then if (b1 or b2) and Duel.SelectYesNo(tp,94) then
local opt=0 local opt=0
if b1 and b2 then if b1 and b2 then
opt=Duel.SelectOption(tp,aux.Stringid(28265983,1),aux.Stringid(28265983,2)) opt=Duel.SelectOption(tp,aux.Stringid(28265983,1),aux.Stringid(28265983,2))
......
...@@ -62,5 +62,5 @@ function c28325165.activate(e,tp,eg,ep,ev,re,r,rp) ...@@ -62,5 +62,5 @@ function c28325165.activate(e,tp,eg,ep,ev,re,r,rp)
end end
end end
function c28325165.efilter(e,te) function c28325165.efilter(e,te)
return te:GetOwnerPlayer()~=e:GetHandlerPlayer() return te:GetOwnerPlayer()~=e:GetOwnerPlayer()
end end
...@@ -35,7 +35,7 @@ function c37209439.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -35,7 +35,7 @@ function c37209439.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
local b1=c37209439.negcon(e,tp,eg,ep,ev,re,r,rp) local b1=c37209439.negcon(e,tp,eg,ep,ev,re,r,rp)
local b2=c37209439.damcon(e,tp,eg,ep,ev,re,r,rp) and Duel.GetCurrentPhase()==PHASE_STANDBY local b2=c37209439.damcon(e,tp,eg,ep,ev,re,r,rp) and Duel.GetCurrentPhase()==PHASE_STANDBY
if (b1 or b2) and Duel.SelectYesNo(tp,aux.Stringid(37209439,2)) then if (b1 or b2) and Duel.SelectYesNo(tp,94) then
local c=e:GetHandler() local c=e:GetHandler()
local op=0 local op=0
if b1 and b2 then if b1 and b2 then
......
...@@ -48,7 +48,7 @@ function c3734202.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -48,7 +48,7 @@ function c3734202.target(e,tp,eg,ep,ev,re,r,rp,chk)
local b2=Duel.CheckReleaseGroup(tp,c3734202.cfilter2,1,nil) local b2=Duel.CheckReleaseGroup(tp,c3734202.cfilter2,1,nil)
and Duel.IsExistingMatchingCard(c3734202.spfilter2,tp,LOCATION_DECK,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(c3734202.spfilter2,tp,LOCATION_DECK,0,1,nil,e,tp)
if Duel.GetFlagEffect(tp,3734202)==0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>-1 if Duel.GetFlagEffect(tp,3734202)==0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>-1
and (b1 or b2) and Duel.SelectYesNo(tp,aux.Stringid(3734202,3)) then and (b1 or b2) and Duel.SelectYesNo(tp,94) then
local opt=0 local opt=0
if b1 and b2 then if b1 and b2 then
opt=Duel.SelectOption(tp,aux.Stringid(3734202,0),aux.Stringid(3734202,1)) opt=Duel.SelectOption(tp,aux.Stringid(3734202,0),aux.Stringid(3734202,1))
......
...@@ -21,7 +21,7 @@ function c43509019.cbtg(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -21,7 +21,7 @@ function c43509019.cbtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
local bt=Duel.GetAttackTarget() local bt=Duel.GetAttackTarget()
if Duel.CheckEvent(EVENT_ATTACK_ANNOUNCE) and bt and bt:IsFaceup() and bt:IsLevelBelow(4) and bt:IsType(TYPE_TOON) if Duel.CheckEvent(EVENT_ATTACK_ANNOUNCE) and bt and bt:IsFaceup() and bt:IsLevelBelow(4) and bt:IsType(TYPE_TOON)
and bt:GetControler()==e:GetHandlerPlayer() and Duel.SelectYesNo(tp,aux.Stringid(43509019,1)) then and bt:GetControler()==e:GetHandlerPlayer() and Duel.SelectYesNo(tp,94) then
e:SetLabel(1) e:SetLabel(1)
else e:SetLabel(0) end else e:SetLabel(0) end
end end
......
...@@ -28,9 +28,9 @@ function c5026221.target1(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -28,9 +28,9 @@ function c5026221.target1(e,tp,eg,ep,ev,re,r,rp,chk)
if ((tn==tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2)) or (tn~=tp and ph==PHASE_BATTLE)) if ((tn==tp and (ph==PHASE_MAIN1 or ph==PHASE_MAIN2)) or (tn~=tp and ph==PHASE_BATTLE))
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c5026221.filter,tp,LOCATION_HAND,0,1,nil,e,tp) and Duel.IsExistingMatchingCard(c5026221.filter,tp,LOCATION_HAND,0,1,nil,e,tp)
and Duel.SelectYesNo(tp,aux.Stringid(5026221,1)) then and Duel.SelectYesNo(tp,94) then
e:GetHandler():RegisterFlagEffect(5026221,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1) e:GetHandler():RegisterFlagEffect(5026221,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
e:GetHandler():RegisterFlagEffect(0,RESET_CHAIN,EFFECT_FLAG_CLIENT_HINT,1,0,aux.Stringid(5026221,2)) e:GetHandler():RegisterFlagEffect(0,RESET_CHAIN,EFFECT_FLAG_CLIENT_HINT,1,0,65)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_HAND)
end end
end end
......
...@@ -7,7 +7,7 @@ function c68084557.initial_effect(c) ...@@ -7,7 +7,7 @@ function c68084557.initial_effect(c)
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_DRAW) e1:SetCategory(CATEGORY_DRAW)
e1:SetDescription(aux.Stringid(68084557,0)) e1:SetDescription(aux.Stringid(68084557,0))
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET) e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_DAMAGE_STEP)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_EQUIP) e1:SetCode(EVENT_EQUIP)
e1:SetCountLimit(1,68084557) e1:SetCountLimit(1,68084557)
......
...@@ -39,7 +39,7 @@ function c92266279.target(e,tp,eg,ep,ev,re,r,rp,chk) ...@@ -39,7 +39,7 @@ function c92266279.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end if chk==0 then return true end
local b1=c92266279.thcost(e,tp,eg,ep,ev,re,r,rp,0) and c92266279.thtg(e,tp,eg,ep,ev,re,r,rp,0) local b1=c92266279.thcost(e,tp,eg,ep,ev,re,r,rp,0) and c92266279.thtg(e,tp,eg,ep,ev,re,r,rp,0)
local b2=c92266279.reccon(e,tp,eg,ep,ev,re,r,rp) and c92266279.rectg(e,tp,eg,ep,ev,re,r,rp,0) local b2=c92266279.reccon(e,tp,eg,ep,ev,re,r,rp) and c92266279.rectg(e,tp,eg,ep,ev,re,r,rp,0)
if (b1 or b2) and Duel.SelectYesNo(tp,aux.Stringid(92266279,0)) then if (b1 or b2) and Duel.SelectYesNo(tp,94) then
local opt=0 local opt=0
if b1 and b2 then if b1 and b2 then
opt=Duel.SelectOption(tp,aux.Stringid(92266279,1),aux.Stringid(92266279,2)) opt=Duel.SelectOption(tp,aux.Stringid(92266279,1),aux.Stringid(92266279,2))
......
...@@ -22,8 +22,7 @@ end ...@@ -22,8 +22,7 @@ end
function c96015976.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc) function c96015976.target1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c96015976.filter(chkc) end if chkc then return chkc:IsLocation(LOCATION_MZONE) and c96015976.filter(chkc) end
if chk==0 then return true end if chk==0 then return true end
if Duel.IsExistingTarget(c96015976.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) if Duel.IsExistingTarget(c96015976.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,nil) and Duel.SelectYesNo(tp,94) then
and Duel.SelectYesNo(tp,aux.Stringid(96015976,1)) then
e:SetProperty(EFFECT_FLAG_CARD_TARGET) e:SetProperty(EFFECT_FLAG_CARD_TARGET)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP) Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_FACEUP)
Duel.SelectTarget(tp,c96015976.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil) Duel.SelectTarget(tp,c96015976.filter,tp,LOCATION_MZONE,LOCATION_MZONE,1,1,nil)
......
...@@ -59,7 +59,7 @@ function c9765723.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc) ...@@ -59,7 +59,7 @@ function c9765723.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
and Duel.IsExistingMatchingCard(c9765723.cfilter,tp,LOCATION_HAND,0,1,nil) and Duel.IsExistingMatchingCard(c9765723.cfilter,tp,LOCATION_HAND,0,1,nil)
and Duel.IsExistingTarget(Card.IsDestructable,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil) and Duel.IsExistingTarget(Card.IsDestructable,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,nil)
local b2=Duel.GetTurnPlayer()==tp and ph==PHASE_STANDBY local b2=Duel.GetTurnPlayer()==tp and ph==PHASE_STANDBY
if (b1 or b2) and ph~=PHASE_DAMAGE and Duel.SelectYesNo(tp,aux.Stringid(9765723,2)) then if (b1 or b2) and ph~=PHASE_DAMAGE and Duel.SelectYesNo(tp,94) then
local op=0 local op=0
if b1 and b2 then op=Duel.SelectOption(tp,aux.Stringid(9765723,0),aux.Stringid(9765723,1)) if b1 and b2 then op=Duel.SelectOption(tp,aux.Stringid(9765723,0),aux.Stringid(9765723,1))
elseif b1 then op=Duel.SelectOption(tp,aux.Stringid(9765723,0)) elseif b1 then op=Duel.SelectOption(tp,aux.Stringid(9765723,0))
......
--Card id
MIN_ID =1000 --4 digit, by DataManager::GetDesc()
MAX_ID =999999999 --9 digit, by Auxiliary.Stringid(), field::select_chain()
--Locations 区域 --Locations 区域
LOCATION_DECK =0x01 --卡组 LOCATION_DECK =0x01 --卡组
LOCATION_HAND =0x02 --手牌 LOCATION_HAND =0x02 --手牌
......
#The first line is used for comment #The first line is used for comment
#line doesn't start with '!' is also neglected #line doesn't start with '!' is also neglected
#called by DataManager::GetSysString(), DataManager::GetDesc()
#system #system
!system 1 通常召唤 !system 1 通常召唤
!system 2 特殊召唤 !system 2 特殊召唤
...@@ -32,6 +33,7 @@ ...@@ -32,6 +33,7 @@
!system 62 表效果适用中 !system 62 表效果适用中
!system 63 里效果适用中 !system 63 里效果适用中
!system 64 二重状态 !system 64 二重状态
!system 65 使用效果
!system 70 怪物卡 !system 70 怪物卡
!system 71 魔法卡 !system 71 魔法卡
!system 72 陷阱卡 !system 72 陷阱卡
...@@ -41,6 +43,7 @@ ...@@ -41,6 +43,7 @@
!system 91 是否使用额外的召唤机会? !system 91 是否使用额外的召唤机会?
!system 92 是否要解放对方怪兽进行上级召唤? !system 92 是否要解放对方怪兽进行上级召唤?
!system 93 是否要继续选择素材? !system 93 是否要继续选择素材?
!system 94 是否现在使用这张卡的效果?
!system 100 先攻 !system 100 先攻
!system 101 后攻 !system 101 后攻
!system 200 是否在[%ls]发动[%ls]的效果? !system 200 是否在[%ls]发动[%ls]的效果?
...@@ -246,7 +249,7 @@ ...@@ -246,7 +249,7 @@
!system 1233 每回合抽卡: !system 1233 每回合抽卡:
!system 1234 主机名称: !system 1234 主机名称:
!system 1235 主机密码: !system 1235 主机密码:
!system 1236 允许启动效果优先权 !system 1236 旧规则(先攻抽卡、启动效果优先权等)
!system 1237 每回合时间: !system 1237 每回合时间:
!system 1240 OCG !system 1240 OCG
!system 1241 TCG !system 1241 TCG
......
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