Board index
Programs with AI or Rules Enforcement
Magic: The Gathering - Duels of the Planeswalkers
New MTG Cards and Decks (2010, 2012, 2013, 2014, 2015, Magic Duels)



Card Creation Request Thread
User-made mods in DLC (Downloadable Content) form.
Get MTG cards here for your DotP that aren't available anywhere else!
Get MTG cards here for your DotP that aren't available anywhere else!
Moderator: CCGHQ Admins
Re: Card Creation Request Thread
by gorem2k » 31 May 2013, 04:59
Ink-Treader Nephilim:
that would've been wicked.
so, your card is working fine. tnks!
ok so copies don't count.Whenever a player casts an instant or sorcery spell, if that spell targets only Ink-Treader Nephilim, copy the spell for each other creature that spell could target. Each copy targets a different one of those creatures.

that would've been wicked.
so, your card is working fine. tnks!
Re: Card Creation Request Thread
by BloodReyvyn » 31 May 2013, 07:33
I have been trying to code Omen Machine, but it still lets players draw the exiled cards...

- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2>
<FILENAME text="OMEN_MACHINE_233042" />
<CARDNAME text="OMEN_MACHINE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Omen Machine]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Machine à présages]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Máquina de presagios]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Omenmaschine]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Macchina dei Presagi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[前兆の機械]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Omen Machine]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Машина Предзнаменования]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Máquina do Agouro]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="233042" />
<ARTID value="A233042" />
<ARTIST name="David Rapoza" />
<CASTING_COST cost="{6}" />
<TYPE metaname="Artifact" />
<EXPANSION value="NPH" />
<RARITY metaname="R" />
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Players can’t draw cards.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les joueurs ne peuvent pas piocher de cartes.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Los jugadores no pueden robar cartas.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spieler können keine Karten ziehen.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[I giocatori non possono pescare carte.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[プレイヤーはカードを引けない。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Players can’t draw cards.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Игроки не могут брать карты.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Os jogadores não podem comprar cards.]]></LOCALISED_TEXT>
<TRIGGER value="DREW_CARD" simple_qualifier="controller">
override = 1
return true
</TRIGGER>
</STATIC_ABILITY>
<TRIGGERED_ABILITY auto_skip="1" filter_zone="ZONE_IN_PLAY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of each player’s draw step, that player exiles the top card of his or her library. If it’s a land card, the player puts it onto the battlefield. Otherwise, the player casts it without paying its mana cost if able.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de l’étape de pioche de chaque joueur, ce joueur exile la première carte de sa bibliothèque. Si c’est une carte de terrain, le joueur la met sur le champ de bataille. Sinon, le joueur la lance sans payer son coût de mana si possible.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo del paso de robar de cada jugador, ese jugador exilia la primera carta de su biblioteca. Si es una carta de tierra, la pone en el campo de batalla. De lo contrario, ese jugador la lanza sin pagar su coste de maná si puede.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zu Beginn des Ziehsegments jedes Spielers schickt dieser die oberste Karte seiner Bibliothek ins Exil. Falls diese Karte ein Land ist, bringt der Spieler sie ins Spiel. Sonst wirkt der Spieler sie, ohne ihre Manakosten zu bezahlen, falls möglich.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio dell’acquisizione di ogni giocatore, quel giocatore esilia la prima carta del suo grimorio. Se è una carta terra, il giocatore la mette sul campo di battaglia. Altrimenti, il giocatore la lancia senza pagare il suo costo di mana, se può farlo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[各プレイヤーのドロー・ステップの開始時に、そのプレイヤーは自分のライブラリーの一番上のカードを追放する。 それが土地カードである場合、そのプレイヤーはそれを戦場に出す。 そうでない場合、そのプレイヤーは可能ならそれを、それのマナ・コストを支払うことなく唱える。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[At the beginning of each player’s draw step, that player exiles the top card of his or her library. If it’s a land card, the player puts it onto the battlefield. Otherwise, the player casts it without paying its mana cost if able.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале шага взятия карты каждого игрока тот игрок изгоняет верхнюю карту своей библиотеки. Если это карта земли, игрок кладет ее на поле битвы. В противном случае игрок разыгрывает ее без уплаты ее мана-стоимости, если это возможно.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início da etapa de compra de cada jogador, aquele jogador exila o card do topo do próprio grimório. Se for um card de terreno, o jogador o coloca no campo de batalha. Do contrário, o jogador o conjura sem pagar seu custo de mana se estiver apto.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_STEP">
return ( TriggerPlayer():MyTurn() ~= 0 ) and ( MTG():GetStep() == STEP_DRAW )
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local player = TriggerPlayer()
if player ~= nil then
local card = player:Library_GetNth(0)
if card == nil then
return false
end
local chest = EffectDC():Get_Chest(0)
if (chest == nil) then
chest = EffectDC():Make_Chest(0)
end
card:RemoveFromGame()
if card ~= nil then
card:Set_CardPtr(0, card)
end
if card:GetCardType():Test( CARD_TYPE_LAND ) == 1 then
card:PutIntoPlay( player )
else
player:SetTargetPrompt( 0, "CARD_QUERY_CHOOSE_CARD_TO_PLAY" )
player:ChooseTargetsFromDCWithFlags( NO_VALIDATION, browser, EffectDC():Make_Targets(0), QUERY_FLAG_CAN_BE_FINISHED_EARLY + QUERY_FLAG_CAN_BE_FINISHED_EARLY_FOR_AI_AS_WELL )
card:PlayFreeFromAnywhere( player )
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
</CARD_V2>
"There's an experience worse than blindness - it's the certainty that your vision is perfect and the horror that there's no world around you to see."
-
BloodReyvyn - Posts: 421
- Joined: 19 May 2013, 13:29
- Has thanked: 53 times
- Been thanked: 40 times
Re: Card Creation Request Thread
by sumomole » 31 May 2013, 07:56
The first ability:BloodReyvyn wrote:I have been trying to code Omen Machine, but it still lets players draw the exiled cards
1. TRIGGER is used in TRIGGERED_ABILITY, not STATIC_ABILITY.
2. override = true should be used with internal="1" and pre_trigger="1", and because this effect isn't a instead effect, so you need use priority="20" to ensure it resolves before ohter instead effect.
- the second ability | Open
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of each player’s draw step, that player exiles the top card of his or her library. If it’s a land card, the player puts it onto the battlefield. Otherwise, the player casts it without paying its mana cost if able.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_STEP">
return ( TriggerPlayer():MyTurn() ~= 0 ) and ( MTG():GetStep() == STEP_DRAW )
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local player = TriggerPlayer()
if player ~= nil then
local card = player:Library_GetTop()
if card ~= nil then
EffectDC():Set_CardPtr(0, card)
EffectDC():Protect_CardPtr(0)
card:GuidedReveal( ZONE_LIBRARY , ZONE_REMOVED_FROM_GAME )
card:RemoveFromGame()
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local player = TriggerPlayer()
local card = EffectDC():Get_CardPtr(0)
if player ~= nil and card ~= nil then
if card:GetCardType():Test( CARD_TYPE_LAND ) ~= 0 then
card:PutIntoPlay( player )
elseif card:CanBePlayed( player ) then
card:PlayFreeFromAnywhere( player )
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Card Creation Request Thread
by thefiremind » 31 May 2013, 08:39
That's exactly what I think, but I don't think that it's correct rule-wise, it's just an engine limitation. Well, I think I could make Ink-Treader Nephilim itself fire the missing BECAME_TARGET triggers... let me try.sumomole wrote:Perhaps become target doesn't work for copy spell that doesn't need to choose new target
EDIT: OK, now it's better, but still not perfect. You can get the new Ink-Treader Nephilim here, but it still won't work with Wild Defiance because I can't set the SecondaryObject from the FireTrigger function. It works with Petrahydrox, though.

