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

Project1

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

[已经解决] 请问Vx可不可以设置仇恨值?

[复制链接]

Lv1.梦旅人

梦石
0
星屑
175
在线时间
3 小时
注册时间
2011-12-4
帖子
2
跳转到指定楼层
1
发表于 2011-12-4 23:19:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在下一小白,请问各位大大,VX能不能设定仇恨值来控制敌人攻击的目标?我在教程上貌似没找到这个0 0

Lv2.观梦者

梦石
0
星屑
448
在线时间
628 小时
注册时间
2011-9-27
帖子
3996
2
发表于 2011-12-5 08:12:01 | 只看该作者
  1. =begin

  2. 設置方法

  3. 請在戰鬥畫面中使用(戰鬥事件或是在戰鬥畫面觸發的公共事件)

  4. 仇恨值變量  

  5. $game_actors[角色編號].current_action.hatred # 我方指定角色的仇恨值變量


  6. --------------------------------------------------------------------------------

  7. $game_party.actors.[我方順序].current_action.hatred # 我方指定隊伍位置的仇恨值變量
  8. --------------------------------------------------------------------------------

  9. $game_troop.enemies[敵人順序].current_action.hatred # 敵方指定隊伍位置的仇恨值變量


  10. --------------------------------------------------------------------------------


  11. ★以下是使用範例☆

  12. $game_actors[7].current_action.hatred = 10 # 我方隊伍中角色編號為7的角色仇恨值變為10

  13. $game_party.actors.[2].current_action.hatred += 5 # 我方第3個角色(0為第1個)仇恨值增加5

  14. $game_troop.enemies[4].current_action.hatred -= 3 # 敵方第4個角色仇恨值減少3
  15.   

  16. --------------------------------------------------------------------------------

  17.   

  18. 使用者自定設置說明

  19. 【1】Sword51_AddHatred = [仇恨值增加量]

  20. 【2】Sword51_AddHatred = [每少多少血, 仇恨值增加量]

  21. 設定被攻擊的角色對發動攻擊的角色增加的仇恨值多寡設定

  22. 使用設置法1表示一律增加 仇恨值增加量 的仇恨值

  23. 使用設置法2表示每受到 每少多少血 的血量,各增加 仇恨值增加量 的仇恨值


  24. 【1】Sword51_RedHatred = [仇恨值減少量]

  25. 【2】Sword51_RedHatred = [每少多少血, 仇恨值減少量]

  26. 設定攻擊者攻擊指定目標時,則對那個目標的仇恨減少(簡單來說就是報仇後仇恨降低)

  27. 使用設置法1表示一律增加 仇恨值增少量 的仇恨值

  28. 使用設置法2表示每受到 每少多少血 的血量,各增加 仇恨值增少量 的仇恨值


  29. Sword51_Max = 0
  30. 設定仇恨值最高的上限,如果設定0則表示無上限,仇恨值可以不斷的增加


  31. Sword51_SkillHatred[技能編號] = 額外增減量 NEW

  32. 當發動指定的技能時,敵方所有怪將對那技能發動者增加仇恨

  33. 可以製作出像是敵人看到某角色幫其他角色或自己補血時,敵人不是就白打了

  34. 所以用這個效果,快速增加使用指定技能的角色的仇恨,讓對手集中火力攻擊補血者

  35. 可自行添加多個Sword51_SkillHatred設置,不使用該效果也可以全數移除掉

  36. 技能編號:設定會額外增減仇恨值的技能編號,設定0則沒設定的技能都採用0號的設定

  37. 額外增減量:設定使用指定技能所增加的仇恨值,如果是扣仇恨值可以指定負數即可(全體扣除)


  38. Sword51_ItemHatred[物品編號] = 額外增減量 NEW

  39. 效果同Sword51_SkillHatred設置的相同,只不過這個是針對物品的效果

  40. 也就是看到使用指定物品的角色,則敵方所有怪對物品使用者的仇恨將會額外增加

  41. 可自行添加多個Sword51_ltemHatred設置,不使用該效果也可以全數移除掉

  42. 物品編號:設定會額外增減仇恨值的技能編號,設定0則沒設定的技能都採用0號的設定

  43. 額外增減量:設定使用指定技能所增加的仇恨值,如果是扣仇恨值可以指定負數即可(全體扣除)

  44. =end

  45. module Sword

  46. #=======================================

  47. #★ 魔劍工舖 - 仇恨系統 1.00 (VX)

  48. # http://blog.yam.com/a870053jjkj/

  49. #=======================================

  50.   Sword51_SkillHatred, Sword51_ItemHatred = [], []

  51. =begin

  52. ========================================

  53. ● 設置方法(限戰鬥畫面使用)

  54. 已方仇恨值變量(人物順序):$game_actors[角色編號].action.hatred

  55. 已方仇恨值變量(隊伍順序):$game_party.members[我方順序].action.hatred

  56. 敵方仇恨值變量(隊伍順序):$game_troop.members[敵人順序].action.hatred

  57. ========================================

  58. =end

  59. #=======================================

  60. #● 使用者自定設置

  61. Sword51_AddHatred = [10, 1] # 增加仇恨的數量 [增加量] 或 [每扣血量, 增加量]

  62. Sword51_RedHatred = [10, 1] # 減少仇恨的數量 [減少量] 或 [每扣血量, 減少量]

  63. Sword51_Max = 0 # 設定仇恨值的最大值,設0表示無限制

  64. #--------------------------------------------------------------

  65. #○ 技能仇恨增減表(Sword51_SkillHatred[技能編號] = 增減量)

  66. Sword51_SkillHatred[1] = 50

  67. #--------------------------------------------------------------

  68. #○ 物品仇恨增減表(Sword51_ItemHatred[物品編號] = 增減量)

  69. Sword51_ItemHatred[0] = 0

  70. #=======================================

  71.   $Sword ? $Sword[51] = true : $Sword = {51=>true} # 腳本使用標誌

  72. end

  73. #=======================================

  74. #■ 處理行動 (戰鬥中的行動) 的類別

  75. class Game_BattleAction

  76.   include Sword # 連接自動設置

  77.   attr_accessor :hatred # 仇恨值記錄表

  78.   #-------------------------------------------------------------

  79.   #● 初始化物件(戰鬥者)

  80.   #  定義一個資料表,負責儲存敵人對我方角色的仇恨值數值列表

  81.   alias sword51_initialize initialize

  82.   def initialize(battler) ; sword51_initialize(battler)

  83.     @hatred = Hash.new{|a, b| a[b] = 0} # 定義仇恨紀錄表

  84.   end

  85.   #-------------------------------------------------------------

  86.   #● 隨機目標

  87.   #  將預設的敵人目標選擇來計算誰的仇恨值最高,最高仇恨者為攻擊目標

  88.   alias sword51_decide_random_target decide_random_target

  89.   def decide_random_target

  90.     hatred = [0, 0] # 目前仇恨最高的角色紀錄

  91.     @hatred.each{|k, v| hatred[1] == v ? # 計算攻擊目標

  92.     (hatred = [k, v] if rand(2) == 1) : hatred = [k, v] if hatred[1] <= v}

  93.     if hatred[0] == 0 ; sword51_decide_random_target # 隨機目標

  94.     else ; $game_party.members.each_index{|i| next unless $game_party.members[i]

  95.       @target_index = i if $game_party.members[i].id == hatred[0]}

  96.     end ; @target_index

  97.   end

  98. end

  99. #=======================================

  100. #■ 處理戰鬥畫面的類別

  101. class Scene_Battle

  102.   include Sword # 連接自動設置

  103.   #-------------------------------------------------------------

  104.   #● 執行戰鬥行動:使用技能

  105.   #  使用指定技能就增加或減少仇恨值的處理

  106.   alias sword51_execute_action_skill execute_action_skill

  107.   def execute_action_skill

  108.     skill_id = @active_battler.action.skill.id

  109.     hatred = Sword51_SkillHatred[skill_id] ? Sword51_SkillHatred[skill_id] :
  110.                   (Sword51_SkillHatred[0] ? Sword51_SkillHatred[0] : nil)

  111.     $game_troop.members.each{|enemy| enemy.action.hatred[

  112.     @active_battler.id] += hatred} if hatred # 有使用指定技能時增加憤怒值

  113.     sword51_execute_action_skill

  114.   end

  115.   #-------------------------------------------------------------

  116.   #● 執行戰鬥行動:物品

  117.   #  使用指定物品就增加或減少仇恨值的處理

  118.   alias sword51_execute_action_item execute_action_item

  119.   def execute_action_item

  120.     item_id = @active_battler.action.item.id

  121.     hatred = Sword51_ItemHatred[item_id] ? Sword51_ItemHatred[item_id] :
  122.                   (Sword51_ItemHatred[0] ? Sword51_ItemHatred[0] : nil)

  123.     $game_troop.members.each{|enemy| enemy.action.hatred[

  124.     @active_battler.id] += hatred} if hatred # 有使用指定物品時增加憤怒值

  125.     sword51_execute_action_item

  126.   end

  127.   #-------------------------------------------------------------

  128.   #● 顯示攻擊動畫

  129.   #  在顯示動畫的時候,順便增加或減少敵人對我方角色的仇恨值

  130.   alias sword51_display_attack_animation display_attack_animation

  131.   def display_attack_animation(targets)

  132.     targets.each do |target| if target.hp_damage.is_a?(Numeric) ; if target.hp_damage > 0

  133.       ahatred = Sword51_AddHatred.size == 1 ? Sword51_AddHatred[0] :  # 計算仇恨增加值

  134.       target.hp_damage / Sword51_AddHatred[0] * Sword51_AddHatred[1]

  135.       rhatred = Sword51_RedHatred.size == 1 ? Sword51_RedHatred[0] : # 計算仇恨減少值

  136.       target.hp_damage / Sword51_RedHatred[0] * Sword51_RedHatred[1]

  137.       if @active_battler.is_a?(Game_Actor) # 攻擊者是同伴時

  138.         current = $Sword_VX ? target.action.hatred[@active_battler.id] :
  139.         target.action.hatred[@active_battler.id]

  140.         next if target.is_a?(Game_Actor) # 如果我方對我方行動的話就跳過該目標

  141.         current += ahatred ; current = [current, Sword51_Max].min if Sword51_Max > 0

  142.         $Sword_VX ? target.action.hatred[@active_battler.id] = current :
  143.         target.action.hatred[@active_battler.id] = current

  144.       else # 攻擊者是敵人時

  145.         troop = $game_troop.members.index(@active_battler)

  146.         current = $Sword_VX ? target.action.hatred[troop] : target.action.hatred[troop]

  147.         next if target.is_a?(Game_Enemy) # 如果敵方對敵方行動的話就跳過該目標

  148.         current += ahatred ; current = [current, Sword51_Max].min if Sword51_Max > 0

  149.         $Sword_VX ? target.action.hatred[troop] = current :
  150.         target.action.hatred[troop] = current

  151.       end ; @active_battler.action.hatred[target.id] -= rhatred

  152.       @active_battler.action.hatred[target.id] =
  153.       [@active_battler.action.hatred[target.id], 0].max # 控制底線下限

  154.     end ; end ; end

  155.     sword51_display_attack_animation(targets)

  156.     p $game_troop.members[0].action.hatred, $game_troop.members[1].action.hatred

  157.   end

  158. end
