It is currently 28 Apr 2024, 01:27
   
Text Size

General DotP 2014 Coding Questions

Moderator: CCGHQ Admins

Re: General DotP 2014 Coding Questions

Postby thefiremind » 04 Dec 2013, 23:34

GrovyleXShinyCelebi wrote:One of my mates has had trouble with this card working (apparently the trigger doesn't activate), but it seems to work fine for me.
If it works for you, then I have only 1 explanation: your friend didn't understand the card. I wouldn't be surprised, there are many newbie players who don't know the difference between casting a spell and putting a permanent onto the battlefield, so maybe he was expecting the trigger to activate upon putting an Elf onto the battlefield with Elvish Piper or something similar.
< 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: 721 times

Re: General DotP 2014 Coding Questions

Postby GrovyleXShinyCelebi » 04 Dec 2013, 23:42

There isn't anything in the deck I put it in that just puts it on the battlefield (no Elvish Piper or anything like that). He's hardcasting it, and it still doesn't seem to work. Is there anything in the code that might imply a problem?

Also, does anyone have high quality art for Thassa's Bounty? MagicVille doesn't have any, nor does MediaFire, and a Google search turns up a very small scan of the card.
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: General DotP 2014 Coding Questions

Postby thefiremind » 05 Dec 2013, 00:11

GrovyleXShinyCelebi wrote:There isn't anything in the deck I put it in that just puts it on the battlefield (no Elvish Piper or anything like that). He's hardcasting it, and it still doesn't seem to work. Is there anything in the code that might imply a problem?
I can't see anything wrong, and you said that it works for you, which wouldn't be possible if something were wrong. You can go on with the usual troubleshooting: could there be an old, non-working version that gets read in place of this one?

GrovyleXShinyCelebi wrote:Also, does anyone have high quality art for Thassa's Bounty? MagicVille doesn't have any, nor does MediaFire, and a Google search turns up a very small scan of the card.
Someone has it for sure: Ryan Yee himself. :lol: His official site doesn't have it, though, so I guess it hasn't been shared yet.
< 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: 721 times

Re: General DotP 2014 Coding Questions

Postby GrovyleXShinyCelebi » 05 Dec 2013, 23:28

Another question: does DisplayMessage work in a .LOL function file? 'Cause I can't seem to get it to work in there.
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: General DotP 2014 Coding Questions

Postby thefiremind » 05 Dec 2013, 23:55

GrovyleXShinyCelebi wrote:Another question: does DisplayMessage work in a .LOL function file? 'Cause I can't seem to get it to work in there.
There shouldn't be any difference at all in calling a function from a LOL file or directly from the card's code. Are you sure there's nothing else wrong?
< 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: 721 times

Re: General DotP 2014 Coding Questions

Postby GrovyleXShinyCelebi » 06 Dec 2013, 23:04

Well, here's my original function for clash:

Code: Select all
GXSC_Clash = function(player, jugador)
   local n = MTG():GetActionRepCount()
   if player ~= nil and jugador ~= nil then
      if n == 0 then
         local card = player:Library_GetTop()
         local tarjeta = jugador:Library_GetTop()
         if card ~= nil and tarjeta ~= nil then
            card:Reveal()
            tarjeta:Reveal()
                   player:BeginNewMultipleChoice()
                   player:AddMultipleChoiceAnswer( "MODE_CARD_TOP" )
                   player:AddMultipleChoiceAnswer( "MODE_CARD_BOTTOM" )
                   player:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE", card )
            EffectDC():Set_CardPtr(15, card)
            EffectDC():Protect_CardPtr(15)
         end
         return true
      elseif n == 1 then
          EffectDC():Set_Int(16, player:GetMultipleChoiceResult() )
         return true
      elseif n == 2 then
         local tarjeta = jugador:Library_GetTop()
         if tarjeta ~= nil then
                jugador:BeginNewMultipleChoice()
                jugador:AddMultipleChoiceAnswer( "MODE_CARD_TOP" )
                jugador:AddMultipleChoiceAnswer( "MODE_CARD_BOTTOM" )
                jugador:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE", tarjeta )
            EffectDC():Set_CardPtr(17, tarjeta)
            EffectDC():Protect_CardPtr(17)
         end
         return true
      elseif n == 3 then
         EffectDC():Set_Int(18, jugador:GetMultipleChoiceResult() )
         return true
      elseif n == 4 then
         local card = EffectDC():Get_CardPtr(15)
         local tarjeta = EffectDC():Get_CardPtr(17)
         if card ~= nil and tarjeta ~= nil then
            local answer = EffectDC():Get_Int( 16 )
            local contesta = EffectDC():Get_Int( 18 )
            if answer == 1 then
               card:PutOnBottomOfLibrary()
            end
            if contesta == 1 then
               tarjeta:PutOnBottomOfLibrary()
            end
            local count = card:GetConvertedManaCost()
            local contar = tarjeta:GetConvertedManaCost()
            if count > contar then
               player:DisplayMessage("CARD_MESSAGE_CLASH_WIN")
               jugador:DisplayMessage("CARD_MESSAGE_CLASH_LOSE")
               EffectDC():Set_Int(99, 1)
            elseif contar > count then
               jugador:DisplayMessage("CARD_MESSAGE_CLASH_WIN")
               player:DisplayMessage("CARD_MESSAGE_CLASH_LOSE")
               EffectDC():Set_Int(99, 2)
            else
               player:DisplayMessage("CARD_MESSAGE_CLASH_TIE")
               jugador:DisplayMessage("CARD_MESSAGE_CLASH_TIE")
               EffectDC():Set_Int(99, 3)
            end
         end
         return true
      end
   end
   return false
end
It works in the card, but not here.

Card:

Code: Select all
    <RESOLUTION_TIME_ACTION repeating="1">
       local target = EffectDC():Get_Targets(1):Get_PlayerPtr(0)
       local controller = EffectDC():Get_PlayerPtr(4)
       if target ~= nil and controller ~= nil then
   local n = MTG():GetActionRepCount()
   local player = EffectController()
   local jugador = target
   if player ~= nil and jugador ~= nil then
      if n == 0 then
         local card = player:Library_GetTop()
         local tarjeta = jugador:Library_GetTop()
         if card ~= nil and tarjeta ~= nil then
                   player:BeginNewMultipleChoice()
                   player:AddMultipleChoiceAnswer( "MODE_CARD_TOP" )
                   player:AddMultipleChoiceAnswer( "MODE_CARD_BOTTOM" )
                   player:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE", card )
            EffectDC():Set_CardPtr(15, card)
            EffectDC():Protect_CardPtr(15)
         end
         return true
      elseif n == 1 then
          EffectDC():Set_Int(16, player:GetMultipleChoiceResult() )
         return true
      elseif n == 2 then
         local tarjeta = jugador:Library_GetTop()
         if tarjeta ~= nil then
                jugador:BeginNewMultipleChoice()
                jugador:AddMultipleChoiceAnswer( "MODE_CARD_TOP" )
                jugador:AddMultipleChoiceAnswer( "MODE_CARD_BOTTOM" )
                jugador:AskMultipleChoiceQuestion( "MODE_CHOOSE_ONE", tarjeta )
            EffectDC():Set_CardPtr(17, tarjeta)
            EffectDC():Protect_CardPtr(17)
         end
         return true
      elseif n == 3 then
         EffectDC():Set_Int(18, jugador:GetMultipleChoiceResult() )
         return true
      elseif n == 4 then
         local card = EffectDC():Get_CardPtr(15)
         local tarjeta = EffectDC():Get_CardPtr(17)
         if card ~= nil and tarjeta ~= nil then
            local answer = EffectDC():Get_Int( 16 )
            local contesta = EffectDC():Get_Int( 18 )
            if answer == 1 then
               card:PutOnBottomOfLibrary()
            end
            if contesta == 1 then
               tarjeta:PutOnBottomOfLibrary()
            end
            card = player:Library_GetTop()
            tarjeta = jugador:Library_GetTop()
            if card ~= nil and tarjeta ~= nil then
               card:Reveal()
               tarjeta:Reveal()
               local count = card:GetConvertedManaCost()
               local contar = tarjeta:GetConvertedManaCost()
               if count &gt; contar then
                  player:DisplayMessage("CARD_MESSAGE_CLASH_WIN")
                  jugador:DisplayMessage("CARD_MESSAGE_CLASH_LOSE")
                  EffectDC():Set_Int(9, 1)
               elseif contar &gt; count then
                  jugador:DisplayMessage("CARD_MESSAGE_CLASH_WIN")
                  player:DisplayMessage("CARD_MESSAGE_CLASH_LOSE")
                  EffectDC():Set_Int(9, 2)
               else
                  player:DisplayMessage("CARD_MESSAGE_CLASH_TIE")
                  jugador:DisplayMessage("CARD_MESSAGE_CLASH_TIE")
                  EffectDC():Set_Int(9, 3)
               end
               if EffectDC():Get_Int(9) == 1 then
                  controller:MillCards( 4 )
               end
            end
         
         end
      end
   end
        end
    </RESOLUTION_TIME_ACTION>
Last edited by GrovyleXShinyCelebi on 06 Dec 2013, 23:59, edited 1 time in total.
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: General DotP 2014 Coding Questions

Postby thefiremind » 06 Dec 2013, 23:22

The 2 versions aren't identical... I haven't looked carefully, but I noticed that the LOL function calls Reveal before the query, while the card doesn't. I remember sumomole discovering that there are scenarios where calling function A before function B leads to strange results even if A and B don't seem to be related in any way. Maybe you could investigate on the differences between the 2 versions. That's all I can suggest for a code that is quite difficult to read for someone who didn't write it.
< 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: 721 times

Re: General DotP 2014 Coding Questions

Postby GrovyleXShinyCelebi » 06 Dec 2013, 23:36

Actually, I did copy version 1 initially into my card (which worked afterwards), the Reveal thing I only changed because of a rule I learned after making the code.

Another thing I'm wondering, is it at all possible to make lands framed like the Zendikar lands from Heart of World '2009? I mean, since we have custom lands in 2014 and all.
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: General DotP 2014 Coding Questions

Postby thefiremind » 06 Dec 2013, 23:46

GrovyleXShinyCelebi wrote:Another thing I'm wondering, is it at all possible to make lands framed like the Zendikar lands from Heart of World '2009?
That falls into the category of making custom frames, which is not possible since DotP2013.
< 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: 721 times

Re: General DotP 2014 Coding Questions

Postby GrovyleXShinyCelebi » 10 Dec 2013, 02:29

Hey mate, I got a few very important questions for you: does TRIGGER_SPELL_RESOLVED activate immediately after one/all SPELL_ABILITY blocks activate while the object is still on the stack (in fact, when exactly does it activate)? As in, does it work the same way as ABILITY_RESOLVED but with spells?

Also, can EffectDC/LinkedDC carry an integer from a COST set to generic in a UTILITY_ABILITY block to a SPELL_ABILITY?

I have an idea to make Overload ability, but I need to confirm these work. Especially the first: it's quintessential to my plan to beat the TARGET_DEFINITION block.
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: General DotP 2014 Coding Questions

Postby thefiremind » 10 Dec 2013, 09:27

GrovyleXShinyCelebi wrote:does TRIGGER_SPELL_RESOLVED activate immediately after one/all SPELL_ABILITY blocks activate while the object is still on the stack (in fact, when exactly does it activate)?
I'm not sure. Your best option is to find the answer yourself: insert this code into the trigger:
Code: Select all
EffectController():DisplayMessage( TriggerObject():GetZone() )
then let the trigger activate, write down the number you see and check it against the constants. You might want to try the code both inside the TRIGGER block and a RESOLUTION_TIME_ACTION, in case the zone where the trigger triggers is different from the zone where the trigger resolves.

GrovyleXShinyCelebi wrote:As in, does it work the same way as ABILITY_RESOLVED but with spells?
I guess it should be the same, but again, I'm not sure.

GrovyleXShinyCelebi wrote:Also, can EffectDC/LinkedDC carry an integer from a COST set to generic in a UTILITY_ABILITY block to a SPELL_ABILITY?
EffectDC should be enough, but in case it doesn't work for some reason, LinkedDC should be 100% sure to work.
< 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: 721 times

Re: General DotP 2014 Coding Questions

Postby GrovyleXShinyCelebi » 10 Dec 2013, 23:52

Alright, I managed to make an overload that functions about 99.9999999995% like the actual ability:

Code: Select all
<?xml version='1.0' encoding='UTF-8'?>
<CARD_V2 ExportVersion="1">
  <FILENAME text="ELECTRICKERY_99253545" />
  <CARDNAME text="ELECTRICKERY" />
  <TITLE>
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Electrickery]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Électromperie]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Eléctruco]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Elektrickserei]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Elettroinganno]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[電謀]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[전기 속임수]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Электротрюк]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Eletrotruque]]></LOCALISED_TEXT>
  </TITLE>
  <MULTIVERSEID value="99253545" />
  <ARTID value="99253545" />
  <ARTIST name="Greg Staples" />
  <CASTING_COST cost="{R}" />
  <TYPE metaname="Instant" />
  <EXPANSION value="RTR" />
  <RARITY metaname="C" />
  <SPELL_ABILITY linked_ability_group="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Electrickery deals 1 damage to target creature you don’t control.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[L’Électromperie inflige 1 blessure à une créature ciblée que vous ne contrôlez pas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Eléctruco hace 1 punto de daño a la criatura objetivo que no controlas.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Elektrickserei fügt einer Kreatur deiner Wahl, die du nicht kontrollierst, 1 Schadenspunkt zu.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[L’Elettroinganno infligge 1 danno a una creatura bersaglio che non controlli.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[あなたがコントロールしていないクリーチャー1体を対象とする。電謀はそれに1点のダメージを与える。]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[당신이 조종하지 않는 생물 한 개를 목표로 정한다. 전기 속임수는 그 생물에게 피해 1점을 입힌다.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Электротрюк наносит 1 повреждение целевому существу не под вашим контролем.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Eletrotruque causa 1 ponto de dano à criatura alvo que você não controla.]]></LOCALISED_TEXT>
  <SFX text="GLOBAL_MAGMA_PLAY" />
    <FILTER filter_id="0" >
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    filter:Add( FE_CONTROLLER, OP_NOT, EffectController() )
    </FILTER>
    <RESOLUTION_TIME_ACTION filter_id="0" >
    local target_creature = FilteredCard()
    if ( target_creature ~= nil ) then
       EffectSourceLKI():DealDamageTo( 1, target_creature )
    end
    </RESOLUTION_TIME_ACTION>
  </SPELL_ABILITY>
  <TRIGGERED_ABILITY linked_ability_group="1" active_zone="ZONE_ANY">
    <TRIGGER value="SPELL_RESOLVED" pre_trigger="1" simple_qualifier="self" >
      if LinkedDC():Get_Int(500) == 0 then
   MTG():OverrideEvent()
   return true
      end
    </TRIGGER>
     <SFX text="TARGET_LIGHTNING_PLAY" />
    <TARGET_DEFINITION id="0">
    local filter = ClearFilter()
    filter:Add( FE_TYPE, OP_IS, CARD_TYPE_CREATURE )
    filter:Add( FE_CONTROLLER, OP_NOT, EffectController() )
    </TARGET_DEFINITION>
    <TARGET tag="CARD_QUERY_CHOOSE_DEAL_1_DAMAGE" definition="0" compartment="0" count="1" />
    <RESOLUTION_TIME_ACTION>
    local target_creature = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_CardPtr(0)
    local target_player = EffectDC():Get_Targets(0) and EffectDC():Get_Targets(0):Get_PlayerPtr(0)
    if ( target_creature ~= nil ) then
       EffectSourceLKI():DealDamageTo( 1, target_creature )
    elseif ( target_player ~= nil ) then   
       EffectSourceLKI():DealDamageTo( 1, target_player )
    end
    </RESOLUTION_TIME_ACTION>
    <AI_SIMPLIFIED_TARGETING compartment="0" hint="HINT_ENEMY_ONLY" />   
  </TRIGGERED_ABILITY>
  <UTILITY_ABILITY qualifier="Alternate" linked_ability_group="1">
    <LOCALISED_TEXT LanguageCode="en-US"><![CDATA[Overload {1}{R}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="fr-FR"><![CDATA[Surcharge {1}{R} » par « chaque ».)]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="es-ES"><![CDATA[Sobrecarga {1}{R}.]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="de-DE"><![CDATA[Überlast {1}{R}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="it-IT"><![CDATA[Sovraccarico {1}{R}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="jp-JA"><![CDATA[超過 {1}{R}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ko-KR"><![CDATA[과부하 {1}{R}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="ru-RU"><![CDATA[Перегрузка {1}{R}]]></LOCALISED_TEXT>
    <LOCALISED_TEXT LanguageCode="pt-BR"><![CDATA[Sobrecarga {1}{R}]]></LOCALISED_TEXT>
  <COST type="Mana" mana_cost="{1}{R}" />
    <COST type="generic">
      <PREREQUISITE>
      return true
      </PREREQUISITE>
     <RESOLUTION_TIME_ACTION>
   LinkedDC():Set_Int(500, 1)
     </RESOLUTION_TIME_ACTION>
  </COST>
    <ABILITY_TEXT tag="MODE_OVERLOAD" />
  </UTILITY_ABILITY>
  <AI_AVAILABILITY type="in_response" response_source="1" />
  <AI_AVAILABILITY window_step="begin_combat" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="declare_attackers" window_turn="their_turn" type="window" />
  <AI_AVAILABILITY window_step="main_1" window_turn="my_turn" type="window" />
  <AI_AVAILABILITY window_step="declare_blockers" type="window" />
  <AI_AVAILABILITY window_step="end_of_turn" type="window" />
  <AI_AVAILABILITY type="in_response" response_source="1" response_target="1" />
  <AI_BASE_SCORE score="750" zone="ZONE_HAND" />
</CARD_V2>
Basically, it works exactly as it's supposed to, with one very little exception: when the spell resolves the delayed trigger (as in, when the spell makes you target something) occurs when the spell is in the graveyard, not the stack. Is there any situation when this would cause the spell to not function the way it's supposed to, or would you say this is good enough?
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: General DotP 2014 Coding Questions

Postby RiiakShiNal » 11 Dec 2013, 01:07

I can't think of anything that would cause a problem with the delayed trigger occurring while the original spell is in the graveyard, but I can think of situations where not having the TARGET in the spell ability could cause problems. For example abilities like Jetting Glasskite won't work properly with non-overloaded spells as there is no way to counter abilities in the DotP engine.

Also have you tested to make sure if an overloaded spell is copied that the copy is also overloaded? According to MtG rules Overload is a choice made while casting and as such is a "copyable value" and should be inherited by copies, however, since you use a LinkedDC() it is possible that this does not carry over to copies and as such needs to be tested.

Edit: Thinking about it your approximation would also cause problems with cards with Heroic (Theros), Confound, Grip of Chaos, Hydromorph Guardian, or Ink-Treader Nephilim, because you don't have the TARGET in the SPELL_ABILITY a non-overloaded spell won't count for the purposes of those abilities even though it should.
RiiakShiNal
Programmer
 
Posts: 2185
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

Re: General DotP 2014 Coding Questions

Postby GrovyleXShinyCelebi » 12 Dec 2013, 04:06

Ugh, just tested Overload and you're right as copies aren't being taken account. I wonder if that's something your ObjectDC can solve ('bout time I started using it anyways).

I actually thought for a bit that if I found a way to make Overload target selection when spell is on the stack ( like with ZONECHANGE_END or SPELL_ABOUT_TO_RESOLVE ), I could beat those fringe instances when this wouldn't work. Then I realised they use the SPELL's data chest...

Anyways, right now I really don't have time for this, I got other mod and real-life stuff to take care of, and I'm already pushing myself to the point of crying (literally) with coding Overload. I've made the judgment that this still works 99.9% right, about a TFM-ish approximation, but a perfect Overload is impossible. I'll look back into it in a week or so, in a less hectic time. If anyone has suggestions for improvements feel free to share them.
User avatar
GrovyleXShinyCelebi
 
Posts: 294
Joined: 12 Jun 2013, 18:23
Has thanked: 14 times
Been thanked: 37 times

Re: General DotP 2014 Coding Questions

Postby RiiakShiNal » 12 Dec 2013, 04:40

GrovyleXShinyCelebi wrote:Ugh, just tested Overload and you're right as copies aren't being taken account. I wonder if that's something your ObjectDC can solve ('bout time I started using it anyways).
No, my ObjectDC functions won't help there as they are locked to the object's instance and each copy would have it's own instance. I can't really think of a good way to get a card and only its copies to access a single chest without having it being influenced by other spells or instances. For example you can't just have a card use a single DuelDataChest() because then if two different copies are cast with one being overloaded and the other without if they access the same chest they would both either be overloaded or not even though different costs were paid.
RiiakShiNal
Programmer
 
Posts: 2185
Joined: 16 May 2011, 21:37
Has thanked: 75 times
Been thanked: 497 times

PreviousNext

Return to Programming Talk

Who is online

Users browsing this forum: No registered users and 19 guests


Who is online

In total there are 19 users online :: 0 registered, 0 hidden and 19 guests (based on users active over the past 10 minutes)
Most users ever online was 4143 on 23 Jan 2024, 08:21

Users browsing this forum: No registered users and 19 guests

Login Form