使用或转载请注明出自宝可饭堂社区https://bbs.pokefans.xyz/threads/9/
此教程适用于目前主流的Essentials18.1~20.1,其他版本的ESS未测试。
道具的PBS什么的,自己照着其他石板抄一遍。
代码的插入位置在变幻自如附近,全局搜Protean就行了。
最后,不要忘了让它结束战斗恢复成默认形态,搜索:ARCEUS,找到一个和Form有关的,点进去,在下面加上框中的代码。
会考虑第三属性(森林诅咒、万圣夜等附加的属性),例如下图对吉利蛋变格斗属性,对被附加了幽灵属性的吉利蛋变圣光属性(原创属性,克制幽灵属性)
注意:不要制作一个???属性的精灵,更不要用传说制裁光砾打他,会报错,实在需要就自己判断一下。
此教程适用于目前主流的Essentials18.1~20.1,其他版本的ESS未测试。
道具的PBS什么的,自己照着其他石板抄一遍。
代码的插入位置在变幻自如附近,全局搜Protean就行了。
Ruby:
#传说阿尔宙斯 by ES泽洛
#由鸭灭骡优化
if isSpecies?(:ARCEUS) && move.id==getID(PBMoves,:JUDGMENT) && hasActiveItem?(:LEGENDPLATE) #当是阿尔宙斯,且特性是多属性,携带传说石板时
current_form = 0 #默认初始形态
current_type = "一般" #默认初始属性名称
result_types = [] #克制属性
resistance_type = [] #抵抗属性
type3 = targets[0].effects[PBEffects::Type3]==-1 ? nil : targets[0].effects[PBEffects::Type3] #获取第三属性,第三属性是一种状态
#处理克制属性
for type in 0..PBTypes.maxValue
e=PBTypes.getCombinedEffectiveness(type,targets[0].type1,targets[0].type2,type3) #计算克制倍率,基础为8,每克制一个属性x2
if e>=64 #8倍克制
result_types.push(type)
else
if e>=32 #4倍克制
result_types.push(type)
else
if e>=16 #2倍克制
result_types.push(type)
end
end
end
end
#处理抵抗属性
result_types.each do |type|
e1 = PBTypes.getCombinedEffectiveness(targets[0].type1,type)
e2 = PBTypes.getCombinedEffectiveness(targets[0].type2,type)
e3 = (type3!=nil) ? PBTypes.getCombinedEffectiveness(type3,type) : 0
if resistance_type==[]
resistance_type.push(type)
resistance_type.push(e1+e2+e3)
else
unless resistance_type[1] <= e1+e2+e3
resistance_type=[type,e1+e2+e3]
end
end
end
current_form = resistance_type[0]
current_type = PBTypes.getName(current_form)
move.calcType = current_form #改变制裁光砾的属性
if user.form != current_form
pbChangeForm(current_form,_INTL("{1}变成了{2}属性!",pbThis,current_type)) #改变阿尔宙斯的形态
end
end
Ruby:
#传说阿尔宙斯 by ES泽洛
#屎山不屎山的,就交给诸位去优化了
#=================================================================================================================
=begin
#注意:不知道为什么原版的hasActiveItem?(:LEGENDPLATE)会返回false,所以我改了下面这部分代码
def hasActiveItem?(check_item, ignore_fainted = false)
return false if !itemActive?(ignore_fainted)
return check_item.include?(@item_id) if check_item.is_a?(Array)
#return check_item == self.item #原版
return check_item == @item_id #我改的
end
=end
#=================================================================================================================
if isSpecies?(:ARCEUS) && move.id == :JUDGMENT && hasActiveItem?(:LEGENDPLATE) #当是阿尔宙斯,且特性是多属性,携带传说石板时
current_type = :NORMAL #默认初始形态
current_typeName = "一般" #默认初始属性名称
result_types = [] #克制属性
resistance_type = [] #抵抗属性
type3 = targets[0].effects[PBEffects::Type3]==-1 ? nil : targets[0].effects[PBEffects::Type3] #获取第三属性,第三属性是一种状态
#处理克制属性
typeList = [
:NORMAL,:FIGHTING,:FLYING,:POISON,:GROUND,
:ROCK,:BUG,:GHOST,:STEEL,:QMARKS,
:FIRE,:WATER,:GRASS,:ELECTRIC,:PSYCHIC,
:ICE,:DRAGON,:DARK,:FAIRY
]
for type in typeList
e=Effectiveness.calculate(type,targets[0].type1,targets[0].type2,type3) #计算克制倍率,基础为8,每克制一个属性x2
if e>=64 #8倍克制
result_types.push(type)
else
if e>=32 #4倍克制
result_types.push(type)
else
if e>=16 #2倍克制
result_types.push(type)
end
end
end
end
#处理抵抗属性
result_types.each do |type|
e1 = Effectiveness.calculate(targets[0].type1,type)
e2 = Effectiveness.calculate(targets[0].type2,type)
e3 = (type3!=nil) ? Effectiveness.calculate(type3,type) : 0
if resistance_type==[]
resistance_type.push(type)
resistance_type.push(e1+e2+e3)
else
unless resistance_type[1] <= e1+e2+e3
resistance_type=[type,e1+e2+e3]
end
end
end
current_type = resistance_type[0]
current_typeName = GameData::Type.get(current_type).name
move.calcType = current_type #改变制裁光砾的属性
current_type_id = typeList.index(current_type)
if user.form != current_type_id
pbChangeForm(current_type_id,_INTL("{1}变成了{2}属性!",pbThis,current_typeName)) #改变阿尔宙斯的形态
end
end
Ruby:
#传说阿尔宙斯 by ES泽洛
if isSpecies?(:ARCEUS) && move.id == :JUDGMENT && hasActiveItem?(:LEGENDPLATE) #当是阿尔宙斯,且特性是多属性,携带传说石板时
current_type = :NORMAL #默认初始形态
current_typeName = "一般" #默认初始属性名称
result_types = [] #克制属性
resistance_type = [] #抵抗属性
target_types = targets[0].pbTypes(true)
#处理克制属性
typeList = [
:NORMAL, :FIGHTING, :FLYING, :POISON, :GROUND,
:ROCK, :BUG, :GHOST, :STEEL, :QMARKS,
:FIRE, :WATER, :GRASS, :ELECTRIC, :PSYCHIC,
:ICE, :DRAGON, :DARK, :FAIRY
]
typeList.each do |type|
e=Effectiveness.calculate(type, target_types[0], target_types[1], target_types[2]) #计算克制倍率,基础为8,每克制一个属性x2
if e>=64 #8倍克制
result_types.push(type)
else
if e>=32 #4倍克制
result_types.push(type)
else
if e>=16 #2倍克制
result_types.push(type)
end
end
end
end
#处理抵抗属性
result_types.each do |type|
e1 = Effectiveness.calculate(target_types[0], type)
e2 = Effectiveness.calculate(target_types[1], type)
e3 = (target_types[1] != nil) ? Effectiveness.calculate(target_types[2], type) : 0
if resistance_type == []
resistance_type.push(type)
resistance_type.push(e1 + e2 + e3)
else
unless resistance_type[1] <= e1 + e2 + e3
resistance_type = [type, e1 + e2 + e3]
end
end
end
current_type = resistance_type[0]
current_typeName = GameData::Type.get(current_type).name
move.calcType = current_type #改变制裁光砾的属性
current_type_id = typeList.index(current_type)
if user.form != current_type_id
pbChangeForm(current_type_id, _INTL("{1}变成了{2}属性!", pbThis, current_typeName)) #改变阿尔宙斯的形态
end
end
Ruby:
,
"getFormOnLeavingBattle" => proc { |pkmn, battle, usedInBattle, endBattle|
next 0 if pkmn.hasItem?(:LEGENDPLATE)
}
会考虑第三属性(森林诅咒、万圣夜等附加的属性),例如下图对吉利蛋变格斗属性,对被附加了幽灵属性的吉利蛋变圣光属性(原创属性,克制幽灵属性)
注意:不要制作一个???属性的精灵,更不要用传说制裁光砾打他,会报错,实在需要就自己判断一下。
最后编辑: