~Hakurei Shrine~ > Rika and Nitori's Garage Experiments
SA Phantasm Investigation Thread
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)