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




Community Wad
Moderator: CCGHQ Admins
Re: Community Wad
by Splinterverse » 18 Oct 2016, 11:16
That explains it. Lol. Glad I didn't go through the whole alphabet.Xander9009 wrote:You're missing DATA_DLC_CW_ART_MAIN_17.wad and DATA_DLC_CW_ART_MAIN_18.wad.

That would be amazing. If there's anything I can do to help with it, let me know.Xander9009 wrote:It doesn't currently, and I wasn't originally planning to, but I'll see how difficult it would be. If it's a simple task, then sure, I'll include the personality used.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
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
by Splinterverse2 » 18 Oct 2016, 13:30
When you start a match, be it 2HG or F4A, are players assigned a unique id that remains the same throughout the match? I guess it would be their pointer?
I ask because I'd like to know how I could for each my way through all players and flag the ones that meet a filter condition. Then, at a later point in the same card, I'd like to filter to include only those players that met the previous condition. This is all for a card I hope to work on on Thursday.
I want to basically target a creature a player controls but only if he or she meets another condition, such as controlling a particular land type.
I ask because I'd like to know how I could for each my way through all players and flag the ones that meet a filter condition. Then, at a later point in the same card, I'd like to filter to include only those players that met the previous condition. This is all for a card I hope to work on on Thursday.
I want to basically target a creature a player controls but only if he or she meets another condition, such as controlling a particular land type.
- Splinterverse2
- Posts: 52
- Joined: 20 Sep 2016, 13:52
- Has thanked: 13 times
- Been thanked: 0 time
Re: Community Wad
by Xander9009 » 18 Oct 2016, 14:00
oPlayer:GetGlobalIndex() should remain the same throughout the game and is unique from player to player. However, there's no way to turn this index back into the player pointer directly. To achieve such an effect, usually something like this is done.Splinterverse2 wrote:When you start a match, be it 2HG or F4A, are players assigned a unique id that remains the same throughout the match? I guess it would be their pointer?
I ask because I'd like to know how I could for each my way through all players and flag the ones that meet a filter condition. Then, at a later point in the same card, I'd like to filter to include only those players that met the previous condition. This is all for a card I hope to work on on Thursday.
I want to basically target a creature a player controls but only if he or she meets another condition, such as controlling a particular land type.
- Code: Select all
local oStorageChest = EffectDC():Make_Chest(1)
local iNumPlayers = MTG():GetNumberOfStartingPlayers()
for i=0,iNumPlayers-1 do
local oPlayer = MTG():GetNthStartingPlayer(i)
if oPlayer ~= nil and oPlayer:MeetsSomeOtherCondition then
oStorageChest:Set_Int(i, 1)
end
end
-- Later on...
local oStorageChest = EffectDC():Get_Chest(1)
for i=0,3 do
if oStorageChest:Get_Int(i) == 1 then
local oPlayer = MTG():GetNthStartingPlayer(i)
if oPlayer ~= nil then
-- oPlayer matched the criteria earlier.
end
end
end
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
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
by Xander9009 » 18 Oct 2016, 18:47
For those interested, here's how it looks so far.
https://sites.google.com/site/rlhgoogtest/decks
Note that it's currently in the process of updating, and it'll probably take quite awhile to manage it, since I erased everything to make it start fresh. It took me about an hour and a half when I was telling it to run repeatedly. It should take a little less than that now, but probably not by much. You can still have a look at the pages as they're created.
https://sites.google.com/site/rlhgoogtest/decks
Note that it's currently in the process of updating, and it'll probably take quite awhile to manage it, since I erased everything to make it start fresh. It took me about an hour and a half when I was telling it to run repeatedly. It should take a little less than that now, but probably not by much. You can still have a look at the pages as they're created.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
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
by Splinterverse » 18 Oct 2016, 23:57
It looks like Al-abara's Carpet is preventing all player damage rather than just from "attacking creatures without flying".
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
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
by migookman » 19 Oct 2016, 00:50
This may work better:
- Code: Select all
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{5}, {T}: Prevent all damage that would be dealt to you this turn by attacking creatures without flying.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{5}, {T}: Prevent all damage that would be dealt to you this turn by attacking creatures without flying.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{5}, {T}: Prevent all damage that would be dealt to you this turn by attacking creatures without flying.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{5}, {T}: Prevent all damage that would be dealt to you this turn by attacking creatures without flying.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[<span class=“missing”>(Missing!)</span>]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{5}, {T}: Prevent all damage that would be dealt to you this turn by attacking creatures without flying.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{5}, {T}: Prevent all damage that would be dealt to you this turn by attacking creatures without flying.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{5}, {T}: Prevent all damage that would be dealt to you this turn by attacking creatures without flying.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{5}, {T}: Prevent all damage that would be dealt to you this turn by attacking creatures without flying.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[{5}, {T}: Prevent all damage that would be dealt to you this turn by attacking creatures without flying.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[{5}, {T}: Prevent all damage that would be dealt to you this turn by attacking creatures without flying.]]></LOCALISED_TEXT>
<COST mana_cost="{5}" type="Mana" />
<COST type="TapSelf" />
<FILTER filter_id="0">
local filter = ClearFilter()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add( FE_CHARACTERISTIC, OP_NOT, CHARACTERISTIC_FLYING )
filter:Add( FE_IS_ATTACKING, true )
</FILTER>
<RESOLUTION_TIME_ACTION>
if FilteredCard() ~= nil then
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, target)
delayDC:Protect_CardPtr(0)
MTG():CreateDelayedTrigger(1, delayDC)
end
</RESOLUTION_TIME_ACTION>
<SFX text="TARGET_SUN_PLAY" />
<AI_AVAILABILITY window_step="upkeep" type="window" />
<AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
<AI_AVAILABILITY window_step="declare_blockers" type="window" />
<AI_AVAILABILITY window_step="main_2" window_turn="my_turn" type="window" />
<AI_AVAILABILITY window_step="end_of_turn" type="window" />
<AI_AVAILABILITY window_step="end_of_turn" window_turn="their_turn" type="window" />
<AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
<AI_AVAILABILITY type="in_response" response_source="1" />
<AI_AVAILABILITY type="in_response" response_target="1" />
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="1" replacement_effect="1">
<TRIGGER value="SOURCE_DEALS_DAMAGE_TO_PLAYER" pre_trigger="1" damage_type="all">
return SecondaryPlayer() == EffectController() and TriggerObject() == EffectDC():Get_CardPtr(0)
</TRIGGER>
<CLEANUP simple_cleanup="EndOfTurn" />
<RESOLUTION_TIME_ACTION>
Damage():PreventAll()
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Re: Community Wad
by migookman » 19 Oct 2016, 01:27
Cards coded and uploaded today:
Psychic Spear
Pulse of the Forge
Pulse of the Grid
Purelace
Putrid Cyclops
Yawgmoth's Agenda (only changed a few things. Left Splinterverse's name in Author)
Armor of Thorns
Lightning Reflexes
Mystic Veil
Parapet
Relic Ward
Soar
Spider Climb
Ward of Lights
Zealous Inquisitor
Zombie Boa
Xiahou Dun, the One-Eyed
Yellow Scarves Cavalry
Yellow Scarves General
Yuan Shao, the Indecisive
Zuo Ci, the Mocking Sage
Problem Cards
Yare (not enough targets error. Doesn't allow me to cast it.)
Psychic Spear
Pulse of the Forge
Pulse of the Grid
Purelace
Putrid Cyclops
Yawgmoth's Agenda (only changed a few things. Left Splinterverse's name in Author)
Armor of Thorns
Lightning Reflexes
Mystic Veil
Parapet
Relic Ward
Soar
Spider Climb
Ward of Lights
Zealous Inquisitor
Zombie Boa
Xiahou Dun, the One-Eyed
Yellow Scarves Cavalry
Yellow Scarves General
Yuan Shao, the Indecisive
Zuo Ci, the Mocking Sage
Problem Cards
Yare (not enough targets error. Doesn't allow me to cast it.)
- Code: Select all
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Target creature defending player controls gets +3/+0 until end of turn. That creature can block up to two additional creatures this turn.]]></LOCALISED_TEXT>
<TARGET tag="CARD_QUERY_CHOOSE_CREATURE_TO_GET_3_0" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
local player = SecondaryPlayer()
filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
filter:Add(FE_CONTROLLER, OP_IS, player )
</TARGET_DEFINITION>
<CONTINUOUS_ACTION layer="6">
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
local characteristics = EffectSource():GetCurrentCharacteristics()
characteristics:CanBlockAdditionalCreature()
end
</CONTINUOUS_ACTION>
<CONTINUOUS_ACTION layer="7C">
local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
if target ~= nil then
local characteristics = target:GetCurrentCharacteristics()
characteristics:Power_Add( 3 )
characteristics:Toughness_Add( 0 )
end
</CONTINUOUS_ACTION>
<DURATION simple_duration="UntilEOT" />
</SPELL_ABILITY>
- Code: Select all
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever Ydwen Efreet blocks, flip a coin. If you lose the flip, remove Ydwen Efreet from combat and it can’t block this turn. Creatures it was blocking that had become blocked by only Ydwen Efreet this combat become unblocked.]]></LOCALISED_TEXT>
<TRIGGER value="BLOCKING" simple_qualifier="self" />
<RESOLUTION_TIME_ACTION>
EffectController():FlipCoin()
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
if EffectController():GetFlipResult() == COIN_FLIP_LOSE then
CW_General_RemoveFromCombat()
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
- Code: Select all
<TRIGGERED_ABILITY linked_ability_group="1">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Whenever you cast an instant or sorcery spell that targets only Zada, Hedron Grinder, copy that spell for each other creature you control that the spell could target. Each copy targets a different one of those creatures.]]></LOCALISED_TEXT>
<TRIGGER value="SPELL_PLAYED" simple_qualifier="objectyoucontrol">
if LinkedDC():Get_Int(0) == 1 then
LinkedDC():Set_Int(0, 0)
return true
end
return false
</TRIGGER>
<TARGET tag="CARD_QUERY_CHOOSE_SPELL_TO_COPY" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetZone( ZONE_STACK )
local subfilter = filter:AddSubFilter_Or()
subfilter:Add (FE_TYPE, OP_IS, CARD_TYPE_INSTANT)
subfilter:Add (FE_TYPE, OP_IS, CARD_TYPE_SORCERY)
</TARGET_DEFINITION>
<RESOLUTION_TIME_ACTION>
local target = EffectDC():Get_CardPtr(0)
if target ~= nil then
local copy = EffectController():CopySpell( target )
EffectController():ChooseNewTargets( copy )
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
- Code: Select all
<ACTIVATED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{1}{W}: The next 1 damage that would be dealt to Zhalfirin Crusader this turn is dealt to target creature or player instead.]]></LOCALISED_TEXT>
<COST mana_cost="{1}{W}" type="Mana" />
<TARGET tag="CARD_QUERY_CHOOSE_TARGET_TO_REDIRECT_DAMAGE" definition="0" compartment="0" count="1" />
<TARGET_DEFINITION id="0">
local filter = ClearFilter()
filter:SetFilterType( FILTER_TYPE_CARDS + FILTER_TYPE_PLAYERS )
filter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
</TARGET_DEFINITION>
<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
if target_player ~= nil then
local delayDC = EffectDC():Make_Chest(1)
delayDC:Set_CardPtr(0, target)
MTG():CreateDelayedTrigger(25, delayDC)
end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY resource_id="25" replacement_effect="1">
<TRIGGER value="SOURCE_DEALS_DAMAGE_TO_OBJECT" pre_trigger="1" damage_type="all">
local TargetCard = EffectDC():Get_CardPtr(0)
if TargetCard ~= nil then
return TargetCard:GetCardType():Test(CARD_TYPE_CREATURE) and SecondaryObject() == EffectSource()
else
return false
end
</TRIGGER>
<CLEANUP simple_cleanup="EndOfTurn" />
<RESOLUTION_TIME_ACTION>
local TargetCard = EffectDC():Get_CardPtr(0)
if TargetCard ~= nil then
Damage():RedirectAmountTo(1, TargetCard )
end
</RESOLUTION_TIME_ACTION>
<SFX text="GLOBAL_PREVENT_PLAY" />
</TRIGGERED_ABILITY>
- Code: Select all
<STATIC_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Players play with their hands revealed.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Les joueurs jouent avec leurs mains révélées.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Los jugadores juegan mostrando sus manos.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Alle Spieler spielen mit offenen Karten.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[I giocatori giocano a carte scoperte.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[プレイヤーは手札を公開したままプレイする。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[<span class=“missing”>(Missing!)</span>]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Игроки играют с открытыми руками.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Os jogadores jogam com os cards de suas mãos revelados.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[牌手以展示手牌的方式进行游戏。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[<span class=“missing”>(Missing!)</span>]]></LOCALISED_TEXT>
<CONTINUOUS_ACTION layer="1">
local source = EffectSource()
if source ~= nil then
source:GetCurrentCharacteristics():GrantAbility(33)
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<ACTIVATED_ABILITY resource_id="33">
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Let the player reveal his or her hand.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Let the player reveal his or her hand.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Let the player reveal his or her hand.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Let the player reveal his or her hand.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Let the player reveal his or her hand.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[Let the player reveal his or her hand.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Let the player reveal his or her hand.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Let the player reveal his or her hand.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Let the player reveal his or her hand.]]></LOCALISED_TEXT>
<COST mana_cost="{0}" type="Mana" />
<AVAILABILITY any_player="1">
return Object():GetPlayer() ~= (RSN_ObjectDC():Get_Int(0)==1)
</AVAILABILITY>
<RESOLUTION_TIME_ACTION>
local player = EffectSource():GetOwner()
if player ~= nil then
player:RevealHand()
end
if EffectController():IsAI() then
RSN_ObjectDC():Set_Int(0, 0)
end
</RESOLUTION_TIME_ACTION>
</ACTIVATED_ABILITY>
<TRIGGERED_ABILITY>
<TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_BATTLEFIELD" />
<RESOLUTION_TIME_ACTION>
RSN_ObjectDC():Set_Int(0, 1)
</RESOLUTION_TIME_ACTION>
<AUTO_SKIP always="1" />
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[If a player would draw a card, he or she reveals it instead. Then any other player may pay 2 life. If a player does, put that card into its owner’s graveyard. Otherwise, that player draws a card.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Si un joueur devait piocher une carte, il la révèle à la place. N’importe quel autre joueur peut ensuite payer 2 points de vie. Si c’est le cas, mettez cette carte dans le cimetière de son propriétaire. Sinon, ce joueur pioche la carte.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Si un jugador fuera a robar una carta, en vez de eso, la muestra. Luego cualquier otro jugador puede pagar 2 vidas. Si algún jugador lo hace, pon esa carta en el cementerio de su propietario. De lo contrario, el jugador roba la carta.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Falls ein Spieler eine Karte ziehen würde, zeigt er sie stattdessen offen vor. Dann kann jeder andere Spieler 2 Lebenspunkte bezahlen. Falls ein Spieler dies tut, lege die Karte auf den Friedhof ihres Besitzers. Sonst zieht dieser Spieler die Karte.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Se un giocatore sta per pescare una carta, invece la rivela. Poi ogni altro giocatore può pagare 2 punti vita. Se un giocatore paga, metti quella carta nel cimitero del suo proprietario. Altrimenti, quel giocatore pesca la carta.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[いずれかのプレイヤーがカードを1枚引く場合、代わりにそのプレイヤーはそれを公開する。 その後、他のいずれかのプレイヤーは2点のライフを支払ってもよい。 いずれかのプレイヤーがそうした場合、そのカードをオーナーの墓地に置く。 そうでない場合、そのプレイヤーはそのカードを引く。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[If a player would draw a card, he or she reveals it instead. Then any other player may pay 2 life. If a player does, put that card into its owner’s graveyard. Otherwise, that player draws a card.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Если игрок берет карту, он открывает ее. Затем любой из игроков может заплатить 2 пункта жизни. Если он это делает, карта помещается на кладбище владельца. В противном случае игрок берет эту карту.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Se um jogador fosse comprar um card, ele próprio o revela em vez disso. Depois, qualquer outro jogador pode pagar 2 pontos de vida. Se um jogador o fizer, coloque aquele card no cemitério de seu dono. Se não, aquele jogador compra o card.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-CN"><![CDATA[如果任何牌手将要抓一张牌,则他改为展示该牌。 然后其它任何牌手可以支付2点生命。 若有牌手如此做,则将该牌置入其拥有者的坟墓场。 若无人支付,则该牌手抓该张牌。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="zh-HK"><![CDATA[If a player would draw a card, he or she reveals it instead. Then any other player may pay 2 life. If a player does, put that card into its owner’s graveyard. Otherwise, that player draws a card.]]></LOCALISED_TEXT>
<TRIGGER value="DREW_CARD" pre_trigger="1">
MTG():OverrideEvent()
return true
</TRIGGER>
<RESOLUTION_TIME_ACTION>
RSN_ObjectDC():Set_Int(0, 1)
local card = EffectController():Library_GetTop()
if card ~= nil then
card:Reveal()
EffectDC():Set_CardPtr( 0, card )
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION repeating="1">
local n = MTG():GetActionRepCount()
local parity = n%2
if parity == 0 then
local player = MTG():GetNthPlayer(n/2)
if player ~= nil then
if player:GetLifeTotal() > 4 then
player:BeginNewMultipleChoice()
player:AddMultipleChoiceAnswer( "CARD_QUERY_DO_NOTHING" )
player:AddMultipleChoiceAnswer( "CARD_QUERY_PAY_2_LIFE" )
player:AskMultipleChoiceQuestion( "CARD_QUERY_DASH_HOPES_QUESTION" )
end
return true
else
return false
end
elseif parity == 1 then
local player = MTG():GetNthPlayer((n-1)/2)
if player:GetLifeTotal() > 4 then
EffectDC():Set_PlayerPtr(0, player)
return false
end
return true
end
</RESOLUTION_TIME_ACTION>
<RESOLUTION_TIME_ACTION>
local player = EffectDC():Get_PlayerPtr(0)
local result = player:GetMultipleChoiceResult()
if result == 1 then
if player ~= nil then
player:LoseLife(2)
if EffectSource() ~= nil then
EffectSource():PutInGraveyard()
else
EffectSource():PutInHand()
end
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
Re: Community Wad
by Xander9009 » 19 Oct 2016, 04:33
The tracker has been working well for over a week now, so I added a link to the OP. It's up near the top.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
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
by Xander9009 » 19 Oct 2016, 11:30
Yare: SecondaryPlayer() only works in triggered abilities. Outside of a triggered ability, you'll need to make a filter for all attacking creatures, and then iterate through those creatures and check which player each is attacking.
Alternatively, make a for loop, and check each player for at least one creature attacking them with FE_PLAYER_ATTACKED.
----
Ydwen Efreet: Not sure why that bit isn't working, but there's no way to make the creatures it was blocking become unblocked. This actually makes Ydwen Efreet more powerful than it should be, since there's a chance it'll be removed from combat with no damage, but still successfully have blocked the creature. I can look into the CW_General_RemoveFromCombat() function later.
----
Zada, Hedron Grinder: You can't. This is the same basic effect as Mirrorwing Dragon, and it requires my protection functions to be distributed, which they haven't been yet.
The issue with not copying, though, is because (at least in part, if not in entirely) of your target retrieval.
local target = EffectDC():Get_CardPtr(0) -> local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
----
Zhalfirin Crusader: Your first RTA has two if's but only one end.
Line 16 uses the variable target, but 'target' was never defined.
You need to check if target_player is valid. If it is, store it in a delaydc with Set_CardPtr, and make a delayed trigger.
If target_player is nil, then check if target_creature is valid. If it is, store it in a delaydc with Set_PLayerPtr, and make the same delayed trigger.
The delayed trigger ability needs two <TRIGGER...>...</TRIGGER> blocks. One should have value="SOUCE_DEALS_DAMAGE_TO_PLAYER" and should check for the player value with Get_PlayerPtr. The other should be the one you already have.
----
Zur's Wierding: I see a few issues.
1: When a player activates the card, it's unlikely they're doing so in order to reveal their own hand. They're probably wanting to look at others' hands. Whenever it's activated, it should cycle through all players and reveal each hand in turn.
Also, for the activated ability, give these.
2: Line 32 makes no sense.
But really it just needs to check if EffectSource() is nil. The player isn't even really all that relevant for the availability.
3: In the repeating RTA, the card in question should be in the multiple choice dialogue so players can see it while deciding. So, grab
local card = EffectDC():Get_CardPtr(0)
Make sure it's not nil, too, since if it is, they shouldn't even be asked.
4: Also in the repeating RTA, under parity 1, it checks if the current player has more than 4 life. If they do, store their pointer (overwriting the stored card), and stop running. This should be checking if the multiple choice result is 0 and they have 2 or more life (not more than 2). It also shouldn't overwrite the card pointer. The player pointer should go into a new register.
5: In the final RTA, it makes sure they chose to pay 2 life. If they didn't choose that, then nothing else happens. This should check if the player is nil. If it's not, then did they choose to pay? If they did, make them pay and mill the stored card. If they didn't choose to pay or if the player was nil, then TriggerPlayer():DrawCards(1). Don't use PutIntoHand(). It should fire the 'drew-card' trigger, because the card says they draw a card.
6: Also in the final RTA, it's EffectSource() into the graveyard or hand. EffectSource() is Zur's Wierding. No reason for that to go anywhere.
7: Also in the final RTA and also in the TRIGGER, it should use LinkedDC():Int(0) to make sure each card is only questioned once. In the trigger, only fire if LinkedDC():Get_Int(0) == 0. Still in the trigger, before returning true, set that int to 1. In the final RTA (or a new one after that), set the int back to 0. Don't forget to mark the ability as linked_ability_group="1".
Alternatively, make a for loop, and check each player for at least one creature attacking them with FE_PLAYER_ATTACKED.
- Code: Select all
local oPlayersAttacked = {}
local iNumPlayers = MTG():GetNumberOfPlayers()
for i=0,iNumPlayers-1 do
local oPlayer = MTG():GetNthPlayer(i)
if oPlayer ~= nil then
local oFilter = ClearFilter()
oFilter:Add(FE_PLAYER_ATTACKED, OP_IS, oPlayer)
if oFilter:CountStopAt(1) == 1 then
CW_Tables_Add(oPlayersAttacked, oPlayer)
end
end
end
local oFilter = ClearFilter()
oFilter:Add(FE_TYPE, OP_IS, CARD_TYPE_CREATURE)
for i=0,#oPlayersAttacked-1 do
oFilter:Add(FE_CONTROLLER, OP_IS, oPlayersAttacked[i])
end
----
Ydwen Efreet: Not sure why that bit isn't working, but there's no way to make the creatures it was blocking become unblocked. This actually makes Ydwen Efreet more powerful than it should be, since there's a chance it'll be removed from combat with no damage, but still successfully have blocked the creature. I can look into the CW_General_RemoveFromCombat() function later.
----
Zada, Hedron Grinder: You can't. This is the same basic effect as Mirrorwing Dragon, and it requires my protection functions to be distributed, which they haven't been yet.
The issue with not copying, though, is because (at least in part, if not in entirely) of your target retrieval.
local target = EffectDC():Get_CardPtr(0) -> local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
----
Zhalfirin Crusader: Your first RTA has two if's but only one end.
Line 16 uses the variable target, but 'target' was never defined.
You need to check if target_player is valid. If it is, store it in a delaydc with Set_CardPtr, and make a delayed trigger.
If target_player is nil, then check if target_creature is valid. If it is, store it in a delaydc with Set_PLayerPtr, and make the same delayed trigger.
The delayed trigger ability needs two <TRIGGER...>...</TRIGGER> blocks. One should have value="SOUCE_DEALS_DAMAGE_TO_PLAYER" and should check for the player value with Get_PlayerPtr. The other should be the one you already have.
----
Zur's Wierding: I see a few issues.
1: When a player activates the card, it's unlikely they're doing so in order to reveal their own hand. They're probably wanting to look at others' hands. Whenever it's activated, it should cycle through all players and reveal each hand in turn.
Also, for the activated ability, give these.
- Code: Select all
--At beginning of ability.
<PLAY_TIME_ACTION>
RSN_MarkManaAbilityStart()
</PLAY_TIME_ACTION>
--At end of ability.
<RESOLUTION_TIME_ACTION>
RSN_MarkManaAbilityEnd()
</RESOLUTION_TIME_ACTION>
2: Line 32 makes no sense.
- Code: Select all
return Object():GetPlayer() ~= (RSN_ObjectDC():Get_Int(0)==1)
But really it just needs to check if EffectSource() is nil. The player isn't even really all that relevant for the availability.
3: In the repeating RTA, the card in question should be in the multiple choice dialogue so players can see it while deciding. So, grab
local card = EffectDC():Get_CardPtr(0)
Make sure it's not nil, too, since if it is, they shouldn't even be asked.
4: Also in the repeating RTA, under parity 1, it checks if the current player has more than 4 life. If they do, store their pointer (overwriting the stored card), and stop running. This should be checking if the multiple choice result is 0 and they have 2 or more life (not more than 2). It also shouldn't overwrite the card pointer. The player pointer should go into a new register.
5: In the final RTA, it makes sure they chose to pay 2 life. If they didn't choose that, then nothing else happens. This should check if the player is nil. If it's not, then did they choose to pay? If they did, make them pay and mill the stored card. If they didn't choose to pay or if the player was nil, then TriggerPlayer():DrawCards(1). Don't use PutIntoHand(). It should fire the 'drew-card' trigger, because the card says they draw a card.
6: Also in the final RTA, it's EffectSource() into the graveyard or hand. EffectSource() is Zur's Wierding. No reason for that to go anywhere.
7: Also in the final RTA and also in the TRIGGER, it should use LinkedDC():Int(0) to make sure each card is only questioned once. In the trigger, only fire if LinkedDC():Get_Int(0) == 0. Still in the trigger, before returning true, set that int to 1. In the final RTA (or a new one after that), set the int back to 0. Don't forget to mark the ability as linked_ability_group="1".
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
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
by Splinterverse2 » 19 Oct 2016, 12:12
migookman, glad you got Yawgmoth's Agenda working. It is a fun card. The other cards you coded look fun too. Good work!
Oh and don't worry about author on any of the ones I shelved. I don't care about credit, just getting the cards coded, so you are welcome to remove my name on any of them if you want.
I am excited to get back to coding more tomorrow. I was able to code 10 last night with a little bit of time I had, but I haven't tested them at all. Tomorrow.
Oh and don't worry about author on any of the ones I shelved. I don't care about credit, just getting the cards coded, so you are welcome to remove my name on any of them if you want.
I am excited to get back to coding more tomorrow. I was able to code 10 last night with a little bit of time I had, but I haven't tested them at all. Tomorrow.

- Splinterverse2
- Posts: 52
- Joined: 20 Sep 2016, 13:52
- Has thanked: 13 times
- Been thanked: 0 time
Re: Community Wad
by tmxk2012917 » 20 Oct 2016, 01:23
uploaded new image of Blight Herder given that the size of current one seems not correct
- tmxk2012917
- Posts: 164
- Joined: 15 Mar 2015, 09:52
- Has thanked: 20 times
- Been thanked: 12 times
Re: Community Wad
by nivmizzet1 » 20 Oct 2016, 12:38
Cavern of Souls doesn't let you spend the mana created until all other mana options are depleted. This kind of screws it up, especially if you want to leave mana open to play instants in the opponents turn.
______________________________________
my DOTP 2014 Main mod page - my DOTP 2014 OP Decks mod page - Community WAD
my DOTP 2014 Main mod page - my DOTP 2014 OP Decks mod page - Community WAD
- nivmizzet1
- Posts: 617
- Joined: 21 Mar 2013, 10:10
- Has thanked: 100 times
- Been thanked: 25 times
Re: Community Wad
by Xander9009 » 20 Oct 2016, 17:04
Unfortunately, that's not something we have much control over.nivmizzet1 wrote:Cavern of Souls doesn't let you spend the mana created until all other mana options are depleted. This kind of screws it up, especially if you want to leave mana open to play instants in the opponents turn.
_______________________________
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
Community Wad - Community Wad Website - How to Help and Report Bugs
Discord: discord.gg/4AXvHzW
-
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
by Splinterverse » 20 Oct 2016, 23:16
I'm finished coding for the day.
All cards referenced below are from the missing cards list.
Coded, tested, and uploaded:
Bioplasm
Bottomless Vault
Chaos Harlequin
Dwarven Hold
Hollow Trees
Icatian Store
Last Rites
Rites of Initiation
Sabertooth Alley Cat
Sacred Guide
Sacred Rites
Sacrifice
Safe Haven
Sand Silos
Sandstone Oracle
Saprazzan Bailiff
Saprazzan Breaker
Saprazzan Cove
Sapseep Forest
Sarpadian Empires, Vol. VII
Savaen Elves
Sawtooth Ogre
Scalding Salamander
Scarwood Bandits
Scorching Lava
Scourge of Nel Toth
Scrib Nibblers
Scrounge
Searing Rays
Soldevi Adnate
Bugs fixed:
Devout Harpist -- was not checking whether aura was attached
Miracle Worker -- was not checking whether aura was attached
Piety Charm -- was not checking whether aura was attached
HQ art uploaded (all were missing):
Sandstone Oracle
Scourge of Nel Toth
Problem cards:
Sanctimony http://pastebin.com/zsZX9bUE Does not work. Could be that is not for controller's mana but rather an opponent's.
Scarscale Ritual http://pastebin.com/jV6aGaVx Not prompting to put a -1/-1 counter on a creature. Everything else works.
Scythe of the Wretched http://pastebin.com/xpwxu1Tg Not attaching to the creature that controller gains control of. Everything else works.
Soul Exchange http://pastebin.com/4NPrup4f Does not put counters on returned creature if exiled one is a Thrull. Everything else works.
Next:
Back tomorrow to code more missing cards.
All cards referenced below are from the missing cards list.
Coded, tested, and uploaded:
Bioplasm
Bottomless Vault
Chaos Harlequin
Dwarven Hold
Hollow Trees
Icatian Store
Last Rites
Rites of Initiation
Sabertooth Alley Cat
Sacred Guide
Sacred Rites
Sacrifice
Safe Haven
Sand Silos
Sandstone Oracle
Saprazzan Bailiff
Saprazzan Breaker
Saprazzan Cove
Sapseep Forest
Sarpadian Empires, Vol. VII
Savaen Elves
Sawtooth Ogre
Scalding Salamander
Scarwood Bandits
Scorching Lava
Scourge of Nel Toth
Scrib Nibblers
Scrounge
Searing Rays
Soldevi Adnate
Bugs fixed:
Devout Harpist -- was not checking whether aura was attached
Miracle Worker -- was not checking whether aura was attached
Piety Charm -- was not checking whether aura was attached
HQ art uploaded (all were missing):
Sandstone Oracle
Scourge of Nel Toth
Problem cards:
Sanctimony http://pastebin.com/zsZX9bUE Does not work. Could be that is not for controller's mana but rather an opponent's.
Scarscale Ritual http://pastebin.com/jV6aGaVx Not prompting to put a -1/-1 counter on a creature. Everything else works.
Scythe of the Wretched http://pastebin.com/xpwxu1Tg Not attaching to the creature that controller gains control of. Everything else works.
Soul Exchange http://pastebin.com/4NPrup4f Does not put counters on returned creature if exiled one is a Thrull. Everything else works.
Next:
Back tomorrow to code more missing cards.
---------------------------------------------
The DOTP2014 CW is updated nightly between 11 PM and 12 AM EST.
Known Issues/Bugs |
Impossible Cards List | Update Your Land Pools
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
Who is online
Users browsing this forum: No registered users and 16 guests