Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #TouhouDanmakufu[Single]
- #ScriptVersion[3]
- #Title["Damage Per Second"]
- #Text["By gtbot[r][r]USER1 Key spawns power points.[r][r]Pressing USER2 key while not pressing anything else will turn on/off litemode."]
- #Background["script/default_system/Default_Background_IceMountain.txt"]
- let objEnemy;
- let damage = 0;
- let orighp = 100000;
- let dummy = "script/default_system/img/Default_Shot.png";
- let dps = 0;
- let bomb = dps;
- let shift = dps;
- let unshift = dps;
- let count = 0;
- let frame = 0;
- let litemode = false;
- @Event{
- alternative(GetEventType)
- case(EV_REQUEST_LIFE){SetScriptResult(100000);}
- }
- @Initialize{
- objEnemy = ObjEnemy_Create(OBJ_ENEMY_BOSS);
- ObjEnemy_Regist(objEnemy);
- ObjPrim_SetTexture(objEnemy, dummy);
- ObjSprite2D_SetSourceRect(objEnemy, 351, 353, 413, 415);
- ObjSprite2D_SetDestCenter(objEnemy);
- LoadSound("script/default_system/se/seGetSpellCardBonus.wav");
- LoadSound("script/default_system/se/seUseSpellCard.wav");
- ObjMove_SetDestAtFrame(objEnemy, GetStgFrameWidth/2, 60, 60);
- ObjEnemy_SetLife(objEnemy, 100000);
- ObjEnemy_SetDamageRate(objEnemy, 100, 100);
- DrawDPS;
- }
- @MainLoop{
- yield;
- ObjEnemy_SetIntersectionCircleToShot(objEnemy, ObjMove_GetX(objEnemy), ObjMove_GetY(objEnemy), 32);
- ObjEnemy_SetIntersectionCircleToPlayer(objEnemy, ObjMove_GetX(objEnemy), ObjMove_GetY(objEnemy), 24);
- ObjRender_SetAngleZ(objEnemy, frame*8);
- if(GetVirtualKeyState(VK_USER1)==KEY_PUSH){
- CreateItemA1(ITEM_POWER, GetStgFrameWidth/4*1,280, 10);
- CreateItemA1(ITEM_POWER_S, GetStgFrameWidth/4*3,280, 10);
- }
- if(GetVirtualKeyState(VK_USER2) == KEY_PUSH && GetVirtualKeyState(VK_USER1) == KEY_FREE && GetVirtualKeyState(VK_SHOT) == KEY_FREE && GetVirtualKeyState(VK_SLOWMOVE) == KEY_FREE){
- if(litemode == false){litemode=true}else{litemode=false}
- }
- if(count>0 || count<0){
- ObjSprite2D_SetSourceRect(objEnemy, 351, 353, 413, 415);
- }
- if(count==0){
- ObjSprite2D_SetSourceRect(objEnemy, 415, 353, 477, 415);
- }
- if(IsPlayerSpellActive==true){
- damage = ObjEnemy_GetInfo(objEnemy, INFO_LIFE);
- count = -1;
- frame += 4;
- bomb = orighp-damage;
- }
- if(GetVirtualKeyState(VK_BOMB)==KEY_PUSH && GetPlayerSpell != 0 && count!=-1){bomb = 0;ObjEnemy_SetLife(objEnemy, 100000);}
- if(frame==180 && count > 0 && IsPlayerSpellActive == false){
- damage = ObjEnemy_GetInfo(objEnemy, INFO_LIFE);
- ObjEnemy_SetLife(objEnemy, 100000);
- dps = orighp - damage;
- dps = dps/3;
- count++;
- frame = 0;
- if(GetVirtualKeyState(VK_SLOWMOVE) == KEY_HOLD){
- shift = dps;
- }
- if(GetVirtualKeyState(VK_SLOWMOVE) == KEY_FREE){
- unshift = dps;
- }
- }
- if(frame==180 && count == 0){
- ObjEnemy_SetLife(objEnemy, 100000);
- count = 1;
- PlaySE("script/default_system/se/seUseSpellCard.wav");
- }
- if(frame>180){frame = 0;}
- if(GetVirtualKeyState(VK_SHOT) == KEY_PUSH || GetVirtualKeyState(VK_SHOT) == KEY_HOLD || IsPlayerSpellActive == true){
- frame++;
- }
- if(GetVirtualKeyState(VK_SHOT) == KEY_FREE || GetVirtualKeyState(VK_SLOWMOVE) == KEY_PUSH || GetVirtualKeyState(VK_SLOWMOVE) == KEY_PULL || GetPlayerState==STATE_DOWN){
- if(IsPlayerSpellActive == false){
- frame = 0;
- count = 0;
- }
- }
- if(GetVirtualKeyState(VK_SHOT) == KEY_HOLD && count==-1 && IsPlayerSpellActive == false){count=0;frame=0;}
- }
- task DrawDPS{
- let UnShift = ObjText_Create;
- ObjText_SetFontSize(UnShift, 16);
- ObjText_SetFontBold(UnShift, true);
- ObjText_SetFontColorTop(UnShift,255,255,255);
- ObjText_SetFontColorBottom(UnShift,128,128,255);
- ObjText_SetFontBorderType(UnShift,BORDER_FULL);
- ObjText_SetFontBorderColor(UnShift,0,0,64);
- ObjText_SetFontBorderWidth(UnShift,1);
- ObjText_SetMaxWidth(UnShift, 300);
- ObjRender_SetX(UnShift, GetStgFrameWidth/2+25);
- ObjRender_SetY(UnShift, 128);
- let Shift = ObjText_Create;
- ObjText_SetFontSize(Shift, 16);
- ObjText_SetFontBold(Shift, true);
- ObjText_SetFontColorTop(Shift,128,128,255);
- ObjText_SetFontColorBottom(Shift,225,255,255);
- ObjText_SetFontBorderType(Shift,BORDER_FULL);
- ObjText_SetFontBorderColor(Shift,0,0,64);
- ObjText_SetFontBorderWidth(Shift,1);
- ObjText_SetMaxWidth(Shift, 300);
- ObjRender_SetX(Shift, GetStgFrameWidth/2+25);
- ObjRender_SetY(Shift, 164);
- let Bomb = ObjText_Create;
- ObjText_SetFontSize(Bomb, 16);
- ObjText_SetFontBold(Bomb, true);
- ObjText_SetFontColorTop(Bomb,128,128,255);
- ObjText_SetFontColorBottom(Bomb,225,255,255);
- ObjText_SetFontBorderType(Bomb,BORDER_FULL);
- ObjText_SetFontBorderColor(Bomb,0,0,64);
- ObjText_SetFontBorderWidth(Bomb,1);
- ObjText_SetMaxWidth(Bomb, 300);
- ObjRender_SetX(Bomb, GetStgFrameWidth/2+25);
- ObjRender_SetY(Bomb, 200);
- let MarkerS = ObjText_Create;
- ObjText_SetFontSize(MarkerS, 15);
- ObjText_SetFontBold(MarkerS, true);
- ObjText_SetFontColorTop(MarkerS,128,128,255);
- ObjText_SetFontColorBottom(MarkerS,225,255,255);
- ObjText_SetFontBorderType(MarkerS,BORDER_FULL);
- ObjText_SetFontBorderColor(MarkerS,0,0,64);
- ObjText_SetFontBorderWidth(MarkerS,1);
- ObjText_SetMaxWidth(MarkerS, 268);
- ObjRender_SetX(MarkerS, GetStgFrameWidth/2-170);
- ObjRender_SetY(MarkerS, 128);
- let MarkerU = ObjText_Create;
- ObjText_SetFontSize(MarkerU, 15);
- ObjText_SetFontBold(MarkerU, true);
- ObjText_SetFontColorTop(MarkerU,128,128,255);
- ObjText_SetFontColorBottom(MarkerU,225,255,255);
- ObjText_SetFontBorderType(MarkerU,BORDER_FULL);
- ObjText_SetFontBorderColor(MarkerU,0,0,64);
- ObjText_SetFontBorderWidth(MarkerU,1);
- ObjText_SetMaxWidth(MarkerU, 268);
- ObjRender_SetX(MarkerU, GetStgFrameWidth/2-170);
- ObjRender_SetY(MarkerU, 164);
- let MarkerB = ObjText_Create;
- ObjText_SetFontSize(MarkerB, 15);
- ObjText_SetFontBold(MarkerB, true);
- ObjText_SetFontColorTop(MarkerB,128,128,255);
- ObjText_SetFontColorBottom(MarkerB,225,255,255);
- ObjText_SetFontBorderType(MarkerB,BORDER_FULL);
- ObjText_SetFontBorderColor(MarkerB,0,0,64);
- ObjText_SetFontBorderWidth(MarkerB,1);
- ObjText_SetMaxWidth(MarkerB, 268);
- ObjRender_SetX(MarkerB, GetStgFrameWidth/2-170);
- ObjRender_SetY(MarkerB, 200);
- let Counter = ObjText_Create;
- ObjText_SetFontSize(Counter, 15);
- ObjText_SetFontBold(Counter, true);
- ObjText_SetFontColorTop(Counter,128,128,255);
- ObjText_SetFontColorBottom(Counter,225,255,255);
- ObjText_SetFontBorderType(Counter,BORDER_FULL);
- ObjText_SetFontBorderColor(Counter,0,0,64);
- ObjText_SetFontBorderWidth(Counter,1);
- ObjText_SetMaxWidth(Counter, 268);
- ObjRender_SetX(Counter, GetStgFrameWidth/2-140);
- ObjText_SetHorizontalAlignment(Counter, ALIGNMENT_CENTER);
- ObjRender_SetY(Counter, 242);
- loop{
- ObjText_SetText(Shift, shift);
- ObjText_SetText(UnShift, unshift);
- ObjText_SetText(Bomb, bomb);
- if(litemode==false){
- ObjText_SetText(MarkerS, "Unshift DPS -");
- ObjText_SetText(MarkerU, "Shift DPS -");
- ObjText_SetText(MarkerB, "Bomb Damage -");
- if(count == 0){ObjText_SetText(Counter, "Keep shooting (or bomb) to ready the DPS.");}
- if(count > 0){ObjText_SetText(Counter, "Ready for DPS checking.");}
- if(count == -1){ObjText_SetText(Counter, "Bombing in progress...");}
- }else{
- ObjText_SetText(Counter, "");
- ObjText_SetText(MarkerS, "");
- ObjText_SetText(MarkerU, "");
- ObjText_SetText(MarkerB, "");
- }
- yield;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment