Advertisement
Guest User

Untitled

a guest
Feb 1st, 2019
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.11 KB | None | 0 0
  1. #TouhouDanmakufu[Package]
  2. #Title["Heart's EverLasting Lunacy"]
  3. #Text["Package"]
  4. #include "./lib_sound.dnh"
  5. let CSD = GetCurrentScriptDirectory;
  6. let cc = 0;
  7. let timer = 0;
  8.  
  9. let changeIndex = 0;
  10.  
  11. let stageCounter = 1;
  12.  
  13. let TitleIndex = 1;
  14. let fixTitleIndex = 0;
  15. let restriction = 1;
  16.  
  17. let selectIndex = 0;
  18.  
  19. let ContinueCount = 0;
  20.  
  21. let indexText = ObjText_Create();
  22.  
  23. function wait(n){
  24. loop(n){yield;}
  25. }
  26.  
  27. function rand_int(min, max){
  28. return round(rand(min, max))
  29. }
  30.  
  31. @Initialize{
  32. SetCommonData("Practice", 0);
  33. SetCommonData("Continues", ContinueCount);
  34. TTitle;
  35. }
  36.  
  37. @MainLoop{
  38. ObjText_SetText(indexText, selectIndex);
  39. if(GetCommonData("inc", 0) != cc){
  40. cc = GetCommonData("inc", 0);
  41. timer = 0;
  42. }
  43. if(cc == GetCommonData("inc", 0)){
  44. timer ++;
  45. }
  46. yield;
  47. }
  48.  
  49. @Finalize{
  50.  
  51. }
  52.  
  53. task TTitle{
  54.  
  55. MainMenu;
  56.  
  57. }
  58.  
  59. task MainMenu{
  60. TitleIndex = 1;
  61. selectIndex = 0;
  62. let pathImg = CSD ~ "images/TitleItems.png";
  63.  
  64. let INDEX_START = 0;
  65. let INDEX_PRACTICE = 2;
  66.  
  67. let frameKeyHold = 0;
  68. while(TitleIndex == 1){
  69. if(GetVirtualKeyState(VK_OK) == KEY_PUSH){
  70. alternative(selectIndex)
  71. case(INDEX_START){
  72. SetCommonData("Practice", 0);
  73. DifficultyMenu;
  74. break;
  75. }
  76. }
  77.  
  78. yield;
  79. }
  80. }
  81.  
  82. task DifficultyMenu{
  83. TitleIndex = 2;
  84. selectIndex = 1;
  85.  
  86. let frameKeyHold = 0;
  87. while(TitleIndex == 2){
  88. if(GetVirtualKeyState(VK_OK) == KEY_PUSH && 4 > selectIndex){
  89. alternative(selectIndex)
  90. ...
  91. CharacterSelect(2);
  92. }
  93.  
  94. yield;
  95. }
  96. }
  97.  
  98. task CharacterSelect(reservedIndex){
  99. TitleIndex = 3;
  100. selectIndex = 0;
  101.  
  102. let frameKeyHold = 0;
  103.  
  104. while(TitleIndex == 3){
  105.  
  106. if(GetVirtualKeyState(VK_OK) == KEY_PUSH && 4 > selectIndex){
  107. alternative(selectIndex)
  108. case(0){
  109. SetCommonData("PlayerID", 1);
  110. }
  111. case(1){
  112. SetCommonData("PlayerID", 2);
  113. }
  114. alternative(reservedIndex)
  115. case(2){
  116. TStageScene("", 1);
  117. TitleIndex = 0;
  118. ClearInvalidRenderPriority();
  119. SetAreaCommonData("Boss Spell", "Active", false);
  120. SaveCommonDataAreaA2("Boss Spell", "./CDarea.dnh");
  121. }
  122. }
  123.  
  124. yield;
  125. }
  126. }
  127.  
  128. task TStageScene(pathReplay, continue){
  129. let titleSceneEnd = false;
  130. let CSD = GetCurrentScriptDirectory;
  131. let MD = GetModuleDirectory;
  132. let pathMainScript;
  133. let diff = GetAreaCommonData("Difficulty", "diff", 1);
  134. alternative(diff)
  135. case(0){
  136. pathMainScript = CSD ~ "(" ~ itoa(stageCounter) ~ ")Stage (E).dnh";
  137. }
  138.  
  139. SetCommonData("StageNum", stageCounter);
  140. let pathPlayer1 = MD;
  141. if(GetCommonData("PlayerID", 1) == 1){
  142. pathPlayer1 = MD ~ "script/player/ReimuA/playerreimu.dnh";
  143. }else if(GetCommonData("PlayerID", 1) == 2){
  144. pathPlayer1 = MD ~ "script/player/MarisaA/playermarisa.dnh";
  145. }
  146.  
  147. RenderSceneToTransitionTexture();
  148. TTransition();
  149.  
  150. InitializeStageScene();
  151.  
  152. if(length(pathReplay) > 0){
  153. SetStageReplayFile(pathReplay);
  154. }
  155.  
  156. let indexStage = 1;
  157. SetStageIndex(indexStage);
  158. SetStageMainScript(pathMainScript);
  159. SetStagePlayerScript(pathPlayer1);
  160. StartStageScene();
  161.  
  162. loop{
  163. //----------------------------------------
  164. if(GetVirtualKeyState(VK_PAUSE) == KEY_PUSH && GetCommonData("MenuWork", 0) == 0){
  165. let resPause = RunPauseScene();
  166. alternative(resPause)
  167.  
  168. case(RESULT_RETRY){
  169. if(!IsReplay()){
  170. TerminateStageScene();
  171. TStageScene("", 1);
  172. return;
  173. }
  174. }
  175.  
  176. case(RESULT_END){
  177. TerminateStageScene();
  178. }
  179. }
  180. //----------------------------------------
  181. if(!IsReplay() && GetKeyState(KEY_BACK) == KEY_PUSH){
  182. TerminateStageScene();
  183. TStageScene("", 1);
  184. return;
  185. }
  186. //----------------------------------------
  187. if(GetCommonData("ContinueUse", 0) == 1){
  188. ContinueScreen;
  189. SetCommonData("ContinueUse", 0)
  190. }
  191. //----------------------------------------
  192. if(GetCommonData("StageRestart", 0) == 1){
  193. SetCommonData("StageRestart", 0);
  194. if(!IsReplay()){
  195. TerminateStageScene();
  196. TStageScene("", 1);
  197. return;
  198. }
  199. }
  200. let stgSceneState = GetStageSceneState();
  201. if(stgSceneState == STAGE_STATE_FINISHED){
  202. let stageResult = GetStageSceneResult();
  203. alternative(stageResult)
  204. //-------------------------------------------------------
  205. ...
  206. //------------------------------------------------------
  207. /*case(STAGE_RESULT_PLAYER_DOWN){
  208. TEndScene();
  209. break;
  210. }*/
  211. //------------------------------------------------------
  212. case(STAGE_RESULT_BREAK_OFF){
  213. TTitle;
  214. break;
  215. }
  216. //------------------------------------------------------
  217. }
  218. yield;
  219. }
  220. TTransition();
  221. }
  222.  
  223. task ContinueScreen{
  224. wait(30);
  225. SetCommonData("MenuWork", 1);
  226. SaveSnapShotA1("script/Tutorial/images/screensave.png");
  227. RenderSceneToTransitionTexture();
  228. PauseStageScene(true);
  229.  
  230. let pathScript = GetCurrentScriptDirectory ~ "system/Continue.dnh";
  231. let idScript = LoadScript(pathScript);
  232. StartScript(idScript);
  233.  
  234. while(!IsCloseScript(idScript)){
  235. yield;
  236. }
  237.  
  238. let result = GetScriptResult(idScript);
  239. alternative(result)
  240. case(0){
  241. SetCommonData("MenuWork", 0);
  242. ContinueCount --;
  243. SetCommonData("Continues", ContinueCount);
  244. NotifyEventAll(EV_USER + 8, 2);
  245. PauseStageScene(false);
  246. }
  247. case(1){
  248. SetCommonData("MenuWork", 0);
  249. NotifyEventAll(EV_USER + 8, -1);
  250. TerminateStageScene;
  251. PauseStageScene(false);
  252. }
  253. case(2){
  254. TReplaySaveScene;
  255. }
  256. case(3){
  257. SetCommonData("MenuWork", 0);
  258. SetCommonData("StageRestart", 1);
  259. if(GetCommonData("Practice", 0) == 0){
  260. stageCounter = 1;
  261. }
  262. PauseStageScene(false);
  263. }
  264. }
  265.  
  266. task TReplaySaveScene{
  267. let dirModule = GetModuleDirectory();
  268. let pathScript = dirModule ~ "script/default_system/Default_ReplaySaveScene.txt";
  269.  
  270. let idScript = LoadScript(pathScript);
  271. StartScript(idScript);
  272.  
  273. while(!IsCloseScript(idScript))
  274. {
  275. yield;
  276. }
  277.  
  278. SetCommonData("MenuWork", 0);
  279. TerminateStageScene;
  280. }
  281.  
  282. task TEndScene(){
  283. if(IsReplay())
  284. {
  285. TTitle;
  286. return;
  287. }
  288.  
  289. FinalizeStageScene();
  290.  
  291. let pathScript = GetCurrentScriptDirectory ~ "system/EndScene.dnh";
  292. let idScript = LoadScript(pathScript);
  293. StartScript(idScript);
  294.  
  295. while(!IsCloseScript(idScript)){
  296. yield;
  297. }
  298.  
  299. //--------------------------------
  300. let result = GetScriptResult(idScript);
  301. alternative(result)
  302. case(RESULT_END){
  303. TTitle;
  304. }
  305. case(RESULT_RETRY){
  306. TStageScene("", 1);
  307. }
  308. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement