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

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

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

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

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

325201です:2017/03/19(日) 23:40:21 ID:ZbjKb5r60
>>321
場所が両方とも墓地なんです…
墓地のカードを
・蘇生
・サルベージ
で選択したいのですが…

326名無しデュエリスト:2017/03/19(日) 23:47:04 ID:Gzo3pjw20
一応仮で作りました
サーチ対象はデッキでモンスター以外の指定もなくそこそこ重大な不具合がありますが使えないことはないです
必要なところを書き換えたら使えるようになると思います
http://ux.getuploader.com/sinsiki_ads/download/1/c1500.lua

327名無しデュエリスト:2017/03/19(日) 23:48:33 ID:Gzo3pjw20
>>326>>325です
連投失礼しました

328201です:2017/03/20(月) 00:26:21 ID:ZbjKb5r60
>>326
ありがとうございます!
ところで、カードIDなどが合っているのに画像が表示されない(新しく追加したオリカのみ)の場合はどうすればいいでしょうか…

329名無しデュエリスト:2017/03/20(月) 00:36:29 ID:Gzo3pjw20
>>328
拡張子が違うとかサイズが違うとかではないでしょうか?

330201です:2017/03/20(月) 01:40:17 ID:ZbjKb5r60
ファイルサイズの問題かもしれません。
一度サイズを圧縮してみます。

331201です:2017/03/20(月) 02:27:35 ID:ZbjKb5r60
解決しました。

332201です:2017/03/20(月) 02:35:37 ID:ZbjKb5r60
--search
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(122446869,0))
e2:SetCategory(CATEGORY_TOHAND+CATEGORY_SEARCH)
e2:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetTarget(c122446869.thtg)
e2:SetOperation(c122446869.thop)
c:RegisterEffect(e2)
--Negate
さっきなぜか他のカードの効果にチェーンして特殊召喚したところ、サーチ効果が発動しませんでした。
原因わかりますか?

333名無しデュエリスト:2017/03/20(月) 08:20:01 ID:Gzo3pjw20
>>332
e2:SetProperty(EFFECT_FLAG_DELAY)を追加してみてはどうでしょう?

334201です:2017/03/20(月) 12:54:33 ID:ZbjKb5r60
>>333
解決しました。
ありがとうございました。

335名無しデュエリスト:2017/03/25(土) 21:53:31 ID:dtHavneY0

function c3006.filter(c)
return c:IsCode(78785392) and c:IsAbleToHand()
end
function c3006.target (e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c3006.filter,tp,LOCATION_DECK,0,1,nil) end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
end

function c3006.target (e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c3006.filter,tp,LOCATION_DECK,0,1,nil) end
local sg=Duel.GetMatchingGroup(c3006.filter,tp,LOCATION_DECK,0,nil)
Duel.SetOperationInfo(0,CATEGORY_REMOVE,sg,sg:GetCount(),0,0)
end
function c3006.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local g=Duel.SelectMatchingCard(tp,c3006.filter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.SendtoHand(g,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,g)
Duel.BreakEffect()
local sg=Duel.GetMatchingGroup(c3006.filter,tp,LOCATION_DECK,0,nil)
Duel.Remove(sg,POS_FACEDOWN,REASON_EFFECT)
end
end

デッキから花合わせを手札に加えて魔法・罠カードをすべて裏側表示除外しようとしたら、
除外とサーチどっちも花合わせになってしまいます
また一部をいじっても今度はどっちも魔法・罠になってしまいますどうすればいいでしょうか?

336名無しデュエリスト:2017/03/26(日) 20:24:12 ID:dNeEepXo0
データベースで登録した文字列を情報ウインドウで表示するのは「Duel.Hint〜」で合ってるよね?
この情報を、効果処理時じゃなくてモンスター召喚時や魔法発動時に表示するのはどうしたら良いだろう?

一応、想定としてはアニメで口上が設定されてるモンスターを召喚する時に、フィールドにカードが置かれる前に口上が表示される…って感じなんだけど…

337名無しデュエリスト:2017/03/27(月) 00:14:43 ID:zDWnMaCE0
>>335
まず自分で何書いてるか理解しましょう

>>336
フィールドで置かれる前の全てのタイミングに対応するのは難しいんじゃないかな
一応、融合召喚やX召喚なら素材を選択する部分のスクリプトをそのカード側に書いてる事があるから、それと同じ様なの作って最後に口上を表示させる事はできる

338名無しデュエリスト:2017/03/27(月) 00:22:29 ID:dNeEepXo0
>>337
フィールドに置かれる前はやっぱり難しいか…助言ありがとうございました

339名無しデュエリスト:2017/03/27(月) 00:26:12 ID:zDWnMaCE0
>>336
やっぱできるかも
トーチゴーレムにSSする際の処理があるからそこに向上入れれば、SSする度に口上が出る
融合召喚限定とかのやり方は試してないからわかんね

340名無しデュエリスト:2017/03/27(月) 15:34:37 ID:rAlYLzPM0
>>336
魔法罠の場合は発動コストで表示
モンスターの場合は召喚コスト(タイラントドラゴン)等に組み込む
チェーンブロックを作らない召喚(トーチ・ゴーレム、ゴウフウ)ならその処理に組み込む

341名無しデュエリスト:2017/03/27(月) 23:03:13 ID:vr7pISjg0
ダイヤウルフの魔法版のオリカを作っているのですが、ダイヤウルフのスクリプトを
そのまま流用すると自身を対象に選択できてしまいます。

g2=Duel.SelectTarget(tp,aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,g1:GetFirst())
の最後の引数をいじれば良いは分かるのですが、どういじれば良いか分かりません

function c2261.desfilter(c)
return c:IsFaceup() and c:IsSetCard(0x798)
and Duel.IsExistingTarget(aux.TRUE,0,LOCATION_ONFIELD,LOCATION_ONFIELD,1,c)
end

function c2261.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return false end
if chk==0 then return Duel.IsExistingTarget(c2261.desfilter,tp,LOCATION_ONFIELD,0,1,e:GetHandler()) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local g1=Duel.SelectTarget(tp,c2261.desfilter,tp,LOCATION_ONFIELD,0,1,1,e:GetHandler())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)

