Project1

标题: 大家帮帮忙 [打印本页]

作者: jiangqm90    时间: 2010-7-22 14:26
标题: 大家帮帮忙
关于RPG XP 
我有以下几点困惑:
1.        怎么可以在开始新游戏后让玩家选择角色,只有一个。
2.        怎么可以在开始新游戏后让玩家自己输名字(用语言栏的输入法)
3.        在升级、获得物品等事件中显示:  玩家输的名字  升至X级
                                        玩家输的名字  获得XX      …………
    4.地图的NPC在鼠标在它上方时变白或半透明。
                                                            (就像DNF单机版那样)

作者: 无心孤云    时间: 2010-7-22 14:29
从这些问题上。。。我比较建议楼主认真的看看新手教程
然后再认真的使用论坛的搜索功能。。。。
123都能直接搜索出答案
至于第4。需要稍微修改下鼠标脚本。。。
作者: 火ZHI意志    时间: 2010-7-22 14:31
本帖最后由 火ZHI意志 于 2010-7-22 15:34 编辑

问题1
  1. #============角色选择=========By凌冰==========================================
  2. #用法 $scene = Scene_SelectActor.new
  3. #=============================================================================
  4. #====================================
  5. #存储选择结果的变量ID

  6. VA_ID = 6

  7. #====================================
  8. #窗口设置

  9. WIDTH = 600#窗口宽度
  10. HEIGHT = 160#窗口高度
  11. OPACITY = 180#窗口透明度
  12. BACK_OPACITY = 180#窗口透明度

  13. #====================================
  14. #选择显示图形

  15. CHAORBAT = 1
  16. #0为显示人物战斗图,1为显示人物行走图
  17. #2为显示Pictures文件夹下的自定义图片(图片名为角色名)
  18. #其他为不显示图片

  19. #====================================
  20. #人物说明= =暂时仅限一行

  21. DES_SWI = true#说明开关
  22. ACT_DES = []#初始化,请不要修改

  23. #====================================
  24. #背景图片

  25. BGP_SWI = false#背景开关= =打开后PDE_SWI被屏蔽
  26. BGP_PIC = "Logo"#背景图片文件名Pictures文件夹下
  27. BGP_OPA = 180#开关打开后,窗口透明度
  28. BGP_BOP = 0#开关打开后,窗口(不包括边框)透明度

  29. #====================================
  30. #说明图片
  31. #移动光标矩形时自动切换图片

  32. PDE_SWI = false#图片开关= =BGP_SWI打开后被屏蔽
  33. PIC_DES = []#初始化,请不要修改
  34. PDE_OPA = 180#开关打开后,窗口透明度
  35. PDE_BOP = 0#开关打开后,窗口(不包括边框)透明度

  36. #====================================
  37. class Window_SelectActor < Window_Selectable
  38.   def initialize
  39.     super(0, 0, WIDTH, HEIGHT)
  40.     self.contents = Bitmap.new(width - 32, height - 32)
  41.     self.windowskin = RPG::Cache.windowskin("skin2")
  42.     @item_max = $act_sel.size
  43.     @column_max = $act_sel.size
  44.     @index = 0
  45.     self.x = (640-self.width)/2
  46.     self.y = (480-self.height)/2
  47.     refresh
  48.   end
  49.   def refresh
  50.     self.contents.clear
  51.     for i in 0...$act_sel.size
  52.       x = (self.width-32)/$act_sel.size * i
  53.       actor = $game_actors[$act_sel[i]]
  54.       x_plus = contents.text_size(actor.name).width
  55.       x_plus = ((self.width-32)/$act_sel.size - x_plus)/2
  56.       draw_actor_name(actor, x+4+x_plus, 4)
  57.       case CHAORBAT
  58.       when 0
  59.         bitmap = RPG::Cache.battler(actor.battler_name, actor.battler_hue)
  60.         src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  61.         x_plus = bitmap.width
  62.         x_plus = ((self.width-32)/$act_sel.size - x_plus)/2
  63.         self.contents.blt(x+x_plus, 36, bitmap, src_rect)
  64.       when 1
  65.         bitmap = RPG::Cache.character(actor.character_name, actor.character_hue)
  66.         y_plus = bitmap.height/4
  67.         x_plus = bitmap.width/4
  68.         x_plus2 = ((self.width-32)/$act_sel.size - x_plus)/2
  69.         draw_actor_graphic(actor, x+x_plus/2+x_plus2, y_plus+36)
  70.       when 2
  71.         bitmap = RPG::Cache.picture(actor.name)
  72.         src_rect = Rect.new(0, 0, bitmap.width, bitmap.height)
  73.         x_plus = bitmap.width
  74.         x_plus = ((self.width-32)/$act_sel.size - x_plus)/2
  75.         self.contents.blt(x+x_plus, 36, bitmap, src_rect)
  76.       end
  77.     end
  78.   end
  79.   def update_cursor_rect
  80.     if @index < 0
  81.       self.cursor_rect.empty
  82.     else
  83.       self.cursor_rect.set( @index * (self.width-32)/$act_sel.size,0, (self.width-32)/$act_sel.size, self.height-32)
  84.     end
  85.   end
  86. end
  87. class Window_Help_New < Window_Help
  88.   def initialize
  89.     super
  90.     self.contents = Bitmap.new(width, height)
  91.     self.width = WIDTH
  92.     self.contents = Bitmap.new(width - 32, height - 32)
  93.   end
  94. end
  95. class Scene_SelectActor
  96.   def main
  97.     @window = Window_SelectActor.new
  98.     @help_window = Window_Help_New.new
  99.     @help_window.visible = DES_SWI
  100.     @help_window.x = @window.x
  101.     @help_window.y = @window.y + @window.height
  102.     @help_window.width = @window.width
  103.     @help_window.back_opacity = @window.back_opacity = PDE_SWI ? PDE_BOP : BACK_OPACITY
  104.     @help_window.opacity = @window.opacity = PDE_SWI ? PDE_OPA : OPACITY
  105.     @help_window.back_opacity = @window.back_opacity = BGP_BOP if BGP_SWI
  106.     @help_window.opacity = @window.opacity = BGP_OPA if BGP_SWI
  107.     if BGP_SWI
  108.       @sprite = Sprite.new
  109.       @sprite.bitmap = RPG::Cache.picture(BGP_PIC)
  110.     elsif PDE_SWI
  111.       @sprite = Sprite.new
  112.       @sprite.bitmap = RPG::Cache.picture(PIC_DES[1])
  113.     else
  114.       @sprite = Spriteset_Map.new
  115.     end
  116.     # 执行过度4
  117.     Graphics.transition
  118.     # 主循环
  119.     loop do
  120.       # 刷新游戏画面
  121.       Graphics.update
  122.       # 刷新输入信息
  123.       Input.update
  124.       # 刷新画面
  125.       update
  126.       # 如果画面切换就中断循环
  127.       if $scene != self
  128.         break
  129.       end
  130.     end
  131.     # 装备过渡
  132.     Graphics.freeze
  133.     @window.dispose
  134.     @help_window.dispose
  135.     @sprite.dispose
  136.   end
  137.   def update
  138.     @window.update
  139.     @sprite.update
  140.     if DES_SWI
  141.       @help_window_update
  142.       actor_id = $act_sel[@window.index]
  143.       text = ACT_DES[actor_id]
  144.       @help_window.set_text(text,1) if text != nil
  145.     end
  146.     if !BGP_SWI and PDE_SWI
  147.       pic = PIC_DES[$act_sel[@window.index]]
  148.       @sprite.bitmap = RPG::Cache.picture(pic) if pic != nil
  149.     end
  150.     if Input.trigger?(Input::C)
  151.       $game_system.se_play($data_system.decision_se)
  152.       $game_switches[9] = false
  153.       for i in 0...$game_party.actors.size
  154.         id = $game_party.actors[i].id
  155.         actors_id = [] if actors_id == nil
  156.         actors_id.push(id)
  157.       end
  158.       actors_id.each do |i|
  159.         $game_party.remove_actor(i)
  160.       end
  161.       id = $act_sel[@window.index]
  162.       $game_party.add_actor(id)
  163.       $game_variables[VA_ID] = id
  164.       $game_switches[9] = false
  165.       $scene = Scene_Map.new
  166.     end
  167.   end
  168. end
复制代码

作者: jiangqm90    时间: 2010-8-10 07:42
让玩家自己输名字的我下了一个带DLL的,但我不知道怎么用,谁能教一下


怎么改玩家姓名??????????
作者: jiangqm90    时间: 2010-8-10 08:25
我一直有来看,等答案啊!我也不懂,一定要看了就回帖吗,你就扣了我100经验:'(




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