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

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

507名無しデュエリスト:2017/11/19(日) 12:25:33 ID:A.Fz4lnE0
>>506
返信ありがとうございます。

おかげさまでできました。
アドバイスありがとうございました。

508名無しデュエリスト:2017/12/16(土) 12:48:50 ID:YmKAqde.0
ADS動画用のリプレイデータ作成の効率化を行う為、デュエル中の特定タイミング毎にリプレイ映像から判別できない方法で積み込みを行いたいのですが、どなたか良い案をお持ちの方はおりませんでしょうか?

Duel.MoveSequenceだとカードをデッキトップに持ってくる動きが描画されてしまい、
Duel.SortDecktopでは15枚以上を指定すると並び替えができないのでデッキが16枚以上の場合に上手くいかず、
Duel.SendtoDeck(tc,tp,0,REASON_RULE)だとデッキの中のカードをデッキトップに持ってくる事ができません。

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

509名無しデュエリスト:2018/01/14(日) 08:49:25 ID:tvH4WxIc0
早い話動画投稿用に見せたいんでしょ?
カットと編集で頑張れば?
描写を見せたくないってことはイカサマしてるってことなんだろうから
そのくらいの腹はくくれよ

510名無しデュエリスト:2018/01/18(木) 00:43:12 ID:OauVxxU20
「X素材を任意の数取り除き、取り除いた数だけランクアップさせる」という効果のRUMを作りたいのですが不具合が出て躓いています。
例えば自分フィールドにランク4で素材を1つ持ったXモンスターがいて、EXデッキにランク5のモンスターがいない場合でもカードの効果を発動できてしまいます。
どこが駄目なのかよかったらアドバイスをお願いします。

function c001.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,532)
local tc=Duel.GetFirstTarget()
if tc:GetOverlayCount()==0 then return end
tc:RemoveOverlayCard(tp,1,99,REASON_EFFECT)
local ct=Duel.GetOperatedGroup():GetCount()
e:SetLabel(ct)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<0 then return end
local tc=Duel.GetFirstTarget()
if tc:IsFacedown() or not tc:IsRelateToEffect(e) or tc:IsControler(1-tp) or tc:IsImmuneToEffect(e) then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local c=e:GetHandler()
local ct=e:GetLabel()
local g=Duel.SelectMatchingCard(tp,c001.filter2,tp,LOCATION_EXTRA,0,1,1,nil,e,tp,tc,tc:GetRank()+ct)
local sc=g:GetFirst()
if sc then
local mg=tc:GetOverlayGroup()
if mg:GetCount()~=0 then
Duel.Overlay(sc,mg)
end
sc:SetMaterial(Group.FromCards(tc))
Duel.Overlay(sc,Group.FromCards(tc))
Duel.SpecialSummon(sc,SUMMON_TYPE_XYZ,tp,tp,false,false,POS_FACEUP)
sc:CompleteProcedure()
end
end

511名無しデュエリスト:2018/01/23(火) 13:18:23 ID:Lafa52P60
>>510
まずはエラー内容を全文書こう
話はそれからだ
条件満たさずに発動できるってことはcondition,cost,targetのどれかがおかしいからそれも全部書くか、スクリプトをどこかにアップしてくれ

512名無しデュエリスト:2018/01/25(木) 11:37:09 ID:OauVxxU20
失礼しました!
エラーログはオンにしてありますが出ませんでした
スクリプトはこちらにアップしました
https://www.axfc.net/u/3883409
重ねてよろしくお願いします

513名無しデュエリスト:2018/01/25(木) 12:42:59 ID:Lafa52P60
filter1の指定だとEXに同ランクのXが居るモンスターになってるな
1からcのX素材数までiとしてループしてランクrk+iに対してfilter2を掛ければ良いと思う

activateの方にも問題があって、今の状態だと正しくない数のX素材を取り除けてしまうから、
どうにかして取り除ける素材数を選択肢で出して、それから選択した数のX素材を取り除く方式にした方が良い

514名無しデュエリスト:2018/02/08(木) 23:12:20 ID:8EVjueac0
EVENT_REMOVE_COUNTER+0x100eを使って効果を作ろうと「A」細胞培養装置を参考にしたのですが
培養装置と全く同じ記述を移植しても発動すらしません。何か他に必要なものがあるのでしょうか?

515名無しデュエリスト:2018/02/09(金) 11:58:13 ID:QX3X5Zv.0
>>514
まずは>>511を読もうか

516名無しデュエリスト:2018/02/09(金) 16:41:39 ID:8EVjueac0
失礼しました。エラーログは出ませんでした。効果の起動を確認するためのスクリプトです。
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetRange(LOCATION_SZONE)
e1:SetCode(EVENT_REMOVE_COUNTER+0x100e)
e1:SetOperation(c37564.winop)
c:RegisterEffect(e1)
function c37564.winop(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_CARD,0,37565)
end
「A」細胞培養装置を参考にAカウンター取り除いて試しているのですが何が悪いのでしょうか?

517名無しデュエリスト:2018/02/10(土) 14:31:01 ID:QX3X5Zv.0
>>516
カードの発動はしてる?
カードの発動ができないって話ならACTIVATEの効果書かないとダメだぞ

518名無しデュエリスト:2018/02/11(日) 03:37:56 ID:8EVjueac0
>>517
失礼しました
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_ACTIVATE)
e2:SetCode(EVENT_FREE_CHAIN)
c:RegisterEffect(e2)
↑があるので問題なくフィールドにいます。

519名無しデュエリスト:2018/02/12(月) 16:26:18 ID:QX3X5Zv.0
>>518
んんん? その状態で効果が使用されないのか…
winopにダメージ効果でも入れて改めて試してみたらどう?
実は魔法罠ゾーンに居ませんとかそういうオチは無いよな?
発動確認の方法が悪いのかもしれんし使用したカードとかに問題があるのかもしれん

520名無しデュエリスト:2018/02/12(月) 16:32:32 ID:QX3X5Zv.0
いや培養装置と記述一緒だから培養装置と並べて発動確認すれば問題ないか…
番号的にID被りもなさそうだし…
うーんお手上げ

521名無しデュエリスト:2018/02/12(月) 21:07:15 ID:Gzo3pjw20
>>518
ダメージ効果にしたら問題なく動きましたので一度お試しください

522名無しデュエリスト:2018/02/13(火) 01:46:03 ID:OauVxxU20
>>513
返事が遅れてしまって申し訳ないです
アドバイスありがとうございます!
頑張ってみます!

523名無しデュエリスト:2018/02/13(火) 15:40:46 ID:8EVjueac0
>>519
>>520
>>521
c:RemoveCounter()からDuel.RemoveCounter()にして試したら反応しました。
ありがとうございましたm_ _m

524名無しデュエリスト:2018/03/18(日) 14:02:05 ID:QX3X5Zv.0
単発糞スレ乱立で下がってたのであげ

525名無しデュエリスト:2018/04/24(火) 16:24:05 ID:ASd2Vkyo0
現在スクリプトを作っているものです。今は「レッド・デーモンズ・ドラゴン・タイラント」のスクリプトを作っているのですが[string"./script/c10004.lua]:4:attempt to call field"Tuner"(a nil value)と出てしまいます。ygopro ver.1.34.2では普通に召喚出来るのですがygopro ver1.033.C では召喚出来ませんでした。4行目に欠陥があるのは分かるのですがどうすれば召喚できるのか分かりません。お時間があるときで大丈夫なので知恵を貸していただけると有り難いです。
--レッド・デーモンズ・ドラゴン・タイラント
function c10004.initial_effect(c)
--synchro summon
aux.AddSynchroMixProcedure(c,aux.Tuner(nil),aux.Tuner(nil),nil,aux.NonTuner(nil),1,99)
c:EnableReviveLimit()
--destroy
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_DESTROY)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetTarget(c10004.destg)
e2:SetOperation(c10004.desop)
c:RegisterEffect(e2)
--negate
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_NEGATE+CATEGORY_DESTROY)
e3:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DAMAGE_CAL)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EVENT_CHAINING)
e3:SetCondition(c10004.discon)
e3:SetTarget(c10004.distg)
e3:SetOperation(c10004.disop)
c:RegisterEffect(e3)
--double tuner
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e4:SetCode(21142671)
c:RegisterEffect(e4)
end
function c10004.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,1,e:GetHandler()) end
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,e:GetHandler())
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end
function c10004.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_ONFIELD,LOCATION_ONFIELD,e:GetHandler())
if g:GetCount()>0 then
Duel.Destroy(g,REASON_EFFECT)
end
end
function c10004.ftarget(e,c)
return e:GetLabel()~=c:GetFieldID()
end
function c10004.discon(e,tp,eg,ep,ev,re,r,rp)
local ph=Duel.GetCurrentPhase()
return not e:GetHandler():IsStatus(STATUS_BATTLE_DESTROYED) and re:IsHasType(EFFECT_TYPE_ACTIVATE)
and Duel.IsChainNegatable(ev) and (ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE)
end
function c10004.distg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_NEGATE,eg,1,0,0)
if re:GetHandler():IsDestructable() and re:GetHandler():IsRelateToEffect(re) then
Duel.SetOperationInfo(0,CATEGORY_DESTROY,eg,1,0,0)
end
end
function c10004.disop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if Duel.NegateActivation(ev) and re:GetHandler():IsRelateToEffect(re) then
Duel.Destroy(eg,REASON_EFFECT)
if not c:IsRelateToEffect(e) or c:IsFacedown() then return end
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetProperty(EFFECT_FLAG_COPY_INHERIT)
e1:SetReset(RESET_EVENT+0x1ff0000)
e1:SetValue(500)
c:RegisterEffect(e1)
end
end

チューナー2体+チューナー以外のモンスター1体以上
①:1ターンに1度、このカード以外のフィールドのカードを全て破壊できる。
②:バトルフェイズに魔法・罠カードが発動した場合に発動できる。
その発動を無効にし破壊する。
その後、このカードの攻撃力を500アップする。

526名無しデュエリスト:2018/04/26(木) 21:11:38 ID:QX3X5Zv.0
>>525
新マスタールール以前のADSスクリプトでは相違点が3つある!
1つ、Card関数にIsNotTunerしかないように、auxにはNonTunerはあるがTunerがない
2つ、S素材のチューナーを指定するときはその欄に「チューナーである」以外の条件を入れたfilter関数を入れていた
3つ、そもそも当時のスクリプトではチューナー2体のS召喚はaux関数を使わずにEFFECT_SPSUMMON_PROCで書いていた

というかそのバージョンなら普通にタイラントあるから見てみるのだ
無かったらヴァイロンオメガでも見てみるのだ

527名無しデュエリスト:2018/04/26(木) 22:59:07 ID:ASd2Vkyo0
>>526 あ、普通に出来ました。ありがとうございます!どんどんレッドモンスターを作るのだ!

528名無しデュエリスト:2018/04/26(木) 23:05:15 ID:ASd2Vkyo0
次にレッドジャイアント
効果:相手の魔法、罠ゾーン(Pゾーンも含める)にセットされた時、相手のバトルフェイズをスキップする。
という効果を作りたいです。一応バトルフェーダー、アルティマヤのセット始動、ソルチャのバトルフェイズを行えないを参考にしたいのですが
どうにかくっつけられないですかね?

529名無しデュエリスト:2018/04/27(金) 00:40:36 ID:QX3X5Zv.0
>>528
ざっと感想ブログとか見てたら
「相手フィールドにカードがセットされたら手札から発動してSS、BPに発動したらBP終了」
っぽいが、その効果説明読んでると違ってそう
1回その効果全文書いてもらえないかな?

530名無しデュエリスト:2018/04/27(金) 08:06:05 ID:ASd2Vkyo0
流石に発動条件が難しいので少し効果を変えました。
一応説明には
①:相手の魔法、罠ゾーンにカードがセットされた時に発動できる。
手札のこのモンスターを特殊召喚し、相手はバトルフェイズを行えない。
となってます。

531名無しデュエリスト:2018/04/29(日) 20:48:59 ID:QX3X5Zv.0
>>530
遅くなって済まない…

相手ターンに魔法罠セット時発動、自身をSS+BP前ならこのターンのBPスキップ、BP中ならBPを終了
って感じかな?

アルティマヤの効果をベースにしてコピペしてから作るといい
Condition→ほぼアルティマヤのまま、フィールドを相手フィールドに
Target→自身をSSする効果なので自身をSSする効果(フェーダー、ヘルプリンセスなど)のTargetをコピペ
Operation→自身をSSする処理+フェイズによる処理
フェイズによる処理はティンタングルエンジェルなんかを参考にしてif文で書くべし

532名無しデュエリスト:2018/04/29(日) 21:55:56 ID:ASd2Vkyo0
>>531本当にありがとうございます!
レッドはこれで一通り終わります!また別のオリカを作ろうと思うのでお暇な時に知恵を貸していただけるとありがたいです!

533名無しデュエリスト:2018/04/29(日) 23:13:06 ID:ASd2Vkyo0
--レッド・ジャイアント
function c10011.initial_effect(c)
--end battle phase
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(10011,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SSET)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(c10011.spcon)
e1:SetTarget(c10011.target)
e1:SetOperation(c10011.operation)
c:RegisterEffect(e1)
end
function c10011.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(Card.IsControler,1,nil,tp)
end
function c10011.target(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then
return Duel.GetLocationCount(tp,LOCATION_MZONE)>0 and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c10011.operation(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,aux.NecroValleyFilter(c10011.filter),tp,LOCATION_HAND,0,1,1,nil,e,tp)
if g:GetCount()>0 then
Duel.SpecialSummon(g,0,tp,tp,false,false,POS_FACEUP_ATTACK+POS_FACEUP_DEFENSE)
Duel.ConfirmCards(1-tp,g)
end
local ph=Duel.GetCurrentPhase()
if tp~=Duel.GetTurnPlayer() and ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE then
Duel.SkipPhase(1-tp,PHASE_BATTLE,RESET_PHASE+PHASE_BATTLE,1)
end
end
こうですか?

534名無しデュエリスト:2018/04/30(月) 00:47:35 ID:Gzo3pjw20
>>533
他の人に聞くときは自分で動作確認をしてみた上でわからないところを聞いたりしましょう。
何でもかんでも聞いているといつかキレられますよ。

バトルのスキップがムーブメント方式のやつを適当に作ってみました。
一応動作確認はしましたが変な動作するかも。






function c1300.initial_effect(c)
--end battle phase
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(1300,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetCode(EVENT_SSET)
e1:SetRange(LOCATION_HAND)
e1:SetCondition(c1300.spcon)
e1:SetTarget(c1300.sptg)
e1:SetOperation(c1300.spop)
c:RegisterEffect(e1)
end
function c1300.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(Card.IsControler,1,nil,1-tp)
end
function c1300.sptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,c,1,0,0)
end
function c1300.spop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and c:IsCanBeSpecialSummoned(e,0,tp,false,false) end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
local ph=Duel.GetCurrentPhase()
if tp~=Duel.GetTurnPlayer() and ph>=PHASE_BATTLE_START and ph<=PHASE_BATTLE then
Duel.SkipPhase(1-tp,PHASE_BATTLE,RESET_PHASE+PHASE_BATTLE,1)
else
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_SKIP_BP)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTargetRange(0,1)
if Duel.GetTurnPlayer()~=tp and ph>PHASE_MAIN1 and ph<PHASE_MAIN2 then
e1:SetLabel(Duel.GetTurnCount())
e1:SetCondition(c1300.skipcon)
e1:SetReset(RESET_PHASE+PHASE_BATTLE+RESET_OPPO_TURN,2)
else
e1:SetReset(RESET_PHASE+PHASE_BATTLE+RESET_OPPO_TURN,1)
end
Duel.RegisterEffect(e1,tp)
end
end
function c1300.skipcon(e)
return Duel.GetTurnCount()~=e:GetLabel()
end

535名無しデュエリスト:2018/04/30(月) 08:08:43 ID:ASd2Vkyo0
>>534申し訳ない。寝ないとヤバいかったので動作確認すっぽかしちゃいました。次から気を付けます

536名無しデュエリスト:2018/04/30(月) 10:13:16 ID:ASd2Vkyo0
現在乃亜編のデッキマスタールールを再現したいのですが選択ウィンドウの出し方やデッキマスターの指定などがよく分かりません。
右も左分からない私ですがどうか知恵をお貸しください。