local g2=Duel.SelectTarget(tp,aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,g1:GetFirst())
g1:Merge(g2)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g1,g1:GetCount(),0,0)
end
function c2261.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetChainInfo(0,CHAININFO_TARGET_CARDS):Filter(Card.IsRelateToEffect,nil,e)
Duel.Destroy(g,REASON_EFFECT)
end

342名無しデュエリスト:2017/03/28(火) 00:09:16 ID:2TEt0LwM0
>>341
SelectTargetの第8引数はCardだから2枚以上は与えられない
自身と先に選択したカードが選択されなければ良いからもう1個filter作って自身を対象外にすれば良い

343名無しデュエリスト:2017/03/28(火) 12:12:56 ID:vr7pISjg0
>>342
g2=Duel.SelectTarget(tp,c2261.filterX,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,1,g1:GetFirst())

見たいな感じでしょうか?
filter関数の中で、e:getHnadler()が使用できませんが、どうしたら良いでしょう?

344名無しデュエリスト:2017/03/28(火) 21:10:36 ID:sJRj/Fwg0
>>343
filterで使う第2引数以降の引数はSelectTargetの第9以降の引数で渡す
X.filter(c,tc) なら 〜SelectTarget(〜,1,1,g1:GetFirst(),e:GetHandler())
とか

346名無しデュエリスト:2017/03/31(金) 01:58:09 ID:8EVjueac0
デストーイマッチみたいに1体以上対象になったカードを全てを墓地へ送る効果を
作りたいのですが1体しか適応できません。どうすればいいでしょうか。

347名無しデュエリスト:2017/03/31(金) 16:58:52 ID:Gzo3pjw20
罠カードの発動にチェーンして発動できるカードで、
自分フィールドの表側表示のカードを任意の枚数選択して、
その枚数以下のカードを相手フィールドのカードから選んで、
選んだカードすべてを素材に自身をX召喚するカードを作っているのですが、
相手のカードを選んだ段階でフリーズしてしまいます
アドバイスお願いします
https://www.axfc.net/u/3792502

348名無しデュエリスト:2017/03/31(金) 19:16:40 ID:AtCUteXM0
>>346
マーチとリニッチが混ざってるぞ
マーチは複数体が対象になってる時はその内の1体を選ぶ処理が入ってるだろ
その部分を無くして、墓地へ送る部分を良い感じにすれば良い

