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

Project1

 找回密码
 注册会员
搜索
楼主: 冰舞蝶恋
打印 上一主题 下一主题

[推荐问答] 【<菜鸟问题收容所> 】

   关闭 [复制链接]

Lv5.捕梦者

梦石
10
星屑
39587
在线时间
1920 小时
注册时间
2010-11-14
帖子
3320

R考场第七期纪念奖

651
发表于 2011-7-3 10:18:23 | 只看该作者
问题名称:如何像火焰纹章一样在开头插播一段动画?
问题状况:略

评分

参与人数 1星屑 +20 收起 理由
冰舞蝶恋 + 20 提问送分

查看全部评分

用头画头像,用脚写脚本
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
622
在线时间
129 小时
注册时间
2011-3-18
帖子
175
652
发表于 2011-7-3 19:58:31 | 只看该作者
本帖最后由 eel 于 2011-7-3 22:38 编辑

问题名称:多人数パーティ - KGC_LargeParty ◆ VX

问题状况:这个脚本

我按照http://rpg.blue/forum.php?mod=vi ... =%E9%98%9F%E4%BC%8D  的5L改但还是没用


怎么回事?

评分

参与人数 1星屑 +20 收起 理由
冰舞蝶恋 + 20 下次麻烦按规则发帖哈

查看全部评分

评你毛个负分啊!
新人们辛辛苦苦挂的分就被你们些牛叉评没了!
好不容易挂的杂兵都被你们些牛叉评没了!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1071 小时
注册时间
2011-5-12
帖子
2317

贵宾

653
发表于 2011-7-3 20:36:15 | 只看该作者
eel 发表于 2011-7-3 19:58
多人数パーティ - KGC_LargeParty ◆ VX

这个脚本

是要实现什么效果呢?
如果是更改队员最大人数的话是修改这句:
MAX_BATTLE_MEMBERS = 5
后面加红的数值就行了~

评分

参与人数 1星屑 +200 收起 理由
冰舞蝶恋 + 200 热心回答

查看全部评分

