It is currently 07 Nov 2025, 06:12
   
Text Size

Duels of the Planeswalkers 2013

New decks and cards for Stainless Games' release

Moderator: CCGHQ Admins

Re: Duels of the Planeswalkers 2013

Postby RiiakShiNal » 25 Jun 2012, 04:58

Additionally it seems that the game will recognize WADs with names other than "DECK_####_??" as I was able to get it to read and recognize mine using "DATA_DLC_8192" which is what I used in DotP 2010. I have not tried other name formats, but I expect that others may work as well.
RiiakShiNal
Programmer
 
Posts: 2189
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Duels of the Planeswalkers 2013

Postby Rick » 25 Jun 2012, 05:18

Pretty sure it's always loaded any WAD available, even 2010 and 2012.
gibbed
Rick
Programmer
 
Posts: 40
Joined: 18 Jun 2011, 03:39
Has thanked: 0 time
Been thanked: 56 times

Re: Duels of the Planeswalkers 2013

Postby kevlahnota » 25 Jun 2012, 09:30

I just checked in dotp 2013, we can now have three multiple choices supported unlike in dotp 2012 its only two. :D

cards like Noble Hierarch can be done without work around I think.

inside gfx_mbconfig_mc_text.xml, mb_choice_3 exists
User avatar
kevlahnota
Programmer
 
Posts: 825
Joined: 19 Jul 2010, 17:45
Location: Philippines
Has thanked: 14 times
Been thanked: 264 times

Re: Duels of the Planeswalkers 2013

Postby sadlyblue » 25 Jun 2012, 11:34

What do you all think about creating another repository for the existing cards. It takes a lot of time to unpack everything, put in one folder for the Deck Editor.
And we could then use it to "exchange" cards we code. No need for anyone to code the same card.
sadlyblue
 
Posts: 175
Joined: 06 Feb 2012, 13:18
Has thanked: 18 times
Been thanked: 16 times

Re: Duels of the Planeswalkers 2013

Postby Rick » 25 Jun 2012, 12:36

sadlyblue wrote:What do you all think about creating another repository for the existing cards. It takes a lot of time to unpack everything, put in one folder for the Deck Editor.
And we could then use it to "exchange" cards we code. No need for anyone to code the same card.
Someone should code a deck editor that can read from WADs then?
gibbed
Rick
Programmer
 
Posts: 40
Joined: 18 Jun 2011, 03:39
Has thanked: 0 time
Been thanked: 56 times

Re: Duels of the Planeswalkers 2013

Postby sadlyblue » 25 Jun 2012, 13:08

I think would take longer to load.
I already have everything in one folder (cards, decks, personalities,... a folder for each).
The main goal would be sharing cards and improving others.
sadlyblue
 
Posts: 175
Joined: 06 Feb 2012, 13:18
Has thanked: 18 times
Been thanked: 16 times

Re: Duels of the Planeswalkers 2013

Postby kevlahnota » 25 Jun 2012, 13:24

That would be great.

a repository that contains a bunch of cards (main custom WAD when compiled), and a seperate deck packs(like 4 or more decks inside a seperate wad, like preconstructed decks with unlocks.)

sadlyblue wrote:What do you all think about creating another repository for the existing cards. It takes a lot of time to unpack everything, put in one folder for the Deck Editor.
And we could then use it to "exchange" cards we code. No need for anyone to code the same card.
User avatar
kevlahnota
Programmer
 
Posts: 825
Joined: 19 Jul 2010, 17:45
Location: Philippines
Has thanked: 14 times
Been thanked: 264 times

Re: Duels of the Planeswalkers 2013

Postby thefiremind » 25 Jun 2012, 13:45

I have good news! I tried to make a test creature with the following ability:
Code: Select all
  <STATIC_ABILITY>
    <CONTINUOUS_ACTION>
    local characteristics = Object():GetCurrentCharacteristics()
    for i=53,100 do
       characteristics:Characteristic_Set( i, 1 )
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
And no badge popped out on it! That means that characteristics aren't circular as the badges in DotP2012, so we won't have limits on inventing new characteristics!
We probably won't be able to associate new characteristics to new badges, though... unless someone discovers how to do it... :P

