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

Project1

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

[已经解决] 关于诅咒武器的

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
75 小时
注册时间
2010-10-11
帖子
275
跳转到指定楼层
1
发表于 2010-10-16 01:51:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
呃,我想做一个诅咒武器,是无论谁装备这件武器每次攻击敌人时会受到伤害的那种。
我搜索了一下,好像是要跟公共事件联系上,可是我自己弄了半天给自己弄晕了,所以来求教高手

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-7-5
帖子
483
2
发表于 2010-10-16 08:51:28 | 只看该作者
攻击敌人自己受到伤害啊,那就在武器附加状态那里选中毒好了啊,为什么要公共事件?
不想让人知道是中毒而是诅咒的话,就把中毒状态复制一下,把复制的那个名字改成诅咒咯。

点评

555  发表于 2010-10-16 18:41
呱~~~~呱!  发表于 2010-10-16 09:08
这个如果没有攻击敌人也会扣血吧= =b  发表于 2010-10-16 09:00
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
75 小时
注册时间
2010-10-11
帖子
275
3
 楼主| 发表于 2010-10-16 09:29:48 | 只看该作者
回复 BBBBB6 的帖子


    - -为什么会变成回复了,我明明点评的啊
如果状态弄成中毒,不攻击敌人也会掉血啊,我想要的只是攻击敌人掉血而已……

点评

已修改……  发表于 2010-10-16 09:30
没有看到任何内容,请修改  发表于 2010-10-16 09:30
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
75 小时
注册时间
2010-10-11
帖子
275
4
 楼主| 发表于 2010-10-16 16:25:46 | 只看该作者
呃,整整一天了,这个真的很难还是很小白没人回答呢……

点评

那是因为还没组织好语言~(PIA!)  发表于 2010-10-16 16:31
重新制作,我就是个渣渣,嗯嗯……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
29 小时
注册时间
2010-7-5
帖子
483
5
发表于 2010-10-16 18:40:58 | 只看该作者
是我的错......
那这个就要用公共事件和脚本了.......
求使用者减血的脚本.......

点评

呃,能不能帮我列出来一个,我弄得头晕了- -  发表于 2010-10-16 18:53
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
75 小时
注册时间
2010-10-11
帖子
275
6
 楼主| 发表于 2010-10-17 00:13:19 | 只看该作者
