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




Formal Request Thread
Moderator: CCGHQ Admins
Re: Formal Request Thread
by Zambooo » 08 Mar 2015, 21:06
this
PS: no parameter mismatch in this case..
- Code: Select all
MTG():FireTrigger( TRIGGER_SOURCE_DEALS_DAMAGE_TO_PLAYER, EffectSourceLKI() )
- Code: Select all
[lua] [string "LEYLINE_OF_PUNISHMENT_283205018_TITLE (RESOLUTION_TIME_ACTION)~0x0000046f"]:4: attempt to index a nil value
PS: no parameter mismatch in this case..
Re: Formal Request Thread
by RiiakShiNal » 09 Mar 2015, 02:01
My guess would be that you have not given the trigger a Damage object so when it tries to get the object it fails.
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2188
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 497 times
Re: Formal Request Thread
by hormatSebastian » 12 Mar 2015, 01:45
can I request U/B ninjutsu deck?
thanks
thanks
- hormatSebastian
- Posts: 1
- Joined: 12 Mar 2015, 01:35
- Has thanked: 0 time
- Been thanked: 0 time
Re: Formal Request Thread
by mrmay » 14 Mar 2015, 12:37
Can I request a custom card? If so
Mul Daya
3{G}
Planeswalker-Beast
Ability: Eldrazi and Green spells cost
less to cast(Cards cannot cost less than 0).
Loyalty 4
+1 Search your deck for a Green or Eldrazi spell with converted cost of
and add it to your Hand. X is this card loyalty.
+1 Play an additional Land this turn
-8 Search your Library for a Green Permanent and put it onto the Battlefield under your control. Shuffle your Deck.
-10 Search your Library for an Eldrazi Creature and Put it onto the Battlefield under your control. Shuffle your Deck.
Thank you. sorry Im new to Planeswalker programming etc.
Mul Daya
3{G}
Planeswalker-Beast
Ability: Eldrazi and Green spells cost

Loyalty 4
+1 Search your deck for a Green or Eldrazi spell with converted cost of

+1 Play an additional Land this turn
-8 Search your Library for a Green Permanent and put it onto the Battlefield under your control. Shuffle your Deck.
-10 Search your Library for an Eldrazi Creature and Put it onto the Battlefield under your control. Shuffle your Deck.
Thank you. sorry Im new to Planeswalker programming etc.
- mrmay
- Posts: 6
- Joined: 07 Mar 2015, 02:59
- Has thanked: 0 time
- Been thanked: 0 time
Re: Formal Request Thread
by Xander9009 » 14 Mar 2015, 18:12
A couple of notes, some pieces need rewording because deck is NEVER used on a card. It's always library. Spell is only used when referring to a card that is in the process of resolving, otherwise it's a permanent/creature/... or a card.mrmay wrote:Can I request a custom card? If so
Mul Daya
3{G}
Planeswalker-Beast
Ability: Eldrazi and Green spells costless to cast(Cards cannot cost less than 0).
Loyalty 4
+1 Search your deck for a Green or Eldrazi spell with converted cost ofand add it to your Hand. X is this card loyalty.
+1 Play an additional Land this turn
-8 Search your Library for a Green Permanent and put it onto the Battlefield under your control. Shuffle your Deck.
-10 Search your Library for an Eldrazi Creature and Put it onto the Battlefield under your control. Shuffle your Deck.
Thank you. sorry Im new to Planeswalker programming etc.
Second, planeswalkers always have part of their name as their subtype. This is because of the planeswalker uniqueness rule, which checks the subtype. This would mean that if you gave it the subtype Beast, then if there was another Beast planeswalker on the battlefield, even though that other one might not be Mul Daya, one would be sacrificed. The subtype should be either Mul or Daya. (Mul gets my vote, because almost every planeswalker gets the first word of its name, but there are one or two exceptions.)
Aside from those, its actually not too difficult to make a planeswalker. You basically take another planeswalker, and then you replace the abilities with the ones you want it to have. To place where a custom planeswalker gets difficult is that when you distribute it, you'll need to include the D14_PLW.LOL file and another file which has a list of planeswalker subtypes. That's not really difficult, but since it's a custom card, it won't be added to the CW or the official Planeswalker pool.
Mul Daya

