したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

【遊戯王】ADS自作スクリプト投稿スレ

1名無しデュエリスト:2016/07/16(土) 07:42:18 ID:nfNN3lMY0

日本版ADSで使えるスクリプトで自分で組んだものを投稿したり、
組んだスクリプトのバグ修正、裁定やルール面での問題点などアドバイスを求めたり、
スクリプトについて質問したりするスレです。

アニメオリカ、完全オリカ、OCGTCGカードいずれでも構いません。

194名無しデュエリスト:2017/03/01(水) 12:05:58 ID:dNeEepXo0
メタモルFの部分改変でテストしてないから正しいか分からないけど…

eX:SetValue(c2170.efilter)←これを最初に添えた上で

end
function c2170.etarget(e,c)
return c:IsSetCard(0x999) and not IsCode(2170)
end
function c2170.efilter(e,re)
return re:GetOwnerPlayer()~=e:GetHandlerPlayer()
end

これにしてみてはどうだろうか

195名無しデュエリスト:2017/03/02(木) 10:47:32 ID:ZnrbWrT20
>>193
見た感じおかしな所はなかった…
もしかしてe:GetHandler()がX素材となっているそのモンスターになってるんじゃない?

196名無しデュエリスト:2017/03/02(木) 19:26:19 ID:vr7pISjg0
>>194
すみません。同じ様にうまく行きませんでした。

>>195
恐らくそれが原因だと思うのですが、どうやって解決すれば良いか悩んでいます。

197名無しデュエリスト:2017/03/03(金) 01:09:10 ID:N9Rf3kXE0
>>196
EFFECT_TYPE_FIELD+EFFECT_TYPE_XMATERIALでおかしくなるみたい
EFFECT_TYPE_XMATERIALがEFFECT_TYPE_SINGLEみたいなものを内包してるのかな?

198名無しデュエリスト:2017/03/03(金) 16:39:40 ID:vr7pISjg0
>>197
とは言え、EFFECT_TYPE_XMATERIALが無いと機能しないんですよね…
やはり、現状のADSの仕様では無理ということでしょうか

199名無しデュエリスト:2017/03/07(火) 18:34:48 ID:HXmRxERg0
既存のを弄って王国編風死デッキみたいなの作ってみたんだけど・・・需要ある?
https://www.axfc.net/u/3783857

200名無しデュエリスト:2017/03/07(火) 18:38:33 ID:HXmRxERg0
【スクリプト、画像、cdb】
《死のデッキ破壊ウイルス》

199だけど↑入れんの忘れてたスマソ

201名無しデュエリスト:2017/03/12(日) 22:36:35 ID:ZbjKb5r60
今オリカでディニクアビスのサーチと特殊召喚を同時に行うようにして、サーチ範囲を水精鱗かレベル4以下の海竜族にした効果を作りたいんだけどどうスクリプトを変えればいい?

202名無しデュエリスト:2017/03/12(日) 23:33:14 ID:ZbjKb5r60
>>201だけど、
①このカード以外の手札の水属性モンスター1枚を捨てて発動できる。このカードを手札から特殊召喚し、デッキから「水精鱗」モンスターまたはレベル4以下の海竜族モンスター1枚を手札に加える。この効果は相手ターンでも発動できる。②このカードがモンスターゾーンに存在し、相手がカードの効果を発動した場合、手札・フィールドの水属性モンスター1枚を墓地に送って発動できる。その効果と発動を無効にして破壊する。
③このカードが墓地に送られた場合に発動できる。墓地に存在する「水精鱗ーティタニアビス」以外の水属性モンスター1枚を手札に加える。④このカードが墓地に存在する場合、手札の水属性モンスター1枚を捨てて発動できる。墓地に存在するこのカードを手札に加える。
こういう効果にしたいんだけどスクリプト初心者でよくわからないから誰か教えてください

203名無しデュエリスト:2017/03/12(日) 23:56:52 ID:ZbjKb5r60
>>201
特にサーチ対象についてお願いします

204名無しデュエリスト:2017/03/13(月) 02:38:11 ID:8EVjueac0
>>201
(水精鱗 or レベル4以下のやつ)
2つのグループにorをandみたいにつけてそれらをカッコで囲む
だがここで説明するよりもマンジュ・ゴットのスプリクト見てもらえれば早いかも

205名無しデュエリスト:2017/03/13(月) 02:46:39 ID:8EVjueac0
対象取らない吸収の時の者です。
相手の耐性を無視してX素材化する事態が発生することがわかったため
いろいろ錯誤しましたが結局ここに来ちゃいました。
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local og=Duel.SelectMatchingCard(tp,c5.mtfilter,tp,0,LOCATION_MZONE,1,1,nil,e)
if c:IsRelateToEffect(e) and c:IsRelateToEffect(e) and not c:IsImmuneToEffect(e) then
if chk==0 then return og:GetFirst():RemoveOverlayCard(tp,1,REASON_RULE) end
local g=og:GetFirst():GetOverlayGroup()
if og:GetCount()>0 then end
Duel.SendtoGrave(g,REASON_RULE)
end
Duel.Overlay(c,og)
恐らくIsImmuneToEffect(e)で制御するものと思いましたが、うまくいきませんでした
ご指摘をお願いします。

206201です:2017/03/13(月) 06:49:54 ID:ZbjKb5r60
>>204
ありがとうございます。
もう一つ質問なのですが、特殊召喚とサーチを同時に行うにはどうすればいいでしょうか?

