Advertisement
Guest User

danmakufucode

a guest
Jan 8th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.21 KB | None | 0 0
  1. #TouhouDanmakufu[Single]
  2. #ScriptVersion[3]
  3. #Title["Eternal Meek replica"]
  4. #Text["Code by Sparen[r]My first replica!"]
  5. #BGM["./necrofantasia.ogg"]
  6. #include "script/default_system/Default_ShotConst.txt"
  7. let objBoss;
  8. let objScene=GetEnemyBossSceneObjectID();
  9. function GetCenterX(){
  10. return GetStgFrameWidth() / 2;
  11. }
  12. function GetCenterY(){
  13. return GetStgFrameHeight() / 2;
  14. }
  15. function wait(n){
  16. loop(n){yield;}
  17. }
  18. task MainTask{
  19. ObjMove_SetDestAtFrame(objBoss, 192, 60, 60)
  20. wait(120);
  21. while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){
  22. CreateShotA1(ObjMove_GetX(objBoss), ObjMove_GetY(objBoss), rand(3, 6), rand(0, 360), DS_BALL_S_BLUE, 20);
  23. yield;
  24. }
  25. }
  26. task TDrawLoop {
  27. let imgSakuya = GetCurrentScriptDirectory() ~ "SakuyaSprite.png";
  28. ObjPrim_SetTexture(objBoss, imgSakuya);
  29. ObjSprite2D_SetSourceRect(objBoss, 0, 1, 59, 89);
  30. ObjSprite2D_SetDestCenter(objBoss);
  31. }
  32. task TFinalize {
  33. while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){yield;}
  34. if(ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SHOOTDOWN_COUNT)
  35. +ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SPELL_COUNT) == 0){
  36. AddScore(ObjEnemyBossScene_GetInfo(objScene, INFO_SPELL_SCORE));
  37. }
  38. Obj_Delete(objBoss);
  39. DeleteShotAll(TYPE_ALL, TYPE_IMMEDIATE);
  40. SetAutoDeleteObject(true);
  41. CloseScript(GetOwnScriptID());
  42. return;
  43. }
  44. @Event{
  45. alternative(GetEventType())
  46. case(EV_REQUEST_LIFE){
  47. SetScriptResult(2500);
  48. }
  49. case(EV_REQUEST_TIMER){
  50. SetScriptResult(60);
  51. }
  52. case(EV_REQUEST_SPELL_SCORE){
  53. SetScriptResult(1000000);
  54. }
  55. }
  56. @Initialize{
  57. objBoss = ObjEnemy_Create(OBJ_ENEMY_BOSS);
  58. ObjEnemy_Regist(objBoss);
  59. ObjMove_SetDestAtFrame(objBoss, 192, 60, 60);
  60. ObjEnemyBossScene_StartSpell(objScene);
  61. TDrawLoop;
  62. TFinalize;
  63. MainTask;
  64. }
  65. @MainLoop{
  66. ObjEnemy_SetIntersectionCircleToShot(objBoss, ObjMove_GetX(objBoss), ObjMove_GetY(objBoss), 32);
  67. ObjEnemy_SetIntersectionCircleToPlayer(objBoss, ObjMove_GetX(objBoss), ObjMove_GetY(objBoss), 24);
  68. yield;
  69. }
  70. /*task MainTask{
  71. ObjMove_SetDestAtFrame(objBoss, 192, 60, 60)
  72. wait(120);
  73. while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){
  74. CreateShotA1(ObjMove_GetX(objBoss), ObjMove_GetY(objBoss), rand(3, 6), rand(0, 360), DS_BALL_S_BLUE, 20);
  75. yield;
  76. }
  77. }
  78. }
  79. task TDrawLoop {
  80. let imgSakuya = GetCurrentScriptDirectory() ~ "SakuyaSprite.png";
  81. ObjPrim_SetTexture(objBoss, imgSakuya);
  82. ObjSprite2D_SetSourceRect(objBoss, 0, 1, 59, 89);
  83. ObjSprite2D_SetDestCenter(objBoss);
  84. }
  85. task TFinalize {
  86. while(ObjEnemy_GetInfo(objBoss, INFO_LIFE) > 0){yield;}
  87. if(ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SHOOTDOWN_COUNT)
  88. +ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SPELL_COUNT) == 0){
  89. AddScore(ObjEnemyBossScene_GetInfo(objScene, INFO_SPELL_SCORE));
  90. }
  91. Obj_Delete(objBoss);
  92. DeleteShotAll(TYPE_ALL, TYPE_IMMEDIATE);
  93. SetAutoDeleteObject(true);
  94. CloseScript(GetOwnScriptID());
  95. return;
  96. }
  97. function GetCenterX(){
  98. return GetStgFrameWidth() / 2;
  99. }
  100. function GetCenterY(){
  101. return GetStgFrameHeight() / 2;
  102. }
  103. function wait(n){
  104. loop(n){yield;}
  105. }*/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement