蘑菇之神 发表于 2012-11-29 09:15

关于非瑞克西亚摄食兽的异能写法~

本帖最后由 蘑菇之神 于 2012-11-29 11:12 编辑

2013游戏里未发现此生物,因此欲自制非瑞克西亚摄食兽。{:3_92:}

已知“压印~当非瑞克西亚摄食兽进战场时,你可以放逐目标非衍生物的生物。”是
<TRIGGERED_ABILITY dangerous="1" filter_zone="ZONE_IN_PLAY">→(触发的异能,触发区域)
    <LOCALISED_TEXT LanguageCode="en-US"><!]></LOCALISED_TEXT>   →(异能文字描述)
    <TRIGGER value="ZONECHANGE_END" simple_qualifier="self" to_zone="ZONE_IN_PLAY" />   →(触发值,预选对象,区域)
    <TARGET_DEFINITION id="0"> →(目标对象定义 ID=0)
    local filter = Object():GetFilter()→(本地筛选)
    filter:Clear()
    filter:May()
    filter:AddExtra(FILTER_EXTRA_NOT_TOKEN)   →(目标为非衍生物)
    filter:AddCardType( CARD_TYPE_CREATURE ) →(生物类型)
    filter:SetZone( ZONE_IN_PLAY )→(确定区域)
    filter:SetHint( HINT_ENEMY_ONLY, EffectController() ) →(只能对敌方使用,删除这段应该就可以对我方对方的都能使用了)
    if EffectController():IsAI() ~= 0 then   →(若效应控制器,AI某值有效)
      filter:SetCardInstance( Object() )→(卡牌实例设定 类别)
      filter:AddExtra( FILTER_EXTRA_FLIP_CARD_INSTANCE )→(添加放逐实例)
   filter:SetCardRef( Object():GetSpec() )→(设定卡牌 ,类别 获得某值?)
   filter:AddExtra(FILTER_EXTRA_FLIP_CARD_REF)→(额外增加 放逐)
    end
    </TARGET_DEFINITION>→(结束,这段目标定义的设定到此为止)
    <TARGET_DETERMINATION>→(决定目标)
    return AtLeastOneTargetFromDefinition(0)   →(至少有一个目标是符合定义里的)
    </TARGET_DETERMINATION>→(这段目标确定到此为止)
    <PLAY_TIME_ACTION target_choosing="1">→(发动时机,选择一个目标)
    EffectController():ChooseTarget( 0, "CARD_QUERY_CHOOSE_CREATURE_TO_EXILE", EffectDC():Make_Targets(0) )   →(效应控制 选择目标 放逐掉此目标)
    </PLAY_TIME_ACTION>→(发动时机的设定到此为止)
    <RESOLUTION_TIME_ACTION>→(正式决定的时机)
    local target = EffectDC():Get_Targets(0):Get_CardPtr(0) →(本地目标 取得目标 取得压印卡牌)
    local source = EffectSource()   →(设定为效应源)
    ObjectDC():Free_Compartment(0)   →(免费 隔间?)
    if target ~= nil then    →(若目标≥0)
   if source ~= nil then    →(若源≥0)
      ObjectDC():Set_CardPtr(0, target)→(选定目标卡牌)
      ObjectDC():Protect_CardPtr(0)→(保护压印的卡牌)
   end   
   target:RemoveFromGame()→(将目标移除游戏)
    end
    </RESOLUTION_TIME_ACTION>→(这一段设定结束)
    <RESOLUTION_TIME_ACTION>→(第二个正式决定时机的设定)
    local target = ObjectDC():Get_CardPtr(0)   →(本地目标,被压印的卡牌)
    local source = EffectSource()   →(本地的源也就是压印的那个卡牌就是效应源)
    if target ~= nil and source ~= nil then→(若目标有效.且源有效)
   target:NailOnto(source)   →(目标定在源上?)
    end
    </RESOLUTION_TIME_ACTION>→(第二段决定时机的设定结束)
</TRIGGERED_ABILITY>→(这一段压印,放逐目标生物的触发异能便结束了)
但是“非瑞克西亚摄食兽得+X/+Y,X为所放逐之生物牌的力量,Y为该牌的防御力。”这个一直不知道怎么写,
最后用了一个混子方法,先将非瑞克西亚摄食兽的力量和防御变成被放逐的目标生物的力量和防御,然后再加上自身原本的力量和防御+3/+3。
<STATIC_ABILITY filter_zone="ZONE_IN_PLAY">   →(恒定的异能 确定区域)
    <LOCALISED_TEXT LanguageCode="en-US"><!]></LOCALISED_TEXT>
→(异能文字描述)
    <CONTINUOUS_ACTION layer="7B">   →(持续作用)
    if (ObjectDC() ~= nil) then →(若某值有效)
   local imprintedCard = ObjectDC():Get_CardPtr(0)→(本地的压印卡牌)
   if(imprintedCard ~= nil) then →(压印卡牌有效 即有效)
      local dupChars = Object():GetCurrentCharacteristics()→(取得当前的特性)
      local impCardChars = imprintedCard:GetCurrentCharacteristics()   →(取得压印卡牌的特性)
      dupChars:Power_Set( impCardChars:Power_Get() )    →(将自身力量设为压印牌的力量)
      dupChars:Toughness_Set( impCardChars:Toughness_Get() )    →(将自身防御设为压印牌的防御力)
   end   →(第一个设定结束)
   if(imprintedCard ~= nil) then    →(若压印卡牌有效)
      EffectSource():GetCurrentCharacteristics():Power_Add( 3 )    →(卡牌的力量+3)
      EffectSource():GetCurrentCharacteristics():Toughness_Add( 3 )   →(卡牌的防御力+3,即再加上非瑞克西亚摄食兽原本的力量和防御力)
   end   →(结束第二个设定)
    end      
</CONTINUOUS_ACTION>    →(持续作用的设定结束)
</STATIC_ABILITY>    →(恒定异能设定结束)
但是毕竟是混子方法。在一些特殊情况下毕竟不太一样,而把“力量和防御变成目标被放逐生物的力量和防御”这一段异能里的get改成add就没效果了,如何才能直接在非瑞克西亚摄食兽上加上目标被放逐生物的力量和防御呢?求大神赐教~
页: [1]
查看完整版本: 关于非瑞克西亚摄食兽的异能写法~