207名無しデュエリスト:2017/03/13(月) 07:47:08 ID:nfNN3lMY0
>>206
ディニクアビス自体がサーチと特殊召喚が別の効果だからディニクアビスを弄って同時にするのは難しいと思うよ
同時にするなら、別の元々同時に行うカードを参考にしたほうがいいと思う

208201です:2017/03/13(月) 17:39:54 ID:ZbjKb5r60
>>207そうですね…個人的には真竜皇を参考にしようと思ったのですがどうでしょうか?
サーチ効果はディニクのものをある程度流用できそうなのですが…

209201です:2017/03/13(月) 18:31:53 ID:ZbjKb5r60
↓真竜皇アグニマズドVの①の効果のスクリプトなのですが、各部分の意味を教えてください
function c96746083.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ft=Duel.GetLocationCount(tp,LOCATION_MZONE)
local loc=LOCATION_MZONE+LOCATION_HAND
if ft<0 then loc=LOCATION_MZONE end
local loc2=0
if Duel.IsPlayerAffectedByEffect(tp,88581108) then loc2=LOCATION_MZONE end
local g=Duel.GetMatchingGroup(c96746083.desfilter,tp,loc,loc2,c)
if g:GetCount()<2 or not g:IsExists(Card.IsAttribute,1,nil,ATTRIBUTE_FIRE) then return end
local g1=nil local g2=nil
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
if ft<1 then
g1=g:FilterSelect(tp,c96746083.locfilter,1,1,nil,tp)
else
g1=g:Select(tp,1,1,nil)
end
g:RemoveCard(g1:GetFirst())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
if g1:GetFirst():IsAttribute(ATTRIBUTE_FIRE) then
g2=g:Select(tp,1,1,nil)
else
g2=g:FilterSelect(tp,Card.IsAttribute,1,1,nil,ATTRIBUTE_FIRE)
end
g1:Merge(g2)
local rm=g1:IsExists(Card.IsAttribute,2,nil,ATTRIBUTE_FIRE)
if Duel.Destroy(g1,REASON_EFFECT)==2 then
if not c:IsRelateToEffect(e) then return end
if Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)==0 and Duel.GetLocationCount(tp,LOCATION_MZONE)<=0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) then
Duel.SendtoGrave(c,REASON_RULE)
return
end
local rg=Duel.GetMatchingGroup(c96746083.rmfilter,tp,0,LOCATION_MZONE+LOCATION_GRAVE,nil,tp)
if rm and rg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(96746083,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local tg=rg:Select(tp,1,1,nil)
Duel.HintSelection(tg)
Duel.Remove(tg,POS_FACEUP,REASON_EFFECT)
end
end
end

210201です:2017/03/13(月) 22:41:41 ID:ZbjKb5r60
やっぱり同時化は難しそうなのでやめて、
②このカードがモンスターゾーンに存在し、相手がカードの効果を発動した場合、手札・フィールドの水属性モンスター1枚を墓地に送って発動できる。その効果と発動を無効にして破壊する。
③このカードが墓地に送られた場合に発動できる。墓地に存在する(同名モンスター)以外の水属性モンスター1枚を手札に加える。
という効果をそれぞれパーデク、シャドミを参考にして作ろうと思います

211201です:2017/03/14(火) 00:48:19 ID:ZbjKb5r60
ディニクアビスの特殊召喚効果をフリーチェーン化したのですが、自身の効果にチェーンして重複して発動できてしまいます。
どうスクリプトを修正すればいいでしょうか?
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(122446869,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c122446869.spcost)
e1:SetTarget(c122446869.sptg)
e1:SetOperation(c122446869.spop)
c:RegisterEffect(e1)
function c122446869.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c122446869.cfilter,tp,LOCATION_HAND,0,1,e:GetHandler()) end
Duel.DiscardHand(tp,c122446869.cfilter,1,1,REASON_COST+REASON_DISCARD,e:GetHandler())
end
function c122446869.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c122446869.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
if Duel.SpecialSummon(c,1,tp,tp,false,false,POS_FACEUP)==0 and Duel.GetLocationCount(tp,LOCATION_MZONE)<=0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) then
Duel.SendtoGrave(c,REASON_RULE)
end
end

212名無しデュエリスト:2017/03/14(火) 02:40:22 ID:pi8xWGT.0
1ターンに1度つければいい

213名無しデュエリスト:2017/03/14(火) 04:40:15 ID:nfNN3lMY0
>>211
特殊召喚するタイプの手札誘発カードを参考にするといいですよ

214名無しデュエリスト:2017/03/14(火) 04:43:37 ID:8EVjueac0
エクストラデッキのカードが破壊された時、そのカードを対象に取るようにいたいのですが
効果を作りたいのですが、どうしてもフィールドで破壊されないと参照してくれないんです。
誰かいい方法をご存知でないでしょうか。お願いします。

215名無しデュエリスト:2017/03/14(火) 06:49:15 ID:nfNN3lMY0
>>214
詳細が分からんからなんとも言えないけど、
・IsPreviousLocation(LOCATION_ONFIELD)が破壊される前にフィールドにいることを指してるからここいじるといいかも
・エクストラデッキのカードが破壊された時、そのカードを対象にするカードがOCGにないなら対応してないのかも
・一応確認だけど、その場合対象にとって特殊召喚するなら蘇生制限無視しないとできないよ。
ここらへんじゃない?

216201です:2017/03/14(火) 16:30:37 ID:ZbjKb5r60
>>213
そうですね。
TGワーウルフとかがちょうどよさそうなので参考にしてみたいと思います。

