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

Project1

 找回密码
 注册会员
搜索
楼主: Sion
打印 上一主题 下一主题

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

 关闭 [复制链接]

Lv2.观梦者

梦石
0
星屑
637
在线时间
164 小时
注册时间
2012-4-18
帖子
264
21
发表于 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","個別終了","コラプス禁止解除","次の行動者へ","座標リセットカーブ" ]       #右手砍了再回原位

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

使用道具 举报

Lv2.观梦者

梦石
0
星屑
637
在线时间
164 小时
注册时间
2012-4-18
帖子
264
22
发表于 2013-11-2 00:19:33 | 只看该作者
诶= =我在另两张帖子里,在tan12345和喵呜喵5的帮助下捣鼓出来了…………………………
发上连接给有同样需要的人看吧。
http://rpg.blue/thread-337421-1-1.html
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
1562
在线时间
46 小时
注册时间
2012-8-30
帖子
4
23
发表于 2013-11-2 13:36:14 | 只看该作者
va的远小近大脚本有木有

点评

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

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
1562
在线时间
46 小时
注册时间
2012-8-30
帖子
4
24
发表于 2013-11-2 15:09:09 | 只看该作者
大量NPC互相战斗的脚本,感觉做成骑马与砍杀就有可能了
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
1562
在线时间
46 小时
注册时间
2012-8-30
帖子
4
25
发表于 2013-11-2 15:13:43 | 只看该作者
大量NPC互相战斗,做成骑马与砍杀哪种感觉

点评

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

使用道具 举报

Lv2.观梦者

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

点评

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

使用道具 举报

Lv2.观梦者

梦石
0
星屑
293
在线时间
398 小时
注册时间
2011-5-20
帖子
128
27
发表于 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
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
92 小时
注册时间
2013-9-14
帖子
201
28
发表于 2013-11-4 07:07:46 | 只看该作者
请问可以用脚本把游戏菜单调成这个样子吗?

未命名.JPG (33.85 KB, 下载次数: 15)

未命名.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
新做不恐怖解密游戏生事中,估计会坑呢

自己画的立绘会放在这里
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
60
在线时间
23 小时
注册时间
2007-8-16
帖子
61
29
发表于 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 这种有办法能实现吗?








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

点评

默认窗口只能显示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
回复 支持 反对

使用道具 举报

Lv2.观梦者

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


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





————————————— Edited by Sion ——————————————
RUBY 代码复制
  1. class Scene_Battle
  2.   def show_normal_animation(targets, animation_id, mirror = false)
  3.     animation = $data_animations[animation_id]
  4.     if animation
  5.       targets.each do |target|
  6.         target.animation_id = animation_id
  7.         target.animation_mirror = mirror
  8.       end
  9.       abs_wait_short
  10.     end
  11.   end
  12. end
  13.  
  14. class Window_BattleLog
  15.   def display_added_states(target)
  16.     target.result.added_state_objects.each do |state|
  17.       state_msg = target.actor? ? state.message1 : state.message2
  18.       target.perform_collapse_effect if state.id == target.death_state_id
  19.       next if state_msg.empty?
  20.       replace_text(target.name + state_msg)
  21. #~       wait
  22. #~       wait_for_effect
  23.     end
  24.   end
  25.   def display_action_results(target, item)
  26.     if target.result.used
  27.       last_line_number = line_number
  28.       display_critical(target, item)
  29.       display_damage(target, item)
  30.       display_affected_status(target, item)
  31.       display_failure(target, item)
  32. #~       wait if line_number > last_line_number
  33.       back_to(last_line_number)
  34.     end
  35.   end
  36.   #
  37.   def display_miss(target, item)
  38.     if !item || item.physical?
  39.       fmt = target.actor? ? Vocab::ActorNoHit : Vocab::EnemyNoHit
  40.       Sound.play_miss
  41.     else
  42.       fmt = Vocab::ActionFailure
  43.     end
  44.      add_text(sprintf(fmt, target.name))
  45. #~     wait
  46.   end
  47.   #
  48.   def display_evasion(target, item)
  49.     if !item || item.physical?
  50.       fmt = Vocab::Evasion
  51.       Sound.play_evasion
  52.     else
  53.       fmt = Vocab::MagicEvasion
  54.       Sound.play_magic_evasion
  55.     end
  56.     add_text(sprintf(fmt, target.name))
  57. #~     wait
  58.   end
  59.   def display_hp_damage(target, item)
  60.     return if target.result.hp_damage == 0 && item && !item.damage.to_hp?
  61.     if target.result.hp_damage > 0 && target.result.hp_drain == 0
  62.       target.perform_damage_effect
  63.     end
  64.     Sound.play_recovery if target.result.hp_damage < 0
  65.     add_text(target.result.hp_damage_text)
  66. #~     wait
  67.   end
  68.   def display_mp_damage(target, item)
  69.     return if target.dead? || target.result.mp_damage == 0
  70.     Sound.play_recovery if target.result.mp_damage < 0
  71.     add_text(target.result.mp_damage_text)
  72. #~     wait
  73.   end
  74.   def display_tp_damage(target, item)
  75.     return if target.dead? || target.result.tp_damage == 0
  76.     Sound.play_recovery if target.result.tp_damage < 0
  77.     add_text(target.result.tp_damage_text)
  78. #~     wait
  79.   end
  80. end

点评

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

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-13 01:11

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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