Commit 1fb6dd0f authored by argon.sun's avatar argon.sun

hint

parent 132f43cd
...@@ -1263,6 +1263,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1263,6 +1263,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
myswprintf(formatBuffer, L"\n%ls%ls", dataManager.GetSysString(214), dataManager.FormatAttribute(mcard->chValue)); myswprintf(formatBuffer, L"\n%ls%ls", dataManager.GetSysString(214), dataManager.FormatAttribute(mcard->chValue));
else if(mcard->cHint == CHINT_NUMBER) else if(mcard->cHint == CHINT_NUMBER)
myswprintf(formatBuffer, L"\n%ls%d", dataManager.GetSysString(215), mcard->chValue); myswprintf(formatBuffer, L"\n%ls%d", dataManager.GetSysString(215), mcard->chValue);
else if(mcard->cHint == CHINT_DESC)
myswprintf(formatBuffer, L"\n%ls", dataManager.GetSysString(mcard->chValue));
str.append(formatBuffer); str.append(formatBuffer);
} }
} else { } else {
...@@ -1289,6 +1291,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) { ...@@ -1289,6 +1291,8 @@ bool ClientField::OnEvent(const irr::SEvent& event) {
myswprintf(formatBuffer, L"\n%ls%ls", dataManager.GetSysString(214), dataManager.FormatAttribute(mcard->chValue)); myswprintf(formatBuffer, L"\n%ls%ls", dataManager.GetSysString(214), dataManager.FormatAttribute(mcard->chValue));
else if(mcard->cHint == CHINT_NUMBER) else if(mcard->cHint == CHINT_NUMBER)
myswprintf(formatBuffer, L"\n%ls%d", dataManager.GetSysString(215), mcard->chValue); myswprintf(formatBuffer, L"\n%ls%d", dataManager.GetSysString(215), mcard->chValue);
else if(mcard->cHint == CHINT_DESC)
myswprintf(formatBuffer, L"\n%ls", dataManager.GetSysString(mcard->chValue));
str.append(formatBuffer); str.append(formatBuffer);
} }
} }
......
...@@ -776,6 +776,12 @@ int32 card::add_effect(effect* peffect) { ...@@ -776,6 +776,12 @@ int32 card::add_effect(effect* peffect) {
pduel->game_field->effects.cheff.insert(peffect); pduel->game_field->effects.cheff.insert(peffect);
if(peffect->flag & EFFECT_FLAG_COUNT_LIMIT) if(peffect->flag & EFFECT_FLAG_COUNT_LIMIT)
pduel->game_field->effects.rechargeable.insert(peffect); pduel->game_field->effects.rechargeable.insert(peffect);
if(peffect->flag & EFFECT_FLAG_CLIENT_HINT) {
pduel->write_buffer8(MSG_CARD_HINT);
pduel->write_buffer32(get_info_location());
pduel->write_buffer8(CHINT_DESC);
pduel->write_buffer32(peffect->description);
}
return peffect->id; return peffect->id;
} }
void card::remove_effect(effect* peffect) { void card::remove_effect(effect* peffect) {
...@@ -830,6 +836,12 @@ void card::remove_effect(effect* peffect, effect_container::iterator it) { ...@@ -830,6 +836,12 @@ void card::remove_effect(effect* peffect, effect_container::iterator it) {
counters.erase(cmit); counters.erase(cmit);
} }
} }
if(peffect->flag & EFFECT_FLAG_CLIENT_HINT) {
pduel->write_buffer8(MSG_CARD_HINT);
pduel->write_buffer32(get_info_location());
pduel->write_buffer8(CHINT_DESC);
pduel->write_buffer32(0);
}
pduel->game_field->core.reseted_effects.insert(peffect); pduel->game_field->core.reseted_effects.insert(peffect);
} }
int32 card::copy_effect(uint32 code, uint32 reset, uint32 count) { int32 card::copy_effect(uint32 code, uint32 reset, uint32 count) {
......
...@@ -152,7 +152,7 @@ public: ...@@ -152,7 +152,7 @@ public:
#define EFFECT_FLAG_EVENT_PLAYER 0x800000 // #define EFFECT_FLAG_EVENT_PLAYER 0x800000 //
#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 //
//========== Codes ========== //========== Codes ==========
#define EFFECT_IMMUNE_EFFECT 1 // #define EFFECT_IMMUNE_EFFECT 1 //
#define EFFECT_DISABLE 2 // #define EFFECT_DISABLE 2 //
......
...@@ -631,6 +631,7 @@ public: ...@@ -631,6 +631,7 @@ public:
#define CHINT_RACE 3 #define CHINT_RACE 3
#define CHINT_ATTRIBUTE 4 #define CHINT_ATTRIBUTE 4
#define CHINT_NUMBER 5 #define CHINT_NUMBER 5
#define CHINT_DESC 6
//Messages //Messages
#define MSG_RETRY 1 #define MSG_RETRY 1
#define MSG_HINT 2 #define MSG_HINT 2
......
...@@ -759,8 +759,11 @@ int32 scriptlib::card_register_flag_effect(lua_State *L) { ...@@ -759,8 +759,11 @@ int32 scriptlib::card_register_flag_effect(lua_State *L) {
int32 flag = lua_tointeger(L, 4); int32 flag = lua_tointeger(L, 4);
int32 count = lua_tointeger(L, 5); int32 count = lua_tointeger(L, 5);
int32 lab = 0; int32 lab = 0;
int32 desc = 0;
if(lua_gettop(L) >= 6) if(lua_gettop(L) >= 6)
lab = lua_tointeger(L, 6); lab = lua_tointeger(L, 6);
if(lua_gettop(L) >= 7)
desc = lua_tointeger(L, 7);
if(count == 0) if(count == 0)
count = 1; count = 1;
if(reset & (RESET_PHASE) && !(reset & (RESET_SELF_TURN | RESET_OPPO_TURN))) if(reset & (RESET_PHASE) && !(reset & (RESET_SELF_TURN | RESET_OPPO_TURN)))
...@@ -775,6 +778,7 @@ int32 scriptlib::card_register_flag_effect(lua_State *L) { ...@@ -775,6 +778,7 @@ int32 scriptlib::card_register_flag_effect(lua_State *L) {
peffect->flag = flag | EFFECT_FLAG_CANNOT_DISABLE; peffect->flag = flag | EFFECT_FLAG_CANNOT_DISABLE;
peffect->reset_count |= count & 0xff; peffect->reset_count |= count & 0xff;
peffect->label = lab; peffect->label = lab;
peffect->description = desc;
pcard->add_effect(peffect); pcard->add_effect(peffect);
interpreter::effect2value(L, peffect); interpreter::effect2value(L, peffect);
return 1; return 1;
...@@ -1702,7 +1706,7 @@ int32 scriptlib::card_set_hint(lua_State *L) { ...@@ -1702,7 +1706,7 @@ int32 scriptlib::card_set_hint(lua_State *L) {
duel* pduel = pcard->pduel; duel* pduel = pcard->pduel;
uint32 type = lua_tointeger(L, 2); uint32 type = lua_tointeger(L, 2);
uint32 value = lua_tointeger(L, 3); uint32 value = lua_tointeger(L, 3);
if(type > CHINT_NUMBER) if(type > CHINT_DESC)
return 0; return 0;
pduel->write_buffer8(MSG_CARD_HINT); pduel->write_buffer8(MSG_CARD_HINT);
pduel->write_buffer32(pcard->get_info_location()); pduel->write_buffer32(pcard->get_info_location());
......
...@@ -1101,7 +1101,8 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui ...@@ -1101,7 +1101,8 @@ int32 field::summon(uint16 step, uint8 sumplayer, card* target, effect* proc, ui
deffect->owner = target; deffect->owner = target;
deffect->code = EFFECT_DUAL_STATUS; deffect->code = EFFECT_DUAL_STATUS;
deffect->type = EFFECT_TYPE_SINGLE; deffect->type = EFFECT_TYPE_SINGLE;
deffect->flag = EFFECT_FLAG_CANNOT_DISABLE; deffect->flag = EFFECT_FLAG_CANNOT_DISABLE | EFFECT_FLAG_CLIENT_HINT;
deffect->description = 64;
deffect->reset_flag = RESET_EVENT + 0x1fe0000; deffect->reset_flag = RESET_EVENT + 0x1fe0000;
target->add_effect(deffect); target->add_effect(deffect);
core.temp_var[0] = 0; core.temp_var[0] = 0;
......
...@@ -16,12 +16,10 @@ function c15854426.initial_effect(c) ...@@ -16,12 +16,10 @@ function c15854426.initial_effect(c)
local e3=Effect.CreateEffect(c) local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_SPECIAL_SUMMON) e3:SetCategory(CATEGORY_SPECIAL_SUMMON)
e3:SetDescription(aux.Stringid(15854426,0)) e3:SetDescription(aux.Stringid(15854426,0))
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O) e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetProperty(EFFECT_FLAG_DELAY) e3:SetProperty(EFFECT_FLAG_DELAY)
e3:SetRange(LOCATION_SZONE) e3:SetCode(15854426)
e3:SetCode(EVENT_LEAVE_FIELD)
e3:SetCountLimit(1) e3:SetCountLimit(1)
e3:SetCondition(c15854426.condition)
e3:SetTarget(c15854426.target) e3:SetTarget(c15854426.target)
e3:SetOperation(c15854426.operation) e3:SetOperation(c15854426.operation)
e3:SetLabelObject(e2) e3:SetLabelObject(e2)
...@@ -31,19 +29,19 @@ function c15854426.cfilter(c,tp) ...@@ -31,19 +29,19 @@ function c15854426.cfilter(c,tp)
return c:IsControler(tp) and c:IsFaceup() and c:IsAttribute(ATTRIBUTE_WIND) and c:GetDestination()==LOCATION_HAND return c:IsControler(tp) and c:IsFaceup() and c:IsAttribute(ATTRIBUTE_WIND) and c:GetDestination()==LOCATION_HAND
end end
function c15854426.check(e,tp,eg,ep,ev,re,r,rp) function c15854426.check(e,tp,eg,ep,ev,re,r,rp)
if eg:IsExists(c15854426.cfilter,1,nil,tp) then e:SetLabel(1) local c=e:GetHandler()
else e:SetLabel(0) end if c:GetFlagEffect(15854426)==0 and eg:IsExists(c15854426.cfilter,1,nil,tp) then
end c:RegisterFlagEffect(15854426,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
function c15854426.condition(e,tp,eg,ep,ev,re,r,rp) Duel.RaiseSingleEvent(c,15854426,e,r,rp,0,0)
return e:GetLabelObject():GetLabel()==1 end
end end
function c15854426.filter(c,e,tp) function c15854426.filter(c,e,tp)
return c:GetLevel()<=4 and c:IsAttribute(ATTRIBUTE_WIND) return c:IsLevelBelow(4) and c:IsAttribute(ATTRIBUTE_WIND)
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end end
function c15854426.target(e,tp,eg,ep,ev,re,r,rp,chk) function c15854426.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsRelateToEffect(e) and not e:GetHandler():IsStatus(STATUS_CHAINING) if chk==0 then return e:GetHandler():IsRelateToEffect(e) and Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and Duel.IsExistingMatchingCard(c15854426.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end and Duel.IsExistingMatchingCard(c15854426.filter,tp,LOCATION_DECK,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,tp,LOCATION_DECK)
end end
function c15854426.operation(e,tp,eg,ep,ev,re,r,rp) function c15854426.operation(e,tp,eg,ep,ev,re,r,rp)
......
...@@ -56,7 +56,7 @@ function c23846921.arcanareg(c,coin) ...@@ -56,7 +56,7 @@ function c23846921.arcanareg(c,coin)
e2:SetOperation(c23846921.thop) e2:SetOperation(c23846921.thop)
e2:SetReset(RESET_EVENT+0x1ff0000) e2:SetReset(RESET_EVENT+0x1ff0000)
c:RegisterEffect(e2) c:RegisterEffect(e2)
c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,0,1,coin) c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,EFFECT_FLAG_CLIENT_HINT,1,coin,63-coin)
end end
function c23846921.skipcon(e,tp,eg,ep,ev,re,r,rp) function c23846921.skipcon(e,tp,eg,ep,ev,re,r,rp)
return ep==tp and e:GetHandler():GetFlagEffectLabel(36690018)==1 return ep==tp and e:GetHandler():GetFlagEffectLabel(36690018)==1
......
...@@ -46,7 +46,7 @@ function c34568403.arcanareg(c,coin) ...@@ -46,7 +46,7 @@ function c34568403.arcanareg(c,coin)
e1:SetOperation(c34568403.spop) e1:SetOperation(c34568403.spop)
e1:SetReset(RESET_EVENT+0x1ff0000) e1:SetReset(RESET_EVENT+0x1ff0000)
c:RegisterEffect(e1) c:RegisterEffect(e1)
c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,0,1,coin) c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,EFFECT_FLAG_CLIENT_HINT,1,coin,63-coin)
end end
function c34568403.spcon(e,tp,eg,ep,ev,re,r,rp) function c34568403.spcon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffectLabel(36690018)==1 and e:GetHandler():IsRelateToBattle() return e:GetHandler():GetFlagEffectLabel(36690018)==1 and e:GetHandler():IsRelateToBattle()
......
...@@ -54,7 +54,7 @@ function c35781051.arcanareg(c,coin) ...@@ -54,7 +54,7 @@ function c35781051.arcanareg(c,coin)
e2:SetOperation(c35781051.tgop) e2:SetOperation(c35781051.tgop)
e2:SetReset(RESET_EVENT+0x1ff0000) e2:SetReset(RESET_EVENT+0x1ff0000)
c:RegisterEffect(e2) c:RegisterEffect(e2)
c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,0,1,coin) c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,EFFECT_FLAG_CLIENT_HINT,1,coin,63-coin)
end end
function c35781051.spcon(e,tp,eg,ep,ev,re,r,rp) function c35781051.spcon(e,tp,eg,ep,ev,re,r,rp)
return ep~=tp and e:GetHandler():GetFlagEffectLabel(36690018)==1 return ep~=tp and e:GetHandler():GetFlagEffectLabel(36690018)==1
......
...@@ -74,7 +74,7 @@ function c5861892.arcanareg(c,coin) ...@@ -74,7 +74,7 @@ function c5861892.arcanareg(c,coin)
e2:SetOperation(c5861892.negop) e2:SetOperation(c5861892.negop)
e2:SetReset(RESET_EVENT+0x1ff0000) e2:SetReset(RESET_EVENT+0x1ff0000)
c:RegisterEffect(e2) c:RegisterEffect(e2)
c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,0,1,coin) c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,EFFECT_FLAG_CLIENT_HINT,1,coin,63-coin)
end end
function c5861892.thcon(e,tp,eg,ep,ev,re,r,rp) function c5861892.thcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -65,7 +65,7 @@ function c60953118.arcanareg(c,coin) ...@@ -65,7 +65,7 @@ function c60953118.arcanareg(c,coin)
e2:SetTargetRange(0,1) e2:SetTargetRange(0,1)
e2:SetCondition(c60953118.rdcon2) e2:SetCondition(c60953118.rdcon2)
c:RegisterEffect(e2) c:RegisterEffect(e2)
c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,0,1,coin) c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,EFFECT_FLAG_CLIENT_HINT,1,coin,63-coin)
end end
function c60953118.rdcon1(e) function c60953118.rdcon1(e)
return e:GetHandler():GetFlagEffectLabel(36690018)==1 return e:GetHandler():GetFlagEffectLabel(36690018)==1
......
...@@ -41,7 +41,7 @@ function c61175706.arcanareg(c,coin) ...@@ -41,7 +41,7 @@ function c61175706.arcanareg(c,coin)
e1:SetReset(RESET_EVENT+0x1ff0000) e1:SetReset(RESET_EVENT+0x1ff0000)
c:RegisterEffect(e1) c:RegisterEffect(e1)
-- --
c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,0,1,coin) c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,EFFECT_FLAG_CLIENT_HINT,1,coin,63-coin)
end end
function c61175706.atktg(e,c) function c61175706.atktg(e,c)
return c:IsSetCard(0x5) return c:IsSetCard(0x5)
......
...@@ -71,7 +71,7 @@ function c62892347.arcanareg(c,coin) ...@@ -71,7 +71,7 @@ function c62892347.arcanareg(c,coin)
e3:SetTarget(c62892347.distg) e3:SetTarget(c62892347.distg)
e3:SetReset(RESET_EVENT+0x1ff0000) e3:SetReset(RESET_EVENT+0x1ff0000)
c:RegisterEffect(e3) c:RegisterEffect(e3)
c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,0,1,coin) c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,EFFECT_FLAG_CLIENT_HINT,1,coin,63-coin)
end end
function c62892347.distg(e,c) function c62892347.distg(e,c)
local ec=e:GetHandler() local ec=e:GetHandler()
......
...@@ -3,8 +3,10 @@ function c69155991.initial_effect(c) ...@@ -3,8 +3,10 @@ function c69155991.initial_effect(c)
--destroy --destroy
local e1=Effect.CreateEffect(c) local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS) e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetRange(LOCATION_MZONE) e1:SetRange(LOCATION_MZONE)
e1:SetCode(EVENT_CHAIN_SOLVED) e1:SetCode(EVENT_CHAIN_SOLVING)
e1:SetCondition(c69155991.descon)
e1:SetOperation(c69155991.desop) e1:SetOperation(c69155991.desop)
c:RegisterEffect(e1) c:RegisterEffect(e1)
--to grave --to grave
...@@ -19,8 +21,11 @@ function c69155991.initial_effect(c) ...@@ -19,8 +21,11 @@ function c69155991.initial_effect(c)
e2:SetOperation(c69155991.tgop) e2:SetOperation(c69155991.tgop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
end end
function c69155991.descon(e,tp,eg,ep,ev,re,r,rp)
return re:IsHasType(EFFECT_TYPE_ACTIVATE) or re:GetHandler():IsType(TYPE_MONSTER)
end
function c69155991.desop(e,tp,eg,ep,ev,re,r,rp) function c69155991.desop(e,tp,eg,ep,ev,re,r,rp)
if re:IsHasType(EFFECT_TYPE_ACTIVATE) or re:GetHandler():IsType(TYPE_MONSTER) then if e:GetHandler():IsLocation(LOCATION_MZONE) and e:GetHandler():IsFaceup() then
Duel.Destroy(e:GetHandler(),REASON_EFFECT) Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end end
end end
......
...@@ -80,7 +80,7 @@ function c69831560.arcanareg(c,coin) ...@@ -80,7 +80,7 @@ function c69831560.arcanareg(c,coin)
e4:SetOperation(c69831560.desop2) e4:SetOperation(c69831560.desop2)
e4:SetReset(RESET_EVENT+0x17f0000) e4:SetReset(RESET_EVENT+0x17f0000)
c:RegisterEffect(e4) c:RegisterEffect(e4)
c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,0,1,coin) c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,EFFECT_FLAG_CLIENT_HINT,1,coin,63-coin)
end end
function c69831560.macon(e) function c69831560.macon(e)
return e:GetHandler():GetFlagEffectLabel(36690018)==1 return e:GetHandler():GetFlagEffectLabel(36690018)==1
......
...@@ -38,7 +38,7 @@ function c8396952.arcanareg(c,coin) ...@@ -38,7 +38,7 @@ function c8396952.arcanareg(c,coin)
e1:SetOperation(c8396952.speop) e1:SetOperation(c8396952.speop)
e1:SetReset(RESET_EVENT+0x1ff0000) e1:SetReset(RESET_EVENT+0x1ff0000)
c:RegisterEffect(e1) c:RegisterEffect(e1)
c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,0,1,coin) c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,EFFECT_FLAG_CLIENT_HINT,1,coin,63-coin)
end end
function c8396952.speop(e,tp,eg,ep,ev,re,r,rp) function c8396952.speop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler() local c=e:GetHandler()
......
...@@ -10,24 +10,33 @@ function c95714077.initial_effect(c) ...@@ -10,24 +10,33 @@ function c95714077.initial_effect(c)
e2:SetDescription(aux.Stringid(95714077,0)) e2:SetDescription(aux.Stringid(95714077,0))
e2:SetProperty(EFFECT_FLAG_DELAY) e2:SetProperty(EFFECT_FLAG_DELAY)
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH) e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_FIELD) e2:SetType(EFFECT_TYPE_TRIGGER_O+EFFECT_TYPE_SINGLE)
e2:SetRange(LOCATION_SZONE) e2:SetCode(95714077)
e2:SetCode(EVENT_CHAIN_SOLVING)
e2:SetCountLimit(1) e2:SetCountLimit(1)
e2:SetCondition(c95714077.thcon)
e2:SetTarget(c95714077.thtg) e2:SetTarget(c95714077.thtg)
e2:SetOperation(c95714077.thop) e2:SetOperation(c95714077.thop)
c:RegisterEffect(e2) c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetRange(LOCATION_SZONE)
e3:SetCode(EVENT_CHAIN_SOLVING)
e3:SetOperation(c95714077.regop)
c:RegisterEffect(e3)
end end
function c95714077.thcon(e,tp,eg,ep,ev,re,r,rp) function c95714077.regop(e,tp,eg,ep,ev,re,r,rp)
return re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsSetCard(0x58) local c=e:GetHandler()
if re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsSetCard(0x58) and c:GetFlagEffect(95714077)==0 then
c:RegisterFlagEffect(95714077,RESET_EVENT+0x1fe0000+RESET_PHASE+PHASE_END,0,1)
Duel.RaiseSingleEvent(c,95714077,e,r,rp,0,0)
end
end end
function c95714077.filter(c) function c95714077.filter(c)
return c:IsSetCard(0x58) and c:IsLevelBelow(4) and c:IsAbleToHand() return c:IsSetCard(0x58) and c:IsLevelBelow(4) and c:IsAbleToHand()
end end
function c95714077.thtg(e,tp,eg,ep,ev,re,r,rp,chk) function c95714077.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler() local c=e:GetHandler()
if chk==0 then return c:IsFaceup() and c:IsRelateToEffect(e) and not c:IsStatus(STATUS_CHAINING) if chk==0 then return c:IsFaceup() and c:IsRelateToEffect(e)
and Duel.IsExistingMatchingCard(c95714077.filter,tp,LOCATION_DECK,0,1,nil) end and Duel.IsExistingMatchingCard(c95714077.filter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK) Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end end
......
...@@ -57,7 +57,7 @@ function c97452817.arcanareg(c,coin) ...@@ -57,7 +57,7 @@ function c97452817.arcanareg(c,coin)
e2:SetOperation(c97452817.ctop) e2:SetOperation(c97452817.ctop)
e2:SetReset(RESET_EVENT+0x1ff0000) e2:SetReset(RESET_EVENT+0x1ff0000)
c:RegisterEffect(e2) c:RegisterEffect(e2)
c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,0,1,coin) c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,EFFECT_FLAG_CLIENT_HINT,1,coin,63-coin)
end end
function c97452817.spcon(e,tp,eg,ep,ev,re,r,rp) function c97452817.spcon(e,tp,eg,ep,ev,re,r,rp)
return ep==tp and e:GetHandler():GetFlagEffectLabel(36690018)==1 return ep==tp and e:GetHandler():GetFlagEffectLabel(36690018)==1
......
...@@ -52,7 +52,7 @@ function c97574404.arcanareg(c,coin) ...@@ -52,7 +52,7 @@ function c97574404.arcanareg(c,coin)
local e3=e2:Clone() local e3=e2:Clone()
e3:SetCode(EFFECT_CANNOT_MSET) e3:SetCode(EFFECT_CANNOT_MSET)
c:RegisterEffect(e3) c:RegisterEffect(e3)
c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,0,1,coin) c:RegisterFlagEffect(36690018,RESET_EVENT+0x1ff0000,EFFECT_FLAG_CLIENT_HINT,1,coin,63-coin)
end end
function c97574404.dtcon(e) function c97574404.dtcon(e)
return e:GetHandler():GetFlagEffectLabel(36690018)==1 return e:GetHandler():GetFlagEffectLabel(36690018)==1
......
...@@ -234,6 +234,7 @@ EFFECT_FLAG_NO_TURN_RESET =0x400000 -- ...@@ -234,6 +234,7 @@ EFFECT_FLAG_NO_TURN_RESET =0x400000 --
EFFECT_FLAG_EVENT_PLAYER =0x800000 -- 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 --
--========== Codes ========== --========== Codes ==========
EFFECT_IMMUNE_EFFECT =1 -- EFFECT_IMMUNE_EFFECT =1 --
EFFECT_DISABLE =2 -- EFFECT_DISABLE =2 --
...@@ -518,6 +519,7 @@ CHINT_CARD =2 ...@@ -518,6 +519,7 @@ CHINT_CARD =2
CHINT_RACE =3 CHINT_RACE =3
CHINT_ATTRIBUTE =4 CHINT_ATTRIBUTE =4
CHINT_NUMBER =5 CHINT_NUMBER =5
CHINT_DESC =6
--Hint Message --Hint Message
HINTMSG_RELEASE =500 HINTMSG_RELEASE =500
HINTMSG_DISCARD =501 HINTMSG_DISCARD =501
......
...@@ -28,6 +28,9 @@ ...@@ -28,6 +28,9 @@
!system 43 即将产生战斗伤害 !system 43 即将产生战斗伤害
!system 60 正面 !system 60 正面
!system 61 反面 !system 61 反面
!system 62 表效果适用中
!system 63 里效果适用中
!system 64 二重状态
!system 70 怪物卡 !system 70 怪物卡
!system 71 魔法卡 !system 71 魔法卡
!system 72 陷阱卡 !system 72 陷阱卡
......
...@@ -7,5 +7,5 @@ lastdeck = test ...@@ -7,5 +7,5 @@ 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
lastip = 192.168.3.235 lastip = 192.168.2.100
lastport = 7911 lastport = 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