It is currently 05 Sep 2025, 22:28
   
Text Size

Formal Request Thread

Moderator: CCGHQ Admins

Re: Formal Request Thread

Postby Xander9009 » 25 Sep 2014, 13:26

RiiakShiNal wrote:There are more problems with your method as for example if you use Generator Servant and then cast a Sol Ring which you then tapped so you could cast 3 copies of Arcbound Worker. Your method would give 2 of those Arcbound Workers haste even though only 1 should get it. The case here is that you aren't considering that the mana was used for something that isn't a creature.

Another problem you be if you manually produced a {W} mana and then used Generator Servant and cast in this order Soul Warden and 2 copies of Arcbound Worker the Soul Warden and 1 Arcbound Worker would get haste instead of the correct case where both Arcbound Workers would get haste. The problem here is that you aren't considering the case where the player casts a creature that doesn't colourless mana.

Another case would be if you used some of the colourless mana for an ability to say generate coloured mana to use to cast a spell (such as passing it into a Dimir Signet to then cast a Tidehollow Strix). You can have any amount of mana in the pool at any given time (up to 100 of each type as that is a hardcoded limit on tokens placed by the engine) as such any specific mana can be used for anything. For example if you are hoarding mana with Upwelling you aren't even guaranteed to use that mana in that turn it could be much later that you actually end up using it.

So in short yes, my method is more reliable and will behave better in most cases at the moment. Yes, it has issues with fringe cases where a user would want to save the mana and/or split it up to cast multiple creatures, but it behaves better in other cases where some of that mana would get used for some other reason such as increasing the amount of mana available, not using it for creatures without colourless mana, converting it to coloured mana, etc....
I've accounted for the first scenario, already. If it doesn't work as is, I might have to redo it slightly, but it checks when a colorless token leaves the battlefield, and if at any point there are fewer tokens than the current number of creatures that you can grant haste, it drops that number to the number of colorless tokens. If you cast a sol ring, you end up with one colorless mana, at which point the code lowers the number of creatures remaining to 1 even though it hasn't granted haste to anything yet.

I accounted for the second scenario, already, too. When a player considers a card for casting, I count the colorless mana, then when they cast a card, if it's the one that was just considered, it counts the colorless mana again to see if any colorless mana was used, and if so, it decrements the creatures remaining and waits for it to resolve. If it resolves, it gives the resulting creature haste.

The third one does need accounted for. I even thought about that specifically but didn't consider that it wouldn't work if the player tapped it for mana while they still had the previous mana. That's an easy fix, though. Just changing the set_int to int_inc should correct that (well, not the set_int that reset everything, but the set_int that gets it ready).
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby Hacker85 » 25 Sep 2014, 14:05

Xander9009 wrote:
Hacker85 wrote:im making the Innistrad Set Cards which werent made from any other modders. ive done most of them now, but havent testet them. when i know they all work properly im going to share it.
but i need some help with some harder cards so maybe someone can help.
the missing cards are:
Back from the Brink (almost impossible)
Divine Reckoning
Runic Repetition
Stitcher’s Apprentice
Stony Silence (impossible)
some help would be nice :D
Back from the Brink: It's probably not possible for a perfect card, but with a lot of work you might be able to approximate it.
Divine Reckoning | Open
Code: Select all
<RESOLUTION_TIME_ACTION repeating="1">
    local n = MTG():GetActionRepCount()
    local num_Players = MTG():GetNumberOfPlayers()
    if (n &lt; num_Players) then
       local player = MTG():GetNthPlayer(n)
       local filter = ClearFilter()
       filter:Add(FE_CONTROLLER, OP_IS, player)
       filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
       local numItemsToSacrifice = filter:Count() - EffectDC():Get_Int(0)
       player:SetItemCount( 1 )
       player:SetItemPrompt( 0, "CARD_QUERY_CHOOSE_CREATURE" )
       player:ChooseItems( EffectDC():Make_Targets(n+1) )
       return true
    else
       for i = 0, (num_Players-1) do
         local player = MTG():GetNthPlayer(n)
         local targetDC = EffectDC():Get_Targets(i+1)
         local filter = ClearFilter()
         filter:Add(FE_CONTROLLER, OP_IS, player)
         filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
         local Count = filter:EvaluateObjects()
         for i=0,(Count-1) do
            local Card = filter:GetNthEvaluatedObject(i)
            if Card ~= nil and Card ~= targetDC:Get_CardPtr(0) then
               Card:Destroy()
            end
         end
      end
      return false
   end
</RESOLUTION_TIME_ACTION>
Runic Repetition: I don't think we can target exiled cards.
Stitcher’s Apprentice | Open
Code: Select all
<ACTIVATED_ABILITY>
   <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{U}, {T}: Put a 2/2 blue Homunculus creature token onto the battlefield, then sacrifice a creature.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{U}, {T} : Mettez sur le champ de bataille un jeton de créature 2/2 bleue Homoncule, puis sacrifiez une créature.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{U}, {T}: Pon en el campo de batalla una ficha de criatura Homúnculo azul 2/2, luego sacrifica una criatura.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{U}, {T}: Bringe einen 2/2 blauen Homunkulus-Kreaturenspielstein ins Spiel und opfere dann eine Kreatur.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{U}, {T}: Metti sul campo di battaglia una pedina creatura Omuncolo 2/2 blu, poi sacrifica una creatura.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{U}, {T}:青の2/2のホムンクルス・クリーチャー・トークンを1体戦場に出し、その後クリーチャーを1体生け贄に捧げる。]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{U}, {T}: Put a 2/2 blue Homunculus creature token onto the battlefield, then sacrifice a creature.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{U}, {T}: положите на поле битвы одну фишку существа 2/2 синий Гомункул, затем пожертвуйте существо.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{U}, {T}: Coloque no campo de batalha uma ficha de criatura azul 2/2 do tipo Homúnculo e depois sacrifique uma criatura.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{1}{U},{T}:将一个2/2蓝色造妖衍生生物放进战场,然后牺牲一个生物。]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{1}{U},{T}:將一個2/2藍色造妖衍生生物放進戰場,然後犧牲一個生物。]]></LOCALISED_TEXT>
   <COST mana_cost="{1}{U}" type="Mana" />
   <COST type="TapSelf" />
   <RESOLUTION_TIME_ACTION>
      MTG():PutTokensOntoBattlefield( "TOKEN_HOMUNCULUS_2_2_U_909017", 1, EffectController() )
   </RESOLUTION_TIME_ACTION>
   <RESOLUTION_TIME_ACTION>
      local filter = ClearFilter()
      local subfilter = filter:AddSubFilter_Or()
      filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
      EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_SACRIFICE", EffectDC():Make_Targets(0) )
    </RESOLUTION_TIME_ACTION>
   <RESOLUTION_TIME_ACTION>
      if EffectDC() ~= nil then
         local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
         if target ~= nil then
            EffectController():Sacrifice( target )
         end
      end
    </RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="TOKEN_HOMUNCULUS_2_2_U_909017" />
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
<FILENAME text="TOKEN_HOMUNCULUS_2_2_U_909017" />
   <CARDNAME text="HOMUNCULUS" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[HOMUNCULUS]]></LOCALISED_TEXT>
   </TITLE>
   <ARTID value="909017" />
   <COLOUR value="U" />
   <ARTIST name="Unknown" />
   <CASTING_COST cost="" />
   <TYPE metaname="Creature" />
   <SUB_TYPE metaname="Homunculus" />
   <EXPANSION value="DPI" />
   <RARITY metaname="T" />
   <POWER value="2" />
   <TOUGHNESS value="2" />
   <TOKEN />
   <SFX text="COMBAT_CLAW_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
   <SFX text="COMBAT_CLAW_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
Note that you should change all instances of 909017 in the above card and token to a unique number for your mod.
Stony Silence | Open
Code: Select all
<CONTINUOUS_ACTION layer="8">
local filter = ClearFilter()
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT)
local Count = filter:EvaluateObjects()
for i=0,(Count-1) do
   local CurrentArtifact = filter:GetNthEvaluatedObject(i)
   if CurrentArtifact ~= nil then
      CurrentArtifact:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_CANT_USE_ACTIVATED_ABILITIES, 1 )
   end
end
</CONTINUOUS_ACTION>
I haven't tested any of these. Let me know if any need fixed and I'll take a look.
the cards are now looking like this with the following problems
Stony Silence
Code: Select all
<CARD_V2 ExportVersion="1">
  <FILENAME text="STONY_SILENCE_168247425" />
  <CARDNAME text="STONY_SILENCE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Stony Silence]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Silence de pierre]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Silencio pétreo]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Steinerne Stille]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Silenzio di Pietra]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[石のような静寂]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Stony Silence]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Гробовое Молчание]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Silêncio Pétreo]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[沉重静寂]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[沈重靜寂]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="168247425" />
  <ARTID value="168247425" />
  <ARTIST name="Wayne England" />
  <CASTING_COST cost="{1}{W}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Let moss grow over gargoyles]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Puisse la mousse recouvrir les gargouilles]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Deja que el musgo crezca sobre las gárgolas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Moos über Gargoylen wachsen lassen]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Lasciar crescere il muschio sui gargoyle]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ガーゴイルを苔むさせる。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Let moss grow over gargoyles]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Пусть горгульи порастут мхом.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Deixe o musgo crescer sobre as gárgulas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[就让石像鬼生苔。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[就讓石像鬼生苔。]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Enchantment" />
  <EXPANSION value="ISD" />
  <RARITY metaname="R" />
  <STATIC_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Activated abilities of artifacts can’t be activated.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les capacités activées des artefacts ne peuvent pas être activées.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Las habilidades activadas de los artefactos no pueden ser activadas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Aktivierte Fähigkeiten von Artefakten können nicht aktiviert werden.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Le abilità attivate degli artefatti non possono essere attivate.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[アーティファクトの起動型能力は起動できない。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Activated abilities of artifacts can’t be activated.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Активируемые способности артефактов не могут быть активированы.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[As habilidades ativadas de artefatos não podem ser ativadas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[不能起动神器的起动式异能。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[不能起動神器的起動式異能。]]></LOCALISED_TEXT>
 <CONTINUOUS_ACTION layer="8">
local filter = ClearFilter()
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT)
local Count = filter:EvaluateObjects()
for i=0,(Count-1) do
   local CurrentArtifact = filter:GetNthEvaluatedObject(i)
   if CurrentArtifact ~= nil then
      CurrentArtifact:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_CANT_USE_ACTIVATED_ABILITIES, 1 )
   end
end
</CONTINUOUS_ACTION>
 </STATIC_ABILITY>
</CARD_V2>
Not shown in Deckbuilder

