设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 6018|回复: 17
打印 上一主题 下一主题

[已经解决] 如何制作枪械与弹药的联系?

[复制链接]

Lv4.逐梦者

梦石
2
星屑
6685
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

跳转到指定楼层
1
发表于 2018-5-27 15:42:39 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
最近在制作一个生存游戏,需要设置枪械普通攻击时消耗弹药,没有弹药时枪械无效的效果。
其实就是说:
  • 在战斗过程中若装备着枪械且使用了普通攻击的时候自动减少弹药(弹药是物品)
  • 如果没弹药了,可以自动卸下不允许装备,也可以攻击没有效果,总之需要用枪械不能够攻击
可是武器不能设置公共事件,也不知道怎么做没有弹药枪械无效的效果,所以希望各位dalao不吝赐教,谢谢!
祝好。

Lv2.观梦者

梦石
0
星屑
775
在线时间
92 小时
注册时间
2018-2-5
帖子
70
16
发表于 2018-7-2 12:37:40 | 只看该作者
我用一个方法解决了这个问题!
用个一个公共事件。把公共事件分别放到1号技能攻击上和敌群事件里,判定为0合回。
公共事件是分歧角色是否装备枪支。
变量=物品ID数量。
分歧变量=>1
物品ID -= 1

子弟不足
增减装备 角色 = 【无】
结束
这样是,在角色装备枪支时,普通攻击则消耗物品ID,不装备就不消耗。
没有子弹,角色就没有武器用。只能用拳头!

点评

虽然已经着手编制一个弹药消耗脚本,但是还是谢谢这位大佬的帮忙  发表于 2018-7-2 22:46
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
2
星屑
6685
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

15
 楼主| 发表于 2018-6-5 22:23:40 | 只看该作者
真紅樂章 发表于 2018-6-5 12:52
嘛小紅不是都说了是用技能了吗
技能效果里可以执行公共事件的说

非常感谢!

点评

不客氣 ^.<⌒☆  发表于 2018-6-6 00:03
祝好。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1939
在线时间
316 小时
注册时间
2018-3-4
帖子
57
14
发表于 2018-6-5 12:52:57 | 只看该作者
MCCF 发表于 2018-6-4 22:22
首先要感谢一下回复
然后并行处理事件是不会在战斗画面运行的,不过可以参考一下做成战斗事件;
不过这样 ...

嘛小紅不是都说了是用技能了吗
技能效果里可以执行公共事件的说



顺便修改小许脚本来让纯事件技能效果不那麽奇怪好了
RUBY 代码复制
  1. class Window_BattleLog < Window_Selectable
  2.   #--------------------------------------------------------------------------
  3.   # ● 使用技能時跳過空白信息
  4.   #--------------------------------------------------------------------------
  5.   def display_use_item(subject, item)
  6.     if item.is_a?(RPG::Skill)
  7.       unless item.message1.empty?
  8.         add_text(subject.name + item.message1)
  9.       end
  10.       unless item.message2.empty?
  11.         wait
  12.         add_text(item.message2)
  13.       end
  14.     else
  15.       add_text(sprintf(Vocab::UseItem, subject.name, item.name))
  16.     end
  17.   end
  18. end
  19.  
  20. class Scene_Battle < Scene_Base
  21.   #--------------------------------------------------------------------------
  22.   # ● 取消行動前閃爍效果
  23.   #--------------------------------------------------------------------------
  24.   def execute_action
  25.     use_item
  26.     @log_window.wait_and_clear
  27.   end
  28.   #--------------------------------------------------------------------------
  29.   # ● 技能訊息為空白時不顯示閃爍效果
  30.   #--------------------------------------------------------------------------
  31.   def use_item
  32.     item = @subject.current_action.item
  33.     if item.is_a?(RPG::Skill)
  34.       unless item.message1.empty?
  35.         @subject.sprite_effect_type = :whiten
  36.       end
  37.     end
  38.     @log_window.display_use_item(@subject, item)
  39.     @subject.use_item(item)
  40.     refresh_status
  41.     targets = @subject.current_action.make_targets.compact
  42.     show_animation(targets, item.animation_id)
  43.     targets.each {|target| item.repeats.times { invoke_item(target, item) } }
  44.   end
  45.   #--------------------------------------------------------------------------
  46.   # ● 技能訊息為空白時不顯示訊息
  47.   #--------------------------------------------------------------------------
  48.   def apply_item_effects(target, item)
  49.     target.item_apply(@subject, item)
  50.     refresh_status
  51.     if item.is_a?(RPG::Skill)
  52.       unless item.message1.empty?
  53.         @log_window.display_action_results(target, item)
  54.       end
  55.     end
  56.   end
  57. end


Project1.zip (1.54 MB, 下载次数: 53)
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
2
星屑
6685
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

13
 楼主| 发表于 2018-6-4 22:22:09 | 只看该作者
真紅樂章 发表于 2018-6-2 20:45
武器不能设置公共事件但是技能可以喔

首先要感谢一下回复
然后并行处理事件是不会在战斗画面运行的,不过可以参考一下做成战斗事件;
不过这样就失去了战斗的自由,每回合只能攻击,怎样才能判定他下了什么指令?
祝好。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1939
在线时间
316 小时
注册时间
2018-3-4
帖子
57
12
发表于 2018-6-2 20:45:08 | 只看该作者
武器不能设置公共事件但是技能可以喔

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
2
星屑
6685
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

11
 楼主| 发表于 2018-6-2 12:41:29 | 只看该作者
