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

Project1

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

关于兼容问题。

 关闭 [复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
262 小时
注册时间
2009-1-10
帖子
309
跳转到指定楼层
1
发表于 2009-5-16 06:25:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
  1. #==============================================================================
  2. # ■ Sprite_Base
  3. #------------------------------------------------------------------------------
  4. #  处理动画显示追加活动块的类变量。
  5. #   todo list:
  6. #   1、为了多技能改变色调的时候不出错,最好给screen记录一个当前默认的标准颜色
  7. #   2、彩虹神剑的伤血方法,将damage作为参数建立
  8. #==============================================================================

  9. $animation_hitpause = 0  # 打击感专用变量,击打的时候这个数字上升
  10.                          # 在需要刷新的scene(如战斗和ARPG地图),这个值权重极高
  11.                          # 如果>0,则-1,并且屏蔽其他所有按键以外的刷新。
  12. # $game_system.animation_lag = 4       # 动画的延时,这个考虑以后可以作为动态的,越小越快,最小为1                        

  13. class Sprite_Base < Sprite
  14.   #--------------------------------------------------------------------------
  15.   # ● 类变量
  16.   # @@animations 用来记录动画正在播放,防止同一时间多次在同位置播放全屏动画
  17.   # @@_reference_count 用来记录哪些素材正在被使用
  18.   #--------------------------------------------------------------------------
  19.   @@animations = []
  20.   @@_reference_count = {}
  21.   HITPAUSE_KR = 3         # 打击感宽容度,宽容度越高击中的停顿感越差,推荐0.5 - 3
  22.                           # 建议将这里设置为一个大数,用$animation_sp定协议制作打击感
  23.   #--------------------------------------------------------------------------
  24.   # ● done 初始化对像
  25.   #     viewport : 视口
  26.   #--------------------------------------------------------------------------
  27.   def initialize(viewport = nil)
  28.     super(viewport)
  29.     @use_sprite = true          # 活动块使用标记
  30.     @animation_duration = 0     # 动画剩余时间
  31.     # 基本结构:0.animation, 1.mirror, 2.length, 3.sprites, 4.ox, 5.oy ,
  32.     #           6.[bitmap1, bitmap2], 7.[frame_index, quanzhong](权重表),
  33.     #           8.all_quanzhong, 9.[hp_damage, sp_damage, string]
  34.     @animation_collection = []
  35.     @fordispose = []            # 待消除的列表
  36.     @damage_string = []         # 与damage有关的列表
  37.     @damage_duration = 0        # 如果>0则刷新damage
  38.     @battler = nil
  39.   end
  40.   #--------------------------------------------------------------------------
  41.   # ● done 释放
  42.   #--------------------------------------------------------------------------
  43.   def dispose
  44.     super
  45.     dispose_all_animation
  46.   end
  47.   #--------------------------------------------------------------------------
  48.   # ● done 刷新画面
  49.   #--------------------------------------------------------------------------
  50.   def update
  51.     super
  52.     if @animation_collection != nil
  53.       @animation_duration -= 1 if @animation_duration > 0
  54.       if @animation_duration == 1
  55.         @battler.call_for_effect if @battler != nil
  56.       end
  57.       for i in 1..@animation_collection.size
  58.         ani = @animation_collection[i - 1]
  59.         ani[2] -= 1
  60.         if ani[2] % $game_system.animation_lag == 0
  61.           update_animation(ani, i)
  62.         end
  63.       end
  64.     else
  65.       @animation_duration = 0
  66.     end
  67.     # 把本次播放已经播放完毕的动画删除
  68.     if @fordispose != []
  69.       for ani in @fordispose
  70.         dispose_animation(ani)
  71.       end
  72.       @fordispose = []
  73.     end   
  74.     update_damage
  75.     @@animations.clear
  76.   end
  77.   #--------------------------------------------------------------------------
  78.   # ● done 动画显示中判定 (强判定)
  79.   #--------------------------------------------------------------------------
  80.   def animation?
  81.     return @animation_collection != []
  82.   end
  83.   #--------------------------------------------------------------------------
  84.   # ● done 动画显示中判定 (弱判定)
  85.   #    弱判定会和真实情况有一定的出入,为了加快战斗节奏
  86.   #--------------------------------------------------------------------------
  87.   def animation_ruo?
  88.     return @animation_duration != 0
  89.   end
  90.   #--------------------------------------------------------------------------
  91.   # ● done 获取权重列表
  92.   #--------------------------------------------------------------------------
  93.   def get_damage_list   
  94.     damage_list = []
  95.     all_quanzhong = 0
  96.     for timing in @animation.timings
  97.       quanzhong = animation_process_timing(timing, true)
  98.       all_quanzhong += quanzhong
  99.       damage_list.push([timing.frame, quanzhong])
  100.     end     
  101.     return [damage_list, all_quanzhong]
  102.   end
  103.   #--------------------------------------------------------------------------
  104.   # ● done 开始动画
  105.   #--------------------------------------------------------------------------
  106.   def start_animation(animation, mirror = false, damage = [])
  107.     @animation = animation
  108.     return if @animation == nil
  109.     damage_list = get_damage_list
  110.     @animation_mirror = mirror
  111.     animation_length = @animation.frame_max * $game_system.animation_lag + 1
  112. #~     @animation_duration += animation_length - 2 * $game_system.animation_lag
  113.     had_max = 0
  114.     for ani in @animation_collection
  115.       had_max = [had_max, ani[2]].max
  116.     end   
  117.     @animation_duration = [had_max, animation_length].max   
  118.     animbitmap = load_animation_bitmap
  119.     @animation_sprites = []
  120.     if @animation.position != 3 or not @@animations.include?(animation)
  121.       if @use_sprite
  122.         for i in 0..15
  123.           sprite = ::Sprite.new(viewport)
  124.           sprite.visible = false
  125.           @animation_sprites.push(sprite)
  126.         end
  127.         unless @@animations.include?(animation)
  128.           @@animations.push(animation)
  129.         end
  130.       end
  131.     end
  132.     if @animation.position == 3
  133.       if viewport == nil
  134.         @animation_ox = 544 / 2
  135.         @animation_oy = 416 / 2
  136.       else
  137.         @animation_ox = viewport.rect.width / 2
  138.         @animation_oy = viewport.rect.height / 2
  139.       end
  140.     else
  141.       @animation_ox = width / 2  # x - ox + width / 2
  142.       @animation_oy = height / 2 # y - oy + height / 2
  143.       if @animation.position == 0
  144.         @animation_oy -= height / 2
  145.       elsif @animation.position == 2
  146.         @animation_oy += height / 2
  147.       end
  148.     end
  149.     @animation_collection.push([@animation, @animation_mirror, animation_length,
  150.                                 @animation_sprites, @animation_ox, @animation_oy,
  151.                                 animbitmap, damage_list[0], damage_list[1], damage])
  152.   end
  153.   #--------------------------------------------------------------------------
  154.   # ● 伤害字符串喷射
  155.   #--------------------------------------------------------------------------
  156.   def damage(quanzhong, all_quanzhong, damage_all)
  157.     for i in 0..2
  158.       next if damage_all[i] == nil or damage_all[i] == 0
  159.       bitmap = Bitmap.new(200, 80)
  160.       bitmap.font.name = (["Arial Black","Arial","黑体","宋体"])
  161.       bitmap.font.size = 32
  162.       if damage_all[i].is_a?(Numeric)
  163.         rect_y = damage_all[i] > 0 ? 32 : 0
  164.         begin
  165.           this_number = (1.0 * quanzhong * damage_all[i] / all_quanzhong ).to_i
  166.         rescue
  167.           return
  168.         end
  169.         next if this_number == 0 and damage_all[i] != 0
  170.         @battler.hp += this_number if i == 0 and @battler != nil
  171.         @battler.mp += this_number if i == 1 and @battler != nil
  172.         $scene.add_total_damage(this_number.abs) if $game_temp.in_battle and @battler != nil
  173.         $scene.add_hits(@battler) if $game_temp.in_battle and @battler != nil and $game_system.partyLevel >= 2
  174.         $scene.status_window.refresh if $game_temp.in_battle and @battler.is_a?(Game_Actor)
  175.         temp_damage_all = this_number.abs.to_s
  176.         damage_array = temp_damage_all.scan(/./)
  177.         damage_x = 81 - temp_damage_all.size * 9
  178.         for char in damage_array
  179.           number = char.to_i
  180.           bmp_name = i == 1 ? "Damagesp" : "Damage"
  181.           bitmap.blt(damage_x, 32, Cache.system(bmp_name),
  182.             Rect.new(number * 18, rect_y, 18, 32))
  183.           damage_x += 18
  184.         end
  185.       else
  186.         # 系统默认描画字符串
  187.         unless damage_all[i] == "Miss"
  188.           bitmap.font.color.set(0, 0, 0)
  189.           temp_damage_all = damage_all[i].to_s.clone
  190.           bitmap.draw_text(-1, 27, 162, 36, temp_damage_all, 1)
  191.           bitmap.draw_text(+1, 27, 162, 36, temp_damage_all, 1)
  192.           bitmap.draw_text(-1, 29, 162, 36, temp_damage_all, 1)
  193.           bitmap.draw_text(+1, 29, 162, 36, temp_damage_all, 1)
  194.           bitmap.font.color.set(255, 255, 255)
  195.           bitmap.draw_text(0, 28, 162, 36, temp_damage_all, 1)
  196.         # Miss 的情况下
  197.         else
  198.           # 显示未击中图画
  199.           bitmap.blt(36, 28,  Cache.system("Damage"), Rect.new(90, 64, 90, 32))
  200.         end
  201.       end      
  202.       damage_sprite = ::Sprite.new(self.viewport)
  203.       damage_sprite.bitmap = bitmap
  204.       damage_sprite.ox = 80
  205.       damage_sprite.oy = 20
  206.       damage_sprite.x = self.x - 20 + rand(40)
  207.       damage_sprite.y = self.y - self.oy / 2 - 20 + rand(40)
  208.       damage_sprite.z = 3000
  209.       @damage_duration = 40
  210.       @damage_string.push([damage_sprite,@damage_duration - 5, 0, rand(30) - 15, rand(3)])
  211.       make_total_damage
  212.     end
  213.   end  
  214.   #--------------------------------------------------------------------------
  215.   # ● 制作彩虹神劍總傷害,待書寫
  216.   #--------------------------------------------------------------------------
  217.   def make_total_damage
  218.     return
  219.   end  
  220.   #--------------------------------------------------------------------------
  221.   # ● 刷新总伤害动画
  222.   #--------------------------------------------------------------------------
  223.   def update_damage
  224.     if @damage_duration > 0
  225.       @damage_duration -= 1
  226.       for damage in @damage_string
  227.         damage[0].x = self.x + self.viewport.rect.x -
  228.                       self.ox + self.src_rect.width / 2 +
  229.                       (40 - damage[1]) * damage[3] / 10
  230.         damage[0].y -= damage[4]+damage[1]/10
  231.         damage[0].opacity = damage[1]*20
  232.         damage[1] -= 1
  233.         if damage[1]==0
  234.           damage[0].bitmap.dispose
  235.           damage[0].dispose
  236.           @damage_string.delete(damage)
  237.           next
  238.         end
  239.       end
  240.     end
  241.   end
  242.   #--------------------------------------------------------------------------
  243.   # ● done 读取动画的类变量
  244.   #--------------------------------------------------------------------------
  245.   def load_animation_bitmap
  246.     animation1_name = @animation.animation1_name
  247.     animation1_hue = @animation.animation1_hue
  248.     animation2_name = @animation.animation2_name
  249.     animation2_hue = @animation.animation2_hue
  250.     @animation_bitmap1 = Cache.animation(animation1_name, animation1_hue)
  251.     @animation_bitmap2 = Cache.animation(animation2_name, animation2_hue)
  252.     if @@_reference_count.include?(@animation_bitmap1)
  253.       @@_reference_count[@animation_bitmap1] += 1
  254.     else
  255.       @@_reference_count[@animation_bitmap1] = 1
  256.     end
  257.     if @@_reference_count.include?(@animation_bitmap2)
  258.       @@_reference_count[@animation_bitmap2] += 1
  259.     else
  260.       @@_reference_count[@animation_bitmap2] = 1
  261.     end
  262.     Graphics.frame_reset
  263.     return [@animation_bitmap1, @animation_bitmap2]
  264.   end
  265.   #--------------------------------------------------------------------------
  266.   # ● done 释放全部动画
  267.   #--------------------------------------------------------------------------
  268.   def dispose_all_animation   
  269.     return nil if @animation_collection == nil
  270.     for ani in @animation_collection
  271.       dispose_animation(ani)
  272.       next
  273.     end
  274.     return @animation_collection
  275.   end
  276.   #--------------------------------------------------------------------------
  277.   # ● done 释放动画
  278.   #--------------------------------------------------------------------------
  279.   def dispose_animation(ani)
  280.     if ani[6][0] != nil
  281.       @@_reference_count[ani[6][0]] -= 1
  282.       if @@_reference_count[ani[6][0]] == 0
  283.         ani[6][0].dispose
  284.         ani[6][0] = nil
  285.       end
  286.     end
  287.     if ani[6][1] != nil
  288.       @@_reference_count[ani[6][1]] -= 1
  289.       if @@_reference_count[ani[6][1]] == 0
  290.         ani[6][1].dispose
  291.         ani[6][1] = nil
  292.       end
  293.     end
  294.     if ani[3] != nil
  295.       for sprite in ani[3]
  296.         sprite.dispose
  297.       end
  298.       ani[3] = nil
  299.       ani[0] = nil
  300.     end
  301.     @animation_collection.delete(ani)
  302.   end
  303.   #--------------------------------------------------------------------------
  304.   # ● done 刷新动画
  305.   #    number_of_collection, 用来记录是这个动画是系列的第几个,制造减法
  306.   #--------------------------------------------------------------------------
  307.   def update_animation(ani, number_of_collection = 1)
  308.     if ani[2] > 0
  309.       frame_index = ani[0].frame_max - (ani[2] + $game_system.animation_lag - 1) / $game_system.animation_lag
  310.       animation_set_sprites(ani[0].frames[frame_index], ani, number_of_collection)
  311.       for timing in ani[0].timings
  312.         if timing.frame == frame_index
  313.           animation_process_timing(timing)
  314.         end
  315.       end
  316.       if $animation_sp[ani[0].id] != nil
  317.         for keycont in $animation_sp[ani[0].id]
  318.           if keycont[0] == frame_index
  319.             animation_process_special(keycont[1] , ani)
  320.           end
  321.         end
  322.       end
  323.       for tm in ani[7]
  324.         if tm[0] == frame_index      
  325.           damage(tm[1], ani[8], ani[9])
  326.         end
  327.       end
  328.     else
  329.       @fordispose.push(ani)
  330.     end
  331.   end
  332.   #--------------------------------------------------------------------------
  333.   # ● done 设置动画活动块
  334.   #     frame : 帧数据 (RPG::Animation::Frame)
  335.   #--------------------------------------------------------------------------
  336.   def animation_set_sprites(frame, ani, number_of_collection = 1)
  337.     return if frame == nil
  338.     cell_data = frame.cell_data
  339.     for i in 0..15
  340.       sprite = ani[3][i]
  341.       next if sprite == nil
  342.       pattern = cell_data[i, 0]
  343.       if pattern == nil or pattern == -1
  344.         sprite.visible = false
  345.         next
  346.       end
  347.       if pattern < 100
  348.         sprite.bitmap = ani[6][0]
  349.       else
  350.         sprite.bitmap = ani[6][1]
  351.       end
  352.       sprite.visible = true
  353.       sprite.src_rect.set(pattern % 5 * 192,
  354.         pattern % 100 / 5 * 192, 192, 192)
  355.       t6Rx = x - ox
  356.       t6Ry = y - oy
  357.       if ani[0].position == 3
  358.         t6Rx = 0
  359.         t6Ry = 0
  360.       end
  361.       if @animation_mirror
  362.         sprite.x = t6Rx + ani[4] - cell_data[i, 1]
  363.         sprite.y = t6Ry + ani[5] - cell_data[i, 2]
  364.         sprite.angle = (360 - cell_data[i, 4])
  365.         sprite.mirror = (cell_data[i, 5] == 0)
  366.       else
  367.         sprite.x = t6Rx + ani[4] + cell_data[i, 1]
  368.         sprite.y = t6Ry + ani[5] + cell_data[i, 2]
  369.         sprite.angle = cell_data[i, 4]
  370.         sprite.mirror = (cell_data[i, 5] == 1)
  371.       end
  372.       sprite.z = self.z + number_of_collection # 300
  373.       sprite.z += 300 unless $game_temp.in_battle
  374.       sprite.ox = 96
  375.       sprite.oy = 96
  376.       sprite.zoom_x = cell_data[i, 3] / 100.0
  377.       sprite.zoom_y = cell_data[i, 3] / 100.0
  378.       sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  379.       if number_of_collection < @animation_collection.size
  380.         sprite.blend_type = 2
  381.       else
  382.         sprite.blend_type = cell_data[i, 7]
  383.       end
  384.     end
  385.   end
  386.   #--------------------------------------------------------------------------
  387.   # ●  done SE 与闪烁的时机处理
  388.   #     timing : Timing数据 (RPG::Animation::Timing)
  389.   #--------------------------------------------------------------------------
  390.   def animation_process_timing(timing, dontflash = false)
  391.     unless dontflash
  392.       timing.se.play
  393.     end
  394.     case timing.flash_scope
  395.     when 1
  396.       unless dontflash
  397.         self.flash(timing.flash_color, timing.flash_duration * $game_system.animation_lag)
  398.         $animation_hitpause += (timing.flash_duration / HITPAUSE_KR).to_i
  399.       end
  400.       return timing.flash_color.alpha * timing.flash_duration
  401.     when 2
  402.       unless dontflash
  403.         if viewport != nil
  404.           viewport.flash(timing.flash_color, timing.flash_duration * $game_system.animation_lag)
  405.           $animation_hitpause += (timing.flash_duration / HITPAUSE_KR).to_i
  406.         end
  407.       end
  408.     when 3
  409.       unless dontflash      
  410.         self.flash(nil, timing.flash_duration * $game_system.animation_lag)
  411.       end
  412.     end
  413.     return 0
  414.   end
  415.   #--------------------------------------------------------------------------
  416.   # ●  done 动画的特殊效果处理
  417.   #     timing : Timing数据 (RPG::Animation::Timing)
  418.   #--------------------------------------------------------------------------
  419.   def animation_process_special(keycont, fromani = nil)
  420.     colorid = nil
  421.     shake = nil
  422.     colorreal = nil
  423.     helper = nil
  424.     startani = nil
  425.     eval(keycont)
  426.     update_special_colorreal(colorreal) if colorreal != nil
  427.     update_special_colorid(colorid) if colorid != nil
  428.     update_special_shake(shake) if shake != nil
  429.     update_special_helper(helper) if helper != nil
  430.     update_special_startani(startani, fromani) if startani != nil
  431.   end
  432. #------------------------------------------------------------------------------
  433. # 以下为临时函数,实际游戏中如果不使用请自行重写,留着无害。
  434. #------------------------------------------------------------------------------
  435.   #--------------------------------------------------------------------------
  436.   # ● 协议函数:动画中改变屏幕色调
  437.   #--------------------------------------------------------------------------
  438.   def update_special_colorid(colorid)
  439.     if $game_temp.in_battle
  440.       if colorid[0] == 0
  441.         $scene.spriteset.battleback_sprite.start_tone_change($scene.recover_tone, colorid[1])
  442.       else
  443.         $scene.spriteset.battleback_sprite.start_tone_change(get_pixel_tone(colorid[0].to_i), colorid[1])
  444.       end
  445.     else
  446.       $game_map.screen.start_tone_change(get_pixel_tone(colorid[0].to_i), colorid[1])
  447.     end
  448.   end
  449.   #--------------------------------------------------------------------------
  450.   # ● 协议函数:动画中呼叫helper
  451.   #--------------------------------------------------------------------------
  452.   def update_special_helper(helper)
  453.     return if rand(100) < helper[7]
  454.     sprite = Sprite_Base.new
  455.     if helper[0] == 0
  456.       sprite.x = self.x + helper[1]
  457.       sprite.y = self.y + helper[2]
  458.       sprite.z = self.z + helper[3]
  459.     elsif helper[0] == 1
  460.       sprite.x = helper[1]
  461.       sprite.y = helper[2]
  462.       sprite.z = helper[3]
  463.     end
  464.     $sprite_helper.push([sprite, helper[5] * $game_system.animation_lag, helper[6]])
  465.     $sprite_helper[$sprite_helper.size - 1][0].start_animation($data_animations[helper[4]])   
  466.   end
  467.   #--------------------------------------------------------------------------
  468.   # ● 协议函数:动画中改变屏幕色调
  469.   #--------------------------------------------------------------------------
  470.   def update_special_colorreal(colorreal)
  471.     if $game_temp.in_battle
  472.       $scene.spriteset.battleback_sprite.start_tone_change(Tone.new(colorreal[0],colorreal[1],colorreal[2],colorreal[3]), colorreal[4])
  473.     else
  474.       $game_map.screen.start_tone_change(Tone.new(colorreal[0],colorreal[1],colorreal[2],colorreal[3]),colorreal[4])
  475.     end
  476.   end  
  477.   #--------------------------------------------------------------------------
  478.   # ● 协议函数:动画插入连续技
  479.   #--------------------------------------------------------------------------
  480.   def update_special_startani(startani, fromani)
  481.     start_animation($data_animations[startani], mirror = false, fromani[9])
  482.   end  
  483.   #--------------------------------------------------------------------------
  484.   # ● 协议函数:动画中振动屏幕
  485.   #--------------------------------------------------------------------------
  486.   def update_special_shake(shake)
  487.     screen.start_shake(shake[0], shake[1], shake[2])
  488.   end
  489.   #--------------------------------------------------------------------------
  490.   # ● 协议函数:获取画面指令对象
  491.   #--------------------------------------------------------------------------
  492.   def screen
  493.     if $game_temp.in_battle
  494.       return  $game_troop.screen
  495.     else
  496.       return $game_map.screen
  497.     end
  498.   end
  499.   #--------------------------------------------------------------------------
  500.   # ● 协议函数:获取编号n的色调颜色
  501.   #--------------------------------------------------------------------------
  502.   def get_pixel_tone(n)
  503.     return Tone.new(0, 0, 0, 0) if n == 0
  504.     x = 64 + (n % 8) * 8
  505.     y = 96 + (n / 8) * 8
  506.     color = Cache.system("Window").get_pixel(x, y)
  507.     return Tone.new([color.red / 4, 64].max, [color.green / 4, 64].max, [color.blue / 4, 64].max, [color.alpha, 256].max)
  508.   end
  509. end
复制代码
此彩虹神剑脚本该如何兼容“Zhong RMVX 半即时战斗系统 1.02a版”的战斗系统呢?

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3309
在线时间
3620 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

2
发表于 2009-5-16 18:59:27 | 只看该作者
这不会是XP的吧…… - -
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
351 小时
注册时间
2008-3-9
帖子
418
3
发表于 2009-5-16 19:44:12 | 只看该作者
{/jy}恭喜楼主贺喜楼主千辛万苦访遍名川终于找到了一个XP的脚本。。

另外我记得Zhong RMVX 半即时战斗系统好像无法插入事件对话?

不知道是不是更新了,不太建议用这个,那样战斗失去了很大一部分的个性化
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
262 小时
注册时间
2009-1-10
帖子
309
4
 楼主| 发表于 2009-5-16 23:20:18 | 只看该作者
大哥啊,是VX的http://rpg.blue/web/htm/news1136.htm就是这个
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2025-1-11 07:44

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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