Divine Reckoning
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="DIVINE_RECKONING_168245196" />
  <CARDNAME text="DIVINE_RECKONING" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Divine Reckoning]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Jugement divin]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Venganza divina]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Göttliche Abrechnung]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Giudizio Divino]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[神聖なる報い]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Divine Reckoning]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Божественный Расчет]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Ajuste de Contas Divino]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[神圣报应]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[神聖報應]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="168245196" />
  <ARTID value="168245196" />
  <ARTIST name="Greg Staples" />
  <CASTING_COST cost="{2}{W}{W}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Survival of the purest.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La loi du plus pur.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Supervivencia de los más puros.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die Reinsten überleben.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Sopravvivenza dei più puri.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[聖者生存。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Survival of the purest.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Выживает чистейший.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Seleção sobrenatural.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[纯者生存。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[純者生存。]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Sorcery" />
  <EXPANSION value="ISD" />
  <RARITY metaname="R" />
  <SPELL_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each player chooses a creature he or she controls. Destroy the rest.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chaque joueur choisit une créature qu’il contrôle. Détruisez le reste.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cada jugador elige una criatura que controla. Destruye el resto.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Jeder Spieler bestimmt eine Kreatur, die er kontrolliert. Zerstöre den Rest.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogni giocatore sceglie una creatura che controlla. Distruggi le altre.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[各プレイヤーは。自分がコントロールするクリーチャーを1体選ぶ。 残りを破壊する。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Each player chooses a creature he or she controls. Destroy the rest.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый игрок выбирает существо под своим контролем. Уничтожьте все остальные.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Cada jogador escolhe uma criatura que ele controla. Destrua o restante.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[每位牌手各选择一个由他操控的生物。 将其它的消灭。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[每位玩家各選擇一個由他操控的生物。 將其它的消滅。]]></LOCALISED_TEXT>
<RESOLUTION_TIME_ACTION repeating="1">
    local n = MTG():GetActionRepCount()
    local num_Players = MTG():GetNumberOfPlayers()
    if (n &lt; num_Players) then
       local player = MTG():GetNthPlayer(n)
       local filter = ClearFilter()
       filter:Add(FE_CONTROLLER, OP_IS, player)
       filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
       local numItemsToSacrifice = filter:Count() - EffectDC():Get_Int(0)
       player:SetItemCount( 1 )
       player:SetItemPrompt( 0, "CARD_QUERY_CHOOSE_CREATURE" )
       player:ChooseItems( EffectDC():Make_Targets(n+1) )
       return true
    else
       for i = 0, (num_Players-1) do
         local player = MTG():GetNthPlayer(n)
         local targetDC = EffectDC():Get_Targets(i+1)
         local filter = ClearFilter()
         filter:Add(FE_CONTROLLER, OP_IS, player)
         filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
         local Count = filter:EvaluateObjects()
         for i=0,(Count-1) do
            local Card = filter:GetNthEvaluatedObject(i)
            if Card ~= nil and Card ~= targetDC:Get_CardPtr(0) then
               Card:Destroy()
            end
         end
      end
      return false
   end
</RESOLUTION_TIME_ACTION>
  <SPELL_ABILITY>
  <UTILITY_ABILITY qualifier="Flashback" active_zone="ZONE_GRAVEYARD">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flashback {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Flashback {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Retrospectiva {5}{W}{W}.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Rückblende {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Flashback {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[フラッシュバック {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Flashback {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Воспоминание {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Recapitular {5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[返照{5}{W}{W}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[返照{5}{W}{W}]]></LOCALISED_TEXT>
    <COST mana_cost="{5}{W}{W}" type="Mana" />
  </UTILITY_ABILITY>
  <HELP title="MORE_INFO_TITLE_FLASHBACK" body="MORE_INFO_BODY_FLASHBACK" zone="ZONE_ANY" />
</CARD_V2>
Also not shown in Deckbuilder

Stitchers Apprentice
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="STITCHERS_APPRENTICE_168220631" />
  <CARDNAME text="STITCHERS_APPRENTICE" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Stitcher’s Apprentice]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Apprenti du raccommodeur]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Aprendiz de suturador]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Lehrling des Nähers]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Apprendista del Cucitore]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[縫い師の見習い]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Stitcher’s Apprentice]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Ученик Сшивателя]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Aprendiz de Suturador]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="168220631" />
  <ARTID value="168220631" />
  <ARTIST name="Johann Bodin" />
  <CASTING_COST cost="{1}{U}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Oglor create life, Oglor take it away. Oglor god! . . . until Master return.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« Oglor crée vie. Oglor détruit vie. Oglor dieu ! . . . jusqu’au retour de Maître. »]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Oglor crea vida, Oglor la quita. ¡Oglor dios! ...hasta que el amo regrese.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„Oglor erzeugen Leben, Oglor nehmen es wieder weg. Oglor ist sich Gott! ... bis Meister wieder zurück.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Oglor crea vita, Oglor la toglie. Oglor è dio! . . . fino a ritorno del Padrone.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「オグロール、生命作る、オグロール、それ奪う。 オグロール、神!  ……主人戻るまで。」]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Oglor create life, Oglor take it away. Oglor god! . . . until Master return.”]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«Оглор создает жизнь, Оглор ее отбирает. Оглор — бог! ...пока не вернется Хозяин».]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Oglor criar vida, Oglor tomar vida. Oglor deus! ...até o retorno do Mestre.”]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Creature" />
  <SUB_TYPE metaname="Homunculus" />
  <EXPANSION value="ISD" />
  <RARITY metaname="C" />
  <POWER value="1" />
  <TOUGHNESS value="2" />
 <ACTIVATED_ABILITY>
   <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{U}, {T}: Put a 2/2 blue Homunculus creature token onto the battlefield, then sacrifice a creature.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{U}, {T} : Mettez sur le champ de bataille un jeton de créature 2/2 bleue Homoncule, puis sacrifiez une créature.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{U}, {T}: Pon en el campo de batalla una ficha de criatura Homúnculo azul 2/2, luego sacrifica una criatura.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{U}, {T}: Bringe einen 2/2 blauen Homunkulus-Kreaturenspielstein ins Spiel und opfere dann eine Kreatur.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{U}, {T}: Metti sul campo di battaglia una pedina creatura Omuncolo 2/2 blu, poi sacrifica una creatura.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{U}, {T}:青の2/2のホムンクルス・クリーチャー・トークンを1体戦場に出し、その後クリーチャーを1体生け贄に捧げる。]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{U}, {T}: Put a 2/2 blue Homunculus creature token onto the battlefield, then sacrifice a creature.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{U}, {T}: положите на поле битвы одну фишку существа 2/2 синий Гомункул, затем пожертвуйте существо.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{U}, {T}: Coloque no campo de batalha uma ficha de criatura azul 2/2 do tipo Homúnculo e depois sacrifique uma criatura.]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{1}{U},{T}:将一个2/2蓝色造妖衍生生物放进战场,然后牺牲一个生物。]]></LOCALISED_TEXT>
   <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{1}{U},{T}:將一個2/2藍色造妖衍生生物放進戰場,然後犧牲一個生物。]]></LOCALISED_TEXT>
   <COST mana_cost="{1}{U}" type="Mana" />
   <COST type="TapSelf" />
   <RESOLUTION_TIME_ACTION>
      MTG():PutTokensOntoBattlefield( "TOKEN_HOMUNCULUS_2_2_U_909017", 1, EffectController() )
   </RESOLUTION_TIME_ACTION>
   <RESOLUTION_TIME_ACTION>
      local filter = ClearFilter()
      local subfilter = filter:AddSubFilter_Or()
      filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
      filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
      EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_SACRIFICE", EffectDC():Make_Targets(0) )
    </RESOLUTION_TIME_ACTION>
   <RESOLUTION_TIME_ACTION>
      if EffectDC() ~= nil then
         local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
         if target ~= nil then
            EffectController():Sacrifice( target )
         end
      end
    </RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="TOKEN_HOMUNCULUS_2_2_U_909017" />
  <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
  <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
It generates the token but i dont need to sacrifie anything
Hacker85
 
Posts: 31
Joined: 29 Mar 2014, 06:19
Has thanked: 3 times
Been thanked: 0 time

Re: Formal Request Thread

Postby Xander9009 » 25 Sep 2014, 16:07

Hacker85 wrote:The cards are now looking like this with the following problems
Stony Silence
Code: Select all
snip
Not shown in Deckbuilder

Divine Reckoning
Code: Select all
snip
Also not shown in Deckbuilder