EDIT 2: About sumomole's Livewire Lash, I don't know if it's part of the "test", but there's something slightly wrong: it says "target of a spell", not "target of an instant or sorcery spell". This excludes Auras, for example. You should check SecondaryObject():GetZone() == ZONE_STACK, this is the check for spells (as hinted by Emrakul, the Aeons Torn with its protection). Actually I don't know if this counts abilities as well... they are on the stack even if they are invisible. It would need testing.
Last edited by thefiremind on 31 May 2013, 09:16, edited 1 time in total.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: Card Creation Request Thread
by BloodReyvyn » 31 May 2013, 09:15
Still a few problems with Omen Machine.
1) Players still can draw cards after the exile > play effect takes place.
2) I am pairing this with Teferi, Mage of Zhalfir for a hard lock combo deck, but opponents are able to play the exiled spells, despite the fact that they shouldn't be able due to Teferi's sorcery-speed restriction.
I probably put something in the wrong place, but I'm burnt so here's the code as it exists now. I'll check before work in the morning. G'night all.
1) Players still can draw cards after the exile > play effect takes place.
2) I am pairing this with Teferi, Mage of Zhalfir for a hard lock combo deck, but opponents are able to play the exiled spells, despite the fact that they shouldn't be able due to Teferi's sorcery-speed restriction.
I probably put something in the wrong place, but I'm burnt so here's the code as it exists now. I'll check before work in the morning. G'night all.
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2>
<FILENAME text="OMEN_MACHINE_233042" />
<CARDNAME text="OMEN_MACHINE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Omen Machine]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Machine à présages]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Máquina de presagios]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Omenmaschine]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Macchina dei Presagi]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[前兆の機械]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Omen Machine]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Машина Предзнаменования]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Máquina do Agouro]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="233042" />
<ARTID value="A233042" />
<ARTIST name="David Rapoza" />
<CASTING_COST cost="{6}" />
<TYPE metaname="Artifact" />
<EXPANSION value="NPH" />
<RARITY metaname="R" />
<TRIGGERED_ABILITY auto_skip="1" filter_zone="ZONE_IN_PLAY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Players can’t draw cards.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les joueurs ne peuvent pas piocher de cartes.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Los jugadores no pueden robar cartas.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Spieler können keine Karten ziehen.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[I giocatori non possono pescare carte.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[プレイヤーはカードを引けない。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Players can’t draw cards.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Игроки не могут брать карты.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Os jogadores não podem comprar cards.]]></LOCALISED_TEXT>
<TRIGGER value="DREW_CARD" simple_qualifier="controller">
internal="1"
pre_trigger="1"
priority="20"
override = 1
return true
</TRIGGER>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of each player’s draw step, that player exiles the top card of his or her library. If it’s a land card, the player puts it onto the battlefield. Otherwise, the player casts it without paying its mana cost if able.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Au début de l’étape de pioche de chaque joueur, ce joueur exile la première carte de sa bibliothèque. Si c’est une carte de terrain, le joueur la met sur le champ de bataille. Sinon, le joueur la lance sans payer son coût de mana si possible.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Al comienzo del paso de robar de cada jugador, ese jugador exilia la primera carta de su biblioteca. Si es una carta de tierra, la pone en el campo de batalla. De lo contrario, ese jugador la lanza sin pagar su coste de maná si puede.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zu Beginn des Ziehsegments jedes Spielers schickt dieser die oberste Karte seiner Bibliothek ins Exil. Falls diese Karte ein Land ist, bringt der Spieler sie ins Spiel. Sonst wirkt der Spieler sie, ohne ihre Manakosten zu bezahlen, falls möglich.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[All’inizio dell’acquisizione di ogni giocatore, quel giocatore esilia la prima carta del suo grimorio. Se è una carta terra, il giocatore la mette sul campo di battaglia. Altrimenti, il giocatore la lancia senza pagare il suo costo di mana, se può farlo.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[各プレイヤーのドロー・ステップの開始時に、そのプレイヤーは自分のライブラリーの一番上のカードを追放する。 それが土地カードである場合、そのプレイヤーはそれを戦場に出す。 そうでない場合、そのプレイヤーは可能ならそれを、それのマナ・コストを支払うことなく唱える。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[At the beginning of each player’s draw step, that player exiles the top card of his or her library. If it’s a land card, the player puts it onto the battlefield. Otherwise, the player casts it without paying its mana cost if able.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В начале шага взятия карты каждого игрока тот игрок изгоняет верхнюю карту своей библиотеки. Если это карта земли, игрок кладет ее на поле битвы. В противном случае игрок разыгрывает ее без уплаты ее мана-стоимости, если это возможно.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[No início da etapa de compra de cada jogador, aquele jogador exila o card do topo do próprio grimório. Se for um card de terreno, o jogador o coloca no campo de batalha. Do contrário, o jogador o conjura sem pagar seu custo de mana se estiver apto.]]></LOCALISED_TEXT>
<TRIGGER value="BEGINNING_OF_STEP">
return ( TriggerPlayer():MyTurn() ~= 0 ) and ( MTG():GetStep() == STEP_DRAW )
</TRIGGER>
<RESOLUTION_TIME_ACTION>
local player = TriggerPlayer()
if player ~= nil then
local card = player:Library_GetTop()
if card ~= nil then
EffectDC():Set_CardPtr(0, card)
EffectDC():Protect_CardPtr(0)
card:GuidedReveal( ZONE_LIBRARY , ZONE_REMOVED_FROM_GAME )
card:RemoveFromGame()
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local player = TriggerPlayer()
local card = EffectDC():Get_CardPtr(0)
if player ~= nil and card ~= nil then
if card:GetCardType():Test( CARD_TYPE_LAND ) ~= 0 then
card:PutIntoPlay( player )
elseif card:CanBePlayed( player ) then
card:PlayFreeFromAnywhere( player )
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
</CARD_V2>
"There's an experience worse than blindness - it's the certainty that your vision is perfect and the horror that there's no world around you to see."
-
BloodReyvyn - Posts: 421
- Joined: 19 May 2013, 13:29
- Has thanked: 53 times
- Been thanked: 40 times
Re: Card Creation Request Thread
by sumomole » 31 May 2013, 09:20
Search the old post you will find Sisters of Stone Death can't be coded.BloodReyvyn wrote:Since this is the Request thread, I am going to request a card for a change: Sisters of Stone Death.

BloodReyvyn wrote:1) Players still can draw cards after the exile > play effect takes place.
- Code: Select all
<TRIGGERED_ABILITY internal="1" pre_trigger="1" priority="20">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Players can’t draw cards.]]></LOCALISED_TEXT>
<TRIGGER value="DREW_CARD">
override = true
return true
</TRIGGER>
</TRIGGERED_ABILITY>
I find some error from your Teferi, Mage of Zhalfir, and I think the third ability of it is simpler to use PLAYER_CHARACTERISTIC_CANT_CAST_SPELLS, of course the effect should be same.BloodReyvyn wrote:Awesome, that works great.I ended up using "ZONE_ANY" because the AI was in fact able to still play cards with flashback at instant speed.
Teferi, Mage of Zhalfir (w/ Art): https://www.dropbox.com/s/z3uew39gf61i9 ... ip?v=0rc-s