①:デュエル開始時、手札・デッキのこのカードは発動する。
また手札・デッキのこのカード以外の「デッキマスター決闘」を全て除外し、自分は手札が5枚になるようにデッキからドローする。
②:このカードは他のカードの効果を受けない。
③:デュエル開始時にデッキから決められたモンスターを一体選びデッキマスターとする。
④:デッキマスターに指定したモンスターに特殊能力を与える。この効果は相手により無効化されない。
⑤:デッキマスターに選択されたモンスターが場を離れたとき、プレイヤーは敗北する。
⑥:「ロード・オブ・ドラゴン-ドラゴンの支配者-」をデッキマスターに選択した時に発動できる。
500ポイントライフを払い、通常召喚に加えてもう一度ドラゴン族モンスターを召喚できる。
⑦:「ブラック・マジシャン」をデッキマスターに選択した時に発動できる。
ライフを1000ポイント払うことで、このターン使用した魔法カードを手札に戻す。
⑧:「奇跡の方舟」をデッキマスターに選択した時に発動できる。
収容能力:互いの墓地に存在するモンスターカードは墓地で発動する効果を発動できず、他のカードの効果も受けない。
絶対防御:相手のバトルフェイズに発動できる。相手のモンスターの数だけ自分フィールドに守備表示で特殊召喚する。
生命の回復:墓地に存在するモンスターをすべて除外し、一体につきライフを500回復する。
⑨:「天界王 シナト」をデッキマスターに選択した時に発動できる。
輪廻転生:場に出ているこのカードが破壊されるとき、その破壊を無効にしてデッキに加える。この能力を使用した後、シナトを再び召喚することはできない。
⑩:「ジャッジ・マン」をデッキマスターに選択した時に発動できる。
1000ポイントのライフを払い、相手モンスターをすべて除外する。
その後、除外したモンスターの数だけ相手に500ポイントのダメージを与える。
この効果は相手ターンでも発動できる。
⑪:「炎の剣士」をデッキマスターに選択した時に発動できる。
フィールドに存在する戦士族モンスターは攻撃力が1800アップする。

現在自分が分からない事
・ウィンドウ選択のコード
・デッキ、手札からモンスターを選択して効果を発動。からの元々あった場所に戻してシャッフル
・選択されたモンスターが場を離れた時の敗北する効果などの付与
・それぞれの効果の参考スクリプト
多くなってしまいましたがどうかよろしくお願いします。

537名無しデュエリスト:2018/04/30(月) 14:28:06 ID:QX3X5Zv.0
>>535
動作確認は大事だからねぇ
どこの誰とは言わないけど「更新しました!」って動作確認してないの上げる人が居たりするけどそういうのは見習わないようにね…

>>533を見る限り、スクリプトの書かれている内容の意味を理解していなさそうに見える(operationの2〜7行目あたり)
処理の内容として、必要条件は満たして入るけど、冗長だったり必要のない処理が入ってたりしてる
スクリプトの意味が分かってくると色々と応用が効くようになってくるから頑張って覚えよう
おおよそ想像してたスクリプトは>>534で書いてくれたからとりあえずはそれ参考に

538名無しデュエリスト:2018/04/30(月) 14:36:32 ID:QX3X5Zv.0
>>536
・選択ウィンドウは>>533で使ってたようなSelect系の関数を使えば出てくる
 その前の Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_〜) は選択ウィンドウの上部で表示する文字列を決めてる
・「デッキ、手札からモンスターを選択して効果を発動。からの元々あった場所に戻してシャッフル」これは言ってる意味がよく分からない
 いやそのまま受け取れば分かるんだけど、多分実装するべき動きはそうじゃない
・「選択されたモンスターが場を離れた時の敗北する効果」は魂のリレーを参考に
 「など」の部分はデッキマスター能力かな?それは後述
・「それぞれの参考」
 無理! 頑張って探して!

まず、デッキマスターはそれぞれ別カード化した方が良いと思う
効果が多すぎて読みにくいし、スクリプトの管理も面倒になる

もう1つ、コンマイ語を勉強しよう
効果全文を正しいコンマイ語で書けないと正しいニュアンスが伝わらなくて、こっちも正しいアドバイスができなくなる
具体的に言うとレッドジャイアントの「BPをスキップする効果」は最後まで「BPを終了する」のか「このターンのBPをスキップする」のか「次のBPをスキップする」のか分からなかった

539名無しデュエリスト:2018/05/01(火) 21:51:10 ID:ASd2Vkyo0
>>536
返信遅くなったのとわかりずらい質問で本当にすまない...
もう普通にデッキマスターの能力を持ったモンスターのスクリプトを作ることにしました
ですがデッキマスターの説明を見るとモンスターを場に出さなくても使えるらしいんです。
〇祐さんのホルアクティみたいにデッキで発動する例もありますがドロー以外の効果でも可能なのでしょうか?

540名無しデュエリスト:2018/05/01(火) 22:05:55 ID:Gzo3pjw20
>>539
e2:SetRange(LOCATION_SZONE)みたいなやつを
e2:SetRange(LOCATION_DECK)にするとデッキから発動したり、
デッキにいるときに適用できたりします。
適用できる効果は基本的にどんな効果でも適用できるはずです。

541名無しデュエリスト:2018/05/02(水) 10:40:16 ID:ASd2Vkyo0
>>540
返信ありがとうございます。
一応作ってみたのですが始動が悪いのかコードが繋がっていないのかデッキからの発動ができません。
何度も申し訳ないのですがスクリプトを見てください。

--ブラック・マジシャン(DM)
function c10020.initial_effect(c)
--Yugioh
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e1:SetCode(EVENT_TO_GRAVE)
e1:SetCost(c10020.cost)
e1:SetTarget(c10020.target)
e1:SetOperation(c10020.activate)
e1:SetCountLimit(1,10020)
e1:SetCondition(c10020.condition)
Duel.RegisterEffect(e1,0)
end
function c10020.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,1000) end
Duel.PayLPCost(tp,1000)
end
function c10020.cfilter(c,tp)
return c:IsType(TYPE_SPELL) and c:IsPreviousLocation(LOCATION_DECK) and c:IsPreviousPosition(POS_FACEUP)
and c:GetPreviousControler()==1-tp and c:GetPreviousSequence()~=5
end
function c10020.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c10020.cfilter,0,nil,tp)
end
function c10020.tgfilter(c)
return c:IsAbleToHand()
end
function c10020.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and c10020.tgfilter(chkc) end
if chk==0 then return Duel.IsExistingTarget(c10020.tgfilter,tp,LOCATION_GRAVE,0,1,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=Duel.SelectTarget(tp,c10020.tgfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.SetOperationInfo(0,CATEGORY_TOHAND,sg,sg:GetCount(),0,0)
end
function c10020.activate(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if tc and tc:IsRelateToEffect(e) then
Duel.SendtoHand(tc,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,tc)
end
end

効果:ライフを1000払う事で墓地から魔法カードを手札に戻す。

エラーは出ていません。

542名無しデュエリスト:2018/05/02(水) 18:46:38 ID:TALgY09Q0
正確じゃなくてもいいから効果はしっかり書くことを勧める
とりま効果を読んで察するにだけどこれ永続(FIELD)じゃなくて起動(IGNITION)では・・・?
あとSetRangeもないのも原因

①:このカードが自分のデッキ・手札・フィールドに存在する場合に1000LP払い、自分または相手の墓地の魔法カード1枚を対象にして発動できる。
そのカードを手札に加える。
こんな感じじゃないかな多分考えてる完成形って

543名無しデュエリスト:2018/05/02(水) 20:12:13 ID:Tn.8acpw0
>>542
まだ慣れてなくて申し訳ない。
魔法カードは自分の墓地限定ですね。
効果はアットウィキから殆どコピペなので次はちゃんと書きます。

544名無しデュエリスト:2018/05/02(水) 20:16:26 ID:Gzo3pjw20
>>543
〇裕氏のホルアクティは発動しない効果なんですがそっちのほうがいいんですかね?

545名無しデュエリスト:2018/05/02(水) 21:07:13 ID:Tn.8acpw0
>>544

発動しない効果とは?

546名無しデュエリスト:2018/05/02(水) 21:10:00 ID:Tn.8acpw0
>>542
SetRangeって何処に書いてますか?
別のカードから探さなくちゃいけないんですかね?

547名無しデュエリスト:2018/05/02(水) 21:34:37 ID:Gzo3pjw20
>>546
発動する効果は起動・誘発・誘発即時効果の総称で
発動しない効果は永続・ルール効果のことですかね(たぶん)

SetRangeはe1とかの中にあると思いますよ

548名無しデュエリスト:2018/05/02(水) 21:55:43 ID:Tn.8acpw0
>>547
発動する効果の場合何処を直せばいいんですかね?
あと[string"./script/c10020.lua"]:24:attempt to index local ’eg’(a nil value)のエラーが出ちゃいました。意味を教えて頂ければ助かります。出来れば解決策も…
SetRangeは見つかりました。ありがとうございます
質問多くてすみません!回答よろしくお願いします!

549名無しデュエリスト:2018/05/02(水) 22:16:23 ID:Gzo3pjw20
>>548
EFFECT_TYPE_CONTINUOUSを任意の効果タイプに変えるといいですよ。
どんなのがあるかは自分で探してみてください。
エラーコードは簡単に言うと24行目の引数egに異常があります的な感じです。
c:IsType(TYPE_SPELL)だけにしたら行けると思われます。

550名無しデュエリスト:2018/05/03(木) 06:42:57 ID:Tn.8acpw0
>>549
ターン制限って何処に書いてますか?
調べても出てこなくて

551名無しデュエリスト:2018/05/03(木) 14:11:36 ID:TALgY09Q0
そういう時は同じ条件を持ったカードを探そう!
よほど複雑だったり、専用処理とかじゃない簡単な奴なら文字から大体察せるはず

ちなみにターン制限はこう
SetCountLimit(1) 
これで1ターンに1度だけ発動できる奴

SetCountLimit(1,カード番号)
こうすると「カード名」の効果を1t1にできる

SetCountLimit(1,カード番号+EFFECT_COUNT_CODE_DUEL)
これでデュエル中1回ね

552名無しデュエリスト:2018/05/03(木) 14:20:28 ID:TqZeHOlI0
>>551
無制限は出来ないんですか?

553名無しデュエリスト:2018/05/03(木) 19:05:30 ID:Gzo3pjw20
>>552
何も書かなかったら無制限ですよ

554名無しデュエリスト:2018/05/04(金) 14:03:31 ID:TqZeHOlI0
現在ギャンブルデッキでサイコロの目を決められる効果を作りたいのですが、参考になるスクリプトがわからず困ってます。
コインは光の結界を参考にすればいいのですが後はさっぱりです。
お時間がある時に返答お願いします。

555名無しデュエリスト:2018/05/04(金) 14:24:17 ID:BdKCdnkY0
>>554
出たら目を弄るのは?

556名無しデュエリスト:2018/05/04(金) 20:32:17 ID:TqZeHOlI0
>>555
すみません!光の結界のスクリプトでコインの裏表決めるのとアルカナ限定を消す方法教えてください!
あと出たら目はどんな風に弄ればサイコロの目を決められる効果になりますかね?
質問多くて申し訳ない!!ご返答よろしくお願いします!!

557名無しデュエリスト:2018/05/04(金) 21:14:51 ID:Gzo3pjw20
>>556
光の結界はコインの裏表を変えてるわけではないので、
参考にするなら鉄砲撃とかを参考にしたほうがいいかと。

でたらめはのdcに1〜6の任意の数を入れれるようにいい感じに作ってください。
複数サイコロ振る場合に1個しか変えられないけどがんばってくだせい

558名無しデュエリスト:2018/05/05(土) 22:53:52 ID:TqZeHOlI0
現在トゥルースドラゴン作っているのですがSinモンスターが破壊されたのに特殊召喚されないのは何でですかね?
スクリプト貼るので知っている方はお答えいただけると有り難いです。

--Sin トゥルース・ドラゴン
function c3029.initial_effect(c)
c:EnableReviveLimit()
--Cannot special summon
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(aux.FALSE)
c:RegisterEffect(e1)
--special summon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(3029,0))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY+EFFECT_FLAG_CHAIN_UNIQUE)
e2:SetCode(EVENT_DESTROYED)
e2:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetCondition(c3029.spcon)
e1:SetCost(c3029.spcost)
e1:SetTarget(c3029.sptg)
e1:SetOperation(c3029.spop)
c:RegisterEffect(e2)
--self destroy
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_SELF_DESTROY)
e3:SetCondition(c3029.descon2)
c:RegisterEffect(e3)
--Destroy replace
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetRange(LOCATION_MZONE)
e4:SetCode(EFFECT_DESTROY_REPLACE)
e4:SetTarget(c3029.desreptg)
c:RegisterEffect(e4)
end
function c3029.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.PayLPCost(tp,math.floor(Duel.GetLP(tp)/2))
end
function c3029.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c3029.cfilter,1,nil,tp)
end
function c3029.cfilter(c,tp)
return c:GetPreviousControler()==tp and c:IsPreviousLocation(LOCATION_MZONE) and c:IsPreviousPosition(POS_FACEUP)
and c:IsPreviousSetCard(0x23) and c:GetPreviousCodeOnField()~=3029 and not c:IsReason(REASON_RULE)
end
function c3029.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,true,true) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c3029.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,0,tp,tp,true,true,POS_FACEUP)~=0 then
c:CompleteProcedure()
elseif Duel.GetLocationCount(tp,LOCATION_MZONE)<=0
and c:IsCanBeSpecialSummoned(e,0,tp,true,true) and c:IsLocation(LOCATION_HAND) then
Duel.SendtoGrave(c,REASON_RULE)
end
end
function c3029.descon2(e)
return not Duel.IsEnvironment(27564031)
end
function c3029.desreptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return not c:IsReason(REASON_REPLACE)
and Duel.IsExistingMatchingCard(c3029.repfilter,tp,LOCATION_GRAVE,0,1,nil) end
if Duel.SelectYesNo(tp,aux.Stringid(25165047,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c3029.repfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST)
return true
else return false end
end

559名無しデュエリスト:2018/05/05(土) 23:58:49 ID:TALgY09Q0
e1:SetCondition(c3029.spcon)
e1:SetCost(c3029.spcost)
e1:SetTarget(c3029.sptg)
e1:SetOperation(c3029.spop)
c:RegisterEffect(e2)
「e1」まずこの数字の番号は見直そうね、よくあるミスの1つだから

560名無しデュエリスト:2018/05/07(月) 19:24:23 ID:TqZeHOlI0
>>559
召喚はできましたが今度はSinモンスターが戦闘で相手モンスターを破壊した時相手のモンスターを全て破壊し、破壊した数×800のダメージを与えるという効果が発動出来ません。
スクリプトとスクリプトエラーを貼らせていただくので回答よろしくお願いします

561名無しデュエリスト:2018/05/07(月) 19:26:52 ID:TqZeHOlI0
>>560
sinトゥルースドラゴン
function c3029.initial_effect(c)
c:EnableReviveLimit()
--Cannot special summon
local e1=Effect.CreateEffect(c)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(aux.FALSE)
c:RegisterEffect(e1)
--special summon
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(3029,0))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCategory(CATEGORY_SPECIAL_SUMMON)
e2:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY+EFFECT_FLAG_CHAIN_UNIQUE)
e2:SetCode(EVENT_DESTROYED)
e2:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e2:SetCondition(c3029.spcon)
e2:SetCost(c3029.spcost)
e2:SetTarget(c3029.sptg)
e2:SetOperation(c3029.spop)
c:RegisterEffect(e2)
--self destroy
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e3:SetRange(LOCATION_MZONE)
e3:SetCode(EFFECT_SELF_DESTROY)
e3:SetCondition(c3029.descon2)
c:RegisterEffect(e3)
--Destroy replace
local e4=Effect.CreateEffect(c)
e4:SetType(EFFECT_TYPE_CONTINUOUS+EFFECT_TYPE_SINGLE)
e4:SetProperty(EFFECT_FLAG_SINGLE_RANGE)
e4:SetRange(LOCATION_MZONE)
e4:SetCode(EFFECT_DESTROY_REPLACE)
e4:SetTarget(c3029.desreptg)
c:RegisterEffect(e4)
--destroy
local e9=Effect.CreateEffect(c)
e9:SetDescription(aux.Stringid(3029,1))
e9:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e9:SetCategory(CATEGORY_DESTROY)
e9:SetCode(EVENT_BATTLE_DESTROYING)
e9:SetCondition(c3029.descon)
e9:SetTarget(c3029.destg)
e9:SetOperation(c3029.desop)
c:RegisterEffect(e9)
end

562名無しデュエリスト:2018/05/07(月) 19:27:25 ID:TqZeHOlI0
>>561
function c3029.spcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.PayLPCost(tp,math.floor(Duel.GetLP(tp)/2))
end
function c3029.spcon(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c3029.cfilter,1,nil,tp)
end
function c3029.cfilter(c,tp)
return c:GetPreviousControler()==tp and c:IsPreviousLocation(LOCATION_MZONE) and c:IsPreviousPosition(POS_FACEUP)
and c:IsPreviousSetCard(0x23) and c:GetPreviousCodeOnField()~=3029 and not c:IsReason(REASON_RULE)
end
function c3029.descon2(e)
return not Duel.IsEnvironment(27564031)
end
function c3029.desreptg(e,tp,eg,ep,ev,re,r,rp,chk)
local c=e:GetHandler()
if chk==0 then return not c:IsReason(REASON_REPLACE)
and Duel.IsExistingMatchingCard(c3029.repfilter,tp,LOCATION_GRAVE,0,1,nil) end
if Duel.SelectYesNo(tp,aux.Stringid(25165047,1)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c3029.repfilter,tp,LOCATION_GRAVE,0,1,1,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST)
return true
else return false end
end
function c3029.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,true,true) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,e:GetHandler(),1,0,0)
end
function c3029.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,0,tp,tp,true,true,POS_FACEUP)~=0 then
c:CompleteProcedure()
elseif Duel.GetLocationCount(tp,LOCATION_MZONE)<=0
and c:IsCanBeSpecialSummoned(e,0,tp,true,true) and c:IsLocation(LOCATION_HAND) then
Duel.SendtoGrave(c,REASON_RULE)
end
end
function c3029.descon(e,tp,eg,ep,ev,re,r,rp)
local tc=eg:GetFirst()
local bc=tc:GetBattleTarget()
return tc:IsRelateToBattle() and tc:IsStatus(STATUS_OPPO_BATTLE) and tc:IsControler(tp) and tc:IsSetCard(0x23)
and bc:IsReason(REASON_BATTLE)
end
function c3029.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return true end
local g=Duel.GetMatchingGroup(Card.IsDestructable,tp,0,LOCATION_MZONE,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,g:GetCount()*800)
end
function c3029.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(Card.IsDestructable,tp,0,LOCATION_MZONE,nil)
local ct=Duel.Destroy(g,REASON_EFFECT)
if ct~=0 then
Duel.BreakEffect()
Duel.Damage(1-tp,ct*800,REASON_EFFECT)
end
end
エラー
[string./script/c3029.lua"]:92:attempt to index local 'eg' (a nil value)

563名無しデュエリスト:2018/05/07(月) 20:32:21 ID:Gzo3pjw20
>>560 >>561 >>562
e9の効果タイプのSINGLEをFIELDに変えてみて

564名無しデュエリスト:2018/05/07(月) 21:07:22 ID:TqZeHOlI0
>>563
エラーは無くなりましたが破壊する効果が使えないですね。コードが機能してないのでしょうか?

565名無しデュエリスト:2018/05/07(月) 23:09:58 ID:Gzo3pjw20
>>564
c3029.desconのtcに相手のモンスター
bcに自分のSinが入るようにしてみて
詳しいことは自分で調べてみて

566名無しデュエリスト:2018/05/16(水) 16:58:35 ID:7CzCD58M0
>>565
返信遅れて申し訳ないです。
申し訳ないですがもう少し噛み砕いてお願い出来ますか?何を調べればいいんでしょうか?

567名無しデュエリスト:2018/05/16(水) 20:27:11 ID:Gzo3pjw20
>>566
自分の特定条件のモンスターが戦闘で破壊した場合に発動する効果を持ってるモンスターが
いるのでそのスクリプトを参考にしてみてくださいということです。

568名無しデュエリスト:2018/06/19(火) 21:11:22 ID:uREhPgNQ0
現在アニメオリカの「トリックスター・ハルシネイション」を作っています。光神化を元に作っているのですが天使族をトリックスターに変える方法とその後のお互いの一枚ドロー、そして特殊召喚したモンスターの効果を無効にする方法を知りたいです。
現在の進行状況はこんな感じです。

--トリックスター・ハルシネイション
function c10000.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,10000+EFFECT_COUNT_CODE_OATH)
e1:SetTarget(c10000.target)
e1:SetOperation(c10000.activate)
c:RegisterEffect(e1)
end
function c10000.filter(c,e,tp)
return c:IsRace(RACE_FAIRY) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c10000.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c10000.filter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_HAND)
end
function c10000.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c10000.filter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc then
local atk=tc:GetAttack()
if Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetValue(atk/2)
e1:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e1,true)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e2,true)
tc:CompleteProcedure()
Duel.SpecialSummonComplete()
end
end
end
function c10000.desop(e,tp,eg,ep,ev,re,r,rp)
Duel.Destroy(e:GetHandler(),REASON_EFFECT)
end

効果はこんな感じに仕上げたいです。

このカード名のカードは1ターンに1度しか使用できない。
①:手札から「トリックスター」モンスター1体を特殊召喚し、
その後、お互いはデッキから1枚ドローする。
この効果で特殊召喚したモンスターの攻撃力は半分になり、効果は無効化される。

どうかご返答よろしくお願いします。

569名無しデュエリスト:2018/06/20(水) 00:53:10 ID:Gzo3pjw20
>>568
天使族の部分は
c:IsRace(RACE_FAIRY)をトリックスターのc:IsSetCardに書き換えてみてください。
その後の1ドローはその後の効果を持つカードと一時休戦あたりを参考にしてみてください。
無効化は適当な無効になる系のカードを参考にしてみてください。

570名無しデュエリスト:2018/06/20(水) 09:13:01 ID:uREhPgNQ0
>>569
お互いの一枚ドローだけやり方が分からないです。どこに一時休戦のどのコードを挿入すればいいのでしょうか?

--トリックスター・ハルシネイション
function c10000.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,10000+EFFECT_COUNT_CODE_OATH)
e1:SetTarget(c10000.target)
e1:SetOperation(c10000.activate)
c:RegisterEffect(e1)
end
function c10000.filter(c,e,tp)
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0xfb) and c:IsAbleToHand()
end
function c10000.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c10000.filter,tp,LOCATION_HAND,0,1,nil,e,tp) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_HAND)
end
function c10000.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c10000.filter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc then
local atk=tc:GetAttack()
if Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetValue(atk/2)
e1:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e1,true)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE)
e2:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e2,true)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DISABLE_EFFECT)
e3:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e3,true)
tc:CompleteProcedure()
Duel.SpecialSummonComplete()
end
end
end

571名無しデュエリスト:2018/06/20(水) 20:06:29 ID:Gzo3pjw20
>>570
Duel.SpecialSummonComplete()
の下にその後の処理を入れてからドローを入れるといいですよ
あとお互いにドローできる状態じゃないと
発動できないようにもしたほうがいいと思われます

572名無しデュエリスト:2018/06/20(水) 23:20:25 ID:uREhPgNQ0
>>571
図々しくて申し訳ないのですが処理とドローのコードの部分も具体的に知りたいです。スクリプトいじりがまだまだ初心者で教えて頂けると助かります。

573名無しデュエリスト:2018/06/20(水) 23:29:33 ID:Gzo3pjw20
>>572
Duel.BreakEffect()を入れると処理が同時扱いではなくなります。
逆にこれがなかったら同時になるはずです。
Duel.Draw(player,count,reason)がドローするコードになります。
player,count,reasonはそれぞれ引くプレイヤー、引く数、引く原因になります

574名無しデュエリスト:2018/06/21(木) 09:16:02 ID:uREhPgNQ0
>>573
一時休戦のスクリプトから何をとってどこに挿入するのかが分からないです。

575名無しデュエリスト:2018/06/22(金) 00:08:19 ID:Gzo3pjw20
>>574
一時休戦の
local d1=Duel.Draw(tp,1,REASON_EFFECT)
local d2=Duel.Draw(1-tp,1,REASON_EFFECT)
をDuel.SpecialSummonComplete()の下に入れて
=から前を消したら大丈夫です

576名無しデュエリスト:2018/06/22(金) 12:01:14 ID:uREhPgNQ0
>>574
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DISABLE_EFFECT)
e3:SetReset(RESET_EVENT+0x1fe0000)
tc:RegisterEffect(e3,true)
tc:CompleteProcedure()
Duel.SpecialSummonComplete()
Duel.Draw(tp,1,REASON_EFFECT)
Duel.Draw(1-tp,1,REASON_EFFECT)
end
こうですか?これでもドローができないのですが何が原因なんですかね?

577名無しデュエリスト:2018/06/22(金) 19:47:09 ID:Gzo3pjw20
>>576
それと同じ書き方で試したところドローできたのでもう一度全文を見せてください。

578名無しデュエリスト:2018/06/22(金) 22:39:56 ID:uREhPgNQ0
>>577
すみませんできました!別のスクリプトに一時休戦のコードを貼ってました
ありがとうございました。次もトリックスターのカードを作っていくので分からないときお時間がありましたらよろしくお願いします。

579名無しデュエリスト:2018/06/23(土) 02:27:51 ID:dcD15Mro0
>>578
基本下げ進行でお願いしますね。
参考までに

--トリックスタールシネイション
function c1001.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_DRAW)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetCountLimit(1,1001+EFFECT_COUNT_CODE_OATH)
e1:SetTarget(c1001.target)
e1:SetOperation(c1001.activate)
c:RegisterEffect(e1)
end
--getsu
function c1001.filter(c,e,tp)
return c:IsSetCard(0xfb) and c:IsCanBeSpecialSummoned(e,0,tp,false,false)
end
function c1001.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsExistingMatchingCard(c1001.filter,tp,LOCATION_HAND,0,1,nil,e,tp)
and Duel.IsPlayerCanDraw(tp,1) and Duel.IsPlayerCanDraw(1-tp,1) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,LOCATION_HAND)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,PLAYER_ALL,1)
end
function c1001.activate(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c1001.filter,tp,LOCATION_HAND,0,1,1,nil,e,tp)
local tc=g:GetFirst()
if tc then
local atk=tc:GetAttack()
if Duel.SpecialSummonStep(tc,0,tp,tp,false,false,POS_FACEUP) then
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_IGNORE_IMMUNE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetValue(atk/2)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1,true)
local e2=Effect.CreateEffect(e:GetHandler())
e2:SetType(EFFECT_TYPE_SINGLE)
e2:SetCode(EFFECT_DISABLE_EFFECT)
e2:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e2,true)
local e3=Effect.CreateEffect(e:GetHandler())
e3:SetType(EFFECT_TYPE_SINGLE)
e3:SetCode(EFFECT_DISABLE)
e3:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e3,true)
Duel.SpecialSummonComplete()
if atk>0 then
Duel.BreakEffect()
Duel.Draw(tp,1,REASON_EFFECT)
Duel.Draw(1-tp,1,REASON_EFFECT)
end
end
end
end

580名無しデュエリスト:2018/06/23(土) 15:53:13 ID:6OiG1vXo0
オリカ開発wiki閉鎖?

581名無しデュエリスト:2018/06/23(土) 20:41:48 ID:gJ/PKPa60
>>580
大元の鯖が落ちてるらしい

582名無しデュエリスト:2018/06/23(土) 21:35:42 ID:6OiG1vXo0
>>580
もう3日くらい繋がらんからコンマイの圧力閉鎖の手が回ったかと心配したわ
関数のレファレンスに便利だからあのサイト無くなるとちと困る

583名無しデュエリスト:2018/06/24(日) 09:03:01 ID:SekwNYEA0
《森の番人グリーン・バブーン》を旧裁定(他の獣が戦闘破壊されても使用可能)で使いたいのですが、
何処をいじればよいかご教授お願いします。。

《森の狩人イエロー・バブーン》がヒントになると思うのですが。。

584名無しデュエリスト:2018/06/24(日) 11:05:55 ID:LXQr85U60
>>583
「幻影騎士団フラジャイルアーマー」みたいな戦闘・効果を条件とする記述に変えればいい

585名無しデュエリスト:2018/06/24(日) 11:45:16 ID:SekwNYEA0
>>584
こんな感じでしょうか?

--森の番人グリーン・バブーン
function c46668237.initial_effect(c)
--spsummon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(46668237,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e1:SetRange(LOCATION_HAND+LOCATION_GRAVE)
e1:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY)
e1:SetCode(EVENT_DESTROYED)
e1:SetCondition(c46668237.condition)
e1:SetCost(c46668237.cost)
e1:SetTarget(c46668237.target)
e1:SetOperation(c46668237.operation)
c:RegisterEffect(e1)
end
function c46668237.filter(c,tp)
return c:IsReason(REASON_BATTLE+REASON_EFFECT) and c:IsRace(RACE_BEAST) and c:GetPreviousControler()==tp
and c:IsPreviousLocation(LOCATION_MZONE)
end
function c46668237.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c46668237.filter,1,nil,tp)
end
function c46668237.target(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 c46668237.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if not c:IsRelateToEffect(e) then return end
Duel.SpecialSummon(c,0,tp,tp,false,false,POS_FACEUP)
end
function c46668237.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.CheckLPCost(tp,1000) end
Duel.PayLPCost(tp,1000)
end

586名無しデュエリスト:2018/06/24(日) 12:23:08 ID:LXQr85U60
墓地へ送られないと発動できないので
e1:SetCode(EVENT_DESTROYED)→e1:SetRange(LOCATION_GRAVE)かな

旧裁定は裏で破壊されてもいいんでしたっけ?

587名無しデュエリスト:2018/06/24(日) 12:25:18 ID:LXQr85U60
「時の任意効果」なので「+EFFECT_FLAG_DELAY」も不要かな

588名無しデュエリスト:2018/06/24(日) 12:42:47 ID:SekwNYEA0
>>586
set rangeはもうあるので、codeを消せばよいのかな

589名無しデュエリスト:2018/06/24(日) 13:04:38 ID:Gzo3pjw20
>>588
codeをEVENT_TO_GRAVEにしてconditionにc:IsReason(REASON_DESTROY)をいれるか
codeそのままでconditionにc:IsLocation(LOCATION_GRAVE)を入れるかってかんじですかね

590名無しデュエリスト:2018/06/24(日) 13:12:52 ID:SekwNYEA0
ありがとうございます。
もう少し弄ってみます

591名無しデュエリスト:2018/06/24(日) 13:50:21 ID:LXQr85U60
すまぬ。コピペミスです。
e1:SetCode(EVENT_TO_GRAVE)

592名無しデュエリスト:2018/06/25(月) 12:51:34 ID:uREhPgNQ0
現在トリックスターギタースイートを弄っているのですが
[Script Error][string"./script/c10004.lua"]:53:`than`expected near`&`
[Script Error]"CallCardFunction"(c10004 initial_effect):attempt to call an error function
[Script Error]"CallCardFunction"(c10004 initial_effect):attempt to call an error function
というエラーが出てしまいます。スクリプトは

593名無しデュエリスト:2018/06/25(月) 12:53:48 ID:uREhPgNQ0
>>592
トリックスター・ギタースイート
function c10004.initial_effect(c)
--fusion material
c:EnableReviveLimit()
aux.AddFusionProcMix(c,true,true,c10004.matfilter,aux.FilterBoolFunction(Card.IsFusionSetCard,0xfb))
--aux.FilterBoolFunctionEx(Card.IsSetCard,0xfb)
--avoid damage
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_FIELD)
e1:SetCode(EFFECT_CHANGE_DAMAGE)
e1:SetRange(LOCATION_MZONE)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_AVAILABLE_BD)
e1:SetTargetRange(0,1)
e1:SetValue(c10004.damval)
c:RegisterEffect(e1)
--atk
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(10004,0))
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e2:SetCode(EVENT_DAMAGE)
e2:SetRange(LOCATION_MZONE)
e2:SetCondition(c10004.atkcon)
e2:SetOperation(c10004.atkop)
c:RegisterEffect(e2)
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(10004,0))
e3:SetCategory(CATEGORY_TOHAND+CATEGORY_LEAVE_GRAVE)
e3:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e3:SetCode(EVENT_PHASE+PHASE_END)
e3:SetRange(LOCATION_MZONE)
e3:SetCountLimit(1)
e3:SetLabelObject(e2)
e3:SetCondition(c10004.condition)
e3:SetTarget(c10004.target)
e3:SetOperation(c10004.operation)
c:RegisterEffect(e3)
end
c10004.material_setcode={0xfb}
function c10004.matfilter(c,fc,sumtype,tp)
return c:IsType(TYPE_LINK,fc,sumtype,tp) and c:IsFusionSetCard(0xfb)
--c:IsSetCard(0xfb,fc,sumtype,tp)
end
function c10004.ffilter(c,fc,sumtype,tp,sub,mg,sg)
return (not sg or sg:IsExists(c10004.fusfilter,1,nil,fc,sumtype,tp))
end
function c10004.fusfilter(c,fc,sumtype,tp)
return c:IsType(TYPE_LINK,fc,sumtype,tp)
end