217201です:2017/03/14(火) 17:19:34 ID:ZbjKb5r60
今調べてみたのですが、そもそも根本が違うようです。
ただ、特殊召喚にチェーンした効果にさらにチェーンできるのでこのままにしようと思います。

218201です:2017/03/14(火) 20:25:22 ID:ZbjKb5r60
パーデクの効果を元にコストを「手札・フィールドの水属性モンスター1枚」に変更したいのですがどうすればいいでしょうか?水属性にするところまではできたのですが…

219名無しデュエリスト:2017/03/14(火) 20:54:13 ID:8EVjueac0
>>215
装備カードにしようと思ってました...。
星邪の神喰で対象に取らず別のモンスターを装備できたので自己解決しました。

220201です:2017/03/15(水) 14:13:03 ID:ZbjKb5r60
①:このカード以外の手札の水属性モンスター1枚を捨てて発動できる。このカードをデッキから特殊召喚する。この効果は相手ターンでも発動できる。
という効果を作りたいのですが、どうやったらデッキに存在する場合に効果が発動できるようになりますか?

221201です:2017/03/15(水) 14:22:09 ID:ZbjKb5r60
すいません解決しました。
次は崇光なる宣告者を元にコストを「手札・フィールドの水属性モンスター1枚」に変更し、召喚も無効に出来るようにしたいので協力お願いします。

222201です:2017/03/16(木) 01:28:28 ID:ZbjKb5r60
③:1ターンに1度、手札・フィールドから水属性モンスター1体を墓地へ送って以下の効果を発動できる。
●相手がモンスターの効果・魔法・罠カードを発動した時に発動できる。その発動を無効にし破壊する。
●相手がモンスターを召喚・特殊召喚する際に発動できる。その召喚・特殊召喚を無効にし、そのモンスターを破壊する。
という効果を崇光なる宣告者を元に作りたいのですが、「1ターンに1度」の部分をどうすればいいかわかりません…
あと、コストを手札だけでなくフィールドからも支払えるようにしたいのですがどうすればいいですか?

223名無しデュエリスト:2017/03/16(木) 01:35:55 ID:nfNN3lMY0
「1ターンに1度」とか「フィールドから〇〇を墓地へ送って発動する」とかのテキスト持つカードのスクリプトを何枚か自分で調べてみたらわかると思うよ。
さすがにいちいち全部聞いてたら際限ないし、自分で他のカードのスクリプトから類推した方が早いと思うよ。

224201です:2017/03/16(木) 01:57:50 ID:ZbjKb5r60
>>223手札とフィールドを同時に指定できないんです…

225名無しデュエリスト:2017/03/16(木) 12:06:58 ID:eAoR0UUg0
>>224
手札・フィールドの水モンスターを墓地へ送り……ってまんま餅カエルじゃん(種族と属性は違うけど)
それのScript見ればいいと思うよ
CostのDuel.IsExistingMatchingCardの()内に答えはある
ADS本体のデッキ編集画面で、カード名の欄で「手札・フィールドの」って検索したらいろいろ出てくるからそれを参考にしてもいいかもね


ところで質問なんですが、Mtgの精神隷属器のような相手プレイヤーのコントロールを得ることはできますか?
具体的には相手のカードを自分が発動したり相手の手札からアドバンス召喚させたりしたいのですが

226201です:2017/03/16(木) 12:46:02 ID:ZbjKb5r60
コストの件は解決しました。
しかし、1ターンに1度、2つの効果から1つだけ発動できるようにする方法がシャドーミストや彼岸といった類似効果を見てもよくわかりません。
誰か解説してください…

227名無しデュエリスト:2017/03/16(木) 13:10:17 ID:eAoR0UUg0
>>226
>>222見る限りだとダイガスタ・エメラルみたいな効果でいいのかな?
それ見れ
というかさっきも言ったけど、デッキ編集画面の検索活用した方がいいよ
「1ターンに1度、以下」って入力してみ? いろいろ出てくるから

228201です:2017/03/16(木) 14:13:16 ID:ZbjKb5r60
>>227エメラルとは別物です。
彼岸のSSと墓地効果みたいな感じで、1ターンに片方しか使えない(同名ターン1ではないが)って感じです。

229名無しデュエリスト:2017/03/16(木) 15:03:02 ID:eAoR0UUg0
>>228
うーんエメラルも1ターンに片方しか使えない(同名ターン1ではない)んだけど
Script開いてみたらわかるけど、エメラルの片方ターン1も彼岸のターン1も記述一緒だよ

230201です:2017/03/16(木) 15:19:59 ID:ZbjKb5r60
>>229
e1:SetCountLimit(1,EFFECT_COUNT_CODE_SINGLE)
この部分ですか?

231名無しデュエリスト:2017/03/16(木) 15:21:54 ID:eAoR0UUg0
>>228
おっとごめん>>229間違い
彼岸は同名ターン1だった

ハロウハウンドの記述は
e1:SetCountLimit(1,9342162) ←これの(1)が回数制限、(9342162)がカード名制限になってる

だから単に
e1:SetCountLimit(1) 
をe1とe2にそれぞれ書き込めば同名ターン1じゃない、片方ターン1ができるよ

偉そうなこと言って間違ってたわ……すまない

232名無しデュエリスト:2017/03/16(木) 15:26:52 ID:eAoR0UUg0
>>230
そそ、e1にe1:SetCountLimit(1) を書いて、
e2にe2:SetCountLimit(1) を書けばおk

あとEFFECT_COUNT_CODE_SINGLEはあってもなくても動くよ

233201です:2017/03/16(木) 15:39:15 ID:ZbjKb5r60
>>231
>>232
ありがとうございます!

