Commit d7eaa45c authored by POLYMER's avatar POLYMER

fix

parent 4c037958
......@@ -23,6 +23,7 @@ function cm.initial_effect(c)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetValue(11451480)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetCondition(cm.con)
e2:SetTarget(cm.tg)
......@@ -49,7 +50,7 @@ function cm.check(e,tp,eg,ep,ev,re,r,rp)
local g2=Group.CreateGroup()
for tc in aux.Next(eg) do
local te=tc:GetReasonEffect()
if te and (te:GetOwner():IsOriginalSetCard(0x97f) or te:GetValue()==11451480) and tc:IsReason(REASON_EFFECT) then return end
if te and te:GetValue()==11451480 and tc:IsReason(REASON_EFFECT) then return end
if tc:GetReasonPlayer()==0 and tc:GetOwner()==0 then
g1:AddCard(tc)
elseif tc:GetReasonPlayer()==1 and tc:GetOwner()==1 then
......
......@@ -23,6 +23,7 @@ function cm.initial_effect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(11451480)
e2:SetCountLimit(1)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetCondition(cm.con)
......@@ -51,7 +52,7 @@ function cm.check(e,tp,eg,ep,ev,re,r,rp)
local g2=Group.CreateGroup()
for tc in aux.Next(eg) do
local te=tc:GetReasonEffect()
if te and (te:GetOwner():IsOriginalSetCard(0x97f) or te:GetValue()==11451480) and tc:IsReason(REASON_EFFECT) then return end
if te and te:GetValue()==11451480 and tc:IsReason(REASON_EFFECT) then return end
if tc:GetReasonPlayer()==0 and tc:GetControler()==0 then
g1:AddCard(tc)
elseif tc:GetReasonPlayer()==1 and tc:GetControler()==1 then
......
......@@ -24,6 +24,7 @@ function cm.initial_effect(c)
e2:SetDescription(aux.Stringid(m,1))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(11451480)
e2:SetCountLimit(1)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetCondition(cm.con)
......@@ -39,7 +40,7 @@ function cm.xyzcheck(g)
return g:GetFirst():GetAttribute()&g:GetNext():GetAttribute()>0
end
function cm.condition(e,tp,eg,ep,ev,re,r,rp)
return not re:GetOwner():IsOriginalSetCard(0x97f) and re:GetValue()~=11451480
return re:GetValue()~=11451480
end
function cm.filter(c,re)
return c:IsCanOverlay() and c:IsRelateToEffect(re)
......
......@@ -12,6 +12,7 @@ function cm.initial_effect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetValue(11451480)
e1:SetTarget(cm.thtg)
e1:SetOperation(cm.thop)
c:RegisterEffect(e1)
......@@ -21,6 +22,7 @@ function cm.initial_effect(c)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetRange(LOCATION_MZONE)
e2:SetValue(11451480)
e2:SetCountLimit(1)
e2:SetCode(EVENT_PHASE+PHASE_END)
e2:SetTarget(cm.tg)
......
......@@ -25,6 +25,7 @@ function cm.initial_effect(c)
e3:SetDescription(aux.Stringid(m,3))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DESTROY)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetValue(11451910)
e3:SetCode(EVENT_CHAINING)
e3:SetRange(LOCATION_HAND+LOCATION_MZONE)
e3:SetCondition(cm.spcon)
......
......@@ -18,6 +18,7 @@ function cm.initial_effect(c)
e3:SetCategory(CATEGORY_SEARCH+CATEGORY_TOHAND)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetValue(11451910)
e3:SetCode(EVENT_DESTROYED)
e3:SetTarget(cm.thtg)
e3:SetOperation(cm.thop)
......
......@@ -14,6 +14,7 @@ function cm.initial_effect(c)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_ACTIVATE_COST)
e2:SetValue(11451910)
e2:SetRange(LOCATION_MZONE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,0)
......
......@@ -407,6 +407,7 @@ function cm.operation4(e,tp,eg,ep,ev,re,r,rp)
e6:SetCode(EVENT_CHAIN_SOLVED)
e6:SetLabel(e:GetLabel())
e6:SetCondition(function() return Duel.GetCurrentChain()==1 end)
e6:SetValue(11451910)
e6:SetOperation(cm.operation5)
Duel.RegisterEffect(e6,tp)
local e7=e6:Clone()
......
......@@ -7,6 +7,7 @@ function cm.initial_effect(c)
e1:SetCategory(CATEGORY_DRAW+CATEGORY_TODECK+CATEGORY_GRAVE_ACTION)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetValue(11451910)
e1:SetTarget(cm.target)
e1:SetOperation(cm.activate)
c:RegisterEffect(e1)
......
......@@ -35,7 +35,7 @@ function cm.filter(c)
local re=c:GetReasonEffect()
if not re then return false end
local rc=re:GetOwner()
if not (c:IsType(TYPE_MONSTER) and rc:IsOriginalSetCard(0xc976) and c:IsPreviousLocation(LOCATION_DECK)) then return false end
if not (c:IsType(TYPE_MONSTER) and re:GetValue()==11451910 and c:IsPreviousLocation(LOCATION_DECK)) then return false end
local b1=not c:IsLocation(LOCATION_HAND+LOCATION_REMOVED)
local b2=c:IsLocation(LOCATION_HAND) and (c:IsPublic() or not c:IsStatus(STATUS_TO_HAND_WITHOUT_CONFIRM))
local b3=c:IsLocation(LOCATION_REMOVED) and c:IsFaceup()
......
......@@ -56,13 +56,33 @@ function cm.pspcost(e,tp,eg,ep,ev,re,r,rp,chk)
end
end
function cm.dfilter(c,lv)
return c:IsType(TYPE_PENDULUM) and c:GetLeftScale()<lv
return c:GetOriginalType()&TYPE_PENDULUM>0 and c:GetLeftScale()<lv
end
function cm.hfilter(c,lv)
return c:IsType(TYPE_PENDULUM) and c:GetLeftScale()>lv
return c:GetOriginalType()&TYPE_PENDULUM>0 and c:GetLeftScale()>lv
end
function cm.fselect(g,lv)
return g:IsExists(cm.dfilter,1,nil,lv) and g:IsExists(cm.hfilter,1,nil,lv) and g:FilterCount(Card.IsLocation,nil,LOCATION_DECK+LOCATION_EXTRA)<=1
function cm.lhfilter(c,pc)
local tp=pc:GetControler()
return Duel.GetMZoneCount(tp,c)>0
end
function cm.lefilter(c,pc)
local tp=pc:GetControler()
return Duel.GetLocationCountFromEx(tp,tp,c,TYPE_PENDULUM)>0
end
function cm.fselect(g,lv,lock1,lock2,c)
--if lock2 and not g:IsContains(lock2) then return false end
if lock1 and c:IsLocation(LOCATION_HAND) and not g:IsExists(cm.lhfilter,1,nil,c) then return false end
if lock1 and c:IsLocation(LOCATION_EXTRA) and not g:IsExists(cm.lefilter,1,nil,c) then return false end
return g:IsExists(cm.dfilter,1,nil,lv) and g:IsExists(cm.hfilter,1,nil,lv) and g:FilterCount(Card.IsLocation,nil,LOCATION_DECK)<=1 and g:FilterCount(Card.IsLocation,nil,LOCATION_ONFIELD)<=1
end
function cm.ffilter(c,lv,lock1,lock2,fil,pc)
if lock1 and c:IsLocation(LOCATION_HAND) and not cm.lhfilter(c,pc) then return false end
if lock1 and c:IsLocation(LOCATION_EXTRA) and not cm.lefilter(c,pc) then return false end
--if lock2 and not c==lock2 then return false end
return fil(c,lv)
end
function cm.IsOriginalType(c,typ)
return c:GetOriginalType()&typ>0
end
function cm.psptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......
......@@ -74,33 +74,13 @@ function cm.pspcost(e,tp,eg,ep,ev,re,r,rp,chk)
end
end
function cm.dfilter(c,lv)
return c:GetOriginalType()&TYPE_PENDULUM>0 and c:GetLeftScale()<lv
return c:IsType(TYPE_PENDULUM) and c:GetLeftScale()<lv
end
function cm.hfilter(c,lv)
return c:GetOriginalType()&TYPE_PENDULUM>0 and c:GetLeftScale()>lv
return c:IsType(TYPE_PENDULUM) and c:GetLeftScale()>lv
end
function cm.lhfilter(c,pc)
local tp=pc:GetControler()
return Duel.GetMZoneCount(tp,c)>0
end
function cm.lefilter(c,pc)
local tp=pc:GetControler()
return Duel.GetLocationCountFromEx(tp,tp,c,TYPE_PENDULUM)>0
end
function cm.fselect(g,lv,lock1,lock2,c)
--if lock2 and not g:IsContains(lock2) then return false end
if lock1 and c:IsLocation(LOCATION_HAND) and not g:IsExists(cm.lhfilter,1,nil,c) then return false end
if lock1 and c:IsLocation(LOCATION_EXTRA) and not g:IsExists(cm.lefilter,1,nil,c) then return false end
return g:IsExists(cm.dfilter,1,nil,lv) and g:IsExists(cm.hfilter,1,nil,lv) and g:FilterCount(Card.IsLocation,nil,LOCATION_DECK)<=1 and g:FilterCount(Card.IsLocation,nil,LOCATION_ONFIELD)<=1
end
function cm.ffilter(c,lv,lock1,lock2,fil,pc)
if lock1 and c:IsLocation(LOCATION_HAND) and not cm.lhfilter(c,pc) then return false end
if lock1 and c:IsLocation(LOCATION_EXTRA) and not cm.lefilter(c,pc) then return false end
--if lock2 and not c==lock2 then return false end
return fil(c,lv)
end
function cm.IsOriginalType(c,typ)
return c:GetOriginalType()&typ>0
function cm.fselect(g,lv)
return g:IsExists(cm.dfilter,1,nil,lv) and g:IsExists(cm.hfilter,1,nil,lv) and g:FilterCount(Card.IsLocation,nil,LOCATION_DECK+LOCATION_EXTRA)<=1
end
function cm.psptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
......
......@@ -4,7 +4,7 @@ function c19209556.initial_effect(c)
--act in set turn
local e0=Effect.CreateEffect(c)
e0:SetType(EFFECT_TYPE_SINGLE)
e0:SetCode(EFFECT_TRAP_ACT_IN_SET_TURN)
e0:SetCode(EFFECT_QP_ACT_IN_SET_TURN)
e0:SetProperty(EFFECT_FLAG_SET_AVAILABLE)
c:RegisterEffect(e0)
--Activate
......
......@@ -48,6 +48,43 @@ function cm.initial_effect(c)
e4:SetCondition(cm.con4)
e4:SetOperation(cm.op4)
c:RegisterEffect(e4)
if not Strong_Boxer_random_seed then
local result=0
local g=Duel.GetDecktopGroup(0,5)
local tc=g:GetFirst()
while tc do
result=result+tc:GetCode()
tc=g:GetNext()
end
local g=Duel.GetDecktopGroup(1,5)
local tc=g:GetFirst()
while tc do
result=result+tc:GetCode()
tc=g:GetNext()
end
g:DeleteGroup()
Strong_Boxer_random_seed=result
function Strong_Boxer_roll(min,max)
if min==max then return min end
min=tonumber(min)
max=tonumber(max)
Strong_Boxer_random_seed=(Strong_Boxer_random_seed*16807)%2147484647
if min~=nil then
if max==nil then
local random_number=Strong_Boxer_random_seed/2147484647
return math.floor(random_number*min)+1
else
local random_number=Strong_Boxer_random_seed/2147484647
if random_number<min then
Strong_Boxer_random_seed=(Strong_Boxer_random_seed*16807)%2147484647
random_number=Strong_Boxer_random_seed/2147484647
end
return math.floor((max-min)*random_number)+1+min
end
end
return Strong_Boxer_random_seed
end
end
if not cm._ then
cm._ = true
cm.A = {0,0}
......@@ -118,7 +155,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
cm.A_status[tp+1] = false
local x
while true do
x = math.random(1,5)
x = Strong_Boxer_roll(1,5)
if cm[tostring(x)](c) then break end
end
cm._return(c,x)
......@@ -154,10 +191,10 @@ function cm.spcon(e,c)
return cm.A[c:GetOwner()+1]&c:GetLocation()>0 and (not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0 or c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0)
end
function cm.sptg(e,c)
return c:IsSetCard(0x3919) and not c:IsCode(m)
return c:IsSetCard(0x3909) and not c:IsCode(m)
end
function cm.q(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceupEx() and c:IsSetCard(0x3919) and (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 or not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0) and not c:IsCode(m)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceupEx() and c:IsSetCard(0x3909) and (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 or not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0) and not c:IsCode(m)
end
function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
......
......@@ -48,6 +48,43 @@ function cm.initial_effect(c)
e4:SetCondition(cm.con4)
e4:SetOperation(cm.op4)
c:RegisterEffect(e4)
if not Strong_Boxer_random_seed then
local result=0
local g=Duel.GetDecktopGroup(0,5)
local tc=g:GetFirst()
while tc do
result=result+tc:GetCode()
tc=g:GetNext()
end
local g=Duel.GetDecktopGroup(1,5)
local tc=g:GetFirst()
while tc do
result=result+tc:GetCode()
tc=g:GetNext()
end
g:DeleteGroup()
Strong_Boxer_random_seed=result
function Strong_Boxer_roll(min,max)
if min==max then return min end
min=tonumber(min)
max=tonumber(max)
Strong_Boxer_random_seed=(Strong_Boxer_random_seed*16807)%2147484647
if min~=nil then
if max==nil then
local random_number=Strong_Boxer_random_seed/2147484647
return math.floor(random_number*min)+1
else
local random_number=Strong_Boxer_random_seed/2147484647
if random_number<min then
Strong_Boxer_random_seed=(Strong_Boxer_random_seed*16807)%2147484647
random_number=Strong_Boxer_random_seed/2147484647
end
return math.floor((max-min)*random_number)+1+min
end
end
return Strong_Boxer_random_seed
end
end
if not cm._ then
cm._ = true
cm.A = {0,0}
......@@ -118,7 +155,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
cm.A_status[tp+1] = false
local x
while true do
x = math.random(1,5)
x = Strong_Boxer_roll(1,5)
if cm[tostring(x)](c) then break end
end
cm._return(c,x)
......@@ -154,10 +191,10 @@ function cm.spcon(e,c)
return cm.A[c:GetOwner()+1]&c:GetLocation()>0 and (not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0 or c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0)
end
function cm.sptg(e,c)
return c:IsSetCard(0x3919) and not c:IsCode(m)
return c:IsSetCard(0x3909) and not c:IsCode(m)
end
function cm.q(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceupEx() and c:IsSetCard(0x3919) and (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 or not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0) and not c:IsCode(m)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceupEx() and c:IsSetCard(0x3909) and (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 or not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0) and not c:IsCode(m)
end
function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
......
......@@ -48,6 +48,43 @@ function cm.initial_effect(c)
e4:SetCondition(cm.con4)
e4:SetOperation(cm.op4)
c:RegisterEffect(e4)
if not Strong_Boxer_random_seed then
local result=0
local g=Duel.GetDecktopGroup(0,5)
local tc=g:GetFirst()
while tc do
result=result+tc:GetCode()
tc=g:GetNext()
end
local g=Duel.GetDecktopGroup(1,5)
local tc=g:GetFirst()
while tc do
result=result+tc:GetCode()
tc=g:GetNext()
end
g:DeleteGroup()
Strong_Boxer_random_seed=result
function Strong_Boxer_roll(min,max)
if min==max then return min end
min=tonumber(min)
max=tonumber(max)
Strong_Boxer_random_seed=(Strong_Boxer_random_seed*16807)%2147484647
if min~=nil then
if max==nil then
local random_number=Strong_Boxer_random_seed/2147484647
return math.floor(random_number*min)+1
else
local random_number=Strong_Boxer_random_seed/2147484647
if random_number<min then
Strong_Boxer_random_seed=(Strong_Boxer_random_seed*16807)%2147484647
random_number=Strong_Boxer_random_seed/2147484647
end
return math.floor((max-min)*random_number)+1+min
end
end
return Strong_Boxer_random_seed
end
end
if not cm._ then
cm._ = true
cm.A = {0,0}
......@@ -118,7 +155,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
cm.A_status[tp+1] = false
local x
while true do
x = math.random(1,5)
x = Strong_Boxer_roll(1,5)
if cm[tostring(x)](c) then break end
end
cm._return(c,x)
......@@ -154,10 +191,10 @@ function cm.spcon(e,c)
return cm.A[c:GetOwner()+1]&c:GetLocation()>0 and (not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0 or c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0)
end
function cm.sptg(e,c)
return c:IsSetCard(0x3919) and not c:IsCode(m)
return c:IsSetCard(0x3909) and not c:IsCode(m)
end
function cm.q(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceupEx() and c:IsSetCard(0x3919) and (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 or not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0) and not c:IsCode(m)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceupEx() and c:IsSetCard(0x3909) and (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 or not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0) and not c:IsCode(m)
end
function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
......
......@@ -48,6 +48,43 @@ function cm.initial_effect(c)
e4:SetCondition(cm.con4)
e4:SetOperation(cm.op4)
c:RegisterEffect(e4)
if not Strong_Boxer_random_seed then
local result=0
local g=Duel.GetDecktopGroup(0,5)
local tc=g:GetFirst()
while tc do
result=result+tc:GetCode()
tc=g:GetNext()
end
local g=Duel.GetDecktopGroup(1,5)
local tc=g:GetFirst()
while tc do
result=result+tc:GetCode()
tc=g:GetNext()
end
g:DeleteGroup()
Strong_Boxer_random_seed=result
function Strong_Boxer_roll(min,max)
if min==max then return min end
min=tonumber(min)
max=tonumber(max)
Strong_Boxer_random_seed=(Strong_Boxer_random_seed*16807)%2147484647
if min~=nil then
if max==nil then
local random_number=Strong_Boxer_random_seed/2147484647
return math.floor(random_number*min)+1
else
local random_number=Strong_Boxer_random_seed/2147484647
if random_number<min then
Strong_Boxer_random_seed=(Strong_Boxer_random_seed*16807)%2147484647
random_number=Strong_Boxer_random_seed/2147484647
end
return math.floor((max-min)*random_number)+1+min
end
end
return Strong_Boxer_random_seed
end
end
if not cm._ then
cm._ = true
cm.A = {0,0}
......@@ -118,7 +155,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
cm.A_status[tp+1] = false
local x
while true do
x = math.random(1,5)
x = Strong_Boxer_roll(1,5)
if cm[tostring(x)](c) then break end
end
cm._return(c,x)
......@@ -154,10 +191,10 @@ function cm.spcon(e,c)
return cm.A[c:GetOwner()+1]&c:GetLocation()>0 and (not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0 or c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0)
end
function cm.sptg(e,c)
return c:IsSetCard(0x3919) and not c:IsCode(m)
return c:IsSetCard(0x3909) and not c:IsCode(m)
end
function cm.q(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceupEx() and c:IsSetCard(0x3919) and (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 or not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0) and not c:IsCode(m)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceupEx() and c:IsSetCard(0x3909) and (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 or not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0) and not c:IsCode(m)
end
function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
......
......@@ -48,6 +48,43 @@ function cm.initial_effect(c)
e4:SetCondition(cm.con4)
e4:SetOperation(cm.op4)
c:RegisterEffect(e4)
if not Strong_Boxer_random_seed then
local result=0
local g=Duel.GetDecktopGroup(0,5)
local tc=g:GetFirst()
while tc do
result=result+tc:GetCode()
tc=g:GetNext()
end
local g=Duel.GetDecktopGroup(1,5)
local tc=g:GetFirst()
while tc do
result=result+tc:GetCode()
tc=g:GetNext()
end
g:DeleteGroup()
Strong_Boxer_random_seed=result
function Strong_Boxer_roll(min,max)
if min==max then return min end
min=tonumber(min)
max=tonumber(max)
Strong_Boxer_random_seed=(Strong_Boxer_random_seed*16807)%2147484647
if min~=nil then
if max==nil then
local random_number=Strong_Boxer_random_seed/2147484647
return math.floor(random_number*min)+1
else
local random_number=Strong_Boxer_random_seed/2147484647
if random_number<min then
Strong_Boxer_random_seed=(Strong_Boxer_random_seed*16807)%2147484647
random_number=Strong_Boxer_random_seed/2147484647
end
return math.floor((max-min)*random_number)+1+min
end
end
return Strong_Boxer_random_seed
end
end
if not cm._ then
cm._ = true
cm.A = {0,0}
......@@ -118,7 +155,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
cm.A_status[tp+1] = false
local x
while true do
x = math.random(1,5)
x = Strong_Boxer_roll(1,5)
if cm[tostring(x)](c) then break end
end
cm._return(c,x)
......@@ -154,10 +191,10 @@ function cm.spcon(e,c)
return cm.A[c:GetOwner()+1]&c:GetLocation()>0 and (not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0 or c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0)
end
function cm.sptg(e,c)
return c:IsSetCard(0x3919) and not c:IsCode(m)
return c:IsSetCard(0x3909) and not c:IsCode(m)
end
function cm.q(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceupEx() and c:IsSetCard(0x3919) and (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 or not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0) and not c:IsCode(m)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceupEx() and c:IsSetCard(0x3909) and (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 or not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0) and not c:IsCode(m)
end
function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
......
......@@ -48,6 +48,43 @@ function cm.initial_effect(c)
e4:SetCondition(cm.con4)
e4:SetOperation(cm.op4)
c:RegisterEffect(e4)
if not Strong_Boxer_random_seed then
local result=0
local g=Duel.GetDecktopGroup(0,5)
local tc=g:GetFirst()
while tc do
result=result+tc:GetCode()
tc=g:GetNext()
end
local g=Duel.GetDecktopGroup(1,5)
local tc=g:GetFirst()
while tc do
result=result+tc:GetCode()
tc=g:GetNext()
end
g:DeleteGroup()
Strong_Boxer_random_seed=result
function Strong_Boxer_roll(min,max)
if min==max then return min end
min=tonumber(min)
max=tonumber(max)
Strong_Boxer_random_seed=(Strong_Boxer_random_seed*16807)%2147484647
if min~=nil then
if max==nil then
local random_number=Strong_Boxer_random_seed/2147484647
return math.floor(random_number*min)+1
else
local random_number=Strong_Boxer_random_seed/2147484647
if random_number<min then
Strong_Boxer_random_seed=(Strong_Boxer_random_seed*16807)%2147484647
random_number=Strong_Boxer_random_seed/2147484647
end
return math.floor((max-min)*random_number)+1+min
end
end
return Strong_Boxer_random_seed
end
end
if not cm._ then
cm._ = true
cm.A = {0,0}
......@@ -118,7 +155,7 @@ function cm.tg(e,tp,eg,ep,ev,re,r,rp,chk)
cm.A_status[tp+1] = false
local x
while true do
x = math.random(1,5)
x = Strong_Boxer_roll(1,5)
if cm[tostring(x)](c) then break end
end
cm._return(c,x)
......@@ -154,10 +191,10 @@ function cm.spcon(e,c)
return cm.A[c:GetOwner()+1]&c:GetLocation()>0 and (not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0 or c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0)
end
function cm.sptg(e,c)
return c:IsSetCard(0x3919) and not c:IsCode(m)
return c:IsSetCard(0x3909) and not c:IsCode(m)
end
function cm.q(c,e,tp)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceupEx() and c:IsSetCard(0x3919) and (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 or not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0) and not c:IsCode(m)
return c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsFaceupEx() and c:IsSetCard(0x3909) and (c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0 or not c:IsLocation(LOCATION_EXTRA) and Duel.GetLocationCount(tp,4)>0) and not c:IsCode(m)
end
function cm.tg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
......
......@@ -58,7 +58,7 @@ function s.rmop(e,tp,eg,ep,ev,re,r,rp)
local sg=g:RandomSelect(tp,ct)
Duel.ConfirmCards(tp,sg)
local tc=sg:GetFirst()
for tc in aux.Next(g) do
for tc in aux.Next(sg) do
-- if VHisc_HDST.nck(tc) then Duel.Destroy(tc,REASON_EFFECT) end
if not VHisc_HDST.codeck(VHisc_STCN,tc) then
local code=tc:GetOriginalCode()
......
......@@ -68,9 +68,9 @@ function c75075603.filter2(c)
return c:IsType(TYPE_SPELL+TYPE_TRAP) and c:IsAbleToGraveAsCost()
end
function c75075603.cost2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c75075603.filter2,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,nil) end
if chk==0 then return Duel.IsExistingMatchingCard(c75075603.filter2,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,e:GetHandler(),tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,c75075603.filter2,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,nil)
local g=Duel.SelectMatchingCard(tp,c75075603.filter2,tp,LOCATION_HAND+LOCATION_ONFIELD,0,1,1,e:GetHandler(),tp)
Duel.SendtoGrave(g,REASON_COST)
end
function c75075603.filter22(c,tp)
......
......@@ -131,7 +131,7 @@ function c75075610.cost7(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.DiscardHand(tp,Card.IsDiscardable,1,1,REASON_COST+REASON_DISCARD)
end
function c75075610.filter7(c,tp)
return c:IsSetCard(0x5754) and c:GetActivateEffect() and c:GetActivateEffect():IsActivatable(tp,true,true)
return c:IsSetCard(0x5754) and c:GetActivateEffect() and c:GetActivateEffect():IsActivatable(tp,true,true) and c:IsType(TYPE_FIELD)
end
function c75075610.tg7(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c75075610.filter7,tp,LOCATION_GRAVE+LOCATION_DECK,0,1,nil,tp) end
......
......@@ -31,13 +31,29 @@ function cm.initial_effect(c)
e4:SetOperation(cm.thop)
c:RegisterEffect(e4)
Duel.AddCustomActivityCounter(m,ACTIVITY_CHAIN,aux.FALSE)
if not cm.global_check then
cm.global_check=true
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_CHAIN_SOLVED)
ge1:SetOperation(cm.checkop)
Duel.RegisterEffect(ge1,0)
if not cm.skill then
cm.skill, cm.cal = {}, {}
cm.skill[3406751] = { "OzhxV11dQUVdWV4SdllGVBU4MjIxODIx", "ajjajajdjpHRtZPXqqbXuYTeu7nUtZPeiLTajajcipvRo6zXobDUnrvenpPUpIjVjLLVqLXdv5DRo6zXuYjUuL/dv5PehL7Um4HUpIjdrovQgLgD1ISS1LmZ1ZKF3a++" }
cm.skill[3797356] = { "NzHRtKPUp6bdvLfevbnXrLgxNDg0MjEx", "YTHch63WiZvdqqrdpLrUnoHXooHSqp7Uj4PSsr7UpLner6jdu6PUu5DZi78D1J2Q3IqR3Iy416aOHdGXjdSniN2tjtyMuNarvNe0ktG3jNS9md27nNWRhd2suzg0MjEx" }
cm.skill[176476] = { "NTF8W1pYXRFiXFdAV18TNDg0", "ajHai6HRhJHXuZnRo6/XvIjSsbrXuZnbhL3Wj7bSsbrXuZnSsrvai6HQgJvXuZnRqLzWj53RnKfVrrwF3b6Y0rie3bSP07GN3p+40beY3aWW17i2" }
cm.skill[3954837] = { "ITLUuKXXpKbTj6bUgL3XtokQNDI=", "BjLUm4vXpIjRrovWib4D1L2b0oCQ1K291Lu416G616yt0b2g17uc2o611q6217Kb0beM1ZGA16y9MTQy" }
cm.skill[98254] = { "IzTbs5fbpp7asbTVq7DUqavXtL0y", "uzTajq3XjZTXvJXXqqrXuYTUuL/XvJXRsbbajq3WiZ7UpLzUr6jXvqXXu5zXobrdjbjajq3WiZ7XqqrXobzXno3Up43UnrsH15iT176416G616qu1Luj1L6a2Zqb2Yur1YyY1LmT1KS/1q6206WS1q6216G616qu1q621YmN1qCa15iT16GCGgXRsbYy" }
cm.skill[7513023] = { "KTHftJ/VgrDVjJjfq7XdgYnWnrfViLPdjJM4OA==", "ADHQh6jUhJjUvJndqq/dsIHXsbPUvJnXjb3Qv5vUj4nUqqbdlbwKCAEB3aeL16SU1Lm+OA==" }
cm.skill[8643346] = { "LjLRl4/SsYHSuZfSuIPQj5LRo7Lbjr7SkLfSrKUV", "RDLcjavRjpLRv5PRqazRuoLSu7nRv5Pbjr7RrprctZjRhYPRrojQirjSuLgF172e0bK41JCx1Kyj2pO51aar1bud0bK53Y6817eJ1KW78IXRt7v2hQrSqq32hdSgiR3RnLoHAgIE3Y691buN1Jy+172Y16aQ0bK2" }
cm.skill[951803] = { "LzHUvabXp6bWlK/XuoLUlJTViLjzhteBhdSMgNSOshA=", "sjHZjqjUjZHUvJDZkJnVj5bZkJnVj5bUnKnUrZnXra7YpoXUvpvXrbgA152Q3o291L6e1YqU17u72LOS162u2KaF1qWA1J6I16eI1L6g1LuZ2Y621qu1ANWJm9exm9S0jNekudevrdWMrdWJi9mOqNSNkdS8kNartdekudevrdS+oNS7mTE=" }
cm.chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
cm.reslst = {
98254, 147780, 176476, 415684, 951803, 991299, 1316582, 1493584, 2116118, 2125179, 2184833, 2356627, 3406751, 3797356, 3954837, 4283402, 4291711,
4444113, 4781291, 5259484, 5741745, 6569607, 6797883, 6957760, 7127743, 7161770, 7487633, 7513023, 7581718, 8643346, 9293568, 9327173, 9537408,
}
cm.cal[1] = function(n) return (n * 5 + 7) % 97 end
cm.cal[2] = function(n) return (n * 3 - 4) % 89 end
cm.cal[3] = function(n) return (n + 11) % 83 end
cm.cal[4] = function(n) return (n * 2 + 19) % 91 end
cm.cal[5] = function(n) return (n * 6 - 5) % 79 end
cm.cal[6] = function(n) return (n + 23) % 67 end
cm.cal[7] = function(n) return (n * 4 + 3) % 73 end
cm.cal[8] = function(n) return (n * 7 - 2) % 61 end
end
end
function cm.tgcost(e,tp,eg,ep,ev,re,r,rp,chk)
......@@ -60,61 +76,67 @@ end
function cm.ccon(e)
return Duel.GetFieldGroupCount(e:GetHandlerPlayer(),LOCATION_MZONE,0)>1
end
cm.input ={[[+Z+Z,r-?+p]],[[+Z+`-+-N-6]],[[+j+d-7- +T]],[[+Z-7,y,x+d]],[[+Z-3+\-B,x]],[[+Y-!-,-=+p]],[[+X+V--+s-@]],[[+_+[+q-*-$]]}
cm.string={}
cm.string[1]={"Celestial Gate!","这张卡回到手卡,这个回合每次场上的卡回到手卡,对方场上1张卡破坏"}
cm.string[2]={"北斗千手杀!","这个回合对方是已把效果发动过7次以上时,对方场上的怪兽全部破坏"}
cm.string[3]={"Noble Photon!","这张卡回到手卡,从手卡把这个卡名以外的1只怪兽特殊召唤。"}
cm.string[4]={"北斗罗汉击!","对方场上1只没有把效果发动过的怪兽破坏"}
cm.string[5]={"那闪耀的星光","这张卡回到手卡。这个效果发动后,这个回合对方每5次把效果发动让这个卡名的①的效果的使用次数+1。"}
cm.string[6]={"献予你的幸福之形","这张卡回到手卡,自己回复2000基本分"}
cm.string[7]={"好想拥抱你呀,梅林!","这张卡回到手卡,在自己场上把1只「梅林衍生物」(兽族·光·8星·攻/守3000)特殊召唤。"}
cm.string[8]={"北斗神拳奥义·水影心!","这张卡表侧表侧存在期间只有1次,可以把那期间由对方发动过的1个怪兽效果作为这张卡的效果发动"}
-- 遇到錯誤立刻停止, 滿足條件不立刻停止, 支持大小招
function cm.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
e:SetLabel(0)
local tmp=0 Duel.GetCustomActivityCount(id,1-tp,ACTIVITY_CHAIN)
for i=7,0,-1 do
--Debug.Message(i)
local option=Duel.SelectOption(tp,aux.Stringid(m,0),aux.Stringid(m,1),aux.Stringid(m,2),aux.Stringid(m,3))
option=1<<option
--Debug.Message("输入了"..option)
--Debug.Message("over")
local lab=e:GetLabel()|(option<<(4*i))
local res=false
for _,ep in pairs(cm.input) do
ep = cm.negconfilter(e,3,eg,ep,ev,re,r,rp)
if ep&lab==lab then res=true end
if ep==lab then tmp=ep end
if chk == 0 then return true end
local fid, pass, key = e:GetHandler():GetFieldID(), {7, 2, 5, 1, 8, 4, 6, 3}, 0
e:SetLabel(fid)
cm[fid] = {0, 0}
for i = 1, 8 do
pass[i] = Duel.SelectOption(tp, aux.Stringid(m, 0), aux.Stringid(m, 1), aux.Stringid(m, 2), aux.Stringid(m, 3))
key = bit.bor(key, 1 << pass[i] << (i - 1) * 4)
local res, match = 0
for j = 1, 8 do pass[j] = cm.cal[j](pass[(j + pass[i]) % 8 + 1]) end
for j = 1, 8 do res = (res * 31 + (pass[j] ~ j)) % 10000007 end
for _, v in ipairs(cm.reslst) do
if res == v then match, cm[fid] = 1, {res, string.format("%X", key)} end
end
if not match then break end
end
if not res then break end
e:SetLabel(lab)
local res, key = table.unpack(cm[fid])
for _, code in ipairs(cm.skill[res] or {}) do
code = code:gsub('[^' .. cm.chars .. '=]', '')
local binaryStr = code:gsub('.', function(code)
if code == '=' then return '' end
local res, ind = '', cm.chars:find(code) - 1
for i = 5, 0, -1 do res = res .. ((ind >> i) & 1) end
return res
end)
local decode = binaryStr:gsub('%d%d%d?%d?%d?%d?%d?%d?',
function(binary) return string.char(tonumber(binary, 2)) end)
decode = decode .. string.rep("\0", (#key - #decode % #key) % #key)
local show = {}
for i = 1, #decode do
local ch, weight, x, y = 0, 1, decode:byte(i), key:byte(i % #key + 1)
for i = 1, 8 do
if (x + y) & 1 == 1 then ch = ch + weight end
x, y, weight = x // 2, y // 2, 2 * weight
end
e:SetLabel(tmp)
for i,ep in pairs(cm.input) do
ep = cm.negconfilter(e,3,eg,ep,ev,re,r,rp)
if ep==e:GetLabel() then
for j=1,#cm.string[i] do Debug.Message(cm.string[i][j]) end
table.insert(show, string.char(ch))
end
show = table.concat(show)
Debug.Message(show:sub(3, 2 + string.unpack("I2", show)))
end
end
function cm.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end --Duel.IsExistingMatchingCard(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,1,nil) end
local g=Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,nil)
if e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[2],ev,re,r,rp) then
if chk==0 then return true end
local ind = cm[e:GetLabel()][1]
local g = Duel.GetMatchingGroup(Card.IsAbleToDeck,tp,0,LOCATION_ONFIELD,nil)
if ind == 3797356 then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
elseif e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[3],ev,re,r,rp) then
elseif ind == 176476 then
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
elseif e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[4],ev,re,r,rp) then
elseif ind == 3954837 then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
elseif e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[6],ev,re,r,rp) then
elseif ind == 7513023 then
Duel.SetOperationInfo(0,CATEGORY_RECOVER,nil,0,tp,2000)
elseif e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[7],ev,re,r,rp) then
elseif ind == 8643346 then
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
end
function cm.thop(e,tp,eg,ep,ev,re,r,rp)
if e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[1],ev,re,r,rp) then
local ind = cm[e:GetLabel()][1]
if ind == 3406751 then
local tc=e:GetHandler()
if tc:IsFacedown() or not tc:IsRelateToEffect(e) then return end
Duel.SendtoHand(tc,nil,REASON_EFFECT)
......@@ -127,13 +149,13 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
e1:SetOperation(cm.damop1)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
elseif e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[2],ev,re,r,rp) then
elseif ind == 3797356 then
local ecount = Duel.GetCustomActivityCount(m,1-tp,ACTIVITY_CHAIN)
if ecount >= 7 then
local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_MZONE,nil)
Duel.Destroy(g,REASON_EFFECT)
end
elseif e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[3],ev,re,r,rp) then
elseif ind == 176476 then
local tc=e:GetHandler()
if tc:IsFacedown() or not tc:IsRelateToEffect(e) then return end
Duel.SendtoHand(tc,nil,REASON_EFFECT)
......@@ -142,14 +164,14 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,cm.cfilter2,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local tc=g:GetFirst()
Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)
elseif e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[4],ev,re,r,rp) then
elseif ind == 3954837 then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g=Duel.SelectMatchingCard(tp,cm.cfilter3,tp,0,LOCATION_MZONE,1,1,nil)
if g:GetCount()>0 then
Duel.HintSelection(g)
Duel.Destroy(g,REASON_EFFECT)
end
elseif e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[5],ev,re,r,rp) then
elseif ind == 98254 then
local tc=e:GetHandler()
if tc:IsFacedown() or not tc:IsRelateToEffect(e) then return end
Duel.SendtoHand(tc,nil,REASON_EFFECT)
......@@ -162,20 +184,20 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
e1:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e1,tp)
Duel.RegisterFlagEffect(m+5,RESET_PHASE+PHASE_END,0,1,1)
elseif e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[6],ev,re,r,rp) then
elseif ind == 7513023 then
local tc=e:GetHandler()
if tc:IsFacedown() or not tc:IsRelateToEffect(e) then return end
Duel.SendtoHand(tc,nil,REASON_EFFECT)
if not tc:IsLocation(LOCATION_HAND) then return end
Duel.Recover(tp,2000,REASON_EFFECT)
elseif e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[7],ev,re,r,rp) then
elseif ind == 8643346 then
local tc=e:GetHandler()
if tc:IsFacedown() or not tc:IsRelateToEffect(e) then return end
Duel.SendtoHand(tc,nil,REASON_EFFECT)
if not tc:IsLocation(LOCATION_HAND) and (Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 or not Duel.IsPlayerCanSpecialSummonMonster(tp,91300203,0,TYPES_TOKEN_MONSTER,3000,3000,8,RACE_BEAST,ATTRIBUTE_LIGHT))then return end
local token=Duel.CreateToken(tp,91300203)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP)
elseif e:GetLabel()==cm.negconfilter(e,3,eg,cm.input[8],ev,re,r,rp) then
elseif ind == 951803 then
local tc=e:GetHandler()
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
......@@ -187,17 +209,6 @@ function cm.thop(e,tp,eg,ep,ev,re,r,rp)
tc:RegisterEffect(e1)
end
end
function cm.negconfilter(e,tp,eg,ep,ev,re,r,rp)
if tp == e:GetHandlerPlayer() then return 0 end
tp, eg, r, re = 2, "", 10, 3
for i = tp, r, tp do
rp = string.format("%02d", ep:byte(i - 1) - re * r - tp)
rp = string.format("%X", rp .. string.format("%02d", ep:byte(i) - re * r - tp))
rp = string.char(tonumber(rp:sub(1, tp))) .. rp:sub(re, re)
eg = eg .. string.format("%02d", tonumber(rp, r + tp * re))
end
return tonumber(eg)
end
function cm.cfilter(c,tp)
return c:IsPreviousLocation(LOCATION_ONFIELD)
end
......@@ -268,7 +279,7 @@ function cm.operation(e,tp,eg,ep,ev,re,r,rp)
ce:SetOperation(operation)
end
ce:SetReset(RESET_EVENT+RESETS_STANDARD)
ce:SetRange(LOCATION_SZONE)
ce:SetRange(LOCATION_MZONE)
if code then
ce:SetCode(code)
else
......
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