Commit 9283bfc8 authored by argon.sun's avatar argon.sun

fix

parent 90d9637e
......@@ -1511,6 +1511,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
}
}
if (field_confirm.size() > 0) {
mainGame->WaitFrameSignal(5);
for(int i = 0; i < field_confirm.size(); ++i) {
pcard = field_confirm[i];
c = pcard->controler;
......@@ -1536,7 +1537,7 @@ int DuelClient::ClientAnalyze(char * msg, unsigned int len) {
pcard->aniFrame = 5;
}
}
mainGame->WaitFrameSignal(45);
mainGame->WaitFrameSignal(90);
for(int i = 0; i < field_confirm.size(); ++i) {
mainGame->dField.MoveCard(field_confirm[i], 5);
}
......
......@@ -14,7 +14,7 @@
#include <dirent.h>
#endif
const unsigned short PRO_VERSION = 0x12f0;
const unsigned short PRO_VERSION = 0x1300;
namespace ygo {
......
......@@ -1417,8 +1417,8 @@ int32 field::summon(uint16 step, uint8 sumplayer, card * target, effect * proc,
process_single_event();
raise_event(target, EVENT_SUMMON_SUCCESS, proc, 0, sumplayer, sumplayer, 0);
process_instant_event();
adjust_all();
if(core.current_chain.size() == 0) {
adjust_all();
core.hint_timing[sumplayer] |= TIMING_SUMMON;
add_process(PROCESSOR_POINT_EVENT, 0, 0, 0, FALSE, 0);
}
......@@ -1690,8 +1690,8 @@ int32 field::mset(uint16 step, uint8 setplayer, card * target, effect * proc, ui
adjust_instant();
raise_event(target, EVENT_MSET, proc, 0, setplayer, setplayer, 0);
process_instant_event();
adjust_all();
if(core.current_chain.size() == 0) {
adjust_all();
core.hint_timing[setplayer] |= TIMING_MSET;
add_process(PROCESSOR_POINT_EVENT, 0, 0, 0, FALSE, FALSE);
}
......@@ -1766,8 +1766,8 @@ int32 field::sset(uint16 step, uint8 setplayer, uint8 toplayer, card * target) {
adjust_instant();
raise_event(target, EVENT_SSET, 0, 0, setplayer, setplayer, 0);
process_instant_event();
adjust_all();
if(core.current_chain.size() == 0) {
adjust_all();
core.hint_timing[setplayer] |= TIMING_SSET;
add_process(PROCESSOR_POINT_EVENT, 0, 0, 0, FALSE, FALSE);
}
......@@ -1841,7 +1841,11 @@ int32 field::sset_g(uint16 step, uint8 setplayer, uint8 toplayer, group* ptarget
adjust_instant();
raise_event(&core.operated_set, EVENT_SSET, 0, 0, setplayer, setplayer, 0);
process_instant_event();
adjust_all();
if(core.current_chain.size() == 0) {
adjust_all();
core.hint_timing[setplayer] |= TIMING_SSET;
add_process(PROCESSOR_POINT_EVENT, 0, 0, 0, FALSE, FALSE);
}
return TRUE;
}
}
......@@ -2015,8 +2019,8 @@ int32 field::special_summon_rule(uint16 step, uint8 sumplayer, card * target) {
process_single_event();
raise_event(target, EVENT_SPSUMMON_SUCCESS, core.units.begin()->peffect, 0, sumplayer, sumplayer, 0);
process_instant_event();
adjust_all();
if(core.current_chain.size() == 0) {
adjust_all();
core.hint_timing[sumplayer] |= TIMING_SPSUMMON;
add_process(PROCESSOR_POINT_EVENT, 0, 0, 0, FALSE, 0);
}
......
......@@ -6,7 +6,7 @@ function c19667590.initial_effect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetRange(LOCATION_GRAVE)
e1:SetProperty(EFFECT_FLAG_CHAIN_UNIQUE+EFFECT_FLAG_DELAY+EFFECT_FLAG_DAMAGE_STEP)
e1:SetProperty(EFFECT_FLAG_CHAIN_UNIQUE+EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetCondition(c19667590.spcon)
e1:SetCost(c19667590.spcost)
......
......@@ -8,20 +8,27 @@ function c27632240.initial_effect(c)
e1:SetProperty(EFFECT_FLAG_CHAIN_UNIQUE)
e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_TO_HAND)
e1:SetCondition(c27632240.tgcon)
e1:SetCondition(c27632240.tgcon1)
e1:SetCost(c27632240.tgcost)
e1:SetTarget(c27632240.tgtg)
e1:SetOperation(c27632240.tgop)
c:RegisterEffect(e1)
local e2=e1:Clone()
e2:SetCode(EVENT_TO_DECK)
e2:SetCondition(c27632240.tgcon2)
c:RegisterEffect(e2)
end
function c27632240.cfilter(c)
function c27632240.cfilter1(c)
return c:IsPreviousLocation(LOCATION_MZONE)
end
function c27632240.tgcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c27632240.cfilter,1,nil)
function c27632240.tgcon1(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c27632240.cfilter1,1,nil)
end
function c27632240.cfilter2(c)
return c:IsPreviousLocation(LOCATION_MZONE) and c:IsLocation(LOCATION_DECK)
end
function c27632240.tgcon2(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c27632240.cfilter2,1,nil)
end
function c27632240.tgcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetFlagEffect(tp,27632240)==0 end
......
......@@ -41,7 +41,7 @@ function c39699564.setop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.SelectMatchingCard(tp,c39699564.filter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SSet(tp,g)
Duel.ConfirmCards(1-tp,g)
Duel.ConfirmCards(1-tp,g:GetFirst())
end
end
function c39699564.sumop(e,tp,eg,ep,ev,re,r,rp)
......
......@@ -29,7 +29,7 @@ end
function c47660516.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<0 then return end
local tc=Duel.GetFirstTarget()
if tc:IsFacedown() or not tc:IsRelateToEffect(e) then return end
if tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsControler(1-tp) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c47660516.filter2,tp,LOCATION_EXTRA,0,1,1,nil,tc:GetRank()+1,tc:GetRace(),e,tp)
local sc=g:GetFirst()
......
......@@ -40,7 +40,7 @@ end
function c68815132.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.GetFirstTarget()
if tc:IsRelateToEffect(e) and Duel.SendtoHand(tc,nil,REASON_EFFECT)>0 then
if tc:IsRelateToEffect(e) and Duel.SendtoHand(tc,nil,REASON_EFFECT)>0 and tc:IsLocation(LOCATION_HAND+LOCATION_EXTRA) then
if Duel.IsExistingMatchingCard(c68815132.sumfilter,tp,LOCATION_HAND,0,1,nil)
and Duel.SelectYesNo(tp,aux.Stringid(68815132,1)) then
Duel.BreakEffect()
......
......@@ -19,11 +19,14 @@ function c86848580.discost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():CheckRemoveOverlayCard(tp,1,REASON_COST) end
e:GetHandler():RemoveOverlayCard(tp,1,1,REASON_COST)
end
function c86848580.filter(c)
return c:IsFaceup() and c:IsType(TYPE_EFFECT)
end
function c86848580.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsFaceup,tp,0,LOCATION_ONFIELD,1,nil) end
if chk==0 then return Duel.IsExistingMatchingCard(c86848580.filter,tp,0,LOCATION_ONFIELD,1,nil) end
end
function c86848580.disop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsFaceup,tp,0,LOCATION_ONFIELD,nil)
local g=Duel.GetMatchingGroup(c86848580.filter,tp,0,LOCATION_ONFIELD,nil)
local tc=g:GetFirst()
local c=e:GetHandler()
while tc do
......
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