呃,还是没解决……
重新制作,我就是个渣渣,嗯嗯……
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
635
在线时间
244 小时
注册时间
2010-9-9
帖子
472
7
发表于 2010-10-18 20:46:45 | 只看该作者
在某个游戏翻到了这两个脚本,希望对楼主有帮助。
第一个是攻击反弹
第二个是魔法反弹
  1. # ▼▲▼ xrxs27a. 特殊効果 SuperEX「魔法反射」 ver.1.03 ▼▲▼
  2. # by 桜雅 在土, clum-sea

  3. #==============================================================================
  4. # □ カスタマイズポイント
  5. #==============================================================================
  6. class Scene_Battle
  7.   SKILL_REFREX_STATE_NAME         = "攻击反弹"   # 「魔法反射」ステート名
  8.   SKILL_REFREX_ANIMATION_ID       =  98          #  魔法反射のアニメーションID
  9.   REFREX_PENETRATION_SKILL_ELEMENT_NAME = "攻击反弹"   # 「反射貫通」属性名
  10. end
  11. class Scene_Battle
  12.   #--------------------------------------------------------------------------
  13.   # ○ スキルが魔法であるかどうか
  14.   #--------------------------------------------------------------------------
  15.   def skill1_is_a_magic?(skill)
  16.     return false unless skill.is_a?(RPG::Skill)
  17.     return (skill.int_f > skill.str_f)
  18.   end
  19. end

  20. #=============================================================================
  21. # ◇ 「魔法反射」ステート by 桜雅 在土
  22. #=============================================================================
  23. class Scene_Battle
  24.   #--------------------------------------------------------------------------
  25.   # ● スキルまたはアイテムの対象側バトラー設定
  26.   #--------------------------------------------------------------------------
  27.   alias xrxs_skill_refrex_set_target_battlers set_target_battlers
  28.   def set_target_battlers(scope)
  29.     xrxs_skill_refrex_set_target_battlers(scope)
  30.     # スキル使用時
  31.     if @active_battler.current_action.kind == 1
  32.       # 魔法である場合
  33.       unless skill1_is_a_magic?(@skill)
  34.         element_id = get_refrex_skill_penetration_id
  35.         # スキルに反射貫通が付加されているか。
  36.         skill_state_penetration_skill(@skill, element_id, @active_battler)
  37.         if @active_battler.penetration != true
  38.           # 検索
  39.           for target in @target_battlers.dup
  40.             # 魔法反射ステートにかかっているか?
  41.             state_id = get_skillal_refrex_id
  42.             if state_id != nil and target.state?(state_id)
  43.               # 反射---
  44.               target.refrexed = true
  45.               @target_battlers.delete(target)
  46.               unless @target_battlers.include?(@active_battler)
  47.                 @target_battlers.push(@active_battler)
  48.               end
  49.               # ---反射の設定完了
  50.             end
  51.           end
  52.         end
  53.       end
  54.     end
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● スキルに反射貫通属性が付加されているか
  58.   #--------------------------------------------------------------------------
  59.   def skill_state_penetration_skill(skill, element_id, user)
  60.     if skill.element_set.include?(element_id)
  61.       # 反射フラグリセット
  62.       user.refrexed = false
  63.       # 貫通フラグをセット
  64.       user.penetration = true
  65.     end
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● フレーム更新 (メインフェーズ ステップ 4 : 対象側アニメーション)
  69.   #--------------------------------------------------------------------------
  70.   alias xrxs_skill_refrex_update_phase4_step4 update_phase4_step4
  71.   def update_phase4_step4
  72.     # 対象側アニメーション
  73.     xrxs_skill_refrex_update_phase4_step4
  74.     # 魔法反射(貫通しない場合)
  75.     for target in $game_party.actors + $game_troop.enemies - @target_battlers
  76.       next if target.refrexed == nil or target.refrexed == false
  77.       target.animation_id = SKILL_REFREX_ANIMATION_ID
  78.       target.animation_hit = (target.damage != "Miss")
  79.       # 反射フラグリセット
  80.       target.refrexed = false
  81.     end
  82.     for target in @target_battlers
  83.       # 反射フラグリセット
  84.       target.refrexed = false
  85.     end
  86.     # 貫通フラグリセット
  87.     @active_battler.penetration = false
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ○ 魔法反射ステートのID取得
  91.   #--------------------------------------------------------------------------
  92.   def get_skillal_refrex_id
  93.     if @xrxs27a_skill_refrex_state_id == nil
  94.       result = nil
  95.       for i in 1 ... $data_states.size
  96.         if $data_states[i].name[/\A#{SKILL_REFREX_STATE_NAME}\Z/]
  97.           result = $data_states[i].id
  98.           break
  99.         end
  100.       end
  101.       @xrxs27a_skill_refrex_state_id = result
  102.     end
  103.     return @xrxs27a_skill_refrex_state_id
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ○ 反射貫通属性のID取得
  107.   #--------------------------------------------------------------------------
  108.   def get_refrex_skill_penetration_id
  109.     if @xrxs27a_refrex_penetration_element_id == nil
  110.       result = nil
  111.       for i in 1 ... $data_system.elements.size
  112.         if $data_system.elements[i] == REFREX_PENETRATION_SKILL_ELEMENT_NAME
  113.           result = i
  114.           break
  115.         end
  116.       end
  117.       @xrxs27a_refrex_penetration_element_id = result
  118.     end
  119.     return @xrxs27a_refrex_penetration_element_id
  120.   end
  121. end
  122. #==============================================================================
  123. # ■ Game_Battler
  124. #==============================================================================
  125. class Game_Battler
  126.   attr_accessor :refrexed
  127.   attr_accessor :penetration
  128. end
复制代码
  1. # ▼▲▼ XRXS27. 特殊効果 SuperEX「魔法反射」 ver.1.03 ▼▲▼
  2. # by 桜雅 在土, clum-sea

  3. #==============================================================================
  4. # □ カスタマイズポイント
  5. #==============================================================================
  6. class Scene_Battle
  7.   MAGIC_REFREX_STATE_NAME         = "魔法反弹"   # 「魔法反射」ステート名
  8.   MAGIC_REFREX_ANIMATION_ID       =  98          #  魔法反射のアニメーションID
  9.   REFREX_PENETRATION_ELEMENT_NAME = "魔法反弹"   # 「反射貫通」属性名
  10. end
  11. class Scene_Battle
  12.   #--------------------------------------------------------------------------
  13.   # ○ スキルが魔法であるかどうか
  14.   #--------------------------------------------------------------------------
  15.   def skill_is_a_magic?(skill)
  16.     return false unless skill.is_a?(RPG::Skill)
  17.     return (skill.int_f > skill.str_f)
  18.   end
  19. end

  20. #=============================================================================
  21. # ◇ 「魔法反射」ステート by 桜雅 在土
  22. #=============================================================================
  23. class Scene_Battle
  24.   #--------------------------------------------------------------------------
  25.   # ● スキルまたはアイテムの対象側バトラー設定
  26.   #--------------------------------------------------------------------------
  27.   alias xrxs_magic_refrex_set_target_battlers set_target_battlers
  28.   def set_target_battlers(scope)
  29.     xrxs_magic_refrex_set_target_battlers(scope)
  30.     # スキル使用時
  31.     if @active_battler.current_action.kind == 1
  32.       # 魔法である場合
  33.       if skill_is_a_magic?(@skill)
  34.         element_id = get_refrex_penetration_id
  35.         # スキルに反射貫通が付加されているか。
  36.         skill_state_penetration(@skill, element_id, @active_battler)
  37.         if @active_battler.penetration != true
  38.           # 検索
  39.           for target in @target_battlers.dup
  40.             # 魔法反射ステートにかかっているか?
  41.             state_id = get_magical_refrex_id
  42.             if state_id != nil and target.state?(state_id)
  43.               # 反射---
  44.               target.refrexed = true
  45.               @target_battlers.delete(target)
  46.               unless @target_battlers.include?(@active_battler)
  47.                 @target_battlers.push(@active_battler)
  48.               end
  49.               # ---反射の設定完了
  50.             end
  51.           end
  52.         end
  53.       end
  54.     end
  55.   end
  56.   #--------------------------------------------------------------------------
  57.   # ● スキルに反射貫通属性が付加されているか
  58.   #--------------------------------------------------------------------------
  59.   def skill_state_penetration(skill, element_id, user)
  60.     if skill.element_set.include?(element_id)
  61.       # 反射フラグリセット
  62.       user.refrexed = false
  63.       # 貫通フラグをセット
  64.       user.penetration = true
  65.     end
  66.   end
  67.   #--------------------------------------------------------------------------
  68.   # ● フレーム更新 (メインフェーズ ステップ 4 : 対象側アニメーション)
  69.   #--------------------------------------------------------------------------
  70.   alias xrxs_magic_refrex_update_phase4_step4 update_phase4_step4
  71.   def update_phase4_step4
  72.     # 対象側アニメーション
  73.     xrxs_magic_refrex_update_phase4_step4
  74.     # 魔法反射(貫通しない場合)
  75.     for target in $game_party.actors + $game_troop.enemies - @target_battlers
  76.       next if target.refrexed == nil or target.refrexed == false
  77.       target.animation_id = MAGIC_REFREX_ANIMATION_ID
  78.       target.animation_hit = (target.damage != "Miss")
  79.       # 反射フラグリセット
  80.       target.refrexed = false
  81.     end
  82.     for target in @target_battlers
  83.       # 反射フラグリセット
  84.       target.refrexed = false
  85.     end
  86.     # 貫通フラグリセット
  87.     @active_battler.penetration = false
  88.   end
  89.   #--------------------------------------------------------------------------
  90.   # ○ 魔法反射ステートのID取得
  91.   #--------------------------------------------------------------------------
  92.   def get_magical_refrex_id
  93.     if @xrxs27_magic_refrex_state_id == nil
  94.       result = nil
  95.       for i in 1 ... $data_states.size
  96.         if $data_states[i].name[/\A#{MAGIC_REFREX_STATE_NAME}\Z/]
  97.           result = $data_states[i].id
  98.           break
  99.         end
  100.       end
  101.       @xrxs27_magic_refrex_state_id = result
  102.     end
  103.     return @xrxs27_magic_refrex_state_id
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ○ 反射貫通属性のID取得
  107.   #--------------------------------------------------------------------------
  108.   def get_refrex_penetration_id
  109.     if @xrxs27_refrex_penetration_element_id == nil
  110.       result = nil
  111.       for i in 1 ... $data_system.elements.size
  112.         if $data_system.elements[i] == REFREX_PENETRATION_ELEMENT_NAME
  113.           result = i
  114.           break
  115.         end
  116.       end
  117.       @xrxs27_refrex_penetration_element_id = result
  118.     end
  119.     return @xrxs27_refrex_penetration_element_id
  120.   end
  121. end
  122. #==============================================================================
  123. # ■ Game_Battler
  124. #==============================================================================
  125. class Game_Battler
  126.   attr_accessor :refrexed
  127.   attr_accessor :penetration
  128. end
复制代码

点评

虽然跟我想要的不太一样,也谢谢你,这个我也正巧用的上……  发表于 2010-10-18 22:19
回复 支持 反对

使用道具 举报

Lv2.观梦者

旅之愚者

梦石
0
星屑
275
在线时间
812 小时
注册时间
2007-7-28
帖子
2148

贵宾

8
发表于 2010-10-18 21:01:51 | 只看该作者
Project2.rar (186.81 KB, 下载次数: 21)

做了个范例,先和npc说话得到双刃剑,装备上,砍幽灵,自身受到1/4的伤害【死亡,有点夸张】

脚本部分请全局搜索【六祈】,在game_battler3,只有4行

点评

十分感谢,我本来都以为不会有人回了呢~如果可以也希望版主能帮我解决CP魔法吟唱的问题TAT  发表于 2010-10-18 22:16
注释了 by 六祈……  发表于 2010-10-18 21:24
为啥搜索"六祈"=,=  发表于 2010-10-18 21:23

评分

参与人数 1星屑 +340 收起 理由
fux2 + 340 认可答案~话说我们是不是考虑把福利提高点 ...

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
75 小时
注册时间
2010-10-11
帖子
275
9
 楼主| 发表于 2010-10-18 22:33:35 | 只看该作者
回复 六祈 的帖子

呃,你的这个方法菜鸟横版的时候自己受的伤害不显示,不过呢……(邪笑,让人不知不觉的死掉也不错吧……
   
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 23:09

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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