>>347
フリー…ズ…?(信じられないものを見る目
魔法罠にX素材を与えるみたいな原理的におかしい事してないとフリーズはしないはずなんだが…
とにかく途中まで処理がうまく行ってるならその後に問題があるはずだからよく見なおせ

349名無しデュエリスト:2017/03/31(金) 22:56:47 ID:8EVjueac0
>>346 select消したりしても、狡猾な落とし穴で実験して
墓地に逝くのは1体のみでした。すべての対象のモンスターを
墓地へ送らせる方法は無いでしょうか?

350名無しデュエリスト:2017/04/02(日) 00:16:17 ID:8EVjueac0
>>346
あの後何とか成功しました、みなさんありがとうございました。

351名無しデュエリスト:2017/04/03(月) 11:33:47 ID:EzJE9BJU0
脳開発研究所の「LPを払うコストを代替する」効果って「手札を捨てるコストを代替する」に変更することはできますか?
EFFECT_LPCOST_REPLACE でLPのコストは変えられたんですが、手札コストに干渉する定数が見当たりません

352名無しデュエリスト:2017/04/09(日) 13:33:24 ID:YmKAqde.0
融合モンスターの記述を改造してリンク召喚を再現できないか見ているのですが、
c:IsHasEffect(6205579)
↑この記述はどんな意味を持っているのでしょうか?
融合素材の条件をチェックする関数にてこの条件に合致するモンスターが一律で条件から外されているように見えるのですが、
EFFECT系の定数にこの値が入っているものはありませんでした。
この条件に合致するモンスターが融合素材から外される理由が知りたいです。

どうぞ、宜しくお願い致します。

353名無しデュエリスト:2017/04/14(金) 00:34:03 ID:6OiG1vXo0
内輪対戦用に三幻魔を色々といじってるんだが
現環境で三幻魔を墓地から特殊召喚するとしたらコストはどれくらいにするのが適当かな?

アニメではウリアを墓地から特殊召喚するのに手札の罠カード1枚を墓地に送るだったけど
さすがに1枚じゃ安過ぎるよね
とりあえず

・ラビエル → 自分フィールドの悪魔族モンスター2体リリース。ただし、自分フィールド上に他のモンスターもいる場合ラビエルはこのターン攻撃不可

・ハモン → 手札の魔法カード2枚を墓地に送る。ただし、自分フィールド上に他のモンスターもいる場合ハモンはこのターン攻撃不可

・ウリア→手札の罠カード2枚を墓地に送る。ただし、自分フィールド上に他のモンスターもいる場合ウリアはこのターン攻撃不可

で作ってみたんだが・・・。

354名無しデュエリスト:2017/04/14(金) 00:38:21 ID:6OiG1vXo0
あ、言い忘れた。
OCGのエイリアスカードじゃなく別物カードで作ってるので
暗黒の召喚神や失楽園の恩恵はなしです。。。

355名無しデュエリスト:2017/04/14(金) 16:15:03 ID:.m1Z9OFE0
>>353
闇属性は墓地送り簡単だからラビエルはちとコスト安いかも

356名無しデュエリスト:2017/04/14(金) 18:39:03 ID:Ba44AsM20
アニメにおける三幻魔の自己蘇生能力持ちはウリアだけだったはずだが

しかし、ラビエルの蘇生コスト軽すぎなんだが
終焉の焔が実質ラビエルの蘇生カードになるんだが
幻魔トークン生きてればそれも使える

ウリアは2枚も墓地に罠送ったらダメだろw
2000も強化されてんぞ

ハモンは他にモンスターがいたらメイン2に守備表示で蘇生して壁にすればいいだけだから
攻撃不可のデメリットがあまり意味ない

357名無しデュエリスト:2017/04/14(金) 20:42:43 ID:OV9uJmcY0
OCG的に考えると一度正規召喚しないと蘇生制限うぃ満たせず蘇生できないので別に1枚だろうとコスト重くは思えない
3アド消費して身代わり耐性と思えば決して安くは無いし

ただ、蘇生制限満たさなくても蘇生できるとなるといかに幻魔を墓地送り蘇生するかって感じになってそれ幻魔としてどうなのって思う
墓地から出すモンスターってコンセプトにしたいならそれでもいいだろうけど 

あとスレチな気がした

358名無しデュエリスト:2017/04/14(金) 21:21:43 ID:6OiG1vXo0
>>355-357
thx
とても参考になった

現環境だと三幻魔はコストの割に弱すぎるので
制限カード仕様として耐性を強化した上でアーミタイルをもう少し出し易くするにはどういう仕様にすればいいか考えてたらとりあえずこんな感じになった次第
確かにテストプレイしててラビエルはちょっと簡単に出過ぎるなぁという印象はあった

もうちょっと練り直してみるわ
ありがと

359名無しデュエリスト:2017/04/16(日) 00:40:36 ID:YmKAqde.0
同一チェーン内で複数回発動できない効果を作ろうとしているのですが、
同一チェーンで複数発動できてしまいます。

SetPropertyにEFFECT_FLAG_CHAIN_UNIQUEを設定しても効果が無く、
《醒めない悪夢》からそれっぽい記述を移植してみたらエラーを吐いてしまいました。
どのように記述すればこのような回数制限を実装できるのかが分かりません。
どなたかご教授をお願い致します。

local e5=Effect.CreateEffect(c)
e5:SetDescription(aux.Stringid(130000001,0))
e5:SetType(EFFECT_TYPE_QUICK_O)
e5:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_FUSION_SUMMON)
e5:SetCode(EVENT_FREE_CHAIN)
e5:SetProperty(EFFECT_FLAG_CHAIN_UNIQUE)
e5:SetHintTiming(0,0x1c0)
e5:SetRange(LOCATION_EXTRA)
e5:SetCondition(c130000001.sprdon)
e5:SetOperation(c130000001.sprdop)
c:RegisterEffect(e5)
function c130000001.sprdon(e,tp,eg,ep,ev,re,r,rp)
if c==nil then return true end
local tp=c:GetControler()
local selfExist = not Duel.IsExistingMatchingCard(c130000001.sprdfilter,tp,LOCATION_ONFIELD,0,1,nil)
--醒めない悪夢からの移植記述1
local selfNotChain = e:GetHandler():GetFlagEffect(130000001)==0
return selfExist and selfNotChain
--醒めない悪夢からの移植記述2(この行でエラー発生)
e:GetHandler():RegisterFlagEffect(130000001,RESET_CHAIN,0,1)
end
function c130000001.sprdfilter(c)
return c:IsCode(130000001) and c:IsFaceup()
end
function c130000001.sprdop(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():IsRelateToEffect(e) then
if Duel.SpecialSummon(e:GetHandler(),SUMMON_TYPE_FUSION,tp,tp,true,false,POS_FACEUP_ATTACK)~=0 then
e:GetHandler():CompleteProcedure()
end
end
end

360名無しデュエリスト:2017/04/18(火) 21:04:54 ID:8EVjueac0
EFFECT_HAND_SYNCHROで手札をS素材にできると聞いたけどどう使えばいいかわからないです。
参考になりそうなスクリプトは無いでしょうか?

361名無しデュエリスト:2017/04/18(火) 21:59:13 ID:v/JKE9Hg0
>>359
宝玉の集結のスクリプト見てみた(醒めない悪夢以外に同一チェーン上で同じ効果のみを発動できなくする効果が無かった)
君はとりあえず他のカードのスクリプトの書き方を見てみると良い
スクリプトの記述の仕方が慣例と違うからそれが原因の可能性はある
具体的に言うと、
・フラグによる発動可能かどうかの管理はCostで行う
・特殊召喚する際の条件式はTargetに書く

>>360
たつのこ

363名無しデュエリスト:2017/04/30(日) 22:13:45 ID:.ix/WnMc0
PカードがEXデッキに行く時誘発効果で墓地へ行く効果作ろうとしてますが上手く行きません
ゲール・ドグラやマクロコスモスの記述見ても上手く行きませんし
やはり定数EVENTに記述がないから厳しいですかね?

本体側でPカードがLOCATION_EXTRAに移動処理してるから
不可能ではないはずなんですけども

364名無しデュエリスト:2017/05/01(月) 14:42:35 ID:0seCpY4s0
質問来てたのであげ

>>363
「PカードがEXデッキに送られる場合、EXデッキに送らずに墓地へ送る」だったら永続効果だと思うけど、
そういう「〜する場合、代わりに〜する」タイプの効果は全部EVENT定数で定義してるっぽいし、本体側を変えないと不可能なんじゃないかな

「PモンスターがEXデッキに送られる度に、そのPモンスターを墓地へ送る」誘発効果(または永続効果)なら作れる
ダイナミスト・チャージとか参考にしてみると良い

365名無しデュエリスト:2017/05/02(火) 01:41:26 ID:RyydZCKk0
質問です。「自分フィールドのモンスターが除外された時・場合」という効果の条件を作る時に
ZS-幻影賢者(c51865604)のスクリプトを参考にしていたのですが、
「②:バトルフェイズ中に自分フィールド上のモンスターが除外された場合、
その除外されたモンスター1体を選択し〜...」
の「自分フィールド上のモンスターが除外された場合」という記述がスクリプトのどの部分にあたるのかが分りません。

SetCode(EVENT_REMOVE)でカードが除外された事が条件に指定されているという事はなんとなくわかるのですが・・・

366名無しデュエリスト:2017/05/02(火) 21:56:16 ID:jhEIfcr20
RUM-ヌメロン・フォースのモンスター版を作ろうと思っているんだけど、参考になりそうなカードあるかな

367名無しデュエリスト:2017/05/02(火) 22:45:35 ID:0seCpY4s0
下がるの早すぎィ!

>>365
EFFECT_TYPE_TRIGGER_O → 任意の誘発効果
EFFECT_FLAG_DELAY → タイミングを逃さない
Duel.GetCurrentPhase()〜 → バトルフェイズ
c51865604.spfilter → (特殊召喚できる)自分フィールドに居たモンスター
eg:IsExists(〜 → 除外された中に上記のカードがあるか?

>>366
どんな効果を作ろうとしてるか分からん
RUMの効果を起動効果にするだけじゃないのか

368名無しデュエリスト:2017/05/02(火) 23:04:51 ID:.ix/WnMc0
>>364
ダイナミスト・チャージ参考になりました ありがとうございました
タイミング逃さず墓地へ送れて 最終的にこうなりました
--to GRAVE
local e4=Effect.CreateEffect(c)

e4:SetCategory(CATEGORY_TOGRAVE)

e4:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_FIELD)

e4:SetCode(EVENT_TO_DECK)

e4:SetRange(LOCATION_EXTRA)
e4:SetCondition(c117440512.thcon)

e4:SetTarget(c117440512.ethtg)

c:RegisterEffect(e4)

function c117440512.thfilter(c,tp)

  return c:IsFaceup() and c:IsControler(tp) and c:IsLocation(LOCATION_EXTRA)
  and c:IsSetCard(0x0b)
 and c:IsPreviousLocation(LOCATION_ONFIELD)

end

function c117440512.thcon(e,tp,eg,ep,ev,re,r,rp)

  return eg:IsExists(c117440512.thfilter,1,nil,tp)

end

function c117440512.ethtg(e,tp,eg,ep,ev,re,r,rp,chk)

  if chk==0 then return true end

  local g=eg:Filter(c117440512.thfilter,nil,tp)

    Duel.SendtoGrave(e:GetHandler(),REASON_EFFECT)

end

369名無しデュエリスト:2017/05/03(水) 01:59:34 ID:RyydZCKk0
>>367
ありがとうございます!
何度もスクリプトと睨めっこしていて挫折しかけていました
参考にさせていただきます

370名無しデュエリスト:2017/05/03(水) 23:01:58 ID:RyydZCKk0
スクリプトの関数(?)の
「rc sc g eg tp tc bt at」などの文字はそれぞれどの様な意味があるのでしょうか

functionの後の()内の物ではなく、returnやlocal等の後に続く文字です

371名無しデュエリスト:2017/05/03(水) 23:53:19 ID:2tCEEvQA0
場合によって異なるがローカル変数の命名規則は大凡引数のそれと同じルールつけられている
rc
reason card
使用例
《クリア・エフェクター》のS素材となった時の効果において
S召喚されたモンスターカードを示す

sc
selected card
グループからプレイヤーが選択したカード1枚を表すことが多い
使用例
《EMスカイ・マジシャン》の(2)の効果において
手札に存在する「魔術師」永続カードのうち選ばれた1枚を示す

372名無しデュエリスト:2017/05/04(木) 00:02:28 ID:2tCEEvQA0
g
group
グループ
大体において条件を満たしたデッキ・手札・墓地・フィールド・EXデッキのカード集合を示す

eg
event group
《ドン・サウザンドの契約》の(2)の効果が一番わかりやすい例であるのでそれに基づいて説明する
ドローというイベントが起きた際にイベントに最も関連のあるカード集合は即ちドローカードである
《閃光の宝札》などで複数枚同時にドローすることもあるためec event cardという単数形の命名にはならずeg event groupという略称となっている。

373名無しデュエリスト:2017/05/04(木) 00:14:09 ID:2tCEEvQA0
続きはまた後で

374名無しデュエリスト:2017/05/04(木) 00:24:49 ID:RyydZCKk0
ありがとうございます!
似た様な効果のカードのスクリプトを見比べていてもそれらの文字は多様な使い方をされている事が多いので混乱していました
これらの説明していただいた内容を把握した上でもう一度読み返してしてみようと思います

375名無しデュエリスト:2017/05/04(木) 20:22:13 ID:RyydZCKk0
>>365の者です。スクリプトの事で再び質問です
「既に自身が除外されている状態で、自身以外の自分フィールドのモンスターが除外された時、除外されている自身を手札に加える事ができる」
この効果を持ったモンスターを試しに作ってみようと思ったのですが、自身がフィールドから除外された時にも効果を発動できてしまいます。
「このカード以外の」という記述が抜けているのだと考えているのですが、どのスクリプトを参考にしてもわかりません。

以下が、私が作ろうとしているそのモンスターのスクリプトです。どの点を修正したら良いのでしょうか。すみませんが宜しくお願いします

function c1000.initial_effect(c)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetRange(LOCATION_REMOVED)
e1:SetProperty(EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_REMOVE)
e1:SetCondition(c9000.thcon)
e1:SetTarget(c9000.thtg)
e1:SetOperation(c9000.thop)
c:RegisterEffect(e1)
end

function c1000.thfilter(c,e,tp)
return c:IsPreviousLocation(LOCATION_MZONE) and c:GetPreviousControler()==tp
end

function c1000.thcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c1000.thfilter,1,nil,e,tp)
end

