Project1

标题: 消耗SP使用道具 [打印本页]

作者: wzzprofile    时间: 2008-8-17 07:15
提示: 作者被禁止或删除 内容自动屏蔽
作者: wzzprofile    时间: 2008-8-17 20:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: wzzprofile    时间: 2008-8-20 06:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: wzzprofile    时间: 2008-8-21 17:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: ★_茄孓    时间: 2008-8-21 18:20
物品设置里不是有消耗与不消耗吗?
作者: wzzprofile    时间: 2008-8-21 18:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: ★_茄孓    时间: 2008-8-21 18:51
把脚本放到main前,然后在脚本内自己设置下需要效果物品的ID即可
  1. module Item_Data
  2.   ITEM_ID = 1 # 有该效果的物品ID
  3. end
  4. class Scene_Item
  5.   include Item_Data
  6.   def update_target
  7.     if Input.trigger?(Input::B)
  8.       $game_system.se_play($data_system.cancel_se)
  9.       unless $game_party.item_can_use?(@item.id)
  10.         @item_window.refresh
  11.       end
  12.       @item_window.active = true
  13.       @target_window.visible = false
  14.       @target_window.active = false
  15.       return
  16.     end
  17.     if Input.trigger?(Input::C)
  18.      @item = @item_window.item
  19.      @actor_sp = $game_party.actors[@target_window.index].sp
  20.      if @item.id == ITEM_ID and @actor_sp < @item.recover_sp.abs
  21.      else
  22.       if $game_party.item_number(@item.id) == 0
  23.         $game_system.se_play($data_system.buzzer_se)
  24.         return
  25.       end
  26.       if @target_window.index == -1
  27.         used = false
  28.         for i in $game_party.actors
  29.           used |= i.item_effect(@item)
  30.         end
  31.       end
  32.       if @target_window.index >= 0
  33.         target = $game_party.actors[@target_window.index]
  34.         used = target.item_effect(@item)
  35.       end
  36.       if used
  37.         $game_system.se_play(@item.menu_se)
  38.         if @item.consumable
  39.           $game_party.lose_item(@item.id, 1)
  40.           @item_window.draw_item(@item_window.index)
  41.         end
  42.         @target_window.refresh
  43.         if $game_party.all_dead?
  44.           $scene = Scene_Gameover.new
  45.           return
  46.         end
  47.         if @item.common_event_id > 0
  48.           $game_temp.common_event_id = @item.common_event_id
  49.           $scene = Scene_Map.new
  50.           return
  51.         end
  52.       end
  53.     end
  54.       unless used
  55.         $game_system.se_play($data_system.buzzer_se)
  56.       end
  57.       return
  58.     end
  59.   end
  60. end
复制代码

