~Hakurei Shrine~ > Rika and Nitori's Garage Experiments

SA Phantasm Investigation Thread

Pages: (1/11) > >>

Drake:

THREAD

http://www.mediafire.com/download.php?qgy2inmnmbc

INVESTIGATE

I AM EXCITED AND HAVE BEEN RUMMAGING FOR THE PAST FEW HOURS


Note: Dialogue is all images. The boxes, the portraits, fonts, everything. This is a VERY GOOD IDEA.

Note: SOUND EFFECTS NEED TO BE QUIETER

Note: Max Point Value Multiplier is right there to use. A few changes will prove easy to use.

Note: Apparently using ZUN sound effects is fine.

Note: SetDefaultStatusVisible(false); removes the data from the sidebar.

Note: Drawing stuff on the side of the screen:

--- Code: ---task PlayerOther{
   
   LoadGraphic(sys); //the system image

   yield;

   loop{
      nGraze = truncate(GetGraze); //gets graze and score etc
      nScore = truncate(GetScore);

      let i_nScore = ToString(nScore); //converts to strings
      let i_nGraze = ToString(nGraze);
      let i_nPower = ToString(nPower);

      ascent(let i in (length(i_nScore)-7)..(length(i_nScore))){ //a makeshift CharAt function
         i_nScore = erase(i_nScore,(length(i_nScore)-1));
      }
      ascent(let i in (length(i_nGraze)-7)..(length(i_nGraze))){
         i_nGraze = erase(i_nGraze,(length(i_nGraze)-1));
      }

      while(length(i_nScore) < 10){ //cantonates zeros when the score doesn't have 10 digits
         i_nScore = "0" ~ i_nScore;
      }

      let oScore = []; //OBJECT ARRAYS WOO
      let oGraze = []; //GHOST BLOWJOB
      let oPower = [];

      ascent(let p in 0..length(i_nScore)){ //drawing, should be obvious
         oScore = oScore ~ [p];
         oScore[p] = Obj_Create(OBJ_EFFECT);
         ObjEffect_SetPrimitiveType(oScore[p], PRIMITIVE_TRIANGLESTRIP);
         ObjEffect_CreateVertex(oScore[p], 4);
         ObjEffect_SetTexture(oScore[p],sys);
         ObjEffect_SetLayer(oScore[p],8); //this spontaneously works for some reason

         ObjEffect_SetVertexXY(oScore[p], 0, -8, -8);
         ObjEffect_SetVertexXY(oScore[p], 1, -8,  8);
         ObjEffect_SetVertexXY(oScore[p], 2,  8, -8);
         ObjEffect_SetVertexXY(oScore[p], 3,  8,  8);
     
         let cs = nString1(i_nScore[p]);
         
         ObjEffect_SetVertexUV(oScore[p], 0,  cs, 22);
         ObjEffect_SetVertexUV(oScore[p], 1,  cs, 37);
         ObjEffect_SetVertexUV(oScore[p], 2,  cs + 15,22);
         ObjEffect_SetVertexUV(oScore[p], 3,  cs + 15,37);

         Obj_SetPosition(oScore[p],525 + p * 12,82); //position of score = 525 + spaces
      }
      ascent(let p in 0..length(i_nGraze)){ //drawing again
         oGraze = oGraze ~ [p];
         oGraze[p] = Obj_Create(OBJ_EFFECT);
         ObjEffect_SetPrimitiveType(oGraze[p], PRIMITIVE_TRIANGLESTRIP);
         ObjEffect_CreateVertex(oGraze[p], 4);
         ObjEffect_SetTexture(oGraze[p],sys);
         ObjEffect_SetLayer(oGraze[p],8); //SPONTANEOUSLY

         ObjEffect_SetVertexXY(oGraze[p], 0, -8, -8);
         ObjEffect_SetVertexXY(oGraze[p], 1, -8,  8);
         ObjEffect_SetVertexXY(oGraze[p], 2,  8, -8);
         ObjEffect_SetVertexXY(oGraze[p], 3,  8,  8);
     
         let cs = nString1(i_nGraze[p]);
         
         ObjEffect_SetVertexUV(oGraze[p], 0,  cs, 22);
         ObjEffect_SetVertexUV(oGraze[p], 1,  cs, 37);
         ObjEffect_SetVertexUV(oGraze[p], 2,  cs + 15,22);
         ObjEffect_SetVertexUV(oGraze[p], 3,  cs + 15,37);

         Obj_SetPosition(oGraze[p],525 + p * 12,162); //position of graze
      }

      yield; //lol

      ascent(let p in 0..length(i_nScore)){ //deletes used data to make room for more
         Obj_Delete(oScore[p]);
      }
      ascent(let p in 0..length(i_nGraze)){ //even still drawing new numbers every frame is memory sucking
         Obj_Delete(oGraze[p]);
      }
   }
}
--- End code ---