Stitchers Apprentice
Code: Select all
snip
It generates the token but i dont need to sacrifie anything
Stony Silence | Open
Code: Select all
<CARD_V2 ExportVersion="1">
   <FILENAME text="STONY_SILENCE_CW_247425" />
   <CARDNAME text="STONY_SILENCE" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Stony Silence]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Silence de pierre]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Silencio pétreo]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Steinerne Stille]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Silenzio di Pietra]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[石のような静寂]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Stony Silence]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Гробовое Молчание]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Silêncio Pétreo]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[沉重静寂]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[沈重靜寂]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="247425" />
   <ARTID value="CW247425" />
   <ARTIST name="Wayne England" />
   <CASTING_COST cost="{1}{W}" />
   <FLAVOURTEXT>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Let moss grow over gargoyles]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Puisse la mousse recouvrir les gargouilles]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Deja que el musgo crezca sobre las gárgolas.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Moos über Gargoylen wachsen lassen]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Lasciar crescere il muschio sui gargoyle]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ガーゴイルを苔むさせる。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Let moss grow over gargoyles]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Пусть горгульи порастут мхом.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Deixe o musgo crescer sobre as gárgulas.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[就让石像鬼生苔。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[就讓石像鬼生苔。]]></LOCALISED_TEXT>
   </FLAVOURTEXT>
   <TYPE metaname="Enchantment" />
   <EXPANSION value="ISD" />
   <RARITY metaname="R" />
   <STATIC_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Activated abilities of artifacts can’t be activated.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les capacités activées des artefacts ne peuvent pas être activées.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Las habilidades activadas de los artefactos no pueden ser activadas.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Aktivierte Fähigkeiten von Artefakten können nicht aktiviert werden.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Le abilità attivate degli artefatti non possono essere attivate.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[アーティファクトの起動型能力は起動できない。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Activated abilities of artifacts can’t be activated.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Активируемые способности артефактов не могут быть активированы.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[As habilidades ativadas de artefatos não podem ser ativadas.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[不能起动神器的起动式异能。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[不能起動神器的起動式異能。]]></LOCALISED_TEXT>
      <CONTINUOUS_ACTION layer="8">
         local filter = ClearFilter()
         filter:Add(FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT)
         local Count = filter:EvaluateObjects()
         for i=0,(Count-1) do
            local CurrentArtifact = filter:GetNthEvaluatedObject(i)
            if CurrentArtifact ~= nil then
               CurrentArtifact:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_CANT_USE_ACTIVATED_ABILITIES, 1 )
            end
         end
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>
</CARD_V2>
This worked without an issue. Not sure what's up, but you might have had a different internal and external filename.

Stitcher's Apprentice | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
   <FILENAME text="STITCHERS_APPRENTICE_CW_220631" />
   <CARDNAME text="STITCHERS_APPRENTICE" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Stitcher’s Apprentice]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Apprenti du raccommodeur]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Aprendiz de suturador]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Lehrling des Nähers]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Apprendista del Cucitore]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[縫い師の見習い]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Stitcher’s Apprentice]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Ученик Сшивателя]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Aprendiz de Suturador]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="220631" />
   <ARTID value="CW220631" />
   <ARTIST name="Johann Bodin" />
   <CASTING_COST cost="{1}{U}" />
   <FLAVOURTEXT>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Oglor create life, Oglor take it away. Oglor god! . . . until Master return.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« Oglor crée vie. Oglor détruit vie. Oglor dieu ! . . . jusqu’au retour de Maître. »]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Oglor crea vida, Oglor la quita. ¡Oglor dios! ...hasta que el amo regrese.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„Oglor erzeugen Leben, Oglor nehmen es wieder weg. Oglor ist sich Gott! ... bis Meister wieder zurück.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Oglor crea vita, Oglor la toglie. Oglor è dio! . . . fino a ritorno del Padrone.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「オグロール、生命作る、オグロール、それ奪う。 オグロール、神!  ……主人戻るまで。」]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Oglor create life, Oglor take it away. Oglor god! . . . until Master return.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«Оглор создает жизнь, Оглор ее отбирает. Оглор — бог! ...пока не вернется Хозяин».]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Oglor criar vida, Oglor tomar vida. Oglor deus! ...até o retorno do Mestre.”]]></LOCALISED_TEXT>
   </FLAVOURTEXT>
   <TYPE metaname="Creature" />
   <SUB_TYPE metaname="Homunculus" />
   <EXPANSION value="ISD" />
   <RARITY metaname="C" />
   <POWER value="1" />
   <TOUGHNESS value="2" />
   <ACTIVATED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{U}, {T}: Put a 2/2 blue Homunculus creature token onto the battlefield, then sacrifice a creature.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{U}, {T} : Mettez sur le champ de bataille un jeton de créature 2/2 bleue Homoncule, puis sacrifiez une créature.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{U}, {T}: Pon en el campo de batalla una ficha de criatura Homúnculo azul 2/2, luego sacrifica una criatura.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{U}, {T}: Bringe einen 2/2 blauen Homunkulus-Kreaturenspielstein ins Spiel und opfere dann eine Kreatur.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{U}, {T}: Metti sul campo di battaglia una pedina creatura Omuncolo 2/2 blu, poi sacrifica una creatura.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{U}, {T}:青の2/2のホムンクルス・クリーチャー・トークンを1体戦場に出し、その後クリーチャーを1体生け贄に捧げる。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{U}, {T}: Put a 2/2 blue Homunculus creature token onto the battlefield, then sacrifice a creature.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{U}, {T}: положите на поле битвы одну фишку существа 2/2 синий Гомункул, затем пожертвуйте существо.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{U}, {T}: Coloque no campo de batalha uma ficha de criatura azul 2/2 do tipo Homúnculo e depois sacrifique uma criatura.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{1}{U},{T}:将一个2/2蓝色造妖衍生生物放进战场,然后牺牲一个生物。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{1}{U},{T}:將一個2/2藍色造妖衍生生物放進戰場,然後犧牲一個生物。]]></LOCALISED_TEXT>
      <COST mana_cost="{1}{U}" type="Mana" />
      <COST type="TapSelf" />
      <RESOLUTION_TIME_ACTION>
         MTG():PutTokensOntoBattlefield( "TOKEN_HOMUNCULUS_C_2_2_U_CW_1", 1, EffectController() )
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local filter = ClearFilter()
         filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
         filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
         EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_SACRIFICE", EffectDC():Make_Targets(0) )
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local creature = EffectDC():Get_Targets(0):Get_CardPtr(0)
         if creature ~= nil then
            EffectController():Sacrifice(creature)
         end
      </RESOLUTION_TIME_ACTION>
   </ACTIVATED_ABILITY>
   <TOKEN_REGISTRATION reservation="1" type="TOKEN_HOMUNCULUS_C_2_2_U_CW_1" />
   <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
   <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
I accidentally had an empty subfilter, which always returned false, thus nullifying the creature choice. Fixed now.