234名無しデュエリスト:2017/03/16(木) 17:24:17 ID:nfNN3lMY0
>>225
OCGにない効果だから基本的に無理だと思う。
エクスチェンジみたいに手札交換で奪って自分で発動する一連の効果とかならいけるかも

235名無しデュエリスト:2017/03/16(木) 19:14:30 ID:88jP14J.0
一回自分と相手の場と手札とライフを全部入れ換えて
一枚モンスターの召喚、または魔法罠セットしたら元に戻す
モンスターを召喚した場合、召喚権使った事にするために通常召喚封じて
魔法をセットしてた場合元に戻したら発動する
対象はこっちが選ぶ
のが現実的じゃないかなぁ

手札と場は除外ゾーン通して
場はスペースタイムポリス
手札はプレゼント交換
ライフは大逆転クイズ
速攻魔法も伏せたターン使えるよう王家の神殿
召喚封じは絶対不可侵領域
強制発動はおとり人形
対象選択はカンゴルゴーム
でなんとかなりそうな気もする

236名無しデュエリスト:2017/03/16(木) 22:13:00 ID:eAoR0UUg0
>>234 >>235 ありがとうございます
おとり人形がかなりいい感じなのでこれをいじると面白そうですね
ただ、魔法、罠はうまくいったのですがモンスター効果の強制発動の方法が分かりません……

if te:GetCode()==EVENT_FREE_CHAIN and te:IsActivatable(tep)

このあたりに秘密はありそうですが……

あとおとり人形自体が起動効果なのでどうしてもチェーンブロックを作ってしまい、任意の誘発効果をうまく発動できないのも課題です

モンスターの召喚については>>235さんのいう通り全部取っかえるのもありですね
ただそうなると自分の場に伏せておいた罠を向こう側で発動させられないので結局チェーンを組まないおとり人形が必要に……

237名無しデュエリスト:2017/03/17(金) 01:04:02 ID:eAoR0UUg0
処刑人マキュラの「デッキから罠」Verを作りたいのですが、c21593977.operationのどれをいじってもうまくいきません
某世紀末動画さんのシャドーループを見る限り実際にスクリプトは書けそうなんですが

238名無しデュエリスト:2017/03/17(金) 06:37:30 ID:nfNN3lMY0
マキュラはEFFECT_TRAP_ACT_IN_HANDっていう本体側に設定されてる変数?みたいなの使ってるから
マキュラをいじって、「デッキから罠」を作るのは無理だと思う。
シャドール-プは多分発動するカード側に「デッキ内で発動できる」スクリプトが書いてあるから全然仕組みが違う。

やろうとするとトラミッドダンサーあたりのフィールド魔法を罠に書き換えたらいけるかもしれない。
(OCGにはない効果だからちゃんと動く保証はできないけど)

239名無しデュエリスト:2017/03/17(金) 06:48:55 ID:nfNN3lMY0
>>236
「モンスター効果を強制発動させる効果」がそもそもOCGにないから無理なのかもしれません。
誘発効果はそもそも効果の発動条件を元のカードから持ってこないといけないので、ADSの機能的に無理か、できてもかなり難しいと思いますよ。

240名無しデュエリスト:2017/03/17(金) 10:35:59 ID:eAoR0UUg0
>>238 >>239
ありがとうございます。なるほど、ルーツや接触の方を改造していたのか……納得です

おとり人形で罠を強制発動させたところ、罠版に改造した魔法吸収が反応しませんでした
どうやらおとり人形は「発動させる」というより「コピーする」処理に近いのかもしれません
今のカードプールではカードの強制発動は難しいみたいですね

ご助言下さった方々ありがとうございました。

241名無しデュエリスト:2017/03/17(金) 12:35:53 ID:SNt.LAgk0
魔法吸収のwikiみると
効果で発動してるから反応してないだけな気もするが

242名無しデュエリスト:2017/03/17(金) 12:49:50 ID:eAoR0UUg0
>>241
おとり人形のWikiを見る限り、強制発動とは「カードの発動」を指しているようです
しかしADSでは魔法吸収が反応しないため、おそらく効果の発動のみ行っているのでしょう

いずれにせよ、他のカードの効果で「カードの発動」を行わせるのは難しそうです

243201です:2017/03/17(金) 19:13:32 ID:ZbjKb5r60
1ターンに1度ではない、墓地に送られたときに2つの効果から1つを選択して発動できる効果の作り方がよくわかりません…
1ターンに1度ならあるのですが…

244名無しデュエリスト:2017/03/17(金) 20:05:53 ID:OV9uJmcY0
リバイバルゴーレムが参考になるかと

245何度も質問申し訳ないです:2017/03/17(金) 20:44:56 ID:eAoR0UUg0
壊獣の共通の制限
「壊獣」モンスターは自分フィールドに1体しか表側表示で存在できない
を、
「KYOUTOUウォーターフロント」が存在しない場合、「壊獣」モンスターは自分フィールドに1体しか表側表示で存在できない
に変えることはできるでしょうか

SetUniqueOnField だけでは設定できなさそうなので、自壊効果や召喚制限を駆使してみましたがどうも上手くいきません
所有者の刻印で2体並ぶと1体も残らず全部割れちゃうんです
「このカードは「壊獣」モンスターの特殊召喚(※効果ではなく、特殊召喚のための手順)のためにはリリースできない」
も EFFECT_UNRELEASABLE_??? ←これをいじってもできませんでした
特殊召喚制限もミラクル・フリッパーを完コピしてるのになぜか特殊召喚できちゃうし……