function c1000.thtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsAbleToHand() end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,e:GetHandler(),1,0,0)
end

function c1000.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SendtoHand(c,nil,REASON_EFFECT)
end
end

以上です

376名無しデュエリスト:2017/05/04(木) 20:25:10 ID:RyydZCKk0
>>375間違いがあったので訂正します

>e1:SetCondition(c9000.thcon)
>e1:SetTarget(c9000.thtg)
>e1:SetOperation(c9000.thop)

これらの9000の部分は、9000ではなく1000です。失礼いたしました

377名無しデュエリスト:2017/05/04(木) 22:10:45 ID:RyydZCKk0
>>375です。申し訳ありません、自己解決しました
thconのreturnの部分で「and not eg:IsContains(e:GetHandler())」を書き加える事で解決できました。失礼致しました

378名無しデュエリスト:2017/05/04(木) 22:28:37 ID:2tCEEvQA0
tc
temporary card
カード1枚に対して適当に命名する際によく使われる名前

bt
battle target
戦闘の攻撃対象のカード1枚を示す
《トゥーン・ディフェンス》がわかり易い例である

at
attacker あるいはattack target
見た例において意味が異なるので要注意
《ディメンション・スフィンクス》では攻撃モンスターの意味で使用されているが、《アドバンスド・ダーク》では攻撃対象のモンスターを示す

