It is currently 19 Jul 2025, 21:18
   
Text Size

Community Wad

Moderator: CCGHQ Admins

Re: Community Wad

Postby Splinterverse » 02 Nov 2016, 22:19

I've isolated the Cumulative Upkeep issues to only cards that have colorless mana as their Cumulative Upkeep cost. And, again, the problem only arises when the second Age counter hits the card.

These cards are causing the ability to select or click anything to go away:
Ancestral Knowledge
Freyalise's Presence
Fyndhorn Pillars
Juju Bubble
Survivor of the Unseen

I've tested them all in isolation -- no other cards in play.

Cards that include colored mana, such as Tombstone Stairwell, do not have this issue. However, I did notice that Krovikan Whispers is a bit bugged. It's not asking if you want to pay the upkeep cost, it is simply paying it. It was also giving an error in the log of some sort.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 76 times

Re: Community Wad

Postby Splinterverse » 02 Nov 2016, 22:29

I've figured out what I believe to be the issue. I think with the colorless upkeep cards, the code is trying to repeatedly PayResourceCost rather than adding it up inside the RTA and using PayManaCost. Calling the Utility to PayResourceCost in a loop must be tweaking it or something. I just changed a colorless one that I had been coding to use a similar method to Arnjlot's Ascent and it worked.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 76 times

Re: Community Wad

Postby nivmizzet1 » 02 Nov 2016, 22:40

Xander9009 wrote:Brushland and Daretti, Ingenious Iconoclast are fixed. No, we can't fix the issue with double strike creatures and planeswalkers in any way that I know of, but I'll keep it in mind and let the idea brew. Maybe I'll think of something that can reliably work.

My decks in that folder should be gone. They were there because I'm testing out a new tool, and trying to get the deck-syncing working properly. It should be working now, but I can't guarantee it won't happen again since the program is still in alpha.
I thought it might be something like that.

Brushland was probably (undoubtedly) my fault. For some reason it had "enters the battlefield tapped", so I removed that static ability, and I must've taken something else too, or left something, by mistake. Thanks for the fixes!
nivmizzet1
 
Posts: 617
Joined: 21 Mar 2013, 10:10
Has thanked: 100 times
Been thanked: 25 times

Re: Community Wad

Postby Splinterverse » 02 Nov 2016, 22:59

I'm literally out of time for today.

I've uploaded Mwonvuli Ooze, which has a colorless upkeep cost and it works without losing the ability to select.

Unfortunately, I don't have time to proliferate it through the broken colorless upkeep cards. If anyone else wants to, feel free. The main thing is to remove the payment loop/utility ability and have it add up the costs before paying them. Here's the Mwonvuli code for reference so that you don't have to wait until the .wad updates: http://pastebin.com/U0DBdyXZ
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
Splinterverse
 
Posts: 918
Joined: 04 Sep 2016, 13:32
Has thanked: 150 times
Been thanked: 76 times

Re: Community Wad

Postby Xander9009 » 03 Nov 2016, 00:03

Brooding Saurian: Just use a CA on the correct layer. The newest one will take precedence, and give a duration of "return false".

Cumulative Upkeep: Cumulative Upkeep has been coded the same way for a very long time. I'm not even certain who came up with it initially. Paying a cost in a repeating action wouldn't be an issue, but doing so in a for loop likely is the problem, you're right. Glad you found a solution.

The error you posted about the fFilter indexing problem isn't related to that (at least not for most of them). It means that some card called CW_Filter_AddEnchantments(filter) while "filter" wasn't valid. There are 284 cards that contain that function, though, and that doesn't even include the ones that have other functions which call it. So, unless you remember which cards were in use, that error is unlikely to get fixed.

Exile: Intet, the Dreamer and Inverter of Truth need updated, but otherwise, have a look at Pull from Eternity is already coded, and will have almost everything you need for those.

You can have a look at CW_EXILE.LOL for functions related to it.

Meandering Towershell: Line 57 uses the variable target, which is undefined. Also, while it's not necessary, it'd be very convenient if it checked how many opponents there are. If there's only one, use that player automatically instead of asking. Akroan Horse has code you could use for that.
_______________________________
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: Community Wad