作者: wzzprofile    时间: 2008-8-21 19:09
提示: 作者被禁止或删除 内容自动屏蔽
作者: ★_茄孓    时间: 2008-8-21 19:10
你ID设置好了没啊{/fd}
我默认是回复剂才有该效果,你自己看看,我都弄过可以了
作者: ★_茄孓    时间: 2008-8-21 19:11
http://rpg.blue/upload_program/files/Project9_99745891.rar
给个范例下载看吧!里面的回复剂就是-sp的 [LINE]1,#dddddd[/LINE]系统信息:本贴由本区版主认可为正确答案,66RPG感谢您的热情解答~
作者: wzzprofile    时间: 2008-8-21 19:33
提示: 作者被禁止或删除 内容自动屏蔽
作者: ★_茄孓    时间: 2008-8-21 19:56
  1. module Item_Data
  2.   ITEM_ID = 1 # 有该效果的物品ID
  3. end
  4. class Scene_Item
  5.   include Item_Data
  6.   def update_target
  7.     if Input.trigger?(Input::B)
  8.       $game_system.se_play($data_system.cancel_se)
  9.       unless $game_party.item_can_use?(@item.id)
  10.         @item_window.refresh
  11.       end
  12.       @item_window.active = true
  13.       @target_window.visible = false
  14.       @target_window.active = false
  15.       return
  16.     end
  17.     if Input.trigger?(Input::C)
  18.      @item = @item_window.item
  19.      @actor_sp = $game_party.actors[@target_window.index].sp
  20.      if @item.id == ITEM_ID and @actor_sp < @item.recover_sp.abs
  21.      else
  22.       if $game_party.item_number(@item.id) == 0
  23.         $game_system.se_play($data_system.buzzer_se)
  24.         return
  25.       end
  26.       if @target_window.index == -1
  27.         used = false
  28.         for i in $game_party.actors
  29.           used |= i.item_effect(@item)
  30.         end
  31.       end
  32.       if @target_window.index >= 0
  33.         target = $game_party.actors[@target_window.index]
  34.         used = target.item_effect(@item)
  35.       end
  36.       if used
  37.         $game_system.se_play(@item.menu_se)
  38.         if @item.consumable
  39.           $game_party.lose_item(@item.id, 1)
  40.           @item_window.draw_item(@item_window.index)
  41.         end
  42.         @target_window.refresh
  43.         if $game_party.all_dead?
  44.           $scene = Scene_Gameover.new
  45.           return
  46.         end
  47.         if @item.common_event_id > 0
  48.           $game_temp.common_event_id = @item.common_event_id
  49.           $scene = Scene_Map.new
  50.           return
  51.         end
  52.       end
  53.     end
  54.       unless used
  55.         $game_system.se_play($data_system.buzzer_se)
  56.       end
  57.       return
  58.     end
  59.   end
  60. end
  61. class Scene_Battle
  62.   include Item_Data
  63.   def update_phase3_item_select
  64.     @item_window.visible = true
  65.     @item_window.update
  66.     if Input.trigger?(Input::B)
  67.       $game_system.se_play($data_system.cancel_se)
  68.       end_item_select
  69.       return
  70.     end
  71.     if Input.trigger?(Input::C)
  72.       @item = @item_window.item
  73.       @item = @item_window.item
  74.       @actor_sp = @active_battler.sp
  75.       if @item.id == ITEM_ID and @actor_sp < @item.recover_sp.abs
  76.         $game_system.se_play($data_system.cancel_se)
  77.       else
  78.       unless $game_party.item_can_use?(@item.id)
  79.         $game_system.se_play($data_system.buzzer_se)
  80.         return
  81.       end
  82.       $game_system.se_play($data_system.decision_se)
  83.       @active_battler.current_action.item_id = @item.id
  84.       @item_window.visible = false
  85.       if @item.scope == 1
  86.         start_enemy_select
  87.       elsif @item.scope == 3 or @item.scope == 5
  88.         start_actor_select
  89.       else
  90.         end_item_select
  91.         phase3_next_actor
  92.       end
  93.       return
  94.       end
  95.     end
  96.   end
  97. end
复制代码

这样就可以了
作者: wzzprofile    时间: 2008-8-21 20:06
提示: 作者被禁止或删除 内容自动屏蔽
作者: ★_茄孓    时间: 2008-8-21 20:07
一个问题解决了就先结贴
作者: wzzprofile    时间: 2008-8-21 20:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: ★_茄孓    时间: 2008-8-21 20:32
难道使用者SP要小于消耗量才能用吗?
这似乎有点麻烦了。。。不过你到底想做什么
作者: wzzprofile    时间: 2008-8-21 20:41
提示: 作者被禁止或删除 内容自动屏蔽
作者: ★_茄孓    时间: 2008-8-21 20:44
对象的问题吧。。。不过看你还是用公共事件看看吧!
作者: wzzprofile    时间: 2008-8-21 20:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: wzzprofile    时间: 2008-8-23 15:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: wzzprofile    时间: 2008-8-25 18:50
提示: 作者被禁止或删除 内容自动屏蔽




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