594名無しデュエリスト:2018/06/25(月) 12:54:28 ID:uREhPgNQ0
>>593
function c10004.matfilter(c,fc,sub,sub2,mg,sg,tp,contact)
return c:IsSetCard(0xfb,fc,SUMMON_TYPE_FUSION,tp)
end
function c10004.damval(e,re,val,r,rp,rc)
if re and r&REASON_EFFECT==REASON_EFFECT and re:GetHandler():IsFaceup()
and re:GetHandler():IsSetCard(0xfb) and re:IsActiveType(TYPE_MONSTER)
and re:GetHandler():GetLinkedGroup():IsContains(e:GetHandler()) then
return val*2
end
return val
end
function c10004.atkcon(e,tp,eg,ep,ev,re,r,rp)
return ep~=tp and bit.band(r,REASON_EFFECT)~=0 and re:IsActiveType(TYPE_MONSTER) and re:GetHandler():IsSetCard(0xfb)
end
function c10004.atkop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetLabelObject(e)
e1:SetValue(ev)
e1:SetReset(RESET_EVENT+0x1ff0000)
c:RegisterEffect(e1)
end
end
function c10004.thfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0xfb) and c:IsAbleToHand()
end
function c10004.condition(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():GetAttackedCount()>0
end
function c10004.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then
local effs={e:GetHandler():GetCardEffect(EFFECT_UPDATE_ATTACK)}
for _,eff in ipairs(effs) do
if eff:GetLabelObject()==e:GetLabelObject() then
return true
end
end
return false
end
Duel.SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_GRAVE)
Duel.SetOperationInfo(0,CATEGORY_LEAVE_GRAVE,nil,1,tp,LOCATION_GRAVE)
end
function c10004.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsFaceup() and c:IsRelateToEffect(e) then
local chk=false
local effs={c:GetCardEffect(EFFECT_UPDATE_ATTACK)}
for _,eff in ipairs(effs) do
if eff:GetLabelObject()==e:GetLabelObject() then
eff:Reset()
chk=true
end
end
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c10004.thfilter),tp,LOCATION_GRAVE,0,nil)
if chk and #g>0 and Duel.SelectYesNo(tp,aux.Stringid(10004,0)) then
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:Select(tp,1,1,nil)
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg)
end
end
end
足りない情報がありましたらできる限りお答えしますのでよろしくお願いします。

595名無しデュエリスト:2018/06/25(月) 19:45:50 ID:Gzo3pjw20
>>594
r&REASON_EFFECT==REASON_EFFECTをbit.band(r,REASON_EFFECT)~=0に変えるといいですよ
あと効果の全体像が分からないのでそこも書いてもらえますか?

596名無しデュエリスト:2018/06/25(月) 20:45:34 ID:hNa7FC8s0
>>592-594
とりあえず下げ進行でお願いします。

597名無しデュエリスト:2018/06/25(月) 21:36:31 ID:uREhPgNQ0
コンマイ語が分からないので自分の言葉になってしまいますが、

「トリックスター」リンクモンスター1体+モンスター1体
①:このモンスターとリンクしている「トリックスター」モンスターがあいてに効果ダメージを与える時に発動できる。効果ダメージを倍にする。
②:相手に「トリックスター」モンスターの効果ダメージを与えた時、このカードの攻撃力を与えた効果ダメージの数値分アップする。1ターンに1度、エンドフェイズに攻撃力を元に戻すことで墓地の「トリックスター」モンスターを手札に加える。

これで下げ進行になってますかね?

598名無しデュエリスト:2018/06/25(月) 22:10:53 ID:Gzo3pjw20
>>597
なってますよ
②は攻撃力を戻すまでが強制でサルベージは任意という認識でいいですかね?

599名無しデュエリスト:2018/06/25(月) 22:13:33 ID:uREhPgNQ0
>>598
はい間違いないです。

600名無しデュエリスト:2018/06/25(月) 22:15:50 ID:Gzo3pjw20
>>599
とりあえず>>595を直したら②のエンド時以外は正常に動くのでやってみてください

601名無しデュエリスト:2018/06/25(月) 22:17:42 ID:uREhPgNQ0
>>600
できました!ありがとうございます!

602名無しデュエリスト:2018/06/25(月) 22:22:23 ID:uREhPgNQ0
連投すみません。このエラーがわからなくて困っています

[Script Error][string"./script/c10007.lua"]:49:`)`expected near`&`
[Script Error]"CallCardFunction"(c10007 initial_effect):attempt to call an error function
[Script Error]"CallCardFunction"(c10007 initial_effect):attempt to call an error function
[Script Error]"CallCardFunction"(c10007 initial_effect):attempt to call an error function

function c10007.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOHAND+CATEGORY_LEAVE_GRAVE)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetOperation(c10007.activate)
c:RegisterEffect(e1)
--token
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(10007,0))
e2:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e2:SetProperty(EFFECT_FLAG_CARD_TARGET)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_FZONE)
e2:SetCountLimit(1,10007)
e2:SetTarget(c10007.tktg1)
e2:SetOperation(c10007.tkop1)
c:RegisterEffect(e2)
--token2
local e3=Effect.CreateEffect(c)
e3:SetDescription(aux.Stringid(10007,0))
e3:SetCategory(CATEGORY_SPECIAL_SUMMON+CATEGORY_TOKEN)
e3:SetType(EFFECT_TYPE_IGNITION)
e3:SetRange(LOCATION_FZONE)
e3:SetCountLimit(1,10007)
e3:SetCondition(c10007.tkcon)
e3:SetTarget(c10007.tktg2)
e3:SetOperation(c10007.tkop2)
c:RegisterEffect(e3)
end

603名無しデュエリスト:2018/06/25(月) 22:23:58 ID:uREhPgNQ0
function c10007.thfilter(c)
return c:IsType(TYPE_MONSTER) and c:IsSetCard(0xfb) and c:IsAbleToHand()
end
function c10007.activate(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) or Duel.GetFlagEffect(tp,10007)>0 then return end
local g=Duel.GetMatchingGroup(aux.NecroValleyFilter(c511600176.thfilter),tp,LOCATION_GRAVE,0,nil)
if g:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(10007,0)) then
Duel.RegisterFlagEffect(tp,10007,RESET_PHASE+PHASE_END,0,1)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_ATOHAND)
local sg=g:Select(tp,1,1,nil)
Duel.SendtoHand(sg,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,sg)
end
end
function c10007.filter(c,e,tp)
return c:IsFaceup() and c:IsType(TYPE_LINK) and c:IsSetCard(0xfb)
and Duel.GetLocationCount(tp,LOCATION_MZONE,tp,LOCATION_REASON_TOFIELD,c:GetLinkedZone()&0x1f)>0
end
function c10007.tktg1(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_MZONE) and c10007.filter(chkc,e,tp) and chkc:IsControler(tp) end
if chk==0 then return Duel.IsExistingTarget(c511600176.filter,tp,LOCATION_MZONE,0,1,nil,e,tp)
and Duel.IsPlayerCanSpecialSummonMonster(tp,10007,0xfb,0x4011,0,0,1,RACE_FAIRY,ATTRIBUTE_LIGHT,POS_FACEUP_DEFENSE) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TARGET)
Duel.SelectTarget(tp,c10007.filter,tp,LOCATION_MZONE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
end
function c10007.tkop1(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
local tc=Duel.GetFirstTarget()
local zones=tc:GetLinkedZone()&0x1f
local token=Duel.CreateToken(tp,10007)
if not tc:IsRelateToEffect(e) or not tc:IsFaceup()
or not token:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP_DEFENSE,tp,zones) then return end
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP_DEFENSE,zones)
end
function c10007.cfilter(c)
return c:IsFacedown() and c:GetSequence()<5
end
function c10007.tkcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.IsExistingMatchingCard(c10007.cfilter,tp,0,LOCATION_SZONE,1,nil)
end
function c10007.tktg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and Duel.IsPlayerCanSpecialSummonMonster(tp,10007,0xfb,0x4011,0,0,1,RACE_FAIRY,ATTRIBUTE_LIGHT,POS_FACEUP_DEFENSE) end
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,nil,1,0,0)
Duel.SetOperationInfo(0,CATEGORY_TOKEN,nil,1,0,0)
end
function c10007.tkop2(e,tp,eg,ep,ev,re,r,rp)
if not e:GetHandler():IsRelateToEffect(e) then return end
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0
or not Duel.IsPlayerCanSpecialSummonMonster(tp,10007,0xfb,0x4011,0,0,1,RACE_FAIRY,ATTRIBUTE_LIGHT,POS_FACEUP_DEFENSE) then return end
local token=Duel.CreateToken(tp,10007)
Duel.SpecialSummon(token,0,tp,tp,false,false,POS_FACEUP_DEFENSE)
end
毎度毎度すみません。よろしくお願いします。

604名無しデュエリスト:2018/06/25(月) 22:25:01 ID:uREhPgNQ0
トリックスター・ライブステージ
このカード名の①②③の効果はそれぞれ1ターンに1度しか使用できない。
①:このカードの発動時に、自分の墓地の「トリックスター」モンスター1体を手札に加える事ができる。
②:自分フィールドの「トリックスター」リンクモンスター1体を対象として発動できる。
そのモンスターのリンク先となる自分フィールドに
「トリックスタートークン」(天使族・光・星1・攻/守0)1体を守備表示で特殊召喚する。
③:相手の魔法&罠ゾーンにカードがセットされている場合に発動できる。
フィールドに「トリックスタートークン」1体を守備表示で特殊召喚する。

605名無しデュエリスト:2018/06/25(月) 22:44:39 ID:Gzo3pjw20
>>604
どこからコピペしてきたかはわからんけど
&0x1fを全部消していいと思うんだが

606名無しデュエリスト:2018/06/26(火) 13:36:16 ID:uREhPgNQ0
>>605
消したらできました。ありがとうございます

607名無しデュエリスト:2018/06/26(火) 14:34:31 ID:Gzo3pjw20
>>606
参考までにどこからスクリプト持ってきたか教えてもらえませんか?
見たことない書き方だったんでちょっと気になりまして

608名無しデュエリスト:2018/06/26(火) 14:43:01 ID:uREhPgNQ0
「リンク・デス・ターレット」の①を「デッキから「ヴァレット」モンスター2体を墓地に送り、このカードにカウンターを4つ置く。このターン、自分のリンクモンスターは戦闘では破壊されない。」にして
「この効果を発動するターン、自分は闇属性リンクモンスターしかEXデッキから特殊召喚できない」を消したいです。どこを付け足して何を消すかご教授お願いします。

リンク・デス・ターレット
①:このカードの発動時の効果処理として、デッキから「ヴァレット」モンスター2体を墓地に送り、このカードにカウンターを4つ置く。このターン、自分のリンクモンスターは戦闘では破壊されない。
②:自分が戦闘ダメージを受ける度に、このカードにヴァレットカウンターを1つ置く。
③:自分メインフェイズ2に、このカードのヴァレットカウンターを1つ取り除き、
自分の墓地の「ヴァレット」モンスター1体を対象として発動できる。
そのモンスターを守備表示で特殊召喚する。
この効果で特殊召喚したモンスターの効果は無効化され、フィールドから離れた場合に除外される。

609名無しデュエリスト:2018/06/26(火) 14:55:46 ID:Gzo3pjw20
>>608
2体墓地へ送りにするにはカウンター置く効果にスネーク・レインあたりからデッキから墓地へ送る効果を付け足して
targetに2枚墓地へ送れるかをチェックする項目を入れたらおkですよ
特殊召喚制限を消す方法はspcostのDuel.GetCustom〜ってやつとspcost内にあるe1を全部消したらいいですよ

610名無しデュエリスト:2018/06/26(火) 15:06:46 ID:uREhPgNQ0
>>607
ygopro_vs_linksって奴です。多分海外版ですかね

611名無しデュエリスト:2018/06/26(火) 15:31:16 ID:uREhPgNQ0
>>609
スネークレインの中のtargetとactivateがリンク・デス・ターレットの中にもあるんですがどうやれば両方とも消さずに付け足せるのですか?

612名無しデュエリスト:2018/06/26(火) 15:57:26 ID:Gzo3pjw20
>>611
targetは両方ともif chk==0 then から始まってる文章があると思うので
かぶっている部分の中に両方のやつを共存させるようにしたら大丈夫です。
activateのほうはスネークレインのほうの中身を
c:AddCounterの上に入れたら大丈夫です。
あとスネークレインのtgfilterも移しておきましょう

613名無しデュエリスト:2018/07/09(月) 19:10:33 ID:QibUdIyI0
開発wikiが落ちてるのつらいなぁ
代替できるようなサイトない?

614名無しデュエリスト:2018/07/16(月) 19:09:34 ID:uREhPgNQ0
リボルブート・セクターの選択肢に「デッキの上からカードを6枚めくり、その中野ヴァレットカードを全て墓地に送り、残りのカードは任意の順番でデッキの下に戻す」という効果を追加したいです。
どうすれば出来るかご教授よろしくお願いします。

615名無しデュエリスト:2018/07/17(火) 20:35:01 ID:uREhPgNQ0
>>614
すいませんできました

616名無しデュエリスト:2018/07/17(火) 20:42:14 ID:uREhPgNQ0
このエラーが分からず困っています
[Script Error][string"./script/c10007.lua"]:60:attempt to call a nill value(method'IsExtraLinked')
現在作っているスクリプトが
function c10012.initial_effect(c)
--link summon
aux.AddLinkProcedure(c,aux.FilterBoolFunction(Card.IsLinkType,TYPE_EFFECT),2)
c:EnableReviveLimit()
--damage
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(5821478,0))
e1:SetCategory(CATEGORY_DESTROY)
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_SPSUMMON_SUCCESS)
e1:SetRange(LOCATION_MZONE)
e1:SetCondition(c10012.descon)
e1:SetTarget(c10012.destg)
e1:SetOperation(c10012.desop)
c:RegisterEffect(e1)
--destroy
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(49352945,1))
e2:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e2:SetCategory(CATEGORY_DESTROY+CATEGORY_DAMAGE)
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetCondition(c10012.descon2)
e2:SetTarget(c10012.destg2)
e2:SetOperation(c10012.desop2)
c:RegisterEffect(e2)
--indes
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_FIELD)
e3:SetCode(EFFECT_INDESTRUCTABLE_EFFECT)
e3:SetRange(LOCATION_MZONE)
e3:SetTargetRange(LOCATION_MZONE,0)
e3:SetCondition(c10012.descon2)
e3:SetTarget(aux.TargetBoolFunction(Card.IsType,TYPE_LINK))
e3:SetValue(1)
c:RegisterEffect(e3)
end
function c10012.cfilter(c,zone)
local seq=c:GetSequence()
if c:IsControler(1) then seq=seq+16 end
return bit.extract(zone,seq)~=0
end
function c10012.descon(e,tp,eg,ep,ev,re,r,rp)
local zone=Duel.GetLinkedZone(0)+Duel.GetLinkedZone(1)*0x10000
return not eg:IsContains(e:GetHandler()) and eg:IsExists(c10012.cfilter,1,nil,zone)
and Duel.GetFieldGroupCount(tp,LOCATION_HAND,0)>0
end
function c10012.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_HAND,LOCATION_HAND,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end
function c10012.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,LOCATION_HAND,LOCATION_HAND,nil)
Duel.Destroy(g,REASON_EFFECT)
end
function c10012.descon2(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsExtraLinked()
end
function c10012.destg2(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_HAND,1,nil) end
local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_HAND,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,nil,0,1-tp,3000)
end
function c10012.desop2(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_HAND,nil)
if Duel.Destroy(g,REASON_EFFECT)~=0 then
Duel.Damage(1-tp,3000,REASON_EFFECT)
end
end

ご教授よろしくお願いします。

617名無しデュエリスト:2018/07/17(火) 20:44:59 ID:uREhPgNQ0
>>616
エラーのc10007はc10012でしたすみません。

効果モンスター2体以上
①:自分の手札があり、このカードが既にモンスターゾーンに存在する状態で
このカード以外のモンスターがリンクモンスターのリンク先に特殊召喚された場合に発動する。
お互いの手札を全て破壊する。
②:1ターンに1度、相手の手札があり、このカードがEXリンク状態の場合に発動できる。
相手の手札を全て破壊し、相手に3000ダメージを与える。
この効果は無効化されない。
③:EXリンク状態のこのカードがモンスターゾーンに存在する限り、
自分フィールドのリンクモンスターは効果では破壊されない。

618名無しデュエリスト:2018/07/25(水) 18:42:22 ID:53oaYJ7.0
ADSのバージョンによってリンク周りの関数が違うこともあるから人によるけど
IsExtraLinked → IsExtraLinkState で行けるように思います

619名無しデュエリスト:2018/07/25(水) 19:37:28 ID:53oaYJ7.0
以下のエラーが分からず困っています

①:このカードが手札に存在する場合に発動できる。このカードを召喚する。
この効果を発動するターン、自分はこの効果以外では召喚できない。

という効果をトリックスター・キャロベインを参考に書いたのですが、以下のスクリプトでは効果解決時にADSが落ちてしまいます
黒魔術のカーテン等も参考に試行錯誤したのですが、誓約効果かc11220.nslimitに不具合がある事しか分かりませんでした
どなたかご教授お願いします