246名無しデュエリスト:2017/03/17(金) 21:04:08 ID:OV9uJmcY0
Sinモンスターが参考になるかと

247201です:2017/03/17(金) 21:21:35 ID:ZbjKb5r60
>>244ターン1なんで駄目ですね
1度に一方だけ発動+任意効果でお願いします

248名無しデュエリスト:2017/03/17(金) 21:38:03 ID:OV9uJmcY0
>>247
記述見れば分かると思うけどターン1だけど効果自体は1つの効果に纏められてるから
ターン1取り払って任意にして条件と効果弄ればいけると思うよ

249何度も質問申し訳ないです:2017/03/17(金) 21:42:35 ID:eAoR0UUg0
>>247
>>231にある通り、 SetCountLimit がターン1を制御しているので、それを消せばいいと思うよ

>>245の特殊召喚制限はどうにかできました
しかし
「自分フィールドに」1体しか表側表示で存在できない
>>246さんの言うSinモンスターはちょっとあてにならない気がします
Sinモンスターはどうやら召喚に制限をかけているだけで、同じコントローラーのフィールドで重複したら破壊といった
「自分フィールドに1体しか表側表示で存在できない」
モンスターとは記述の仕方が違うようです
前述の通り、壊獣モンスターは「SetUniqueOnField」で召喚制限と重複制限をかけているのでそれについて詳しい方がいればご教授願います

250名無しデュエリスト:2017/03/17(金) 23:02:26 ID:nfNN3lMY0
>>242
魔法版おとり人形のように
「罠カードの効果で魔法カードをプレイヤーに発動させる」効果がOCGにないので対応してないのかもですね。

251名無しデュエリスト:2017/03/17(金) 23:55:48 ID:nfNN3lMY0
>>249
その下のselfdesのところに重複制限の文章があると思う。
SetUniqueOnFieldはsinに書いてある長いスクリプトを本体側に全部任せてるって感じ
だから、sinのスクリプトを自分フィールド限定にして制限がかかる条件に「〜〜が場にある時」を加えたらいけるかも。
(壊獣の処理結構バグるのにそんなことしたらバグる可能性もあるけど)

252何度も質問申し訳ないです:2017/03/18(土) 00:39:23 ID:eAoR0UUg0
>>251
ああああ見落としてました
無事 SetUniqueOnField なしで重複制限をかけられました。ありがとうございます

ところで>>238さんが言っていた「デッキ内で発動できる」スクリプトってどうやって書くんでしょうか
SetTypeをIGNITTIONにして LOCATION_DECK を追加してもなんかこれじゃないって言うか、シャドーループのように「デッキからフィールドに置いて発動」ができないんです
一応スピードワールド2を今研究中ですが、OCGにない効果だからかすごく難解です……

253201です:2017/03/18(土) 01:05:52 ID:ZbjKb5r60
リバイバルゴーレムの
e:SetLabel(opt)
if opt==1 then
e:SetCategory(CATEGORY_SPECIAL_SUMMON)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
elseif opt==2 then
e:SetCategory(CATEGORY_TOHAND)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler(),1,0,0)
else
e:SetCategory(0)
end
の部分にはどういう意味があるんですか?

254名無しデュエリスト:2017/03/18(土) 01:23:10 ID:eAoR0UUg0
つ http://adsmod.cswiki.jp/index.php?%E5%8A%B9%E6%9E%9C%2F%E5%9F%BA%E6%9C%AC

SetCategoryとかSetOperationInfoは「この効果は〜という効果です」ってラベルを貼り付けるようなもん
SetCategory(CATEGORY_SPECIAL_SUMMON)なら「この効果のカテゴリは”特殊召喚”です」って意味
他のカードに「特殊召喚した時、する時」の発動条件があればこれをもとにして判定する
……んだと思う。文系なたとえで申し訳ないけど

なくても一応は動くから、最初はあんまり意識しなくていい
元にしたスクリプトがあったらそれを貼り付けとけばおk

255名無しデュエリスト:2017/03/18(土) 01:28:23 ID:nfNN3lMY0
>>252
トラミッドダンサーとかで使われてるDuel.MoveToFieldをcostの段階で処理してるとかしたらできるかも。

256201です:2017/03/18(土) 01:36:30 ID:ZbjKb5r60
なんかわかりにくいのでリバイバルゴーレムのtarget、operationのどこを変えれば墓地から蘇生・サルベージする効果になるか教えてください…

257名無しデュエリスト:2017/03/18(土) 01:39:45 ID:eAoR0UUg0
>>255
完コピして数値をちゃんと置換しても
「Action is not allowed here.」
と出てしまいます……
CostとOperationでは記述の仕方が違うのでしょうか

258名無しデュエリスト:2017/03/18(土) 01:43:53 ID:eAoR0UUg0
>>256
リバイバルゴーレムは元から蘇生・サルベージする効果なんだけど……?
Duel. の後に続くのが実際の処理
SendtoHandなら手札に送るしSpecialSummonなら特殊召喚

259201です:2017/03/18(土) 01:54:01 ID:ZbjKb5r60
>>258
他のカードを指定したいんです…

260名無しデュエリスト:2017/03/18(土) 01:56:49 ID:eAoR0UUg0
>>255
無事>>257を乗り越えて発動できましたが、残念なことにシャドーループの動きにはなりませんでした
シャドーループは
「デッキからシャドーループがフィールドに置かれ、デッキをシャッフル(亜白龍の特殊召喚のように、カードの発動や効果音もなくいきなり行われる)

