| ~Hakurei Shrine~ > Rika and Nitori's Garage Experiments |
| =WARNING= Script testing site =WARNING= |
| (1/1) |
| Infy♫:
Hello there! I made this thread because there was no place to post scripts for other people to test them. Everyone is allowed to post single scripts if he/she wonders if they're actually playable or could be adjusted, or if he/she just wants other people's opinion. I have a certain script here and i would like you to test it. I suck at shooting games so i couldn't see if this is actually playable. and if it even fits an extra/phantasm stage. --- Code: ---#TouhouDanmakufu #Title[Insanity in Danmaku "Dodge this you punk"] #Text[what] #Image[.\ss.jpg] #BackGround[IceMountain] #Player[FREE] #ScriptVersion[2] script_enemy_main { let frame = 0; SetCommonData("Weight",0); let deg = 22.5; #include_function "lib\SHOT_REPLACE\shot_replace.dnh" let rotvar = 0; let frame2 = 0; let frame3 = 0; let frame4 = 0; let deg2 = 0; let deg3 = 0; let deg4 = 0; let mode = 1; let BossImage = GetCurrentScriptDirectory ~ "huhu.gif"; let BossCutIn = GetCurrentScriptDirectory ~ "ss.jpg"; let Back = GetCurrentScriptDirectory ~ "Wormhole.jpg"; LoadSE(GetCurrentScriptDirectory ~ "tan01.wav"); LoadSE(GetCurrentScriptDirectory ~ "kira00.wav"); LoadSE(GetCurrentScriptDirectory ~ "enep01.wav"); @Initialize { shotinit; LoadGraphic(BossCutIn); LoadGraphic(BossImage); LoadGraphic(Back); shotinit; SetLife(1000); SetDamageRate(7, 0); SetTimer(80); SetInvincibility(30); CutIn(YOUMU, " Insanity in Danmaku "\""Dodge this you punk"\", BossCutIn, 0, 0, 200, 600); SetScore(5000000); SetEnemyMarker(true); SetDurableSpellCard; Concentration01(120); Concentration02(60); MagicCircle(true); SetEffectForZeroLife(180, 100, 1); SetX(GetCenterX()); SetY(200); SetShotAutoDeleteClip(10,10,10,10); } task CreateShotSakuya(d,a,s) { let randy = 0; let obj = Obj_Create(OBJ_SHOT); let bounced = 0; Obj_SetPosition (obj, GetX, GetY); Obj_SetSpeed (obj, s); Obj_SetAngle (obj, d); ObjShot_SetGraphic(obj, a); ObjShot_SetDelay (obj, 20); while(! Obj_BeDeleted(obj) && bounced == 0){ if( bounced < 1){ if(Obj_GetX(obj) < GetClipMinX || Obj_GetX(obj) > GetClipMaxX){ Obj_SetAngle(obj, 2 * (90- Obj_GetAngle(obj)) + Obj_GetAngle(obj)); bounced++; } } yield; } } task CreateShotMaze(x,y,d,a) { let obj = Obj_Create(OBJ_SHOT); let timer = 0; let boink = 0; Obj_SetPosition (obj, x,y); Obj_SetSpeed (obj, 1.5); Obj_SetAngle (obj, d); ObjShot_SetGraphic (obj, a); ObjShot_SetDelay (obj, 30); Obj_SetAutoDelete(obj,false); while(! Obj_BeDeleted(obj)){ timer++; if(timer > 500){ Obj_Delete(obj); } yield; } } function kunaishoot(d){ let dir = 0; loop(30){ //CreateShot01(GetX,GetY, sec(dir) *4 ,d - dir,RED31,10); CreateShot01(GetX,GetY, sec(dir) *4 ,d + dir,RED31,10); dir += 2; } } function sec (iii){ return(1/cos(iii)); } @MainLoop { SetCollisionA(GetX, GetY, 32); SetCollisionB(GetX, GetY, 24); frame++; yield; frame2++; frame3++; if(frame == 2){ deg2 += 10; CreateShot01(GetX,GetY,2,deg2,BLUE11,20); CreateShot01(GetX,GetY,2,deg2 +90,BLUE11,20); CreateShot01(GetX,GetY,2,deg2 +180,BLUE11,20); CreateShot01(GetX,GetY,2,deg2 +270,BLUE11,20); CreateShot01(GetX,GetY,2,deg2 *-1,BLUE11,20); CreateShot01(GetX,GetY,2,deg2 *-1+90,BLUE11,20); CreateShot01(GetX,GetY,2,deg2 *-1+180,BLUE11,20); CreateShot01(GetX,GetY,2,deg2 *-1+270,BLUE11,20); frame = 0; deg += 30.5; loop(6){ deg += 15; CreateShotMaze(GetX - sin(deg) *350,GetY + cos(deg) *350,deg -90,RED12); } deg -= 90; } } @DrawLoop { SetTexture(BossImage); DrawGraphic(GetX, GetY); } @Finalize { DeleteGraphic(BossImage); DeleteGraphic(BossCutIn); DeleteGraphic(Back); } @BackGround { rotvar += 1; SetGraphicAngle (0,0,rotvar); SetTexture (Back); SetGraphicRect (0,0,1024,768); DrawGraphic (GetCenterX(), GetCenterY()); } } --- End code --- |
| Nimono:
Well, two things... 1: Yes, it's playable! It creates a good bit of slowdown for me, though... It goes below 40 FPS... 2: The spell's actually kinda easy... Slight back-and-forth movement, even when the bullets return to you, will be easy. Usually. Here's a suggestion: Rotate it all a bit. That way, instead of just back-and-forth dodging, you also have to follow it or die! (Or squeeze through the gaps.) |
| Infy♫:
thanks! the FPS doesn't go below 40 for me but it's still very laggy. besides that, i can't survive this pattern for longer than 5 seconds. I'll try to reduce the lag, too. |
| Infy♫:
Hi, I have something new to test! it requires the shot replace script. --- Code: ---#TouhouDanmakufu #Title[Molten Brain "Collapsed Mind -Rumia-"] #Text[yukari got pwnd] #Image[.\ss.jpg] #BackGround[IceMountain] #Player[FREE] #ScriptVersion[2] script_enemy_main { let frame = 0; let deg = 0; #include_function "lib\SHOT_REPLACE\shot_replace.dnh" let rotvar = 0; let frame2 = 0; let frame3 = 0; let frame4 = 0; let deg2 = 0; let deg3 = 0; let deg4 = 0; let speed = 2; let distance = 120; let mode = 3; let BossImage = GetCurrentScriptDirectory ~ "ExRumia.png"; let BossCutIn = GetCurrentScriptDirectory ~ "ss.jpg"; let Back = GetCurrentScriptDirectory ~ "Wormhole.jpg"; let Back2 = GetCurrentScriptDirectory ~ "sterren.jpg"; LoadSE(GetCurrentScriptDirectory ~ "tan01.wav"); LoadSE(GetCurrentScriptDirectory ~ "kira00.wav"); LoadSE(GetCurrentScriptDirectory ~ "enep01.wav"); @Initialize { shotinit; LoadGraphic(BossCutIn); LoadGraphic(BossImage); LoadGraphic(Back); LoadGraphic(Back2); SetLife(1000); SetDamageRate(8, 0); SetTimer(90); SetInvincibility(30); CutIn(YOUMU, "Molten Brain "\""Collapsed Mind -Rumia-"\", BossCutIn, 0, 0, 200, 600); SetScore(5000000); SetEnemyMarker(true); SetDurableSpellCard; Concentration01(120); Concentration02(60); MagicCircle(true); SetEffectForZeroLife(180, 100, 1); SetX(GetCenterX()); SetY(150); } task CreateShotSakuya(d,a,s) { let randy = 0; let obj = Obj_Create(OBJ_SHOT); let bounced = 0; Obj_SetPosition (obj, GetX, GetY); Obj_SetSpeed (obj, s); Obj_SetAngle (obj, d); ObjShot_SetGraphic(obj, a); ObjShot_SetDelay (obj, 20); while(! Obj_BeDeleted(obj)){ if( bounced < 2){ if(Obj_GetX(obj) < GetClipMinX || Obj_GetX(obj) > GetClipMaxX){ Obj_SetAngle(obj, 2 * (90- Obj_GetAngle(obj)) + Obj_GetAngle(obj)); bounced++; } if(Obj_GetY(obj) < GetClipMinY ){ Obj_SetAngle(obj, 2 * (180- Obj_GetAngle(obj)) + Obj_GetAngle(obj)); bounced++; } } yield; } } task CreateShotRound(d,a,s,i) { let obj = Obj_Create(OBJ_SHOT); let timer = 0; let boink = 0; Obj_SetPosition (obj, GetX,GetY); Obj_SetSpeed (obj, s); Obj_SetAngle (obj, d); ObjShot_SetGraphic (obj, a); ObjShot_SetDelay (obj, 0); while(! Obj_BeDeleted(obj)){ timer++; if(timer == 20){ Obj_SetAngle(obj,Obj_GetAngle(obj) + 90); } if(timer > 20){ Obj_SetAngle(obj,Obj_GetAngle(obj) + i); } yield; } } task CreateShot012(x,y,d,a,s) { let obj = Obj_Create(OBJ_SHOT); let timer = 0; let boink = 0; Obj_SetPosition (obj, x,y); Obj_SetSpeed (obj, s); Obj_SetAngle (obj, d); ObjShot_SetGraphic (obj, a); ObjShot_SetDelay (obj, s *5); while(! Obj_BeDeleted(obj)){ timer++; if(Obj_GetY(obj) > GetClipMaxY){ if(boink == 0){ boink = 1; CreateLaserA(1,Obj_GetX(obj),Obj_GetY(obj),550,80,BLUE60,10); SetLaserDataA(1,0,-90,0,0,0,0); SetShotKillTime(1,30); FireShot(1); } } yield; } } @MainLoop { SetCollisionA(GetX, GetY, 32); SetCollisionB(GetX, GetY, 24); frame++; yield; frame2++; frame3++; frame4++; if(frame4 > 1100){ DeleteEnemyShot(CHILD); distance = 120; deg = 0; frame4 = 0; mode++; if(mode == 5){ mode = 1; } } if(mode == 1){ if(frame > 1){ frame = 0; distance = sin(frame2/3) *120; deg2+=4 + sin(frame2); loop(6){ deg2 += 60; CreateShot01(GetX + sin(deg2) * distance,GetY - cos(deg2) * distance,2.5,deg2 + frame2 +90,BLUE12,20); } deg2 = deg2 *-1; loop(6){ deg2 += 60; CreateShot01(GetX + sin(deg2) * distance,GetY - cos(deg2) * distance,2.5,deg2 - frame2 +90,BLUE12,20); } deg2 = deg2 *-1; } } if(mode == 2){ if(frame2 > 1){ frame2 = 0; deg2 += 61; CreateShot01(GetX,GetY,3,deg2,RED12,10); CreateShot01(GetX,GetY,3,deg2 +60,RED12,10); CreateShot01(GetX,GetY,3,deg2 +120,RED12,10); CreateShot01(GetX,GetY,3,deg2 +180,RED12,10); deg2 = deg2 *-1; CreateShot01(GetX,GetY,3,deg2,BLUE12,10); CreateShot01(GetX,GetY,3,deg2 +60,BLUE12,10); CreateShot01(GetX,GetY,3,deg2 +120,BLUE12,10); CreateShot01(GetX,GetY,3,deg2 +180,BLUE12,10); deg2 = deg2 *-1; } if(frame3 > 11 ){ frame3 = 0; deg+=4; loop(8){ deg += 45; CreateShotRound(-1* deg,RED31,2.8,0.5); CreateShotRound( deg,RED31,2.8,-0.5); } } } if(mode == 3){ deg = rand(1,360); if(frame2 > 200){ speed = 1; frame2 = 0; loop(30){ speed+=0.18; loop(16){ deg += 22.5; CreateShot01(GetX,GetY,speed,GetAngleToPlayer + deg,RED31,speed *5); } } loop(16){ deg += 22.5; CreateShot012(GetX,GetY,deg + GetAngleToPlayer,RED31,speed); } } if(frame > 65){ frame = 0; loop(11){ deg+=360/11; CreateShotSakuya(deg,RED03,3); } } } if(mode == 4){ if(frame2 > 180){ if(frame3 > 5){ frame3 = 0; CreateLaserA(1,GetX,GetY,550,20,BLUE60,30); SetLaserDataA(1,0,GetAngleToPlayer,0,0,0,0); SetShotKillTime(1,50); FireShot(1); } } if(frame2 > 240){ frame2 = 0; } if(frame > 30){ frame = 0; deg = rand(1,360); loop(60){ deg += 360/60; CreateShotPlanet(GetX,GetY,deg,1,1); CreateShotPlanet(GetX,GetY,deg,1,-1); } } } } @DrawLoop { SetGraphicAngle (0,0,0); SetColor(255,255,255); SetAlpha(255); SetRenderState(ALPHA); SetTexture(BossImage); if(GetSpeedX()==0){SetGraphicRect(64,1,127,64);} else if(GetSpeedX()>0){SetGraphicRect(192,1,255,64);} else if(GetSpeedX()<0){SetGraphicRect(128,1,191,64);} DrawGraphic(GetX(),GetY()); } @Finalize { DeleteGraphic(BossImage); DeleteGraphic(BossCutIn); DeleteGraphic(Back); } @BackGround { SetTexture(Back2); SetGraphicAngle (0,0,0); SetGraphicRect (0,0,1024,768); DrawGraphic (GetCenterX(), GetCenterY()); SetAlpha(100); rotvar += 0.5; SetGraphicAngle (0,0,rotvar); SetTexture (Back); SetGraphicRect (0,0,1024,768); DrawGraphic (GetCenterX(), GetCenterY()); SetGraphicAngle (0,0,rotvar *-1); DrawGraphic (GetCenterX(), GetCenterY()); SetAlpha(255); } task CreateShotPlanet(x,y,d,vv,i) { let obj = Obj_Create(OBJ_SHOT); let frame = 0; let angle = d; let oldangle = 0; let jump = 0; let frame2 = 0; Obj_SetPosition (obj, x, y); Obj_SetSpeed (obj, vv); Obj_SetAngle (obj, d); ObjShot_SetGraphic (obj,BLUEI12); ObjShot_SetDelay (obj, 10); while(! Obj_BeDeleted(obj)){ frame++; if(frame > 79 && frame < 120){ angle+=4.3 * i; Obj_SetAngle(obj,angle); Obj_SetSpeed(obj,3); } if(frame == 120){ Obj_SetSpeed(obj,4); } yield; } } } --- End code --- |
| KomeijiKoishi:
--- Code: ---#TouhouDanmakufu #Title[Darkness "Blood Red Disaster"] #Text[Test script] #BackGround[User(.\black.png, 1, 1)] #Player[FREE] #ScriptVersion[2] script_enemy_main { let ImgBoss = "script\img\ExRumia.png"; let count = -70; let fire = 0; @Initialize { SetLife(1200); SetDamageRate(10, 0); SetTimer(256); SetScore(1000000); SetInvincibility( 200 ); LoadGraphic(ImgBoss); SetMovePosition02(GetCenterX, GetCenterY-120, 120); CutIn(YOUMU, "Darkness "\""Blood Red Disaster"\", "", 0, 0, 0, 0); LoadUserShotData("\script\extrabosses_mcxd\images\supershot.txt"); SetGraphicRect(0, 0, 64, 64); } @MainLoop { SetCollisionA(GetX, GetY, 32); SetCollisionB(GetX, GetY, 16); if ((count == 50)){ particle; } count++; yield; } @DrawLoop { SetTexture(ImgBoss); DrawGraphic(GetX, GetY); } @Finalize { DeleteGraphic(ImgBoss); } task particle{ let b = 0; let bup = 0; let reverse = 0; let lrar = 0; let kput = 4; let krar = 360/kput; let Length = 10; let x = 2.3; let n = 0; let q = 0; let RollerX; let RollerY; let RollerTwoX; let RollerTwoY; loop{ PlaySE(GetCurrentScriptDirectory~"SE\se_tan01.wav"); ascent(a in 0..kput){ RollerX = GetX + cos((a*krar+b)+1*(360/2)); RollerY = GetY + sin((a*krar+b)+1*(360/2)); RollerTwoX = RollerX + Length * cos((a*krar+b)+1*(360/2)); RollerTwoY = RollerY + Length * sin((a*krar+b)+1*(360/2)); TheshotUp(RollerTwoX, RollerTwoY, 3, (a*krar+b)+count, 172, 10); TheshotDown(RollerTwoX, RollerTwoY, 3, (a*krar+b)+count, 172, 10); TheshotLeft(RollerTwoX, RollerTwoY, 3, (a*krar+b)+count, 172, 10); TheshotRight(RollerTwoX, RollerTwoY, 3, (a*krar+b)+count, 172, 10); } if (reverse == 0){ if (bup > -0.7){ bup += 0.1; } else{ reverse++; } } else{ if (bup > 0){ bup -= 0; } else{ reverse--; } } b += bup; if (Length > -200){ Length -= 0; } loop(6){ yield; } } } task TheshotUp(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let a = 0; let b = 0; let dir = angle; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAutoDelete(obj, false); ObjShot_SetBombResist(obj, true); while (!Obj_BeDeleted(obj)){ if (a == 50){ Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, 230); Obj_SetSpeed(obj, 1); } a++; b++; yield; } } task TheshotDown(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let a = 0; let b = 0; let dir = angle; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAutoDelete(obj, false); ObjShot_SetBombResist(obj, true); while (!Obj_BeDeleted(obj)){ if (a == 50){ Obj_SetAutoDelete(obj, true); Obj_SetAngle(obj, angle+90); ObjShot_SetGraphic(obj, 237); Obj_SetSpeed(obj, 1); } a++; b++; yield; } } task TheshotLeft(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let a = 0; let b = 0; let dir = angle; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAutoDelete(obj, false); ObjShot_SetBombResist(obj, true); while (!Obj_BeDeleted(obj)){ if (a == 50){ Obj_SetAutoDelete(obj, true); Obj_SetAngle(obj, angle+180); ObjShot_SetGraphic(obj, 171); Obj_SetSpeed(obj, 1); } a++; b++; yield; } } task TheshotRight(x, y, v, angle, graphic, delay){ let obj = Obj_Create(OBJ_SHOT); let a = 0; let b = 0; let dir = angle; Obj_SetX(obj, x); Obj_SetY(obj, y); Obj_SetSpeed(obj, v); Obj_SetAngle(obj, angle); ObjShot_SetGraphic(obj, graphic); ObjShot_SetDelay(obj, delay); Obj_SetAutoDelete(obj, false); ObjShot_SetBombResist(obj, true); while (!Obj_BeDeleted(obj)){ if (a == 50){ Obj_SetAutoDelete(obj, true); Obj_SetAngle(obj, angle+270); ObjShot_SetGraphic(obj, 66); Obj_SetSpeed(obj, 1); } a++; b++; yield; } } } --- End code --- This one requires Helepolis' shot data. |
| Navigation |
| Message Index |