命名規則統一しろよ!(雑感)

379名無しデュエリスト:2017/05/04(木) 22:38:10 ID:2tCEEvQA0
Visual Studio Codeのフォルダ内検索機能が便利すぎて最高だよ!(ダイマ)
動作も軽いしLuaにも一応対応しているし、C++も開けるからygopro-coreのソースも読めるし便利だよ!

380名無しデュエリスト:2017/05/04(木) 23:09:21 ID:OV9uJmcY0
オリカ作る時は適当な変数使っても問題ないの?

381名無しデュエリスト:2017/05/04(木) 23:34:31 ID:2tCEEvQA0
プログラミングの作法としては適切な名前をその都度つけるべき
まあtcやtgみたいなのは使っても良いって考える人が多いね
ただatはattackerみたいにちゃんとした名前をつけるべきと考える人が他の言語では多い

382名無しデュエリスト:2017/05/04(木) 23:42:03 ID:RyydZCKk0
>>378
重ね重ねありがとうございます!
>>371-372も含めてメモさせてもらいます

383名無しデュエリスト:2017/05/05(金) 18:35:16 ID:y4MAu1iU0
ところで質問ですがデュアルのように効果モンスターをデッキ内で通常モンスターとして扱うにはどのようにすればよいのでしょうか?
始祖神鳥シムルグを参考に手札では通常モンスターにできるのですが
よろしくお願いします

384名無しデュエリスト:2017/05/07(日) 17:07:05 ID:RyydZCKk0
「この効果(「このカード」では無い)を発動したターンのエンドフェイズ」に何らかの処理を加えたい場合はどうすれば良いのでしょうか
「堕天使ゼラート」と「森羅の葉心棒 マット」のスクリプトを参照したのですが、2つとも微妙な違いがありどの様に処理を可能にしているのかが分りません

「堕天使ゼラート」(このカードの①の効果を発動したターンのエンドフェイズ〜...)
function c40921744.sdescon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetFlagEffect(40921744)~=0
end

「森羅の葉心棒 マット」(同上)
function c63175639.spcon(e,tp,eg,ep,ev,re,r,rp)
if e:GetHandler():GetFlagEffect(63175639)==0 then return false end

それぞれこの部分で「ある効果を発動したかどうか」を判断しているのだと思うのですが、例えば「①の効果を発動した」という判定はどの部分で行っているのでしょうか