シャドーループの発動(コーンという効果音とDuel.Hintの時のアレ)」
なんですが、Costの段階でDuel.MoveToFieldを処理しても
「デッキからコーンという効果音と共にカードが発動

カードがフィールドに置かれ、デッキをシャッフル

効果処理」
となってしまい、なんか違います

261名無しデュエリスト:2017/03/18(土) 02:05:08 ID:eAoR0UUg0
>>259
Duel.SpecialSummon(e:GetHandler(),0,tp,tp,false,false,POS_FACEUP)
この()の中身で特殊召喚するカードとか、する場所とか、表示形式を決めてる
どの数値がどれを指してるかはさっきあげたWikiで探してね

ちなみにe:GetHandler()は自分自身、つまり発動しているこのカード(リバイバルゴーレム)のこと
これの代わりにtcとか適当な文字を置いて、その前の時点で
local tc=Duel.IsExistingMatchingCard(ここはさっきみたいに決められた数値を入れる)
とかでtcがどういうカードかを定義しておけばいい

まあScript漁りまくって独学で得た知識だから間違ってるかもだけど

262201です:2017/03/18(土) 02:05:59 ID:ZbjKb5r60
>>261
ありがとうございます!

263名無しデュエリスト:2017/03/18(土) 02:13:05 ID:rAlYLzPM0
デッキから発動ならデッキの該当カードに直接デッキ用の効果与えたら?
効果は自身の発動時の効果で

264名無しデュエリスト:2017/03/18(土) 02:22:45 ID:eAoR0UUg0
>>263
そのデッキ用の効果ってのがちょっと上手くいかないんです
すごく短いので載せます
function c2000000005.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCost(c2000000005.cost)
e1:SetOperation(c2000000005.op)
c:RegisterEffect(e1)
local e2=e1:Clone()
e1:SetRange(0xf7)
c:RegisterEffect(e2)
end
function c2000000005.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToGraveAsCost() end
Duel.MoveToField(e:GetHandler(),tp,tp,LOCATION_SZONE,POS_FACEUP,true)
end
function c2000000005.op(e,tp,eg,ep,ev,re,r,rp,chk)
Duel.Draw(tp,2,REASON_EFFECT)
end
これで全部です
手札からもデッキからも発動はできますが、デッキからの発動がシャドーループと全然違うのですっきりしないのです

265201です:2017/03/18(土) 02:41:25 ID:ZbjKb5r60
なんかうまくいきません…
「墓地に存在する同名カードを除く水属性モンスター」を()に指定したい場合はどうすればいいのでしょうか?

266名無しデュエリスト:2017/03/18(土) 02:50:35 ID:eAoR0UUg0
餅カエル辺りのScript参照
ADSのデッキ編集画面で「墓地の水」って検索したら色々出てくるよ
Targetの取り方が分からないだろうとは思うけど、とりあえず餅カエルをコピペして勉強してみて

267201です:2017/03/18(土) 03:11:20 ID:ZbjKb5r60
--special summon
local e6=Effect.CreateEffect(c)
e6:SetDescription(aux.Stringid(122446869,0))
e6:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e6:SetCode(EVENT_TO_GRAVE)
e6:SetTarget(c122446869.target)
e6:SetOperation(c122446869.operation)
c:RegisterEffect(e6)
function c122446869.grfilter(c)
return c:IsAttribute(ATTRIBUTE_WATER) and c:IsAbleToHand and LOCATION_GRAVE
end
function c122446869.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local opt=0
local c=e:GetHandler()
local b1=Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
local b2=c:IsAbleToHand()
if b1 and b2 then
opt=Duel.SelectOption(tp,aux.Stringid(122446869,1),aux.Stringid(122446869,2))+1
elseif b1 then
opt=Duel.SelectOption(tp,aux.Stringid(122446869,1))+1
elseif b2 then
opt=Duel.SelectOption(tp,aux.Stringid(122446869,2))+2
end
e:SetLabel(opt)
if opt==1 then
e:SetCategory(CATEGORY_SPECIAL_SUMMON)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c122446869.grfilter(),1,0,0)
elseif opt==2 then
e:SetCategory(CATEGORY_TOHAND)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,c122446869.grfilter(),1,0,0)
else
e:SetCategory(0)
end
end
function c122446869.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if e:GetLabel()==1 then
if c:IsRelateToEffect(e) then
Duel.SpecialSummon(c122446869.grfilter,0,tp,tp,false,false,POS_FACEUP)
end
elseif e:GetLabel()==2 then
if c:IsRelateToEffect(e) then
Duel.SendtoHand(c122446869.grfilter,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,c)
end
end
end

量が多すぎてどこがエラー起こしてるかわからない…
誰か助けてください

268201です:2017/03/18(土) 03:13:30 ID:ZbjKb5r60
ここを追加する前は問題なかったのでここに問題あるとは思います。

269名無しデュエリスト:2017/03/18(土) 10:42:18 ID:eAoR0UUg0
いきなり完コピじゃなくて、少しずつ貼り付ける+削る
そうすればどこに問題があるか分かる
そしてエラーログを見よう
何行目にどんな問題があるか示してくれるから

270201です:2017/03/18(土) 12:10:51 ID:ZbjKb5r60
エラーログがなんか同じやつがいっぱい(callcardなんたら?ってやつ)でよくわかりません…
わかった場所が
return c:IsAttribute(ATTRIBUTE_WATER) and c:IsAbleToHand and LOCATION_GRAVE
end
のどこかくらいしか…

