Project1

标题: 如何做出这样一个技能效果……? [打印本页]

作者: 391395435    时间: 2008-7-10 21:53
提示: 作者被禁止或删除 内容自动屏蔽
作者: lonelyj    时间: 2008-7-10 22:29
你这个的却挺复杂,而且有那么点不合理。如果打BOSS的时候用这个技能,你岂不是无敌了?

如果一定要这种技能,我建议你改成一个敌人和角色的攻防值的特殊算法,这样才比较合理。

你可以用公共事件来试试做这个技能,应该可以。
作者: 391395435    时间: 2008-7-11 00:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: redant    时间: 2008-7-11 01:17


莫非意思这样?
作者: 391395435    时间: 2008-7-11 01:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灯笼菜刀王    时间: 2008-7-11 03:56
在技能上附带一个状态,比如吸血

然后技能引用公共事件

然后公共事件上设置,当A中吸血状态的时候
                       变量1 = A现有HP
                       变量1 /= 20
                       变量2 = 0
                    结束
所有角色都这样设置(当然可以用脚本简化,不过不写出来,否则就变养手党了,自己慢慢设置。),然后敌人也一样设置,不过 变量2 = 1
然后 当变量2 = 0的时候
     脚本:a = $game_troop.members.size
           b = $game_variables[1]
           $game_variables[3] = b/a
         然后所有敌人增加 变量3 的HP。
      当变量2 = 1的时候
      脚本:a = $game_party.actors.size
            b = $game_variables[1]
           $game_variables[3] = b/a
          然后所有角色增加 变量3 的HP。
OK,
注意,一定要判断变量2是0还是1,否则状态不中的话,会出问题的....