--手札から通常召喚
function c11220.initial_effect(c)
--hand summon
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_HAND)
e1:SetCost(c11220.cost)
e1:SetTarget(c11220.target)
e1:SetOperation(c11220.operation)
c:RegisterEffect(e1)
end
function c11220.cost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetActivityCount(tp,ACTIVITY_SUMMON)==0 end
local e001=Effect.CreateEffect(e:GetHandler())
e001:SetType(EFFECT_TYPE_FIELD)
e001:SetCode(EFFECT_CANNOT_SUMMON)
e001:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
e001:SetTargetRange(1,0)
e001:SetTarget(c11220.nslimit)
e001:SetReset(RESET_PHASE+PHASE_END)
Duel.RegisterEffect(e001,tp)
end
function c11220.nslimit(e,c,sump,sumtype,sumpos,targetp,se)
return e:GetHandler()~=se:GetHandler()
end
function c11220.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
and e:GetHandler():IsSummonable(true,nil) end
Duel.SetOperationInfo(0,CATEGORY_SUMMON,e:GetHandler(),1,0,0)
end
function c11220.operation(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.Summon(tp,c,true,nil)
end
end

620名無しデュエリスト:2018/07/25(水) 19:42:08 ID:53oaYJ7.0
間違って黒魔術のカーテンを参考にした方の物を書いていました
ADSが落ちてしまうものは次の書き方でした

--手札から通常召喚
function c11220.initial_effect(c)
 --hand summon
 local e1=Effect.CreateEffect(c)
 e1:SetCategory(CATEGORY_SUMMON)
 e1:SetType(EFFECT_TYPE_IGNITION)
 e1:SetRange(LOCATION_HAND)
 e1:SetCost(c11220.cost)
 e1:SetTarget(c11220.target)
 e1:SetOperation(c11220.operation)
 c:RegisterEffect(e1)
end
function c11220.cost(e,tp,eg,ep,ev,re,r,rp,chk)
 if chk==0 then return Duel.GetActivityCount(tp,ACTIVITY_SUMMON)==0 end
 local e001=Effect.CreateEffect(e:GetHandler())
 e001:SetType(EFFECT_TYPE_FIELD)
 e001:SetCode(EFFECT_CANNOT_SUMMON)
 e001:SetProperty(EFFECT_FLAG_PLAYER_TARGET+EFFECT_FLAG_OATH)
 e001:SetTargetRange(1,0)
 e001:SetTarget(c11220.nslimit)
 e001:SetReset(RESET_PHASE+PHASE_END)
 e001:SetLabelObject(e)
 Duel.RegisterEffect(e001,tp)
end
function c11220.nslimit(e,c,sump,sumtype,sumpos,targetp,se)
 return se~=e:GetLabelObject()
end
function c11220.target(e,tp,eg,ep,ev,re,r,rp,chk)
 if chk==0 then return Duel.GetLocationCount(tp,LOCATION_MZONE)>0
   and e:GetHandler():IsSummonable(true,nil) end
 Duel.SetOperationInfo(0,CATEGORY_SUMMON,e:GetHandler(),1,0,0)
end
function c11220.operation(e,tp,eg,ep,ev,re,r,rp)
 local c=e:GetHandler()
 if c:IsRelateToEffect(e) then
   Duel.Summon(tp,c,true,nil)
 end
end

621名無しデュエリスト:2018/07/27(金) 22:37:15 ID:BBtrt52.0
スクリプト初心者です。オリジナルカードを作って遊ぼうと考えてスクリプトをいじり始めたのですが、
「『テーマ名(IDは173)』カードの効果以外で特殊召喚された場合」という効果の作り方がわかりません。

local c=e:GetHandler()
return c:IsSummonType(SUMMON_TYPE_SPECIAL) and not c:IsSetCard(0x173)

これで出来ると思っていたのですが、テーマカード以外で特殊召喚した場合でも効果が発動してしまいます。
メタファイズや征龍などのスクリプトとにらめっこしながら考えていたのですが一向に解決できず、皆さんのお知恵を拝借したいと存じ書き込ませていただきました。
どうぞよろしくお願いします。

622名無しデュエリスト:2018/07/29(日) 12:01:12 ID:Gzo3pjw20
>>621
bit.band(r,REASON_EFFECT)==0 が効果以外という意味なのでこれを突っ込んだら行けると思いますよ。

623名無しデュエリスト:2018/07/29(日) 18:30:27 ID:BBtrt52.0
>>622
回答ありがとうございます。

local c=e:GetHandler()
return bit.band(c:IsSetCard(0x0173),REASON_EFFECT)==0

こんな感じでしょうか? ただ、これだと以下のようなエラーが出てしまいます……。
どうすれば良いでしょうか。andでそのまま付け足した場合も同様でした。
[string "./script/utility.lua"]:10: attempt to perform bitwise operation on a boolean value (local 'a')

624名無しデュエリスト:2018/07/30(月) 14:30:08 ID:QibUdIyI0
いつの間にか開発wiki復活してるな
これではかどるぜ

625名無しデュエリスト:2018/07/30(月) 20:57:43 ID:Gzo3pjw20
>>623
bit.band(r,REASON_EFFECT)のrはそのeventが起こされた原因が格納されてるので
いじらないで大丈夫です。

626名無しデュエリスト:2018/08/01(水) 10:58:58 ID:El0ECnTM0
開発wiki復活してたのか
助かる

627名無しデュエリスト:2018/09/28(金) 22:09:56 ID:u/YFYLtw0
「お互いに相手ターンにカードを発動する場合、バトルフェイズにしか発動できない」
という効果のフィールド魔法を作りたいのですがどのようにすればいいでしょうか。

628名無しデュエリスト:2018/10/14(日) 08:50:00 ID:6BT6fqcQ0
オリカ作成の質問はここでいいのですか?

629名無しデュエリスト:2018/10/16(火) 18:58:02 ID:FI2YPcIU0
必要スレ
ageます

630名無しデュエリスト:2018/10/19(金) 14:09:41 ID:hdsteOPg0
オリカを利用した場合のADSでの挙動(?)に関しての質問です。

オリカを制作して身内間でデュエルを楽しんでいるのですが、先日から環境を34.4から34.5に変更した所、AI戦ができなくなってしまいました。
34.5にオリカを導入した状態でAI戦を始めようとすると「Windbot can't be started」というエラー表記が出て、AIがルームに入室して来ない状況です。
現在スクリプトと画像はそれぞれexpansion内のscriptとpicsフォルダ内に、カードデータはOriginalCard.cdbという別フォルダを制作して別途管理している状態です、解決方法などをご存知の方が居ましたらご教授お願いします。

631名無しデュエリスト:2018/10/19(金) 14:21:05 ID:n/b3j7LM0
>>630
AI戦では、まずオリカが使えないです。
また、本体更新の度に本体exeとBotのexeファイルをセキュリティソフトで例外設定にしなければいけません。

632名無しデュエリスト:2018/10/19(金) 14:33:02 ID:hdsteOPg0
>>631
回答有り難うございます、34.4の頃はAI戦でオリカが使えたのですが、34.5になってからの仕様変更と言う事でしょうか?
一応例外設定にはしているので、オリカを導入していない場合はAI戦は普通にする事は出来ます。

633名無しデュエリスト:2018/10/19(金) 15:24:15 ID:.0lzzWxU0
>>630,>>631
オリカは普通に使用できますよ。
自分もオリカ作成してますし、他人のオリカも導入してますが普通に動作しています。
cdbのデータ型がINTEGERじゃないと正常に動作しませんのでその部分と思われます。

634名無しデュエリスト:2018/10/19(金) 16:53:45 ID:hdsteOPg0
>>633
回答有り難うございます。
度々申し訳ありません、現状のcdbファイルが34.4で使っていたファイルをそのまま34.5に持ってきて使用しているのですが、34.4ではデータ型がINTEGERで無くても使用できたのでしょうか?
自分のcdbファイルのデータ型がどうなっているかの確認の仕方も分かっていない状況なので間違っているだけなのかもですが、ファイルの中身の形式は34.5で使用されてるcdbファイルと同じように見えます。
不勉強で申し訳ないのですが、教えて頂けると嬉しいです……

635名無しデュエリスト:2018/10/19(金) 17:19:16 ID:.0lzzWxU0
>>634
34.4以前はexpansionsフォルダを参照していませんですので、逆にcdbを置換すると読み込めなくなるはずです。
あとデータ型の確認方法は使用してるデータベースソフトによるとしか…。
例えばPupSQLiteの場合はカラムの編集ボタン(Ctrl+Eでも可)から確認できます。

636名無しデュエリスト:2018/10/19(金) 17:30:11 ID:hdsteOPg0
>>635
丁寧な回答ありがとうございます。
使用してるデータベースソフトはPupSQLiteだったのでカラムの編集ボタンから確認してみましたが、データ型はINTEGERだったみたいです。
その後改めて確認してみましたが、同様のエラーが出てしまいますね……

637名無しデュエリスト:2018/10/19(金) 19:39:35 ID:.0lzzWxU0
>>636
となるとcdbのデータに不適切な値が設定されてる以外確認できませんね。
一回cdb確認したいので投げてもらうというのは可能でしょうか?

638名無しデュエリスト:2018/10/19(金) 19:51:09 ID:hdsteOPg0
>>637
了解です、これでダウンロード出来るでしょうか?

ttps://drive.google.com/open?id=1dR8iNzTptZHNnY-gp0sUCQ_VfzlGKZhr

639名無しデュエリスト:2018/10/19(金) 20:21:18 ID:.0lzzWxU0
>>638
CREATE TABLEが異常な記述になってますね。
pre-release.cdbのような適当なcdbをコピーした後にオリカのcdbのSQL文をエクスポート後、コピーしたcdbにエクスポートしたSQL文のINSERT INTOの行だけをSQLで実行して余分なデータ削除すれば正常に読み込めます。

640名無しデュエリスト:2018/10/19(金) 21:49:00 ID:hdsteOPg0
>>639
無事AI戦、ソリティア戦が出来ました!色々と教えて頂きありがとうございました!

641名無しデュエリスト:2018/11/18(日) 10:14:39 ID:GI/yDUAY0
オリカ作成にてXYZのような除外融合を作りたいのですが、XYZのスクリプトの素材をそのまま別カードのコードに変えても特殊召喚できず、原因が知りたいのですがここに直接スクリプトを書き込んでもいいのでしょうか?
といっても、YZのスクリプトまんまですが、

642名無しデュエリスト:2018/11/18(日) 13:34:16 ID:2ft7nLQc0
サーバーリストに記載されてるアドレスの場所に行きそこで相談した方がいいと思います。

643名無しデュエリスト:2018/11/18(日) 14:18:02 ID:nVtl65NI0
ではXYZのような除外融合するためにはどのようなスクリプトが必要なのでしょうか?
何か個々に特別なものが割り振られるのですか?
オリカにまんまYZのスクリプトをぶちこみ(コードだけオリカに置換)、フィールドにYとZを並べても特殊召喚できません(同条件でYZはできます)

644名無しデュエリスト:2018/11/18(日) 15:43:23 ID:T6c5BC4o0
>>641
書き込んでいただいて大丈夫ですよ。
ディスコードについては>>642の方が書いてくれていますね

645名無しデュエリスト:2018/11/18(日) 19:52:43 ID:899eQebs0
>>644
ありがとうございます。
下記に書き込ませていただきます。
といっても「YZ」のスクリプトをコピペして「YZ」のコードを変えただけです。
素材も変えていないのになぜか「Y」と「Z」を並べても反応しません(同じ状況で「YZ」は反応します)。
よろしくお願いいたします。

function c2016.initial_effect(c)
--fusion material
c:EnableReviveLimit()
aux.AddFusionProcCode2(c,65622692,64500000,true,true)
--spsummon condition
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_UNCOPYABLE)
e1:SetCode(EFFECT_SPSUMMON_CONDITION)
e1:SetValue(c2016.splimit)
c:RegisterEffect(e1)
--special summon rule
local e2=Effect.CreateEffect(c)
e2:SetType(EFFECT_TYPE_FIELD)
e2:SetCode(EFFECT_SPSUMMON_PROC)
e2:SetProperty(EFFECT_FLAG_UNCOPYABLE)
e2:SetRange(LOCATION_EXTRA)
e2:SetCondition(c2016.spcon)
e2:SetOperation(c2016.spop)
c:RegisterEffect(e2)

end
function c2016.splimit(e,se,sp,st)
return not e:GetHandler():IsLocation(LOCATION_EXTRA+LOCATION_GRAVE)
end
function c2016.matfilter(c)
return c:IsFusionCode(65622692,64500000) and c:IsAbleToRemoveAsCost()
end
function c2016.spfilter1(c,tp,g)
return g:IsExists(c2016.spfilter2,1,c,tp,c)
end
function c2016.spfilter2(c,tp,mc)
return (c:IsFusionCode(65622692) and mc:IsFusionCode(64500000)
or c:IsFusionCode(64500000) and mc:IsFusionCode(65622692))
and Duel.GetLocationCountFromEx(tp,tp,Group.FromCards(c,mc))>0
end
function c2016.spcon(e,c)
if c==nil then return true end
local tp=c:GetControler()
local g=Duel.GetMatchingGroup(c2016.matfilter,tp,LOCATION_ONFIELD,0,nil)
return g:IsExists(c2016.spfilter1,1,nil,tp,g)
end
function c2016.spop(e,tp,eg,ep,ev,re,r,rp,c)
local g=Duel.GetMatchingGroup(c2016.matfilter,tp,LOCATION_ONFIELD,0,nil)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g1=g:FilterSelect(tp,c2016.spfilter1,1,1,nil,tp,g)
local mc=g1:GetFirst()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g2=g:FilterSelect(tp,c2016.spfilter2,1,1,mc,tp,mc)
g1:Merge(g2)
Duel.Remove(g1,POS_FACEUP,REASON_COST)
end

646名無しデュエリスト:2018/11/18(日) 21:51:13 ID:IatjoGk20
ageます。
こちらでは>>645のスクリプトでYとZを並べた後、それを除外してYZ-ドラゴンキャタピラーもどき(ID:2016)を特殊召喚できました。
スクリプトの保存形式が間違って居いたり、排他していたり、保存場所が間違っていたりはしませんかね…?

647名無しデュエリスト:2018/11/19(月) 12:51:09 ID:0CWCLhUs0
>>646
確認ありがとうございます
そして解決しました
データベースにて融合モンスターとしての値が間違っていたようです
お騒がせして申し訳ありません

また何かありましたらよろしくお願いいたします

648名無しデュエリスト:2018/11/20(火) 13:44:48 ID:0CWCLhUs0
聖霊獣騎モンスターは正規の手順のみで特殊召喚できますが、スクリプト上ではどこでそれを指定しているのですか?

649名無しデュエリスト:2018/11/21(水) 20:12:12 ID:YZg/7M8g0
ADSでデュエルリンクスのスキルを再現しようとしています。
完全自分用で他の人と対戦するわけではないので、死者蘇生等の汎用カードに効果を書き込んで疑似的に再現している形です。

フィールド魔法を発動する系、特定のLP以下で指定カードをドローする系はなんとか再現できたのですが、
デッキ外のカードが絡むもの(最近の例で言うと、5D'sメンバーのチューナーとSモンスターを追加するやつ)が作れていません。

デュエル開始時にトークン召喚の処理を流用してSモンスター召喚→直後にデッキバウンスさせて疑似的にデッキ増加はしてみたのですが、
やはり枚数が多いとデュエルが始まるまでが長く…
もし既にやっている方や挑戦中の方がいましたら、知恵を貸していただけると助かります。

650名無しデュエリスト:2018/11/22(木) 20:14:39 ID:Gzo3pjw20
>>649
自分の環境ならトークン召喚処理の流用でもそこまで時間かからないんですが・・・

651650:2018/11/22(木) 21:19:27 ID:YZg/7M8g0
>>649
それは、トークン処理流用で召喚→デッキバウンスのことを指していますか?
十代・遊星・遊作のようにエクストラの使用種類が15枚を大幅に超えてるキャラのエクストラ再現レベルになると、自分としては長いと思っています。
(時間の感じ方は個人それぞれなので何とも言えないですが)
しかも、二窓で自分と相手でそれぞれ発生すると長い印象です。

652名無しデュエリスト:2018/11/23(金) 01:13:53 ID:Gzo3pjw20
>>651
1秒で3枚くらいは増やせるので100枚とか増やしても30秒くらいなのでそこまで時間かからないと思ってました

653名無しデュエリスト:2018/11/25(日) 01:49:43 ID:XTPj9ePo0
Duel.SendtoDeck(Duel.CreateToken(0,カードID),tp,tp,REASON_RULE)
で直接カードをデッキに遅れるはず?
昔作ったスクリプトからの流用なので最新バージョンでうまくいくかはわかりませんが・・・

654650:2018/11/25(日) 11:04:43 ID:YZg/7M8g0
>>653
ありがとうございます。SendtoDeckで直接送れることは気付きませんでした。
エクストラデッキへの追加はSendtoExtraPで再現できました(尤もPモンスター用処理なので表側での追加にはなりますが)

求める処理ができたので解決です。本当に助かりました

655名無しデュエリスト:2018/11/25(日) 11:09:23 ID:/fw1mp.k0
EXの方もSendtoDeckで裏側表示で送れるぞ。

656650:2018/11/25(日) 14:55:58 ID:YZg/7M8g0
すみません、>>655を見た後にDeckで試したら普通に入りました。多分記述コピペの際に何か入り損ねたんだと思います。

加えてもう一つ質問なのですが、追加処理が記載されたカードが自分と相手双方に入っている場合、
なぜかエクストラ追加が相手のエクストラデッキに行われてしまいます。
記述ミスの前例がありますので、コードを以下に記載します。ご教示お願い致します。


local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_PREDRAW)
ge1:SetOperation(cXXX.sdop)
ge1:SetCountLimit(1,XXX+EFFECT_COUNT_CODE_DUEL)
ge1:SetCondition(cXXX.sdcon)
Duel.RegisterEffect(ge1,0)

