楼主: Sion

[已经过期] 脚本定制第1轮 ♠ 已完结,新活动计划中

  [复制链接]
梦石
0
星屑
647
在线时间
165 小时
注册时间
2012-4-18
回帖
237
发表于 2013-11-1 12:00:29 | 显示全部楼层
本帖最后由 salvareless 于 2013-11-1 12:42 编辑

话说我突然有个想法,不知道能不能这么弄。

首先,在默认的普通攻击脚本那里添加一行判断,判断是不是双持职业(或者判断角色职业ID也行),如果是使用“攻击”的时候不发动1号技能,而是用另一个技能(例如100号技能)。
class Game_Action

  #--------------------------------------------------------------------------
  # ● 设置普通攻击
  #--------------------------------------------------------------------------
  def set_attack
    if 双持职业(或者职业ID)
      使用100号技能
    else
      set_skill(subject.attack_skill_id)
    end
    self
  end

end

然后100号技能的设置和1号技能一样,只不过技能公式那一栏空白。

然后在横版战斗里面定义一种新的技能施展类型。并将这种技能的其他地方设置成和普通攻击一样,只有伤害计算部分另外写成下面这样。


class SideView
  def skill_action
    case skill_id # スキルIDで指定
    when 1 # スキル1番は通常攻撃なので、上の武器アクションを実行します
      return weapon_action
      ………………
    when 100
      return "双持平砍"
    end
end


然后把下面这个定义加到横版设定的合适位置。

"计算左手武器伤害"        => [造成伤害=(总攻击力-右手武器攻击)*(1-(目标防御/目标防御+目标幸运*4+400)),]
"计算右手武器伤害"        => [造成伤害=(总攻击力-左手武器攻击)*(1-(目标防御/目标防御+目标幸运*4+400)),]

"双持平砍"        => ["敵前移動","コラプス禁止","個別開始","武器振りL","计算左手武器伤害","対象アニメ武器LWT","武器振りR","计算右手武器伤害","死亡確認","対象アニメ武器WT","個別終了","コラプス禁止解除","次の行動者へ","座標リセットカーブ" ]

不知道这种想法对不对,还有就是代码的完善。让我改代码还可以,让我自己写就= =捉襟见肘了。

发上来之后才想到,还可以这样。就是不知道能不能行得通。

还只判断是不是二刀,如果是,返回100号技能和101号技能,就是二刀的平砍相当于同时发动两个技能。不知道能不能这么做。
100号技能的伤害公式是(总攻击力-右手武器攻击)*(1-(目标防御/目标防御+目标幸运*4+400))
101号技能的伤害公式是(总攻击力-左手武器攻击)*(1-(目标防御/目标防御+目标幸运*4+400))

然后还是定义动画
    when 100
      return "双持平砍左"
    when 101
      return "双持平砍右"

然后定义
"双持平砍左"        => ["敵前移動","コラプス禁止","個別開始","武器振りL","计算伤害","対象アニメ武器LWT","死亡確認",]       #左手砍了不回原位,除非砍死了
"双持平砍右"        => ["武器振りR","计算伤害","死亡確認","対象アニメ武器WT","個別終了","コラプス禁止解除","次の行動者へ","座標リセットカーブ" ]       #右手砍了再回原位

这是一种神奇的想法,不知道现实不现实啊。
回复

使用道具 举报

梦石
0
星屑
647
在线时间
165 小时
注册时间
2012-4-18
回帖
237
发表于 2013-11-2 00:19:33 | 显示全部楼层
诶= =我在另两张帖子里,在tan12345和喵呜喵5的帮助下捣鼓出来了…………………………
发上连接给有同样需要的人看吧。
http://rpg.blue/thread-337421-1-1.html
回复

使用道具 举报

梦石
0
星屑
1562
在线时间
46 小时
注册时间
2012-8-30
回帖
4
发表于 2013-11-2 13:36:14 | 显示全部楼层
va的远小近大脚本有木有

点评

http://bbs.66rpg.com/thread-292410-1-1.html  发表于 2013-11-2 16:51
回复

使用道具 举报

梦石
0
星屑
1562
在线时间
46 小时
注册时间
2012-8-30
回帖
4
发表于 2013-11-2 15:09:09 | 显示全部楼层
大量NPC互相战斗的脚本,感觉做成骑马与砍杀就有可能了
回复

使用道具 举报

梦石
0
星屑
1562
在线时间
46 小时
注册时间
2012-8-30
回帖
4
发表于 2013-11-2 15:13:43 | 显示全部楼层
大量NPC互相战斗,做成骑马与砍杀哪种感觉

点评

没有时间弄复杂的系统。  发表于 2013-11-2 23:00
回复

使用道具 举报

梦石
0
星屑
293
在线时间
398 小时
注册时间
2011-5-20
回帖
94
发表于 2013-11-3 20:37:01 | 显示全部楼层
定制一个技能设置成全体敌人的时候,动画改成XP那样的同时播放(动画里设置不是画面),敌人有两个以上死亡的时候改成同时闪烁,这个应该算小脚本吧......

点评

请先描述清楚效果。XP的同时播放以及死亡的同时闪烁是指什么。  发表于 2013-11-3 20:52
回复

使用道具 举报

梦石
0
星屑
293
在线时间
398 小时
注册时间
2011-5-20
回帖
94
发表于 2013-11-3 21:02:14 | 显示全部楼层
893299399 发表于 2013-11-3 20:37
定制一个技能设置成全体敌人的时候,动画改成XP那样的同时播放(动画里设置不是画面),敌人有两个以上死亡的 ...

