| 赞 | 0  | 
 
| VIP | 0 | 
 
| 好人卡 | 0 | 
 
| 积分 | 1 | 
 
| 经验 | 1774 | 
 
| 最后登录 | 2015-6-5 | 
 
| 在线时间 | 14 小时 | 
 
 
 
 
 
Lv1.梦旅人 
	- 梦石
 - 0 
 
        - 星屑
 - 50 
 
        - 在线时间
 - 14 小时
 
        - 注册时间
 - 2015-4-5
 
        - 帖子
 - 31
 
 
 
 | 
	
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员  
 
x
 
 本帖最后由 牧羊仔 于 2015-5-12 16:47 编辑  
 
百变宝典找的获得物品的脚本,出现以下错误 
 
 
![]() - #===========================================================================
 
 - #动态获得道具脚本 永劫的咎人 版
 
 - #使用的时候选择事件第三页的脚本,输入 get_item("取得道具的名称",取得道具的数量)
 
 - #即可得到相应的数量的相应道具。道具名称要用小引号括起来,写成 "回复剂" 的格式。
 
 - #动态获得武器的代码是"get_weapon("武器名称",获得数量)"
 
 - #动态获得防具的代码是"get_armor("防具名称",获得数量)"
 
 - #获得金钱的代码是"get_gold(获得钱数)"
 
 - #===========================================================================
 
 - #获得金钱的时候特殊效果只有窗口随事件位置变化,米有动态哦~
 
 - #因为默认是没有金钱图标的,如果想把效果加上去的话可以尝试自己修改这个脚本。
 
 - #===========================================================================
 
 - #冲突性:几乎没有,因为很少有外挂脚本会修改def start的。其他内容均为原创。
 
 - #即使发生冲突也应该很容易进行整合^ ^
 
 - #===========================================================================
 
 - #感谢k' sama前两天解答了我读取事件坐标的问题。
 
 - #===========================================================================
 
  
- class Game_Event < Game_Character
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 启动事件 #读取事件坐标
 
 -   #--------------------------------------------------------------------------
 
 -   def start
 
 -       $event_x = 0
 
 -       $event_y = 0
 
 -     # 执行内容不为空的情况下
 
 -     if @list.size > 1
 
 -       @starting = true
 
 -       $event_x = @event.x * 32 + 3
 
 -       $event_y = @event.y * 32
 
 -     end
 
 -   end
 
 - end
 
  