Oh another thing: they forgot to properly code the CREATURE_TYPE_GERM. So if you want to use some living weapons in your custom decks, I suggest to fix it like this:
  • Copy the SPECS folder from the Data_Core to your custom WAD (always in DATA_ALL_PLATFORMS).
  • Delete all files in your copy of the SPECS folder, except for CREATURE_TYPES.TXT (not necessary, but the other ones don't need overriding for now).
  • Edit your copy of CREATURE_TYPES.TXT by adding GERM as last line.
  • If you didn't do it yet, make a FUNCTIONS directory inside your custom WAD (always in DATA_ALL_PLATFORMS) and make a new LOL file inside the new directory. Call it whatever you want (mine is PERSONAL_CONSTANTS.LOL).
  • Inside the LOL file, add a line that says: CREATURE_TYPE_GERM = 1221
Please don't add other creature types before adding Germ, otherwise we will have incompatible mods again! [-o<

EDIT:
Pesi wrote:With all the new things this can do, I am convinced that we could make Ninjutsu work. A cookie for the first one to do it. ;)
Here's the code for Ninjutsu (the mana cost is for Ninja of the Deep Hours). I want a cookie. :lol:
Code: Select all
  <ACTIVATED_ABILITY active_zone="ZONE_HAND">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Ninjutsu {1}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Ninjutsu {1}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Ninjutsu {1}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Ninjutsu {1}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Ninjutsu {1}{U}.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[忍術 {1}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Ninjutsu {1}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Ninjutsu {1}{U}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Ninjutsu {1}{U}]]></LOCALISED_TEXT>
    <AVAILABILITY>
    return MTG():GetPhase() == PHASE_COMBAT and MTG():GetStep() &gt; STEP_DECLARE_ATTACKERS
    </AVAILABILITY>
    <COST type="Mana" cost="{1}{U}" />
    <COST type="generic">
      <TARGET_DEFINITION id="6">
      MTG():ClearFilterMarkedObjectsInZone( ZONE_IN_PLAY )
      local filter = Object():GetFilter()
      filter:Clear()
      filter:NotTargetted()
      filter:SetController( EffectController() )
      filter:SetZone( ZONE_IN_PLAY )
      filter:AddCardType( CARD_TYPE_CREATURE )
      filter:AddExtra( FILTER_EXTRA_CREATURE_ATTACKING )
      local filter_count = filter:EvaluateObjects()
      for i=0,filter_count-1 do
         local candidate = filter:GetNthEvaluatedObject(i)
         if candidate:IsBlocked() == 0 then
            candidate:MarkForFilter()
         end
      end
      filter:SetMarkedObjectsOnly()
      filter:SetHint( HINT_ENEMY, EffectController() )
      </TARGET_DEFINITION>
      <TARGET_DETERMINATION>
      return AtLeastOneTargetFromDefinition(6)
      </TARGET_DETERMINATION>
      <PLAY_TIME_ACTION>
      EffectController():ChooseTarget( 6, "CARD_QUERY_CHOOSE_CREATURE_TO_PUT_INTO_HAND", EffectDC():Make_Targets(0) )
      </PLAY_TIME_ACTION>
      <RESOLUTION_TIME_ACTION>
      local target = EffectDC():Get_Targets(0):Get_CardPtr(0)
      if target ~= nil then
         EffectDC():Set_PlayerPtr(1, target:GetPlayerAttacked())
         target:PutInHand()
      end
      </RESOLUTION_TIME_ACTION>
    </COST>
    <PLAY_TIME_ACTION>
    local card = EffectSource()
    if card ~= nil then
        card:GuidedReveal( ZONE_HAND, ZONE_HAND )
    end
    </PLAY_TIME_ACTION>
    <RESOLUTION_TIME_ACTION>
    local defendingPlayer = EffectDC():Get_PlayerPtr(1)
    if defendingPlayer ~= nil then
       EffectSource():PutIntoPlayTappedAndAttacking(EffectController(), defendingPlayer)
    end
    </RESOLUTION_TIME_ACTION>
    <AI_AVAILABILITY step="declare_blockers" turn="my_turn" />
  </ACTIVATED_ABILITY>
I didn't test how much the AI understands it... but the mechanic works. :wink:
< 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: Duels of the Planeswalkers 2013

Postby pcastellazzi » 25 Jun 2012, 19:24

thefiremind wrote:I have good news! I tried to make a test creature with the following ability:
Code: Select all
  <STATIC_ABILITY>
    <CONTINUOUS_ACTION>
    local characteristics = Object():GetCurrentCharacteristics()
    for i=53,100 do
       characteristics:Characteristic_Set( i, 1 )
    end
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
And no badge popped out on it! That means that characteristics aren't circular as the badges in DotP2012, so we won't have limits on inventing new characteristics!
We probably won't be able to associate new characteristics to new badges, though... unless someone discovers how to do it... :P
I did not look at the code yet, but there is probably a relatioon between the badge constant number and the image name. If not someone would wrote a very long if statement for each badge which would be very very sad.
The lights then came up and the crowd erupted in applause, because that's what the crowd does after it watches destruction on a large screen.
— Ben Kuchera, Mordern Warfare 3 review.
User avatar
pcastellazzi
 