Divine Reckoning | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
   <FILENAME text="DIVINE_RECKONING_CW_245196" />
   <CARDNAME text="DIVINE_RECKONING" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Divine Reckoning]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Jugement divin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Venganza divina]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Göttliche Abrechnung]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Giudizio Divino]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[神聖なる報い]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Divine Reckoning]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Божественный Расчет]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Ajuste de Contas Divino]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[神圣报应]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[神聖報應]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="245196" />
   <ARTID value="CW245196" />
   <ARTIST name="Greg Staples" />
   <CASTING_COST cost="{2}{W}{W}" />
   <FLAVOURTEXT>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Survival of the purest.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La loi du plus pur.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Supervivencia de los más puros.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die Reinsten überleben.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Sopravvivenza dei più puri.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[聖者生存。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Survival of the purest.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Выживает чистейший.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Seleção sobrenatural.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[纯者生存。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[純者生存。]]></LOCALISED_TEXT>
   </FLAVOURTEXT>
   <TYPE metaname="Sorcery" />
   <EXPANSION value="ISD" />
   <RARITY metaname="R" />
   <SPELL_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each player chooses a creature he or she controls. Destroy the rest.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chaque joueur choisit une créature qu’il contrôle. Détruisez le reste.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cada jugador elige una criatura que controla. Destruye el resto.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Jeder Spieler bestimmt eine Kreatur, die er kontrolliert. Zerstöre den Rest.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogni giocatore sceglie una creatura che controlla. Distruggi le altre.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[各プレイヤーは。自分がコントロールするクリーチャーを1体選ぶ。 残りを破壊する。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Each player chooses a creature he or she controls. Destroy the rest.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый игрок выбирает существо под своим контролем. Уничтожьте все остальные.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Cada jogador escolhe uma criatura que ele controla. Destrua o restante.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[每位牌手各选择一个由他操控的生物。 将其它的消灭。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[每位玩家各選擇一個由他操控的生物。 將其它的消滅。]]></LOCALISED_TEXT>
      <RESOLUTION_TIME_ACTION repeating="1">
         local n = MTG():GetActionRepCount()
         local num_Players = MTG():GetNumberOfPlayers()
         if (n &lt; num_Players) then
            local player = MTG():GetNthPlayer(n)
            local filter = ClearFilter()
            filter:Add(FE_CONTROLLER, OP_IS, player)
            filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
            local Count = filter:Count()
            if Count &gt; 0 then
               player:SetItemCount( 1 )
               player:SetItemPrompt( 0, "CARD_QUERY_CHOOSE_CREATURE" )
               player:ChooseItems( EffectDC():Make_Targets(n+1) )
            end
            return true
         else
            for i = 0, (num_Players-1) do
               local player = MTG():GetNthPlayer(i)
               local targetDC = EffectDC():Get_Targets(i+1)
               local filter = ClearFilter()
               filter:Add(FE_CONTROLLER, OP_IS, player)
               filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
               Count = filter:Count()
               filter:EvaluateObjects()
               EffectController():DisplayMessage("Player "..i.." has "..Count.." creatures.")
               if Count &gt; 0 then
                  for j=0,(Count-1) do
                     local Card = filter:GetNthEvaluatedObject(j)
                     if Card ~= nil and Card ~= targetDC:Get_CardPtr(0) then
                        Card:Destroy()
                        EffectController():DisplayMessage("Destroyed player "..i.."'s creature; number: "..j)
                     elseif Card == nil then
                        EffectController():DisplayMessage("Player "..i.."'s creature number: "..j.." was nil.")
                     else
                        EffectController():DisplayMessage("Player "..i.."'s creature number: "..j.." was their chosen creature.")
                     end
                  end
               end
            end
            return false
         end
      </RESOLUTION_TIME_ACTION>
   </SPELL_ABILITY>
   <UTILITY_ABILITY qualifier="Flashback" active_zone="ZONE_GRAVEYARD">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flashback {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Flashback {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Retrospectiva {5}{W}{W}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Rückblende {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Flashback {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[フラッシュバック {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Flashback {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Воспоминание {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Recapitular {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[返照{5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[返照{5}{W}{W}]]></LOCALISED_TEXT>
      <COST mana_cost="{5}{W}{W}" type="Mana" />
   </UTILITY_ABILITY>
   <HELP title="MORE_INFO_TITLE_FLASHBACK" body="MORE_INFO_BODY_FLASHBACK" zone="ZONE_ANY" />
</CARD_V2>
I forgot a slash in the end spell ability tag. Then, I was using EvaluateObects to get a count and I was getting the current player with teh wrong variable. All fixed now and tested.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby sumomole » 25 Sep 2014, 16:24

I convert the functions of Flash from 2013 to 2014, and try to use it for Back from the Brink, hope it works.
this idea from TFM, I don't remember what he had wanted, finally I used to code Flash. :mrgreen:
Back from the Brink | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="BACK_FROM_THE_BRINK_249663" />
  <CARDNAME text="BACK_FROM_THE_BRINK" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Back from the Brink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Retour de la mort]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Regresar del umbral]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zurück vom Abgrund]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ritorno dal Baratro]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[瀬戸際からの帰還]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Back from the Brink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Возвращение с Края Пропасти]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Voltar do Abismo]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[边缘归来]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[邊緣歸來]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="249663" />
  <ARTID value="249663" />
  <ARTIST name="Anthony Palumbo" />
  <CASTING_COST cost="{4}{U}{U}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[On Innistrad, death is just a career change.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Sur Innistrad, la mort n’est qu’un changement de carrière.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[En Innistrad, la muerte es solo un cambio de profesión.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[In Innistrad ist der Tod nur ein Berufswechsel.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[In Innistrad, la morte non è altro che una diversa carriera.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[イニストラードでは、死は転職に過ぎない。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[On Innistrad, death is just a career change.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В Иннистраде смерть — лишь смена занятия.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Em Innistrad, a morte é apenas uma mudança de carreira.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[在依尼翠,死亡只是转职。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[在依尼翠,死亡只是轉職。]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Enchantment" />
  <EXPANSION value="DPI" />
  <RARITY metaname="R" />
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Exile a creature card from your graveyard and pay its mana cost: Put a token onto the battlefield that’s a copy of that card. Activate this ability only any time you could cast a sorcery.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Exilez une carte de créature de votre cimetière et payez son coût de mana : Mettez sur le champ de bataille un jeton qui est une copie de cette carte. N’activez cette capacité que lorsque vous pourriez lancer un rituel.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Exiliar una carta de criatura de tu cementerio y pagar su coste de maná: Pon en el campo de batalla una ficha de criatura que es una copia de esa carta. Activa esta habilidad sólo cuando puedas lanzar un conjuro.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Schicke eine Kreaturenkarte aus deinem Friedhof ins Exil und bezahle ihre Manakosten: Bringe einen Spielstein ins Spiel, der eine Kopie dieser Karte ist. Aktiviere diese Fähigkeit nur zu einem Zeitpunkt, zu dem du auch eine Hexerei wirken könntest.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Esilia una carta creatura dal tuo cimitero e pagane il costo di mana: Metti sul campo di battaglia una pedina che è una copia di quella carta. Attiva questa abilità solo quando potresti lanciare una stregoneria.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたの墓地にあるクリーチャー・カードを1枚追放し、それのマナ・コストを支払う:そのカードのコピーであるトークンを1体戦場に出す。 この能力は、あなたがソーサリーを唱えられるときにのみ起動できる。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Exile a creature card from your graveyard and pay its mana cost: Put a token onto the battlefield that’s a copy of that card. Activate this ability only any time you could cast a sorcery.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Изгоните карту существа из вашего кладбища и заплатите ее мана-стоимость: положите на поле битвы одну фишку, являющуюся копией той карты. Активируйте эту способность только при возможности разыгрывать волшебство.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Exile um card de criatura de seu cemitério e pague seu custo de mana: Coloque no campo de batalha uma ficha que seja uma cópia daquele card. Ative esta habilidade somente nos momentos em que poderia conjurar um feitiço.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[从你的坟墓场放逐一张生物牌并支付其法术力费用:将一个衍生物放进战场,且为该牌的复制品。 你只可以于你能施放法术的时机下起动此异能。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[從你的墳墓場放逐一張生物牌並支付其魔法力費用:將一個衍生物放進戰場,且為該牌的複製品。 你只可以於你能施放巫術的時機下起動此異能。]]></LOCALISED_TEXT>
    <COST type="Generic">
      <PREREQUISITE>
    local player = EffectController()
    local number = player:Graveyard_Count()
    for i=0,(number-1) do
       local card = player:Graveyard_GetNth(i)       
       if card ~= nil and card:GetCardType():Test(CARD_TYPE_CREATURE) then
        local mana = S_GetManaCostString(card, EffectController(), 0)
          if EffectController():CanPayManaCost(mana) then
          return true
         end
       end
    end
    return false
    </PREREQUISITE>
      <RESOLUTION_TIME_ACTION>
    local answerDC = EffectDC():Make_Targets(0)
    local queryDC = EffectDC():Make_Chest(1)
    local player = EffectController()
    local number = player:Graveyard_Count()
    for i=0,(number-1) do
       local card = player:Graveyard_GetNth(i)       
       if card ~= nil then
          queryDC:Set_CardPtr(i, card)
        local mana = S_GetManaCostString(card, EffectController(), 0)
          if not (card:GetCardType():Test(CARD_TYPE_CREATURE) and EffectController():CanPayManaCost(mana)) then
             queryDC:QueryUnselect_CardPtr(i)
          end
       else
          break
       end
    end
    player:ChooseItemFromDC( "CARD_QUERY_CHOOSE_CARD_TO_EXILE_FROM_A_GRAVEYARD", queryDC, answerDC )
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local targetCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if targetCard ~= nil then
      EffectDC():Get_Targets(0):Protect_CardPtr(0)
       targetCard:Exile()
      end
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local targetCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if targetCard ~= nil then
      local mana = S_GetManaCostString(targetCard, EffectController(), 0)
       EffectController():PayManaCost(mana)
      end
    </RESOLUTION_TIME_ACTION></COST>
    <AVAILABILITY sorcery_time="1" />
    <RESOLUTION_TIME_ACTION>
    local targetCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if targetCard ~= nil then
       MTG():PutTokenCopiesOntoBattlefield( targetCard, 1, EffectController() )
    end
    </RESOLUTION_TIME_ACTION>
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ALLIED" />
  </ACTIVATED_ABILITY>
  <AI_BASE_SCORE score="1050" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
functions | Open
Code: Select all
S_GetNumOfColorSymbol = function(object, color)
  local filter = ClearFilter()
  filter:SetZone( ZONE_ANYWHERE )
  filter:Add( FE_CARD_INSTANCE, OP_IS, object )
   return filter:ChromaCount(color)
end

S_PhyrexianManaValue = function(object)
  local value = 0
  if (object:GetCardName() == "APOSTLES_BLESSING" or object:GetCardName() == "CATHEDRAL_MEMBRANE" or object:GetCardName() == "MARROW_SHARDS" or object:GetCardName() == "NORNS_ANNEX" or object:GetCardName() == "PORCELAIN_LEGIONNAIRE") then
    value = 1
  elseif (object:GetCardName() == "GITAXIAN_PROBE" or object:GetCardName() == "MENTAL_MISSTEP" or object:GetCardName() == "PHYREXIAN_METAMORPH" or object:GetCardName() == "SPINED_THOPTER" or object:GetCardName() == "TEZZERETS_GAMBIT") then
    value = 2
  elseif (object:GetCardName() == "DISMEMBER" or object:GetCardName() == "PITH_DRILLER" or object:GetCardName() == "POSTMORTEM_LUNGE" or object:GetCardName() == "SURGICAL_EXTRACTION" or object:GetCardName() == "VAULT_SKIRGE") then
    value = 3
  elseif (object:GetCardName() == "ACT_OF_AGGRESSION" or object:GetCardName() == "GUT_SHOT" or object:GetCardName() == "MOLTENSTEEL_DRAGON" or object:GetCardName() == "RAGE_EXTRACTOR" or object:GetCardName() == "RUTHLESS_INVASION" or object:GetCardName() == "SLASH_PANTHER") then
    value = 4
  elseif (object:GetCardName() == "BIRTHING_POD" or object:GetCardName() == "CORROSIVE_GALE" or object:GetCardName() == "MUTAGENIC_GROWTH" or object:GetCardName() == "NOXIOUS_REVIVAL" or object:GetCardName() == "THUNDERING_TANADON") then
    value = 5
  end
  return value
end

S_HybridColourValue = function(object)
  local count = object:GetColour():GetNumColours()
  local common_value = 0
  local value = 1
  if count > 1 then
    for i=1,5 do     
       if object:GetColour():Test(i) then
        if count ~= 3 or common_value ~= 1 then
            value = value * i
         end
          common_value = common_value + 1
       end
     end
   end
  return value
end

S_HybridColourCommonValue = function(object)
  local common_value = 0
  if object:GetColour():GetNumColours() == 3 then
    local value = S_HybridColourValue(object)
    for i=1,5 do
       if i * (i + 2) == value then
          common_value = i + 1
       elseif i * (i + 3) == value then
          common_value = i + 4
       end
     end
    if common_value > 5 then
        common_value = common_value - 5
     end
   end
  return common_value
end

S_ColourToString = function(colour)
   local mana_table = {"", "{W/U}", "{W/B}", "{R/W}", "{G/W}", "{U/B}", "", "{U/R}", "", "{G/U}", "", "{B/R}", "", "", "{B/G}", "", "", "", "", "{R/G}", "{2/W}", "{2/U}", "{2/B}", "{2/R}", "{2/G}", "{W}", "{U}", "{B}", "{R}", "{G}", "{W/P}", "{U/P}", "{B/P}", "{R/P}", "{G/P}"}
   return mana_table[colour]
end

S_ManaString = function(colour, amount)
   local string = ""
   if amount == 0 then
      return "{0}"
   else
     for i=1,amount do
       string = string..S_ColourToString(colour)
     end
     return string
   end
end

S_GetManaCostString = function(object, player, index)
   local cmc = object:GetConvertedManaCost()
   if cmc > 0 then
      local string = ""
      local amount = {}
      local num_total_mana = 0
      local num_colored_mana = 0
     local total_cmc = cmc - index
      for i=0,5 do
         amount[i] = S_GetNumOfColorSymbol(object, i)
         num_total_mana = num_total_mana + amount[i]
         if i == 0 then
          num_colored_mana = cmc - amount[i]
        end
      end
      if num_total_mana == cmc then
        for j=1,5 do
           if amount[j] > 0 then
           if S_PhyrexianManaValue(object) == j then
                string = string..S_ManaString(j + 30, amount[j])
           else
                string = string..S_ManaString(j + 25, amount[j])
             end
           end
        end
      elseif num_total_mana > cmc then
        local num_hybrid_symbol = num_total_mana - cmc
        if num_colored_mana > 0 then       
          local hybrid_colors = S_HybridColourValue(object)
          local common_color = S_HybridColourCommonValue(object)
           if hybrid_colors > 1 then
              string = string..S_ManaString(hybrid_colors, num_hybrid_symbol)
          end
           if common_color > 0 then
              string = string..S_ManaString(common_color + 25, num_colored_mana - num_hybrid_symbol)
          end         
        else       
         local n = index
          if n < 0 then
            n = 0
           end
        local symbolindex = math.ceil(n/2)
          num_colored_mana = (cmc/2 - symbolindex) * 2
        if object:GetColour():GetNumColours() == 1 then
            for k=1,5 do
               if amount[k] - symbolindex > 0 then
                  string = string..S_ManaString(k + 20, amount[k] - symbolindex)
               end
            end
          else
            for l=1,5 do
             if (player:CanPayManaCost(S_ColourToString(l + 25)) == 0 and symbolindex > 0) or (symbolindex + l > 5) then
              symbolindex = symbolindex - 1
              else
                  string = string..S_ColourToString(l + 20)
               end
            end
          end         
        end
      end      
      if total_cmc > num_colored_mana then
         string = "{"..(total_cmc-num_colored_mana).."}"..string
      end
      return string
   else
      return "{0}"
   end
end
PS: if available, please change the prefix of functions to yours.
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: Formal Request Thread

Postby Hacker85 » 25 Sep 2014, 19:27

Xander9009 wrote:
Hacker85 wrote:The cards are now looking like this with the following problems
Stony Silence
Code: Select all
snip
Not shown in Deckbuilder

Divine Reckoning
Code: Select all
snip
Also not shown in Deckbuilder

Stitchers Apprentice
Code: Select all
snip
It generates the token but i dont need to sacrifie anything
Stony Silence | Open
Code: Select all
<CARD_V2 ExportVersion="1">
   <FILENAME text="STONY_SILENCE_CW_247425" />
   <CARDNAME text="STONY_SILENCE" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Stony Silence]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Silence de pierre]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Silencio pétreo]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Steinerne Stille]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Silenzio di Pietra]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[石のような静寂]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Stony Silence]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Гробовое Молчание]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Silêncio Pétreo]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[沉重静寂]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[沈重靜寂]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="247425" />
   <ARTID value="CW247425" />
   <ARTIST name="Wayne England" />
   <CASTING_COST cost="{1}{W}" />
   <FLAVOURTEXT>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Let moss grow over gargoyles]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Puisse la mousse recouvrir les gargouilles]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Deja que el musgo crezca sobre las gárgolas.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Moos über Gargoylen wachsen lassen]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Lasciar crescere il muschio sui gargoyle]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ガーゴイルを苔むさせる。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Let moss grow over gargoyles]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Пусть горгульи порастут мхом.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Deixe o musgo crescer sobre as gárgulas.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[就让石像鬼生苔。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[就讓石像鬼生苔。]]></LOCALISED_TEXT>
   </FLAVOURTEXT>
   <TYPE metaname="Enchantment" />
   <EXPANSION value="ISD" />
   <RARITY metaname="R" />
   <STATIC_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Activated abilities of artifacts can’t be activated.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les capacités activées des artefacts ne peuvent pas être activées.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Las habilidades activadas de los artefactos no pueden ser activadas.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Aktivierte Fähigkeiten von Artefakten können nicht aktiviert werden.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Le abilità attivate degli artefatti non possono essere attivate.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[アーティファクトの起動型能力は起動できない。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Activated abilities of artifacts can’t be activated.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Активируемые способности артефактов не могут быть активированы.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[As habilidades ativadas de artefatos não podem ser ativadas.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[不能起动神器的起动式异能。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[不能起動神器的起動式異能。]]></LOCALISED_TEXT>
      <CONTINUOUS_ACTION layer="8">
         local filter = ClearFilter()
         filter:Add(FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT)
         local Count = filter:EvaluateObjects()
         for i=0,(Count-1) do
            local CurrentArtifact = filter:GetNthEvaluatedObject(i)
            if CurrentArtifact ~= nil then
               CurrentArtifact:GetCurrentCharacteristics():Bool_Set( CHARACTERISTIC_CANT_USE_ACTIVATED_ABILITIES, 1 )
            end
         end
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>
</CARD_V2>
This worked without an issue. Not sure what's up, but you might have had a different internal and external filename.

Stitcher's Apprentice | Open
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
   <FILENAME text="STITCHERS_APPRENTICE_CW_220631" />
   <CARDNAME text="STITCHERS_APPRENTICE" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Stitcher’s Apprentice]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Apprenti du raccommodeur]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Aprendiz de suturador]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Lehrling des Nähers]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Apprendista del Cucitore]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[縫い師の見習い]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Stitcher’s Apprentice]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Ученик Сшивателя]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Aprendiz de Suturador]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="220631" />
   <ARTID value="CW220631" />
   <ARTIST name="Johann Bodin" />
   <CASTING_COST cost="{1}{U}" />
   <FLAVOURTEXT>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[“Oglor create life, Oglor take it away. Oglor god! . . . until Master return.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[« Oglor crée vie. Oglor détruit vie. Oglor dieu ! . . . jusqu’au retour de Maître. »]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[“Oglor crea vida, Oglor la quita. ¡Oglor dios! ...hasta que el amo regrese.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[„Oglor erzeugen Leben, Oglor nehmen es wieder weg. Oglor ist sich Gott! ... bis Meister wieder zurück.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[“Oglor crea vita, Oglor la toglie. Oglor è dio! . . . fino a ritorno del Padrone.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[「オグロール、生命作る、オグロール、それ奪う。 オグロール、神!  ……主人戻るまで。」]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[“Oglor create life, Oglor take it away. Oglor god! . . . until Master return.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«Оглор создает жизнь, Оглор ее отбирает. Оглор — бог! ...пока не вернется Хозяин».]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[“Oglor criar vida, Oglor tomar vida. Oglor deus! ...até o retorno do Mestre.”]]></LOCALISED_TEXT>
   </FLAVOURTEXT>
   <TYPE metaname="Creature" />
   <SUB_TYPE metaname="Homunculus" />
   <EXPANSION value="ISD" />
   <RARITY metaname="C" />
   <POWER value="1" />
   <TOUGHNESS value="2" />
   <ACTIVATED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{U}, {T}: Put a 2/2 blue Homunculus creature token onto the battlefield, then sacrifice a creature.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{1}{U}, {T} : Mettez sur le champ de bataille un jeton de créature 2/2 bleue Homoncule, puis sacrifiez une créature.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{1}{U}, {T}: Pon en el campo de batalla una ficha de criatura Homúnculo azul 2/2, luego sacrifica una criatura.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{1}{U}, {T}: Bringe einen 2/2 blauen Homunkulus-Kreaturenspielstein ins Spiel und opfere dann eine Kreatur.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{1}{U}, {T}: Metti sul campo di battaglia una pedina creatura Omuncolo 2/2 blu, poi sacrifica una creatura.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{1}{U}, {T}:青の2/2のホムンクルス・クリーチャー・トークンを1体戦場に出し、その後クリーチャーを1体生け贄に捧げる。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{1}{U}, {T}: Put a 2/2 blue Homunculus creature token onto the battlefield, then sacrifice a creature.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{1}{U}, {T}: положите на поле битвы одну фишку существа 2/2 синий Гомункул, затем пожертвуйте существо.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{1}{U}, {T}: Coloque no campo de batalha uma ficha de criatura azul 2/2 do tipo Homúnculo e depois sacrifique uma criatura.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{1}{U},{T}:将一个2/2蓝色造妖衍生生物放进战场,然后牺牲一个生物。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{1}{U},{T}:將一個2/2藍色造妖衍生生物放進戰場,然後犧牲一個生物。]]></LOCALISED_TEXT>
      <COST mana_cost="{1}{U}" type="Mana" />
      <COST type="TapSelf" />
      <RESOLUTION_TIME_ACTION>
         MTG():PutTokensOntoBattlefield( "TOKEN_HOMUNCULUS_C_2_2_U_CW_1", 1, EffectController() )
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local filter = ClearFilter()
         filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
         filter:Add( FE_CONTROLLER, OP_IS, EffectController() )
         EffectController():ChooseItem( "CARD_QUERY_CHOOSE_CREATURE_TO_SACRIFICE", EffectDC():Make_Targets(0) )
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         local creature = EffectDC():Get_Targets(0):Get_CardPtr(0)
         if creature ~= nil then
            EffectController():Sacrifice(creature)
         end
      </RESOLUTION_TIME_ACTION>
   </ACTIVATED_ABILITY>
   <TOKEN_REGISTRATION reservation="1" type="TOKEN_HOMUNCULUS_C_2_2_U_CW_1" />
   <SFX text="COMBAT_BLUNT_LARGE_ATTACK" power_boundary_min="4" power_boundary_max="-1" />
   <SFX text="COMBAT_BLUNT_SMALL_ATTACK" power_boundary_min="1" power_boundary_max="3" />
</CARD_V2>
I accidentally had an empty subfilter, which always returned false, thus nullifying the creature choice. Fixed now.

Divine Reckoning | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
   <FILENAME text="DIVINE_RECKONING_CW_245196" />
   <CARDNAME text="DIVINE_RECKONING" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Divine Reckoning]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Jugement divin]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Venganza divina]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Göttliche Abrechnung]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Giudizio Divino]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[神聖なる報い]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Divine Reckoning]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Божественный Расчет]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Ajuste de Contas Divino]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[神圣报应]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[神聖報應]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="245196" />
   <ARTID value="CW245196" />
   <ARTIST name="Greg Staples" />
   <CASTING_COST cost="{2}{W}{W}" />
   <FLAVOURTEXT>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Survival of the purest.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[La loi du plus pur.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Supervivencia de los más puros.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Die Reinsten überleben.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Sopravvivenza dei più puri.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[聖者生存。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Survival of the purest.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Выживает чистейший.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Seleção sobrenatural.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[纯者生存。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[純者生存。]]></LOCALISED_TEXT>
   </FLAVOURTEXT>
   <TYPE metaname="Sorcery" />
   <EXPANSION value="ISD" />
   <RARITY metaname="R" />
   <SPELL_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Each player chooses a creature he or she controls. Destroy the rest.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Chaque joueur choisit une créature qu’il contrôle. Détruisez le reste.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Cada jugador elige una criatura que controla. Destruye el resto.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Jeder Spieler bestimmt eine Kreatur, die er kontrolliert. Zerstöre den Rest.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ogni giocatore sceglie una creatura che controlla. Distruggi le altre.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[各プレイヤーは。自分がコントロールするクリーチャーを1体選ぶ。 残りを破壊する。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Each player chooses a creature he or she controls. Destroy the rest.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Каждый игрок выбирает существо под своим контролем. Уничтожьте все остальные.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Cada jogador escolhe uma criatura que ele controla. Destrua o restante.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[每位牌手各选择一个由他操控的生物。 将其它的消灭。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[每位玩家各選擇一個由他操控的生物。 將其它的消滅。]]></LOCALISED_TEXT>
      <RESOLUTION_TIME_ACTION repeating="1">
         local n = MTG():GetActionRepCount()
         local num_Players = MTG():GetNumberOfPlayers()
         if (n &lt; num_Players) then
            local player = MTG():GetNthPlayer(n)
            local filter = ClearFilter()
            filter:Add(FE_CONTROLLER, OP_IS, player)
            filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
            local Count = filter:Count()
            if Count &gt; 0 then
               player:SetItemCount( 1 )
               player:SetItemPrompt( 0, "CARD_QUERY_CHOOSE_CREATURE" )
               player:ChooseItems( EffectDC():Make_Targets(n+1) )
            end
            return true
         else
            for i = 0, (num_Players-1) do
               local player = MTG():GetNthPlayer(i)
               local targetDC = EffectDC():Get_Targets(i+1)
               local filter = ClearFilter()
               filter:Add(FE_CONTROLLER, OP_IS, player)
               filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
               Count = filter:Count()
               filter:EvaluateObjects()
               EffectController():DisplayMessage("Player "..i.." has "..Count.." creatures.")
               if Count &gt; 0 then
                  for j=0,(Count-1) do
                     local Card = filter:GetNthEvaluatedObject(j)
                     if Card ~= nil and Card ~= targetDC:Get_CardPtr(0) then
                        Card:Destroy()
                        EffectController():DisplayMessage("Destroyed player "..i.."'s creature; number: "..j)
                     elseif Card == nil then
                        EffectController():DisplayMessage("Player "..i.."'s creature number: "..j.." was nil.")
                     else
                        EffectController():DisplayMessage("Player "..i.."'s creature number: "..j.." was their chosen creature.")
                     end
                  end
               end
            end
            return false
         end
      </RESOLUTION_TIME_ACTION>
   </SPELL_ABILITY>
   <UTILITY_ABILITY qualifier="Flashback" active_zone="ZONE_GRAVEYARD">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Flashback {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Flashback {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Retrospectiva {5}{W}{W}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Rückblende {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Flashback {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[フラッシュバック {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Flashback {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Воспоминание {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Recapitular {5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[返照{5}{W}{W}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[返照{5}{W}{W}]]></LOCALISED_TEXT>
      <COST mana_cost="{5}{W}{W}" type="Mana" />
   </UTILITY_ABILITY>
   <HELP title="MORE_INFO_TITLE_FLASHBACK" body="MORE_INFO_BODY_FLASHBACK" zone="ZONE_ANY" />
</CARD_V2>
I forgot a slash in the end spell ability tag. Then, I was using EvaluateObects to get a count and I was getting the current player with teh wrong variable. All fixed now and tested.
i tested the cards a bit a it seems they all wor fine now thx.

sumomole wrote:I convert the functions of Flash from 2013 to 2014, and try to use it for Back from the Brink, hope it works.
this idea from TFM, I don't remember what he had wanted, finally I used to code Flash. :mrgreen:
Back from the Brink | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="BACK_FROM_THE_BRINK_249663" />
  <CARDNAME text="BACK_FROM_THE_BRINK" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Back from the Brink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Retour de la mort]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Regresar del umbral]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zurück vom Abgrund]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ritorno dal Baratro]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[瀬戸際からの帰還]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Back from the Brink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Возвращение с Края Пропасти]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Voltar do Abismo]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[边缘归来]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[邊緣歸來]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="249663" />
  <ARTID value="249663" />
  <ARTIST name="Anthony Palumbo" />
  <CASTING_COST cost="{4}{U}{U}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[On Innistrad, death is just a career change.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Sur Innistrad, la mort n’est qu’un changement de carrière.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[En Innistrad, la muerte es solo un cambio de profesión.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[In Innistrad ist der Tod nur ein Berufswechsel.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[In Innistrad, la morte non è altro che una diversa carriera.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[イニストラードでは、死は転職に過ぎない。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[On Innistrad, death is just a career change.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В Иннистраде смерть — лишь смена занятия.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Em Innistrad, a morte é apenas uma mudança de carreira.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[在依尼翠,死亡只是转职。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[在依尼翠,死亡只是轉職。]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Enchantment" />
  <EXPANSION value="DPI" />
  <RARITY metaname="R" />
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Exile a creature card from your graveyard and pay its mana cost: Put a token onto the battlefield that’s a copy of that card. Activate this ability only any time you could cast a sorcery.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Exilez une carte de créature de votre cimetière et payez son coût de mana : Mettez sur le champ de bataille un jeton qui est une copie de cette carte. N’activez cette capacité que lorsque vous pourriez lancer un rituel.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Exiliar una carta de criatura de tu cementerio y pagar su coste de maná: Pon en el campo de batalla una ficha de criatura que es una copia de esa carta. Activa esta habilidad sólo cuando puedas lanzar un conjuro.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Schicke eine Kreaturenkarte aus deinem Friedhof ins Exil und bezahle ihre Manakosten: Bringe einen Spielstein ins Spiel, der eine Kopie dieser Karte ist. Aktiviere diese Fähigkeit nur zu einem Zeitpunkt, zu dem du auch eine Hexerei wirken könntest.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Esilia una carta creatura dal tuo cimitero e pagane il costo di mana: Metti sul campo di battaglia una pedina che è una copia di quella carta. Attiva questa abilità solo quando potresti lanciare una stregoneria.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたの墓地にあるクリーチャー・カードを1枚追放し、それのマナ・コストを支払う:そのカードのコピーであるトークンを1体戦場に出す。 この能力は、あなたがソーサリーを唱えられるときにのみ起動できる。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Exile a creature card from your graveyard and pay its mana cost: Put a token onto the battlefield that’s a copy of that card. Activate this ability only any time you could cast a sorcery.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Изгоните карту существа из вашего кладбища и заплатите ее мана-стоимость: положите на поле битвы одну фишку, являющуюся копией той карты. Активируйте эту способность только при возможности разыгрывать волшебство.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Exile um card de criatura de seu cemitério e pague seu custo de mana: Coloque no campo de batalha uma ficha que seja uma cópia daquele card. Ative esta habilidade somente nos momentos em que poderia conjurar um feitiço.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[从你的坟墓场放逐一张生物牌并支付其法术力费用:将一个衍生物放进战场,且为该牌的复制品。 你只可以于你能施放法术的时机下起动此异能。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[從你的墳墓場放逐一張生物牌並支付其魔法力費用:將一個衍生物放進戰場,且為該牌的複製品。 你只可以於你能施放巫術的時機下起動此異能。]]></LOCALISED_TEXT>
    <COST type="Generic">
      <PREREQUISITE>
    local player = EffectController()
    local number = player:Graveyard_Count()
    for i=0,(number-1) do
       local card = player:Graveyard_GetNth(i)       
       if card ~= nil and card:GetCardType():Test(CARD_TYPE_CREATURE) then
        local mana = S_GetManaCostString(card, EffectController(), 0)
          if EffectController():CanPayManaCost(mana) then
          return true
         end
       end
    end
    return false
    </PREREQUISITE>
      <RESOLUTION_TIME_ACTION>
    local answerDC = EffectDC():Make_Targets(0)
    local queryDC = EffectDC():Make_Chest(1)
    local player = EffectController()
    local number = player:Graveyard_Count()
    for i=0,(number-1) do
       local card = player:Graveyard_GetNth(i)       
       if card ~= nil then
          queryDC:Set_CardPtr(i, card)
        local mana = S_GetManaCostString(card, EffectController(), 0)
          if not (card:GetCardType():Test(CARD_TYPE_CREATURE) and EffectController():CanPayManaCost(mana)) then
             queryDC:QueryUnselect_CardPtr(i)
          end
       else
          break
       end
    end
    player:ChooseItemFromDC( "CARD_QUERY_CHOOSE_CARD_TO_EXILE_FROM_A_GRAVEYARD", queryDC, answerDC )
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local targetCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if targetCard ~= nil then
      EffectDC():Get_Targets(0):Protect_CardPtr(0)
       targetCard:Exile()
      end
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local targetCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if targetCard ~= nil then
      local mana = S_GetManaCostString(targetCard, EffectController(), 0)
       EffectController():PayManaCost(mana)
      end
    </RESOLUTION_TIME_ACTION></COST>
    <AVAILABILITY sorcery_time="1" />
    <RESOLUTION_TIME_ACTION>
    local targetCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if targetCard ~= nil then
       MTG():PutTokenCopiesOntoBattlefield( targetCard, 1, EffectController() )
    end
    </RESOLUTION_TIME_ACTION>
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ALLIED" />
  </ACTIVATED_ABILITY>
  <AI_BASE_SCORE score="1050" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
functions | Open
Code: Select all
S_GetNumOfColorSymbol = function(object, color)
  local filter = ClearFilter()
  filter:SetZone( ZONE_ANYWHERE )
  filter:Add( FE_CARD_INSTANCE, OP_IS, object )
   return filter:ChromaCount(color)
end

S_PhyrexianManaValue = function(object)
  local value = 0
  if (object:GetCardName() == "APOSTLES_BLESSING" or object:GetCardName() == "CATHEDRAL_MEMBRANE" or object:GetCardName() == "MARROW_SHARDS" or object:GetCardName() == "NORNS_ANNEX" or object:GetCardName() == "PORCELAIN_LEGIONNAIRE") then
    value = 1
  elseif (object:GetCardName() == "GITAXIAN_PROBE" or object:GetCardName() == "MENTAL_MISSTEP" or object:GetCardName() == "PHYREXIAN_METAMORPH" or object:GetCardName() == "SPINED_THOPTER" or object:GetCardName() == "TEZZERETS_GAMBIT") then
    value = 2
  elseif (object:GetCardName() == "DISMEMBER" or object:GetCardName() == "PITH_DRILLER" or object:GetCardName() == "POSTMORTEM_LUNGE" or object:GetCardName() == "SURGICAL_EXTRACTION" or object:GetCardName() == "VAULT_SKIRGE") then
    value = 3
  elseif (object:GetCardName() == "ACT_OF_AGGRESSION" or object:GetCardName() == "GUT_SHOT" or object:GetCardName() == "MOLTENSTEEL_DRAGON" or object:GetCardName() == "RAGE_EXTRACTOR" or object:GetCardName() == "RUTHLESS_INVASION" or object:GetCardName() == "SLASH_PANTHER") then
    value = 4
  elseif (object:GetCardName() == "BIRTHING_POD" or object:GetCardName() == "CORROSIVE_GALE" or object:GetCardName() == "MUTAGENIC_GROWTH" or object:GetCardName() == "NOXIOUS_REVIVAL" or object:GetCardName() == "THUNDERING_TANADON") then
    value = 5
  end
  return value
end

S_HybridColourValue = function(object)
  local count = object:GetColour():GetNumColours()
  local common_value = 0
  local value = 1
  if count > 1 then
    for i=1,5 do     
       if object:GetColour():Test(i) then
        if count ~= 3 or common_value ~= 1 then
            value = value * i
         end
          common_value = common_value + 1
       end
     end
   end
  return value
end

S_HybridColourCommonValue = function(object)
  local common_value = 0
  if object:GetColour():GetNumColours() == 3 then
    local value = S_HybridColourValue(object)
    for i=1,5 do
       if i * (i + 2) == value then
          common_value = i + 1
       elseif i * (i + 3) == value then
          common_value = i + 4
       end
     end
    if common_value > 5 then
        common_value = common_value - 5
     end
   end
  return common_value
end

S_ColourToString = function(colour)
   local mana_table = {"", "{W/U}", "{W/B}", "{R/W}", "{G/W}", "{U/B}", "", "{U/R}", "", "{G/U}", "", "{B/R}", "", "", "{B/G}", "", "", "", "", "{R/G}", "{2/W}", "{2/U}", "{2/B}", "{2/R}", "{2/G}", "{W}", "{U}", "{B}", "{R}", "{G}", "{W/P}", "{U/P}", "{B/P}", "{R/P}", "{G/P}"}
   return mana_table[colour]
end

S_ManaString = function(colour, amount)
   local string = ""
   if amount == 0 then
      return "{0}"
   else
     for i=1,amount do
       string = string..S_ColourToString(colour)
     end
     return string
   end
end

S_GetManaCostString = function(object, player, index)
   local cmc = object:GetConvertedManaCost()
   if cmc > 0 then
      local string = ""
      local amount = {}
      local num_total_mana = 0
      local num_colored_mana = 0
     local total_cmc = cmc - index
      for i=0,5 do
         amount[i] = S_GetNumOfColorSymbol(object, i)
         num_total_mana = num_total_mana + amount[i]
         if i == 0 then
          num_colored_mana = cmc - amount[i]
        end
      end
      if num_total_mana == cmc then
        for j=1,5 do
           if amount[j] > 0 then
           if S_PhyrexianManaValue(object) == j then
                string = string..S_ManaString(j + 30, amount[j])
           else
                string = string..S_ManaString(j + 25, amount[j])
             end
           end
        end
      elseif num_total_mana > cmc then
        local num_hybrid_symbol = num_total_mana - cmc
        if num_colored_mana > 0 then       
          local hybrid_colors = S_HybridColourValue(object)
          local common_color = S_HybridColourCommonValue(object)
           if hybrid_colors > 1 then
              string = string..S_ManaString(hybrid_colors, num_hybrid_symbol)
          end
           if common_color > 0 then
              string = string..S_ManaString(common_color + 25, num_colored_mana - num_hybrid_symbol)
          end         
        else       
         local n = index
          if n < 0 then
            n = 0
           end
        local symbolindex = math.ceil(n/2)
          num_colored_mana = (cmc/2 - symbolindex) * 2
        if object:GetColour():GetNumColours() == 1 then
            for k=1,5 do
               if amount[k] - symbolindex > 0 then
                  string = string..S_ManaString(k + 20, amount[k] - symbolindex)
               end
            end
          else
            for l=1,5 do
             if (player:CanPayManaCost(S_ColourToString(l + 25)) == 0 and symbolindex > 0) or (symbolindex + l > 5) then
              symbolindex = symbolindex - 1
              else
                  string = string..S_ColourToString(l + 20)
               end
            end
          end         
        end
      end      
      if total_cmc > num_colored_mana then
         string = "{"..(total_cmc-num_colored_mana).."}"..string
      end
      return string
   else
      return "{0}"
   end
end
PS: if available, please change the prefix of functions to yours.
thx for ur help but what i need to do with ur second object Functions?
Hacker85
 
Posts: 31
Joined: 29 Mar 2014, 06:19
Has thanked: 3 times
Been thanked: 0 time

Re: Formal Request Thread

Postby Xander9009 » 25 Sep 2014, 20:22

Hacker85 wrote:
Xander9009 wrote:
Hacker85 wrote:The cards are now looking like this with the following problems
Stony Silence
Code: Select all
snip
Not shown in Deckbuilder

Divine Reckoning
Code: Select all
snip
Also not shown in Deckbuilder

Stitchers Apprentice
Code: Select all
snip
It generates the token but i dont need to sacrifie anything
Stony Silence | Open
Code: Select all
snip
This worked without an issue. Not sure what's up, but you might have had a different internal and external filename.

Stitcher's Apprentice | Open
Code: Select all
snip
I accidentally had an empty subfilter, which always returned false, thus nullifying the creature choice. Fixed now.

Divine Reckoning | Open
Code: Select all
snip
I forgot a slash in the end spell ability tag. Then, I was using EvaluateObects to get a count and I was getting the current player with teh wrong variable. All fixed now and tested.
i tested the cards a bit a it seems they all wor fine now thx.

sumomole wrote:I convert the functions of Flash from 2013 to 2014, and try to use it for Back from the Brink, hope it works.
this idea from TFM, I don't remember what he had wanted, finally I used to code Flash. :mrgreen:
Back from the Brink | Open
Code: Select all
snip
functions | Open
Code: Select all
snip
PS: if available, please change the prefix of functions to yours.
thx for ur help but what i need to do with ur second object Functions?
Good :)

And for the functions, put them in a file with the .lol extension. It can be titled pretty much anything, but I don't think it can have spaces, use underscores instead, and they're always all caps (don't know why, I tried it with lowercase and it worked fine). Stick that file (Possibly called S_MANA_FUNCTIONS.LOL or something) in your FUNCTIONS folder (it's next to your CARDS folder).
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby Hacker85 » 25 Sep 2014, 21:11

sumomole wrote:I convert the functions of Flash from 2013 to 2014, and try to use it for Back from the Brink, hope it works.
this idea from TFM, I don't remember what he had wanted, finally I used to code Flash. :mrgreen:
Back from the Brink | Open
Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="BACK_FROM_THE_BRINK_249663" />
  <CARDNAME text="BACK_FROM_THE_BRINK" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Back from the Brink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Retour de la mort]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Regresar del umbral]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Zurück vom Abgrund]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ritorno dal Baratro]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[瀬戸際からの帰還]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Back from the Brink]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Возвращение с Края Пропасти]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Voltar do Abismo]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[边缘归来]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[邊緣歸來]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="249663" />
  <ARTID value="249663" />
  <ARTIST name="Anthony Palumbo" />
  <CASTING_COST cost="{4}{U}{U}" />
  <FLAVOURTEXT>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[On Innistrad, death is just a career change.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Sur Innistrad, la mort n’est qu’un changement de carrière.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[En Innistrad, la muerte es solo un cambio de profesión.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[In Innistrad ist der Tod nur ein Berufswechsel.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[In Innistrad, la morte non è altro che una diversa carriera.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[イニストラードでは、死は転職に過ぎない。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[On Innistrad, death is just a career change.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[В Иннистраде смерть — лишь смена занятия.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Em Innistrad, a morte é apenas uma mudança de carreira.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[在依尼翠,死亡只是转职。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[在依尼翠,死亡只是轉職。]]></LOCALISED_TEXT>
  </FLAVOURTEXT>
  <TYPE metaname="Enchantment" />
  <EXPANSION value="DPI" />
  <RARITY metaname="R" />
  <ACTIVATED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Exile a creature card from your graveyard and pay its mana cost: Put a token onto the battlefield that’s a copy of that card. Activate this ability only any time you could cast a sorcery.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Exilez une carte de créature de votre cimetière et payez son coût de mana : Mettez sur le champ de bataille un jeton qui est une copie de cette carte. N’activez cette capacité que lorsque vous pourriez lancer un rituel.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Exiliar una carta de criatura de tu cementerio y pagar su coste de maná: Pon en el campo de batalla una ficha de criatura que es una copia de esa carta. Activa esta habilidad sólo cuando puedas lanzar un conjuro.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Schicke eine Kreaturenkarte aus deinem Friedhof ins Exil und bezahle ihre Manakosten: Bringe einen Spielstein ins Spiel, der eine Kopie dieser Karte ist. Aktiviere diese Fähigkeit nur zu einem Zeitpunkt, zu dem du auch eine Hexerei wirken könntest.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Esilia una carta creatura dal tuo cimitero e pagane il costo di mana: Metti sul campo di battaglia una pedina che è una copia di quella carta. Attiva questa abilità solo quando potresti lanciare una stregoneria.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたの墓地にあるクリーチャー・カードを1枚追放し、それのマナ・コストを支払う:そのカードのコピーであるトークンを1体戦場に出す。 この能力は、あなたがソーサリーを唱えられるときにのみ起動できる。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Exile a creature card from your graveyard and pay its mana cost: Put a token onto the battlefield that’s a copy of that card. Activate this ability only any time you could cast a sorcery.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Изгоните карту существа из вашего кладбища и заплатите ее мана-стоимость: положите на поле битвы одну фишку, являющуюся копией той карты. Активируйте эту способность только при возможности разыгрывать волшебство.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Exile um card de criatura de seu cemitério e pague seu custo de mana: Coloque no campo de batalha uma ficha que seja uma cópia daquele card. Ative esta habilidade somente nos momentos em que poderia conjurar um feitiço.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[从你的坟墓场放逐一张生物牌并支付其法术力费用:将一个衍生物放进战场,且为该牌的复制品。 你只可以于你能施放法术的时机下起动此异能。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[從你的墳墓場放逐一張生物牌並支付其魔法力費用:將一個衍生物放進戰場,且為該牌的複製品。 你只可以於你能施放巫術的時機下起動此異能。]]></LOCALISED_TEXT>
    <COST type="Generic">
      <PREREQUISITE>
    local player = EffectController()
    local number = player:Graveyard_Count()
    for i=0,(number-1) do
       local card = player:Graveyard_GetNth(i)       
       if card ~= nil and card:GetCardType():Test(CARD_TYPE_CREATURE) then
        local mana = S_GetManaCostString(card, EffectController(), 0)
          if EffectController():CanPayManaCost(mana) then
          return true
         end
       end
    end
    return false
    </PREREQUISITE>
      <RESOLUTION_TIME_ACTION>
    local answerDC = EffectDC():Make_Targets(0)
    local queryDC = EffectDC():Make_Chest(1)
    local player = EffectController()
    local number = player:Graveyard_Count()
    for i=0,(number-1) do
       local card = player:Graveyard_GetNth(i)       
       if card ~= nil then
          queryDC:Set_CardPtr(i, card)
        local mana = S_GetManaCostString(card, EffectController(), 0)
          if not (card:GetCardType():Test(CARD_TYPE_CREATURE) and EffectController():CanPayManaCost(mana)) then
             queryDC:QueryUnselect_CardPtr(i)
          end
       else
          break
       end
    end
    player:ChooseItemFromDC( "CARD_QUERY_CHOOSE_CARD_TO_EXILE_FROM_A_GRAVEYARD", queryDC, answerDC )
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local targetCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if targetCard ~= nil then
      EffectDC():Get_Targets(0):Protect_CardPtr(0)
       targetCard:Exile()
      end
    </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
    local targetCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if targetCard ~= nil then
      local mana = S_GetManaCostString(targetCard, EffectController(), 0)
       EffectController():PayManaCost(mana)
      end
    </RESOLUTION_TIME_ACTION></COST>
    <AVAILABILITY sorcery_time="1" />
    <RESOLUTION_TIME_ACTION>
    local targetCard = EffectDC():Get_Targets(0):Get_CardPtr(0)
    if targetCard ~= nil then
       MTG():PutTokenCopiesOntoBattlefield( targetCard, 1, EffectController() )
    end
    </RESOLUTION_TIME_ACTION>
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ALLIED" />
  </ACTIVATED_ABILITY>
  <AI_BASE_SCORE score="1050" zone="ZONE_BATTLEFIELD" />
</CARD_V2>
functions | Open
Code: Select all
S_GetNumOfColorSymbol = function(object, color)
  local filter = ClearFilter()
  filter:SetZone( ZONE_ANYWHERE )
  filter:Add( FE_CARD_INSTANCE, OP_IS, object )
   return filter:ChromaCount(color)
end

S_PhyrexianManaValue = function(object)
  local value = 0
  if (object:GetCardName() == "APOSTLES_BLESSING" or object:GetCardName() == "CATHEDRAL_MEMBRANE" or object:GetCardName() == "MARROW_SHARDS" or object:GetCardName() == "NORNS_ANNEX" or object:GetCardName() == "PORCELAIN_LEGIONNAIRE") then
    value = 1
  elseif (object:GetCardName() == "GITAXIAN_PROBE" or object:GetCardName() == "MENTAL_MISSTEP" or object:GetCardName() == "PHYREXIAN_METAMORPH" or object:GetCardName() == "SPINED_THOPTER" or object:GetCardName() == "TEZZERETS_GAMBIT") then
    value = 2
  elseif (object:GetCardName() == "DISMEMBER" or object:GetCardName() == "PITH_DRILLER" or object:GetCardName() == "POSTMORTEM_LUNGE" or object:GetCardName() == "SURGICAL_EXTRACTION" or object:GetCardName() == "VAULT_SKIRGE") then
    value = 3
  elseif (object:GetCardName() == "ACT_OF_AGGRESSION" or object:GetCardName() == "GUT_SHOT" or object:GetCardName() == "MOLTENSTEEL_DRAGON" or object:GetCardName() == "RAGE_EXTRACTOR" or object:GetCardName() == "RUTHLESS_INVASION" or object:GetCardName() == "SLASH_PANTHER") then
    value = 4
  elseif (object:GetCardName() == "BIRTHING_POD" or object:GetCardName() == "CORROSIVE_GALE" or object:GetCardName() == "MUTAGENIC_GROWTH" or object:GetCardName() == "NOXIOUS_REVIVAL" or object:GetCardName() == "THUNDERING_TANADON") then
    value = 5
  end
  return value
end

S_HybridColourValue = function(object)
  local count = object:GetColour():GetNumColours()
  local common_value = 0
  local value = 1
  if count > 1 then
    for i=1,5 do     
       if object:GetColour():Test(i) then
        if count ~= 3 or common_value ~= 1 then
            value = value * i
         end
          common_value = common_value + 1
       end
     end
   end
  return value
end

S_HybridColourCommonValue = function(object)
  local common_value = 0
  if object:GetColour():GetNumColours() == 3 then
    local value = S_HybridColourValue(object)
    for i=1,5 do
       if i * (i + 2) == value then
          common_value = i + 1
       elseif i * (i + 3) == value then
          common_value = i + 4
       end
     end
    if common_value > 5 then
        common_value = common_value - 5
     end
   end
  return common_value
end

S_ColourToString = function(colour)
   local mana_table = {"", "{W/U}", "{W/B}", "{R/W}", "{G/W}", "{U/B}", "", "{U/R}", "", "{G/U}", "", "{B/R}", "", "", "{B/G}", "", "", "", "", "{R/G}", "{2/W}", "{2/U}", "{2/B}", "{2/R}", "{2/G}", "{W}", "{U}", "{B}", "{R}", "{G}", "{W/P}", "{U/P}", "{B/P}", "{R/P}", "{G/P}"}
   return mana_table[colour]
end

S_ManaString = function(colour, amount)
   local string = ""
   if amount == 0 then
      return "{0}"
   else
     for i=1,amount do
       string = string..S_ColourToString(colour)
     end
     return string
   end
end

S_GetManaCostString = function(object, player, index)
   local cmc = object:GetConvertedManaCost()
   if cmc > 0 then
      local string = ""
      local amount = {}
      local num_total_mana = 0
      local num_colored_mana = 0
     local total_cmc = cmc - index
      for i=0,5 do
         amount[i] = S_GetNumOfColorSymbol(object, i)
         num_total_mana = num_total_mana + amount[i]
         if i == 0 then
          num_colored_mana = cmc - amount[i]
        end
      end
      if num_total_mana == cmc then
        for j=1,5 do
           if amount[j] > 0 then
           if S_PhyrexianManaValue(object) == j then
                string = string..S_ManaString(j + 30, amount[j])
           else
                string = string..S_ManaString(j + 25, amount[j])
             end
           end
        end
      elseif num_total_mana > cmc then
        local num_hybrid_symbol = num_total_mana - cmc
        if num_colored_mana > 0 then       
          local hybrid_colors = S_HybridColourValue(object)
          local common_color = S_HybridColourCommonValue(object)
           if hybrid_colors > 1 then
              string = string..S_ManaString(hybrid_colors, num_hybrid_symbol)
          end
           if common_color > 0 then
              string = string..S_ManaString(common_color + 25, num_colored_mana - num_hybrid_symbol)
          end         
        else       
         local n = index
          if n < 0 then
            n = 0
           end
        local symbolindex = math.ceil(n/2)
          num_colored_mana = (cmc/2 - symbolindex) * 2
        if object:GetColour():GetNumColours() == 1 then
            for k=1,5 do
               if amount[k] - symbolindex > 0 then
                  string = string..S_ManaString(k + 20, amount[k] - symbolindex)
               end
            end
          else
            for l=1,5 do
             if (player:CanPayManaCost(S_ColourToString(l + 25)) == 0 and symbolindex > 0) or (symbolindex + l > 5) then
              symbolindex = symbolindex - 1
              else
                  string = string..S_ColourToString(l + 20)
               end
            end
          end         
        end
      end      
      if total_cmc > num_colored_mana then
         string = "{"..(total_cmc-num_colored_mana).."}"..string
      end
      return string
   else
      return "{0}"
   end
end
PS: if available, please change the prefix of functions to yours.
so added the functions, the cards works halfway now. i can exile creatures from my graveyard and also get the copy but i dont need to pay mana for it.
Hacker85
 
Posts: 31
Joined: 29 Mar 2014, 06:19
Has thanked: 3 times
Been thanked: 0 time

Re: Formal Request Thread

Postby sumomole » 26 Sep 2014, 07:41

Hacker85 wrote:so added the functions, the cards works halfway now. i can exile creatures from my graveyard and also get the copy but i dont need to pay mana for it.
I put Back from the Brink(without art) and functions in my mod now, if you don't know how to use functions, you can download Core(DATA_DLC_S62).
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: Formal Request Thread

Postby NeoAnderson » 26 Sep 2014, 07:52

sumomole wrote:
Hacker85 wrote:so added the functions, the cards works halfway now. i can exile creatures from my graveyard and also get the copy but i dont need to pay mana for it.
I put Back from the Brink(without art) and functions in my mod now, if you don't know how to use functions, you can download Core(DATA_DLC_S62).
Hey Sumo if you want you can also add the HQ Art, i attach here the TDX :wink:
Attachments
BackfromtheBrink.rar
Back from the Brink HQ TDX
(114.47 KiB) Downloaded 295 times
NeoAnderson
 
Posts: 914
Joined: 10 Sep 2013, 07:49
Has thanked: 18 times
Been thanked: 139 times

Re: Formal Request Thread

Postby sumomole » 26 Sep 2014, 08:05

NeoAnderson wrote:
sumomole wrote:
Hacker85 wrote:so added the functions, the cards works halfway now. i can exile creatures from my graveyard and also get the copy but i dont need to pay mana for it.
I put Back from the Brink(without art) and functions in my mod now, if you don't know how to use functions, you can download Core(DATA_DLC_S62).
Hey Sumo if you want you can also add the HQ Art, i attach here the TDX :wink:
no thanks, I won't update arts pack, it's too trouble. :lol:
User avatar
sumomole
Programmer
 
Posts: 611
Joined: 07 Jun 2011, 08:34
Has thanked: 51 times
Been thanked: 234 times

Re: Formal Request Thread

Postby Tejahn » 29 Sep 2014, 20:52

Tejahn
 
Posts: 430
Joined: 14 May 2013, 01:35
Has thanked: 25 times
Been thanked: 25 times

Re: Formal Request Thread

Postby sweetLu » 29 Sep 2014, 21:12

Some of those look pretty interesting. I'll give them a shot the next time I get a chance. Though if they are from Khans I should check with Neo first since they are likely done already.

On a different note, I don't think Ruhan of the Fomori is possible similar to the same reasons we cannot do "Creature A blocks Creature B if able" but that might be such a rare occurrence that people won't care.
sweetLu
 
Posts: 181
Joined: 16 Jul 2014, 01:24
Has thanked: 21 times
Been thanked: 22 times

Re: Formal Request Thread

Postby Xander9009 » 29 Sep 2014, 21:35

sweetLu wrote:Some of those look pretty interesting. I'll give them a shot the next time I get a chance. Though if they are from Khans I should check with Neo first since they are likely done already.

On a different note, I don't think Ruhan of the Fomori is possible similar to the same reasons we cannot do "Creature A blocks Creature B if able" but that might be such a rare occurrence that people won't care.
Don't know if it works and I have no cards handy that use it, but there's a function called "MustAttackPlayer()".
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby thefiremind » 30 Sep 2014, 09:32

Xander9009 wrote:Don't know if it works and I have no cards handy that use it, but there's a function called "MustAttackPlayer()".
I have never tried to use it either, but you can try...
Ruhan of the Fomori's triggered ability (untested) | Open
Code: Select all
  <TRIGGERED_ABILITY>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[At the beginning of combat on your turn, choose an opponent at random. Ruhan of the Fomori attacks that player this combat if able.]]></LOCALISED_TEXT>
    <TRIGGER value="BEGINNING_OF_PLAYERS_STEP" simple_qualifier="controller">
    return MTG():GetStep() == STEP_BEGIN_COMBAT
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    local filter = ClearFilter()
    filter:SetFilterType(FILTER_TYPE_PLAYERS)
    filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
    local count = filter:EvaluatePlayers()
    local index = MTG():RandomNumberBetween(0, count-1)
    local opponent = filter:GetNthEvaluatedPlayer(index)
    EffectDC():Set_PlayerPtr(0, opponent)
    </RESOLUTION_TIME_ACTION>
    <CONTINUOUS_ACTION layer="8">
    local source = EffectSource()
    if source ~= nil then
       local opponent = EffectDC():Get_PlayerPtr(0)
       if opponent ~= nil then
          source:GetCurrentCharacteristics():MustAttackPlayer(opponent)
       end
    end
    </CONTINUOUS_ACTION>
    <DURATION>
    return MTG():GetStep() &gt;= STEP_END_OF_COMBAT
    </DURATION>
    <AUTO_SKIP no_effect_source="1" />
  </TRIGGERED_ABILITY>
I thought about trying to code a Skullbriar lots of times, but my hopes were too low. I don't know if we can override a COUNTERS_CHANGED trigger so that the interested zone changes don't remove the counters (that would be awesome). The alternative way is to re-add the counters after the interested zone changes, but I think it would bring lots of incompatibilities.
< Former DotP 2012/2013/2014 modder >
Currently busy with life...
User avatar
thefiremind
Programmer
 
Posts: 3515
Joined: 07 Nov 2011, 10:55
Has thanked: 118 times
Been thanked: 722 times

Re: Formal Request Thread

Postby migookman » 30 Sep 2014, 11:01

I was wondering how I could code the following:

You may cast [card name] as though it had flash. If you cast it any time a sorcery couldn’t have been cast, the controller of the permanent it becomes sacrifices it at the beginning of the next cleanup step

I have seen the posts about pseudoflash but putting it together with the sacrifice is eluding me.
User avatar
migookman
 
Posts: 135
Joined: 05 Aug 2014, 06:37
Has thanked: 22 times
Been thanked: 28 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 21 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 21 users online :: 0 registered, 0 hidden and 21 guests (based on users active over the past 10 minutes)
Most users ever online was 7303 on 15 Jul 2025, 20:46

Users browsing this forum: No registered users and 21 guests

Login Form