要想技能对某些敌人无效,只要让该敌人对吸血状态的防御度是F就行了。
[LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
作者: lonelyj    时间: 2008-7-11 06:01
[quote]以下引用391395435于2008-7-10 16:48:42的发言:


只吸5%而已,会无敌吗?

Boss的血都是很厚的吧?一般是角色的几倍,你只要不停的用这个技能,你的血就会保持很多,而Boss的血被你一点一点吸干。等他快没血给你吸的时候战斗也快结束了。

这个技能会使Boss战的难度大为减小。

无敌虽然夸张了点,但的确让Boss变的弱了很多。

楼主自己考虑。另外,我说的特殊算法也没什么不可理解的,就是通过敌人的防御,你的攻击力来决定吸血的量,这样就避免了Boss战难度偏低的问题。

而用公共事件,我也只是一种猜想,没有实践去做。楼主认为不可行,我也没有什么可说的了。
作者: 391395435    时间: 2008-7-11 06:13
提示: 作者被禁止或删除 内容自动屏蔽
作者: 大地的雨    时间: 2008-7-11 06:19
全局搜索:def skill_effect(user, skill)
找到:
      # HP 的伤害减法运算
      last_hp = self.hp
      self.hp -= self.damage

改成:
      # HP 的伤害减法运算
      if skill.id == 该特技编号
        user.hp += (self.hp * 5 / 100)
      end

      last_hp = self.hp
      self.hp -= self.damage

将该特技编号改为你那招技能的编号就行了。
作者: 灯笼菜刀王    时间: 2008-7-11 11:25
我的答案是纯事件的(无视后面两个脚本...那个是为了节省两个变量而已...)

只要看完新手教程的都会,

自己动手试试吧。至于漏洞,或许就是那个members 不知道在troop里有没有被定义-。-~ 如果不允许,那就按你说的改成8好了=。=

PS,楼上的那个只是攻击的时候恢复对方剩余HP的5%量而已,
  一没平均分到我方,
  二伤害不是对方的剩余HP5%


-----------分割分割-------------------

发现我上面的回答漏洞了= =,就是没有伤害,还要让中吸血的人减去变量1的血-。-  
还有最后当然是要全体清除吸血状态了。

作者: 391395435    时间: 2008-7-11 18:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 你小八    时间: 2008-7-11 19:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: 391395435    时间: 2008-7-13 03:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: dbshy    时间: 2008-7-13 06:24
skill_effect
if skill.id == id then
if uesr.is_a?(Game_Actor) then
  for enemy in $game_troop.enemies
      skill_hp += enemy.hp * 5 / 100
    end
  for actor in $game_party.actors
     actor.hp += skill_hp / $game_party.actors.sizes
  end
  end
if uesr.is_a?(Game_Enemy) then
    .............
  跟上面的差不多,看懂后自己写

end
[LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可,66RPG感谢您的热情解答~
作者: 391395435    时间: 2008-7-14 05:05
提示: 作者被禁止或删除 内容自动屏蔽
作者: 391395435    时间: 2008-7-17 05:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: 灯笼菜刀王    时间: 2008-7-17 06:25
正确答案大家已经都说了,公共事件,脚本等方法也都说了

范例是不会有人提供的,因为这个只是简单的算法而已。伸手党的手也不能伸太长了。

顺便厚道的回答下你的疑问
你既然会“此技能只有我方会使用”和“此技能只有敌方会使用”
那,要双方都会,只要两个都满足不就行了。具体就是上面大家说的先判断我方,然后判断敌方。
作者: sizz123    时间: 2008-7-17 06:35
   用状态法不就完了?
   状态全员
   如果敌人中了状态,连接公共事件"全体吸取"

   敌人1失血5%  #这种数据的计算你自己去考虑
   标签连接下一个敌人2
   ........一直到标签连接到最后一个敌人也进行了判断

   不就完成了?
作者: ★_茄孓    时间: 2008-7-17 06:48
  1. class Scene_Battle
  2.   ########
  3. alias o_update update
  4.   def update
  5.     o_update
  6.     if $make_hp
  7.      if @active_battler.is_a?(Game_Actor)
  8.       for target in @target_battlers
  9.         for i in 0...$game_party.actors.size
  10.         actor = $game_party.actors[i]
  11.         $damage = target.hp*0.05
  12.         target.hp = (target.hp - target.hp*0.05).to_i
  13.         add_hp = (target.hp/$game_party.actors.size).to_i
  14.         actor.hp += add_hp
  15.         $make_hp = false
  16.         return
  17.         end # for
  18.       end # for
  19.     else
  20.       for target in @target_battlers
  21.         for i in 0...$game_troop.enemies.size
  22.         enemy = $game_troop.enemies[i]
  23.         $damage = target.hp*0.05
  24.         target.hp -= (target.hp - target.hp*0.05).to_i
  25.         add_hp = (target.hp/$game_troop.enemies.size).to_i
  26.         enemy.hp += add_hp
  27.         $make_hp = false
  28.         return
  29.        end # for
  30.       end # for
  31.      end # if
  32.    end # if
  33. end
  34.   def update_phase4_step5
  35.     @help_window.visible = false
  36.     @status_window.refresh
  37.     for target in @target_battlers
  38.      if $make_hp
  39.       target.damage = $damage
  40.       target.damage_pop = true
  41.      else
  42.       if target.damage != nil
  43.         target.damage_pop = true
  44.       end
  45.     end
  46.   end
  47.     @phase4_step = 6
  48.   end
  49. end
复制代码

脚本插入main前
设置公共事件 内容为
$make_hp = true
设置技能加入此公共事件就可以了!
[LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可,66RPG感谢您的热情解答~
作者: 391395435    时间: 2008-7-19 19:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: 391395435    时间: 2008-7-22 21:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: darkten    时间: 2008-7-26 21:21
以下引用391395435于2008-7-22 13:26:22的发言:
我真的不知道哪个是正确答案!斑竹不要再“提醒”我了!!!!!

不好意思,以后会注意的...
作者: redant    时间: 2009-6-12 08:00
公共事件做的 应该是合乎 LZ的标准 (不过我做的是4个人的 LZ一看就会做其他的了)
http://rpg.blue/upload_program/files/Project1_96679375.rar

因为在特技里面 所以双方都可以学到


[LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可,66RPG感谢您的热情解答~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1