找回密码
 点一下
查看: 1641|回复: 9

【召唤头目】关于call PlayCinematic()

[复制链接]
发表于 2009-12-10 11:01:49 | 显示全部楼层 |阅读模式
昨天有人问我怎么播放动画(战役开头动画那种)
因为我以前在J区整理时发现了关于PlayCinematic()这个函数的问题
于是告诉对方,然而无论如何设置也无法播放
百度到U9有人做了如下回答
可以实现AVI播放,无法实现RMVB。
电影是从外部读取,API函数是:

native PlayCinematic takes string movieName returns nothing

将所要播放电影放到movie目录下,貌似这个目录吧,不记得了,把AVI电影文件后缀改为mpq,例如sy.avi那么改为sy.mpq。

调用办法很简单,只用调用文件名:

call PlayCinematic("sy")

PS:注意只能在游戏结尾播放喔。。。。呃,不然后果自负。
复制代码 jass具体用法参照blizzard.j里面的:

[jass]
function SetCinematicAvailableBJ takes boolean available, integer cinematicIndex returns nothing
if ( cinematicIndex == bj_CINEMATICINDEX_TOP ) then
call SetOpCinematicAvailable( bj_CAMPAIGN_INDEX_T, available )
call PlayCinematic( "TutorialOp" )
elseif (cinematicIndex == bj_CINEMATICINDEX_HOP) then
call SetOpCinematicAvailable( bj_CAMPAIGN_INDEX_H, available )
call PlayCinematic( "HumanOp" )
elseif (cinematicIndex == bj_CINEMATICINDEX_HED) then
call SetEdCinematicAvailable( bj_CAMPAIGN_INDEX_H, available )
call PlayCinematic( "HumanEd" )
elseif (cinematicIndex == bj_CINEMATICINDEX_OOP) then
call SetOpCinematicAvailable( bj_CAMPAIGN_INDEX_O, available )
call PlayCinematic( "OrcOp" )
elseif (cinematicIndex == bj_CINEMATICINDEX_OED) then
call SetEdCinematicAvailable( bj_CAMPAIGN_INDEX_O, available )
call PlayCinematic( "OrcEd" )
elseif (cinematicIndex == bj_CINEMATICINDEX_UOP) then
call SetEdCinematicAvailable( bj_CAMPAIGN_INDEX_U, available )
call PlayCinematic( "UndeadOp" )
elseif (cinematicIndex == bj_CINEMATICINDEX_UED) then
call SetEdCinematicAvailable( bj_CAMPAIGN_INDEX_U, available )
call PlayCinematic( "UndeadEd" )
elseif (cinematicIndex == bj_CINEMATICINDEX_NOP) then
call SetEdCinematicAvailable( bj_CAMPAIGN_INDEX_N, available )
call PlayCinematic( "NightElfOp" )
elseif (cinematicIndex == bj_CINEMATICINDEX_NED) then
call SetEdCinematicAvailable( bj_CAMPAIGN_INDEX_N, available )
call PlayCinematic( "NightElfEd" )
elseif (cinematicIndex == bj_CINEMATICINDEX_XOP) then
call SetOpCinematicAvailable( bj_CAMPAIGN_OFFSET_XN, available )
call PlayCinematic( "IntroX" )
elseif (cinematicIndex == bj_CINEMATICINDEX_XED) then
call SetEdCinematicAvailable( bj_CAMPAIGN_OFFSET_XU, available )
call PlayCinematic( "OutroX" )
else
// Unrecognized cinematic - ignore the request.
endif
endfunction
[/jass]
以前提到过这个问题
http://bbs.islga.org/read-htm-tid-33679.html
但是也没什么结果
测试效果是触发执行函数后没有效果

因为很忙,无法过多测试
所以直接问了
发表于 2009-12-10 16:11:10 | 显示全部楼层
call PlayCinematic()一般用于单机战役~~而且电脑上要有解码器~~

单独使用PlayCinematic()只能在游戏结束后才能播放~~

但配合SaveAndChangeLevelBJ()可以在触发事件后播放电影~~

可惜要求切换到下一关卡~~

[jass]
call SaveAndChangeLevelBJ( "NextLevel.w3z", "Maps\\\\YourMap.w3x", true )
//1.20之前需要使用SetNextLevelBJ()来设置下一关卡~~1.24之后则不需要~~
// "Maps\\\\YourMap.w3x"为你切换的关卡地图路径~~
[/jass]
回复

使用道具 举报

发表于 2009-12-10 16:21:34 | 显示全部楼层
这电影是在游戏结束后播放的
回复

使用道具 举报

发表于 2009-12-10 16:27:37 | 显示全部楼层
超简单的演示给你个~~

CG.w3x

16 KB, 下载次数: 18

回复

使用道具 举报

 楼主| 发表于 2009-12-10 16:34:03 | 显示全部楼层
原来是先设置好
等游戏结束才播放……


几次测试都是直接退出的
我玩正规战役时又是用的绿色版没有动画……
所以一直不知道……
呜呜……
回复

使用道具 举报

发表于 2009-12-10 17:06:48 | 显示全部楼层
有虾米意义莫
回复

使用道具 举报

发表于 2009-12-10 17:59:37 | 显示全部楼层
感觉沙发的说话语气很像头目!~~
回复

使用道具 举报

发表于 2009-12-10 20:07:22 | 显示全部楼层
哇,很久以前曾经求教过头目这个。
那时候我问的只是阿尔塞斯的电影片段,同时会的播放电影。还去WOW8合伙体验了一番。

如今感兴趣的只有Jass函数。
回复

使用道具 举报

发表于 2009-12-10 20:09:43 | 显示全部楼层
头目,猪头大人,小红,小A。
他们的说话习惯我都知道一些,其他的……………………
回复

使用道具 举报

发表于 2009-12-10 22:09:58 | 显示全部楼层
记得原来看过孔明兄发的那个帖子,说可以播放影片,于是兴奋了……
我开始以为那个是头目呢……hmmm既然头目说马甲隐藏深说不定就是呢。
绝对是
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2024-7-22 08:26 , Processed in 0.031916 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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