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)
2014




Formal Request Thread
Moderator: CCGHQ Admins
Re: Formal Request Thread
by thefiremind » 16 Oct 2013, 00:09
You forgot the resource_id="1" for the TRIGGERED_ABILITY (take another look at my Shipbreaker Kraken if you have doubts).Kieran wrote:Hythonia the Cruel - This card is stuck in a never-ending loop trying to resolve itself whenever an ability is activated or a land is tapped for mana.
You haven't posted the code, but I guess the problem is the same.Kieran wrote:Keepsake Gorgon - This card is also stuck in a never-ending loop trying to resolve itself whenever an ability is activated or a land is tapped for mana.
Of course the target isn't destroyed... you save it on register 0 and read it on register 1...Kieran wrote:Killing Glare - The target isn't destroyed but I did manage to make the 'X' counter work.
I'm not using CODE in the following snippet because I need to use colors.
Same color means they refer to the same data, so they need to match.<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_DESTROY" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_POWER, OP_LESS_THAN_OR_EQUAL_TO, X )
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target_creature = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target_creature ~= nil then
target_creature:Destroy()
end
</RESOLUTION_TIME_ACTION>
<AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
What you coded here is "you may return target creature card and target enchantment card from your graveyard to your hand", which can't trigger if you don't have both targets available. Actually, your code wouldn't work anyway because you used the same compartment and ID for both targets.Kieran wrote:Pharika's Mender - There is no option to retreive anything from the graveyard and accordingly nothing returns.
Look at Solemn Offering: it asks for target artifact or enchantment. Change CARD_TYPE_ARTIFACT to CARD_TYPE_CREATURE and you have the definition for that pairing. Don't delete your SetZone, that's correct as it is.
What you coded here is "you may return target creature enchantment card from your graveyard to your hand"... it would basically work only on the Gods and the bestow creatures.drleg3nd wrote:This is what i got for pharika mender
The filters are set to "And" by default, which means that all the conditions you add must be true. If your situation requires any one of the conditions to be true (not necessarily all of them), you need to create a sub-filter set to "Or" with those conditions (or set the whole filter to "Or", but let's forget about that unless you need a complicated filter such as Death Baron).
The problem is in the first ability, which has nothing to do with Ashiok.Kieran wrote:Sisters of Stone Death- This one is impossible to implement. Although, I was looking @ Ashiok, Nightmare Weaver for ideas.
EDIT: Before someone asks the same questions again, I'll explain it once more: "creature A blocks creature B if able" implies that if creature A can't block creature B (for example because creature B gained shadow), the effect must not hinder creature A's capability to block: creature A should be able to block normally in that case. While we can check for unblockable, flying, shadow, reach, fear and intimidate, we can't check for blocking exceptions that aren't characteristic-based, such as Hunted Ghoul.
< 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: Formal Request Thread
by drleg3nd » 16 Oct 2013, 00:26
Ok TFM, if a card giving two choices has "OR" i need to add subfilter :local subfilter = filter:AddSubFilter_Or() otherwise it would be "AND" right ?
Re: Formal Request Thread
by jacque » 16 Oct 2013, 00:59
>.< Kieran, I am quite sure the ones I posted worked =(Kieran wrote:Hythonia the Cruel - This card is stuck in a never-ending loop trying to resolve itself whenever an ability is activated or a land is tapped for mana.
Keepsake Gorgon - This card is also stuck in a never-ending loop trying to resolve itself whenever an ability is activated or a land is tapped for mana.
Last edited by jacque on 16 Oct 2013, 01:15, edited 1 time in total.
Learn making your own cards today!!!
Click on
if a post/reply helped you.
I stitch old cards together to make new ones...
~ Jacque, the confused
Click on

I stitch old cards together to make new ones...
~ Jacque, the confused
Re: Formal Request Thread
by RiiakShiNal » 16 Oct 2013, 01:06
That's right, Filters are "And" by default (top level is always "And") on the sub-filters you can use "And" and/or "Or". Even still when you add an "Or" sub-filter you need to make sure to add the conditions to be "Or"'d to the sub-filter instead of to the main filter.drleg3nd wrote:if a card giving two choices has "OR" i need to add subfilter :local subfilter = filter:AddSubFilter_Or() otherwise it would be "AND" right ?
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2188
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 497 times
Re: Formal Request Thread
by Kieran » 16 Oct 2013, 01:12
@jacque: Be of good cheer! I'm confident they work properly but I wanted to try to code them for myself using your tutorial and then ask questions about where I messed up. Believe me, I've already grabbed your work and saved it. Thanks for the XMLs and the tutorial!
@TFM: Thanks for the insight! I'll post the results of the changes you've recommended.
@TFM: Thanks for the insight! I'll post the results of the changes you've recommended.
Re: Formal Request Thread
by fallenangle » 16 Oct 2013, 01:29
I can confirm that Jacque's Hythonia and Keepsake Gorgon both work properly. However, it is a good idea to add a static block with the monstrous ability so that it shows up on the cards as readable. Thefiremind's Shipbreaker Kraken and his earlier post about monstrous in this thread are helpful for this.
- fallenangle
- Posts: 319
- Joined: 20 Jul 2013, 02:31
- Has thanked: 73 times
- Been thanked: 41 times
Re: Formal Request Thread
by drleg3nd » 16 Oct 2013, 01:42
i don't know if someone made this already but i could use this..
- Mind Grind | Open
- Code: Select all
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each opponent reveals cards from the top of his or her library until he or she reveals X land cards, then puts all cards revealed this way into his or her graveyard. X can’t be 0.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chaque adversaire révèle les cartes du dessus de sa bibliothèque jusqu’à révéler X cartes de terrain, puis il met toutes les cartes révélées de cette manière dans son cimetière. X ne peut pas être 0.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cada oponente muestra cartas de la parte superior de su biblioteca hasta que muestre X cartas de tierra, luego pone en su cementerio todas las cartas mostradas de esta manera. X no puede ser 0.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Jeder Gegner deckt Karten oben von seiner Bibliothek auf, bis er X Land-Karten aufdeckt, dann legt er alle auf diese Weise aufgedeckten Karten auf seinen Friedhof. X kann nicht 0 sein.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogni avversario rivela carte dalla cima del proprio grimorio fino a che non rivela X carte terra, poi mette tutte le carte rivelate in questo modo nel proprio cimitero. X non può essere 0.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[各対戦相手はそれぞれ自分のライブラリーの一番上から、土地カードがX枚公開されるまでカードを公開し続ける。その後これにより公開されたすべてのカードを自分の墓地に置く。Xは0にできない。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[각 상대는 대지 카드가 X장 나올 때까지 자신의 서고 맨 위에서부터 카드를 공개한 후, 공개된 카드들을 자신의 무덤에 넣는다. X는 0일 수 없다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый оппонент показывает карты с верха своей библиотеки до тех пор, пока не покажет Х карт земель, затем кладет все показанные таким образом карты на свое кладбище. Х не может равняться 0.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Cada oponente revela cards do topo do próprio grimório até revelar X cards de terreno e, depois, coloca todos os cards revelados dessa maneira no próprio cemitério. X não pode ser 0.]]></LOCALISED_TEXT>
</SPELL_ABILITY>
Re: Formal Request Thread
by Kieran » 16 Oct 2013, 02:21
Thanks for the other cards drleg3nd! Let's also request Tenacious Dead in addition to Mind Grind so we can go ahead and finish both deck request.
Edit: I just realized I didn't say thanks for your help fallenangle. Your reference was helpful. Thanks!
Edit: I just realized I didn't say thanks for your help fallenangle. Your reference was helpful. Thanks!
Re: Formal Request Thread
by SystemSCSnake » 16 Oct 2013, 04:24
I request Shard Volley, Ball Lightning, and Spark Elemental. Thanks in advance!
EDIT: Add Walking Archive, Kami of the Crescent Moon and Jace's Archivist to that. I should probably just learn to code myself
EDIT: Add Walking Archive, Kami of the Crescent Moon and Jace's Archivist to that. I should probably just learn to code myself

- SystemSCSnake
- Posts: 7
- Joined: 02 Oct 2013, 16:35
- Has thanked: 4 times
- Been thanked: 0 time
Re: Formal Request Thread
by jacque » 16 Oct 2013, 05:33
Kieran!!!Kieran wrote:Thanks for the other cards drleg3nd! Let's also request Tenacious Dead in addition to Mind Grind so we can go ahead and finish both deck request.
Edit: I just realized I didn't say thanks for your help fallenangle. Your reference was helpful. Thanks!
- Tenacious Dead (Sorry I don't have M14 artwork =()
*more to come =)*
Here you are... more to come too... *I hope* LOLSystemSCSnake wrote:I request Shard Volley, Ball Lightning, and Spark Elemental. Thanks in advance!
EDIT: Add Walking Archive, Kami of the Crescent Moon and Jace's Archivist to that. I should probably just learn to code myself
- Ball Lightning
- Spark Elemental
- Shard Volley
- Attachments
-
SHARD_VOLLEY_152837.rar
- Not tested...
- (111.87 KiB) Downloaded 196 times
-
SPARK_ELEMENTAL_234700.rar
- No tested...
- (105.18 KiB) Downloaded 197 times
-
BALL_LIGHTNING_234722.rar
- Not tested...
- (109.57 KiB) Downloaded 201 times
-
TENACIOUS_DEAD_370606.rar
- Tested: Revenge... No artwork...
- (2.67 KiB) Downloaded 448 times
Learn making your own cards today!!!
Click on
if a post/reply helped you.
I stitch old cards together to make new ones...
~ Jacque, the confused
Click on

I stitch old cards together to make new ones...
~ Jacque, the confused
Re: Formal Request Thread
by Kieran » 16 Oct 2013, 07:24
- Here is a HQ pic of Tenacious Dead.
Re: Formal Request Thread
by jacque » 16 Oct 2013, 07:37
@Kieran: I'm currently testing Mind Grind... *almost done* xDKieran wrote:TD.jpg@jacque: Thanks my friend! Also, I'm having trouble trying to make Crypt Incursion. I started by looking @ Rakdos Charm but the second part that causes life gain eludes me. Now I realize that 2013 spoiled me because there were so many cards already created it was simple to just refer to them for code structure. Again, thank you so much!
EDIT: Deviated from *almost done* to far from done >.<
Learn making your own cards today!!!
Click on
if a post/reply helped you.
I stitch old cards together to make new ones...
~ Jacque, the confused
Click on

I stitch old cards together to make new ones...
~ Jacque, the confused
Re: Formal Request Thread
by thefiremind » 16 Oct 2013, 08:50
The problem with Mind Grind is that we don't have a support for "X can't be 0". When I made Aeon Chronicler I modified its text changing all "X" with "X+1" and adding
to the suspend cost. But that was an ability: I'd advise not to do the same with Mind Grind, otherwise its CMC would be different. If the card had at least 1 target you could make it depend on X and SetTargetCount(0) when X was 0... the only choice with Mind Grind is to make sure that it does absolutely nothing when X is 0.
EDIT: This is my Mind Grind. If X is 0, the spell resolves, but does nothing. If someone has a better idea, please share it.

You need filter evaluation for that.Kieran wrote:Also, I'm having trouble trying to make Crypt Incursion.
- Code: Select all
<RESOLUTION_TIME_ACTION>
local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
if target_player ~= nil then
local filter = ClearFilter()
filter:SetZone( ZONE_GRAVEYARD, target_player )
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
local count = filter:EvaluateObjects()
if count > 0 then
for i=0,count-1 do
filter:GetNthEvaluatedObject(i):Exile()
end
EffectController():GainLife(3*count)
end
end
</RESOLUTION_TIME_ACTION>
EDIT: This is my Mind Grind. If X is 0, the spell resolves, but does nothing. If someone has a better idea, please share it.
- Mind Grind (tested but not 100% correct) | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="MIND_GRIND_366418" />
<CARDNAME text="MIND_GRIND" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Mind Grind]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Broyeur d’esprit]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Moler la mente]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Gedanken radieren]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Macina Mentale]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[精神削り]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[정신 갈아엎기]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Перемалывание Разума]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Trituração Mental]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="366418" />
<ARTID value="366418" />
<ARTIST name="Daarken" />
<CASTING_COST cost="{X}{U}{B}" />
<TYPE metaname="Sorcery" />
<EXPANSION value="GTC" />
<RARITY metaname="R" />
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each opponent reveals cards from the top of his or her library until he or she reveals X land cards, then puts all cards revealed this way into his or her graveyard. X can’t be 0.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chaque adversaire révèle les cartes du dessus de sa bibliothèque jusqu’à révéler X cartes de terrain, puis il met toutes les cartes révélées de cette manière dans son cimetière. X ne peut pas être 0.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cada oponente muestra cartas de la parte superior de su biblioteca hasta que muestre X cartas de tierra, luego pone en su cementerio todas las cartas mostradas de esta manera. X no puede ser 0.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Jeder Gegner deckt Karten oben von seiner Bibliothek auf, bis er X Land-Karten aufdeckt, dann legt er alle auf diese Weise aufgedeckten Karten auf seinen Friedhof. X kann nicht 0 sein.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogni avversario rivela carte dalla cima del proprio grimorio fino a che non rivela X carte terra, poi mette tutte le carte rivelate in questo modo nel proprio cimitero. X non può essere 0.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[各対戦相手はそれぞれ自分のライブラリーの一番上から、土地カードがX枚公開されるまでカードを公開し続ける。その後これにより公開されたすべてのカードを自分の墓地に置く。Xは0にできない。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[각 상대는 대지 카드가 X장 나올 때까지 자신의 서고 맨 위에서부터 카드를 공개한 후, 공개된 카드들을 자신의 무덤에 넣는다. X는 0일 수 없다.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый оппонент показывает карты с верха своей библиотеки до тех пор, пока не покажет Х карт земель, затем кладет все показанные таким образом карты на свое кладбище. Х не может равняться 0.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Cada oponente revela cards do topo do próprio grimório até revelar X cards de terreno e, depois, coloca todos os cards revelados dessa maneira no próprio cemitério. X não pode ser 0.]]></LOCALISED_TEXT>
<RESOLUTION_TIME_ACTION>
local x = GetEffectX()
if x > 0 then
-- If X is 0, the reveal count will be 0 for all players and nothing will happen. That's the best we can do for "X can't be 0", unfortunately.
local myTeam = EffectController():GetTeam()
for p=0,MTG():GetNumberOfPlayers()-1 do
local nthPlayer = MTG():GetNthPlayer(p)
if nthPlayer ~= nil and nthPlayer:GetTeam() ~= myTeam then
local max_count = nthPlayer:Library_Count()
local land_count = 0
local reveal_count = max_count
if max_count > 0 then
for i=0,max_count-1 do
local card = nthPlayer:Library_GetNth(i)
if card:GetCardType():Test(CARD_TYPE_LAND) then
land_count = land_count + 1
if land_count == x then
reveal_count = i+1
break
end
end
end
end
EffectDC():Set_Int(p, reveal_count)
end
end
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION repeating="1">
local n = MTG():GetActionRepCount()
if n < MTG():GetNumberOfPlayers() then
local myTeam = EffectController():GetTeam()
local nthPlayer = MTG():GetNthPlayer(n)
if nthPlayer ~= nil and nthPlayer:GetTeam() ~= myTeam then
local reveal_count = EffectDC():Get_Int(n)
if reveal_count > 0 then
for i=0,reveal_count-1 do
nthPlayer:Library_GetNth(i):Reveal()
end
end
end
return true
end
return false
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local myTeam = EffectController():GetTeam()
for p=0,MTG():GetNumberOfPlayers()-1 do
local nthPlayer = MTG():GetNthPlayer(p)
if nthPlayer ~= nil and nthPlayer:GetTeam() ~= myTeam then
local reveal_count = EffectDC():Get_Int(p)
if reveal_count > 0 then
nthPlayer:MillCards(reveal_count)
end
end
end
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
<AI_BASE_SCORE score="750" zone="ZONE_HAND" />
</CARD_V2>
- Attachments
-
MIND_GRIND_366418.zip
- Unprefixed, tested but not 100% correct, illustration included
- (107.56 KiB) Downloaded 193 times
< 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: Formal Request Thread
by SystemSCSnake » 16 Oct 2013, 18:52
Here you are... more to come too... *I hope* LOLSystemSCSnake wrote:I request Shard Volley, Ball Lightning, and Spark Elemental. Thanks in advance!
EDIT: Add Walking Archive, Kami of the Crescent Moon and Jace's Archivist to that. I should probably just learn to code myself
- Ball Lightning
- Spark Elemental
- Shard Volley[/quote]
Thanks a ton! Way awesome man

- SystemSCSnake
- Posts: 7
- Joined: 02 Oct 2013, 16:35
- Has thanked: 4 times
- Been thanked: 0 time
Re: Formal Request Thread
by jacque » 16 Oct 2013, 21:39
Thanks to you as well my friend =)... Where did u find HQ pics for THS cards neways? You have a source or sumthing?Kieran wrote:Again, thank you so much!
NP =) Those are wayyyy easier to code than the rest... so yea... xDSystemSCSnake wrote:Thanks a ton! Way awesome man
Finally came out with another version of Mind Grind as well... working on the X=0 check... hmmm if there's another way around it... Hmmmjacque wrote:@Kieran: I'm currently testing Mind Grind... *almost done* xD
Learn making your own cards today!!!
Click on
if a post/reply helped you.
I stitch old cards together to make new ones...
~ Jacque, the confused
Click on

I stitch old cards together to make new ones...
~ Jacque, the confused
Who is online
Users browsing this forum: No registered users and 5 guests