Postby migookman » 03 Nov 2016, 01:13

Cards tested and uploaded
Veiled Apparition
Vengeful Dreams
Venom
Vexing Sphinx
Viscerid Drone
Voidstone Gargoyle
Volrath's Curse
Volrath's Dungeon
Vulshok Battlemaster

Probelm Cards
Wake the Dead - creatures are being put on the battlefield now but are not sacrificing.
Code: Select all
 <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_RETURN_TO_BATTLEFIELD" definition="0" compartment="0" depends_on_X="1">
         MTG():SetTargetCount(GetEffectX())
      </TARGET>
      <TARGET_DEFINITION id="0">
         local player = EffectController()
         local filter = ClearFilter()
         filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
         filter:SetZone( ZONE_GRAVEYARD, player )
                        EffectDC():Set_Int( 0, Count():GetEffectX() )
                        local delayDC = EffectDC():Make_Chest(1)
      </TARGET_DEFINITION>
      <RESOLUTION_TIME_ACTION id="0">
                        local count = GetEffectX()
            for i = 0, count-1 do
               local target_card = EffectDC():Get_Targets(0):Get_CardPtr(i)
            if target_card ~= nil then
                  target_card:PutOntoBattlefield()
               end
            end
                          MTG():CreateDelayedTrigger(1, delayDC)
      </RESOLUTION_TIME_ACTION>
   </SPELL_ABILITY>
        <TRIGGERED_ABILITY resource_id="1">
      <CLEANUP fire_once="1" />
      <TRIGGER value="BEGINNING_OF_STEP">
         return MTG():GetStep() == STEP_END_OF_TURN
      </TRIGGER>
      <RESOLUTION_TIME_ACTION>
         local count = EffectDC():Get_Int(0)
         if count &gt; 0 then
            for i=1,count do
               local target_card = EffectDC():Get_CardPtr(i)
               if target_card ~= nil then
                  EffectController():Sacrifice(target_card)
               end
            end
         end
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
Viridian Betrayers - not gaining Infect when opponent is poisoned.
Code: Select all
<CONTINUOUS_ACTION layer="6">
                        local player = EffectSource():GetPlayer()
         if EffectSource() ~= nil and TFM_ReadPoisonCount(player) &gt; 0 then
               EffectSource():GetCurrentCharacteristics():Bool_Set(CHARACTERISTIC_INFECT, 1)
            end
      </CONTINUOUS_ACTION>