- #===========================================================================
 
 - #     动态取得物品的窗口
 
 - #===========================================================================
 
 - class Window_get_item < Window_Base
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 初始化对像
 
 -   #--------------------------------------------------------------------------
 
 -   def initialize(x,y,text)
 
 -     super(x, y, 640, 52)
 
 -     @text = text
 
 -     self.contents = Bitmap.new(width - 32, height - 32)#只用來避免出錯
 
 -     #这个中心对齐忙了几乎一夜。。。。。。
 
 -     @daomei = 30 - (self.contents.text_size(@text).width / 11 - 1) * 2
 
 -     self.width =  self.contents.text_size(@text).width + @daomei
 
 -     self.contents = Bitmap.new(width - 32, height - 32)#重定位图
 
 -     @text_width = self.contents.text_size(@text).width
 
 -     @extra_width = @text_width - 140 > 0 ? @text_width - 140 : 0
 
 -     self.x = $event_x > 0 ? $event_x - self.contents.width / 2 : self.contents.width 
 
 -     #几重保险运算
 
 -     if $event_x - self.width / 2 <= 0
 
 -      self.x = 0
 
 -    end
 
 -     if $event_x + self.width / 2 >= $game_map.width * 32
 
 -      self.x = $game_map.width * 32 - self.width
 
 -    end
 
 -     self.y = $event_y 
 
 -     if $event_y + self.height / 2 + 6 >= $game_map.height * 32
 
 -       self.y = $game_map.height * 32 - self.height
 
 -     end
 
 -     self.back_opacity = 120
 
 -     refresh
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 刷新
 
 -   #--------------------------------------------------------------------------
 
 -   def refresh
 
 -     self.contents.clear
 
 -     self.contents.font.size = 18
 
 -     self.contents.draw_text(0,0,self.width - 32,20,@text)
 
 -   end
 
 - end
 
 - class Game_Party
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获得物品 
 
 -   #     item_id : 物品 ID
 
 -   #     n       : 个数
 
 -   #--------------------------------------------------------------------------
 
 -   def get_item(item_id, n)
 
 -     @angel_item_dis = $data_items[item_id]
 
 -     @item_id = item_id
 
 -     @n = n
 
 -     #和谐掉得到0个道具以及负数个武器和三位数个武器的情况
 
 -     if @n <= 0 or @n > 99
 
 -       return 
 
 -     end
 
 -     # 更新 hash 的个数数据
 
 -     if @item_id > 0
 
 -       @items[@item_id] = [[item_number(@item_id) + @n, 0].max, 99].min
 
 -     end
 
 -     #描绘图标的变量带入sprite
 
 -     $angel_dis = Sprite.new
 
 -     #描绘图标
 
 -     if @angel_item_dis.icon_name != ""
 
 -     $angel_dis.bitmap = Bitmap.new("Graphics/Icons/#{@angel_item_dis.icon_name}")
 
 -     $angel_dis.x = $event_x   
 
 -     $angel_dis.y = $event_y 
 
 -     $angel_dis.opacity = 155
 
 -   end
 
 -     #移动图标
 
 -     for i in 1..10
 
 -       $angel_dis.y -= 4
 
 -       $angel_dis.opacity += 10
 
 -       $angel_dis.update
 
 -       Graphics.update
 
 -     end
 
 -     #计算额外宽度
 
 -     @extra_width = @angel_item_dis.name.size * 9 - 140 > 0 ? @angel_item_dis.name.size  * 9 - 140 : 0
 
 -     #描绘得到道具的窗口
 
 -     if @n == 1 #如果得到的道具只有一个
 
 -     $one = 1
 
 -     $angel_name_window = Window_get_item.new($event_x - 56 > 0 ? $event_x - 56 - @extra_width / 2: 0 ,$event_y - 4,@angel_item_dis.name)
 
 -   else#除此以外的场合
 
 -     $one = 2
 
 -     @text = "#{@angel_item_dis.name} "+"×"+" #{@n}"
 
 -     $angel_name_window = Window_get_item.new($event_x - 56 > 0 ? $event_x - 56 - @extra_width / 2: 0 ,$event_y - 4,@text) 
 
 -   end
 
 -     Audio.se_play("Audio/SE/"+"006-System06",80,100)
 
 -     #只是等待50帧而已
 
 -     50.times{Graphics.update}
 
 -     #销毁
 
 -     $angel_dis.dispose
 
 -     $angel_name_window.dispose
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获得武器 
 
 -   #     item_id : 物品 ID
 
 -   #     n       : 个数
 
 -   #--------------------------------------------------------------------------
 
 -   def get_weapon(item_id, n)
 
 -     @angel_item_dis = $data_weapons[item_id]
 
 -     @item_id = item_id
 
 -     @n = n
 
 -     #和谐掉得到0个武器以及负数个武器和三位数个武器的情况的情况
 
 -     if @n <= 0 or @n > 99
 
 -       return 
 
 -     end
 
 -     # 更新 hash 的个数数据
 
 -     if @item_id > 0
 
 -       @weapons[@item_id] = [[weapon_number(@item_id) + @n, 0].max, 99].min
 
 -     end
 
 -     #描绘图标的变量带入sprite
 
 -     $angel_dis = Sprite.new
 
 -     #描绘图标
 
 -     if @angel_item_dis.icon_name !=  ""
 
 -     $angel_dis.bitmap = Bitmap.new("Graphics/Icons/#{@angel_item_dis.icon_name}")
 
 -     $angel_dis.x = $event_x   
 
 -     $angel_dis.y = $event_y 
 
 -     $angel_dis.opacity = 155
 
 -   end
 
 -     #移动图标
 
 -     for i in 1..10
 
 -       $angel_dis.y -= 4
 
 -       $angel_dis.opacity += 10
 
 -       $angel_dis.update
 
 -       Graphics.update
 
 -     end
 
 -     #计算额外宽度
 
 -     @extra_width = @angel_item_dis.name.size * 9 - 140 > 0 ? @angel_item_dis.name.size  * 9 - 140 : 0
 
 -     #描绘得到道具的窗口
 
 -     if @n == 1 #如果得到的道具只有一个
 
 -     $one = 1
 
 -     $angel_name_window = Window_get_item.new($event_x - 56 > 0 ? $event_x - 56 - @extra_width / 2: 0 ,$event_y - 4,@angel_item_dis.name)
 
 -   else#除此以外的场合
 
 -     $one = 2
 
 -     @text = "#{@angel_item_dis.name} "+"×"+" #{@n}"
 
 -     $angel_name_window = Window_get_item.new($event_x - 56 > 0 ? $event_x - 56 - @extra_width / 2: 0 ,$event_y - 4,@text)
 
 -   end
 
 -     Audio.se_play("Audio/SE/"+"006-System06",80,100)
 
 -     #只是等待50帧而已
 
 -     50.times{Graphics.update}
 
 -     #销毁
 
 -     $angel_dis.dispose
 
 -     $angel_name_window.dispose
 
 -   end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获得防具 
 
 -   #     item_id : 物品 ID
 
 -   #     n       : 个数
 
 -   #--------------------------------------------------------------------------
 
 -   def get_armor(item_id, n)
 
 -     @angel_item_dis = $data_armors[item_id]
 
 -     @item_id = item_id
 
 -     @n = n
 
 -     #和谐掉得到0个防具,负数个防具以及三位数个防具的情况
 
 -     if @n <= 0 or @n > 99
 
 -       return 
 
 -     end
 
 -     # 更新 hash 的个数数据
 
 -     if @item_id > 0
 
 -       @armors[@item_id] = [[armor_number(@item_id) + @n, 0].max, 99].min
 
 -     end
 
 -     #描绘图标的变量带入sprite
 
 -     $angel_dis = Sprite.new
 
 -     #描绘图标
 
 -     if @angel_item_dis.icon_name != ""
 
 -     $angel_dis.bitmap = Bitmap.new("Graphics/Icons/#{@angel_item_dis.icon_name}")
 
 -     $angel_dis.x = $event_x   
 
 -     $angel_dis.y = $event_y 
 
 -     $angel_dis.opacity = 155
 
 -   end
 
 -     #移动图标
 
 -     for i in 1..10
 
 -       $angel_dis.y -= 4
 
 -       $angel_dis.opacity += 10
 
 -       $angel_dis.update
 
 -       Graphics.update
 
 -     end
 
 -     #p @angel_item_dis.name.length* 9
 
 -     #计算额外宽度
 
 -     @extra_width = @angel_item_dis.name.size * 9 - 140 > 0 ? @angel_item_dis.name.size  * 9 - 140 : 0
 
 -     #描绘得到道具的窗口
 
 -     if @n == 1 #如果得到的道具只有一个
 
 -     $one = 1
 
 -     $angel_name_window = Window_get_item.new($event_x - 56 > 0 ? $event_x - 56 - @extra_width / 2: 0 ,$event_y - 4,@angel_item_dis.name)
 
 -   else#除此以外的场合
 
 -     $one = 2
 
 -     @text = "#{@angel_item_dis.name} "+"×"+" #{@n}"
 
 -     $angel_name_window = Window_get_item.new($event_x - 56 > 0 ? $event_x - 56 - @extra_width / 2: 0 ,$event_y - 4,@text)
 
 -   end
 
 -     Audio.se_play("Audio/SE/"+"006-System06",80,100)
 
 -     #只是等待50帧而已
 
 -     50.times{Graphics.update}
 
 -     #销毁
 
 -     $angel_dis.dispose
 
 -     $angel_name_window.dispose
 
 -    end
 
 -   #--------------------------------------------------------------------------
 
 -   # ● 获得金钱 
 
 -   #     n       : 个数
 
 -   #--------------------------------------------------------------------------
 
 -   def get_gold( n)
 
 -     @n = n
 
 -     #和谐掉得到0金钱以及负数金钱的情况
 
 -     if @n <= 0 
 
 -       return 
 
 -     end
 
 -      @gold = [[@gold + n, 0].max, 9999999].min 
 
 -     #计算额外宽度
 
 -     #@extra_width = @angel_item_dis.name.size * 9 - 140 > 0 ? @angel_item_dis.name.size  * 9 - 140 : 0
 
 -     #描绘得到道具的窗口
 
 -     $angel_name_window = Window_get_item.new($event_x - 56 > 0 ? $event_x - 56 : 0 ,$event_y - 4,"#{n}" + "#{$data_system.words.gold}")
 
 -     Audio.se_play("Audio/SE/"+"006-System06",80,100)
 
 -     #只是等待50帧而已
 
 -     50.times{Graphics.update}
 
 -     #销毁
 
 -     $angel_name_window.dispose
 
 -    end
 
 - end
 
 - class Interpreter
 
 -   #========================================================================
 
 -   #定义事件中动态获得物品的方法
 
 -   #========================================================================
 
 -   def  get_item(item_name,n)
 
 -     @item_name = item_name
 
 -     for i in 1...$data_items.size
 
 -       if $data_items[i].name ==  @item_name
 
 -         @item_id = i
 
 -       end
 
 -     end
 
 -      return $game_party.get_item(@item_id, n)
 
 -    end
 
 -   #========================================================================
 
 -   #定义事件中动态获得武器的方法
 
 -   #========================================================================
 
 -     def  get_weapon(item_name, n)
 
 -     @item_name = item_name
 
 -     for i in 1...$data_weapons.size
 
 -       if $data_weapons[i].name ==  @item_name
 
 -         @item_id = i
 
 -       end
 
 -     end
 
 -      return $game_party.get_weapon(@item_id, n)
 
 -    end
 
 -   #========================================================================
 
 -   #定义事件中动态获得防具的方法
 
 -   #========================================================================
 
 -     def  get_armor(item_name, n)
 
 -     @item_name = item_name
 
 -     for i in 1...$data_armors.size
 
 -       if $data_armors[i].name ==  @item_name
 
 -         @item_id = i
 
 -       end
 
 -     end
 
 -      return $game_party.get_armor(@item_id, n)
 
 -    end
 
 -   #========================================================================
 
 -   #定义事件中动态获得金钱的方法
 
 -   #========================================================================
 
 -     def  get_gold(n)
 
 -      return $game_party.get_gold(n)
 
 -   end
 
 - end 
 
  复制代码 |   
 
 
 
 |