385名無しデュエリスト:2017/05/07(日) 20:24:49 ID:2tCEEvQA0
C系のプログラミング言語における原則
0はfalse
非0はtrue

return x~=0
は「xが真であるならば真を返し、偽であるならば偽を返す」という意味で用いられている可能性が(そのコードを書いた人が常識知らずでなければ)非常に高い。
また、
if x==0 then return false end
は「xが偽であるならば偽を返す。真である場合は以降のコードに進む」という意味合いであろう。

あなたの挙げた2例は大体同じ意味である。
《魔導化士 マット》については①の効果を発動した上で更に"墓地の「魔導書」と名のついた魔法カードが5種類以上"という条件があるため、それを満たすかどうか判定するため、《堕天使ゼラート》と異なる書き方になっているのであろう。

この程度の関数なら正直以下のようなワンライナーの方が良いと思う
function c63175639.spcon(e,tp,eg,ep,ev,re,r,rp)

  return e:GetHandler():GetFlagEffect(63175639)~=0 and Duel.GetMatchingGroup(c63175639.cfilter,tp,LOCATION_GRAVE,0,nil)
:GetClassCount(Card.GetCode)>=5

end

386名無しデュエリスト:2017/05/07(日) 20:28:32 ID:0seCpY4s0
>>383
シムルグの適用範囲をデッキにすればできない?

>>384
どっちも書いてる事は同じ(マットの書き方は冗長)
「Aの効果を発動した」かどうかは大体の場合は
① AのCost内でRegisterFlagEffectで自身にフラグを立てる
② GetFlagEffectでAを発動したか判断
という手順
永続罠の効果の発動なんかでも良く見られる書き方だね

387名無しデュエリスト:2017/05/07(日) 22:46:52 ID:RyydZCKk0
>>385
間違えていました・・・ 「森羅の葉心棒 マット」ではなく「魔導化士 マット」でした。失礼致しました
ありがとうございます!マットの方がゼラートと比べて複雑でしたがandで2つ以上の条件を括っても良いという事ですね
then return false endの意味もよく分からなかったのでとても参考になります

>>386
Costにそんな使い方があったとは知りませんでした
確かにゼラートにも同じ書き方がされてあります こういう使い方をするんですね
参考になりました!ありがとうございます!

388名無しデュエリスト:2017/05/14(日) 18:11:59 ID:6OiG1vXo0
コンマイ語に関する質問なんだが
モンスター効果の記述で、先にフィールドに出ていれば後から自身のモンスター効果を無効化されることはない
(ex.先にフィールド上に出ているスキルドレインやBloo-dには効果を無効化されるが後出しのスキルドレインやBloo-dには効果を無効化されない)
という場合はどういう記述をすればいいのかな?
「このカードの効果は無効化されない」じゃマズいよね

389名無しデュエリスト:2017/05/22(月) 01:53:30 ID:UeFavsGo0
その例なら「このカードはほかのカードの効果を受けない」でいいんじゃない?

390名無しデュエリスト:2017/05/22(月) 18:13:40 ID:6OiG1vXo0
>>389
ああ、申し訳ない。
ちょっと言葉が足りなかった。。。
出した例の範囲内だけなら確かにそうなるよね。

意図としては、
(a)特定の属性以外のモンスター効果を受け付けない。さらにモンスター効果の対象にもさせない。
(b)ただし、モンスター効果を無効化するモンスター効果に関しては、こちらが先にフィールド上に出ていれば相手モンスターの属性に関係なく一切受け付けない。
(c)対象を取る魔法・罠の効果は受け付けない(対象を取らない魔法・罠の効果は受ける)。
(d)ただし、モンスター効果を無効化する魔法・罠に関しては、こちらが先にフィールド上に出ていれば対象を取る取らないに関係なく一切受け付けない。
で、この場合の記述の仕方。


とりあえず、今はこれを
(1)このカードの効果は無効化されない。
(2)このカードは効果の対象にならず、○属性以外のモンスターの効果を受けない。




という記述にしてるんだが。

391名無しデュエリスト:2017/05/22(月) 18:33:32 ID:6OiG1vXo0
(a)(b)の補足
要するに、このカードが受けるモンスター効果は、特定属性の対象を取らない、モンスター効果を無効化する効果以外の効果のみということ

392名無しデュエリスト:2017/05/26(金) 00:54:34 ID:szSs0.260
>>390
そもそもとして「カード効果を無効化されない効果」は既存カードに存在しないからコンマイ語においては定義もされない

とりあえずそれ以外は
①:このカードはモンスターの効果の対象にならず、対象を指定しない魔法・罠カード及び○属性以外のモンスターの効果を受けない。
ぐらいじゃない?

393名無しデュエリスト:2017/05/26(金) 17:03:33 ID:6OiG1vXo0
>>392
既存カードに存在しない効果は実装しないのが基本なのは百も承知なんだが、
なぜこの効果を思い付いたかというと
SetCode(EFFECT_CANNOT_DISABLE)にSetConditionやSetOperation定義しなかったらどういう挙動するのかテストしてて思い付いたんだけどね。

とりあえず神属性の「このカードの召喚は無効化されない。」「このカードの召喚成功時には、このカード以外の魔法・罠・モンスターの効果は発動できない。」を取っ払って
幻神・邪神・極神に実装して内輪でやってるんだが今のところなかなかいい感じでハマってる。

