Author Topic: =WARNING= Script testing site =WARNING=  (Read 4701 times)

Infy♫

  • Demonic★Moe
  • *
=WARNING= Script testing site =WARNING=
« on: July 20, 2009, 08:59:44 PM »
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: [Select]
#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());
    }
}

Nimono

  • wat
Re: =WARNING= Script testing site =WARNING=
« Reply #1 on: July 20, 2009, 09:12:48 PM »
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♫

  • Demonic★Moe
  • *
Re: =WARNING= Script testing site =WARNING=
« Reply #2 on: July 21, 2009, 09:45:30 AM »
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♫

  • Demonic★Moe
  • *
Re: =WARNING= Script testing site =WARNING=
« Reply #3 on: August 07, 2009, 02:35:24 PM »
Hi, I have something new to test!
it requires the shot replace script.
Code: [Select]
#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;
}
}
}

KomeijiKoishi

Re: =WARNING= Script testing site =WARNING=
« Reply #4 on: August 08, 2009, 06:20:54 PM »
Code: [Select]
#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;
      }
   }

   
}

This one requires Helepolis' shot data.