幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
楼主: mazure

[RM2K&2K3] [求助]存档路径等几个问题,各达人帮帮

[复制链接]

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
发表于 2007-1-21 19:33:20 | 显示全部楼层
你有没有加""?
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

3

主题

18

帖子

200

积分

③业余

积分
200
QQ
 楼主| 发表于 2007-1-21 19:36:38 | 显示全部楼层
引用第2楼门清2007-01-21 14:25发表的:
2、首先要在游戏目录下建立一个“save”文件夹(RMXP不会自己建),然后ctrl+shift+f全局搜索“.rxdata”,把所有出现存档文件名的地方前面都加一节save
[s:4]

除了有Load_data的都改了,这个问题解决了,谢谢 [s:1]
你听,寂寞在唱歌.
回复 支持 反对

使用道具 举报

3

主题

18

帖子

200

积分

③业余

积分
200
QQ
 楼主| 发表于 2007-1-21 19:38:40 | 显示全部楼层
引用第10楼杀鸡四天王2007-01-21 19:33发表的:
你有没有加""?
加了的,但是加了之后,把AVI文件放在相应文件夹里之后还是不播放. [s:8]
你听,寂寞在唱歌.
回复 支持 反对

使用道具 举报

好人卡的 该用户已被删除
发表于 2007-1-21 19:43:29 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

3

主题

18

帖子

200

积分

③业余

积分
200
QQ
 楼主| 发表于 2007-1-21 19:47:55 | 显示全部楼层
引用第13楼好人卡的神话2007-01-21 19:43发表的:


