○ ESS20仅限 一些奇怪的道具

LQWU

天王
成员
2023-07-12
45
2
18
1,461
使用或转载请注明宝可饭堂社区
(会不定时更新一些小道具,可能没什么用,但若使用请遵循上面的规定)
病毒药水-- 为你的宝可梦植入病毒
最近在看完ES大佬的无限之笛后,感觉非常有意思,便想着能不能也弄一些道具看看(期间,在RC上看见一位大佬能让宝可梦闪光的道貝,感兴趣的小伙伴可以去看看https://www.reliccastle.com/resources/1209/),研究很久之后,总算成了,我将它命名为病毒药水(不排除还有BUG)
来看效果 ,宝可梦没有病毒时使用会植入病毒(随机株系),有病毒时会清除病毒。

浏览附件bandicam 2023-09-06 15-51-40-862.mp4

首先在PBS/items.txt中创建一个道具
代码:
[VIRAL]
Name = 病毒药水
NamePlural = 病毒药水
Pocket = 1
FieldUse = OnPokemon
Price = 20000
Flags = Fling_30
Description = 为你的宝可梦植入病毒或清除它.
对于ESS20.1,将图标放在Graphics/Items文件夹,并命名为VIRAL.png。
在Item_Effects的末尾添加如下代码:
实现代码
Ruby:
ItemHandlers::UseOnPokemon.add(:VIRAL, proc { |item, qty, pkmn, scene|
  if pkmn.pokerus == 0
  pkmn.givePokerus
  pbMessage(_INTL("病毒已植入!"))
elsif pkmn.pokerus != 0
   pkmn.pokerus = 0
   pbMessage(_INTL("病毒已清除!"))
   end
 })
由于我刚开始学ruby,所以只是在找不同和抄大佬的作业,所从可能会有BUG(甚至非常恶性),所以如果你想使用它,请提前备份好你的游戏文件,在此表示抱歉(因为有BUG我估计也无法修复,抱歉抱歉)备份!备份!备份!
VIRAL.png
(该素材为RPGXP自带)
 

附件

  • VIRAL.png
    VIRAL.png
    1.9 KB · 查看: 4
最后编辑:

LQWU

天王
成员
2023-07-12
45
2
18
1,461
特性药水--改变宝可梦的特性
在游戏里特性胶囊和特性膏药都能为我们改变宝可梦的特性,但并不能自由选择,在研究后,创建了一个比较自由的道具,命名为特性药水(其实是借用了调试菜单改变特性的代码)
来看效果


浏览附件bandicam 2023-09-09 12-33-07-384.mp4

首先在PBS/items.txt中创建一个道具
代码:
[ABILITYPOTION]
Name = 特性药水
NamePlural = 特性药水
Pocket = 1
Price = 20000
FieldUse = OnPokemon
Description = 可以改变宝可梦的特性。
对于ESS20.1,将图标放在Graphics/Items文件夹,并命名为ABILITYPOTION.png。
在Item_Effects的末尾添加如下代码:
实现代码
Ruby:
ItemHandlers::UseOnPokemon.add(:ABILITYPOTION, proc { |item, qty, pkmn,scene|
    abils = pkmn.getAbilityList
        ability_commands = []
        abil_cmd = 0
        abils.each do |i|
          ability_commands.push(((i[1] < 2) ? "" : "(H) ") + GameData::Ability.get(i[0]).name)
          abil_cmd = ability_commands.length - 1 if pkmn.ability_id == i[0]
        end
        abil_cmd =pbMessage(_INTL("选择一个特性"), ability_commands, abil_cmd)
        next if abil_cmd < 0
        pkmn.ability_index = abils[abil_cmd][1]
        pbMessage(_INTL("特性已被修改。"))   
  next true
})
一些话
由于我刚开始学ruby及ess,这两个道具能弄出来纯属是巧合,其实只是在找不同和抄大佬的作业,所从可能会有BUG(甚至非常恶性),所以如果你想使用它,请提前备份好你的游戏文件,在此表示抱歉(因为有BUG我估计也无法修复,抱歉抱歉)备份!备份!备份!
这段时间,在饭堂学到不少东西,一开始啥也不会,但是这还不够,所以我要继续努力学习,争取能多学点东西.,希望能坚持下去

(感谢宝可饭堂,感谢每一个帮助过我的人)
ABILITYPOTION.png
(该素材为RPGXP自带)
 

附件

  • ABILITYPOTION.png
    ABILITYPOTION.png
    1.9 KB · 查看: 0
  • 支持
反馈: Youiten

LQWU

天王
成员
2023-07-12
45
2
18
1,461
形态药水--改变宝可梦的形态
网友提问有没有可能再加一个地区形态转换药剂呢,我试着弄了一下,没想到成了(其实还是调用了调试菜单的代码,我并不会写代码,纯属侥幸)
来看效果


浏览附件bandicam 2023-09-10 16-55-52-649.mp4

由于我并未添加其他地区形态的宝可梦图片,所以这里采用了未知图腾来做展示(若使用请确保你有这个地区形态的宝可梦图片),另外请不要试图使用改变成特殊形态(如mega进化、苍响剑之王等),因为这会在战斗前或战斗后重置。
首先在PBS/items.txt中创建一个道具

代码:
[FORMSPOTION]
Name = 形态药水
NamePlural = 形态药水
Pocket = 1
Price = 20000
FieldUse = OnPokemon
Description = 可以改变宝可梦的形态。
对于ESS20.1,将图标放在Graphics/Items文件夹,并命名为FORMSPOTION.png。
在Item_Effects的末尾添加如下代码:
实现代码

Ruby:
ItemHandlers::UseOnPokemon.add(:FORMSPOTION, proc { |item, qty, pkmn,scene|
    cmd2 = 0
        formcmds = [[], []]
        GameData::Species.each do |sp|
          next if sp.species != pkmn.species
          form_name = sp.form_name
          form_name = _INTL("未命名形态") if !form_name || form_name.empty?
          form_name = sprintf("%d: %s", sp.form, form_name)
          formcmds[0].push(sp.form)
          formcmds[1].push(form_name)
          cmd2 = sp.form if pkmn.form == sp.form
        end
        if formcmds[0].length <= 1
          pbMessage(_INTL("{1} 只有一种形态。", pkmn.speciesName))
           next false
        else
          cmd2 = pbMessage(_INTL("设定宝可梦的形态。"), formcmds[1], cmd2)
          next if cmd2 < 0
          f = formcmds[0][cmd2]
            pkmn.form = f
            pkmn.calc_stats
          next true
        end
 
})
由于是临时制作,所以我使用的的是上次的图片素材(可以改色)
一些话
由于我刚开始学ruby及ess,这几个道具能弄出来纯属是巧合,其实只是在找不同和抄大佬的作业,所从可能会有BUG(甚至非常恶性),所以如果你想使用它,请提前备份好你的游戏文件,在此表示抱歉(因为有BUG我估计也无法修复,抱歉抱歉)备份!备份!备份!
(感谢宝可饭堂,感谢每一个帮助过我的人)
 

附件

  • FORMSPOTION.png
    FORMSPOTION.png
    1.9 KB · 查看: 0
最后编辑:

ch1437

冠军
元老
成员
2022-08-27
38
1
10
1,676
18
特性药水--改变宝可梦的特性
在游戏里特性胶囊和特性膏药都能为我们改变宝可梦的特性,但并不能自由选择,在研究后,创建了一个比较自由的道具,命名为特性药水(其实是借用了调试菜单改变特性的代码)
来看效果


浏览附件1402

首先在PBS/items.txt中创建一个道具
代码:
[ABILITYPOTION]
Name = 特性药水
NamePlural = 特性药水
Pocket = 1
Price = 20000
FieldUse = OnPokemon
Description = 可以改变宝可梦的特性。
对于ESS20.1,将图标放在Graphics/Items文件夹,并命名为ABILITYPOTION.png。
在Item_Effects的末尾添加如下代码:
实现代码
Ruby:
ItemHandlers::UseOnPokemon.add(:ABILITYPOTION, proc { |item, qty, pkmn,scene|
    abils = pkmn.getAbilityList
        ability_commands = []
        abil_cmd = 0
        abils.each do |i|
          ability_commands.push(((i[1] < 2) ? "" : "(H) ") + GameData::Ability.get(i[0]).name)
          abil_cmd = ability_commands.length - 1 if pkmn.ability_id == i[0]
        end
        abil_cmd =pbMessage(_INTL("选择一个特性"), ability_commands, abil_cmd)
        next if abil_cmd < 0
        pkmn.ability_index = abils[abil_cmd][1]
        pbMessage(_INTL("特性已被修改。"))  
  next true
})
一些话
由于我刚开始学ruby及ess,这两个道具能弄出来纯属是巧合,其实只是在找不同和抄大佬的作业,所从可能会有BUG(甚至非常恶性),所以如果你想使用它,请提前备份好你的游戏文件,在此表示抱歉(因为有BUG我估计也无法修复,抱歉抱歉)备份!备份!备份!
这段时间,在饭堂学到不少东西,一开始啥也不会,但是这还不够,所以我要继续努力学习,争取能多学点东西.,希望能坚持下去

(感谢宝可饭堂,感谢每一个帮助过我的人)
浏览附件1403
(该素材为RPGXP自带)
不错,嫖走了
 

LQWU

天王
成员
2023-07-12
45
2
18
1,461
雷鸣头盔--弹开雷电
让宝可梦携带后,对手的电属性招都将无法命中,来看效果
屏幕截图 2023-09-13 213156.png
浏览附件bandicam 2023-09-13 21-23-19-562.mp4

本来是想写成免疫雷电,但因个人能力不足,写好的代码没有报错,但却无法实现免疫条件,所以我只能退而求其次,既然无法免疫,那不如直接让它打不中我(如果有大佬懂,请指导一下,谢谢!!!)

来看步骤
首先在PBS/items.txt中创建一个道具

代码:
[THUNDERHELM]
Name = 雷鸣头盔
NamePlural =雷鸣头盔
Pocket = 1
Price = 30000
SellPrice = 2000
Flags = Fling_130
Description = 似乎来自另一个世界。让宝可梦携带后,对手的电属性招都将无法命中。

对于ESS20.1,将图标放在Graphics/Items文件夹,并命名为THUNDERHELM.png。
实现代码
不是必需的,只是多了一句因为雷鸣头盔的效果(不太建议添加)
Battler_UseMoveSuccessChecks中添加如下代码,如图(可搜索Message shown when a move fails the per-hit success check above)
Ruby:
elsif  !move.pbMissMessage(user, target) &&target.hasActiveItem?(:THUNDERHELM)
     @battle.pbDisplay(_INTL("因为雷鸣头盔的效果,{1}的攻击没有命中!", user.pbThis))
屏幕截图 2023-09-13 211452.png
Battle_ItemEffects中添加如下代码,如图(可搜索AccuracyCalcFromTarget handlers)
Ruby:
Battle::ItemEffects::AccuracyCalcFromTarget.add(:THUNDERHELM,
  proc { |item, mods, user, target, move, type,|
  next false if user.index == target.index
    next false if type != :ELECTRIC
    mods[:accuracy_multiplier] *= 0
 
  }
)
屏幕截图 2023-09-13 211958.png
增加麻痹的无效化在Battle_ItemEffects中添加如下代码,如图(可搜索PriorityBracketChange handlers)
Ruby:
Battle::ItemEffects::StatusCure.add(:THUNDERHELM,
  proc { |item, battler, battle, forced|
    next false if battler.status != :PARALYSIS
    itemName = GameData::Item.get(item).name
    PBDebug.log("[Item triggered] #{battler.pbThis}'s #{itemName}") if forced
      battler.pbCureStatus(forced)
    battle.pbDisplay(_INTL("{1}因为{2}无视了麻痹!", battler.pbThis, itemName)) if !forced
 
  }
)
屏幕截图 2023-09-14 222839.png




一些话
由于我刚开始学ruby及ess,这几个道具能弄出来纯属是巧合,其实只是在找不同和抄大佬的作业,所从可能会有BUG(甚至非常恶性),所以如果你想使用它,请提前备份好你的游戏文件,在此表示抱歉(因为有BUG我估计也无法修复,抱歉抱歉)备份!备份!备份!
(感谢宝可饭堂,感谢每一个帮助过我的人)
THUNDERHELM.png
(该素材来自塞尔达传说维基 网址:https://zelda.huijiwiki.com)
(由于调整的是招式的命中率,所以对手的特性还是会触发的,比如皮卡丘的静电,仍然会导致麻痹,我争取能早日完善) (已完善)
 

附件

  • THUNDERHELM.png
    THUNDERHELM.png
    4.1 KB · 查看: 7
最后编辑:

ES泽洛

世末鸽者
管理员
元老
2022-08-04
236
14
288
2,116
23
江苏
www.esplus.club
雷鸣头盔--弹开雷电
让宝可梦携带后,对手的电属性招都将无法命中,来看效果
浏览附件1499
浏览附件1500

本来是想写成免疫雷电,但因个人能力不足,写好的代码没有报错,但却无法实现免疫条件,所以我只能退而求其次,既然无法免疫,那不如直接让它打不中我(如果有大佬懂,请指导一下,谢谢!!!)
来看步骤
首先在PBS/items.txt中创建一个道具

代码:
[THUNDERHELM]
Name = 雷鸣头盔
NamePlural =雷鸣头盔
Pocket = 1
Price = 30000
SellPrice = 2000
Flags = Fling_130
Description = 似乎来自另一个世界。让宝可梦携带后,对手的电属性招都将无法命中。

对于ESS20.1,将图标放在Graphics/Items文件夹,并命名为THUNDERHELM.png。
实现代码
不是必需的,只是多了一句因为雷鸣头盔的效果
Battler_UseMoveSuccessChecks中添加如下代码,如图(可搜索Message shown when a move fails the per-hit success check above)
Ruby:
elsif  !move.pbMissMessage(user, target) &&target.hasActiveItem?(:THUNDERHELM)
     @battle.pbDisplay(_INTL("因为雷鸣头盔的效果,{1}的攻击没有命中!", user.pbThis))
浏览附件1501

Battle_ItemEffects中添加如下代码,如图(可搜索AccuracyCalcFromTarget handlers)
Ruby:
Battle::ItemEffects::AccuracyCalcFromTarget.add(:THUNDERHELM,
  proc { |item, mods, user, target, move, type,|
  next false if user.index == target.index
    next false if type != :ELECTRIC
    mods[:accuracy_multiplier] *= 0
   
  }
)
浏览附件1502

一些话
由于我刚开始学ruby及ess,这几个道具能弄出来纯属是巧合,其实只是在找不同和抄大佬的作业,所从可能会有BUG(甚至非常恶性),所以如果你想使用它,请提前备份好你的游戏文件,在此表示抱歉(因为有BUG我估计也无法修复,抱歉抱歉)备份!备份!备份!
(感谢宝可饭堂,感谢每一个帮助过我的人)
浏览附件1503
(该素材来自塞尔达传说维基 网址:https://zelda.huijiwiki.com)
露珠点了个赞
 
  • 支持
反馈: LQWU

LQWU

天王
成员
2023-07-12
45
2
18
1,461
用命中来实现免疫并没有什么不可以的,你把文本替换一下就可以了,玩家又看不到代码,你文本说是免疫,玩家自然就会认为是免疫。
另外,你免疫是它打你,你被静电了是你打它,本来就是两件事,它打你是不可能触发静电的。
以及,你可以把代码改一下,改成这样:
Ruby:
Battle::ItemEffects::AccuracyCalcFromTarget.add(:THUNDERHELM,
  proc { |item, mods, user, target, move, type|
    mods[:accuracy_multiplier] *= 0 if type == :ELECTRIC
  }
)

最后,我想到了一个非常有意思的东西,有空了发出来。
好的,感谢。
 

LQWU

天王
成员
2023-07-12
45
2
18
1,461
这是用真正的免疫实现的方式:
浏览附件1505
代码如下:
Ruby:
    if target.hasActiveItem?(:MEWTWOBALL) && moveType == :ELECTRIC   
      ret = Effectiveness::INEFFECTIVE
    end
浏览附件1506
全局搜索一下“Grounded Flying-type Pokémon become susceptible to Ground moves”,接着如图插入就可以了(别忘了将MEWTWOBALL改成你自己的THUNDERHELM)。
文本方面你自己搜一下改一下吧。
感谢大佬
 

LQWU

天王
成员
2023-07-12
45
2
18
1,461
守护者之盾--守住攻击
鬼蝉(脱壳忍者)的特性是神奇守护,只有效果绝佳的招式才能命中,但是这是一个专有特性,所以我打算将它移稙成一个道貝,来看效果

屏幕截图 2023-09-16 112421.png


浏览附件bandicam 2023-09-16 11-13-24-131.mp4
(也是利用了命中率)
步骤
首先在PBS/items.txt中创建一个道具

代码:
[GUARDIANSHIELD]
Name = 守护者之盾
NamePlural = 守护者之盾
Pocket = 1
Price = 30000
SellPrice = 2500
Flags = Fling_80
Description = 蕴含守护之力,携带后,能守住除效果绝佳外的攻击。
对于ESS20.1,将图标放在Graphics/Items文件夹,并命名为GUARDIANSHIELD.png。
实现代码
不是必需的,只是多了一句守护者之盾守住了{1}的攻击
在Battler_UseMoveSuccessChecks中添加如下代码,如图(可搜索Message shown when a move fails the per-hit success check above)
Ruby:
 elsif  !move.pbMissMessage(user, target) &&target.hasActiveItem?(:GUARDIANSHIELD)
     @battle.pbDisplay(_INTL("守护者之盾守住了{1}的攻击!", user.pbThis))
屏幕截图 2023-09-17 195329.png

在Battle_ItemEffects中添加如下代码,如图(可搜索AccuracyCalcFromTarget handlers)
Ruby:
Battle::ItemEffects::AccuracyCalcFromTarget.add(:GUARDIANSHIELD,
 proc { |item, mods, user, target, move, type |
       next false if !type || Effectiveness.super_effective?(target.damageState.typeMod)
      mods[:accuracy_multiplier] *= 0
      
  }
)
屏幕截图 2023-09-17 195419.png

一些话
由于我刚开始学ruby及ess,这几个道具能弄出来纯属是巧合,其实只是在找不同和抄大佬的作业,所从可能会有BUG(甚至非常恶性),所以如果你想使用它,请提前备份好你的游戏文件,在此表示抱歉(因为有BUG我估计也无法修复,抱歉抱歉)备份!备份!备份!
(感谢宝可饭堂,感谢每一个帮助过我的人)
GUARDIANSHIELD.png
(该素材为rpgxp自带)
 

附件

  • GUARDIANSHIELD.png
    GUARDIANSHIELD.png
    2.3 KB · 查看: 4

LQWU

天王
成员
2023-07-12
45
2
18
1,461
#-------------------------------
[FORMCHANGER]
Name = Form Changer
NamePlural = Form Changers
Pocket = 8
Price = 100000
FieldUse = OnPokemon
Flags = KeyItem
Description = An item that will allow you to change the form of your Pokemon.

Ruby:
ItemHandlers::UseOnPokemon.add(:FORMCHANGER, proc { |item, qty, pkmn, screen|
  formcmds = [[], []]
  species_data = GameData::Species.get(pkmn.species)
  if species_data && species_data.egg_groups.include?(:Undiscovered)
    pbMessage("You cannot use this item on Legendary Pokémon!")
    next false
  elsif MultipleForms.hasFunction?(pkmn, "getForm")
    pbMessage("This species decides its own form and cannot be changed.")
    next false
  end

  GameData::Species.each do |sp|
    if sp.species == pkmn.species
      next if sp.mega_stone
      form_name = sp.form_name
      form_name = "Normal" if !form_name || form_name.empty?
      form_name = sprintf("%d: %s", sp.form, form_name)
      formcmds[0].push(sp.form)
      formcmds[1].push(form_name)
    end
  end
 

  choice = pbMessage("Which form would you like?", formcmds[1], -1)

  if choice == nil || choice == -1
    pbMessage(_INTL("Did not use the Form Changer."))
    next false
  elsif formcmds[0][choice] == pkmn.form
    pbMessage("Your Pokémon is already in that Form!")
    next false
  else
    chosen_form_name = formcmds[1][choice].split(': ')[1]  # Extract the chosen form name
    pbFadeOutIn {
      pkmn.form = formcmds[0][choice]
      screen.pbRefresh
      pkmn.calc_stats
    }
    pbMessage("Your Pokémon has changed to its #{chosen_form_name} Form!")
    $player.pokedex.register(pkmn)
         
    next true
  end
})

一个形态变换器,drdoom76刚为我改的,目前我自己测试下来没有什么问题,你可以尝试一下。
如使用,请Credit(drdoom76)。
ok
 

在线成员

论坛统计

主题
352
消息
1,622
会员
2,359
最新会员
世界悳尽头

关于我们

  • 宝可梦以及其他相关名称是任天堂的商标,版权归宝可梦公司所有。宝可饭堂是一个同人游戏中文社区,不隶属于宝可梦公司。在宝可饭堂上的粉丝游戏亦未获得其授权,请支持正版游戏。
© 2022- pokefans.cn
点此延长宝可饭堂生命