Page 19 of 253

Re: Community Wad

PostPosted: 25 Mar 2015, 15:31
by ShoGUN
ShoGUN wrote:[lua] [string "MEMORY_JAR_CW_212633_TITLE (RESOLUTION_TIME_ACTION)~0x0000037d"]:8: attempt to call global 'CW_ExileCardFaceDown' (a nil value)
Seems that the function has "vanished" from the CW releases lately. Looking into this...

...Or the function is CW_Exile_ExileCardFaceDown() actually nowadays. <-- Is this intentional or misnaming?

E.g. Necropotence uses that function as well and has the same issue now. Some other exile function in CW_EXILE.LOL seem to have multiple "exile" words in them too.

Re: Community Wad

PostPosted: 25 Mar 2015, 15:43
by Xander9009
Oh, dang it. I thought I caught all of those. I changed the name of the function so there is a standard naming convention. "CW_Exile" is the name of the function file containing the function and "ExileCardFaceDown" is the name of the function itself. I put them together into the name of every function to avoid any possibility of interference. With so many different people working on things in the same file, I wanted to avoid us getting in each others' way. This way, others can make CW functions and not worry about interfering with any functions others have made. (As long as they remember to update the CW_Constants.lol file.) It appears you didn't update the function call in the card itself, so I went ahead and did that. Thanks for catching that.

EDIT: Found a few others. However, I ran a scan of every card for that function and corrected all instances. Hopefully the issue will be fixed in the next wad pack.

Re: Community Wad

PostPosted: 25 Mar 2015, 15:58
by ShoGUN
Ok. 8 of them altogether I think.

Re: Community Wad

PostPosted: 25 Mar 2015, 21:28
by migookman
I'v having a problem with the 'Convert Cards' tool. When I used it today, it throws all of the card into the 'Cards with problems' folder. Has anything changed within the last 4 days that would be causing that?

Re: Community Wad

PostPosted: 25 Mar 2015, 21:33
by Xander9009
Cards with Problems is only actually used for cards with a messed up MultiverseID. Gatherer was down for maintenance. Maybe that was your problem. I haven't changed the file in the GD folder (though I did edit my local copy today).

Re: Community Wad

PostPosted: 25 Mar 2015, 23:55
by sweetLu
I found a way to setup the auto-syncer incorrectly. When I try to run the file now I do not get any prompts. Can you provide some information on manually setting up the configuration file?

I also managed to post this in the wrong thread. My bad.

Re: Community Wad

PostPosted: 26 Mar 2015, 02:30
by Xander9009
sweetLu wrote:I found a way to setup the auto-syncer incorrectly. When I try to run the file now I do not get any prompts. Can you provide some information on manually setting up the configuration file?

I also managed to post this in the wrong thread. My bad.
Well, if you just want to try doing it correctly, then just delete the ini file that it made and run it again. If the ini file is missing, it'll ask about the paths.

If you want to do it manually, open the ini file and you should find something like this
Code: Select all
[Settings]
Debug=
Log=
GoogleDriveCoreFolder=
GoogleDriveArtFolder=
GameFolder=
SyncCore=
SyncArt=
CheckDelay=
Each of those may or may not have text after them if it was done incorrectly (they should, and it shouldn't be possible they don't, but it doesn't matter). Just erase each line after the = and replace it with the correct setting.
Debug and Log should be 0 to avoid logging and debug messages.
GoogleDriveCoreFolder should be one of two paths. If you're syncing loose files, it should be the Google Drive folder containing the HEADER.XML file. If you're syncing the packed wad, it should be the Google Drive folder containing the core wad.
GoogleDriveArtFolder is exactly the same as the art, but it will be title "Community Wad Art" on Google Drive. It will contain either the loose folders for the art wads or it will directly contain the art wads themselves depending on whether you're syncing loose or packed files.
GameFolder is the path to the folder containing the game exe.
SyncCore should be 0, 1, or 2. 0: Don't sync. 1: Sync packed. 2: Sync loose.
SyncArt: Same.
CheckDelay is the number of seconds to wait between checking if your game folder is up-to-date.

Working example. (This is mine and works on my computer. It won't work on yours unless your google drive and game folder are setup exactly like mine.)
Code: Select all
[Settings]
Debug=0
Log=0
GoogleDriveCoreFolder=C:\Google Drive\Community Wad Folders\Community Loose Files\Community Wad Core\DATA_DLC_COMMUNITY_CORE\DATA_DLC_COMMUNITY_CORE
GoogleDriveArtFolder=C:\Google Drive\Community Wad Folders\Community Wad\Community Wad Art
GameFolder=C:\Games\Steam\SteamApps\common\Magic 2014
SyncCore=2
SyncArt=1
CheckDelay=3600
Note that I have it set to sync packed art files but loose core files. No debugging or logging (this can be toggled by right-clicking the icon). It waits 1 hour between checks.

Re: Community Wad

PostPosted: 26 Mar 2015, 06:37
by nivmizzet1
I have a few cards I'd like to get sorted out.

Magmaquake doesn't deal damage to planeswalkers.

Doubling Season only works with planeswalkers when they enter the battlefield, not when activating an ability.

Bonfire of the Damned -- doesn't play nice with manual mana (this would stand for all cards with miracle); could we implement something like the invisible upkeep token (it would need to activate after bonefire hits the hand, but before it checks for available mana)?


Does anybody know if the two problem interactions with planeswalkers can be circumvented?

Re: Community Wad

PostPosted: 26 Mar 2015, 09:24
by MasterXploder7
I have just found a problem with Cruel Feeding - Using it's strive ability i targeted multiple (3) cards with heroic: Agent of the Fates, Akroan Crusader, and Satyr Hoplite.

Agent of the Fates had 2 enchantments on it: Soul Channeling and Eternal Thirst

Re: Community Wad

PostPosted: 26 Mar 2015, 10:46
by RiiakShiNal
MasterXploder7 wrote:I have just found a problem with Cruel Feeding - Using it's strive ability i targeted multiple (3) cards with heroic: Agent of the Fates, Akroan Crusader, and Satyr Hoplite.

Agent of the Fates had 2 enchantments on it: Soul Channeling and Eternal Thirst
You have not listed a problem.

There is no problem in targeting multiple creatures with heroic (the spell should just cost more for each additional target). The spell should have cost {4} {B} {B} {B} to cast since you had 2 addition targets at {2} {B} each plus the original cost of {B}.

Because all 3 cards with heroic were targeted all 3 should have triggered. So each opponent should have sacrificed a creature, you should have gotten a 1/1 red Soldier with haste, Satyr Hoplite should have gotten a +1/+1 counter. Also due to the effects of Eternal Thirst Agent of the Fates should have gotten one +1/+1 counter for each creature that your opponent(s) had to sacrifice.

If one or more of the cards with heroic belonged to another player then their abilities should not have triggered (since their controller did not cast the spell).

Now if something did not happen properly then you might have a problem, but you have not yet described it (or anything like it).

Re: Community Wad

PostPosted: 26 Mar 2015, 12:23
by MasterXploder7
I apologize. in my tired stupor i forgot to mention the game crashed after the spell would resolve. (the timer thing successfully filled and it crashed when the card should go to the graveyard.) The post earlier is the situation description. again i apologize.

Re: Community Wad

PostPosted: 26 Mar 2015, 13:27
by Xander9009
nivmizzet1 wrote:I have a few cards I'd like to get sorted out.

Magmaquake doesn't deal damage to planeswalkers.

Doubling Season only works with planeswalkers when they enter the battlefield, not when activating an ability.

Bonfire of the Damned -- doesn't play nice with manual mana (this would stand for all cards with miracle); could we implement something like the invisible upkeep token (it would need to activate after bonefire hits the hand, but before it checks for available mana)?


Does anybody know if the two problem interactions with planeswalkers can be circumvented?
Magmaquake may or may not be fixed. I'll test if I get a chance. It was targeting basic snow enchantments (an old hack for planeswalkers, I think).

For Doubling Season, look here: http://gatherer.wizards.com/Pages/Card/ ... seid=89116
Its last rule listing explains that the counters added for loyalty abilities are costs not effects, and Doubling Season only affects effects. Thus, this is correct. HOWEVER, if you mean it doesn't work with Ajani's ability that places a counter, then you'll have be more specific and mention that in particular, because that one should be doubled.

For Bonfire of the Damned, I've been thinking about that kind of situation. I noticed it with, I think it might have been Aleshe, Who Smiles at Death. And yeah, a token would probably do the trick. There's already an upkeep time manager. It would reasonable to remake that into a general time managing token which would activate during different parts of the turn and after certain events if you have certain cards in certain places.

In other words, yeah. Add Bonfire of the Damned as a required card in an or filter on the _MANAGER_UPKEEP_TIME token in a new ability which triggers upon drawing a card for the first time in a turn. See how that works out. (Don't forget to make Bonfire of the Damned spawn the manager token and to register it.)

Re: Community Wad

PostPosted: 26 Mar 2015, 14:03
by nivmizzet1
Xander9009 wrote:For Doubling Season, look here: http://gatherer.wizards.com/Pages/Card/ ... seid=89116
Its last rule listing explains that the counters added for loyalty abilities are costs not effects, and Doubling Season only affects effects. Thus, this is correct. HOWEVER, if you mean it doesn't work with Ajani's ability that places a counter, then you'll have be more specific and mention that in particular, because that one [i]should[/i[ be doubled.
doh #-o

You were spot on about me meaning the adding of loyalty counters and not abilities that place counters. I wasn't aware of the rules so I was only going by what seemed logical.

Re: Community Wad

PostPosted: 26 Mar 2015, 15:22
by nivmizzet1
I think I have Bonfire working. I didn't know how to incorporate this into the current upkeep time manager to make a general time manager, so I just made a new draw time manager.

Bonfire
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
   <FILENAME text="BONFIRE_OF_THE_DAMNED_TM_CW_271095" />
   <CARDNAME text="BONFIRE_OF_THE_DAMNED" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bonfire of the Damned]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Bûcher des damnés]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Hoguera de los condenados]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Leuchtfeuer der Verdammten]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Falò dei Dannati]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[忌むべき者のかがり火]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[저주받은 자들의 불길]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Костер Проклятых]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fogueira dos Malditos]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="271095" />
   <ARTID value="CW271095" />
   <ARTIST name="James Paick" />
   <CASTING_COST cost="{X}{X}{R}" />
   <TYPE metaname="Sorcery" />
   <EXPANSION value="AVR" />
   <RARITY metaname="M" />
   <SPELL_ABILITY>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Bonfire of the Damned deals X damage to target player and each creature he or she controls.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Le Bûcher des damnés inflige X blessures au joueur ciblé et à chaque créature qu’il contrôle.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[La Hoguera de los condenados hace X puntos de daño al jugador objetivo y a cada criatura que controla.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Das Leuchtfeuer der Verdammten fügt einem Spieler deiner Wahl und allen Kreaturen, die er kontrolliert, X Schadenspunkte zu.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Il Falò dei Dannati infligge X danni a un giocatore bersaglio e a ogni creatura che controlla.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[プレイヤー1人を対象とする。忌むべき者のかがり火はそのプレイヤーとそのプレイヤーがコントロールする各クリーチャーにそれぞれX点のダメージを与える。]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[플레이어 한 명을 목표로 정한다. 저주받은 자들의 불길은 그 플레이어와 그 플레이어가 조종하는 각 생물에게 피해 X점씩을 입힌다.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Костер Проклятых наносит Х повреждений целевому игроку и каждому существу под его контролем.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Fogueira dos Malditos causa X pontos de dano ao jogador alvo e a cada criatura que ele controle.]]></LOCALISED_TEXT>
      <TARGET tag="CARD_QUERY_CHOOSE_PLAYER_DEAL_DAMAGE" definition="0" compartment="0" count="1" />
      <TARGET_DEFINITION id="0">
         local filter = ClearFilter()
         filter:SetFilterType(FILTER_TYPE_PLAYERS)
      </TARGET_DEFINITION>
      <FILTER filter_id="1">
         local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
         local filter = ClearFilter()
         filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
         filter:Add(FE_CONTROLLER, OP_IS, target_player)
      </FILTER>
      <RESOLUTION_TIME_ACTION>
         local target_creature = EffectDC():Get_Targets(0):Get_CardPtr(0)
         local target_player = EffectDC():Get_Targets(0):Get_PlayerPtr(0)
         if target_creature ~= nil then
            EffectSourceLKI():DealDamageTo( GetEffectX(), target_creature )
         elseif target_player ~= nil then
            EffectSourceLKI():DealDamageTo( GetEffectX(), target_player )
         end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION filter_id="1">
         if FilteredPlayer() ~= nil then
            EffectSourceLKI():DealDamageTo( GetEffectX(), FilteredPlayer() )
         elseif FilteredCard() ~= nil then
            EffectSourceLKI():DealDamageTo( GetEffectX(), FilteredCard() )
         end
      </RESOLUTION_TIME_ACTION>
      <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />
      <SFX text="GLOBAL_MAGMA_PLAY" />
   </SPELL_ABILITY>
   <TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_HAND">
      <TRIGGER value="DREW_CARD" simple_qualifier="controller" >
         local interrogation = MTG():ClearInterrogationQuery()
         interrogation:SetPlayer( EffectController() )
         return interrogation:Count(INTERROGATE_CARDS_DRAWN, INTERROGATE_THIS_TURN, 2) == 1
      </TRIGGER>
      <RESOLUTION_TIME_ACTION>
         UTM_CreateUniqueToken( "_MANAGER_DRAW_TIME", "_MANAGER_DRAW_TIME", EffectController() )
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
   <TOKEN_REGISTRATION reservation="1" type="_MANAGER_DRAW_TIME" />
   <TRIGGERED_ABILITY qualifier="Alternate" active_zone="ZONE_HAND">
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Miracle {X}{R}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Miracle {X}{R}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Milagro {X}{R}.]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Mirakulum {X}{R}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Miracolo {X}{R}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[奇跡 {X}{R}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[기적 {X}{R}}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Чудо {X}{R}]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Milagre {X}{R}]]></LOCALISED_TEXT>
      <TRIGGER value="DREW_CARD" simple_qualifier="self">
         local interrogation = MTG():ClearInterrogationQuery()
         interrogation:SetPlayer( EffectController() )
         return interrogation:Count(INTERROGATE_CARDS_DRAWN, INTERROGATE_THIS_TURN, 2) == 1
      </TRIGGER>
      <RESOLUTION_TIME_ACTION>
         local controller = EffectController()
         if controller:CanCastSpellUsingResourceCost( TriggerObject(), 1 ) then
            controller:BeginNewMultipleChoice()
               controller:AddMultipleChoiceAnswer("UI_CONDITIONAL_QUESTION_YES")
               controller:AddMultipleChoiceAnswer("UI_CONDITIONAL_QUESTION_NO")
            controller:AskMultipleChoiceQuestion( "TFM_CARD_QUERY_MC_MIRACLE_QUESTION", TriggerObject() )
         end
      </RESOLUTION_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
         if TriggerObject() ~= nil and EffectController():CanCastSpellUsingResourceCost( TriggerObject(), 1 ) then
            if EffectController():GetMultipleChoiceResult() == 0 then
               EffectController():CastSpellUsingResourceCost( TriggerObject(), 1 )
            end
         end
      </RESOLUTION_TIME_ACTION>
   </TRIGGERED_ABILITY>
   <UTILITY_ABILITY resource_id="1">
      <COST mana_cost="{X}{R}" type="Mana" />
   </UTILITY_ABILITY>
   <HELP title="MORE_INFO_TITLE_MIRACLE" body="MORE_INFO_BODY_MIRACLE" zone="ZONE_ANY" />
   <AI_BASE_SCORE score="1800" zone="ZONE_HAND" />
   <AUTHOR><![CDATA[thefiremind]]></AUTHOR>
   <EDITORS><![CDATA[thefiremind]]></EDITORS>
   <DATE><![CDATA[2-10-14]]></DATE>
</CARD_V2>
Time manager token:
Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
   <FILENAME text="_MANAGER_DRAW_TIME" />
   <CARDNAME text="_MANAGER_DRAW_TIME" />
   <TITLE>
      <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Upkeep]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Entretien]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Mantenimiento]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Versorgungssegments]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Mantenimento]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Upkeep]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Upkeep]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Upkeep]]></LOCALISED_TEXT>
      <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Manutenção]]></LOCALISED_TEXT>
   </TITLE>
   <MULTIVERSEID value="991800002" />
   <ARTID value="0" />
   <ARTIST name="Nobody" />
   <CASTING_COST cost="" />
   <TYPE metaname="" />
   <EXPANSION value="DPI" />
   <RARITY metaname="T" />
   <TOKEN />
   <!-- Invisible token protection -->
   <STATIC_ABILITY>
      <CONTINUOUS_ACTION layer="8">
         if EffectSource() ~= nil then
            local characteristics = EffectSource():GetCurrentCharacteristics()
            characteristics:Bool_Set(CHARACTERISTIC_SHROUD, 1)
            characteristics:Bool_Set(CHARACTERISTIC_INDESTRUCTIBLE, 1)
            characteristics:AI_SetWorthless()
         end
      </CONTINUOUS_ACTION>
      <CONTINUOUS_ACTION layer="8">
         if EffectSource() ~= nil then
            local filter = ClearFilter()
            filter:Add(FE_CMC, OP_GREATER_THAN_OR_EQUAL_TO, 0)
            EffectSource():Protection()
         end
      </CONTINUOUS_ACTION>
   </STATIC_ABILITY>
   <!-- Upkeep time window -->
   <TRIGGERED_ABILITY priority="-20">
      <TRIGGER value="DREW_CARD" simple_qualifier="controller" >
         local interrogation = MTG():ClearInterrogationQuery()
         interrogation:SetPlayer( EffectController() )
         return interrogation:Count(INTERROGATE_CARDS_DRAWN, INTERROGATE_THIS_TURN, 2) == 1
      </TRIGGER>
      <PLAY_TIME_ACTION>
         local player = TriggerPlayer()
         if UTM_NeedsUpkeep(player) then
            EffectDC():Set_Int(0, 1)
            player:BeginNewMultipleChoice()
               player:AddMultipleChoiceAnswer( "UI_CONDITIONAL_QUESTION_YES" )
               player:AddMultipleChoiceAnswer( "UI_CONDITIONAL_QUESTION_NO" )
            player:AskMultipleChoiceQuestion( "UTM_CARD_QUERY_DO_YOU_NEED_UPKEEP_TIME" )
         end
      </PLAY_TIME_ACTION>
      <PLAY_TIME_ACTION>
         if EffectDC():Get_Int(0) == 1 then
            EffectDC():Set_Int( 1, 1-TriggerPlayer():GetMultipleChoiceResult() )
         end
      </PLAY_TIME_ACTION>
      <AUTO_SKIP>
         return EffectDC():Get_Int(1) ~= 1
      </AUTO_SKIP>
   </TRIGGERED_ABILITY>
   <AI_BASE_SCORE score="-5000" zone="ZONE_BATTLEFIELD" />
</CARD_V2>

Re: Community Wad

PostPosted: 26 Mar 2015, 15:32
by Xander9009
To incorporate it and avoid having yet another manager that does the same thing as the first, just make a completely new triggered ability and don't mess with the one that's already there.

As for triggering multiple times, that's because you messed up on the line where you create the unique token. You put _MANAGER_UPKEEP_TIME_TIME. Because the name is wrong, the card makes a new manager every turn (it uses the name to check if you already have one, but with the wrong name, it always thinks you have none).