- Teferi, Mage of Zhalfir | Open
- Code: Select all
<STATIC_ABILITY active_zone="ZONE_ANY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flash]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION>
local characteristics = Object():GetCurrentCharacteristics()
characteristics:Characteristic_Set( CHARACTERISTIC_FLASH, 1 )
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<STATIC_ABILITY filter_zone="ZONE_ANY">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Creature cards you own that aren’t on the battlefield have flash.]]></LOCALISED_TEXT>
<FILTER>
local filteredCard = FilteredCard()
local objectPlayer = Object():GetController()
return ((filteredCard ~= nil) and (filteredCard:GetOwner() == objectPlayer) and (filteredCard:GetCardType():Test( CARD_TYPE_CREATURE ) ~= 0) and (filteredCard:GetZone() ~= (ZONE_IN_PLAY)))
</FILTER>
<CONTINUOUS_ACTION layer="6">
if FilteredCard() ~= nil then
local characteristics = FilteredCard():GetCurrentCharacteristics()
if characteristics ~= nil then
characteristics:Characteristic_Set( CHARACTERISTIC_FLASH, 1 )
end
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<STATIC_ABILITY filter_zone="ZONE_PLAYER">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each opponent can cast spells only any time he or she could cast a sorcery.]]></LOCALISED_TEXT>
<FILTER>
return Opponents() and FilteredPlayer():SorceryTime() == 0
</FILTER>
<CONTINUOUS_ACTION layer="8">
if FilteredPlayer() ~= nil then
local characteristics = FilteredPlayer():GetCurrentCharacteristics()
characteristics:Bool_Set( PLAYER_CHARACTERISTIC_CANT_CAST_SPELLS, 1 )
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Card Creation Request Thread
by thefiremind » 31 May 2013, 09:43
That's my fault, I often forget about that characteristic...sumomole wrote:I think the third ability of it is simpler to use PLAYER_CHARACTERISTIC_CANT_CAST_SPELLS, of course the effect should be same.![]()

< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: Card Creation Request Thread
by sumomole » 31 May 2013, 09:53
Yes, I change TRIGGER_BECAME_TARGET to TRIGGER_TARGETS_CHOSEN, and because it just for test with Ink-Treader Nephilim, so I limit it to instant or sorcery. I will del that, and this is my Livewire Lash. Please see if there is anything wrong?thefiremind wrote:EDIT 2: About sumomole's Livewire Lash, I don't know if it's part of the "test", but there's something slightly wrong: it says "target of a spell", not "target of an instant or sorcery spell". This excludes Auras, for example. You should check SecondaryObject():GetZone() == ZONE_STACK, this is the check for spells (as hinted by Emrakul, the Aeons Torn with its protection). Actually I don't know if this counts abilities as well... they are on the stack even if they are invisible. It would need testing.

- Attachments
-
Livewire Lash.zip
- (107.49 KiB) Downloaded 365 times
-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Card Creation Request Thread
by thefiremind » 31 May 2013, 10:08
I think you made a good set of conditions for SecondaryObject, but I can't really understand what you are doing on this card and on Wild Defiance with all those ObjectDC registers... 

< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: Card Creation Request Thread
by sumomole » 31 May 2013, 11:15
Because TRIGGER_BECAME_TARGET has a bug, if you use Flames of the Firebrand to target Ashenmoor Liege three times, you will lose 12 life.thefiremind wrote:I think you made a good set of conditions for SecondaryObject, but I can't really understand what you are doing on this card and on Wild Defiance with all those ObjectDC registers...

