Author Topic: ※ Danmakufu Q&A/Problem thread 3 ※  (Read 483298 times)

Andi

  • World's Gayest Danmaku
  • PlaySE("./se/Nyaa.wav");
    • 2hu blog
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1260 on: May 13, 2018, 09:32:04 PM »
If it's crashing immediately after selecting it, it is, from my experience, a parsing error in the script - some kind of thing you are doing that Danmakufu cannot comprehend and crashed trying to do so.
It was an encoding issue! Apparently it somehow got encoded in UTF-16 (UCS-2 LE BOM). I got my clue when I was investigating why github was saying it was a binary file.
...Except converting it to UTF-8 didn't fix it. It did cause the window to abruptly close instead of not responding, so it was probably a problem, at least.

Alright, guess it's time to systematically uncomment things until it breaks.
...The following crashes the game:   
Code: [Select]
let append = "";
let qux = [0];
...Append is a reserved keyword, isn't it? ...Yep, it is. That was it. God dammit.

Do you/anyone have a user-defined language for Notepad++ with Danmakufu's syntax and keywords? I've been using C syntax highlighting, but it differs in enough cases to sometimes cause problems like this, and I haven't been able to find a way to work off a built-in language to define one myself.
Literally everything in this script will crash and burn.
1CC tracker

Kinedyme

  • Dream Magic - Duplex Spark!
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1261 on: May 13, 2018, 09:40:47 PM »
Do the functions ObjMove_SetDestAtFrame/AtSpeed/AtWeight work on OBJ_ENEMY type objects?

Drake

  • *
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1262 on: May 13, 2018, 10:23:41 PM »
It was an encoding issue! Apparently it somehow got encoded in UTF-16 (UCS-2 LE BOM). I got my clue when I was investigating why github was saying it was a binary file.
...Except converting it to UTF-8 didn't fix it. It did cause the window to abruptly close instead of not responding, so it was probably a problem, at least.
Danmakufu actually supports UTF-16 LE w/ BOM, but does not read UTF-8. NPP interpreting UTF-16 as UCS-2 is not entirely correct but they're exactly the same up to a certain point.

Do the functions ObjMove_SetDestAtFrame/AtSpeed/AtWeight work on OBJ_ENEMY type objects?
Enemy objects are a kind of Move object, so yes.
« Last Edit: May 14, 2018, 01:53:43 AM by Drake »

A Colorful Calculating Creative and Cuddly Crafty Callipygous Clever Commander
- original art by Aiけん | ウサホリ -

Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1263 on: May 14, 2018, 03:55:12 AM »
I've had this lag issue with a player I'm making. The longer the player shoots, the slower the game gets (fps drops down to 40fps). It's not noticeable at first but after a while a frame drops, and then 5, and then it's down to 40fps. After extensive testing, I realized it happened the more I would press Z to shoot the basic player shots. I've tried different methods of running the basic shots but they all end up causing lag overtime. I've provided the script in a pastebin to see how I run the basic shots. https://pastebin.com/nAgy8Jg0
« Last Edit: May 14, 2018, 03:57:35 AM by Twizzy »

Drake

  • *
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1264 on: May 14, 2018, 06:18:29 AM »
This is very commonly due to not properly deleting objects. Looking at what you've provided, I am very confident that the problem is due to your SE_Play function, which probably creates a new Sound object every call and doesn't delete them. Even if you fix this, could you post your player_resource script to check for other possible issues?


As an aside, I noticed you're doing
Code: [Select]
if(GetVirtualKeyState(ShiftKey) == KEY_PUSH || GetVirtualKeyState(ShiftKey) == KEY_HOLD && alive )The && operator has a higher precedence than ||, so a || b && c works as a || (b && c). You need (a || b) && c for the correct behaviour.

A Colorful Calculating Creative and Cuddly Crafty Callipygous Clever Commander
- original art by Aiけん | ウサホリ -

Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1265 on: May 14, 2018, 03:27:57 PM »
https://pastebin.com/p9icAKci This is the player resource file. I decided to remove all the SE_Play in the player script and then test it. It has removed the overtime lag. There's still lag whenever there's too many bullets on the screen because these players are a bit resource heavy. :ohdear:

Drake

  • *
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1266 on: May 14, 2018, 11:55:13 PM »
What you've shown shouldn't be that resource heavy. Is this all? I don't see GrazePartNum defined anywhere.

The SE_Play function is not good exactly because of what I said, you create an object every time you play a sound effect and don't delete them. If you don't want to change too much, you can just tack this on the end:
Code: [Select]
while(ObjSound_IsPlaying(seobject)){ yield; }
Obj_Delete(seobject);
This isn't the best way to go about things (because it still creates new objects and loads the file every time) but it fixes your immediate problem.

You also shouldn't be calling SE_Play for the same sound 16, 32, etc times in one frame. You do this when you check for player focus; you should move it outside that TexEffect spawning loop.

One other strange thing is that you write
Code: [Select]
if(frame > ShotPerFrame){
  frame = ShotPerFrame;
}
I can't really tell why this part is here because your shooting condition is already frame >= ShotPerFrame and at the end you set frame back to 0. It shouldn't be a problem it just doesn't make much sense.

A Colorful Calculating Creative and Cuddly Crafty Callipygous Clever Commander
- original art by Aiけん | ウサホリ -

Andi

  • World's Gayest Danmaku
  • PlaySE("./se/Nyaa.wav");
    • 2hu blog
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1267 on: May 16, 2018, 02:27:47 AM »
Two questions:
  • I'm finding that I have to restart my package entirely before any changes to whatever script I'm working on actually take effect. How might I go about making sure the script gets reloaded when I run it from my menu, the same way it does when you run a script from the default package?
  • My typeof function is acting up. It's usually returning TYPE_REAL for arrays/everything, occasionally TYPE_CHAR for reals, occasionally TYPE_STRING for reals/ints, and very rarely the correct type if it's not TYPE_REAL. I have not been able to determine any differentiating factor that determines whether or not it gives the correct result - it appears to be random. Here's a log showing what I mean.
    • I had assumed that the values of types were constant. Are they actually dynamically assigned or something?
    • Am I doomed to replace let TYPE_ARRAY = 10; with function TYPE_ARRAY{return Obj_GetType([0]);} or something gross like that?
    • Does Obj_GetType even work on primitives or does it just evaluate it as a number and return the type of the object with that ID? ...Oh no, that's what it does, doesn't it?
      Then I guess my new question is:
  • How can I safely distinguish between each primitive type? Like, to the point of knowing if it's safe to compare them?
    • Look at its ToString? "true" or "false" would be a boolean, anything with brackets would be an array, anything with alphanumeric characters would be a string. Or, easier, check if it contains only "1234567890.-".
    • But how could I tell the difference between a string containing only numbers and an actual number?
      • Adding 0 casts chars to real, right? If that gives you its ASCII value I could check if v+0 != ator(v). ...But that won't do any good if I can't tell if it's safe to slice it to get a char in the first place.
      • How to distinguish between 'a' and "a"?
      • Oh, ToString on a real always gives you six decimal places, right? That could be a clue. Still, I'd like a way to distinguish between 123 and "123.000000".
    • Is it possible to distinguish between NULL, "", and []? Is there even any functional difference between them?
Function so far
Test cases (6 unique failure cases found)
« Last Edit: May 16, 2018, 08:34:32 AM by Andi »
Literally everything in this script will crash and burn.
1CC tracker

Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1268 on: May 16, 2018, 11:50:48 AM »
Hi there,

Just a quick question. What does the error: "player not found" mean?

Originally when loading a player script in my Package script, the player script in the default player folder with the same name loads. And when I changed it, the error message comes out.

I tried loading other player scripts from the default folder and they work. But other player scripts from anywhere else I get the message.

Testing out the player script in single and stage menus of Danmakufu work fine. And the player script is located in a folder that is in the same folder as the Package script.

Helepolis

  • Charisma!
  • *
  • O-ojousama!?
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1269 on: May 16, 2018, 12:58:58 PM »
Hi there,

Just a quick question. What does the error: "player not found" mean?

Originally when loading a player script in my Package script, the player script in the default player folder with the same name loads. And when I changed it, the error message comes out.

I tried loading other player scripts from the default folder and they work. But other player scripts from anywhere else I get the message.