按理应该可以啊。。。这个脚本没用过,不好办了。。。 [s:5]
[s:5] 卡卡大人也在
  1. # ★★★填写游戏的工程名
  2. PROJECT_NAME = "翳鸟传"
  3. #==============================================================================
  4. # ■ Win32API
  5. #------------------------------------------------------------------------------
  6. #  需要用到的API
  7. #==============================================================================
  8. # 切换到全屏延时
  9. SWITCH_DELAY = 0.1
  10. # API使用的一些常数
  11. WS_EX_TOPMOST = 0x8
  12. WS_EX_TOOLWINDOW= 0x80
  13. WS_VISIBLE = 0x10000000
  14. WS_POPUP = 0x80000000
  15. GWL_HINSTANCE = (-6)
  16. WM_CLOSE = 0x10
  17. WS_CHILD = 0x40000000
  18. WS_NONE = 0x16000000
  19. CP_ACP = 0
  20. CP_UTF8 = 65001
  21. # 字符编码转换API
  22. $MP_m2w = Win32API.new('kernel32', 'MultiByteToWideChar', '%w(i,l,p,i,p,i)', 'i')
  23. $MP_w2m = Win32API.new('kernel32', 'WideCharToMultiByte', '%w(i,l,p,i,p,i,p,p)', 'i')
  24.    
  25. # 按键API
  26. $MP_keybd = Win32API.new('user32', 'keybd_event', '%w(i,i,l,l)', 'v')
  27. # 视频播放API
  28. $MP_mciSendString = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')
  29. # 锁定窗口
  30. # hWnd,ifEnable
  31. $MP_EnableWindow = Win32API.new('user32','EnableWindow','%w(l,l)','L')
  32. # 激活窗口
  33. # hWnd
  34. $MP_SetActiveWindow = Win32API.new('user32','SetActiveWindow','%w(l)','L')
  35. # 当前活动窗口
  36. $MP_GetActiveWindow = Win32API.new('user32','GetActiveWindow','%w()','L')
  37. # hWnd,wMsg,wParam,lParam
  38. $MP_PostMessage = Win32API.new('user32','PostMessage','%w(l,l,l,p)','L')
  39. # 获取当前窗口句柄
  40. $MP_FindWindowEX = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')
  41. # 获取屏幕坐标
  42. $MP_ClientToScreen = Win32API.new("user32", "ClientToScreen", 'ip', 'i')
  43. # 获取hInt
  44. $MP_GetWindowLong= Win32API.new('user32','GetWindowLong','%w(l,l)','L')
  45. # 获取类名
  46. # hWnd,lpClassName,maxCount
  47. $MP_GetClassName= Win32API.new('user32','GetClassName','%w(l,p,l)','L')
  48. # 建立窗体
  49. # ExStyle,ClassName,WindowName,
  50. # style,x,y,width,height
  51. # 0,0,hInstance,0
  52. $MP_CreateWindowEX = Win32API.new('user32','CreateWindowEx','%w(l,p,p,l,l,l,l,l,l,l,l,p)','L')
  53. #==============================================================================
  54. # ■ MoviePlayer
  55. #------------------------------------------------------------------------------
  56. #  处理视频播放画面的类。
  57. #==============================================================================
  58. class MoviePlayer
  59.   #--------------------------------------------------------------------------
  60.   # ● 初始化
  61.   #     project_name : 工程名称
  62.   #--------------------------------------------------------------------------
  63.   def initialize(project_name = PROJECT_NAME)
  64.     @sys_timer=SystemTimer.new()
  65.     buffer = "\\0\\0" * project_name.size
  66.     @project_name = "\\0" * project_name.size
  67.    
  68.     $MP_m2w.call(CP_UTF8, 0, project_name, -1, buffer, project_name.size)
  69.     $MP_w2m.call(CP_ACP,0,buffer,-1,@project_name,project_name.size,0,0)
  70.    
  71.     @hWnd = $MP_FindWindowEX.call(0,0,nil,@project_name)
  72.     @hInt = $MP_GetWindowLong.call(@hWnd,GWL_HINSTANCE)
  73.     @class_name = " " * 256
  74.     $MP_GetClassName.call(@hWnd,@class_name,256)
  75.   end
  76.   #--------------------------------------------------------------------------
  77.   # ● 是否已经全屏幕
  78.   #--------------------------------------------------------------------------
  79.   def is_full?
  80.     # 播放起始坐标
  81.     point = [0, 0].pack('ll')
  82.     if $MP_ClientToScreen.call(@hWnd, point) == 0
  83.       return false
  84.     end
  85.     x, y = point.unpack('ll')
  86.     if x == 0 and y == 0
  87.       return true
  88.     else
  89.       return false
  90.     end
  91.   end
  92.   #--------------------------------------------------------------------------
  93.   # ● 切换全屏
  94.   #--------------------------------------------------------------------------
  95.   def switch_full
  96.     $MP_keybd.call (0xA4, 0, 0, 0)
  97.     $MP_keybd.call (13, 0, 0, 0)
  98.     $MP_keybd.call (13, 0, 2, 0)
  99.     $MP_keybd.call (0xA4, 0, 2, 0)
  100.     sleep(SWITCH_DELAY)
  101.     for i in 1..3
  102.       Graphics.update
  103.     end
  104.   end
  105.   #--------------------------------------------------------------------------
  106.   # ● 播放电影
  107.   #     movie_name : 视频文件名(*.avi)
  108.   #     movie_length : 电影时间,单位是秒
  109.   #     skip : 是否可以按键跳过
  110.   #     fullscr : 是否强制为全屏幕播放
  111.   #     x,y,width,height: 播放的位置以及宽度
  112.   #     loop : 循环播放
  113.   #--------------------------------------------------------------------------
  114.   def play(movie_name,movie_length,
  115.            skip = true,fullscr = false,
  116.            x = 0,y = 0,width = 640,height = 480,loop = true)
  117.     # 数据不合法则退出
  118.     return true if movie_name == nil or movie_length <= 0
  119.     # 文件不存在
  120.     return true unless FileTest.exist?(movie_name)
  121.    
  122.     # 窗口宽度
  123.     width -= (x + width)- 640 if (x + width) > 640
  124.     height -= (y + height)- 480 if (y + height) > 480
  125.    
  126.     if fullscr and !is_full?
  127.       self.switch_full
  128.     end
  129.    
  130.     fullscr = self.is_full?
  131.    
  132.     # 播放起始坐标
  133.     point = [x, y].pack('ll')
  134.     if $MP_ClientToScreen.call(@hWnd, point) == 0
  135.       return true
  136.     end
  137.     x, y = point.unpack('ll')
  138.     return true  if (x + width) < 0 or (y+height) < 0
  139.    
  140.     if fullscr
  141.       wnd = $MP_CreateWindowEX.call(WS_EX_TOPMOST,@class_name,@project_name,
  142.                                     WS_VISIBLE | WS_POPUP,x,y,width,height,
  143.                                     0,0,@hInt,0)
  144.     else
  145.       wnd = $MP_CreateWindowEX.call(WS_EX_TOOLWINDOW,@class_name,@project_name,
  146.                                     WS_VISIBLE | WS_POPUP,x,y,width,height,
  147.                                     0,0,@hInt,0)
  148.     end                              
  149.     # 窗体建立失败
  150.     return true if wnd == 0
  151.    
  152.     # 屏蔽原窗体
  153.     $MP_EnableWindow.call(@hWnd,0)
  154.    
  155.     $MP_mciSendString.call("open \\"" + movie_name + "\\"" +
  156.                            " alias FILE style 1073741824 parent " +\\
  157.                             wnd.to_s,0,0,0)
  158.     if loop
  159.       $MP_mciSendString.call("play FILE repeat window",0,0,0)
  160.     else
  161.       $MP_mciSendString.call("play FILE window",0,0,0)
  162.     end
  163.    
  164.     @sys_timer.clear()
  165.     step = 0.1
  166.     begin
  167.       loop do
  168.         # 如果在窗口模式
  169.         unless fullscr
  170.           # 变成全屏
  171.           if self.is_full?
  172.             break
  173.           else
  174.             Graphics.update
  175.           end
  176.         end
  177.         #sleep(step)
  178.         if skip
  179.           Input.update
  180.           break if Input.trigger?(Input::A)
  181.         end
  182.         if @sys_timer.now_s >= movie_length
  183.           break
  184.         end
  185.         if $MP_GetActiveWindow.call() != wnd
  186.           $MP_SetActiveWindow.call(wnd)
  187.         end
  188.       end
  189.       Graphics.update
  190.       # 关闭当前窗体
  191.       $MP_PostMessage.call(wnd,WM_CLOSE,0,0)
  192.       $MP_mciSendString.call("close FILE",0,0,0)
  193.       $MP_EnableWindow.call(@hWnd,1)
  194.       $MP_SetActiveWindow.call(@hWnd)
  195.       return true
  196.     rescue Hangup
  197.       retry
  198.     end
  199.   end
  200. end
  201. $MP = MoviePlayer.new