end
function cXXX.sdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler():GetOwner()
if Duel.SelectYesNo(c,aux.Stringid(XXX,0)) then
Duel.SendtoDeck(Duel.CreateToken(0,YYY),tp,tp,REASON_RULE)
end
end
function cXXX.sdcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:GetOwner()==Duel.GetTurnPlayer() and Duel.GetTurnCount()~=1
end

※XXXはコード記載元カードのID、YYYは追加カードのID

657650:2018/11/25(日) 15:05:20 ID:YZg/7M8g0
>>656追記です。厳密に言うと、以下のような流れになります。
・カード追加カードが複数枚自分だけ入っている⇒自デッキに入る
・カード追加カードが複数枚自分に、一枚相手に入っている⇒一枚入ってる側に両方とも入る

また、双方のデッキに同じカード追加カードを入れていると、自分か相手どちらか先に効果発動権利が回ってきた方のみ発動されます。

658名無しデュエリスト:2018/11/25(日) 16:47:24 ID:Gzo3pjw20
>>657
自分の環境ではこんな感じで行けました。
なんか不具合あったらまた教えてください。

function c27551.initial_effect(c)
local ge1=Effect.CreateEffect(c)
ge1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
ge1:SetCode(EVENT_PREDRAW)
ge1:SetOperation(c27551.sdop)
ge1:SetCondition(c27551.sdcon)
Duel.RegisterEffect(ge1,0)
end
function c27551.sdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler():GetOwner()
if Duel.GetFlagEffect(c,27551)==0 and Duel.SelectYesNo(c,aux.Stringid(27551,0)) then
Duel.SendtoDeck(Duel.CreateToken(0,27551),c,2,REASON_RULE)
end
Duel.RegisterFlagEffect(c,27551,nil,0,1)
end
function c27551.sdcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnCount()==1
end

659名無しデュエリスト:2018/11/25(日) 16:50:16 ID:/fw1mp.k0
自分のとは書き方が違うから正直自信無いけど、原因は多分プレイヤーの指定をしっかりしていないせいかも
上に local c=e:GetHandler():GetOwner() という指定を行ってるから
tp を c に書き換えればうまくいくかも?

660650:2018/11/25(日) 19:08:40 ID:YZg/7M8g0
>>658 >>659
解決策のご提示ありがとうございます。
>>658の記述方式で、双方でのカード追加ができるようになりました。

また、追加時の不具合の理由でデュエル開始状態で試運転を止めていたため気付くのが遅れましたが、
以下の点も追加で確認されました。
・SendtoDeckで追加したエクストラデッキのモンスターを召喚できない
 (確認した限りでは《見習い魔嬢》のリンク召喚と《C・ドラゴン》のシンクロ召喚ができなかった)
 ※最初からデッキに投入しているモンスターは各召喚可能

上記不具合は>>654実施の時に1枚だけ試した《RR-フォース・ストリクス》はX召喚できたので、
たぶん追加枚数の多さが原因かなと思っています(不具合確認時は70〜80枚くらい追加しました)。
これから追加枚数を調整して切り分けを行っていこうと思いますが、取り急ぎご報告させていただきます。

661650:2018/11/25(日) 19:58:30 ID:YZg/7M8g0
連レスになりますが、>>660の報告です。
結果からお伝えすると、SendtoDeckの数で召喚か否か変わるみたいです。
以下、確認の流れを記載します。
・汎用Sモンスター45枚を追加する《ジェット・シンクロン》と全コードトーカー+属性リンク2を1枚ずつ追加する《コード・トーカー》を互いに投入
・先行からそれぞれカードを追加。
・先行が《ダーク・グレファー》召喚後《亡龍の戦慄-デストルドー》を特殊召喚。
 この時《見習い魔嬢》と《コード・トーカー》が召喚可能であることを確認。ターンエンド。
・後攻も同様の流れで召喚。
 この時《コード・トーカー》のみ召喚可能であることを確認。
 《見習い魔嬢》は召喚対象に出てこなかった。ターンエンド。
・先行が《ジェット・シンクロン》を召喚。
 《見習い魔嬢》と《コード・トーカー》が召喚可能であることを確認。
 《デコード・トーカー》《パワーコード・トーカー》等が召喚対象に出てこなかった。

以上です。
もしかしたら別の記載を織り交ぜることで解決するかもしれませんが、
現状ではSendtoDeckを利用するだけでは無限エクストラはできなさそうです。

662名無しデュエリスト:2018/12/19(水) 00:04:34 ID:1bdfl3hQ0
カードを発動できないという状況でもカードを発動できるような効果を作りたいです。どうしたらいいでしょうか?
例)アモルファージ・ルクスのP効果の①が適用中でもAがあれば魔法カードが使える。
既質ならすいません。良ければ教えてください

663名無しデュエリスト:2018/12/19(水) 12:45:02 ID:Gzo3pjw20
>>662
Aの効果を発動できない効果を含む効果を無効にするか
発動できないカードの効果を書き換えるかというのが現実的な方法ですかね

664名無しデュエリスト:2018/12/19(水) 19:57:35 ID:1bdfl3hQ0
>>663
返信ありがとうございます
効果を発動できない効果を含む効果を無効にする効果はわかるのですが、
発動できないカードの効果を書き換えるのはどうすれば?
発動する前のカードの効果を書き換える必要があると思うのですが出来るのでしょうか?

665名無しデュエリスト:2018/12/19(水) 20:06:27 ID:Gzo3pjw20
>>664
要するにアモルファージ・ルクスとかの効果を内部的に
フィールドにAが存在せず、自分フィールドに「アモルファージ」モンスターが存在する限り、
お互いに「アモルファージ」カード以外の魔法カードの効果を発動できない。
に書き換えるということです
あとsageはつけたほうがいいですよ

666名無しデュエリスト:2018/12/19(水) 21:40:09 ID:1bdfl3hQ0
なるほど・・・つまり上の例ならルクスのスクリプトを直接書き換えるということですね
コストを変えるみたいにSetTargetを変える(もしくは付け足す)みたいな効果は作れないのでしょうか?

667名無しデュエリスト:2018/12/19(水) 22:02:59 ID:Gzo3pjw20
>>666
ReplaceEffectを使えば書き換え対象の数だけスクリプトを作る気力があればできると思います。
もしかしたらもっといい方法があるかもしれませんが・・・

668名無しデュエリスト:2018/12/19(水) 23:08:51 ID:1bdfl3hQ0
>>667
なるほど・・・試してみようと思います
ありがとうございました!

669名無しデュエリスト:2018/12/23(日) 21:58:37 ID:1bdfl3hQ0
なるほど・・・つまり上の例ならルクスのスクリプトを直接書き換えるということですね
コストを変えるみたいにSetTargetを変える(もしくは付け足す)みたいな効果は作れないのでしょうか?

670名無しデュエリスト:2019/01/08(火) 01:08:14 ID:Ta0n.bkA0
所謂シャイニングドローやリ・コントラクトユニバースの用にデュエルのゲーム外から手札やデッキにカードを追加するオリカを作りたいのですが、何かしら参考になりそうなコード等は有るでしょうか……?
開発wikiを見た感じデバッグコマンドを使えば出来なくは無い気がするのですが……

671名無しデュエリスト:2019/01/08(火) 01:21:19 ID:Gzo3pjw20
>>670
このスレの650辺りにあります

672名無しデュエリスト:2019/01/08(火) 02:12:03 ID:Ta0n.bkA0
>>671
過去の書き込みを良く読まずに質問してしまって申し訳ありませんでした。
こちらの書き込みを読みながら頑張ってみたいと思います!

673名無しデュエリスト:2019/01/10(木) 02:07:04 ID:Ta0n.bkA0
自分の「ニードルトークン」が相手モンスターの攻撃で破壊された時に発動する。
相手フィールドのモンスター1体を選んで破壊する。
その後、このカードの攻撃力は1000アップする。

こういった効果のカードを作成したいのですが、上手く動いてくれません……

local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_DESTROY)
e4:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e4:SetProperty(EFFECT_FLAG_DAMAGE_STEP+EFFECT_FLAG_DELAY+EFFECT_FLAG_CARD_TARGET)
e4:SetCode(EVENT_BATTLE_DESTROYED)
e4:SetCondition(c220200329.condition)
e4:SetTarget(c220200329.target)
e4:SetOperation(c220200329.activate)
c:RegisterEffect(e4)

function c220200329.cfilter(c,tp)
return c:IsCord(220200347) and c:GetPreviousControler()==tp
end
function c220200329.condition(e,tp,eg,ep,ev,re,r,rp)
return eg:IsExists(c220200329.cfilter,1,nil,tp)
end
function c220200329.target(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_MZONE,1,nil) end
local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_MZONE,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,1,0,0)
end
function c220200329.activate(e,tp,eg,ep,ev,re,r,rp)
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_DESTROY)
local dg=Duel.SelectMatchingCard(tp,aux.TRUE,tp,0,LOCATION_MZONE,1,1,nil)
if dg:GetCount()>0 then
if Duel.Destroy(dg,REASON_EFFECT)~=0 and c:IsRelateToEffect(e) and c:IsFaceup() then
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetProperty(EFFECT_FLAG_COPY_INHERIT)
e1:SetCode(EFFECT_UPDATE_ATTACK)
e1:SetValue(1000)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
c:RegisterEffect(e1)
end
end
end

現状上記のような実装になっています、動きとしては発動すらしない状況です、Conditionのeg:IsExistsが悪いのかな?とは考えているのですが、代わりに使えるコードの知識が無い状況です。

出来ればご教授のほどお願いします。

674名無しデュエリスト:2019/01/10(木) 02:09:42 ID:Ta0n.bkA0
>>673 追記:220200329がこのカード本体、220200347がトークンに割り振られたIDです。

675名無しデュエリスト:2019/01/10(木) 03:20:30 ID:Ta0n.bkA0
>>637 再追記:少し古いバージョンを貼っていました。
return c:IsCord(220200347) and c:GetPreviousControler()==tp
この行の誤字(Cord→Code)は修正済みですが、動作はしない状況です。

676名無しデュエリスト:2019/01/10(木) 16:43:31 ID:Ta0n.bkA0
>>673
この質問ですが自己解決できました、スレ汚し失礼しました。

677名無しデュエリスト:2019/02/28(木) 15:10:52 ID:jsChbv2Q0
EXからXモンスターをX召喚扱いとして特殊召喚する。その後デッキからモンスターを1枚選びそのモンスターのX素材にできる。
という効果を作りたくて下のスクリプトを作ったのですがX召喚扱いになりません。理由が分からないのですが教えて頂けませんか?
function c10011.spop(e,tp,eg,ep,ev,re,r,rp)
if Duel.GetLocationCountFromEx(tp,LOCATION_MZONE)<=0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectMatchingCard(tp,c10011.spfilter,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local tc=g:GetFirst()
ct=Duel.SpecialSummon(tc,SUMMON_TYPE_XYZ,tp,tp,false,false,POS_FACEUP)
if ct>0 then
local fg=Duel.GetMatchingGroup(c10011.matfilter,tp,LOCATION_DECK,0,nil,e,tp,false,false)
if fg:GetCount()>0 and Duel.SelectYesNo(tp,aux.Stringid(10011,3)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_XMATERIAL)
local g=Duel.SelectMatchingCard(tp,c10011.matfilter,tp,LOCATION_DECK,0,1,1,nil)
if g:GetCount()>0 then
Duel.Overlay(tc,g)
end
end
end
end

678名無しデュエリスト:2019/03/01(金) 14:35:03 ID:jTAq/nLM0
ct=Duel.SpecialSummon(tc,SUMMON_TYPE_XYZ,tp,tp,false,false,POS_FACEUP)

ctどこですか

679名無しデュエリスト:2019/03/01(金) 18:06:52 ID:jsChbv2Q0
ctはBreakEffectのためのカウントみたいなものです
ct=・・・の下のif文を回すためにつけてます

680名無しデュエリスト:2019/03/02(土) 11:58:59 ID:Gzo3pjw20
>>677
ct=の前にlocal入れたほうがいいんじゃない?

681名無しデュエリスト:2019/03/02(土) 14:57:55 ID:jsChbv2Q0
>>677
自己解決しました。回答ありがとうございます。

682名無しデュエリスト:2019/04/23(火) 15:22:08 ID:PDp1Y3G20
質問失礼します。
バーニングドロー搭載の転生炎獣パイロ・フェニックスを作りたいのですが

炎属性の効果モンスター×2体以上
このカード名の①②の効果はそれぞれ1ターンに1度しか発動できない。
①自分の墓地のリンクモンスター1体を対象として発動できる。そのモンスターを相手フィールド上に特殊召喚する。この効果で特殊召喚したモンスターの攻撃力は0となる。
②相手フィールド上にリンクモンスターが特殊召喚された場合に、そのモンスター1体を対象にして発動できる。その元々の攻撃力分のダメージを相手に与える。
③このカードが「転生炎獣パイロ・フェニックス」を素材としてリンク召喚に成功した場合に発動できる。相手フィールドのカードを全て破壊する。
④このカードの元々の持ち主は自分のライフポイントを100になるように支払ってもよい。そうした場合、払った数値1000ポイントにつき1枚カードをドローする。この効果はデュエル中に一度しか使えない。

これらの効果を使いたいのです。いいスクリプト素材はありますか?

683名無しデュエリスト:2019/04/24(水) 14:15:25 ID:XwvuZrHI0
① 夢幻崩界イヴリース ヴァンパアサッカー 
② フューチャーヴィジョン ダイナレスラーエスクリマメンチ
③ 転生炎獣ヒートライオ 超銀河眼の光子龍 クインテット・マジシャン
④ ラーの翼神竜 光の護封壁 強欲で金満な壺 BF-隠れ蓑のスチーム

多分この辺が参考になるんじゃない?
④のテキスト見る限り起動効果ですけど大丈夫ですか
後テキストが10期じゃ無かったり、そもそもOCGテキストじゃ無かったりするんで自分で直して

684名無しデュエリスト:2019/04/26(金) 01:36:16 ID:oMudfG7k0
>>682
それっぽいやつ出来ました。
あとはコード内の「yugioh」をカードIDに書き換えるだけで使えます。
④の効果は毎ターンの発動確認が邪魔だったので起動効果にしました。
ついでにルール効果として扱い、発動と効果の無効化ができません
(コストが高すぎるためこのような効果にしました)

function cyugioh.initial_effect(c)
--link summon
c:EnableReviveLimit()
aux.AddLinkProcedure(c,cyugioh.matfilter,2)
--special summon
local e1=Effect.CreateEffect(c)
e1:SetDescription(aux.Stringid(yugioh,0))
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetRange(LOCATION_MZONE)
e1:SetCountLimit(1)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET)
e1:SetTarget(cyugioh.sptg)
e1:SetOperation(cyugioh.spop)
c:RegisterEffect(e1)
--damage
local e2=Effect.CreateEffect(c)
e2:SetDescription(aux.Stringid(yugioh,0))
e2:SetCategory(CATEGORY_DAMAGE)
e2:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_O)
e2:SetCode(EVENT_SPSUMMON_SUCCESS)
e2:SetRange(LOCATION_MZONE)
e2:SetCountLimit(1)
e2:SetTarget(cyugioh.target)
e2:SetOperation(cyugioh.operation)
c:RegisterEffect(e2)
--destroy
local e3=Effect.CreateEffect(c)
e3:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_O)
e3:SetCode(EVENT_SPSUMMON_SUCCESS)
e3:SetProperty(EFFECT_FLAG_CANNOT_DISABLE)
e3:SetCondition(cyugioh.condition)
e3:SetTarget(cyugioh.destg)
e3:SetOperation(cyugioh.desop)
c:RegisterEffect(e3)
--Burning Draw
local e4=Effect.CreateEffect(c)
e4:SetCategory(CATEGORY_DRAW)
e4:SetType(EFFECT_TYPE_IGNITION)
e4:SetCost(cyugioh.bdcost)
e4:SetCondition(cyugioh.sdcon)
e4:SetTarget(cyugioh.bdtg)
e4:SetOperation(cyugioh.bdop)
e4:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_CANNOT_INACTIVATE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e4:SetCountLimit(1,yugioh+EFFECT_COUNT_CODE_DUEL)
e4:SetRange(0xff)
c:RegisterEffect(e4)
end

685名無しデュエリスト:2019/04/26(金) 01:38:14 ID:oMudfG7k0
>>684 続き