Testing out the player script in single and stage menus of Danmakufu work fine. And the player script is located in a folder that is in the same folder as the Package script.
For package scripts you need to explicitly load the player into the package before being able to call it. A snippet from my own game:

Code: [Select]
task initializeStage {
let pathBorder = "script/player/dcs_player/player_border.txt";

SetStagePlayerScript(pathBorder);

SetStageMainScript("script/thdcs/DanceContestStage.txt");

StartStageScene;
}

Basically my package runs this task, puts the player script in a variable called pathBorder. The key function here obviously is SetStagePlayerScript();  after that proceed as normal. Notice how my player script is located somewhere else, just like your scenario.

I never dived into the reason why the default script works so I cannot shed any light on this part.
« Last Edit: May 16, 2018, 01:01:08 PM by Helepolis »

Helepolis

  • Charisma!
  • *
  • O-ojousama!?
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1270 on: May 16, 2018, 01:09:18 PM »
Two questions:
  • I'm finding that I have to restart my package entirely before any changes to whatever script I'm working on actually take effect. How might I go about making sure the script gets reloaded when I run it from my menu, the same way it does when you run a script from the default package?
Short answer: You can't. Restart you must.

Long answer: Once you're testing your game from the package you need to completely restart your entire package for any changes to take effect. It seems package scripts are handled differently compared to testing stuff from single and plural etc where hitting Backspace is sufficient enough to reload the script

Unless you're scripting the core (menu / system etc) or actually the complete game, you have no reason to load your game from package menu in danmakufu. Script your spell cards and boss fights using the single/plural menu. Script the stages with stage menu. And that is it. [/list]

Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1271 on: May 17, 2018, 12:30:33 AM »
For package scripts you need to explicitly load the player into the package before being able to call it. A snippet from my own game:

Code: [Select]
task initializeStage {
let pathBorder = "script/player/dcs_player/player_border.txt";

SetStagePlayerScript(pathBorder);

SetStageMainScript("script/thdcs/DanceContestStage.txt");

StartStageScene;
}

Basically my package runs this task, puts the player script in a variable called pathBorder. The key function here obviously is SetStagePlayerScript();  after that proceed as normal. Notice how my player script is located somewhere else, just like your scenario.

I never dived into the reason why the default script works so I cannot shed any light on this part.

Thank you for the help. ^^D

I've tried loading the player script, but nothing happened. Then I also discover that apparently you also need to write #Player[playerpath] on the header.

Thank you again for the reply. It was very helpful.

Drake

  • *
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1272 on: May 17, 2018, 04:59:53 AM »
Here is an implementation of a typeof function:

https://gist.github.com/drakeirving/b0d0a8400c1cfff80385f95e5d6d9d3e

Some notes:
- Arrays are typed
- Strings are character arrays, i.e. "abc" == ['a','b','c']
- If you type [] inside a script it defaults to a char array
- Empty arrays can be turned into another type of array
- ? Infinity should be treated as valid numbers. NaNs also technically work without errors but have behaviour inconsistent with numbers.
« Last Edit: May 17, 2018, 05:02:17 AM by Drake »

A Colorful Calculating Creative and Cuddly Crafty Callipygous Clever Commander
- original art by Aiけん | ウサホリ -

Helepolis

  • Charisma!
  • *
  • O-ojousama!?
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1273 on: May 17, 2018, 07:18:14 AM »
Thank you for the help. ^^D

I've tried loading the player script, but nothing happened. Then I also discover that apparently you also need to write #Player[playerpath] on the header.

Thank you again for the reply. It was very helpful.
Huh, that is odd. I am checking my own player script and it just reports the following headers: (garbled title/text is because of JP characters not visible on my mac)
Code: [Select]
#TouhouDanmakufu[Player]
#ScriptVersion[3]
#ID["DCS_BORDERTEAM"]
#Title["???E?`?[??"]
#Text["???E?`?[??"]
#ReplayName["BorderTeam"]

Well, I am happy it works for you now. Though curious why that header was exactly needed.