Posts: 184
Joined: 25 Apr 2012, 00:40
Location: Montevideo, Uruguay
Has thanked: 11 times
Been thanked: 30 times

Re: Duels of the Planeswalkers 2013

Postby DaLosar » 25 Jun 2012, 22:35

Has anyone created a custom deck and played with it?
I'm using the Steam version (without the SKIDROW crack) and everytime I create a custom deck I can't play with it (it's always locked as if I needed to beat someone to unlock it) even though I have set "always_avaliable="true"", "never_avaliable="false"" and other things like this...

Does anyone has any ideas?

By the way, I'm testing against the AI and they can play the deck just fine.
DaLosar
 
Posts: 17
Joined: 22 Jun 2012, 06:08
Has thanked: 2 times
Been thanked: 0 time

Re: Duels of the Planeswalkers 2013

Postby alexandreonly » 25 Jun 2012, 22:58

I just used the deck editor on dotp 2012, and without that tool, i don't know how to add new decks. I just know how to add new cards on current decks, but i want to know the steps to create a new one, with box art, or i'll need to wait until the release of deck editor 2013.
alexandreonly
 
Posts: 145
Joined: 04 Jul 2011, 17:27
Has thanked: 0 time
Been thanked: 8 times

Re: Duels of the Planeswalkers 2013

Postby thefiremind » 25 Jun 2012, 23:41

alexandreonly wrote:I just used the deck editor on dotp 2012, and without that tool, i don't know how to add new decks. I just know how to add new cards on current decks, but i want to know the steps to create a new one, with box art, or i'll need to wait until the release of deck editor 2013.
Unpack an existing deck, change its name in all the directories and header files, give it a new ID inside the XML with the list of cards, then edit it as it was new, and repack it when you are done. I'm probably forgetting something, anyway this is basically what you have to do. Once you become familiar with the new directory structure, you'll be able to make changes without any editor.

------------

If someone is interested in a simple but clarifying example, I coded River of Tears successfully, by using GrantAbility and CreateDelayedTrigger. Here's how I made it:
Code: Select all
  <STATIC_ABILITY filter_zone="ZONE_IN_PLAY">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[{T}: Add {U} to your mana pool. If you played a land this turn, add {B} to your mana pool instead.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[{T}: Aggiungi {U} alla tua riserva di mana. Se hai giocato una terra in questo turno, aggiungi invece {B} alla tua riserva di mana.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[{T}: Erhöhe deinen Manavorrat um {U}. Hast du in diesem Zug bereits ein Land gespielt, erhöhe deinen Manavorrat stattdessen um {B}.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[{T} : Ajoutez {U} à votre réserve. Si vous avez joué un terrain ce tour-ci, ajoutez {B} à votre réserve à la place.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[{T}: Agrega {U} a tu reserva de maná. Si jugaste una tierra este turno, en vez de eso, agrega {B} a tu reserva de maná.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[{T}:あなたのマナ・プールに{U}を加える。 あなたがこのターンに土地をプレイしている場合、代わりにあなたのマナ・プールに{B}を加える。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[{T}: Add {U} to your mana pool. If you played a land this turn, add {B} to your mana pool instead.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[{T}: Добавьте {U} в ваше хранилище маны. Если вы разыграли землю в этом ходу, добавьте {B} в ваше хранилище маны вместо этого.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[{T}: Adicione {U} à sua reserva de mana. Se você jogou um terreno neste turno, em vez disso, adicione {B} à sua reserva de mana.]]></LOCALISED_TEXT>
    <CONTINUOUS_ACTION layer="6">
    local characteristics = Object():GetCurrentCharacteristics()
    characteristics:GrantAbility(ObjectDC():Get_Int(1)+1)
    </CONTINUOUS_ACTION>
  </STATIC_ABILITY>
  <TRIGGERED_ABILITY internal="1" filter_zone="ZONE_IN_PLAY">
    <TRIGGER value="LAND_PLAYED">
    return TriggerObject():GetPlayer() == Object():GetPlayer() and TriggerObject() ~= Object()
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    ObjectDC():Set_Int(1, 1)
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY internal="1" filter_zone="ZONE_IN_PLAY" active_zone="ZONE_ANY">
    <TRIGGER value="LAND_PLAYED">
    return TriggerObject() == Object()
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    MTG():CreateDelayedTrigger(3, nil)
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <TRIGGERED_ABILITY internal="1" filter_zone="ZONE_IN_PLAY">
    <TRIGGER value="BEGINNING_OF_STEP" simple_qualifier="controller">
    return ( MTG():GetStep() == STEP_CLEANUP )
    </TRIGGER>
    <RESOLUTION_TIME_ACTION>
    ObjectDC():Set_Int(1, 0)
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
  <MANA_ABILITY resource_id="1" filter_zone="ZONE_IN_PLAY">
    <COST type="TapSelf" />
    <PRODUCES amount="{U}" />
  </MANA_ABILITY>
  <MANA_ABILITY resource_id="2" filter_zone="ZONE_IN_PLAY">
    <COST type="TapSelf" />
    <PRODUCES amount="{B}" />
  </MANA_ABILITY>
  <TRIGGERED_ABILITY resource_id="3" internal="1" filter_zone="ZONE_IN_PLAY">
    <CLEANUP fire_once="1" />
    <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_IN_PLAY" />
    <RESOLUTION_TIME_ACTION>
    ObjectDC():Set_Int(1, 1)
    </RESOLUTION_TIME_ACTION>
  </TRIGGERED_ABILITY>
The idea comes from Cloudpost: the land grants itself a mana ability according to the value of register 1. When its controller plays a land, register 1 is set to 1; at the end of the turn, it is set to 0. This left a problem behind: the LAND_PLAYED trigger starts before the played land hits the battlefield, so River of Tears wasn't seeing itself played. That's where the delayed trigger does its job: if the played land is Object(), the delayed trigger is enabled, and it sets the register to 1 when Object() comes into play.
If you want to test it, add (different) localised text to both mana abilities, so you can see which one is enabled.

There's actually another problem, but it's just cosmetic: it seems that the FRAMECOLOUR block is ignored in DotP2013. I was happy that the cards decided their frame automatically, but I would have liked the chance to override the decision... River of Tears with the C_LAND frame isn't really nice to see. :(
< 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: Duels of the Planeswalkers 2013

Postby MisterBenn » 26 Jun 2012, 02:16

That frame colour thing is definitely a shame, what is it with nonbasic lands in DotP? What happens if you put a static ability with Colour_Get():Add() against it like Rise from the Grave uses? Can it at least get the modern blue/black land border?

Edit: I just found the card textures, I can't see anything along the lines of the dual colour land cards like Drowned Catacomb. If we can't override them it looks like we're screwed...
MisterBenn
 
Posts: 97
Joined: 19 Mar 2011, 16:19
Has thanked: 24 times
Been thanked: 11 times

Re: Duels of the Planeswalkers 2013

Postby pcastellazzi » 26 Jun 2012, 02:40

MisterBenn wrote:That frame colour thing is definitely a shame, what is it with nonbasic lands in DotP? What happens if you put a static ability with Colour_Get():Add() against it like Rise from the Grave uses? Can it at least get the modern blue/black land border?
It may work, but if there is something like destroy all blue or black permanents, the land will become a valid target and it should not.
The lights then came up and the crowd erupted in applause, because that's what the crowd does after it watches destruction on a large screen.
— Ben Kuchera, Mordern Warfare 3 review.
User avatar
pcastellazzi
 
Posts: 184
Joined: 25 Apr 2012, 00:40
Location: Montevideo, Uruguay
Has thanked: 11 times
Been thanked: 30 times

Re: Duels of the Planeswalkers 2013

Postby kevlahnota » 26 Jun 2012, 02:49

I think the deck manager has a bug/unfinished when you have multi color deck. I just tried reusing the old deck box(modified) texture for bolas revenge deck(no deck box). here some screens:

Image

Image
User avatar
kevlahnota
Programmer
 
Posts: 825
Joined: 19 Jul 2010, 17:45
Location: Philippines
Has thanked: 14 times
Been thanked: 264 times

PreviousNext

Return to Magic: The Gathering - Duels of the Planeswalkers

Who is online

Users browsing this forum: No registered users and 23 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 23 users online :: 0 registered, 0 hidden and 23 guests (based on users active over the past 10 minutes)
Most users ever online was 9298 on 10 Oct 2025, 12:54

Users browsing this forum: No registered users and 23 guests

Login Form