Commit 74cbf991 authored by argon.sun's avatar argon.sun

fix

parent 973e13c2
...@@ -1607,7 +1607,7 @@ int32 card::is_can_be_special_summoned(effect * reason_effect, uint32 sumtype, u ...@@ -1607,7 +1607,7 @@ int32 card::is_can_be_special_summoned(effect * reason_effect, uint32 sumtype, u
int32 card::is_setable_mzone(uint8 playerid, uint8 ignore_count, effect* peffect) { int32 card::is_setable_mzone(uint8 playerid, uint8 ignore_count, effect* peffect) {
if(!(data.type & TYPE_MONSTER)) if(!(data.type & TYPE_MONSTER))
return FALSE; return FALSE;
if(is_status(STATUS_REVIVE_LIMIT)) if(status & (STATUS_REVIVE_LIMIT | STATUS_UNSUMMONABLE_CARD))
return FALSE; return FALSE;
if(current.location != LOCATION_HAND) if(current.location != LOCATION_HAND)
return FALSE; return FALSE;
......
...@@ -153,6 +153,7 @@ public: ...@@ -153,6 +153,7 @@ public:
#define EFFECT_FLAG_OWNER_RELATE 0x1000000 // #define EFFECT_FLAG_OWNER_RELATE 0x1000000 //
#define EFFECT_FLAG_AVAILABLE_BD 0x2000000 // #define EFFECT_FLAG_AVAILABLE_BD 0x2000000 //
#define EFFECT_FLAG_CLIENT_HINT 0x4000000 // #define EFFECT_FLAG_CLIENT_HINT 0x4000000 //
#define EFFECT_FLAG_CHAIN_UNIQUE 0x8000000 //
//========== Codes ========== //========== Codes ==========
#define EFFECT_IMMUNE_EFFECT 1 // #define EFFECT_IMMUNE_EFFECT 1 //
#define EFFECT_DISABLE 2 // #define EFFECT_DISABLE 2 //
......
...@@ -507,7 +507,7 @@ public: ...@@ -507,7 +507,7 @@ public:
#define TIMING_TOHAND 0x200000 #define TIMING_TOHAND 0x200000
#define TIMING_TODECK 0x400000 #define TIMING_TODECK 0x400000
#define TIMING_TOGRAVE 0x800000 #define TIMING_TOGRAVE 0x800000
#define TIMING_BATTLE_PHASE 0x1000000
// //
#define PROCESSOR_NONE 0 #define PROCESSOR_NONE 0
#define PROCESSOR_WAITING 0x10000 #define PROCESSOR_WAITING 0x10000
......
...@@ -1136,14 +1136,21 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui ...@@ -1136,14 +1136,21 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui
core.phase_action = TRUE; core.phase_action = TRUE;
target->current.reason = REASON_SUMMON; target->current.reason = REASON_SUMMON;
target->summon_player = sumplayer; target->summon_player = sumplayer;
if(core.current_chain.size() > 1 || target->is_affected_by_effect(EFFECT_CANNOT_DISABLE_SUMMON)) { if(core.current_chain.size() == 0) {
core.units.begin()->step = 14; if(target->is_affected_by_effect(EFFECT_CANNOT_DISABLE_SUMMON))
core.units.begin()->step = 14;
return FALSE; return FALSE;
} else if(core.current_chain.size() == 0) { } else if(core.current_chain.size() > 1) {
core.units.begin()->step = 9; core.units.begin()->step = 14;
return FALSE; return FALSE;
} else {
if(target->is_affected_by_effect(EFFECT_CANNOT_DISABLE_SUMMON))
core.units.begin()->step = 15;
else
core.units.begin()->step = 10;
core.reserved = core.units.front();
return TRUE;
} }
core.reserved = core.units.front();
return TRUE; return TRUE;
} }
case 10: { case 10: {
...@@ -1628,15 +1635,21 @@ int32 field::special_summon_rule(uint16 step, uint8 sumplayer, card * target) { ...@@ -1628,15 +1635,21 @@ int32 field::special_summon_rule(uint16 step, uint8 sumplayer, card * target) {
target->set_status(STATUS_SUMMONING, TRUE); target->set_status(STATUS_SUMMONING, TRUE);
target->set_status(STATUS_SUMMON_DISABLED, FALSE); target->set_status(STATUS_SUMMON_DISABLED, FALSE);
core.spsummoning_card = target; core.spsummoning_card = target;
if(core.current_chain.size() > 1 || target->is_affected_by_effect(EFFECT_CANNOT_DISABLE_SPSUMMON)) { if(core.current_chain.size() == 0) {
core.units.begin()->step = 14; if(target->is_affected_by_effect(EFFECT_CANNOT_DISABLE_SPSUMMON))
core.units.begin()->step = 14;
return FALSE; return FALSE;
} else if(core.current_chain.size() == 0) { } else if(core.current_chain.size() > 1) {
core.units.begin()->step = 9; core.units.begin()->step = 14;
return FALSE; return FALSE;
} else {
if(target->is_affected_by_effect(EFFECT_CANNOT_DISABLE_SPSUMMON))
core.units.begin()->step = 15;
else
core.units.begin()->step = 10;
core.reserved = core.units.front();
return TRUE;
} }
core.reserved = core.units.front();
return TRUE;
} }
case 10: { case 10: {
pduel->write_buffer8(MSG_SPSUMMONING); pduel->write_buffer8(MSG_SPSUMMONING);
......
This diff is collapsed.
--ネコマネキング --ネコマネキング
function c11021521.initial_effect(c) function c11021521.initial_effect(c)
c:SetStatus(STATUS_UNSUMMONABLE_CARD,true)
--end turn --end turn
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(11021521,0)) e1:SetDescription(aux.Stringid(11021521,0))
......
...@@ -6,7 +6,7 @@ function c14087893.initial_effect(c) ...@@ -6,7 +6,7 @@ function c14087893.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(TIMING_ATTACK,0x11c0) e1:SetHintTiming(TIMING_BATTLE_PHASE,0x1c0+TIMING_BATTLE_PHASE)
e1:SetTarget(c14087893.target) e1:SetTarget(c14087893.target)
e1:SetOperation(c14087893.activate) e1:SetOperation(c14087893.activate)
c:RegisterEffect(e1) c:RegisterEffect(e1)
......
...@@ -40,7 +40,7 @@ function c48206762.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -40,7 +40,7 @@ function c48206762.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) then if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) then
if Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP_ATTACK)==0 then return end if Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)==0 then return end
Duel.Equip(tp,c,tc) Duel.Equip(tp,c,tc)
--Add Equip limit --Add Equip limit
local e1=Effect.CreateEffect(tc) local e1=Effect.CreateEffect(tc)
......
--ライトロード·ビースト ウォルフ --ライトロード·ビースト ウォルフ
function c58996430.initial_effect(c) function c58996430.initial_effect(c)
--cannot normal summon
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_CANNOT_SUMMON)
c:RegisterEffect(e1)
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_CANNOT_MSET)
c:RegisterEffect(e2)
c:SetStatus(STATUS_UNSUMMONABLE_CARD,true) c:SetStatus(STATUS_UNSUMMONABLE_CARD,true)
--special summon --special summon
local e3=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F) e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON) e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetDescription(aux.Stringid(58996430,0)) e1:SetDescription(aux.Stringid(58996430,0))
e3:SetCode(EVENT_TO_GRAVE) e1:SetCode(EVENT_TO_GRAVE)
e3:SetCondition(c58996430.condtion) e1:SetCondition(c58996430.condtion)
e3:SetTarget(c58996430.target) e1:SetTarget(c58996430.target)
e3:SetOperation(c58996430.operation) e1:SetOperation(c58996430.operation)
c:RegisterEffect(e3) c:RegisterEffect(e1)
end end
function c58996430.condtion(e,tp,eg,ep,ev,re,r,rp) function c58996430.condtion(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetPreviousLocation()==LOCATION_DECK return e:GetHandler():GetPreviousLocation()==LOCATION_DECK
......
...@@ -40,7 +40,7 @@ function c74694807.operation(e,tp,eg,ep,ev,re,r,rp) ...@@ -40,7 +40,7 @@ function c74694807.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
local tc=Duel.GetFirstTarget() local tc=Duel.GetFirstTarget()
if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) then if c:IsRelateToEffect(e) and tc:IsRelateToEffect(e) then
if Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP_ATTACK)==0 then return end if Duel.SpecialSummon(tc,0,tp,tp,false,false,POS_FACEUP)==0 then return end
Duel.Equip(tp,c,tc) Duel.Equip(tp,c,tc)
--Add Equip limit --Add Equip limit
local e1=Effect.CreateEffect(tc) local e1=Effect.CreateEffect(tc)
......
...@@ -6,6 +6,7 @@ function c98045062.initial_effect(c) ...@@ -6,6 +6,7 @@ function c98045062.initial_effect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE) e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET) e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetCode(EVENT_FREE_CHAIN) e1:SetCode(EVENT_FREE_CHAIN)
e1:SetHintTiming(TIMING_BATTLE_PHASE)
e1:SetCost(c98045062.cost) e1:SetCost(c98045062.cost)
e1:SetTarget(c98045062.target) e1:SetTarget(c98045062.target)
e1:SetOperation(c98045062.activate) e1:SetOperation(c98045062.activate)
......
...@@ -236,6 +236,7 @@ EFFECT_FLAG_EVENT_PLAYER =0x800000 -- ...@@ -236,6 +236,7 @@ EFFECT_FLAG_EVENT_PLAYER =0x800000 --
EFFECT_FLAG_OWNER_RELATE =0x1000000 -- EFFECT_FLAG_OWNER_RELATE =0x1000000 --
EFFECT_FLAG_AVAILABLE_BD =0x2000000 -- EFFECT_FLAG_AVAILABLE_BD =0x2000000 --
EFFECT_FLAG_CLIENT_HINT =0x4000000 -- EFFECT_FLAG_CLIENT_HINT =0x4000000 --
EFFECT_FLAG_CHAIN_UNIQUE =0x8000000 --
--========== Codes ========== --========== Codes ==========
EFFECT_IMMUNE_EFFECT =1 -- EFFECT_IMMUNE_EFFECT =1 --
EFFECT_DISABLE =2 -- EFFECT_DISABLE =2 --
...@@ -583,3 +584,4 @@ TIMING_REMOVE =0x100000 ...@@ -583,3 +584,4 @@ TIMING_REMOVE =0x100000
TIMING_TOHAND =0x200000 TIMING_TOHAND =0x200000
TIMING_TODECK =0x400000 TIMING_TODECK =0x400000
TIMING_TOGRAVE =0x800000 TIMING_TOGRAVE =0x800000
TIMING_BATTLE_PHASE =0x1000000
\ No newline at end of file
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
antialias = 2 antialias = 2
nickname = Player nickname = Player
gamename = Game gamename = Game
lastdeck = sample lastdeck = test
textfont = c:/windows/fonts/simsun.ttc 14 textfont = c:/windows/fonts/simsun.ttc 14
numfont = c:/windows/fonts/arialbd.ttf numfont = c:/windows/fonts/arialbd.ttf
serverport = 7911 serverport = 7911
......
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