呃……这些脚本都不互相兼容啊,只要普攻技能设置消耗物品,无论如何都会无效(即使拥有弹药),怎么办
祝好。
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
2
星屑
6685
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

10
 楼主| 发表于 2018-6-1 11:47:25 | 只看该作者
xxyzx 发表于 2018-5-30 20:28
武器备注栏输入就能把该武器的普攻技能变为X号技能

感谢!已解决
祝好。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1482
在线时间
196 小时
注册时间
2016-8-9
帖子
57
9
发表于 2018-5-30 20:28:46 | 只看该作者
武器备注栏输入<攻撃スキル X>就能把该武器的普攻技能变为X号技能
  1. #------------------------------------------------------------------------------
  2. #  通常攻撃 攻撃時スキル変更
  3. #    バージョン:1.0
  4. #    RGSS3 (RPGツクールVX ACE)
  5. #    作成者:project j
  6. #    配布元:http://jsgamesfactory.web.fc2.com/
  7. #
  8. #  使い方:武器のメモ欄に <攻撃スキル 数値(スキルID)> を記述
  9. #      例: <攻撃スキル 2> → スキルID:2のスキルを使用
  10. #      ※ またアクターコマンドの名称もスキル名に変更されます
  11. #
  12. #------------------------------------------------------------------------------

  13. #==============================================================================
  14. # ■ Game_Actor
  15. #------------------------------------------------------------------------------
  16. #  アクターを扱うクラスです。このクラスは Game_Actors クラス($game_actors)
  17. # の内部で使用され、Game_Party クラス($game_party)からも参照されます。
  18. #==============================================================================

  19. class Game_Actor < Game_Battler
  20.   #--------------------------------------------------------------------------
  21.   # ● 通常攻撃のスキル ID を取得
  22.   #--------------------------------------------------------------------------
  23.   alias :jscript_attack_skill_id :attack_skill_id
  24.   def attack_skill_id
  25.     return set_attack_skill
  26.   end
  27.   #--------------------------------------------------------------------------
  28.   # ○ 通常攻撃の効果範囲を設定
  29.   #--------------------------------------------------------------------------
  30.   def set_attack_skill
  31.     for equip in weapons.compact
  32.       equip.note.dup.gsub!(/<(?:攻撃スキル)[ ]*(\d+)>/i){ return $1.to_i }
  33.     end

  34.     return 1
  35.   end
  36. end

  37. #==============================================================================
  38. # ■ Game_Enemy
  39. #------------------------------------------------------------------------------
  40. #  敵キャラを扱うクラスです。このクラスは Game_Troop クラス($game_troop)の
  41. # 内部で使用されます。
  42. #==============================================================================

  43. class Game_Enemy < Game_Battler
  44.   #--------------------------------------------------------------------------
  45.   # ● 通常攻撃のスキル ID を取得
  46.   #--------------------------------------------------------------------------
  47.   alias :jsscript_attack_skill_id :attack_skill_id
  48.   def attack_skill_id
  49.     return set_attack_skill
  50.   end
  51.   #--------------------------------------------------------------------------
  52.   # ○ 通常攻撃の効果範囲を設定
  53.   #--------------------------------------------------------------------------
  54.   def set_attack_skill
  55.     enemy_data = $data_enemies[@enemy_id]
  56.     enemy_data.note.dup.gsub!(/<(?:攻撃スキル)[ ]*(\d+)>/i){ return $1.to_i }

  57.     return 1
  58.   end
  59. end

  60. #==============================================================================
  61. # ■ Window_ActorCommand
  62. #------------------------------------------------------------------------------
  63. #  バトル画面で、アクターの行動を選択するウィンドウです。
  64. #==============================================================================
  65. class Window_ActorCommand < Window_Command
  66.   #--------------------------------------------------------------------------
  67.   # ● [再]攻撃コマンドをリストに追加
  68.   #--------------------------------------------------------------------------
  69.   def add_attack_command
  70.     command_name = $data_skills[@actor.attack_skill_id].name
  71.     add_command(command_name, :attack, @actor.attack_usable?)
  72.   end
  73. end

  74. #==============================================================================
  75. # ■ Scene_Battle
  76. #------------------------------------------------------------------------------
  77. #  バトル画面の処理を行うクラスです。
  78. #==============================================================================
  79. class Scene_Battle < Scene_Base
  80.   #--------------------------------------------------------------------------
  81.   # ● 敵キャラ選択の開始
  82.   #--------------------------------------------------------------------------
  83.   alias :jsscript_attack_skill_select_enemy_selection :select_enemy_selection
  84.   def select_enemy_selection
  85.     action = BattleManager.actor.input

  86.     if action.attack?
  87.       # 対象選択不要
  88.       if !action.item.need_selection?
  89.         next_command
  90.         return
  91.       end
  92.       # 味方から選択
  93.       if action.item.for_friend?
  94.         select_actor_selection
  95.         return
  96.       end      
  97.     end
  98.    
  99.     # 敵から選択
  100.     jsscript_attack_skill_select_enemy_selection
  101.   end
  102. end
复制代码
正在做的游戏,缓慢填坑中……
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
2
星屑
6685
在线时间
501 小时
注册时间
2018-3-23
帖子
533

R考场第七期银奖

8
 楼主| 发表于 2018-5-29 20:39:48 | 只看该作者
soulsaga 发表于 2018-5-29 13:38
https://rpg.blue/thread-226207-1-1.html

感谢,但是有无方法能让攻击的技能在装备枪械的时候更换为其他?这样会更好。
祝好。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-7-20 05:10

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表