命运石之门 ActionScript跨平台移植(flash,android)
命运石之门吧
全部回复
仅看楼主
level 1
阿伍_awu 楼主
1楼度娘
2012年01月02日 19点01分 1
level 1
阿伍_awu 楼主
对galgame一直很有爱,尤其是kid社(现5pb)
之前曾做过秋之回忆移植,不过当时是很粗劣的用自己的脚本格式搬运剧情,效率可想而之
很快就坑掉了。
一直忙于项目,元旦3天终于腾出时间来搞这个
因为不知道最终完成度能有多少,所以姑且只开个坑,希望能将这个经典移植到更广泛的平台去。
简单介绍
1. 基于actionscript3,发布平台为flash、android、ios等。ios有原生的,所以主要目的是flash(可以直接运行于网页,无需下载客户端),android。
2. 因为是自写引擎读取sg的脚本,所以100%还原基本上不可能了,估计最多可以完整的跑完剧情。目前只有一半的指令推敲出来了,其他的还是不明其意。看来太低估galgame脚本的复杂性了
3. 该脚本似乎和5pb其他galgame的脚本格式一样,所以推测引擎完成后能运行其他同格式游戏。对这个脚本有研究,愿意提供心得的,可以联系我~ [email protected]
目前能正常跑完第一幕

2012年01月02日 19点01分 2
level 1
阿伍_awu 楼主
附上DEBUG 输出
Using Flex SDK 4 Debugger Adapter..
Steins;Gate ActionScript Version
present by Awu 2012.1.1 load base file ..
bind Global EnterFrame Event ..
bind Keyboard Event
DataLite -> 载入资源:data/lang/ch/MAIN00.src (17 kb)
DataLite -> 载入资源:data/base/base.swf (50 kb)
[Loading] Loaded: E:\awu\SteinsGateEx\bin\data\base\base.swf
DataLite -> 所有下载任务完成.
※ FPS -> 全局FPS阻塞中.. 当前 526/57<delay:1>
[Loading] Loaded: E:\awu\SteinsGateEx\bin\Main.swf
System Init Successed !
DataLite -> 载入资源:data/lang/ch/SG00_01.src (81 kb)
ScriptReader -> load cmd successed,2211 rows. ----- Script Start Run ----- ScriptReader -> exec row: #label l_start
ScriptReader -> exec row: #call macrosys,SET_SCNTTL
ScriptReader -> exec row: #call macrosys2,Init_SG
ScriptReader -> exec row: #assign $W(LR_DATE),0728
set var -> $W(LR_DATE) = 0728
ScriptReader -> exec row: #messWindowCloseWait
ScriptReader -> exec row: #call macrosys,FadeOut0
ScriptReader -> exec row: #call macrosys,InitGraph
ScriptReader -> exec row: #resetFlag SF_BG1DISP
设置背景层1 ->false
ScriptReader -> exec row: #call macrosys,InitBG1 *** Check Next Cut Files ..
*** Start Row : #loadBG 1,BG_BLACK (pt:9)
*** End Row : #call macrosys,InitBG1 (pt:43) -- file list start --
img/bg/[email protected]
--------------------- -- start load --
DataLite -> 载入资源:data/img/bg/[email protected] (25 kb)
-- start load -- ScriptReader -> exec row: #loadBG 1,BG_BLACK
ScriptReader -> exec row: #setFlag SF_BG1DISP
设置背景层1 ->true
DataLite -> 所有下载任务完成.
ScriptReader -> exec row: #call macrosys,FadeIn0
ScriptReader -> exec row: #jump L_CERO
ScriptReader -> exec row: #label start
ScriptReader -> exec row: #call macrosys,SET_SCNTTL
ScriptReader -> exec row: #call macrosys2,Init_SG
ScriptReader -> exec row: #AutoSave 1
ScriptReader -> exec row: #setFlag SF_SYSTEMCHIP_HIDE
set flag -> SF_SYSTEMCHIP_HIDE = true
ScriptReader -> exec row: #setFlag SF_SYSTEMMENUDISABLE
set flag -> SF_SYSTEMMENUDISABLE = true
ScriptReader -> exec row: #setFlag SF_MESREVDISABLE
set flag -> SF_MESREVDISABLE = true
ScriptReader -> exec row: #setFlag SF_SAVEDISABLE
set flag -> SF_SAVEDISABLE = true
ScriptReader -> exec row: #resetFlag SF_PhoneSD_Disp
set flag -> SF_PhoneSD_Disp = false
ScriptReader -> exec row: #setFlag SF_Phone_Disable
set flag -> SF_Phone_Disable = true
ScriptReader -> exec row: #call macrosys,FadeOut0
ScriptReader -> exec row: #call macrosys,InitGraph
ScriptReader -> exec row: #call macrosys,FadeIn0
ScriptReader -> exec row: #call macrosys,SetRevTitle
ScriptReader -> exec row: #label L_PLAY_MOVIE_P1
ScriptReader -> exec row: #call macrosys,FadeOut0
ScriptReader -> exec row: #PlayMovie prologue01,true
ScriptReader -> exec row: #call macrosys,FadeIn0

2012年01月02日 19点01分 3
level 1
阿伍_awu 楼主
ScriptReader -> exec row: #PlayMovieWait
ScriptReader -> exec row: #label L_SKIP_MOVIE_P1
ScriptReader -> exec row: #assign $W(LR_DATE),0728
set var -> $W(LR_DATE) = 0728
ScriptReader -> exec row: #label L_PLAY_MOVIE_P2
ScriptReader -> exec row: #call macrosys,FadeOut0
ScriptReader -> exec row: #PlayMovie prologue02,false
ScriptReader -> exec row: #call macrosys,FadeIn0
ScriptReader -> exec row: #wait 30
ScriptReader -> exec row: #call macrosys,FadeOutWhite0
ScriptReader -> exec row: #PlayMovieWait
ScriptReader -> exec row: #label L_SKIP_MOVIE_P2
ScriptReader -> exec row: #resetFlag SF_BG1DISP
设置背景层1 ->false
ScriptReader -> exec row: #call macrosys,InitBG1 *** Check Next Cut Files ..
*** Start Row : #loadBG 1,BG13A1 (pt:44)
*** End Row : #call macrosys,InitBG1 (pt:175) -- file list start --
img/bg/[email protected]
img/bg/[email protected]
img/char/[email protected]
img/char/[email protected]
img/char/[email protected]
--------------------- -- start load --
DataLite -> 载入资源:data/img/char/[email protected] (98 kb)
DataLite -> 载入资源:data/img/char/[email protected] (116 kb)
DataLite -> 载入资源:data/img/bg/[email protected] (39 kb)
DataLite -> 载入资源:data/img/char/[email protected] (98 kb)
DataLite -> 载入资源:data/img/bg/[email protected] (121 kb)
-- start load -- ScriptReader -> exec row: #loadBG 1,BG13A1
ScriptReader -> exec row: #assign $W(SW_BG1PRI),PRI_BG
set var -> $W(SW_BG1PRI) = PRI_BG
ScriptReader -> exec row: #setFlag SF_BG1DISP
设置背景层1 ->true
DataLite -> 所有下载任务完成.
ScriptReader -> exec row: #call macrosys,TUNE_CHACOL_BGNO
ScriptReader -> exec row: #assign $W(SW_PHONE_PRI),PRI2_BG
set var -> $W(SW_PHONE_PRI) = PRI2_BG
ScriptReader -> exec row: #resetFlag SF_Phone_Disable
set flag -> SF_Phone_Disable = false
ScriptReader -> exec row: #checkCG _aaa
ScriptReader -> exec row: #assign $W(SW_PHONE_MODE),PhoneMode_PowerOff
set var -> $W(SW_PHONE_MODE) = PhoneMode_PowerOff
ScriptReader -> exec row: #setFlag SF_Phone_Open
set flag -> SF_Phone_Open = true
ScriptReader -> exec row: #wait 16
ScriptReader -> exec row: #jump _bbb
ScriptReader -> exec row: #label _aaa
ScriptReader -> exec row: #setFlag SF_PhoneSD_Disp
set flag -> SF_PhoneSD_Disp = true
ScriptReader -> exec row: #assign $W(LR_TARGET_MAILNO),FM_SPmail
set var -> $W(LR_TARGET_MAILNO) = FM_SPmail
ScriptReader -> exec row: #call macrosys2,RECEIVE_NEW_MAIL
ScriptReader -> exec row: #label _bbb
ScriptReader -> exec row: #resetFlag SF_BG2DISP
设置背景层2 ->false
ScriptReader -> exec row: #call macrosys,InitBG2
ScriptReader -> exec row: #loadBG 2,IBG001
ScriptReader -> exec row: #assign $W(SW_BG2PRI),PRI_UPPER_CHARA
ScriptReader -> exec row: #setFlag SF_BG2DISP
设置背景层2 ->true
ScriptReader -> exec row: #assign $W(SW_MASK2COLOR),COL_WHITE

2012年01月02日 19点01分 4
level 1
阿伍_awu 楼主
set var -> $W(SW_MASK2COLOR) = COL_WHITE
ScriptReader -> exec row: #assign $W(SW_MASK2ALPHA),256
set var -> $W(SW_MASK2ALPHA) = 256
ScriptReader -> exec row: #assign $W(SW_MASK2PRI),PRI2_EFFECT
set var -> $W(SW_MASK2PRI) = PRI2_EFFECT
ScriptReader -> exec row: #assign $W(SW_SEFADE),FADE_VERY2SLOW
set var -> $W(SW_SEFADE) = FADE_VERY2SLOW
ScriptReader -> exec row: #playSE 0,SGSE004L,true
ScriptReader -> exec row: #assign $W(SW_SEFADE),FADE_VERY2SLOW
set var -> $W(SW_SEFADE) = FADE_VERY2SLOW
ScriptReader -> exec row: #playSE 1,SGSE007L,true
ScriptReader -> exec row: #mwait 48
ScriptReader -> exec row: #call macrosys,FadeIn0
ScriptReader -> exec row: #assign $W(LR_TMP00),FADE_VERY2SLOW
set var -> $W(LR_TMP00) = FADE_VERY2SLOW
ScriptReader -> exec row: #assign $W(LR_TMP01),FADE_VERY2SLOW
set var -> $W(LR_TMP01) = FADE_VERY2SLOW
ScriptReader -> exec row: #beginAnimation
ScriptReader -> exec row: #assign $W(LR_TMP10),(((256*$W(LR_TMP00))<<4)/$W(LR_TMP01))
set var -> $W(LR_TMP10) = (((256*$W(LR_TMP00))<<4)/$W(LR_TMP01))
ScriptReader -> exec row: #assign $W(SW_MASK2ALPHA),(256-(($W(LR_TMP10)>>4)+(($W(LR_TMP10)>>3)&1)))
set var -> $W(SW_MASK2ALPHA) = (256-(($W(LR_TMP10)>>4)+(($W(LR_TMP10)>>3)&1)))
ScriptReader -> exec row: #assign $W(SW_BG2ALPHA),(256-(($W(LR_TMP10)>>4)+(($W(LR_TMP10)>>3)&1)))
set var -> $W(SW_BG2ALPHA) = (256-(($W(LR_TMP10)>>4)+(($W(LR_TMP10)>>3)&1)))
ScriptReader -> exec row: #CalcAccel SW_BG2POSY_OFS,(180-($W(SW_BG2POSY))),$W(LR_TMP00),$W(LR_TMP01)
set calc -> SW_BG2POSY_OFS = (180-($W(SW_BG2POSY)))
ScriptReader -> exec row: #mwait 1
ScriptReader -> exec row: #commitAnimation
ScriptReader -> exec row: #assign $W(SW_MASK2ALPHA),0
set var -> $W(SW_MASK2ALPHA) = 0
ScriptReader -> exec row: #assign $W(SW_BG2ALPHA),0
set var -> $W(SW_BG2ALPHA) = 0
ScriptReader -> exec row: #assign $W(SW_BG2POSY),0
set var -> $W(SW_BG2POSY) = 0
ScriptReader -> exec row: #assign $W(SW_BG2POSY_OFS),0
set var -> $W(SW_BG2POSY_OFS) = 0
ScriptReader -> exec row: #assign $W(SW_BG1PRI),PRI_UPPER_ALL
set var -> $W(SW_BG1PRI) = PRI_UPPER_ALL
ScriptReader -> exec row: #resetFlag SF_BG2DISP
设置背景层2 ->false
ScriptReader -> exec row: #assign $W(SW_BG1PRI),PRI_UPPER_ALL
set var -> $W(SW_BG1PRI) = PRI_UPPER_ALL
ScriptReader -> exec row: #call macrosys,InitBG2
ScriptReader -> exec row: #assign $W(SW_BG1PRI),PRI_BG
set var -> $W(SW_BG1PRI) = PRI_BG
ScriptReader -> exec row: #resetFlag SF_SYSTEMCHIP_HIDE
set flag -> SF_SYSTEMCHIP_HIDE = false
ScriptReader -> exec row: #resetFlag SF_SYSTEMMENUDISABLE
set flag -> SF_SYSTEMMENUDISABLE = false
ScriptReader -> exec row: #resetFlag SF_MESREVDISABLE
set flag -> SF_MESREVDISABLE = false
ScriptReader -> exec row: #resetFlag SF_SAVEDISABLE

2012年01月02日 19点01分 5
level 1
阿伍_awu 楼主
ScriptReader -> exec row: #mes 对方仍然无言。%p
ScriptReader -> exec row: #mes 似乎只想听我的报告。%p
ScriptReader -> exec row: #mes 很合理的判断。%p
ScriptReader -> exec row: #mes 在这个地方说来说去太危险了。%p
ScriptReader -> exec row: #mes2v OKA_0028,$W(LR_LIP_OKA),VID_OKA,@伦太郎@「嗯。中泍博士想要抢功。我会好好请教他打了什麽如意算盘」%p
ScriptReader -> exec row: #setDic 36
ScriptReader -> exec row: #mes2v OKA_0029,$W(LR_LIP_OKA),VID_OKA,@伦太郎@「……什麽!?机关已经有动静了?」%p
ScriptReader -> exec row: #mes 我挣大眼睛。吃惊的提高了声音。%p
ScriptReader -> exec row: #messWindowCloseWait
ScriptReader -> exec row: #resetFlag SF_CHA5DISP
设置角色层5 ->false
ScriptReader -> exec row: #call macrosys,InitCHA5
ScriptReader -> exec row: #loadCHA 5,MAY_AMB
ScriptReader -> exec row: #assign $W(SW_CHA5POSX),CHR_LEFT
ScriptReader -> exec row: #assign $W(SW_CHA5FACE),Face_MAY_B01
ScriptReader -> exec row: #assign $W(LR_FADE_TIM),CHR_FAST
set var -> $W(LR_FADE_TIM) = CHR_FAST
ScriptReader -> exec row: #call macrosys,CharaDisp51
ScriptReader -> exec row: #call macrosys,Qua3CHA1
ScriptReader -> exec row: #mes 少女也同时吓得震了一下。%p
ScriptReader -> exec row: #mes 我说别盯著我看啊。%p
ScriptReader -> exec row: #messWindowCloseWait
ScriptReader -> exec row: #call macrosys,CharaEraseAll
ScriptReader -> exec row: #mes 我叹了口气用手指按住额角摇了摇头。%p
ScriptReader -> exec row: #mes2v OKA_0030,$W(LR_LIP_OKA),VID_OKA,@伦太郎@「是吗。这就是命运石之门的选择啊 ERU PUSAI KONGURUU」%p
ScriptReader -> exec row: #resetFlag SF_Phone_Open
set flag -> SF_Phone_Open = false
ScriptReader -> exec row: #setFlag SF_Phone_Disable
set flag -> SF_Phone_Disable = true
ScriptReader -> exec row: #mes 说完告别的话。一脸深刻地把手机从耳边拿开。放进口袋里。%p
ScriptReader -> exec row: #mes 命运石之门。%p
ScriptReader -> exec row: #mes 它代表的意义和众神的意志或者与命运相同。%p
ScriptReader -> exec row: #mes 知道它存在的人。世界上也没有几个。%p
ScriptReader -> exec row: #mes 好了。赶快潜入吧。%p
ScriptReader -> exec row: #mes 我朝著广播站走去。%p
ScriptReader -> exec row: #messWindowCloseWait
ScriptReader -> exec row: #assign $W(SW_SEFADE),FADE_VERYSLOW
set var -> $W(SW_SEFADE) = FADE_VERYSLOW
ScriptReader -> exec row: #stopSE 0
ScriptReader -> exec row: #assign $W(SW_SEFADE),FADE_VERYSLOW
set var -> $W(SW_SEFADE) = FADE_VERYSLOW
ScriptReader -> exec row: #stopSE 1
ScriptReader -> exec row: #call macrosys,FadeOutSlow
ScriptReader -> exec row: #call macrosys,InitGraph
ScriptReader -> exec row: #resetFlag SF_BG1DISP
设置背景层1 ->false
ScriptReader -> exec row: #call macrosys,InitBG1 *** Check Next Cut Files ..
*** Start Row : #loadBG 1,BG07A1 (pt:176)
*** End Row : #call macrosys,InitBG1 (pt:296) -- file list start --
img/bg/[email protected]
img/char/[email protected]
img/char/[email protected]
img/bg/[email protected]
--------------------- -- start load --
DataLite -> 已有资源,跳过
DataLite -> 载入资源:data/img/char/[email protected] (117 kb)
DataLite -> 载入资源:data/img/bg/[email protected] (81 kb)
DataLite -> 载入资源:data/img/char/[email protected] (116 kb)
-- start load -- ScriptReader -> exec row: #loadBG 1,BG07A1
ScriptReader -> exec row: #setFlag SF_BG1DISP
设置背景层1 ->true
DataLite -> 所有下载任务完成.
ScriptReader -> exec row: #call macrosys,TUNE_CHACOL_BGNO
ScriptReader -> exec row: #wait 16
ScriptReader -> exec row: #mwait 48
ScriptReader -> exec row: #assign $W(SW_BGMVOL),SV_DEFAULT
set var -> $W(SW_BGMVOL) = SV_DEFAULT
ScriptReader -> exec row: #playBGM BGM07
unkown cmd : jump