XP的战斗中如果技能的目标是敌方全体,并且动画里位置不是画面,在战斗中用这个技能被击杀的多个敌人会同时播放这个动画,而va的是依次播放动画,怎么改成XP那样的。
死亡是全体攻击敌人,比如一次全体攻击死了三个,VA是从第一个敌人到第三个敌人同时播放死亡的那个闪烁效果,怎么改成像XP那样的被一次攻击击杀的三个敌人同时播放死亡的闪烁效果......这样明白了么...

点评

因为伤害处理之后要显示战斗信息,然而战斗信息是根据单次伤害分段显示的,那么合并之后战斗信息应该如何处理呢?  发表于 2013-11-3 21:52
谢谢,明白了  发表于 2013-11-3 21:36
回复

使用道具 举报

梦石
0
星屑
50
在线时间
92 小时
注册时间
2013-9-14
回帖
167
发表于 2013-11-4 07:07:46 | 显示全部楼层
请问可以用脚本把游戏菜单调成这个样子吗?
未命名.JPG

点评

http://bbs.66rpg.com/home.php?mod=space&uid=291206&do=blog&id=12232  发表于 2013-11-6 02:45
你自己搜索一下修改菜单,这个问题已经被问过很多次了。  发表于 2013-11-4 18:24
新做不恐怖解密游戏生事中,估计会坑呢

自己画的立绘会放在这里
回复

使用道具 举报

梦石
0
星屑
60
在线时间
23 小时
注册时间
2007-8-16
回帖
46
发表于 2013-11-4 21:05:15 | 显示全部楼层
本帖最后由 AVENTZERO 于 2013-11-5 22:44 编辑

全屏显示文字(超过4行限制的脚本)
附带一个showtext方法在事件脚本中调用如   A\n A\n A\n A\n A\n A\n A\n   就能显示很多行的A 这种有办法能实现吗?

aaa.jpg


BBB.jpg



为什么它到后面就换不了行了!!?

点评

默认窗口只能显示4行,而且不支持 \n 换行。 你先试试喵呜给的脚本吧。  发表于 2013-11-6 12:06
http://hikimoki.sakura.ne.jp/rgss3/script_neta.html 这个RGSS3_ノベルウィンドウ脚本  发表于 2013-11-6 02:54
大神求解!!  发表于 2013-11-5 22:44
怎么显示?  发表于 2013-11-5 18:56
回复

使用道具 举报

梦石
0
星屑
293
在线时间
398 小时
注册时间
2011-5-20
回帖
94
发表于 2013-11-8 20:34:46 | 显示全部楼层
本帖最后由 Sion 于 2013-11-12 18:31 编辑
893299399 发表于 2013-11-3 21:02
XP的战斗中如果技能的目标是敌方全体,并且动画里位置不是画面,在战斗中用这个技能被击杀的多个敌人会同 ...


把受到伤害的信息给去掉只留下使用物品,技能,状态和攻击的信息能行么





————————————— Edited by Sion ——————————————
[pre lang="ruby" line="1"]class Scene_Battle
  def show_normal_animation(targets, animation_id, mirror = false)
    animation = $data_animations[animation_id]
    if animation
      targets.each do |target|
        target.animation_id = animation_id
        target.animation_mirror = mirror
      end
      abs_wait_short
    end
  end
end

class Window_BattleLog
  def display_added_states(target)
    target.result.added_state_objects.each do |state|
      state_msg = target.actor? ? state.message1 : state.message2
      target.perform_collapse_effect if state.id == target.death_state_id
      next if state_msg.empty?
      replace_text(target.name + state_msg)
#~       wait
#~       wait_for_effect
    end
  end
  def display_action_results(target, item)
    if target.result.used
      last_line_number = line_number
      display_critical(target, item)
      display_damage(target, item)
      display_affected_status(target, item)
      display_failure(target, item)
#~       wait if line_number > last_line_number
      back_to(last_line_number)
    end
  end
  #
  def display_miss(target, item)
    if !item || item.physical?
      fmt = target.actor? ? Vocab::ActorNoHit : Vocab::EnemyNoHit
      Sound.play_miss
    else
      fmt = Vocab::ActionFailure
    end
     add_text(sprintf(fmt, target.name))
#~     wait
  end
  #
  def display_evasion(target, item)
    if !item || item.physical?
      fmt = Vocab::Evasion
      Sound.play_evasion
    else
      fmt = Vocab::MagicEvasion
      Sound.play_magic_evasion
    end
    add_text(sprintf(fmt, target.name))
#~     wait
  end
  def display_hp_damage(target, item)
    return if target.result.hp_damage == 0 && item && !item.damage.to_hp?
    if target.result.hp_damage > 0 && target.result.hp_drain == 0
      target.perform_damage_effect
    end
    Sound.play_recovery if target.result.hp_damage < 0
    add_text(target.result.hp_damage_text)
#~     wait
  end
  def display_mp_damage(target, item)
    return if target.dead? || target.result.mp_damage == 0
    Sound.play_recovery if target.result.mp_damage < 0
    add_text(target.result.mp_damage_text)
#~     wait
  end
  def display_tp_damage(target, item)
    return if target.dead? || target.result.tp_damage == 0
    Sound.play_recovery if target.result.tp_damage < 0
    add_text(target.result.tp_damage_text)
#~     wait
  end
end[/pre]

点评

好了。  发表于 2013-11-12 18:29
好吧我看看。  发表于 2013-11-10 21:55
回复

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部