Volrath's Shapeshifter - not cloning top card of graveyard.
Code: Select all
<STATIC_ABILITY replacement_query="1">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[As long as the top card of your graveyard is a creature card, Volrath’s Shapeshifter has the full text of that card and has the text “{2}: Discard a card.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[<span class=“missing”>(Missing!)</span>]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[<span class=“missing”>(Missing!)</span>]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Solange die oberste Karte auf Deinem Friedhof eine Kreaturenkarte ist, ist Volraths Gestaltwandler eine Kopie dieser Kreatur. Zusätzlich behält der Gestaltwandler seine Fähigkeiten.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[<span class=“missing”>(Missing!)</span>]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[As long as the top card of your graveyard is a creature card, Volrath’s Shapeshifter has the full text of that card and has the text “{2}: Discard a card.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[As long as the top card of your graveyard is a creature card, Volrath’s Shapeshifter has the full text of that card and has the text “{2}: Discard a card.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[As long as the top card of your graveyard is a creature card, Volrath’s Shapeshifter has the full text of that card and has the text “{2}: Discard a card.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[<span class=“missing”>(Missing!)</span>]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[As long as the top card of your graveyard is a creature card, Volrath’s Shapeshifter has the full text of that card and has the text “{2}: Discard a card.”]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[As long as the top card of your graveyard is a creature card, Volrath’s Shapeshifter has the full text of that card and has the text “{2}: Discard a card.”]]></LOCALISED_TEXT>
                <RESOLUTION_TIME_ACTION>
            local top = EffectController():Graveyard_GetNth(0)
            if top ~= nil and top:GetCardType():Test(CARD_TYPE_CREATURE) then
            top:StoreCopiableValues(EffectDC():Make_Chest(1))
            EffectSource():UseCopiableValues(EffectDC():Get_Chest(1))
            EffectDC():Protect_CardPtr(COMPARTMENT_ID_EFFECT_SOURCE)
         end
      </RESOLUTION_TIME_ACTION>
      <CONTINUOUS_ACTION layer="1">
         if EffectSource() ~= nil and EffectDC():Get_Chest(1) ~= nil then
            EffectSource():UseCopiableValues(EffectDC():Get_Chest(1))
         end
      </CONTINUOUS_ACTION>
                <CONTINUOUS_ACTION layer="6">
         if EffectSource()~= nil then
               EffectSource():GetCurrentCharacteristics():GrantAbility(3)
            end
      </CONTINUOUS_ACTION>
      <DURATION>
         return EffectSource() == nil
      </DURATION>
   </STATIC_ABILITY>
Volcanic Offering - crashes the game when it is time for opponent to choose a land.
Code: Select all
<TARGET tag="CARD_QUERY_CHOOSE_LAND_TO_DESTROY" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
         local filter = ClearFilter()
         filter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
                        filter:Add( FE_SUPERTYPE, OP_NOT, SUPERTYPE_BASIC )
              filter:Add(FE_CARD_NAME, OP_NOT, "WASTES")
                        filter:Add( FE_CONTROLLER, OP_NOT, EffectController() )
      </TARGET_DEFINITION>
      <TARGET tag="CARD_QUERY_CHOOSE_OPPONENT" definition="1" compartment="1" count="1" dependency="1" not_targeted="1" />
      <TARGET_DEFINITION id="1">
         local filter = ClearFilter()
         filter:SetFilterType( FILTER_TYPE_PLAYERS )
         filter:Add( FE_TEAM, OP_NOT, EffectController():GetTeam() )
                        filter:Add( FE_CONTROLLER, OP_NOT, EffectController() )
      </TARGET_DEFINITION>
      <TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_ARENA" definition="2" compartment="2" count="1">
         MTG():SetTargetAnswerer(EffectDC():Get_Targets(1):Get_PlayerPtr(0))
      </TARGET>
      <TARGET_DEFINITION id="2">
         local filter = ClearFilter()
         filter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
                        filter:Add( FE_SUPERTYPE, OP_NOT, SUPERTYPE_BASIC )
         filter:Add(FE_CARD_NAME, OP_NOT, "WASTES")
      </TARGET_DEFINITION>
      <RESOLUTION_TIME_ACTION>
         local targetA = EffectDC():Get_Targets(0):Get_CardPtr(0)
         local targetB = EffectDC():Get_Targets(2):Get_CardPtr(0)
         if (targetA ~= nil and targetB ~= nil) then
            targetA:Destroy()
            targetB:Destroy()
         end
      </RESOLUTION_TIME_ACTION>
   </SPELL_ABILITY>
Also not sure how to code the second ability of Vision Charm.
User avatar
migookman
 
Posts: 135
Joined: 05 Aug 2014, 06:37
Has thanked: 22 times
Been thanked: 28 times

Re: Community Wad

Postby fallenangle » 03 Nov 2016, 02:47

For Viridian Betrayers, doesn't your code check if YOU are poisoned? It should say something like, "local player = MTG():GetNumberofStartingPlayers....if player:GetTeam() ~= EffectController():GetTeam()and TFM...." You shouldn't be using EffectSource():GetPlayer() here.

For Wake the Dead, I think your problem is that you create the delayDC in the target block instead of the RTA. I'm not sure the game can read it from there.
fallenangle
 
Posts: 319
Joined: 20 Jul 2013, 02:31
Has thanked: 73 times
Been thanked: 41 times

Re: Community Wad

Postby Xander9009 » 03 Nov 2016, 03:20

Wake the Dead:
  • Yyour target block contains two lines which should be in the following RTA instead.
  • That RTA doesn't need id="1".
  • In that RTA, before putting each card onto the battlefield, add it to the delayDC and protect the pointer. (Make sure they're in indices 1 through X to match your delayed triggered ability's RTA which cycles through them.)
  • In the delayed trigger, don't forget to check EffectController() for nil before using it.

Veridian Betrayers: It's checking if you have poison counters.
Code: Select all
<CONTINUOUS_ACTION layer="6">
   local oSource = EffectSource()
   local oController = EffectController()
   if oSource ~= nil and oController ~= nil then
      local oFilter = ClearFilter()
      oFilter:Add(FE_TEAM, OP_NOT, oController:GetTeam())
      oFilter:Add(FE_LUA_CONDITION, 1, EffectController(), EffectDC())
      if oFilter:CountStopAt(1) == 1 then
         oSource:GetCurrentCharacteristics():Bool_Set(CHARACTERISTIC_INFECT, 1)
      end
   end
</CONTINUOUS_ACTION>
<FILTER_CONDITION id="1">
   return FilteredPlayer() ~= nil and TFM_ReadPoisonCount(FilteredPlayer()) &gt; 0
</FILTER_CONDITION>
Of course, if you don't want to use a filter condition, you can just iterate through the opponents with EvalutePlayers() and check each.

Volrath's Shapeshifter: Your RTA will never run. An RTA has no real meaning in a static ability, because it's when the ability resolves, but a static ability doesn't resolve, it just exists all the time. Also, your duration isn't needed.

Move the storage and usage of copiable values and from the RTA directly into the CA. You also don't need to protect any card pointers.

Volcanic Offering: Sorry, but I'm not sure off-hand. I'd have to debug it, which I can do later. I might need reminded.

Vision Charm: Two multiple choice questions. One asks the player to choose between Desert, Forest, Island, Lair, Locus, Mine, Mountain, Plains, Power-Plant, Swamp, Tower, and Urza’s. The other asks the player to choose between Forest, Island, Mountain, Plains, and Swamp. Filter for all lands matching the first type, remove all land types, and add the subtype of the other choice.

Note that since there are 12 land types, you'll need a repeating RTA multiple choice question. I've been planning to go see if I can code a usable function for asking questions and getting answers with more than 7 choices, but I haven't yet. In the mean time, this should do the trick. This is completely untested. I'm not 100% certain arrays can be broken up over multiple lines. So, if it fails, the first thing I'd try is removing the line-break between lines 31 and 32.
Code: Select all
<RESOLUTION_TIME_ACTION repeating="1">
   local oController = EffectController()
   local iRepCount = MTG():GetActionRepCount()
   local iParity = iRepCount % 2
   if oController ~= nil then
      local iPreviousChoice = oController:GetMultipleChoiceResult()
      if iParity == 0 and (iRepCount == 0 or iPreviousChoice == 6) then
         oController:BeginMultipleChoiceQuestion()
            oController:AddMultipleChoiceAnswer("LAND_TYPE_PLAINS")
            oController:AddMultipleChoiceAnswer("LAND_TYPE_ISLAND")
            oController:AddMultipleChoiceAnswer("LAND_TYPE_SWAMP")
            oController:AddMultipleChoiceAnswer("LAND_TYPE_MOUNTAIN")
            oController:AddMultipleChoiceAnswer("LAND_TYPE_FOREST")
            oController:AddMultipleChoiceAnswer("LAND_TYPE_DESERT")
            oController:AddMultipleChoiceAnswer("CARD_QUERY_SHOW_MORE")
         oController:AskMultipleChoiceQuestion("CARD_QUERY_CHOOSE_LAND_TYPE")
         return true
      elseif iParity == 1 and iPreviousChoice == 6 then
         oController:BeginMultipleChoiceQuestion()
            oController:AddMultipleChoiceAnswer("LAND_TYPE_LAIR")
            oController:AddMultipleChoiceAnswer("LAND_TYPE_LOCUS")
            oController:AddMultipleChoiceAnswer("LAND_TYPE_URZAS")
            oController:AddMultipleChoiceAnswer("LAND_TYPE_MINE")
            oController:AddMultipleChoiceAnswer("LAND_TYPE_POWER_PLANT")
            oController:AddMultipleChoiceAnswer("LAND_TYPE_TOWER")
            oController:AddMultipleChoiceAnswer("CARD_QUERY_SHOW_MORE")
         oController:AskMultipleChoiceQuestion("CARD_QUERY_CHOOSE_LAND_TYPE")
         return true
      else
         local aiLandTypes = {LAND_TYPE_PLAINS, LAND_TYPE_ISLAND, LAND_TYPE_SWAMP, LAND_TYPE_MOUNTAIN, LAND_TYPE_FOREST, LAND_TYPE_DESERT,
                        LAND_TYPE_LAIR, LAND_TYPE_LOCUS, LAND_TYPE_URZAS, LAND_TYPE_MINE, LAND_TYPE_POWER_PLANT, LAND_TYPE_TOWER}
         EffectDC():Set_Int(0, aiLandTypes[iPreviousChoice + (iParity * -6) + 7])
      end
   end
   return false
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
   local iChosenLandType = EffectDC():Get_Int(0)
</RESOLUTION_TIME_ACTION>
Note that only asks for the first land type. You still need to make the question for the second land type.
_______________________________
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: Community Wad

Postby nivmizzet1 » 03 Nov 2016, 12:07

um...

Code: Select all
3/11/2016 10:30:06 PM: Log Opened.

3/11/2016 10:30:06 PM: Medium: mscorlib - Input string was not in a correct format.:
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at RSN.DotP.CardFilterStringIntProp.IsAllowed(CardInfo ciCard)
Extra Information:
IsAllowed string integer test encountered an error processing Power on card ANGRY_MOB_CW_1801 in wad DATA_DLC_COMMUNITY_CORE.

3/11/2016 10:30:06 PM: Medium: mscorlib - Input string was not in a correct format.:
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at RSN.DotP.CardFilterStringIntProp.IsAllowed(CardInfo ciCard)
Extra Information:
IsAllowed string integer test encountered an error processing Power on card AYSEN_CRUSADER_CW_184587 in wad DATA_DLC_COMMUNITY_CORE.

3/11/2016 10:30:06 PM: Medium: mscorlib - Input string was not in a correct format.:
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at RSN.DotP.CardFilterStringIntProp.IsAllowed(CardInfo ciCard)
Extra Information:
IsAllowed string integer test encountered an error processing Power on card HAUNTING_APPARITION_CW_3538 in wad DATA_DLC_COMMUNITY_CORE.

3/11/2016 10:30:06 PM: Medium: mscorlib - Input string was not in a correct format.:
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at RSN.DotP.CardFilterStringIntProp.IsAllowed(CardInfo ciCard)
Extra Information:
IsAllowed string integer test encountered an error processing Power on card LITTLE_GIRL_CW_74257 in wad DATA_DLC_COMMUNITY_CORE.

3/11/2016 10:30:06 PM: Medium: mscorlib - Input string was not in a correct format.:
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at RSN.DotP.CardFilterStringIntProp.IsAllowed(CardInfo ciCard)
Extra Information:
IsAllowed string integer test encountered an error processing Power on card MERCY_KILLING_CW_158771 in wad DATA_DLC_COMMUNITY_CORE.

3/11/2016 10:30:06 PM: Medium: mscorlib - Input string was not in a correct format.:
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at RSN.DotP.CardFilterStringIntProp.IsAllowed(CardInfo ciCard)
Extra Information:
IsAllowed string integer test encountered an error processing Power on card MWONVULI_OOZE_CW_4523 in wad DATA_DLC_COMMUNITY_CORE.

3/11/2016 10:30:06 PM: Medium: mscorlib - Input string was not in a correct format.:
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at RSN.DotP.CardFilterStringIntProp.IsAllowed(CardInfo ciCard)
Extra Information:
IsAllowed string integer test encountered an error processing Power on card TOKEN_CONSTRUCT_AC_X_X_C_CW_1 in wad DATA_DLC_COMMUNITY_CORE.

3/11/2016 10:30:06 PM: Medium: mscorlib - Input string was not in a correct format.:
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at RSN.DotP.CardFilterStringIntProp.IsAllowed(CardInfo ciCard)
Extra Information:
IsAllowed string integer test encountered an error processing Power on card TOKEN_CONSTRUCT_AC_X_X_C_CW_2 in wad DATA_DLC_COMMUNITY_CORE.

3/11/2016 10:30:06 PM: Medium: mscorlib - Input string was not in a correct format.:
   at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
   at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
   at RSN.DotP.CardFilterStringIntProp.IsAllowed(CardInfo ciCard)
Extra Information:
IsAllowed string integer test encountered an error processing Power on card TOKEN_ZOMBIE_HORROR_C_X_X_B_CW_1 in wad DATA_DLC_COMMUNITY_CORE.
Last edited by nivmizzet1 on 03 Nov 2016, 12:15, edited 1 time in total.
nivmizzet1
 
Posts: 617
Joined: 21 Mar 2013, 10:10
Has thanked: 100 times
Been thanked: 25 times

Re: Community Wad

Postby Splinterverse2 » 03 Nov 2016, 12:12

I am away from the computer today, so I can't update Ooze, but I believe the issue is that the card reads 1+* in the P/T positions. It functions perfectly but appears to be giving an error message. If changed to 1/1, the card will still work as coded. In other words, this is a default text issue on this card with a quick fix.
Splinterverse2
 
Posts: 52
Joined: 20 Sep 2016, 13:52
Has thanked: 13 times
Been thanked: 0 time

Re: Community Wad

Postby nivmizzet1 » 03 Nov 2016, 12:18

Splinterverse2 wrote:I am away from the computer today, so I can't update Ooze, but I believe the issue is that the card reads 1+* in the P/T positions. It functions perfectly but appears to be giving an error message. If changed to 1/1, the card will still work as coded. In other words, this is a default text issue on this card with a quick fix.
it seems it's the same (related) problem for all those cards.

EDIT: and now I'm not getting the message. But the game is crashing on start-up.

EDIT: Okay, I changed all the cards, except Little Girl, because I don't think there's anything I can replace 0.5 with.
For the X/X tokens I replaced X with 0.
I'm not sure how Mercy Killing got involved in this, but for some reason it had power and toughness, so I just deleted those fields.

EDIT: okay, I don't think the crashing was because of this problem (yes, it most definitely wasn't).
nivmizzet1
 
Posts: 617
Joined: 21 Mar 2013, 10:10
Has thanked: 100 times
Been thanked: 25 times

Re: Community Wad

Postby nivmizzet1 » 03 Nov 2016, 14:39

for some reason, every now and then (only starting today), cards like keen sense have been drawing two cards instead of one.

EDIT: OK, this could just be my imagination. I need to go to bed and stop messing around with unofficial cards.


Can anybody explain why the ability below (activated trigger) would (1) not result in being queried about drawing a card, and (2) cause the player to draw two cards instead of one?

Code: Select all
   <ACTIVATED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{2}{G}{B}: The next time this source would deal damage to an opponent this turn, you may draw a card.]]></LOCALISED_TEXT>
      <COST mana_cost="{2}{G}{B}" type="Mana" />
      <RESOLUTION_TIME_ACTION>
         MTG():CreateDelayedTrigger(1, nil)
      </RESOLUTION_TIME_ACTION>
   </ACTIVATED_ABILITY>
   <TRIGGERED_ABILITY resource_id="1" replacement_effect="1">
      <TRIGGER value="SOURCE_DEALS_DAMAGE_TO_PLAYER" pre_trigger="1" simple_qualifier="self" damage_type="all" />
      <MAY tag="CARD_QUERY_DRAW_A_CARD" always_prompt="1">
         -- AI behaviour
         if EffectController():Library_Count() &lt; 10 then
            return false
         else
            return true
         end
      </MAY>
      <CLEANUP fire_once="1" />
      <CLEANUP simple_cleanup="EndOfTurn" />
      <RESOLUTION_TIME_ACTION>
         EffectController():DrawCards(1)
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
Or why this next ability, which follows the above ability on the same card, won't add +1/+1 counters, but will result in the controller drawing 2 cards?
Code: Select all
   <ACTIVATED_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{3}{G}{G}: Until end of turn, whenever a creature you control is dealt damage, put a +1/+1 counter on it.]]></LOCALISED_TEXT>
      <COST mana_cost="{3}{G}{G}" type="Mana" />
      <RESOLUTION_TIME_ACTION>
         MTG():CreateDelayedTrigger(1, nil)
      </RESOLUTION_TIME_ACTION>
   </ACTIVATED_ABILITY>
   <TRIGGERED_ABILITY resource_id="2" replacement_effect="2">
      <TRIGGER value="OBJECT_TAKES_DAMAGE" pre_trigger="1" damage_type="all" simple_qualifier="objectyoucontrol" >
         return (TriggerObject():GetCardType():Test(CARD_TYPE_CREATURE))
      </TRIGGER>
      <RESOLUTION_TIME_ACTION>
         if TriggerObject() ~= nil then
            TriggerObject():AddCounters( MTG():PlusOnePlusOneCounters(), 1 )
         end
      </RESOLUTION_TIME_ACTION>
      <CLEANUP simple_cleanup="EndOfTurn" />
   </TRIGGERED_ABILITY>