找我请找芙蕾娅
顺带一提,完全看得懂我头像请捡起你自己的节操哟(自重
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
622
在线时间
129 小时
注册时间
2011-3-18
帖子
175
654
发表于 2011-7-3 22:28:04 | 只看该作者
月夜神音 发表于 2011-7-3 20:36
是要实现什么效果呢?
如果是更改队员最大人数的话是修改这句:
MAX_BATTLE_MEMBERS = 5

无法使用编辑队伍

点评

使用脚本语句,加入以下脚本:call_partyform  发表于 2011-7-3 23:21
评你毛个负分啊!
新人们辛辛苦苦挂的分就被你们些牛叉评没了!
好不容易挂的杂兵都被你们些牛叉评没了!
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
648
在线时间
2657 小时
注册时间
2010-6-28
帖子
1361

开拓者

655
发表于 2011-7-3 23:08:49 | 只看该作者
KB.Driver 发表于 2011-7-3 10:18
问题名称:如何像火焰纹章一样在开头插播一段动画?
问题状况:略
  1. #==============================================================================
  2. # ☆★☆ AVI播放器 ☆★☆
  3. #------------------------------------------------------------------------------
  4. # - FantasyDR
  5. # - 2006.3.8
  6. # 此腳本被公孫鴻劍證實可以在RPGVX1.02以及更新版本的RPGVX上使用。
  7. #------------------------------------------------------------------------------
  8. # MSN: [email protected]
  9. #------------------------------------------------------------------------------
  10. # Note:
  11. #
  12. # 1.遊戲必須使用RPGVX1.02的運行庫\0\0RGSS202E.dll/RGSS202J.dll]及更新的版本。
  13. #
  14. # 2.在下方 PROJECT_NAME = 後面填寫你的遊戲專案(工程)名。
  15. #
  16. # 3.在遊戲中用事件指令\0\0插入RGSS腳本語句]播放你的視頻文件,
  17. # 如果一行寫不下可以在逗號後換行。
  18. #
  19. # $MP.play(movie_name, movie_length,
  20. # skip, fullscr,
  21. # x, y, width, height)
  22. #
  23. # 參數說明:
  24. #
  25. # movie_name : 視頻文件名(*.avi),必須
  26. # movie_length : 電影時間,單位是秒,必須
  27. # skip : 是否可以按A鍵跳過,true/false,默認是true
  28. # fullscr : 是否強制為全屏幕播放,true/false,默認是false
  29. # x,y : 視頻播放的左上角坐標,默認是0,0
  30. # width,height : 視頻的寬度,可以任意.默認是640,480
  31. #
  32. # 例如播放logo.avi,時間13秒,禁止跳過,強制全屏,範圍(是0,0)-(640,480),循環播放
  33. # $MP.play("logo.avi",13,false,true)
  34. #==============================================================================


  35. # ------------------------------------------------------------------------
  36. # 高精度計時器 by FantasyDR
  37. # ------------------------------------------------------------------------
  38. # E-mail: [email protected]
  39. # ------------------------------------------------------------------------
  40. # 2005.10.18
  41. # ------------------------------------------------------------------------
  42. # 該類已經被定義為全局變量 $sys_timer
  43. # 如果只需要精確到毫秒,請設置初始化參數為true
  44. # decimal屬性設置返回時間值的小數位數。
  45. # ------------------------------------------------------------------------
  46. # 下面是一些有用的方法列表,調用時寫:$sys_timer.方法名
  47. # 例如 $sys_timer.clear()
  48. # ------------------------------------------------------------------------
  49. # clear() :計時器清零
  50. # now() :獲取當前經過的時間,單位毫秒
  51. # now_s() :獲取當前經過的時間,單位秒
  52. # ------------------------------------------------------------------------

  53. class SystemTimer

  54. attr_accessor:decimal #小數位數設定,默認為3

  55. def initialize(use_GetTime=false)
  56. # 初始化,根據系統選擇不同精度計時器
  57. @qpFrequency = Win32API.new("kernel32","QueryPerformanceFrequency",'p','L')
  58. @qpCounter = Win32API.new("kernel32","QueryPerformanceCounter",'p','L')
  59. @tGetTime = Win32API.new("winmm","timeGetTime",'','L')

  60. @decimal=3
  61. @perf_cnt=" " * 8
  62. @time_start=" " * 8
  63. @time_now=" " * 8

  64. result = @qpFrequency.call(@perf_cnt)

  65. if use_GetTime
  66. result = 0
  67. end

  68. if result!=0
  69. @perf_flag=true
  70. else
  71. @perf_flag=false
  72. @perf_cnt=\0\01000,0].pack('LL')
  73. end

  74. #設置時間比例因數
  75. @time_scale=@perf_cnt.unpack('LL')
  76. @time_scale\0\00] /= 1000.0
  77. @time_scale\0\01] /= 1000.0

  78. #起始時間清零
  79. self.clear()
  80. end

  81. #-=====================-#
  82. # 計時器清零
  83. #-=====================-#
  84. def clear()
  85. if @perf_flag
  86. @qpCounter.call(@time_start)
  87. else
  88. @time_start=\0\[email protected](),0].pack('LL')
  89. end
  90. end

  91. #-==============================-#
  92. # 獲取當前經過的時間,單位毫秒
  93. #-==============================-#
  94. def now()
  95. now_time = 0.0e1
  96. now_time += self.timer() - self.start()
  97. now_time /= self.scale()
  98. return self.debug(now_time)
  99. end

  100. #-==============================-#
  101. # 獲取當前經過的時間,單位秒
  102. #-==============================-#
  103. def now_s()
  104. now_time = 0.0e1
  105. now_time += self.timer() - self.start()
  106. now_time /= (self.scale()*1000)
  107. return self.debug(now_time)
  108. end

  109. #-==============================-#
  110. # 幀錯...
  111. #-==============================-#
  112. def debug(now_time)
  113. if @decimal>0
  114. now_time = (now_time * (10**@decimal)).floor/(10.0**@decimal)
  115. else
  116. now_time = now_time.floor
  117. end
  118. return now_time

  119. #以下用于debug模式
  120. if now_time < 0
  121. p "Timer Wrong!! Clear...",now_time,\
  122. @perf_flag,@qpCounter,@tGetTime,
  123. @time_now.unpack('LL')\0\00],@time_now.unpack('LL')\0\01],
  124. @time_start.unpack('LL')\0\00],@time_start.unpack('LL')\0\01]
  125. self.clear()
  126. return 0.0
  127. else
  128. return now_time
  129. end
  130. end

  131. #-=====================-#
  132. # 獲取時間比例因數
  133. #-=====================-#
  134. def scale()
  135. return @time_scale\0\00]+\
  136. @time_scale\0\01]*0xffffffff
  137. end

  138. #-=====================-#
  139. # 獲取起始滴答數
  140. #-=====================-#
  141. def start()
  142. return @time_start.unpack('LL')\0\00]+\
  143. @time_start.unpack('LL')\0\01]*0xffffffff
  144. end

  145. #-=====================-#
  146. # 獲取當前的嘀哒數
  147. #-=====================-#
  148. def timer()
  149. if @perf_flag
  150. @qpCounter.call(@time_now)
  151. else
  152. @time_now=\0\[email protected](),0].pack('LL')
  153. end
  154. return @time_now.unpack('LL')\0\00]+\
  155. @time_now.unpack('LL')\0\01]*0xffffffff
  156. end
  157. end

  158. #-------------------------------------#
  159. # 初始化自身成一個全局變量
  160. #-------------------------------------#
  161. $sys_timer=SystemTimer.new()
  162. #-------------------------------------#






  163. #==============================================================================
  164. # ☆★☆ AVI播放器 ☆★☆
  165. #------------------------------------------------------------------------------
  166. # - FantasyDR
  167. # - 2006.3.8
  168. #------------------------------------------------------------------------------
  169. # MSN: [email protected]
  170. #------------------------------------------------------------------------------
  171. # Note:
  172. #
  173. # 1.遊戲必須使用RPGVX1.02的運行庫\0\0RGSS202E.dll/RGSS202J.dll]及更新的版本。
  174. #
  175. # 2.在下方 PROJECT_NAME = 後面填寫你的遊戲專案(工程)名。
  176. #
  177. # 3.在遊戲中用事件指令\0\0插入RGSS腳本語句]播放你的視頻文件,
  178. # 如果一行寫不下可以在逗號後換行。
  179. #
  180. # $MP.play(movie_name, movie_length,
  181. # skip, fullscr,
  182. # x, y, width, height)
  183. #
  184. # 參數說明:
  185. #
  186. # movie_name : 視頻文件名(*.avi),必須
  187. # movie_length : 電影時間,單位是秒,必須
  188. # skip : 是否可以按A鍵跳過,true/false,默認是true
  189. # fullscr : 是否強制為全屏幕播放,true/false,默認是false
  190. # x,y : 視頻播放的左上角坐標,默認是0,0
  191. # width,height : 視頻的寬度,可以任意.默認是640,480
  192. #
  193. # 例如播放logo.avi,時間13秒,禁止跳過,強制全屏,範圍(是0,0)-(640,480),循環播放
  194. # $MP.play("logo.avi",13,false,true)
  195. #==============================================================================

  196. # ★★★請先這裏填寫遊戲的專案(工程)名★★★

  197. PROJECT_NAME = "AVI播放器"

  198. #==============================================================================
  199. # ■ Win32API
  200. #------------------------------------------------------------------------------
  201. #  需要用到的API
  202. #==============================================================================

  203. # 切換到全屏延時
  204. SWITCH_DELAY = 0.1

  205. # API使用的一些常數
  206. WS_EX_TOPMOST = 0x8
  207. WS_EX_TOOLWINDOW= 0x80
  208. WS_VISIBLE = 0x10000000
  209. WS_POPUP = 0x80000000
  210. GWL_HINSTANCE = (-6)
  211. WM_CLOSE = 0x10
  212. WS_CHILD = 0x40000000
  213. WS_NONE = 0x16000000
  214. CP_ACP = 0
  215. CP_UTF8 = 65001

  216. # 字符編碼轉換API
  217. $MP_m2w = Win32API.new('kernel32', 'MultiByteToWideChar', '%w(i,l,p,i,p,i)', 'i')
  218. $MP_w2m = Win32API.new('kernel32', 'WideCharToMultiByte', '%w(i,l,p,i,p,i,p,p)', 'i')

  219. # 按鍵API
  220. $MP_keybd = Win32API.new('user32', 'keybd_event', '%w(i,i,l,l)', 'v')

  221. # 視頻播放API
  222. $MP_mciSendString = Win32API.new('winmm','mciSendString','%w(p,p,l,l)','V')

  223. # 鎖定窗口
  224. # hWnd,ifEnable
  225. $MP_EnableWindow = Win32API.new('user32','EnableWindow','%w(l,l)','L')

  226. # 激活窗口
  227. # hWnd
  228. $MP_SetActiveWindow = Win32API.new('user32','SetActiveWindow','%w(l)','L')

  229. # 當前活動窗口
  230. $MP_GetActiveWindow = Win32API.new('user32','GetActiveWindow','%w()','L')

  231. # hWnd,wMsg,wParam,lParam
  232. $MP_PostMessage = Win32API.new('user32','PostMessage','%w(l,l,l,p)','L')

  233. # 獲取當前窗口句柄
  234. $MP_FindWindowEX = Win32API.new('user32','FindWindowEx','%w(l,l,p,p)','L')

  235. # 獲取屏幕坐標
  236. $MP_ClientToScreen = Win32API.new("user32", "ClientToScreen", 'ip', 'i')

  237. # 獲取hInt
  238. $MP_GetWindowLong= Win32API.new('user32','GetWindowLong','%w(l,l)','L')

  239. # 獲取類名
  240. # hWnd,lpClassName,maxCount
  241. $MP_GetClassName= Win32API.new('user32','GetClassName','%w(l,p,l)','L')

  242. # 建立窗體
  243. # ExStyle,ClassName,WindowName,
  244. # style,x,y,width,height
  245. # 0,0,hInstance,0
  246. $MP_CreateWindowEX = Win32API.new('user32','CreateWindowEx','%w(l,p,p,l,l,l,l,l,l,l,l,p)','L')

  247. #==============================================================================
  248. # ■ MoviePlayer
  249. #------------------------------------------------------------------------------
  250. #  處理視頻播放畫面的類。
  251. #==============================================================================

  252. class MoviePlayer
  253. #--------------------------------------------------------------------------
  254. # ● 初始化
  255. # project_name : 專案(工程)名稱
  256. #--------------------------------------------------------------------------
  257. def initialize(project_name = PROJECT_NAME)
  258. @sys_timer=SystemTimer.new()
  259. buffer = "\0\0" * project_name.size
  260. @project_name = "\0" * project_name.size

  261. $MP_m2w.call(CP_UTF8, 0, project_name, -1, buffer, project_name.size)
  262. $MP_w2m.call(CP_ACP,0,buffer,-1,@project_name,project_name.size,0,0)

  263. @hWnd = $MP_FindWindowEX.call(0,0,nil,@project_name)
  264. @hInt = $MP_GetWindowLong.call(@hWnd,GWL_HINSTANCE)
  265. @class_name = " " * 256
  266. $MP_GetClassName.call(@hWnd,@class_name,256)
  267. end
  268. #--------------------------------------------------------------------------
  269. # ● 是否已經全屏幕
  270. #--------------------------------------------------------------------------
  271. def is_full?
  272. # 播放起始坐標
  273. point = \0\00, 0].pack('ll')
  274. if $MP_ClientToScreen.call(@hWnd, point) == 0
  275. return false
  276. end
  277. x, y = point.unpack('ll')
  278. if x == 0 and y == 0
  279. return true
  280. else
  281. return false
  282. end
  283. end
  284. #--------------------------------------------------------------------------
  285. # ● 切換全屏
  286. #--------------------------------------------------------------------------
  287. def switch_full
  288. $MP_keybd.call (0xA4, 0, 0, 0)
  289. $MP_keybd.call (13, 0, 0, 0)
  290. $MP_keybd.call (13, 0, 2, 0)
  291. $MP_keybd.call (0xA4, 0, 2, 0)
  292. Graphics.update
  293. sleep(SWITCH_DELAY)
  294. Graphics.update
  295. end
  296. #--------------------------------------------------------------------------
  297. # ● 播放電影
  298. # movie_name : 視頻文件名(*.avi)
  299. # movie_length : 電影時間,單位是秒
  300. # skip : 是否可以按鍵跳過
  301. # fullscr : 是否強制為全屏幕播放
  302. # x,y,width,height: 播放的位置以及寬度
  303. # loop : 循環播放
  304. #--------------------------------------------------------------------------
  305. def play(movie_name,movie_length,
  306. skip = true,fullscr = false,
  307. x = 0,y = 0,width = 640,height = 480,loop = true)
  308. # 數據不合法則退出
  309. return true if movie_name == nil or movie_length <= 0
  310. # 文件不存在
  311. movie_name = Dir.getwd()+"\\"+movie_name
  312. return true unless FileTest.exist?(movie_name)

  313. # 窗口寬度
  314. width -= (x + width)- 640 if (x + width) > 640
  315. height -= (y + height)- 480 if (y + height) > 480

  316. if fullscr and !is_full?
  317. self.switch_full
  318. end

  319. fullscr = self.is_full?

  320. # 播放起始坐標
  321. point = \0\0x, y].pack('ll')
  322. if $MP_ClientToScreen.call(@hWnd, point) == 0
  323. return true
  324. end
  325. x, y = point.unpack('ll')
  326. return true if (x + width) < 0 or (y+height) < 0

  327. if fullscr
  328. wnd = $MP_CreateWindowEX.call(WS_EX_TOPMOST,@class_name,@project_name,
  329. WS_VISIBLE | WS_POPUP,x,y,width,height,
  330. 0,0,@hInt,0)
  331. else
  332. wnd = $MP_CreateWindowEX.call(WS_EX_TOOLWINDOW,@class_name,@project_name,
  333. WS_VISIBLE | WS_POPUP,x,y,width,height,
  334. 0,0,@hInt,0)
  335. end
  336. # 窗體建立失敗
  337. return true if wnd == 0

  338. # 屏蔽原窗體
  339. $MP_EnableWindow.call(@hWnd,0)

  340. $MP_mciSendString.call("open \"" + movie_name + "\"" +
  341. " alias FILE style 1073741824 parent " +\
  342. wnd.to_s,0,0,0)
  343. if loop
  344. $MP_mciSendString.call("play FILE repeat window",0,0,0)
  345. else
  346. $MP_mciSendString.call("play FILE window",0,0,0)
  347. end

  348. @sys_timer.clear()
  349. step = 0.1
  350. begin
  351. loop do
  352. # 如果在窗口模式
  353. unless fullscr
  354. # 變成全屏
  355. if self.is_full?
  356. break
  357. else
  358. Graphics.update
  359. end
  360. end
  361. #sleep(step)
  362. if skip
  363. Input.update
  364. break if Input.trigger?(Input::A)
  365. end
  366. if @sys_timer.now_s >= movie_length
  367. break
  368. end
  369. if $MP_GetActiveWindow.call() != wnd
  370. $MP_SetActiveWindow.call(wnd)
  371. end
  372. end
  373. rescue Hangup
  374. retry
  375. end
  376. # 關閉當前窗體
  377. $MP_PostMessage.call(wnd,WM_CLOSE,0,0)
  378. $MP_mciSendString.call("close FILE",0,0,0)
  379. $MP_EnableWindow.call(@hWnd,1)
  380. $MP_SetActiveWindow.call(@hWnd)
  381. return true
  382. end
  383. end

  384. $MP = MoviePlayer.new