Andi

  • World's Gayest Danmaku
  • PlaySE("./se/Nyaa.wav");
    • 2hu blog
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1274 on: May 18, 2018, 04:52:13 PM »
https://gist.github.com/drakeirving/b0d0a8400c1cfff80385f95e5d6d9d3e
Oooh. That's some good stuff and gives me a lot of insight.
  • I would not have thought of finding truthiness like that. Do max and abs work on all types, or are they just being short-circuited by the len==0?
    • I assume that the length of a char or bool would be 0, so it must work on those - I assume it treats chars as numbers, true as 1, and false as 0?
    • It seems like an array (or string) is never truthy by this definition? That seems contrary to the usual definition, where everything except certain values are truthy.
  • I didn't realize Danmakufu allowed implicitly evaluating numbers as part of logical expressions. Is that what the !! around it is for?
    • "It's not not true..."
  • I had assumed you couldn't use length on things other than arrays, very happy to see I was wrong.
  • Is the purpose of x[0..0] instead of x[0] to keep it as an array? ...And then ToString on x[0..0] gives you "" if it's a string? How does that work?
  • Are there any known inputs that will result in returning TYPE_UNKNOWN, or is that just a failsafe?
- Arrays are typed
So I've noticed - the big thing I need this for (apart from general use) is figuring out the type of arrays so I can safely append a hash to them before notifying events, which will use the hash to pass back a value through common data.

How deeply are arrays typed? Does a multidimensional array always need to have the same depth in all member arrays? I've been operating under the assumption that they do, but I've been wrong before.

- Strings are character arrays, i.e. "abc" == ['a','b','c']
I knew this was the case in other languages, but didn't want to assume the two were equivalent in Danmakufu. Good to have confirmation that they are.
  • Shower thought: Strings should have been called "charrays".
- If you type [] inside a script it defaults to a char array
- Empty arrays can be turned into another type of array
Does this mean [] and "" are functionally equivalent? If so, does it actually affect anything that they default to char arrays?
I notice you have a case for determining it to be an empty array (rather than an empty string), but typeof([]) still returns TYPE_ARRAY_CHAR?