This is for custom cards I'm making for personal use, so I completely understand if nobody has the time to help (and I probably shouldn't be posting this here, because it's not for the community wad, but I don't know where else to post it).
nivmizzet1
 
Posts: 617
Joined: 21 Mar 2013, 10:10
Has thanked: 100 times
Been thanked: 25 times

Re: Community Wad

Postby fallenangle » 03 Nov 2016, 17:12

nivmizzet,

Your card probably isn't querying because you didn't end the MAY tag with a /.

As for why you'd be drawing two cards instead of one or adding counters, I would guess that some other card is overriding the event and causing you to draw.

In the future, you should open threads of this kind in the "Programming Talk" section of the MTG: Duels of the Planeswalkers forums. That's the place to talk about all of your card programming questions.
fallenangle
 
Posts: 319
Joined: 20 Jul 2013, 02:31
Has thanked: 73 times
Been thanked: 41 times

Re: Community Wad

Postby thefiremind » 03 Nov 2016, 17:48

fallenangle wrote:Your card probably isn't querying because you didn't end the MAY tag with a /.
He didn't end the first part with a / because the block has contents.
<MAY /> is actually a shortcut for <MAY></MAY>, and since there's content in between, the only correct syntax is the latter. If there's an XML syntax mistake, the card doesn't even load and/or makes the game crash when entering a duel, so there's nothing to worry about.