复制代码

这是代码,
  1. $MP.play(movie_name, movie_length,
  2. #            skip, fullscr,
  3. #            x, y, width, height, loop)
  4. #
复制代码
  [s:8]
你听,寂寞在唱歌.
回复 支持 反对

使用道具 举报

好人卡的 该用户已被删除
发表于 2007-1-21 19:52:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

38

主题

3468

帖子

1

积分

超级版主

传说中的Bunny火神~!

Rank: 8Rank: 8

积分
1
发表于 2007-1-21 22:11:02 | 显示全部楼层
始终看不出哪里指定了路径……看来我没法了。 [s:5]
我突然发现,我是一个很幸运的好人。老婆真好~ 点我进入JQ(激情)教程范例收集!
回复 支持 反对

使用道具 举报

3

主题

18

帖子

200

积分

③业余

积分
200
QQ
 楼主| 发表于 2007-1-21 22:39:06 | 显示全部楼层
引用第16楼杀鸡四天王2007-01-21 22:11发表的:
始终看不出哪里指定了路径……看来我没法了。 [s:5]
[s:8] 我崇拜的杀鸡大人
你听,寂寞在唱歌.
回复 支持 反对

使用道具 举报

好人卡的 该用户已被删除
发表于 2007-1-21 22:47:52 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

3

主题

18

帖子

200

积分

③业余

积分
200
QQ
 楼主| 发表于 2007-1-21 23:27:48 | 显示全部楼层
引用第18楼好人卡的神话2007-01-21 22:47发表的:
对不起。。。我也找不出来。。。 [s:5]

[s:5]  [s:5]  [s:5]
你听,寂寞在唱歌.
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2025-6-26 15:58 , Processed in 0.011249 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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