复制代码

评分

参与人数 1星屑 +200 收起 理由
冰舞蝶恋 + 200 热心回答

查看全部评分


                 无从有中来,有从无中生。
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
1071 小时
注册时间
2011-5-12
帖子
2317

贵宾

656
发表于 2011-7-3 23:30:52 | 只看该作者
我的米呀 发表于 2011-7-3 23:08

在Main里的$scene = Scene_Title.new前加入脚本语句,
例如播放logo.avi,時間13秒,禁止跳過,強制全屏,範圍(是0,0)-(640,480),循環播放:
  1. $MP.play("logo.avi",13,false,true)
复制代码

评分

参与人数 1星屑 +40 收起 理由
冰舞蝶恋 + 40 回答

查看全部评分

找我请找芙蕾娅
顺带一提,完全看得懂我头像请捡起你自己的节操哟(自重
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2011-6-22
帖子
15
657
发表于 2011-7-4 09:01:12 | 只看该作者


战斗里敌人数量超过3个之后就出现了这种状况,敌人名字里有两个B的,如何解决?

点评

话说你搜索 ["A", "B", "B", "D" 这段文字看看,搜到后把后一个B改成C。  发表于 2011-7-4 10:30

评分

参与人数 1星屑 +20 收起 理由
冰舞蝶恋 + 20 提问送分

查看全部评分

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
85
在线时间
424 小时
注册时间
2009-8-3
帖子
984
658
发表于 2011-7-4 09:12:49 | 只看该作者
本帖最后由 wsmyzc 于 2011-7-4 09:13 编辑
oukanagisa 发表于 2011-7-4 09:01
战斗里敌人数量超过3个之后就出现了这种状况,敌人名字里有两个B的,如何解决? ...


Game_Troop里
  1.   #--------------------------------------------------------------------------
  2.   # ● 接续在敌人名称之後
  3.   #--------------------------------------------------------------------------
  4.   LETTER_TABLE = []
复制代码
这个方框里的内容看一下,是不是A B B D这样了,是的话把第二个B改成C就行了

评分

参与人数 1星屑 +200 梦石 +2 收起 理由
冰舞蝶恋 + 200 + 2 热心回答。。

查看全部评分

回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
622
在线时间
129 小时
注册时间
2011-3-18
帖子
175
659
发表于 2011-7-4 09:56:25 | 只看该作者
eel 发表于 2011-7-3 22:28
无法使用编辑队伍

call_partyform是什么
评你毛个负分啊!
新人们辛辛苦苦挂的分就被你们些牛叉评没了!
好不容易挂的杂兵都被你们些牛叉评没了!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
72 小时
注册时间
2010-10-30
帖子
38
660
发表于 2011-7-4 10:11:08 | 只看该作者
问题名称:
        问题状况:请问门的地图部件在哪?
        报酬:
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-15 18:32

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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