While I'm at it, is NULL literally just a constant for 0 or is there anything special about it?
- ? Infinity should be treated as valid numbers. NaNs also technically work without errors but have behaviour inconsistent with numbers.
Doesn't ?INF00 also have behavior inconsistent with numbers? I believe anything you do to it can only result in ?INF00, IND00, or QNAN0. Still, I wouldn't want to accidentally skip appending something to an array just because it was divided by zero and end up with weird confusing behavior, so I see the value of treating it as a number.
IND00 is a bit harder to end up with (0/0, sqrt(-n), or INF00*0 are the only ways I've found) and has even weirder behaviors (comparison is all sorts of fucked with it IIRC) so I also see why you wouldn't want to treat that or QNAN0 as numbers. Easy way to get undefined behavior, amirite?

E: Random question, is there a way to do regex in DNF, or would I have to use a function to do it manually? Mainly asking because I'm sure this is another thing that would be fascinating to see your implementation of, if you have one lying around.

EE: Is there a way to cast to char? Other than making an array containing the char for each value and taking that index from it?
« Last Edit: May 18, 2018, 07:38:12 PM by Andi »
Literally everything in this script will crash and burn.
1CC tracker

Drake

  • *
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1275 on: May 18, 2018, 08:28:46 PM »
> Do max and abs work on all types, or are they just being short-circuited by the len==0?

They do. The basic approach was to find how much you could do on all types without stringifying first. Absolute is just for negative numbers.

> I assume that the length of a char or bool would be 0, so it must work on those - I assume it treats chars as numbers, true as 1, and false as 0?

Yes.

> It seems like an array (or string) is never truthy by this definition? That seems contrary to the usual definition, where everything except certain values are truthy.

Arrays end up as 0, so the max is 0, which evaluates to false.

> I didn't realize Danmakufu allowed implicitly evaluating numbers as part of logical expressions. Is that what the !! around it is for?

!! is to force to boolean, but yes you can interpret numbers as logical expressions, hence truthiness. The !! isn't strictly important because of this but I used it for testing (otherwise it outputs a mix of types). max(x,0) && len(x)==0 would also output a boolean but I preferred the short-circuit.

> Is the purpose of x[0..0] instead of x[0] to keep it as an array? ...And then ToString on x[0..0] gives you "" if it's a string? How does that work?

The magic is that ToString formats char arrays as strings and all other arrays with brackets. Slicing 0..0 gives you an empty array but the type remains, so either you get empty string or the string "[]".

> Are there any known inputs that will result in returning TYPE_UNKNOWN, or is that just a failsafe?

The latter.

> How deeply are arrays typed? Does a multidimensional array always need to have the same depth in all member arrays? I've been operating under the assumption that they do, but I've been wrong before.

I don't think I know of a counterexample.

> Does this mean [] and "" are functionally equivalent? If so, does it actually affect anything that they default to char arrays?

[] and "" can both be concatenated with any other values because there are no elements in there to be type-incompatible. Arrays are immutable, so it just makes a new array and copies all the elements over and if there are different typed values it's no good. I assume the new array has the same type as the first array with any elements.
The one consequence I know of is if you're trying to compare arrays; arrays with different types can't be compared even if one is empty. Please do not compare arrays with a literal [].

> I notice you have a case for determining it to be an empty array (rather than an empty string), but typeof([]) still returns TYPE_ARRAY_CHAR?

As said earlier and shown just above, if you type [] in a script, that is a char array (demonstrable by calling ToString on it or by comparing). You can "create" an empty non-char array with something like erase([1], 0) but this doesn't have much practical application.

> While I'm at it, is NULL literally just a constant for 0 or is there anything special about it?

Constant. Basically useless as far as I can tell, but if you try to overwrite DNH constants the program crashes.

> Doesn't ?INF00 also have behavior inconsistent with numbers? I believe anything you do to it can only result in ?INF00, IND00, or QNAN0. Still, I wouldn't want to accidentally skip appending something to an array just because it was divided by zero and end up with weird confusing behavior, so I see the value of treating it as a number.

It makes sense that applying finite arithmetic to it will result in infinities, and they can still be compared sensibly with any other number. Doing stuff like infinity - infinity will give a NaN though.

> E: Random question, is there a way to do regex in DNF, or would I have to use a function to do it manually? Mainly asking because I'm sure this is another thing that would be fascinating to see your implementation of, if you have one lying around.

real regex is hard, look it up

A Colorful Calculating Creative and Cuddly Crafty Callipygous Clever Commander
- original art by Aiけん | ウサホリ -

Andi

  • World's Gayest Danmaku
  • PlaySE("./se/Nyaa.wav");
    • 2hu blog
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1276 on: May 18, 2018, 10:01:51 PM »
The one consequence I know of is if you're trying to compare arrays; arrays with different types can't be compared even if one is empty. Please do not compare arrays with a literal [].
Oh! Ooh! Several errors I've gotten in the past suddenly make sense.
You can "create" an empty non-char array with something like erase([1], 0)
The magic is that ToString formats char arrays as strings and all other arrays with brackets. Slicing 0..0 gives you an empty array but the type remains, so either you get empty string or the string "[]".
Oh, wow. I wasn't even thinking about that. That's one of those things that makes perfect sense but isn't intuitive if you don't already know it.



E: How might I go about getting rid of those ugly gray bars when the game is fullscreened? Or rather, replace the gray bars with black bars? Assuming such a thing is possible without modifying the exe.
(Even then, I know some people have modified the exe for small stuff before, so I still wouldn't discount it - I just don't know where to find the relevant parts of the code after decompiling.)
« Last Edit: May 19, 2018, 11:32:12 PM by Andi »
Literally everything in this script will crash and burn.
1CC tracker

Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1277 on: May 20, 2018, 11:50:23 PM »
Is there a danmakufu version that uses ScriptVersion[1]?

Sparen

  • Danmakufu Artist
  • Git ready, git set, PUUSH!
    • AFCDTech
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1278 on: May 21, 2018, 12:53:02 AM »
Is there a danmakufu version that uses ScriptVersion[1]?

Oooh, ancient history. You're talking about stuff from over a decade ago. :)

Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1279 on: May 21, 2018, 05:19:15 PM »
Oooh, ancient history. You're talking about stuff from over a decade ago. :)
What? A DECADE ago?
And I thought that 0.12m was old


Drake

  • *
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1281 on: May 21, 2018, 10:37:36 PM »
Same difference. "I thought [version 2] was old".

2003/11/24: 0.00a (first public)
2004/01/26: 0.10a (first script v2)
2006/10/09: 0.12m (last script v2)
2010/05/05: ph3 α1 (first script v3)
2015/01/18: ph3 .1 pre6a (current)

A Colorful Calculating Creative and Cuddly Crafty Callipygous Clever Commander
- original art by Aiけん | ウサホリ -

Sparen

  • Danmakufu Artist
  • Git ready, git set, PUUSH!
    • AFCDTech
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1282 on: May 22, 2018, 01:56:33 AM »
Same difference. "I thought [version 2] was old".

2003/11/24: 0.00a (first public)
2004/01/26: 0.10a (first script v2)
2006/10/09: 0.12m (last script v2)
2010/05/05: ph3 α1 (first script v3)
2015/01/18: ph3 .1 pre6a (current)

Holy crap DNH came out when I was 7.

Andi

  • World's Gayest Danmaku
  • PlaySE("./se/Nyaa.wav");
    • 2hu blog
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1283 on: May 22, 2018, 03:16:16 AM »
2003/11/24: 0.00a (first public)
2004/01/26: 0.10a (first script v2)
2006/10/09: 0.12m (last script v2)
2010/05/05: ph3 α1 (first script v3)
2015/01/18: ph3 .1 pre6a (current)
Wow, it's been around for almost 15 years. Has it been the same people working on it the whole time? ...And are those people/anyone still working on it?

(Still wondering about changing the gray bars to black when fullscreened, btw.)
Literally everything in this script will crash and burn.
1CC tracker

Fujiwara no Mokou

  • Hourai Incarnate
  • Oh, so this trial of guts is for ME?
    • Profile
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1284 on: May 22, 2018, 03:57:30 AM »
Wow, it's been around for almost 15 years. Has it been the same people working on it the whole time? ...And are those people/anyone still working on it?

(Still wondering about changing the gray bars to black when fullscreened, btw.)

Actually, it's been just one person who's been maintaining it. Well, he had some help from the user-base, but he alone has the entire source code.
He'll give you some of it if you ask nicely, though.

Kinedyme

  • Dream Magic - Duplex Spark!
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1285 on: May 22, 2018, 01:23:01 PM »
I often hear talk of a "God-Mode Ex-Rumia" around forums that is used for playtesting somehow.

What is it exactly? It's not just the default Rumia player is it?

Andi

  • World's Gayest Danmaku
  • PlaySE("./se/Nyaa.wav");
    • 2hu blog
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1286 on: May 22, 2018, 08:18:33 PM »
He'll give you some of it if you ask nicely, though.
Eh, wait, really? I had thought it was totally closed-source. How much is "some of it"?



  • Does SetShotIntersectionCircle/Line actually do anything? I've never been able to get it to kill the player.

  • Is there some library for using all these "dot_" spritesheets, in the same vein as Gizmo's TBSL?

  • +Still wondering about the gray bars.
« Last Edit: May 23, 2018, 06:40:42 PM by Andi »
Literally everything in this script will crash and burn.
1CC tracker

JDude :3

  • tururu
  • boy with code
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1287 on: May 23, 2018, 11:26:29 PM »
Hmm, I was trying to figure it out myself and looking some others scripts for "reference"...  :blush:
Short Long Story : I can't figure dialogue.
Long Story : I know that it has do to do with pictures and frames, but I don't know where to start or any tutorial/easier example of...
"dnh is hard" - said no one
"dnh is bullshit" - everyone making a creative pattern

Tom

  • *
  • Programmer
    • LunarCast Network
Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1288 on: May 24, 2018, 07:54:20 AM »
SetShotIntersectionCircle/Line might need to be set every frame?

For the gray bars I think it has to do with the fact that danmakufu ph3 does not use "real fullscreen" mode (where the screen changes resolution) and rather makes a window that is full screen and highest priority so it hides the taskbar.

Re: ※ Danmakufu Q&A/Problem thread 3 ※
« Reply #1289 on: May 24, 2018, 04:37:08 PM »
Can I use a 3d model like a sprite?(I mean like a boss sprite, with it having animations and etc)