2012年01月02日 19点01分 7
level 1
阿伍_awu 楼主
最后, 预告下,大约10天内就能有测试版。
2012年01月02日 19点01分 8
level 9
前排
支持,
2012年01月02日 23点01分 9
吧务
level 13
,!!顶!
2012年01月02日 23点01分 10
level 10
唔,好强力,这样会不会侵犯版权被起诉啊……
2012年01月02日 23点01分 11
level 11
技术宅拯救世界
2012年01月03日 00点01分 12
level 13
顶!虽然看不懂 但是很利害
2012年01月03日 00点01分 13
level 14
[Love]膜拜
2012年01月03日 00点01分 14
level 10
2012年01月03日 01点01分 15
level 10
整个人都技术了
2012年01月03日 01点01分 16
level 6
楼主是大神啊
2012年01月03日 02点01分 17
level 8
完全不懂程序,膜拜[Yeah]
话说好像和炸鸡2.1补丁的译文有微妙的区别,
2012年01月03日 03点01分 18
level 11
湿了一地....[我错了]
2012年01月03日 03点01分 19
level 8
请问我可以做什么?0.0
2012年01月03日 03点01分 20
level 8
哦,明白,没研究过没心得。。。很抱歉
2012年01月03日 03点01分 21
1 2 3 尾页