271名無しデュエリスト:2017/03/18(土) 12:17:34 ID:eAoR0UUg0
return c:IsAttribute(ATTRIBUTE_WATER) and c:IsAbleToHand and LOCATION_GRAVE
end
のどこかまでわかってたら、その中身をちょっとずつ削る
エラーログはなぜかデュエル中は全部表示されない(上に同じ奴がいっぱい出る)から、サレンダーしてソリティアの画面に戻ると上の部分が見える

見た感じカードの条件(.filterあたり)だね、そしたらそれは結構いろんなカードが持ってるから、「墓地のカードを手札に戻す」効果のカードを探して
似た部分をよく比較して組み合わせるんだ

272名無しデュエリスト:2017/03/18(土) 15:42:08 ID:rAlYLzPM0
>>264
e1:SetRange(LOCATION_DECK)
コレ入れてください

273名無しデュエリスト:2017/03/18(土) 15:55:35 ID:rAlYLzPM0
ああ、やっと理解しました。
少し調べてきます。

274名無しデュエリスト:2017/03/18(土) 16:06:46 ID:rAlYLzPM0
>>264
魔力の枷で使われているEFFECT_ACTIVATE_COSTでDuel.MoveToFieldをコストにするのはどうでしょう

275名無しデュエリスト:2017/03/18(土) 17:23:58 ID:eAoR0UUg0
>>274
うおおこれぞかなり求めていたものに近いです
しかし魔力の枷の対象が「プレイヤーの行動全般」なので、これを「特定のカードの発動」にどうすれば対象を移せるのか……
そもそもFunction内にe:GetHandler()を入れるすべがわかりません
e:GetHandler()はあらゆるカードに使われまくってて、どれを調べればいいのか見当もつかないのです
あるいは.filter内にe:GetHandler()を入れる方法です

276名無しデュエリスト:2017/03/18(土) 18:06:45 ID:f8HTCz560
なんかしばらく見てないうちにごちゃごちゃしてきたな…
ZbjKb5r60
>>267
eAoR0UUg0
・シャドーループみたいなデッキから発動のやり方
現状の質問はこんな感じ?

277名無しデュエリスト:2017/03/18(土) 18:19:35 ID:eAoR0UUg0
です。
魔力の枷(EFFECT_ACTIVATE_COST)というすごい近いものを教えていただいたんですが、
この定数なんだか「カード」にかけられないみたいで
EFFECT_SPSUMMON_COST や EFFECT_ATTACK_COST なんかはEFFECT_TYPE_SINGLEにしてやればカード自身がそれに準じてくれるんですが
これはどうもプレイヤーを対象にして行われる効果な(しかもACTIVATE全体だから.filterもできないっぽい)のでかなり難儀しているところです
「特定のカード(召喚や発動に対してではなく、カードの種族や属性やカード名)の発動にコストを課す」効果が他にあれば……

278名無しデュエリスト:2017/03/18(土) 18:27:41 ID:f8HTCz560
>>267
見た限りだと
・grfilter内の[c:IsAbleToHand]の後に括弧が抜けてる
・同行の[and LOCATION_GRAVE]は明らかに記述間違い
・operation内の特殊召喚、手札に加える部分の記述がおかしい
関数、引数、論理演算について基本的なことを調べる事をオススメする

279名無しデュエリスト:2017/03/18(土) 18:39:48 ID:eAoR0UUg0
魔力の枷から効果発動にコストを課す所だけ抜き出してみました
function c2000000005.initial_effect(c)
--Activate
〜〜e1は発動なので省略〜〜
--activate cost
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_ACTIVATE_COST)
e2:SetRange(LOCATION_SZONE)
e2:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e2:SetTargetRange(1,1)
e2:SetTarget(c2000000005.actarget)
e2:SetOperation(c2000000005.costop)
c:RegisterEffect(e2)
end
function c2000000005.actarget(e,te,tp)
return te:GetHandler():IsLocation(LOCATION_HAND)
end
function c2000000005.costop(e,tp,eg,ep,ev,re,r,rp)
Duel.PayLPCost(tp,500)
end
どうやらプレイヤーを対象にしているようですが……どこをどう攻めたらいいか全くわかりません
類似効果のカードがあれば参考にもできましょうが

280名無しデュエリスト:2017/03/18(土) 18:50:28 ID:f8HTCz560
>>279
SetRangeをLOCATION_DECKにして
actarget内の[te:GetHandler():IsLocation(LOCATION_HAND)]を
[te:GetHandler()==e:GetHandler()]にしてみたらどうかな?
駄目そうなら[e2:SetLabelObject(eXXXX)]で発動したい効果を渡して
[te==e:GetLabelObject()]

281名無しデュエリスト:2017/03/18(土) 19:08:52 ID:eAoR0UUg0
>>280
うーむこういうことでしょうか
  local e2=Effect.CreateEffect(c)
  〜〜略〜〜 
  e2:SetRange(LOCATION_DECK)
  e2:SetLabelObject(e3)
  c:RegisterEffect(e2)
  local e3=Effect.CreateEffect(c)
  e3:SetType(EFFECT_TYPE_ACTIVATE)
  e3:SetCode(EVENT_FREE_CHAIN)
  e3:SetOperation(c2000000005.op)
  c:RegisterEffect(e3)
end
function c2000000005.actarget(e,te,tp)
  return te==e:GetLabelObject()
end
function c2000000005.costop(e,tp,eg,ep,ev,re,r,rp)
  Duel.PayLPCost(tp,500)
end
function c2000000005.op(e,tp,eg,ep,ev,re,r,rp,chk)
  Duel.Draw(tp,2,REASON_EFFECT)