394名無しデュエリスト:2017/06/04(日) 15:32:33 ID:8EVjueac0
二重魔法の対象を取らない版(Aとする)を作ってみて「RUM-幻影騎士団ラウンチ」を発動したら、
ラウンチではなくAがX素材になってしまいました。この時にラウンチを素材にさせるにはどうすればいいのでしょうか。

395名無しデュエリスト:2017/06/04(日) 19:30:01 ID:YAdilUkk0
>>394
恐らく構造上不可能
本来のカード効果では「対象のカード自体を発動させる」効果だけど、
ADSのスクリプトでは「対象のカードの発動時の効果を《二重魔法》の効果として使用」になってる
ADSに「カードの特定の効果を発動させる」ための関数が(多分)無いので本体で更新が来ない限り不可能

396名無しデュエリスト:2017/06/08(木) 00:00:30 ID:8EVjueac0
効果のリセットを効果解決時にしようと思っていますが、
e1:SetReset(RESET_EVENT+EVENT_CHAIN_SOLVING)ではないみたいです。
正しい表記はどうすればいいでしょうか。

397名無しデュエリスト:2017/06/08(木) 10:13:30 ID:qAZYL9GA0
>>396
その質問には問題点が3つある
一つ、単純に読めば恐らく正しい表記である
二つ、効果を与える処理は通常は効果処理時に行うため、そもそも効果処理時にリセットする事は恐らく無い
三つ、オリジナルの効果に関する質問の場合はその効果を全て書いた方が良い

398名無しデュエリスト:2017/06/12(月) 17:07:23 ID:Gzo3pjw20
「○○(カテゴリ)」カードが発動していないというのを発動条件にするのは可能でしょうか?

399名無しデュエリスト:2017/06/12(月) 17:11:13 ID:HfxKNEeA0
できる
そのカテゴリ全てのカードでRegisterFlageffectしてやればいい

400名無しデュエリスト:2017/06/13(火) 12:32:49 ID:Gzo3pjw20
>>399
発動タイミングが同じかつ任意の誘発効果なので
発動するかどうか選ぶ段階では効果が発動していないのですが
その方法でできますでしょうか?

401名無しデュエリスト:2017/06/13(火) 22:23:50 ID:ju1YNaOI0
>>398,400
「『○○』カードが魔法&罠ゾーンに存在しない場合に発動できる」なのか
「『○○』カードの効果は1ターンに1度しか発動できない」なのか
「『○○』カードは同一チェーン上では1度しか発動できない」なのか

最後の場合なら>>399でできる

402名無しデュエリスト:2017/06/15(木) 18:00:36 ID:ImA9y.To0
Pカードのオリカ作ってるけどあるPスケールを対象にする仕方が分からない。

効果の元はDDブラスト・オーガ
作りたい効果はスケール8が存在するときにこのカードのスケールを6にする。
このカードの元のスケールは8

--scale
local e5=Effect.CreateEffect(c)
e5:SetType(EFFECT_TYPE_SINGLE)
e5:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e5:SetCode(EFFECT_CHANGE_LSCALE)
e5:SetRange(LOCATION_PZONE)
e5:SetCondition(c13000155.sccon)
e5:SetValue(6)
c:RegisterEffect(e5)
local e6=e5:Clone()
e6:SetCode(EFFECT_CHANGE_RSCALE)
c:RegisterEffect(e6)

unction c13000155.sccon(e)
return Duel.IsExistingMatchingCard(Card.IsSetCard,e:GetHandlerPlayer(),LOCATION_PZONE,0,1,e:GetHandler(),0)
end

どこいじればいいですかね?

403名無しデュエリスト:2017/06/16(金) 05:48:29 ID:OV9uJmcY0
LOCATION_PZONEはそもそもSetRangeでしか使えない

404名無しデュエリスト:2017/06/16(金) 17:29:40 ID:.PfMoFLI0
>>402
ブラストオーガって誰だ
β版はどうなのか知らないが、少なくとも現日本版では>>403の言ってくれたように、LOCATION_PZONEが使えないからSequenceを使ってPゾーンのカードを取得する

405名無しデュエリスト:2017/06/17(土) 21:36:55 ID:ImA9y.To0
>>404
ブではなくプでした。よく見てなかった・・・
使ってるのはリンク対応βv4です。
まだ他のカードのスクリプト持ってきて弄るのがほとんどなんで細かい所の理解は・・・

406名無しデュエリスト:2017/06/21(水) 01:01:38 ID:Gzo3pjw20
スクリプトが長くなると途中にある攻守増減系の効果が効かなくなります
効果を一つ消すと有効になるのですが対処法は張りますでしょうか?

407名無しデュエリスト:2017/06/21(水) 08:08:58 ID:LB17FcGA0
多分括弧でミスってんじゃねえかな

408名無しデュエリスト:2017/06/24(土) 12:17:17 ID:wLqH7Nj.0
対戦相手がハノイの騎士なこと多いんだけどあれはデフォルトネームの一種なのか?
それともたまたま流行ってるとかなのかね

409名無しデュエリスト:2017/06/24(土) 12:17:50 ID:wLqH7Nj.0
ごめんなさい一個上と間違えました

412名無しデュエリスト:2017/07/04(火) 14:51:27 ID:NYxQqVLs0
質問失礼します。
墓地のモンスターを除外して、対象にしたフィールドのモンスターに除外したモンスターの効果と
「●このカードの効果で相手に与える効果ダメージは0になる。」
という効果を付与するカードを作っています。
「EFFECT_CHANGE_DAMAGE」を使って、そのSetValue先に