Note: The graphics for system text (well, numbers) is actually a bit squashed/too large for Danmakufu.

Note: The portraits needs anti-aliasing lol

Note: The effect spawning the spell circle is nearly perfect. It stars out with an extra ring and develops.  The extra circle was a terrible resolution though.

Note: Their hitbox drawing code is inefficient, we'll probably be using the one I wrote.

Note: The graphic rectangles for the heart bullets are off.

Note: Marisa's hitbox is too small.

Note: They didn't replace the star points with the yellow orbs.

Note: The spawning items do not do the neat spinning effect.

Note: I think I like their alpha setting+whatever for the cutin script better than Hele's :(

Note: Bubble bullets do not spin.

Note: Yes I do agree the difficulty is loleasy with the hitbox.

--- Code: --- let OptionInv = GetCommonDataDefault("OI", 18);
if(GetEnemyShotCountEx(GetPlayerX, GetPlayerY, [18, OptionInv][18 < OptionInv], ALL) > 1){ //◆当たり判定消滅判定 現在18
//無敵補助
SetIntersectionCircle(-3000, -3000, 3.5);//hahahahahahahaha
}else{
SetIntersectionCircle(GetPlayerX, GetPlayerY, 0);//当たり判定登録
}

--- End code ---
hahahahaha oh wow

Note: Maple leaf effect is slightly worse than Mokou's script, which we should use. Also, for some reason instead of using the effect when she's dying, it all happens after her graphic is deleted. After she disappears it just goes poofpoofpoofpoofpoofPOOF.

Note: Jesus christ no wonder it's so slow. Look at all the damn variable initializations. letletletletletletlet at the beginning of every task. You guys don't need to save the variables after finishing the function holy cow.

Note: I find it pretty ironic that I previously said "you shouldn't forbid the player from focusing" but the last survival card not only does that, but forbids you from moving left and right.

Note: The image-based dialog stuff is a very very good idea. Although in this script I noticed the portraits don't move (as in when they're talking) to the foreground in a flowing motion, it just pops up there.


For now, this is pretty much all I can determine from the visuals alone. I'll take a break and maybe do some more code gathering/cleanup later.

FinnKaenbyou:

dling now, but I don't have SA on this PC. Is that going to screw me over? >_>

Drake:

IT'S A DANMAKUFU SCRIPT
THE MAIN REASON I'M EXCITED IS NOT BECAUSE OF DATA

IT'S BECAUSE WE CAN WRENCH THROUGH THE CODE TO HELP WITH IJIYATSU

LIKE SO HARD

FinnKaenbyou:

Oh, is this that one that showed up in the Touhou Festival on Nico?


--- Quote ---THE MAIN REASON I'M EXCITED IS NOT BECAUSE OF DATA

IT'S BECAUSE WE CAN WRENCH THROUGH THE CODE TO HELP WITH IJIYATSU

LIKE SO HARD
--- End quote ---

Oh my jesus YES.

Suikama:

So much for "no posting ZUN stuff" :V (I'm refering to whoever uploaded this script)

Pages: (1/11) > >>

Go to full version