end

[e1][e3]共に発動はできるのですが、コストは課せられていませんでした
[e2]のEFFECT_FLAG_PLAYER_TARGETを消してもコストはありませんでした
それともSetLabelObjectで効果の渡し方を間違えているとか……?

282名無しデュエリスト:2017/03/18(土) 19:25:56 ID:f8HTCz560
>>281
とりあえず自分で作ってみた
e1は普通の発動時の効果とする

local e2=e1:Clone()
e2:SetRange(LOCATION_DECK)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_ACTIVATE_COST)
e3:SetRange(LOCATION_DECK)
e3:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e3:SetTargetRange(1,1)
e3:SetTarget(c2000000005.actarget)
e3:SetOperation(c2000000005.costop)
c:RegisterEffect(e3)
e3:SetLabelObject(e2)
〜〜
function c2000000005.actarget(e,te,tp)
return te==e:GetLabelObject()
end
function c2000000005.costop(e,tp,eg,ep,ev,re,r,rp)
Duel.MoveToField(e:GetHandler(),tp,tp,LOCATION_SZONE,POS_FACEUP,true)
end

こんな感じで

283名無しデュエリスト:2017/03/18(土) 19:41:13 ID:eAoR0UUg0
>>282
ウワアアアアアできましたできました!ありがとうございます!
わざわざ書いてくださって……本当に感謝します!まさかe:GetLabelObjectが胆だったとは

ええと、何度も申し訳ないのですが、もう一つよろしいでしょうか……
Functionを入れるべきところにe:GetHandler()、つまり発動しているカード自身を入れたくなったときはどうしたらいいのでしょうか
あるいは.filter内にe:GetHandler()を入れる方法です。連続して頼むのは恐縮ですが……どのカードのスクリプトを参考にすればいいかだけでも構わないので

284名無しデュエリスト:2017/03/18(土) 20:05:02 ID:OV9uJmcY0
分からんけどデッキのカード全体に発動できる効果と発動する際の処理効果付与すればいいんじゃない?

285名無しデュエリスト:2017/03/18(土) 20:12:26 ID:f8HTCz560
>>283
Functionを入れるべきところ…?
済まないが質問がよく分からん…
一応言っておくがe:GetHandler()はCard型だから関数ではないぞ

.filterとかは自分で宣言して作ってる関数だから引数は何でも入れられる
例えば
function cX.filter(c,tc)
return c:GetAttack()==tc:GetAttack()
end
〜〜
cX.filter(sc,e:GetHandler())
とか
function cX.filter(c,e)
return c:GetAttack()==e:GetHandler():GetAttack()
end
〜〜
cX.filter(sc,e)
とか
質問の答えはこれで良いのかな…?

286名無しデュエリスト:2017/03/18(土) 20:20:30 ID:eAoR0UUg0
>>285
質問の仕方が悪かったみたいです、すみません
例えば
Duel.GetMatchingGroup(cX.filter,tp,LOCATION_HAND,0,nil,e,tp)
これの[cX.filter]の所に[e:GetHandler()]のような、「発動しているカード自身」を入れたいんです
自分Script漁って独学しただけでプログラムとかはほとんどずぶの素人なんで、言ってることがめちゃくちゃだとは思いますが、大体こういうことです

287名無しデュエリスト:2017/03/18(土) 20:34:23 ID:f8HTCz560
>>286
理解した
結論から言うとできない
ざっくり説明すると、Duel.GetMatchingGroup()の最初に入れるモノは関数じゃないといけない
関数型→cX.filter, Card.IsFaceup 等
e:GetHandler()は関数型ではなくCard型なので入れられない

多分e:GetHandler()をどうこうしたいんじゃないかと思うんだけど
それって[e:GetHandler():IsSpecialSummonable()]とかでできないかな?

288名無しデュエリスト:2017/03/18(土) 21:03:19 ID:eAoR0UUg0
>>287
なるほど、すると.filterの方で何とかするしかないのですね
しかし肝心のその方法がいまいち掴めず……
[e:GetHandler():IsSpecialSummonable()] これはどういった時に使うのでしょう?
localやreturn c==の直後に置くのでしょうか……?

289名無しデュエリスト:2017/03/18(土) 21:11:26 ID:Gzo3pjw20
>>282
このスクリプトを丸々コピーして使ったところ
発動時の段階でデッキから発動はできるのですが、カードが非公開情報のままになっており
複数種類デッキ発動が可能なカードがある場合、カードの判別ができません
どのようにしたら公開情報化できるでしょうか
アドバイスお願いします

290名無しデュエリスト:2017/03/18(土) 22:01:08 ID:f8HTCz560
>>288
普通使うのはIsCanBeSpecialSummonedだった
因みにこれはトラゴエディアとかの発動して自身をSSする効果に使われてる
取りあえずあなたは型について調べましょう

>>289
しら管
えっとマジでどうしよう…

291名無しデュエリスト:2017/03/18(土) 22:11:00 ID:Gzo3pjw20
>>290
デッキに存在する場合の永続効果でデッキを常に参照してみる的なことに挑戦してみてるんですがさっぱりなので・・・

292名無しデュエリスト:2017/03/18(土) 22:18:24 ID:f8HTCz560
>>291
永続効果でおとり人形と同じスクリプト使って発動はできなくはないんだけど、おとり人形の効果による発動に対してはチェーンできないんだよね…

293名無しデュエリスト:2017/03/18(土) 22:21:20 ID:rAlYLzPM0
>>289
デッキを1回公開すれば次のシャッフルまで公開情報になります。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板