-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Card Creation Request Thread
by thefiremind » 31 May 2013, 11:22
Uhm... I had to think about it for a moment, but yeah, that's a bug... and it affects 2 official cards, so those developers really didn't like to work too much...sumomole wrote:Because TRIGGER_BECAME_TARGET has a bug, if you use Flames of the Firebrand to target Ashenmoor Liege three times, you will lose 12 life.thefiremind wrote:I think you made a good set of conditions for SecondaryObject, but I can't really understand what you are doing on this card and on Wild Defiance with all those ObjectDC registers...

< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: Card Creation Request Thread
by sumomole » 31 May 2013, 11:50
These two cards are coded in last summer, now I think we can use DuelDataChest to instead of ObjectDC, just like the code of Vorel of the Hull Clade.thefiremind wrote:Uhm... I had to think about it for a moment, but yeah, that's a bug... and it affects 2 official cards, so those developers really didn't like to work too much...sumomole wrote:Because TRIGGER_BECAME_TARGET has a bug, if you use Flames of the Firebrand to target Ashenmoor Liege three times, you will lose 12 life.thefiremind wrote:I think you made a good set of conditions for SecondaryObject, but I can't really understand what you are doing on this card and on Wild Defiance with all those ObjectDC registers...
-
sumomole - Programmer
- Posts: 611
- Joined: 07 Jun 2011, 08:34
- Has thanked: 51 times
- Been thanked: 234 times
Re: Card Creation Request Thread
by CrazyJawas » 01 Jun 2013, 13:59
Hey guys,
I had been watching Multieyemeteors videos on youtube about modded decks and decided to give it a try. I've managed to make some basic cards but i'm looking for a bit of help with one i'm working on just now. I was trying to make Hidden Spider but I couldn't see a way to change a card's primary type, in this case changing an enchantment to a creature. Even if I could remove it's original type would be enough. I've got the trigger working fine at the moment but if I just add the creature type it make this horrible creature/enchantment compound card which seems to crash the game. Do you have any advice on how I could get this to work?
Thanks
I had been watching Multieyemeteors videos on youtube about modded decks and decided to give it a try. I've managed to make some basic cards but i'm looking for a bit of help with one i'm working on just now. I was trying to make Hidden Spider but I couldn't see a way to change a card's primary type, in this case changing an enchantment to a creature. Even if I could remove it's original type would be enough. I've got the trigger working fine at the moment but if I just add the creature type it make this horrible creature/enchantment compound card which seems to crash the game. Do you have any advice on how I could get this to work?
Thanks
- CrazyJawas
- Posts: 3
- Joined: 01 Jun 2013, 13:47
- Has thanked: 2 times
- Been thanked: 0 time
Re: Card Creation Request Thread
by thefiremind » 01 Jun 2013, 14:18
I'm not sure if it works since some of the functions that mess with types/sub-types/supertypes aren't accessible, but the way to do that should be:CrazyJawas wrote:I was trying to make Hidden Spider but I couldn't see a way to change a card's primary type, in this case changing an enchantment to a creature. Even if I could remove it's original type would be enough. I've got the trigger working fine at the moment but if I just add the creature type it make this horrible creature/enchantment compound card which seems to crash the game. Do you have any advice on how I could get this to work?
- Code: Select all
<CONTINUOUS_ACTION layer="3">
local source = EffectSource()
if source ~= nil then
local characteristics = source:GetCurrentCharacteristics()
characteristics:CardType_GetWritable(source):Clear()
characteristics:CardType_GetWritable(source):Add( CARD_TYPE_CREATURE, source )
end
</CONTINUOUS_ACTION>
Anyway you'll have to deal with another problem: CHARACTERISTIC_FLYING isn't enabled when the spell is on the stack, so you can't check if a spell has flying. The only way to do that would be to search the spell's card name in a list of creature cards with flying... but that list would be huuuuuge.

