It is currently 11 Sep 2025, 01:27
   
Text Size

Formal Request Thread

Moderator: CCGHQ Admins

Re: Formal Request Thread

Postby Zambooo » 08 Mar 2015, 21:06

this
Code: Select all
MTG():FireTrigger( TRIGGER_SOURCE_DEALS_DAMAGE_TO_PLAYER, EffectSourceLKI() )
trigger the "deals combat damage" Trigger, but gives me this too
Code: Select all
[lua] [string "LEYLINE_OF_PUNISHMENT_283205018_TITLE (RESOLUTION_TIME_ACTION)~0x0000046f"]:4: attempt to index a nil value
any idea?..

PS: no parameter mismatch in this case..
User avatar
Zambooo
 
Posts: 242
Joined: 01 Jul 2012, 21:33
Has thanked: 19 times
Been thanked: 17 times

Re: Formal Request Thread

Postby 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.
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Formal Request Thread

Postby hormatSebastian » 12 Mar 2015, 01:45

can I request U/B ninjutsu deck?
thanks
hormatSebastian
 
Posts: 1
Joined: 12 Mar 2015, 01:35
Has thanked: 0 time
Been thanked: 0 time

Re: Formal Request Thread

Postby 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 {2} 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 {X} 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.
mrmay
 
Posts: 6
Joined: 07 Mar 2015, 02:59
Has thanked: 0 time
Been thanked: 0 time

Re: Formal Request Thread

Postby Xander9009 » 14 Mar 2015, 18:12

mrmay wrote:Can I request a custom card? If so

Mul Daya
3{G}
Planeswalker-Beast

Ability: Eldrazi and Green spells cost {2} 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 {X} 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.
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.

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
{3}{G}
Planeswalker-Mul

Ability: Eldrazi spells and Green spells you cast cost {2} less to cast.
Loyalty 4
+1: Search your library for a Green card or an Eldrazi card with converted mana cost {X} and put it into your hand where X equal to the number of loyalty counters on Mul Daya. (wording taken from Gideon, Champion of Justice.)
+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
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby nivmizzet1 » 15 Mar 2015, 02:30

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 &gt; 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 &gt; 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 &gt; 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() &gt; 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() &gt; 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>
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?
nivmizzet1
 
Posts: 617
Joined: 21 Mar 2013, 10:10
Has thanked: 100 times
Been thanked: 25 times

Re: Formal Request Thread

Postby 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

Postby Xander9009 » 15 Mar 2015, 18:07

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?
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.

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
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby 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.
RiiakShiNal
Programmer
 
Posts: 2188
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: Formal Request Thread

Postby nivmizzet1 » 16 Mar 2015, 03:19

Xander9009 wrote:
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?
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.

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.
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. :) Again, thanks!
nivmizzet1
 
Posts: 617
Joined: 21 Mar 2013, 10:10
Has thanked: 100 times
Been thanked: 25 times

Re: Formal Request Thread

Postby 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
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby Tejahn » 16 Mar 2015, 14:23

hormatSebastian wrote:can I request U/B ninjutsu deck?
thanks
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.

viewtopic.php?f=109&t=11726
Tejahn
 
Posts: 430
Joined: 14 May 2013, 01:35
Has thanked: 25 times
Been thanked: 25 times

Re: Formal Request Thread

Postby 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
zysron
 
Posts: 102
Joined: 13 Mar 2015, 09:02
Has thanked: 0 time
Been thanked: 2 times

Re: Formal Request Thread

Postby Xander9009 » 16 Mar 2015, 21:08

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
Properly capitalize cards and they'll automatically be highlighted so their information can be found just by hovering the mouse over 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
User avatar
Xander9009
Programmer
 
Posts: 2905
Joined: 29 Jun 2013, 07:44
Location: Indiana, United States
Has thanked: 121 times
Been thanked: 445 times

Re: Formal Request Thread

Postby 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
zysron
 
Posts: 102
Joined: 13 Mar 2015, 09:02
Has thanked: 0 time
Been thanked: 2 times

PreviousNext

Return to 2014

Who is online

Users browsing this forum: No registered users and 16 guests

Main Menu

User Menu

Our Partners


Who is online

In total there are 16 users online :: 0 registered, 0 hidden and 16 guests (based on users active over the past 10 minutes)
Most users ever online was 7967 on 09 Sep 2025, 23:08

Users browsing this forum: No registered users and 16 guests

Login Form