function c番号.damval(e,re,val,r,rp,rc)
if re:GetHandler()==e:GetHandler() and bit.band(r,REASON_EFFECT)~=0 then return 0 end
return val
end

と設定しているのですが、上記の効果と「ヴォルカニック・エッジ」の効果を与えたモンスターと「火炎地獄」でテストした所、
付与したモンスターの効果のみで与えるダメージを0にすることは出来ました。
ですが、「アマゾネスの剣士」や「LL-リサイト・スターリング」の効果を与えたモンスターで戦闘を行った所、
自分は戦闘ダメージを受けましたが、相手にその数値分の戦闘ダメージを与えることが出来ず、スクリプトエラーが出ました。
その時のエラーの状況は「re:GetHandler()==e:GetHandler()」の「re」に何も入っていない、という内容でした。
解決方法があれば、教えて頂きたいです。

413名無しデュエリスト:2017/07/16(日) 19:40:20 ID:YmKAqde.0
スクリプトの質問失礼します。
「このカードはデッキからもアドバンス召喚できる。」という召喚ルール効果を作ろうと思い、
真竜の召喚ルール効果に「e1:SetRange(LOCATION_DECK)」を追加してみたのですが、
デッキから召喚する事ができず、手札からの召喚ルールとして処理されてしまいます。
憑依装着の記述を参考にSetTypeをEFFECT_TYPE_FIELDにしてもダメでした。

上記のような召喚ルール効果を実装する事は可能でしょうか?
また、実装可能な場合はどのように実装すれば宜しいでしょうか?
どうぞ、宜しくお願い致します。

414名無しデュエリスト:2017/07/16(日) 20:28:17 ID:6.tlDY3w0
>>413
そこまでやってダメなら無理じゃないかな
そもそも(デュアルを除いて)手札以外から召喚する効果が無いからEFFECT_SUMMON_PROCが手札以外に対応して無いかもしれない

デッキで発動するチェーン不可能な召喚する効果として疑似的に再現する事はできそうな気がするから頑張れ

415名無しデュエリスト:2017/07/16(日) 23:14:13 ID:YmKAqde.0
>>414
うーん、やっぱり無理ですか…
それでは場に出す処理は起動効果や遺言状等の方面で作ってみたいと思います。

その際に召喚権を消費させたいのですが、
「このターン通常召喚できない」制約ではなく、召喚権を1回分だけ減らす処理を実装するにはどうすれば良いかどなたかご存知でしょうか?

417名無しデュエリスト:2017/07/17(月) 21:28:20 ID:OV9uJmcY0
普通に憑依装着の記述じゃだめなの

418名無しデュエリスト:2017/07/20(木) 19:12:40 ID:Oa7Sd71A0
質問失礼します。
「デッキに存在する間だけ効果モンスターとして扱う」魔法カードを作りたいと思い、
「EFFECT_CHANGE_TYPE」を使用してスクリプトを書いてみましたが、
適用されず、魔法カード扱いのままになってしまいます。
(手札や墓地ではモンスター扱いにできました。)

質問したいことは
・上記のような効果は実装可能かどうか。
・実装可能ならば、どのように実装すればよいか。
の2点です。
どうぞよろしくお願いします。

スクリプトは以下になります。
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e1:SetRange(LOCATION_DECK)
e1:SetCode(EFFECT_CHANGE_TYPE)
e1:SetValue(TYPE_MONSTER+TYPE_EFFECT)
c:RegisterEffect(e1)

419名無しデュエリスト:2017/07/20(木) 19:48:05 ID:2tCEEvQA0
デッキに存在する間だけ通常モンスターとして扱うカードを以前実装しようとしたがどうやっても無理だった
多分これも同じはず

420名無しデュエリスト:2017/07/20(木) 19:57:40 ID:2tCEEvQA0
というか逆に効果モンスターをデッキ以外で魔法扱いさせればいいのでは?

421名無しデュエリスト:2017/07/20(木) 20:21:14 ID:Oa7Sd71A0
>>420
なるほど、逆転の発想ですね...

通常モンスター扱いにするのもできないとなると、デッキ内には
「EFFECT_ADD_TYPE」や「EFFECT_CHANGE_TYPE」の影響は与えられない、ってことですかね。
効果モンスターをデッキ以外で魔法扱いにする方向で考えてみます。

ありがとうございました。

422名無しデュエリスト:2017/07/22(土) 18:22:13 ID:NYxQqVLs0
すみません、スクリプトの質問失礼致します。

Card.GetEffectCount(EFFECT_TRAP_ACT_IN_SET_TURN)を使って、
あるカードを、「王家の神殿」の「セットした罠カードを発動できる」効果を使用していないターンは発動できる、
既に使用したターンは発動できない、というスクリプトを作りたいのですが、
「EFFECT_TRAP_ACT_IN_SET_TURN」って、「Card.GetEffectCount」では使えるのでしょうか?

423名無しデュエリスト:2017/07/22(土) 18:46:53 ID:2tCEEvQA0
まずやってみてから来てね

424名無しデュエリスト:2017/07/22(土) 19:04:33 ID:NYxQqVLs0
やってみて出来なかったので来ました。
でも私の知らないやり方で、もしかしたら出来るかも?と思ったので質問させて頂いた次第です。


新着レスの表示


名前: E-mail(省略可)

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

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

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

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