Planeswalker-Mul
Ability: Eldrazi spells and Green spells you cast cost

Loyalty 4
+1: Search your library for a Green card or an Eldrazi card with converted mana cost

+1: You may play an additional land this turn.
-8: Search your library for a green permanent card and put it onto the battlefield under your control. Shuffle your library.
-10: Search your library for an Eldrazi creature and put it onto the Battlefield under your control. Shuffle your library.
I would also suggest making the Eldrazi card referenced "colorless Eldrazi" like most other cards do (Eye of Ugin). I personally don't mind that it might be a little overpowered, but I just want to make sure you realize it might be. Due to the passive cost reduction and the extra lands, the following scenario could be easily achieved.
Turn 4: Play Forest. Play Mul Daya. Activate ability 2: Play Forest.
Turn 5: Play Forest. Activate ability 2: Play Forest. Tap 7 forests, play Artisan of Kozilek.
Now artisan of Kozilek would be less likely than some expensive, powerful green card, but a 4 turn ramp from one card (after one turn of being in play) might be a little overpowered for a card that only costs 4. To make it balanced, I'd say make it cost 5 or 6. As I said, that doesn't actually bother me and is completely up to you. I'm just pointing it out in case you hadn't considered it. Anyway, let me know what you decide, and I'll see about getting it coded if no one else does. Note that I'm currently working on manifest and won't be coding anything else until that's done.
EDIT: You can absolutely leave the colorless bit out of the Eldrazi references. I just don't know if you intend for it to be used only for the big eldrazi, or also for the Eldrazi Drones and whatnot.
_______________________________
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: Formal Request Thread
by nivmizzet1 » 15 Mar 2015, 02:30
Hi Xander, it's awesome that you've made a working copy of pull from eternity. I was hoping you could explain to me how to change ALL function names, constant names, constant values, filenames, and cardnames. Is there something I can just download to stick in the directory?Xander9009 wrote:Alright, so I've got a working Pull from Eternity. It took a lot of tinkering, but I've tested it in a four player game with everyone but me (I've tested my own cards a lot) with at least one card in exile. One player had two exiled: one just exiled, the other under my Oblivion Ring. Checked each player in turn, and it showed me the correct cards, including the one attached to Oblivion Ring. It can properly only be played if at least one card is exiled. It does alloy the choice to be changed because there's a cancel button (which I even tested both before choosing a player and after but before choosing the card). This does work with cards like Flicker.
The only known problem is that the card specifies face-up, but while I have an idea for that, it's not yet implemented. The only way I can think of to manage that is to add another chest for face-down creatures, and alter all cards that exile face-down to add the exiled cards to this chest for the duration of their exile, and then check against that chest. I'll work on getting this last bit corrected tomorrow. For now, I've gone ahead and included it in the CW. (If you look in the functions file, you'll see I was originally planning to go the characteristic route. I guess we'll see.)
Also learned you apparently can't use a FE_LUA_CONDITION in an AVAILABILITY block. That was an unexpected issue. It might have been something else, seeing as there were still multiple problems even after changing that, but I couldn't make any progress until I changed the way that block checks from using the same filter as the PLAY_TIME_ACTION (except I simply counted the filtered players in the AVAILABILITY block, of course).
NOTE: Do NOT use this code without changing ALL function names, constant names, constant values, filenames, and cardnames. Any exile handling in the future for the CW will be handled with this system, now that it's working. (Of course, using the functions and constants is fine. Just don't include the lol contents if doing so. Require the CW.)
- CW_EXILE_FUNCTIONS | Open
- Code: Select all
-------------------------
--File Info--------------
-------------------------
--Author: Xander9009
--Created: 17-02-15
--Updated: 17-02-15
--A set of functions for working with the "_MANAGER_EXILE" card to create, maintain, and use a chest for tracking the cards currently in exile for each player.
--Inspiration taken from the layout
-------------------------
--Chest Registers--------
-------------------------
CW_EXILE_CHEST = 90090001 -- The RSN_ObjectDC constant on the Exile Manager
CW_EXILE_CHEST_TEMP = 90090002 -- The RSN_ObjectDC constant on the Exile Manager used to store main chest while removing elements
-------------------------
--Characteristics--------
-------------------------
CW_EXILE_CHARACTERISTIC_FACE_DOWN = 90091001 -- RSN_FAKE_CHARACTERISTICS constant for storing and retrieving an exiled card's face-down status
-------------------------
--Function List----------
-------------------------
----CW_GetExileDC()
--Returns Effect Controller's exile chest.
--Input: None
--Output: DataChest
----CW_GetPlayerExileDC(oPlayer)
--Retrieves the Exile Manager token controlled by given player and returns that manager's Exile Chest.
--Input: Player
--Output: DataChest
----CW_GetAllExileDCs()
--Returns a single Data Chest containing each player's Exile Chest as returned by CW_GetPlayerExileDC.
--Input: None
--Output: DataChest containing DataChests (one sub-chest per player)
----CW_GetAllExileChestContents()
--Returns a Data Chest containing all cards from all Exile Chests as returned by CW_GetAllExileDCs.
--Input: None
--Output: DataChest
-------------------------
--Functions Definitions--
-------------------------
--Returns Effect Controller's exile chest.
--Input: None
--Output: DataChest
CW_GetExileDC = function()
return CW_GetPlayerExileDC( EffectController() )
end
--Retrieves the Exile Manager token controlled by given player and returns that manager's Exile Chest.
--Input: Player
--Output: DataChest
CW_GetPlayerExileDC = function( oPlayer )
if oPlayer ~= nil then
local oFilter = ClearFilter()
oFilter:Add( FE_CARD_NAME, OP_IS, "_MANAGER_EXILE" )
oFilter:Add( FE_CONTROLLER, OP_IS, oPlayer )
local iCount = oFilter:EvaluateObjects()
if iCount > 0 then
local oManager = oFilter:GetNthEvaluatedObject(0)
if oManager ~= nil then
local oObjectDC = RSN_GetObjectDC(oManager)
if oObjectDC ~= nil then
local oExileDC = oObjectDC:Get_Chest( CW_EXILE_CHEST )
if oExileDC ~= nil then
return oExileDC
end
end
end
end
end
return nil
end
--Returns a single Data Chest containing each player's Exile Chest as returned by CW_GetPlayerExileDC.
--Input: None
--Output: DataChest containing DataChests (one sub-chest per player)
CW_GetAllExileDCs = function()
local iNumPlayers = MTG():GetNumberOfPlayers()
local oExileDDC = MTG():DuelDataChest():Get_Chest( CW_EXILE_CHEST )
if (oExileDDC == nil) then
oExileDDC = MTG():DuelDataChest():Make_Chest( CW_EXILE_CHEST )
end
if oExileDDC ~= nil then
oExileDDC:Clear()
for i=0,iNumPlayers-1 do
local oPlayer = MTG():GetNthPlayer(i)
if oPlayer ~= nil then
local oExileDC = CW_GetPlayerExileDC( oPlayer )
if oExileDC ~= nil then
oExileDDC:Make_Chest(i):CopyFrom( oExileDC )
end
end
end
end
return oExileDDC
end
--Returns a Data Chest containing all cards from all Exile Chests as returned by CW_GetAllExileDCs.
--Input: None
--Output: DataChest
CW_GetAllExileChestContents = function()
local iNumPlayers = MTG():GetNumberOfPlayers()
local oExileDDC = MTG():DuelDataChest():Get_Chest( CW_EXILE_CHEST )
if (oExileDDC == nil) then
oExileDDC = MTG():DuelDataChest():Make_Chest( CW_EXILE_CHEST )
end
if oExileDDC ~= nil then
oExileDDC:Clear()
local iExileDDCIndex = 0
for i=0,iNumPlayers-1 do
local oPlayer = MTG():GetNthPlayer(i)
if oPlayer ~= nil then
local oExileDC = CW_GetPlayerExileDC( oPlayer )
if oExileDC ~= nil then
local iCount = oExileDC:Count()
if iCount > 0 then
for j=0,iCount-1 do
local oCard = oExileDC:Get_CardPtr(j)
if oCard ~= nil then
oExileDDC:Set_CardPtr(iExileDDCIndex, oCard)
oExileDDC:Protect_CardPtr(iExileDDCIndex)
iExileDDCIndex = iExileDDCIndex + 1
end
end
end
end
end
end
end
return oExileDDC
end
- _MANAGER_EXILE | Open
- Code: Select all
<?xml version="1.0"?>
<CARD_V2 ExportVersion="1">
<FILENAME text="_MANAGER_EXILE" />
<CARDNAME text="_MANAGER_EXILE" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[EXILE MANAGER]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[EXILE MANAGER]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[EXILE MANAGER]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[EXILE MANAGER]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[EXILE MANAGER]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[EXILE MANAGER]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[EXILE MANAGER]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[EXILE MANAGER]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[EXILE MANAGER]]></LOCALISED_TEXT>
</TITLE>
<ARTID value="0" />
<ARTIST name="None" />
<CASTING_COST cost="" />
<EXPANSION value="MANAGER_TOKENS" />
<RARITY metaname="T" />
<!-- Shroud so it can't be targeted. -->
<STATIC_ABILITY>
<INTRINSIC characteristic="CHARACTERISTIC_SHROUD" />
</STATIC_ABILITY>
<!-- Indestructible so it can't be destroyed. -->
<STATIC_ABILITY>
<INTRINSIC characteristic="CHARACTERISTIC_INDESTRUCTIBLE" />
</STATIC_ABILITY>
<!-- Protection from everything to prevent unwanted removal. -->
<STATIC_ABILITY>
<CONTINUOUS_ACTION layer="0">
if (EffectSource() ~= nil) then
local oFilter = ClearFilter()
local oSubfilter = oFilter:AddSubFilter_Or()
oSubfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ARTIFACT )
oSubfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
oSubfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_ENCHANTMENT )
oSubfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_INSTANT )
oSubfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_LAND )
oSubfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PHENOMENON )
oSubfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANE )
oSubfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_PLANESWALKER )
oSubfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_SCHEME )
oSubfilter:Add( FE_TYPE, OP_IS, CARD_TYPE_SORCERY )
EffectSource():Protection()
end
</CONTINUOUS_ACTION>
</STATIC_ABILITY>
<!-- Now we have extra abilities for those characteristics which are built into this manager. -->
<!-- In other words these are the functions that make the custom characteristics actually do something. -->
<TRIGGERED_ABILITY forced_skip="1">
<TRIGGER value="ZONECHANGE_BEGIN" to_zone="ZONE_EXILE" from_zone="ZONE_ANY">
if TriggerObject():GetOwner() ~= EffectController() and TriggerObject():IsToken() == false then
return false
end
local ObjectDC = RSN_ObjectDC() and RSN_ObjectDC():Get_Chest(CW_EXILE_CHEST) --90090001
if ObjectDC == nil then
ObjectDC = RSN_ObjectDC() and RSN_ObjectDC():Make_Chest(CW_EXILE_CHEST)
end
if ObjectDC ~= nil then
local Count = ObjectDC:Count()
ObjectDC:Set_CardPtr(Count, TriggerObject())
--EffectController():DisplayMessage("Trigger - Count:" .. Count .. " - Name:" .. ObjectDC:Get_CardPtr(Count):GetCardName())
ObjectDC:Protect_CardPtr(Count)
end
return false --Make true to enable debug messages
</TRIGGER>
<RESOLUTION_TIME_ACTION>
--EffectController():DisplayMessage("R1 - Added card: " .. TriggerObjectLKI():GetCardName())
local ObjectDC = RSN_ObjectDC() and RSN_ObjectDC():Get_Chest(CW_EXILE_CHEST)
if ObjectDC ~= nil then
--EffectController():DisplayMessage("R1 - Valid Chest")
local Count = ObjectDC:Count()
if Count > 0 then
--EffectController():DisplayMessage("R1 - Valid Count: " .. Count)
Count = Count-1
for i=0,Count do
--EffectController():DisplayMessage("R1 - Iterating Chest - i: " .. i)
local Card = ObjectDC:Get_CardPtr(i)
if Card ~= nil then
EffectController():DisplayMessage("R1 - Card[" .. i .. "/" .. Count .. "]: " .. Card:GetCardName())
else
EffectController():DisplayMessage("R1 - 4.1 - i:" .. i .. " - Count:" .. Count)
end
end
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY forced_skip="1">
<TRIGGER value="ZONECHANGE_BEGIN" to_zone="ZONE_ANY" from_zone="ZONE_EXILE">
if TriggerObject():GetOwner() ~= EffectController() then
return false
end
--EffectController():DisplayMessage("Removing: " .. TriggerObject():GetCardName())
local ObjectDC = RSN_ObjectDC() and RSN_ObjectDC():Get_Chest(CW_EXILE_CHEST)
if ObjectDC ~= nil then
--EffectController():DisplayMessage("T2 - 1")
local TempChest = RSN_ObjectDC() and RSN_ObjectDC():Make_Chest(CW_EXILE_CHEST_TEMP) --90090002
if TempChest ~= nil then
--EffectController():DisplayMessage("T2 - 2")
TempChest:CopyFrom(ObjectDC)
ObjectDC:Clear()
local ObjectDCIndex = 0
local TempChestCount = TempChest:Count()
local EmptyCount = ObjectDC:Count()
if TempChestCount > 0 then
--EffectController():DisplayMessage("Rebuilding chest - EmptyCount:" .. EmptyCount)
for i=0,TempChestCount-1 do
local Card = TempChest:Get_CardPtr(i)
if Card ~= nil and Card ~= TriggerObject() then
ObjectDC:Set_CardPtr(ObjectDCIndex, Card)
ObjectDC:Protect_CardPtr(ObjectDCIndex)
--EffectController():DisplayMessage("Saved " .. Card:GetCardName() .. " to register [" .. ObjectDCIndex .. "]")
ObjectDCIndex = ObjectDCIndex + 1
else
--EffectController():DisplayMessage("Skipped TempChest[" .. i .. "]")
end
end
local Count = ObjectDC:Count()
--EffectController():DisplayMessage("Rebuilt chest - New Count:" .. Count)
end
end
end
return false --Make true to enable debug messages
</TRIGGER>
<RESOLUTION_TIME_ACTION>
--EffectController():DisplayMessage("R2 - Removed card: " .. TriggerObjectLKI():GetCardName())
local ObjectDC = RSN_ObjectDC() and RSN_ObjectDC():Get_Chest(CW_EXILE_CHEST)
if ObjectDC ~= nil then
--EffectController():DisplayMessage("R2 - Valid Chest")
local Count = ObjectDC:Count()
if Count > 0 then
--EffectController():DisplayMessage("R2 - Valid Count: " .. Count)
Count = Count-1
for i=0,Count do
--EffectController():DisplayMessage("R2 - Iterating Chest - i: " .. i)
local Card = ObjectDC:Get_CardPtr(i)
if Card ~= nil then
EffectController():DisplayMessage("R2 - Card[" .. i .. "/" .. Count .. "]: " .. Card:GetCardName())
else
EffectController():DisplayMessage("R2 - 4.1 - i:" .. i .. " - Count:" .. Count)
end
end
end
end
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
</CARD_V2>
- Pull From Eternity | Open
- Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
<FILENAME text="PULL_FROM_ETERNITY_CW_106657" />
<CARDNAME text="PULL_FROM_ETERNITY" />
<TITLE>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Pull from Eternity]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Attraction de l’éternité]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Extraer de la eternidad]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Pull from Eternity]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Richiamo dall’Eternità]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[永遠からの引き抜き]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Pull from Eternity]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Возврат из Вечности]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Arrancar da Eternidade]]></LOCALISED_TEXT>
</TITLE>
<MULTIVERSEID value="106657" />
<ARTID value="CW106657" />
<ARTIST name="Ron Spears" />
<CASTING_COST cost="{W}" />
<FLAVOURTEXT>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[It is best to conquer dragons before they hatch.
—Femeref adage]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Il vaut toujours mieux vaincre les dragons avant qu’ils n’éclosent.
—Adage fémeiref]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Es mejor lidiar con los dragones antes de que nazcan.
—Adagio femeref]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[It is best to conquer dragons before they hatch.
—Femeref adage]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[È meglio sgominare i draghi prima che nascano.
—adagio Femeref]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ドラゴンは孵る前に倒せ。
――フェメレフの諺]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[It is best to conquer dragons before they hatch.
—Femeref adage]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[«Лучше захватить драконов перед тем как они вылупятся»,
Фемерефская поговорка]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[É melhor conquistar os dragões antes que comecem a chocar.
—Provérbio de Femeref]]></LOCALISED_TEXT>
</FLAVOURTEXT>
<TYPE metaname="Instant" />
<EXPANSION value="TSP" />
<RARITY metaname="U" />
<SPELL_ABILITY>
<LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Put target face-up exiled card into its owner’s graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Mettez la carte face visible ciblée qui est retirée de la partie dans le cimetière de son propriétaire.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Pon la carta boca arriba objetivo que está removida del juego en el cementerio de su propietario.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Put target face-up exiled card into its owner’s graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Metti una carta esiliata a faccia in su bersaglio nel cimitero del suo proprietario.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[ゲームから取り除かれている表向きのカード1枚を対象とし、それをオーナーの墓地に置く。]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[Put target face-up exiled card into its owner’s graveyard.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Положите целевую карту, которая удалена из игры, лицом вверх на кладбище владельца.]]></LOCALISED_TEXT>
<LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Coloque o card alvo com a face voltada para cima que foi removido do jogo no cemitério de seu dono.]]></LOCALISED_TEXT>
<AVAILABILITY>
local ExileChest = CW_GetAllExileChestContents()
if ExileChest ~= nil then
return ExileChest:Count() > 0
end
return false
</AVAILABILITY>
<PLAY_TIME_ACTION repeating="1">
local Parity = MTG():GetActionRepCount() % 2
if Parity == 0 then
local filter = ClearFilter()
filter:SetFilterType( FILTER_TYPE_PLAYERS )
filter:Add( FE_LUA_CONDITION, 1, EffectController(), EffectDC() )
EffectController():ChooseItem("CARD_QUERY_CHOOSE_PLAYER", EffectDC():Make_Targets(0) )
return true
else
local Player = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_PlayerPtr(0)
if Player ~= nil then
local ExileDC = CW_GetPlayerExileDC(Player)
if ExileDC ~= nil then
EffectController():ChooseItemFromDC( "CARD_QUERY_CHOOSE_A_CARD_TO_PUT_INTO_OWNERS_GRAVEYARD", ExileDC, EffectDC():Make_Targets(1))
end
end
return false
end
</PLAY_TIME_ACTION>
<FILTER_CONDITION id="1">
if FilteredPlayer() ~= nil then
local ExileDC = CW_GetPlayerExileDC( FilteredPlayer() )
return ExileDC ~= nil and ExileDC:Count() > 0
end
return false
</FILTER_CONDITION>
<RESOLUTION_TIME_ACTION>
local Target = EffectDC():Get_Targets(1) and EffectDC():Get_Targets(1):Get_CardPtr(0)
if Target ~= nil then
Target:PutInGraveyard()
end
</RESOLUTION_TIME_ACTION>
</SPELL_ABILITY>
<TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_LIBRARY">
<TRIGGER value="BEGINNING_OF_STEP">
return ((MTG():GetStep() == STEP_UPKEEP) and (MTG():GetTurnNumber() == 0))
</TRIGGER>
<RESOLUTION_TIME_ACTION>
RSN_Characteristics_CreateManagers("_MANAGER_EXILE")
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TRIGGERED_ABILITY replacement_effect="1" active_zone="ZONE_HAND">
<TRIGGER value="BEGINNING_OF_STEP">
return ((MTG():GetStep() == STEP_UPKEEP) and (MTG():GetTurnNumber() == 0))
</TRIGGER>
<RESOLUTION_TIME_ACTION>
RSN_Characteristics_CreateManagers("_MANAGER_EXILE")
</RESOLUTION_TIME_ACTION>
</TRIGGERED_ABILITY>
<TOKEN_REGISTRATION reservation="1" type="_MANAGER_EXILE" />
</CARD_V2>
______________________________________
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: Formal Request Thread
by mrmay » 15 Mar 2015, 02:57
Hey thanks I was looking for a planes walker for the chant of mul days deck. I don't get the coding aspect of this game. OK so I have some code done but I'm not sure how to put my new subtype of mul. Also when I make cards they don't show up in game but the game still shows one card even though I have no cards in my deck. Can someone help me this is different then 2012
- mrmay
- Posts: 6
- Joined: 07 Mar 2015, 02:59
- Has thanked: 0 time
- Been thanked: 0 time
Re: Formal Request Thread
by Xander9009 » 15 Mar 2015, 18:07
To change the filenames, just make sure you save the file as something other than what I listed (basically, makes sure it never has CW in the name). Make sure the FILENAME tag for any cards is updated to match the new name you chose.nivmizzet1 wrote:Hi Xander, it's awesome that you've made a working copy of pull from eternity. I was hoping you could explain to me how to change ALL function names, constant names, constant values, filenames, and cardnames. Is there something I can just download to stick in the directory?
For constant values, you just need to change any instance of 9009 to 1314.
For constant names, it doesn't really matter what you change it to as long as it's something no one else will me using (for instance, change all instances of CW to NM1).
In other words, just change ALL instances of "CW_" to "NM1_" and change "9009" to "1314" and it shouldn't interfere. Make sure you change the functions in the card as well. That's all only necessary if you're planning to redistribute the card somewhere. If you're just planning to use it yourself, none of that needs done. You can just drop the files in your Deck Builder Custom folder and use them. All I care about is that they're not running around with the same prefixes causing incompatibilities.
_______________________________
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: Formal Request Thread
by RiiakShiNal » 16 Mar 2015, 02:28
Note that to add sub-types you will have to edit the appropriate text file in the SPEC directory, appropriate strings added to the TEXT_PERMANENT directory, and add the appropriate constants for it (in a LOL file in the FUNCTIONS directory) if you want to access it programmatically (the value of the constant must match the value the SPEC entry will be given by the game to actually work). For a planeswalker type you will need to add it to the PLANESWALKER_TYPES.TXT file (though you need to be careful that ALL planeswalker types are in the file as only one copy of this file can take effect). Having different copies of this file will cause problems as only the one with the highest priority will be loaded and used.
As adding sub-types can be quite a lot of work and can cause issues if not done properly most modders stick to the already defined sub-types. Additional sub-types for creatures were noted and added by thefiremind, sumomole, and myself with a master file being present in thefiremind's mod if I remember correctly. thefiremind also added additional sub-types for planeswalkers.
As adding sub-types can be quite a lot of work and can cause issues if not done properly most modders stick to the already defined sub-types. Additional sub-types for creatures were noted and added by thefiremind, sumomole, and myself with a master file being present in thefiremind's mod if I remember correctly. thefiremind also added additional sub-types for planeswalkers.
Just getting started: Xander9009's DotP 2014 Community Wad
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
Need a deck builder: DotP 2014 Deck Builder
Problems Modding: DotP 2014 Frequent Modding Mistakes
- RiiakShiNal
- Programmer
- Posts: 2188
- Joined: 16 May 2011, 21:37
- Has thanked: 75 times
- Been thanked: 497 times
Re: Formal Request Thread
by nivmizzet1 » 16 Mar 2015, 03:19
Thanks Xander. It turns out what I actually needed to know was that if I wanted to use pull to eternity I needed to create a .lol with your exile function code and put in the functions folder of the community wad that I have. And I needed to copy the exile manager code and make a card with that code and put it in a wad. But I figured that out for myself eventually. I'm still not sure if I understand what you mean about needing to rename everything (is it in case somebody doesn't have the community wad and wants to use it in their own wad?), but it doesn't really matter because I have the card working.Xander9009 wrote:To change the filenames, just make sure you save the file as something other than what I listed (basically, makes sure it never has CW in the name). Make sure the FILENAME tag for any cards is updated to match the new name you chose.nivmizzet1 wrote:Hi Xander, it's awesome that you've made a working copy of pull from eternity. I was hoping you could explain to me how to change ALL function names, constant names, constant values, filenames, and cardnames. Is there something I can just download to stick in the directory?
For constant values, you just need to change any instance of 9009 to 1314.
For constant names, it doesn't really matter what you change it to as long as it's something no one else will me using (for instance, change all instances of CW to NM1).
In other words, just change ALL instances of "CW_" to "NM1_" and change "9009" to "1314" and it shouldn't interfere. Make sure you change the functions in the card as well. That's all only necessary if you're planning to redistribute the card somewhere. If you're just planning to use it yourself, none of that needs done. You can just drop the files in your Deck Builder Custom folder and use them. All I care about is that they're not running around with the same prefixes causing incompatibilities.

______________________________________
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: Formal Request Thread
by Xander9009 » 16 Mar 2015, 03:21
If you have the CW, ten you don't need to do any of that. You just need to download the latest version.
_______________________________
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: Formal Request Thread
by Tejahn » 16 Mar 2015, 14:23
If you would like to request a certain deck you should include your deck list. I finally convinced Kieran to come back to DOTP. I'm not sure if he's going to start back taking deck requests. But in the meantime I can create the deck for you. Use the link below to request your deck. Be sure to follow the format.hormatSebastian wrote:can I request U/B ninjutsu deck?
thanks
viewtopic.php?f=109&t=11726
Re: Formal Request Thread
by zysron » 16 Mar 2015, 20:59
did a quick search before asking.. didnt want to repost... there are a few cards i would like to see
quest for the goblin lord (R)
enchantment
whenever a goblin creature enters the battlefield put a quest counter on *
when there are 5 or more quest counters creatures you control get +2+0
/
(this one i love)
mayael's aria (R)(G)(W)
enchantment
at the beginning of your upkeep, put a +1/+1 counter on each creature you control if you control a creature with the power of 5 or greater. then you gain 10 life if you control a creature with the power 10 or greater. then you win the game if you control a creature with the power 20 or greater.
be a heavy code for a card but those who know of it would use it ... when they can
will post more cards i use later as i find them
quest for the goblin lord (R)
enchantment
whenever a goblin creature enters the battlefield put a quest counter on *
when there are 5 or more quest counters creatures you control get +2+0
/
(this one i love)
mayael's aria (R)(G)(W)
enchantment
at the beginning of your upkeep, put a +1/+1 counter on each creature you control if you control a creature with the power of 5 or greater. then you gain 10 life if you control a creature with the power 10 or greater. then you win the game if you control a creature with the power 20 or greater.
be a heavy code for a card but those who know of it would use it ... when they can
will post more cards i use later as i find them
Re: Formal Request Thread
by Xander9009 » 16 Mar 2015, 21:08
Properly capitalize cards and they'll automatically be highlighted so their information can be found just by hovering the mouse over them.zysron wrote:did a quick search before asking.. didnt want to repost... there are a few cards i would like to see
quest for the goblin lord (R)
enchantment
whenever a goblin creature enters the battlefield put a quest counter on *
when there are 5 or more quest counters creatures you control get +2+0
/
(this one i love)
mayael's aria (R)(G)(W)
enchantment
at the beginning of your upkeep, put a +1/+1 counter on each creature you control if you control a creature with the power of 5 or greater. then you gain 10 life if you control a creature with the power 10 or greater. then you win the game if you control a creature with the power 20 or greater.
be a heavy code for a card but those who know of it would use it ... when they can
will post more cards i use later as i find them
Quest for the Goblin Lord
Mayael's Aria
Neither of those should be too difficult. Quest for the Goblin King in particular is very similar to a couple of other cards from a coding perspective.
Also, I've never seen either of those. I like them

_______________________________
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: Formal Request Thread
by zysron » 16 Mar 2015, 21:35
i like alot of unique cards... these were pulled directly from decks i own infact there from my goblin deck... use them with Coat of Arms
oh another card
Mizzium Transreliquat
Phyrexian Metamorph
Caged Sun
sorry for the multi edits
i'm also finding it hard to find vivid lands like
Vivid Crag
and future sight cards like
Nacatl War-Pride
missing also
Nomads' Assembly
oh another card
Mizzium Transreliquat
Phyrexian Metamorph
Caged Sun
sorry for the multi edits
i'm also finding it hard to find vivid lands like
Vivid Crag
and future sight cards like
Nacatl War-Pride
missing also
Nomads' Assembly
Who is online
Users browsing this forum: No registered users and 14 guests