主页
论坛
新帖
最新消息
新帖
最新动态
制作互助群
登录
注册
Toggle sidebar
Toggle sidebar
菜单
安装应用
安装
回复主题
【进站必读】宝可饭堂社区全局规定v1.10
关于坚决维护同人创作社群秩序与共识的公告
论坛
独立开发
开发用品
【练手】[20.1]朱紫新增特性编写【已弃坑】
禁用JavaScript。为了获得更好的体验,请在运行之前启用浏览器中的JavaScript。
您正在使用一款已经过时的浏览器!部分功能不能正常使用。
请尝试升级或使用
其他浏览器
。
信息
<blockquote data-quote="ES泽洛" data-source="post: 383" data-attributes="member: 2"><p>[SPOILER="11.全能变身"]</p><p>[CODE][ZEROTOHERO]</p><p>Name = 全能变身</p><p>Description = 回到同行队伍后, 会变为全能形态。[/CODE]</p><p>[CODE=ruby]Battle::AbilityEffects::OnSwitchOut.add(:ZEROTOHERO,</p><p> proc { |ability, battler, endOfBattle|</p><p> next if battler.form == 1</p><p> next if endOfBattle</p><p> battler.pbChangeForm(1, nil)</p><p> }</p><p>)[/CODE]</p><p><strong>注意:此特性需要额外添加一些内容。</strong></p><p>变完身的海豚侠还需要变回平凡形态,所以要在FormHandlers页中,添加以下代码:</p><p>[CODE=ruby]MultipleForms.register(:PALAFIN, {</p><p> "getFormOnLeavingBattle" => proc { |pkmn, battle, usedInBattle, endBattle|</p><p> next 0 if pkmn.form > 0</p><p> }</p><p>})[/CODE]</p><p>[/SPOILER]</p><p>[SPOILER="12.发号施令"]</p><p>[CODE][COMMANDER]</p><p>Name = 发号施令</p><p>Description = 出场时,若我方当中有吃吼霸, 就会进入其口中,并从其口中 发出指令。[/CODE]</p><p>#没想法实现代码</p><p>[/SPOILER]</p><p>[SPOILER="13.电力转换"]</p><p>[CODE][ELECTROMORPHOSIS]</p><p>Name = 电力转换</p><p>Description = 受到伤害时,会变为充电状态。[/CODE]</p><p>[CODE=ruby]Battle::AbilityEffects::OnBeingHit.add(:ELECTROMORPHOSIS,</p><p> proc { |ability, user, target, move, battle|</p><p> battle.pbShowAbilitySplash(target)</p><p> target.effects[PBEffects::Charge] = 2</p><p> battle.pbDisplay(_INTL("{1}正在充电!", target.pbThis))</p><p> battle.pbHideAbilitySplash(target)</p><p> }</p><p>)[/CODE]</p><p>[/SPOILER]</p><p>[SPOILER="14.古代活性"]</p><p>[CODE][PROTOSYNTHESIS]</p><p>Name = 古代活性</p><p>Description = 携带着驱动能量或天气为 晴朗时,数值最高的能力 会提高。[/CODE]</p><p>#请参考夸克充能</p><p>[/SPOILER]</p><p>[SPOILER="15.夸克充能"]</p><p>[CODE][QUARKDRIVE]</p><p>Name = 夸克充能</p><p>Description = 携带着驱动能量或在电气 场地上时,数值最高的能 力会提高。[/CODE]</p><p>[CODE=ruby]#=============================================================</p><p>#[20.1]仅会由电气场地触发的夸克充能特性,</p><p>#要想携带驱动能量触发,请自己修改</p><p>#by ES泽洛</p><p>#=============================================================</p><p>#粘贴至PBEffects的122行附近</p><p>QuarkDrive = 117</p><p>#=============================================================</p><p>#粘贴至Battler_Initialize的278行附近</p><p>@effects[PBEffects::QuarkDrive] = -1</p><p>#=============================================================</p><p>#粘贴至Battle_AbilityEffects的3188行附近</p><p>Battle::AbilityEffects::OnTerrainChange.add(:QUARKDRIVE,</p><p> proc { |ability, battler, battle, ability_changed|</p><p> stage_mul = [2, 2, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7, 8]</p><p> stage_div = [8, 7, 6, 5, 4, 3, 2, 2, 2, 2, 2, 2, 2]</p><p> real_nums = []</p><p> #攻击</p><p> atk = battler.attack</p><p> atk_stage = battler.stages[:ATTACK] + 6</p><p> real_atk = (atk.to_f * stage_mul[atk_stage] / stage_div[atk_stage]).round</p><p> real_nums.push(real_atk)</p><p> #防御</p><p> defense = battler.defense</p><p> defense_stage = battler.stages[:DEFENSE] + 6</p><p> real_defense = (defense.to_f * stage_mul[defense_stage] / stage_div[defense_stage]).round</p><p> real_nums.push(real_defense)</p><p> #速度</p><p> speed = battler.speed</p><p> speed_stage = battler.stages[:SPEED] + 6</p><p> real_speed = (speed.to_f * stage_mul[speed_stage] / stage_div[speed_stage]).round</p><p> real_nums.push(real_speed)</p><p> #特攻</p><p> spatk = battler.spatk</p><p> spatk_stage = battler.stages[:SPECIAL_ATTACK] + 6</p><p> real_spatk = (spatk.to_f * stage_mul[spatk_stage] / stage_div[spatk_stage]).round</p><p> real_nums.push(real_spatk)</p><p> #特防</p><p> spdef = battler.spdef</p><p> spdef_stage = battler.stages[:SPECIAL_DEFENSE] + 6</p><p> real_spdef = (spdef.to_f * stage_mul[spdef_stage] / stage_div[spdef_stage]).round</p><p> real_nums.push(real_spdef)</p><p> </p><p> detail_name = ["攻击","防御","速度","特攻","特防"]</p><p> if battle.field.terrain == :Electric</p><p> index = 0</p><p> for i in 0...real_nums.length</p><p> index = i if real_nums[index] < real_nums[i]</p><p> end</p><p> case index</p><p> when 0</p><p> battler.attack *= 1.3</p><p> when 1</p><p> battler.defense *= 1.3</p><p> when 2</p><p> battler.speed *= 1.5</p><p> when 3</p><p> battler.spatk *= 1.3</p><p> when 4</p><p> battler.spdef *= 1.3</p><p> end</p><p> battle.pbShowAbilitySplash(battler)</p><p> battle.pbDisplay(_INTL("{1}的{2}提高了!", battler.pbThis, detail_name[index]))</p><p> battle.pbHideAbilitySplash(battler)</p><p> battler.effects[PBEffects::QuarkDrive] = index</p><p> else</p><p> index = battler.effects[PBEffects::QuarkDrive]</p><p> if index >= 0</p><p> case index</p><p> when 0</p><p> battler.attack /= 1.3</p><p> when 1</p><p> battler.defense /= 1.3</p><p> when 2</p><p> battler.speed /= 1.5</p><p> when 3</p><p> battler.spatk /= 1.3</p><p> when 4</p><p> battler.spdef /= 1.3</p><p> end</p><p> battle.pbShowAbilitySplash(battler)</p><p> battle.pbDisplay(_INTL("{1}的{2}还原了!", battler.pbThis, detail_name[index]))</p><p> battle.pbHideAbilitySplash(battler)</p><p> battler.effects[PBEffects::QuarkDrive] = -1</p><p> end</p><p> end</p><p> }</p><p>)[/CODE]</p><p>[/SPOILER]</p><p>[SPOILER="16.黄金之躯"]</p><p>[CODE][GOODASGOLD]</p><p>Name = 黄金之躯</p><p>Description = 不会氧化的坚固黄金身躯 不会受到对手的变化招式 的影响。 [/CODE]</p><p>[CODE=ruby]Battle::AbilityEffects::AccuracyCalcFromTarget.add(:GOODASGOLD,</p><p> proc { |ability, mods, user, target, move, type|</p><p> if move.statusMove? && user.opposes?(target)</p><p> mods[:base_accuracy] = 0</p><p> end</p><p> }</p><p>)[/CODE]</p><p>[/SPOILER]</p><p>[SPOILER="17.灾祸之鼎"]</p><p>[CODE][VESSELOFRUIN]</p><p>Name = 灾祸之鼎</p><p>Description = 以能呼唤灾厄的鼎的力量 降低除自己以外的宝可梦 的特攻。[/CODE]</p><p>[CODE=ruby]Battle::AbilityEffects::OnSwitchIn.add(:VESSELOFRUIN,</p><p> proc { |ability, battler, battle, switch_in|</p><p> battle.pbShowAbilitySplash(battler)</p><p> battle.allOtherSideBattlers(battler.index).each do |b|</p><p> if b.hasActiveAbility?(:CONTRARY)</p><p> if !b.statStageAtMax?(:SPECIAL_ATTACK)</p><p> b.pbRaiseStatStageByAbility(:SPECIAL_ATTACK, 1, battler)</p><p> end</p><p> else</p><p> if b.statStageAtMin?(:SPECIAL_ATTACK)</p><p> b.pbLowerStatStageByAbility(:SPECIAL_ATTACK, 1, battler)</p><p> end</p><p> end</p><p> end</p><p> battle.pbHideAbilitySplash(battler)</p><p> }</p><p>)[/CODE]</p><p>[/SPOILER]</p><p>[SPOILER="18.灾祸之剑"]</p><p>[CODE][SWORDOFRUIN]</p><p>Name = 灾祸之剑</p><p>Description = 以能呼唤灾厄的剑的力量 降低除自己以外的宝可梦 的防御。[/CODE]</p><p>[CODE=ruby]Battle::AbilityEffects::OnSwitchIn.add(:SWORDOFRUIN,</p><p> proc { |ability, battler, battle, switch_in|</p><p> battle.pbShowAbilitySplash(battler)</p><p> battle.allOtherSideBattlers(battler.index).each do |b|</p><p> if b.hasActiveAbility?(:CONTRARY)</p><p> if !b.statStageAtMax?(:DEFENSE)</p><p> b.pbRaiseStatStageByAbility(:DEFENSE, 1, battler)</p><p> end</p><p> else</p><p> if b.statStageAtMin?(:DEFENSE)</p><p> b.pbLowerStatStageByAbility(:DEFENSE, 1, battler)</p><p> end</p><p> end</p><p> end</p><p> battle.pbHideAbilitySplash(battler)</p><p> }</p><p>)[/CODE]</p><p>[/SPOILER]</p><p>[SPOILER="19.灾祸之简"]</p><p>[CODE][TABLETSOFRUIN]</p><p>Name = 灾祸之简</p><p>Description = 以能呼唤灾厄的简的力量 降低除自己以外的宝可梦 的攻击。[/CODE]</p><p>[CODE=ruby]Battle::AbilityEffects::OnSwitchIn.add(:TABLETSOFRUIN,</p><p> proc { |ability, battler, battle, switch_in|</p><p> battle.pbShowAbilitySplash(battler)</p><p> battle.allOtherSideBattlers(battler.index).each do |b|</p><p> if b.hasActiveAbility?(:CONTRARY)</p><p> if !b.statStageAtMax?(:ATTACK)</p><p> b.pbRaiseStatStageByAbility(:ATTACK, 1, battler)</p><p> end</p><p> else</p><p> if b.statStageAtMin?(:ATTACK)</p><p> b.pbLowerStatStageByAbility(:ATTACK, 1, battler)</p><p> end</p><p> end</p><p> end</p><p> battle.pbHideAbilitySplash(battler)</p><p> }</p><p>)[/CODE]</p><p>[/SPOILER]</p><p>[SPOILER="20.灾祸之玉"]</p><p>[CODE][BEADSOFRUIN]</p><p>Name = 灾祸之玉</p><p>Description = 以能呼唤灾厄的勾玉的力量 降低除自己以外的宝可梦 的特防。[/CODE]</p><p>[CODE=ruby]Battle::AbilityEffects::OnSwitchIn.add(:BEADSOFRUIN,</p><p> proc { |ability, battler, battle, switch_in|</p><p> battle.pbShowAbilitySplash(battler)</p><p> battle.allOtherSideBattlers(battler.index).each do |b|</p><p> if b.hasActiveAbility?(:CONTRARY)</p><p> if !b.statStageAtMax?(:SPECIAL_DEFENSE)</p><p> b.pbRaiseStatStageByAbility(:SPECIAL_DEFENSE, 1, battler)</p><p> end</p><p> else</p><p> if b.statStageAtMin?(:SPECIAL_DEFENSE)</p><p> b.pbLowerStatStageByAbility(:SPECIAL_DEFENSE, 1, battler)</p><p> end</p><p> end</p><p> end</p><p> battle.pbHideAbilitySplash(battler)</p><p> }</p><p>)[/CODE]</p><p>[/SPOILER]</p></blockquote><p></p>
[QUOTE="ES泽洛, post: 383, member: 2"] [SPOILER="11.全能变身"] [CODE][ZEROTOHERO] Name = 全能变身 Description = 回到同行队伍后, 会变为全能形态。[/CODE] [CODE=ruby]Battle::AbilityEffects::OnSwitchOut.add(:ZEROTOHERO, proc { |ability, battler, endOfBattle| next if battler.form == 1 next if endOfBattle battler.pbChangeForm(1, nil) } )[/CODE] [B]注意:此特性需要额外添加一些内容。[/B] 变完身的海豚侠还需要变回平凡形态,所以要在FormHandlers页中,添加以下代码: [CODE=ruby]MultipleForms.register(:PALAFIN, { "getFormOnLeavingBattle" => proc { |pkmn, battle, usedInBattle, endBattle| next 0 if pkmn.form > 0 } })[/CODE] [/SPOILER] [SPOILER="12.发号施令"] [CODE][COMMANDER] Name = 发号施令 Description = 出场时,若我方当中有吃吼霸, 就会进入其口中,并从其口中 发出指令。[/CODE] #没想法实现代码 [/SPOILER] [SPOILER="13.电力转换"] [CODE][ELECTROMORPHOSIS] Name = 电力转换 Description = 受到伤害时,会变为充电状态。[/CODE] [CODE=ruby]Battle::AbilityEffects::OnBeingHit.add(:ELECTROMORPHOSIS, proc { |ability, user, target, move, battle| battle.pbShowAbilitySplash(target) target.effects[PBEffects::Charge] = 2 battle.pbDisplay(_INTL("{1}正在充电!", target.pbThis)) battle.pbHideAbilitySplash(target) } )[/CODE] [/SPOILER] [SPOILER="14.古代活性"] [CODE][PROTOSYNTHESIS] Name = 古代活性 Description = 携带着驱动能量或天气为 晴朗时,数值最高的能力 会提高。[/CODE] #请参考夸克充能 [/SPOILER] [SPOILER="15.夸克充能"] [CODE][QUARKDRIVE] Name = 夸克充能 Description = 携带着驱动能量或在电气 场地上时,数值最高的能 力会提高。[/CODE] [CODE=ruby]#============================================================= #[20.1]仅会由电气场地触发的夸克充能特性, #要想携带驱动能量触发,请自己修改 #by ES泽洛 #============================================================= #粘贴至PBEffects的122行附近 QuarkDrive = 117 #============================================================= #粘贴至Battler_Initialize的278行附近 @effects[PBEffects::QuarkDrive] = -1 #============================================================= #粘贴至Battle_AbilityEffects的3188行附近 Battle::AbilityEffects::OnTerrainChange.add(:QUARKDRIVE, proc { |ability, battler, battle, ability_changed| stage_mul = [2, 2, 2, 2, 2, 2, 2, 3, 4, 5, 6, 7, 8] stage_div = [8, 7, 6, 5, 4, 3, 2, 2, 2, 2, 2, 2, 2] real_nums = [] #攻击 atk = battler.attack atk_stage = battler.stages[:ATTACK] + 6 real_atk = (atk.to_f * stage_mul[atk_stage] / stage_div[atk_stage]).round real_nums.push(real_atk) #防御 defense = battler.defense defense_stage = battler.stages[:DEFENSE] + 6 real_defense = (defense.to_f * stage_mul[defense_stage] / stage_div[defense_stage]).round real_nums.push(real_defense) #速度 speed = battler.speed speed_stage = battler.stages[:SPEED] + 6 real_speed = (speed.to_f * stage_mul[speed_stage] / stage_div[speed_stage]).round real_nums.push(real_speed) #特攻 spatk = battler.spatk spatk_stage = battler.stages[:SPECIAL_ATTACK] + 6 real_spatk = (spatk.to_f * stage_mul[spatk_stage] / stage_div[spatk_stage]).round real_nums.push(real_spatk) #特防 spdef = battler.spdef spdef_stage = battler.stages[:SPECIAL_DEFENSE] + 6 real_spdef = (spdef.to_f * stage_mul[spdef_stage] / stage_div[spdef_stage]).round real_nums.push(real_spdef) detail_name = ["攻击","防御","速度","特攻","特防"] if battle.field.terrain == :Electric index = 0 for i in 0...real_nums.length index = i if real_nums[index] < real_nums[i] end case index when 0 battler.attack *= 1.3 when 1 battler.defense *= 1.3 when 2 battler.speed *= 1.5 when 3 battler.spatk *= 1.3 when 4 battler.spdef *= 1.3 end battle.pbShowAbilitySplash(battler) battle.pbDisplay(_INTL("{1}的{2}提高了!", battler.pbThis, detail_name[index])) battle.pbHideAbilitySplash(battler) battler.effects[PBEffects::QuarkDrive] = index else index = battler.effects[PBEffects::QuarkDrive] if index >= 0 case index when 0 battler.attack /= 1.3 when 1 battler.defense /= 1.3 when 2 battler.speed /= 1.5 when 3 battler.spatk /= 1.3 when 4 battler.spdef /= 1.3 end battle.pbShowAbilitySplash(battler) battle.pbDisplay(_INTL("{1}的{2}还原了!", battler.pbThis, detail_name[index])) battle.pbHideAbilitySplash(battler) battler.effects[PBEffects::QuarkDrive] = -1 end end } )[/CODE] [/SPOILER] [SPOILER="16.黄金之躯"] [CODE][GOODASGOLD] Name = 黄金之躯 Description = 不会氧化的坚固黄金身躯 不会受到对手的变化招式 的影响。 [/CODE] [CODE=ruby]Battle::AbilityEffects::AccuracyCalcFromTarget.add(:GOODASGOLD, proc { |ability, mods, user, target, move, type| if move.statusMove? && user.opposes?(target) mods[:base_accuracy] = 0 end } )[/CODE] [/SPOILER] [SPOILER="17.灾祸之鼎"] [CODE][VESSELOFRUIN] Name = 灾祸之鼎 Description = 以能呼唤灾厄的鼎的力量 降低除自己以外的宝可梦 的特攻。[/CODE] [CODE=ruby]Battle::AbilityEffects::OnSwitchIn.add(:VESSELOFRUIN, proc { |ability, battler, battle, switch_in| battle.pbShowAbilitySplash(battler) battle.allOtherSideBattlers(battler.index).each do |b| if b.hasActiveAbility?(:CONTRARY) if !b.statStageAtMax?(:SPECIAL_ATTACK) b.pbRaiseStatStageByAbility(:SPECIAL_ATTACK, 1, battler) end else if b.statStageAtMin?(:SPECIAL_ATTACK) b.pbLowerStatStageByAbility(:SPECIAL_ATTACK, 1, battler) end end end battle.pbHideAbilitySplash(battler) } )[/CODE] [/SPOILER] [SPOILER="18.灾祸之剑"] [CODE][SWORDOFRUIN] Name = 灾祸之剑 Description = 以能呼唤灾厄的剑的力量 降低除自己以外的宝可梦 的防御。[/CODE] [CODE=ruby]Battle::AbilityEffects::OnSwitchIn.add(:SWORDOFRUIN, proc { |ability, battler, battle, switch_in| battle.pbShowAbilitySplash(battler) battle.allOtherSideBattlers(battler.index).each do |b| if b.hasActiveAbility?(:CONTRARY) if !b.statStageAtMax?(:DEFENSE) b.pbRaiseStatStageByAbility(:DEFENSE, 1, battler) end else if b.statStageAtMin?(:DEFENSE) b.pbLowerStatStageByAbility(:DEFENSE, 1, battler) end end end battle.pbHideAbilitySplash(battler) } )[/CODE] [/SPOILER] [SPOILER="19.灾祸之简"] [CODE][TABLETSOFRUIN] Name = 灾祸之简 Description = 以能呼唤灾厄的简的力量 降低除自己以外的宝可梦 的攻击。[/CODE] [CODE=ruby]Battle::AbilityEffects::OnSwitchIn.add(:TABLETSOFRUIN, proc { |ability, battler, battle, switch_in| battle.pbShowAbilitySplash(battler) battle.allOtherSideBattlers(battler.index).each do |b| if b.hasActiveAbility?(:CONTRARY) if !b.statStageAtMax?(:ATTACK) b.pbRaiseStatStageByAbility(:ATTACK, 1, battler) end else if b.statStageAtMin?(:ATTACK) b.pbLowerStatStageByAbility(:ATTACK, 1, battler) end end end battle.pbHideAbilitySplash(battler) } )[/CODE] [/SPOILER] [SPOILER="20.灾祸之玉"] [CODE][BEADSOFRUIN] Name = 灾祸之玉 Description = 以能呼唤灾厄的勾玉的力量 降低除自己以外的宝可梦 的特防。[/CODE] [CODE=ruby]Battle::AbilityEffects::OnSwitchIn.add(:BEADSOFRUIN, proc { |ability, battler, battle, switch_in| battle.pbShowAbilitySplash(battler) battle.allOtherSideBattlers(battler.index).each do |b| if b.hasActiveAbility?(:CONTRARY) if !b.statStageAtMax?(:SPECIAL_DEFENSE) b.pbRaiseStatStageByAbility(:SPECIAL_DEFENSE, 1, battler) end else if b.statStageAtMin?(:SPECIAL_DEFENSE) b.pbLowerStatStageByAbility(:SPECIAL_DEFENSE, 1, battler) end end end battle.pbHideAbilitySplash(battler) } )[/CODE] [/SPOILER] [/QUOTE]
验证
皮卡丘这只宝可梦在全国图鉴中的编号是?(2位纯数字)
回复帖子
最新帖子
全
我想切换视角讲述故事
最新更新:全民制作人
星期三,21:43
开发问题
Z
将GBA打包成APK
最新更新:zheyeyeye
星期三,21:27
GBA教程
Z
【进站必读】宝可饭堂社区全局规定v1.10
最新更新:z1652646304
星期三,20:25
公告规定
雨
pokeemerald怎么改箱子数
最新更新:雨落天晴
星期二,10:16
开发问题
[讨论]什么契机导致你想做游戏的
最新更新:A原翼
星期一,00:12
其他相关讨论
论坛统计
主题
559
消息
2,422
成员
3,879
最新成员
stonezz
联系我们
QQ
2201858342
邮箱
pokefans@qq.com
论坛
独立开发
开发用品
【练手】[20.1]朱紫新增特性编写【已弃坑】
顶部