< Former DotP 2012/2013/2014 modder >
Currently busy with life...
Currently busy with life...
-
thefiremind - Programmer
- Posts: 3515
- Joined: 07 Nov 2011, 10:55
- Has thanked: 118 times
- Been thanked: 722 times
Re: Card Creation Request Thread
by CrazyJawas » 01 Jun 2013, 14:31
Thanks thefiremind, thats great.
But yeah i've misread that card, the trigger isn't as easy as I thought. I had just been doing it when it came into play but I suppose that's wrong.
But yeah i've misread that card, the trigger isn't as easy as I thought. I had just been doing it when it came into play but I suppose that's wrong.
- Code: Select all
<TRIGGER value="ZONECHANGE_END" to_zone="ZONE_IN_PLAY">
return (TriggerObject() ~= Object() and TriggerObject():GetCardType():Test( CARD_TYPE_CREATURE ) ~= 0 and TriggerObject():GetCurrentCharacteristics():Characteristic_Get( CHARACTERISTIC_FLYING ) ~= 0)
</TRIGGER>
- CrazyJawas
- Posts: 3
- Joined: 01 Jun 2013, 13:47
- Has thanked: 2 times
- Been thanked: 0 time
Return to New MTG Cards and Decks (2010, 2012, 2013, 2014, 2015, Magic Duels)
Who is online
Users browsing this forum: No registered users and 29 guests