The second ability makes you draw because you are still creating delayed trigger #1.

The fact that you draw twice could be because you have 2 CLEANUP blocks and the game probably doesn't read both so you get the current delayed trigger plus all the past ones who haven't run at least once. You should keep only 1 CLEANUP with both attributes in it.
< 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: Community Wad

Postby Xander9009 » 03 Nov 2016, 20:51

Regarding the P/T issues, those cards have been like that since they were first coded, and Riiak and I discussed them at some point, and they should work just fine as they are, and should stay that way. I'm not 100% certain why the cards are causing those errors on your end, but they don't on others', and so it's probably an issue with your setup somewhere. I'd suggest temporarily removing everything but the from your game folder and checking if it still happens. If so, get a fresh copy of the deck builder and test with that. (You can just put it into a new folder and run it; no need to overwrite your old installation.) If it still does, then it's the CW's issue and I'll track it down. If it doesn't, then it's either another mod/card/function file you've got or else your deck builder's settings or other files are somehow corrupted (depends on when the troubleshooting above fixed the issue).

If you'd like some assistance, I'm currently on the CW's IRC: https://sites.google.com/site/dotpcommunitywad/irc-chat (which I just discovered can show desktop notifications if you check out the settings.)
_______________________________
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

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 5 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 5 users online :: 0 registered, 0 hidden and 5 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 5 guests

Login Form