复制代码
叶子仇恨系统VX版
纯引用http://rpg.blue/thread-158865-1-1.html

点评

使用方法看http://bbs.66rpg.com/thread-158865-1-1.html里面的2楼  发表于 2011-12-5 08:12
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
175
在线时间
3 小时
注册时间
2011-12-4
帖子
2
3
 楼主| 发表于 2011-12-5 23:04:47 | 只看该作者
请问第101到149的参数应该放在哪里?
回复

使用道具 举报

Lv2.观梦者

梦石
0
星屑
448
在线时间
628 小时
注册时间
2011-9-27
帖子
3996
4
发表于 2011-12-6 08:13:04 | 只看该作者
alone10 发表于 2011-12-5 23:04
请问第101到149的参数应该放在哪里?

我也没用过这个脚本,所以建议你看他们的点评↓
http://rpg.blue/thread-158865-1-1.html
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
75 小时
注册时间
2010-12-25
帖子
86
5
发表于 2011-12-7 21:01:09 | 只看该作者
= =应该用变量就可以完成了吧......
回复

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
304 小时
注册时间
2011-12-29
帖子
155
6
发表于 2011-12-30 08:54:26 | 只看该作者
.................................................

评分

参与人数 1星屑 -200 收起 理由
月夜神音 -200 4处灌水啊……

查看全部评分

怎么发图片
回复

使用道具 举报

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

本版积分规则

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

站长信箱:fux2@moe9th.com|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2025-4-8 17:14

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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