function cyugioh.matfilter(c)
return c:IsLinkType(TYPE_EFFECT) and c:IsLinkAttribute(ATTRIBUTE_FIRE)
end
function cyugioh.filter(c,e,tp)
return c:IsType(TYPE_LINK) and c:IsCanBeSpecialSummoned(e,0,tp,false,false,POS_FACEUP,1-tp)
end
function cyugioh.sptg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chkc then return chkc:IsLocation(LOCATION_GRAVE) and chkc:IsControler(tp) and cyugioh.filter(chkc,e,tp) end
if chk==0 then return (Duel.GetLocationCount(1-tp,LOCATION_MZONE)>0)
and Duel.IsExistingTarget(cyugioh.filter,tp,LOCATION_GRAVE,0,1,nil,e,tp) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g=Duel.SelectTarget(tp,cyugioh.filter,tp,LOCATION_GRAVE,0,1,1,nil,e,tp)
Duel.SetOperationInfo(0,CATEGORY_SPECIAL_SUMMON,g,1,0,0)
end
function cyugioh.spop(e,tp,eg,ep,ev,re,r,rp)
local tc=Duel.GetFirstTarget()
if Duel.GetLocationCount(tp,LOCATION_MZONE)<=0 then return end
Duel.SpecialSummonStep(tc,0,tp,1-tp,false,false,POS_FACEUP)
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_SINGLE)
e1:SetCode(EFFECT_SET_ATTACK)
e1:SetValue(0)
e1:SetReset(RESET_EVENT+RESETS_STANDARD)
tc:RegisterEffect(e1)
Duel.SpecialSummonComplete()
end
function cyugioh.damfilter(c,e,tp)
return c:IsFaceup() and c:IsControler(1-tp) and c:IsType(TYPE_LINK) and (not e or c:IsRelateToEffect(e))
end
function cyugioh.target(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return eg:IsExists(cyugioh.damfilter,1,nil,nil,tp) end
Duel.SetTargetCard(eg)
Duel.SetOperationInfo(0,CATEGORY_DAMAGE,eg,eg:GetCount(),0,0)
end
function cyugioh.operation(e,tp,eg,ep,ev,re,r,rp)
local g=eg:Filter(cyugioh.damfilter,nil,e,tp)
local dam=g:GetSum(Card.GetBaseAttack)
Duel.Damage(1-tp,dam,REASON_EFFECT)
end
function cyugioh.linkfilter(c)
return c:IsCode(yugioh)
end
function cyugioh.condition(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return e:GetHandler():IsSummonType(SUMMON_TYPE_LINK) and c:GetMaterial():IsExists(cyugioh.linkfilter,1,nil)
end
function cyugioh.destg(e,tp,eg,ep,ev,re,r,rp,chk,chkc)
if chk==0 then return Duel.IsExistingMatchingCard(aux.TRUE,tp,0,LOCATION_ONFIELD,1,nil) end
local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil)
Duel.SetOperationInfo(0,CATEGORY_DESTROY,g,g:GetCount(),0,0)
end
function cyugioh.desop(e,tp,eg,ep,ev,re,r,rp)
local g=Duel.GetMatchingGroup(aux.TRUE,tp,0,LOCATION_ONFIELD,nil)
Duel.Destroy(g,REASON_EFFECT)
end
function cyugioh.bdcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.GetLP(tp)>100 end
local lp=Duel.GetLP(tp)
e:SetLabel((lp-100)/1000)
Duel.PayLPCost(tp,lp-100)
end
function cyugioh.bdtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsPlayerCanDraw(tp,e:GetLabel()) end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(e:GetLabel())
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,e:GetLabel())
end
function cyugioh.bdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler():GetOwner()
local bd=e:GetLabel()
Duel.Draw(tp,bd-1,REASON_RULE)
end
function cyugioh.sdcon(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
return c:GetOwner()==Duel.GetTurnPlayer() and Duel.GetTurnCount()~=1
end

686名無しデュエリスト:2019/04/26(金) 09:01:20 ID:PDp1Y3G20
>>685
これは先行1ターン目にバーニングドローを使うことは可能ですか?あとバーニングドローを使う時にダイヤログを表示させて文章を入れたいのですが可能でしょうか?

687名無しデュエリスト:2019/04/26(金) 10:37:09 ID:oMudfG7k0
>>686
すみません先行1ターン目に使えないのはこちらのミスです
sdcon内の「and Duel.GetTurnCount()~=1」を消してください
メッセージのみでデュエルに影響のないダイアログ程度であればbdop内の
「local bd=e:GetLabel()」と「Duel.Draw(tp,bd-1,REASON_RULE)」の間に
Duel.Hint(HINT_MESSAGE,tp,aux.Stringid(yugioh,X))を任意の数挿入してください
(yugiohはカードID、XはDBのstr-1の数値をそれぞれ必ず入力してください)

※以下例文
function cyugioh.bdop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler():GetOwner()
local bd=e:GetLabel()
Duel.Hint(HINT_MESSAGE,tp,aux.Stringid(yugioh,0))
Duel.Hint(HINT_MESSAGE,tp,aux.Stringid(yugioh,1))
Duel.Draw(tp,bd-1,REASON_RULE)
end

688名無しデュエリスト:2019/04/26(金) 15:51:51 ID:PDp1Y3G20
>>687
できました。丁寧に説明していただきありがとうございます。

689名無しデュエリスト:2019/04/26(金) 17:03:20 ID:PDp1Y3G20
③:このカードの元々の持ち主は相手のメインフェイズに発動出来る。相手は手札が3枚になるようにドローする。このスキルを発動したターンのエンドフェイズ時、自分の墓地の「トリックスター」カードの枚数分だけ相手の手札を除外する。このスキルはデュエル中に一度しか使えない。

この効果をカードに移植したいのですがお力添えをしていただけるとありがたいです。
ご不明の点がありましたら返信お願いします。

690名無しデュエリスト:2019/04/26(金) 21:19:48 ID:oMudfG7k0
>>689
こんな感じでどうでしょうか
一応効果③ということだったのでe3にしました
見たところ「ブルーエンジェル」のスキルのようだったのでルール効果として扱い、発動・効果の無効化ができません
おま環かもしれませんが発動確認の設定を「可能時のみ」または「常に確認」以外にしておくと何故か確認ダイアログが出ないので注意してください
※以下スクリプト。「yugioh」をカードIDに書き換えてください

function cyugioh.initial_effect(c)
--trickster fraud
local e3=Effect.CreateEffect(c)
e3:SetCategory(CATEGORY_DRAW)
e3:SetType(EFFECT_TYPE_QUICK_O)
e3:SetCode(EVENT_FREE_CHAIN)
e3:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_CANNOT_INACTIVATE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e3:SetCountLimit(1,yugioh+EFFECT_COUNT_CODE_DUEL)
e3:SetCondition(cyugioh.tfcon)
e3:SetTarget(cyugioh.tftg)
e3:SetOperation(cyugioh.tfop)
e3:SetRange(0xff)
c:RegisterEffect(e3)
end
function cyugioh.tfcon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetTurnPlayer()~=tp
and (Duel.GetCurrentPhase()==PHASE_MAIN1 or Duel.GetCurrentPhase()==PHASE_MAIN2)
end
function cyugioh.tftg(e,tp,eg,ep,ev,re,r,rp,chk)
local ht=Duel.GetFieldGroupCount(1-tp,LOCATION_HAND,0)
if chk==0 then return (ht<3 and Duel.IsPlayerCanDraw(1-tp,3-ht)) end
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,1-tp,3-ht)
end
function cyugioh.tfop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler():GetOwner()
local g=Group.CreateGroup()
local ht1=Duel.GetFieldGroupCount(1-tp,LOCATION_HAND,0)
if ht1<3 then
Duel.Draw(1-tp,3-ht1,REASON_RULE)
--Remove
local e1=Effect.CreateEffect(e:GetHandler())
e1:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_PHASE+PHASE_END)
e1:SetRange(0xff)
e1:SetCountLimit(1)
e1:SetTarget(cyugioh.remtg)
e1:SetOperation(cyugioh.remop)
Duel.RegisterEffect(e1,tp)
end
end
function cyugioh.remtg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetOperationInfo(0,CATEGORY_REMOVE,nil,1,1-tp,LOCATION_HAND)
end
function cyugioh.remop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local ht2=Duel.GetMatchingGroupCount(Card.IsSetCard,c:GetControler(),LOCATION_GRAVE,0,nil,0xfb)
if ht2==0 then return end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local rg=Duel.SelectMatchingCard(tp,Card.IsAbleToRemove,tp,0,LOCATION_HAND,ht2,ht2,nil)
if rg:GetCount()>0 then
Duel.Remove(rg,POS_FACEUP,REASON_RULE)
end
end

691名無しデュエリスト:2019/04/30(火) 13:02:31 ID:PDp1Y3G20
>>690
返信遅れてすみません。動作確認しました。ありがとうございます

692名無しデュエリスト:2019/05/22(水) 19:03:29 ID:PDp1Y3G20
質問なのですがADSでストームアクセス(ライフが1000以下の時にエクストラデッキに1枚カードを加える)は再現可能でしょうか?ランダムだと使いにくいのでカードを指定してエクストラデッキに加えたいのですが…

693名無しデュエリスト:2019/05/23(木) 04:07:13 ID:RDIf/S6.0

1000以下>「エンシェントリーフ」 「魂の一撃」
指定のカード>「古代の歯車機械」(2) 「異次元の指名者」
加える>「ヘビーメタルフォーゼエレクトラム」「増援」
>>649-672

この辺が参考になるんじゃない?
ただ、正直なところ特定条件下だとバグったりしますし、OCGでできない事をADSでやるのはお勧めできないとだけ言っておく

694名無しデュエリスト:2019/05/25(土) 01:23:24 ID:oMudfG7k0
>>692
再現可能ですよ。
ただ>>692の文の効果は簡単ですが、アニメ本家の効果は難しいと思います。
(サイバース族・リンクモンスター等の限定的な指定は困難なため)
AnnounceCardとCreateTokenとSendto〜の文を書けばできると思います。
分からないことがあったり、完成文が欲しいのであればレスください。

695名無しデュエリスト:2019/05/25(土) 06:32:18 ID:PDp1Y3G20
>>693 >>694
そうなんですね!ありがとうございます!
>>694
じゃあお言葉に甘えてご依頼しても大丈夫でしょうか?

696名無しデュエリスト:2019/05/25(土) 11:36:44 ID:oMudfG7k0
>>692 >>695
アニメを観ていないので効果の詳細がよく分からないのですが、
こんな感じで合ってますか?

①:自分のライフポイントが、1000以下の場合に発動できる。
リンクモンスターのカード名を1つ宣言し、デッキ外から宣言したカード1枚をEXデッキに加える。
この効果はルール効果として扱い、この効果の発動に対して魔法・罠・モンスターの効果は発動できない。

※以下スクリプト。例によって「yugioh」をカードIDへの書き換えお願いします。

function cyugioh.initial_effect(c)
--Storm Access
local e1=Effect.CreateEffect(c)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetType(EFFECT_TYPE_IGNITION)
e1:SetCountLimit(1,yugioh+EFFECT_COUNT_CODE_DUEL)
e1:SetCondition(cyugioh.sacon)
e1:SetTarget(cyugioh.satg)
e1:SetOperation(cyugioh.saop)
e1:SetProperty(EFFECT_FLAG_CARD_TARGET+EFFECT_FLAG_CANNOT_INACTIVATE+EFFECT_FLAG_CANNOT_DISABLE+EFFECT_FLAG_CANNOT_NEGATE)
e1:SetRange(0xff)
c:RegisterEffect(e1)
end
function cyugioh.sacon(e,tp,eg,ep,ev,re,r,rp)
return Duel.GetLP(tp)<=1000
end
function cyugioh.satg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(tp)
end
function cyugioh.saop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
local tc=Duel.AnnounceCard(tp,TYPE_LINK)
local token=Duel.CreateToken(tp,tc,nil,nil,nil,nil,nil,nil)
if token then
Duel.SendtoDeck(token,nil,0,REASON_RULE)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
end
end

697名無しデュエリスト:2019/05/26(日) 18:15:18 ID:ZdXadVSY0
>>696
遅れてすみません!動作確認しました!
ありがとうございます

698名無しデュエリスト:2019/05/27(月) 20:56:53 ID:oMudfG7k0
「Master Storm Access 」
①:1ターンに1度、発動できる。
サイバース族の融合・S・X・リンクモンスターのカード名を1つ宣言し、デッキ外から宣言したカード1枚をEXデッキに加える。
この効果はルール効果として扱い、この効果の発動に対して魔法・罠・モンスターの効果は発動できない。
この効果は相手ターンでも発動できる。

遊戯王VRAINS第99話にてボーマンが使用したスキル。
これ1つで「FWD」だろうと「・X・」だろうとなんでもござれ。
君もデュエル中にリンク5のモンスターを堂々とEXデッキに加えよう。
※以下スクリプト(スクリプト内の「yugioh」をカードIDに書き換えるだけで使えます)

function cyugioh.initial_effect(c)
--Master Storm Access
local e1=Effect.CreateEffect(c)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetType(EFFECT_TYPE_QUICK_O)
e1:SetCountLimit(1)
e1:SetTarget(cyugioh.msatg)
e1:SetOperation(cyugioh.msaop)
e1:SetRange(0xff)
c:RegisterEffect(e1)
end
function cyugioh.msatg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return true end
Duel.SetTargetPlayer(tp)
Duel.SetTargetParam(tp)
Duel.SetChainLimit(cyugioh.chainlimit)
end
function cyugioh.chainlimit(e,te,rp,tp)
return not e:IsHasType(EFFECT_TYPE_ACTIVATE)
end
function cyugioh.msaop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
cyugioh.announce_filter={RACE_CYBERSE,OPCODE_ISRACE,TYPE_FUSION+TYPE_SYNCHRO+TYPE_XYZ+TYPE_LINK,OPCODE_ISTYPE,OPCODE_AND}
local tc=Duel.AnnounceCardFilter(tp,table.unpack(cyugioh.announce_filter))
local token=Duel.CreateToken(tp,tc,nil,nil,nil,nil,nil,nil)
if token then
Duel.SendtoDeck(token,nil,0,REASON_RULE)
local p,d=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER,CHAININFO_TARGET_PARAM)
end
end

699名無しデュエリスト:2019/07/08(月) 14:59:07 ID:u/YFYLtw0
リンク先以外にエクストラのモンスターを出すっていうのは本体に手を加えないとできませんか?

700名無しデュエリスト:2019/07/09(火) 07:47:32 ID:C/98nL7Y0
>>699
「EXデッキのモンスターをSS召喚時に一度墓地に送るか除外して墓地(除外)経由で召喚条件・蘇生制限を無視して正規召喚扱いで特殊召喚」
という効果を作れば行けるかと
ただ、チェーンブロックを組まないSS(シンクロ等)はより複雑なルール効果を作る必要があります
それ以外だと多分無理じゃないかな

701名無しデュエリスト:2019/07/10(水) 19:36:23 ID:PDp1Y3G20
どなたかバレット&カートリッジというカードのスクリプト作成を依頼しても大丈夫でしょうか?効果は
通常魔法
自分のデッキからカードを4枚墓地へ送り、1枚ドローする。
その後、このカードをデッキの一番上に置く。
このカードの効果でデッキの上に置かれたこのカードをドローした場合、このカードを墓地へ送る。

という効果なのですがデッキの上から4枚ではなくデッキの中から4枚選んで墓地に送りたいです。海外のスクリプトを元に作っていたのですが上手くいかなくてお手上げです。

702名無しデュエリスト:2019/07/10(水) 20:46:56 ID:1sLhCd920
>>701
スクリーチや炎熱伝導場みたいに複数にすればいい

703名無しデュエリスト:2019/07/10(水) 22:01:15 ID:C/98nL7Y0
>>701
一応作ってみたのですが「このカードの効果によってデッキの上に置かれた〜」という処理が上手くいきません
効果使用後、いつドローしても墓地に送られます(デッキトップを変更した後ドローしても墓地に送られる)
以下スクリプトになります

--バレット&カートリッジ
function cYugioh.initial_effect(c)
--activate
local e1=Effect.CreateEffect(c)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCategory(CATEGORY_TOGRAVE+CATEGORY_DRAW)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetProperty(EFFECT_FLAG_PLAYER_TARGET)
e1:SetTarget(cYugioh.tg)
e1:SetOperation(cYugioh.op)
c:RegisterEffect(e1)
end
function cYugioh.tg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(Card.IsAbleToGrave,tp,LOCATION_DECK,0,4,nil) and Duel.IsPlayerCanDraw(tp,1)
and Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)>=5 end
Duel.SetTargetPlayer(tp)
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,nil,4,tp,LOCATION_DECK)
Duel.SetOperationInfo(0,CATEGORY_DRAW,nil,0,tp,1)
end
function cYugioh.op(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g=Duel.SelectMatchingCard(tp,Card.IsAbleToGrave,tp,LOCATION_DECK,0,4,4,nil)
if g:GetCount()>0 then
Duel.SendtoGrave(g,4,REASON_EFFECT) end
local p=Duel.GetChainInfo(0,CHAININFO_TARGET_PLAYER)
if c:IsRelateToEffect(e) then
Duel.Draw(p,1,REASON_EFFECT)
Duel.BreakEffect()
c:CancelToGrave()
Duel.ShuffleDeck(tp)
Duel.SendtoDeck(c,nil,0,REASON_EFFECT)
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_TOGRAVE)
e1:SetType(EFFECT_TYPE_SINGLE+EFFECT_TYPE_TRIGGER_F)
e1:SetCode(EVENT_TO_HAND)
e1:SetCondition(cYugioh.descon)
e1:SetTarget(cYugioh.destg)
e1:SetOperation(cYugioh.desop)
e1:SetReset(RESET_EVENT+0x1de0000)
c:RegisterEffect(e1)
end
end
function cYugioh.descon(e,tp,eg,ep,ev,re,r,rp)
return e:GetHandler():IsReason(REASON_DRAW)
end
function cYugioh.destg(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return e:GetHandler():IsRelateToEffect(e) end
Duel.SetOperationInfo(0,CATEGORY_TOGRAVE,e:GetHandler(),1,0,0)
end
function cYugioh.desop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SendtoGrave(c,REASON_EFFECT)
end
end

704名無しデュエリスト:2019/07/11(木) 00:54:36 ID:ob5wce4g0
それはADSでは識別できない気がします。

705名無しデュエリスト:2019/07/15(月) 18:20:37 ID:PDp1Y3G20
>>703
自分も認識しなくて悩んでたんですよね。ADS的に無理ならしょうがないです。
あとインフェルニティリベンジャーもお願いしても大丈夫でしょうか?自分のだと墓地に2枚リベンジャーを落とすと攻撃時にADSが落ちてしまいます。

このカードが墓地に存在し、自分の手札が0枚の場合、自分フィールド上のモンスターが相手モンスターとの戦闘によって破壊され自分の墓地へ送られた時、このカードを墓地から特殊召喚できる。この効果で特殊召喚したこのカードは、その戦闘によって破壊された自分のモンスターの元々のレベルと同じレベルになる。

連続で送ってしまって申し訳ございません。

706名無しデュエリスト:2019/07/15(月) 19:02:52 ID:C/98nL7Y0
>>705
「攻撃時にADSが落ちる」という状況がよくわかりません
相手のモンスターなのか自分のモンスターなのか何のモンスターなのか
そもそも「インフェルニティリベンジャー」はOCG版のスクリプトの「c85475641.filter」内にある
「and c:GetCode()~=85475641」を消すだけでアニメ効果っぽくなると思います
もしそれで落ちるならADS本体か他のカードやDB側の問題ですね

707名無しデュエリスト:2019/07/15(月) 19:25:59 ID:Op4iQ/Q60
リベンジャーはOCG化されているのでは…?
と思ったけど同名もいけるのか。
「光竜星-リフン」2や「異界の棘紫獣」が参考になりそうですかね

708名無しデュエリスト:2019/07/17(水) 01:21:25 ID:3gZ9E.Zg0
イベントコードのEVENT_STARTUPって使えないのでしょうか?下のテキストだとうまく動いてくれるのですが、PREDRAWをSTARTUPにすると動いてくれません。
constantにあるので使えると思うのですが何か条件があるのでしょうか?よろしければ教えてください
function c10022.initial_effect(c)
local e0=Effect.CreateEffect(c)
e0:SetProperty(EFFECT_FLAG_UNCOPYABLE+EFFECT_FLAG_CANNOT_DISABLE)
e0:SetType(EFFECT_TYPE_FIELD+EFFECT_TYPE_CONTINUOUS)
e0:SetCode(EVENT_PREDRAW)
e0:SetCountLimit(1,10022+EFFECT_COUNT_CODE_DUEL)
e0:SetRange(LOCATION_DECK)
e0:SetOperation(c10022.op)
c:RegisterEffect(e0)
end
function c10022.rfilter(c)
return c:IsCode(10022)
end
function c10022.op(e,tp,eg,ep,ev,re,r,rp,chk)
local dc=Duel.GetFieldGroupCount(tp,LOCATION_DECK,0)
Duel.MoveToField(e:GetHandler(),tp,tp,LOCATION_SZONE,POS_FACEUP,true)
Duel.ShuffleDeck(tp)
end

709名無しデュエリスト:2019/07/17(水) 19:46:51 ID:W4dyack20
>>708
多分ですが、現状使用不可なコードです

710名無しデュエリスト:2019/07/17(水) 20:34:33 ID:3gZ9E.Zg0
>>709 なるほど・・・ありがとうございますm(__)m

711名無しデュエリスト:2019/08/24(土) 14:28:51 ID:depBCins0
名称ターン2のカードを作ることはできますか?

712名無しデュエリスト:2019/08/24(土) 22:40:39 ID:MfK9n1js0
シースター

713名無しデュエリスト:2019/08/25(日) 11:26:20 ID:depBCins0
>>712 ありがとうございます!!

714名無しデュエリスト:2019/09/13(金) 21:01:52 ID:p2hkm/h20
召喚時誘発・デッキトップ3枚を確認して、「BF」カードを召喚、手札に加える…といった効果(モンスターなら召喚、魔法・罠なら手札に)を作ろうとしているのですが、なかなか上手く行きません。
ミミックリル、フォクシーの効果を参考にしようとしたものの、効果を共存させられません…。ご教授いただければ幸いです

715名無しデュエリスト:2019/09/15(日) 22:07:20 ID:xTljGC/k0
>>714
その中から1枚じゃなくて3枚全部って事?

716名無しデュエリスト:2019/09/15(日) 23:46:28 ID:RhDOr6lI0
>>715
そうです。「BF」モンスターを可能な限り召喚、または「BF」魔法・罠を可能な限り手札に加える…といったところでしょうか。

717名無しデュエリスト:2019/10/08(火) 18:42:30 ID:RVTpXkOE0
サイバーポッドは?

718名無しデュエリスト:2020/01/19(日) 04:05:46 ID:Rzpg2cRQ0
遊戯王ADSでアニメオリカが欲しいんだけど、知ってる人いればURLとか貼ってくれるとうれしい

719名無しデュエリスト:2020/01/19(日) 08:10:59 ID:H1Z7m7dM0
>>718
現日版なら
・自分で作る
・配布してる方からいただく
のどちらかですかね。
現日版に対応している配布者さんはかなり絞られそうですね。
パーシは元からあった気はします。

720名無しデュエリスト:2020/01/21(火) 00:50:35 ID:3SK0.HC.0
パーシーから移植すればいいじゃん。

721名無しデュエリスト:2020/01/21(火) 01:12:06 ID:i88F.Vn20
パーシ高速アニメならないんだもんな

722名無しデュエリスト:2020/01/21(火) 05:32:45 ID:V/UP6U5w0
>>720
パーシと日版は内部処理やスクリプト表記が異なるものもありますので
書き換えが必要なものも多数あります。

723名無しデュエリスト:2020/01/22(水) 05:54:57 ID:Rzpg2cRQ0
コメントありがとです
【魔法の教科書】と【ネクロマンシー】使いたいです!
ネクロマンシーがパーシーにありました。
魔法の教科書は自分でがんばってみます!

724名無しデュエリスト:2020/02/22(土) 09:04:14 ID:esFdvNq.O
エンドフェイズに手札を棄てる処理のない悪夢の蜃気楼とか、
ライフコストのない血の代償とかの効果を、
終焉のカウントダウンみたいな、1度、発動したら
効果無効になることなく、ずっと続いていくような
改変スクリプトのオリジナルカードを、スピードワールド2みたいな感じに
デュエル開始時にEXデッキから自動で発動する、そういうのでもあれば、
ラッシュデュエルのルールの擬似再現もできるのかな?

ラッシュデュエルのルール用にゲームバランス調整したり、
初期ライフポイントを個別にハンデ設定できないのを擬似的に設定可能にしたり、
そういうルール変更用の特集なオリジナルカードを入れた
対人プレイ用のデッキとか、そういうのつくりたいんだけど。

725名無しデュエリスト:2020/02/22(土) 09:04:58 ID:esFdvNq.O
エンドフェイズに手札を棄てる処理のない悪夢の蜃気楼とか、
ライフコストのない血の代償とかの効果を、
終焉のカウントダウンみたいな、1度、発動したら
効果無効になることなく、ずっと続いていくような
改変スクリプトのオリジナルカードを、スピードワールド2みたいな感じに
デュエル開始時にEXデッキから自動で発動する、そういうのでもあれば、
ラッシュデュエルのルールの擬似再現もできるのかな?

ラッシュデュエルのルール用にゲームバランス調整したり、
初期ライフポイントを個別にハンデ設定できないのを擬似的に設定可能にしたり、
そういうルール変更用の特集なオリジナルカードを入れた
対人プレイ用のデッキとか、そういうのつくりたいんだけど。

726名無しデュエリスト:2020/02/22(土) 19:34:06 ID:h42vsDqw0
そもそもルールがまだわかってないから何とも言えないけどやろうと思えばできるんでない

727名無しデュエリスト:2020/04/05(日) 08:50:46 ID:bCBx8iMo0
①の効果は1ターンに2度までしか使用できない。
①:自分のデッキ・手札・フィールドからチューナー1体とチューナー以外のモンスターを任意の数だけ墓地へ送り、
墓地へ送ったモンスターのレベルの合計と同じレベルを持つSモンスター1体を、エクストラデッキからS召喚扱いで特殊召喚する。
②:このカードが墓地に存在する場合、自分の墓地の「シンクロ・フュージョン」以外のカードを3枚除外して発動できる。
墓地のこのカードを手札に加える。
というカードのスクリプトを作ったのですが、デッキのモンスターのレベル的に特殊召喚できないはずのSモンスターを選択出来て、
その後[Script Error]: [string "./script/c134217715.lua"]:49: attempt to index a nil value とエラーを吐いてしまいます、何処をどうすればいいのか教えてください。
--シンクロ・フュージョン
function c134217715.initial_effect(c)
--Activate
local e1=Effect.CreateEffect(c)
e1:SetCategory(CATEGORY_SPECIAL_SUMMON)
e1:SetType(EFFECT_TYPE_ACTIVATE)
e1:SetCountLimit(2,134217715+EFFECT_COUNT_CODE_OATH)
e1:SetCode(EVENT_FREE_CHAIN)
e1:SetOperation(c134217715.activate)
c:RegisterEffect(e1)
--salvage
local e2=Effect.CreateEffect(c)
e2:SetCategory(CATEGORY_TOHAND)
e2:SetDescription(aux.Stringid(134217715,1))
e2:SetType(EFFECT_TYPE_IGNITION)
e2:SetRange(LOCATION_GRAVE)
e2:SetCost(c134217715.thcost)
e2:SetTarget(c134217715.thtg)
e2:SetOperation(c134217715.thop)
c:RegisterEffect(e2)

end

function c134217715.filter1(c,e,tp)
local lv=c:GetLevel()
return c:IsType(TYPE_SYNCHRO) and lv<13
and c:IsType(TYPE_SYNCHRO) and c:IsCanBeSpecialSummoned(e,SUMMON_TYPE_SYNCHRO,tp,false,false) and Duel.GetLocationCountFromEx(tp,tp,nil,c)>0
end
function c134217715.filter2(c,tp,lv)
local rlv=lv-c:GetLevel()
local rg=Duel.GetMatchingGroup(c134217715.filter3,tp,LOCATION_ONFIELD+LOCATION_DECK+LOCATION_HAND,0,c)
return rlv>0 and c:IsType(TYPE_TUNER) and rg:CheckWithSumEqual(Card.GetLevel,rlv,1,63)
end
function c134217715.filter3(c)
return c:GetLevel()>0 and not c:IsType(TYPE_TUNER)
end

function c134217715.activate(e,tp,eg,ep,ev,re,r,rp)

if aux.MustMaterialCheck(nil,tp,EFFECT_MUST_BE_SMATERIAL)
and Duel.IsExistingMatchingCard(c134217715.filter1,tp,LOCATION_EXTRA,0,1,nil,e,tp)
and Duel.SelectYesNo(tp,aux.Stringid(134217715,0)) then
Duel.BreakEffect()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_SPSUMMON)
local g1=Duel.SelectMatchingCard(tp,c134217715.filter1,tp,LOCATION_EXTRA,0,1,1,nil,e,tp)
local lv=g1:GetFirst():GetLevel()
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g2=Duel.SelectMatchingCard(tp,c134217715.filter2,tp,LOCATION_ONFIELD+LOCATION_DECK+LOCATION_HAND,0,1,1,nil,tp,lv)
local rlv=lv-g2:GetFirst():GetLevel()
local rg=Duel.GetMatchingGroup(c134217715.filter3,tp,LOCATION_ONFIELD+LOCATION_DECK+LOCATION_HAND,0,g2:GetFirst())
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_TOGRAVE)
local g3=rg:SelectWithSumEqual(tp,Card.GetLevel,rlv,1,63)
g2:Merge(g3)
Duel.SendtoGrave(g2,POS_FACEUP,REASON_MATERIAL+REASON_SYNCHRO)
Duel.SpecialSummon(g1,SUMMON_TYPE_SYNCHRO,tp,tp,false,false,POS_FACEUP)
g1:GetFirst():CompleteProcedure()
end
end


function c134217715.thfilter(c)
return c:IsAbleToRemoveAsCost() and not c:IsCode(134217715)
end
function c134217715.thcost(e,tp,eg,ep,ev,re,r,rp,chk)
if chk==0 then return Duel.IsExistingMatchingCard(c134217715.thfilter,tp,LOCATION_GRAVE,0,3,nil) end
Duel.Hint(HINT_SELECTMSG,tp,HINTMSG_REMOVE)
local g=Duel.SelectMatchingCard(tp,c134217715.thfilter,tp,LOCATION_GRAVE,0,3,3,nil)
Duel.Remove(g,POS_FACEUP,REASON_COST)
end
function c134217715.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 c134217715.thop(e,tp,eg,ep,ev,re,r,rp)
local c=e:GetHandler()
if c:IsRelateToEffect(e) then
Duel.SendtoHand(c,nil,REASON_EFFECT)
Duel.ConfirmCards(1-tp,c)
end
end

728名無しデュエリスト:2020/04/06(月) 00:28:42 ID:qcOn.e/.0
とりあえず何故かMZONEになるはずの所がONFIELDになっているのと
SendtoGraveなのにPOS_FACEUPとか入ってるのと
c:IsType(TYPE_SYNCHRO)が2つあるのと墓地へ送るチェックしてないのと突っ込みどころが多すぎる

729名無しデュエリスト:2020/04/06(月) 05:40:23 ID:bCBx8iMo0
MZONEとPOS_FACEUPとc:IsType(TYPE_SYNCHRO)については直しました。
王魂調和のスクリプトを弄って作ってたので墓地へ送るチェックはしていないみたいですね。
スクリプト作成素人なので申し訳ないですが墓地へ送るチェックのやり方を教えてください。

730名無しデュエリスト:2020/04/09(木) 02:39:15 ID:C0vfSWSg0
王魂とネクロイドを見比べながら墓地へ送る系のカード見つつやればいいんじゃない?

731名無しデュエリスト:2020/04/09(木) 05:48:47 ID:bCBx8iMo0
王魂とネクロイド・シンクロを見比べながら適当に弄ってたら出来ました。
アドバイスありがとうございます。
尚なぜ出来たかは自分でもわかってない模様

732名無しデュエリスト:2020/04/10(金) 02:04:10 ID:1wb.qwMo0
記述大丈夫かは完成したの張ったりディスコ行けば多分見てくれる

733名無しデュエリスト:2020/10/10(土) 02:24:12 ID:6OiG1vXo0
hollowのオリカで、既に発動済のプレイヤーに対する永続効果(具体的には、プレイヤーに対する「〜の効果の発動に対して相手は効果を発動できない」という効果)のみを無効にする効果のスクリプト考えているんですけど
その永続効果を持つカード自体の効果を無効にする以外の方法でこれを可能にする方法って何かあります?
もしくは、「〜の効果の発動に対して相手は効果を発動できない」という効果の適用下でも効果を発動させる方法とか。
とりあえずSetCode(EFFECT_IMMUNE_EFFECT)を使ってSetTargetRangeを自分にしても、既に発動済みの効果に対しては効かないみたいです。

734名無しデュエリスト:2020/10/26(月) 02:04:24 ID:u6CZfFks0
無理。
そもそも遊戯王は基本的に適用済みの効果に干渉できない。

735名無しデュエリスト:2021/03/22(月) 06:31:33 ID:6OiG1vXo0
>>734
レス遅れて申し訳ありません。
やはり無理なんですね。
どうもありがとうございました。

736名無しデュエリスト:2021/03/24(水) 00:21:06 ID:6OiG1vXo0
>>734
やっぱ無理なんですね。
ありがとうございました。


新着レスの表示


名前: E-mail(省略可)

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

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

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

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