Author Topic: ※ Dnh Q&A/Problem ※ for Danmakufu ph3 (locked)  (Read 316052 times)

Imosa

  • Any sufficiently advanced technology
  • is indistinguishable from magic
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #750 on: August 26, 2013, 01:22:35 PM »

Stands for 3D primitives.
But why even have these? Its not like these are the only shapes one wants to make so is it just for convenience sake?

Helepolis

  • Charisma!
  • *
  • O-ojousama!?
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #751 on: August 26, 2013, 03:05:31 PM »
Actually, 0.12m effect objects always revolved around the usage of Primitive Strip using 4 vertexes. Just because ph3 has sprite objects now doesn't mean they are useless. They are examples to explain how each primitive type works. You know, useful for reference.


fondue

  • excuse me
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #752 on: August 27, 2013, 03:07:27 PM »
what is the trigonometry for creating the positions (x and y coordinates) of pentagrams and possibly stars?
« Last Edit: August 27, 2013, 03:09:30 PM by フォンデュマスター »

Drake

  • *
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #753 on: August 27, 2013, 11:02:56 PM »


have fun


It's much easier to draw lines from points. From an arbitrary point you can draw a line of some length, then you turn 144 degrees and draw another line, then you turn -72 and draw another, repeating until done. Or, you can take five points on a circle at 72 degree intervals, then another five points on another circle, and connect them with lines. And so on.

For pentagrams it's just starting from a point and drawing five lines turning 144 degrees.

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

Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #754 on: August 28, 2013, 06:45:09 AM »
Okay so I have this cool snip of code
Code: [Select]
task TArrowShot(num, x, y, a, s)
{
let numcount = num;
let count = 1;
loop(num)
{
let turns = 0;
loop(count)
{
TSimpleShot(x - (20*turns), y + (20*numcount, a, s);
TSimpleShot(x + (20*turns), y + (20*numcount), a, s);
turns ++;
}
count = count * 1.5;
numcount--;
}
}

Which creates a group of bullets alignes in a stacking triangle shape like this:
||||||||
  ||||||
    ||||
       ||
It looks great, however I need to to rotate with the bullet angle so that the point of my bullet triangle is facing the angle direction. I need them to rotate as a group and I know it has something to do with cos and sin but I cannot figure out how to do it.

Maths ~Angelic Version~

  • Aspiring Mathematician of Brilliant Laziness
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #755 on: August 28, 2013, 08:08:09 PM »
Animejunkey: To do that, you'll need to know about rotation matrices or something similar. I ended up using this:
Code: [Select]
task TArrowShot(num, x, y, a, s)
{
let numcount = num;
let count = 1;
loop(num)
{
let turns = 0;
loop(count)
{
TSimpleShot(x + cos(a-90)*(-20*turns)-sin(a-90)*(20*numcount), y + sin(a-90)*(-20*turns)+ cos(a-90)*(20*numcount), a, s);
TSimpleShot(x + cos(a-90)*(20*turns)-sin(a-90)*(20*numcount), y + sin(a-90)*(20*turns)+ cos(a-90)*(20*numcount), a, s);
turns ++;
}
count = count * 1.5;
numcount--;
}
}}
Currently, "a" is the angle the bullet triangle will face. I know this code is anything but pretty, but I don't know any more efficient way (you can define variables to avoid all those instances of "a-90", "20*turns", and "20*numcount", but that's about it, as there will be sines and cosines no matter what you do).

Imosa

  • Any sufficiently advanced technology
  • is indistinguishable from magic
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #756 on: August 28, 2013, 08:12:59 PM »
You don't NEED rotation matricies to do it but they would certainly help. 
I mention this because while rotation matricies certainly solve the problem, they also require knowledge of matricies which don't really make sense until you encounter more advanced problems to apply them to.
« Last Edit: August 28, 2013, 08:16:10 PM by Imosa »

Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #757 on: August 28, 2013, 08:22:28 PM »
Animejunkey: To do that, you'll need to know about rotation matrices or something similar. I ended up using this:
Code: [Select]
task TArrowShot(num, x, y, a, s)
{
let numcount = num;
let count = 1;
loop(num)
{
let turns = 0;
loop(count)
{
TSimpleShot(x + cos(a-90)*(-20*turns)-sin(a-90)*(20*numcount), y + sin(a-90)*(-20*turns)+ cos(a-90)*(20*numcount), a, s);
TSimpleShot(x + cos(a-90)*(20*turns)-sin(a-90)*(20*numcount), y + sin(a-90)*(20*turns)+ cos(a-90)*(20*numcount), a, s);
turns ++;
}
count = count * 1.5;
numcount--;
}
}}
Currently, "a" is the angle the bullet triangle will face. I know this code is anything but pretty, but I don't know any more efficient way (you can define variables to avoid all those instances of "a-90", "20*turns", and "20*numcount", but that's about it, as there will be sines and cosines no matter what you do).

This works perfectly! thank you!

Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #758 on: August 28, 2013, 10:26:01 PM »
Got another one for you guys, this one isn't a math problem though, I just cannot figure out whats wrong.

Code: [Select]
loop(20)
{
let x = rand(50, GetStgFrameWidth()-50);
let y = rand(50, GetStgFrameHeight()-50);
let count = 0;
while(count <= 300)
{
if(truncate(GetPlayerX()) == x+count || truncate(GetPlayerY()) == y+count || truncate(GetPlayerX()) == x-count || truncate(GetPlayerY()) == y-count)
{
x = rand(50, GetStgFrameWidth()-50);
y = rand(50, GetStgFrameHeight()-50);
count = 0;
}
count++;
}
CreateStraightLaserA1(x, y, 0, 75, 10, 120, DS_BALL_M_PURPLE, 30);
CreateStraightLaserA1(x+75, y+75, 180, 75, 10, 120, DS_BALL_M_PURPLE, 30);
CreateStraightLaserA1(x, y+75, 270, 75, 10, 120, DS_BALL_M_PURPLE, 30);
CreateStraightLaserA1(x+75, y, 90, 75, 10, 120, DS_BALL_M_PURPLE, 30);
TRingShot(x+37.5, y+37.5, 2, 12);
loop(5){yield}
}

This creates 20 squares made of 4 lasers each. Then a burst of bullets shoots from inside. The problem is I can;t have these boxes spawn too close to the player, so i added that while function. The function should keep the boxes at a 300 unit distance from the player, by getting a new random top left if the box would spawn over the player, but its not working and I have no idea why.

Drake

  • *
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #759 on: August 28, 2013, 11:06:14 PM »
Next time, when you say something is wrong, please also describe what is going wrong, not just what you want and "it isn't working". It helps.

let x = rand(50, GetStgFrameWidth()-50);
let y = rand(50, GetStgFrameHeight()-50);
while( (GetPlayerX() <= x+375 && GetPlayerX() >= x-300) || (GetPlayerY() <= y+375 && GetPlayerY() >= y-300) ){
   x = rand(50, GetStgFrameWidth()-50);
   y = rand(50, GetStgFrameHeight()-50);
}


Better? Or did I misunderstand the intent?

That being said, the problem is that 300 pixels is quite a distance. The horizontal width of the play area is 384 pixels, and your bounds end up giving you 16 pixels of space. Vertically you have 48 pixels left. So it's possible to spawn, but not if you want the whole 75x75 box 300 pixels away.

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

Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #760 on: August 30, 2013, 11:29:59 PM »
Hello there.

Sorry if it already has been asked but does anyone actually knows how to do user defined item scripts ?
I'd like to be able to change the default graphics without having to edit the image.
And using the danmakufu functions lie CreateItemU1 seems to be a rather good option.
I could create these objects on my own but it would be such a pain...

Thank you in advance ^^

Helepolis

  • Charisma!
  • *
  • O-ojousama!?
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #761 on: August 31, 2013, 05:07:57 PM »
Odd question. I cannot seem to summon multi-dimensional arrays. I ported my code 1:1 from 0.12m to ph3 (assuming arrays were the same) but I get the error "Out of range".

in 0.12m, arrays were just made. You usually defined let array;  and then  array = [ ] or [ [],[] ] and you were done. Ph3 doesn't seem to like this. For an array, you're forced to define the variable to be an array ( let array = []; ) However, how does one define a multi dimensional array?  Cannot find the documentation on the wiki either. (Or I am missing something).

Edit:
Fixed by forum and IRC effect. orz Thanks though all helped. But it was my own dumb mistake.

[19:57:29] <Helepolis> ok
[19:57:36] <Helepolis> I seem to have done some extremely dumb.
[19:57:44] <Helepolis> My apologies.
[19:57:59] <Helepolis> Happens that I had a seperate task, which I didnt properly activate, which parsed values to the array
[19:58:17] <Helepolis> Which is why the array kept saying "I am out of range" because it had no defined element.
[19:58:22] <Helepolis> All is ok now. =.=

« Last Edit: August 31, 2013, 05:59:18 PM by Helepolis »

Helepolis

  • Charisma!
  • *
  • O-ojousama!?
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #762 on: September 05, 2013, 09:03:24 PM »
Requesting assistance to confirm a bug in ph3 version pre15.

Please do the following.
[Step 1]
- http://www.mediafire.com/?8am51bbqib1vh2d   Get the test script here.
- Unzip it somewhere in a test folder inside script or put it somewhere in Rumia folders.
- Launch my script .
- Look at the cube/lantern, it should look normal.

[Step 2]
- Don't close ph3, edit the code and uncomment "SetCameraPerspectiveClip(0,1024);"
- Rerun the script
- The lantern should look weird now.  Like this http://i44.tinypic.com/33bio1z.png

[Step 3]
- Don't close ph3, edit the code and comment out the Perspecticeclip code by adding // again.
- Rerun the script.
- It should still be messed up.
- Reboot ph3.
- Rerun script.
- It should be normal again.

Please confirm the steps by saying Step 1 - confirmed or  unconfirmed. I already made a post on BBS of ph3 website to address it, but confirmations would be required from our side as well.

Kingault

  • Insert witty description here.
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #763 on: September 05, 2013, 09:23:39 PM »
Requesting assistance to confirm a bug in ph3 version pre15.

Please do the following.
[Step 1]
- http://www.mediafire.com/?8am51bbqib1vh2d   Get the test script here.
- Unzip it somewhere in a test folder inside script or put it somewhere in Rumia folders.
- Launch my script .
- Look at the cube/lantern, it should look normal.

[Step 2]
- Don't close ph3, edit the code and uncomment "SetCameraPerspectiveClip(0,1024);"
- Rerun the script
- The lantern should look weird now.  Like this http://i44.tinypic.com/33bio1z.png

[Step 3]
- Don't close ph3, edit the code and comment out the Perspecticeclip code by adding // again.
- Rerun the script.
- It should still be messed up.
- Reboot ph3.
- Rerun script.
- It should be normal again.

Please confirm the steps by saying Step 1 - confirmed or  unconfirmed. I already made a post on BBS of ph3 website to address it, but confirmations would be required from our side as well.

Confirmed. It looked fine in step 1, but when I uncommented it, this happened.
Glad I could be of assistance.

Formless God

Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #764 on: September 09, 2013, 10:49:26 PM »
Code: [Select]
@Initialize
{
  enemy = ObjEnemy_Create(OBJ_ENEMY_BOSS);
  ObjEnemy_Regist(enemy);
  Work;
}

//...

task Work
{
   let child = ObjPrim_Create(OBJ_SPRITE_2D);
   ObjPrim_SetTexture(child, texture);
   //set rects, blah blah

   while(!Obj_IsDeleted(enemy)) { ObjRender_SetPosition(child, ObjMove_GetX(enemy), ObjMove_GetY(enemy), 0); yield; }
}

child is always lagging one frame behind the enemy object. Is there a way to prevent this other than doing something like
Code: [Select]
let x = ObjMove_GetX(enemy) + cos(ObjMove_GetAngle(enemy)) * ObjMove_GetSpeed(enemy);
let y = ObjMove_GetY(enemy) + sin(ObjMove_GetAngle(enemy)) * ObjMove_GetSpeed(enemy);
ObjRender_SetPosition(child, x, y, 0);
because it looks kinda clunky

Drake

  • *
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #765 on: September 09, 2013, 11:51:07 PM »
What you have should be fine as long as the enemy is moving before the child is. I suspect that the child's movement is being set before the main enemy's, whether it means you just called it sooner or something sillier is happening.
« Last Edit: September 09, 2013, 11:52:42 PM by Drake »

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

Formless God

Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #766 on: September 10, 2013, 12:16:29 AM »
I'm randomly calling SetDestAt#### in some task to move the enemy. I tried swapping Work with said task and putting Work right after SetDestAt####, same result. I have no control over the two objects' update order :(

Drake

  • *
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #767 on: September 10, 2013, 04:03:03 AM »
Welp, SetDest functions use the SetSpeed/Angle functions which move the object separately after @MainLoop (but before drawing), as I forgot. Clearly this should be the case, since the full movement for that frame is a vector that depends on the values of both; otherwise the speed and angle would potentially be off-sync, as if you did angle++; x+cos(angle)*speed; speed++; rather than intending for the movement to update both. The best way to resolve this would be to be able to manually short-execute the movement lined up for that frame rather than waiting after @MainLoop, but I don't think this is currently possible.

I might ask for this to be added, barring some solution I'm not aware of that isn't "do it yourself". If this is that big of a deal you could just write a task that takes the same arguments and moves the object manually.
« Last Edit: September 10, 2013, 04:07:08 AM by Drake »

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

Formless God

Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #768 on: September 11, 2013, 07:51:49 AM »
Thanks for the explanation! And no, no need to ask for it to be added; I actually can't think of a lot of scenarios where I truly need to tamper with that.

Helepolis

  • Charisma!
  • *
  • O-ojousama!?
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #769 on: September 15, 2013, 01:46:36 PM »
Attention ph3 scripters using meshes and perspectiveclip function. Mkm has confirmed it to be a bug and will work on it in the next version. Temporarily work around is to set the first parameter to minimum of 1. This will make your meshes appear correctly.

--Helepolis

Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #770 on: September 16, 2013, 11:06:57 AM »
Harro  :3
I'm making a Danmakufu project with my friends (prepare to see it here someday!). In order to learn the language I use the wiki here and the huge script "Mystical Power Plant".
Now, this is what they (MPP) do every time they want to play a sound effect:
Code: [Select]
task PlaySEs(se){
let sid = ObjSound_Create;
let SE = GetAreaCommonData("Option","SE_Volume",100);

ObjSound_Load(sid,se);
ObjSound_SetVolumeRate(sid,SE);
ObjSound_SetLoopEnable(sid,false);
ObjSound_Play(sid);
SEwait(180,sid);
}

They use this function ^

My question: wouldn't it be much more efficient to load all the sound effects one time at @init and delete them one time at @finalize?
From what I understand, they load the graze.wav file into memory every time the player grazes!

What am I missing?

(Also, same question goes for textures - should I load them once or every time I use them? MPP Loads them every time)


« Last Edit: September 16, 2013, 04:17:25 PM by MoonRabbit »

gtbot

  • Master of ScreenSplit
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #771 on: September 16, 2013, 05:13:09 PM »
My question: wouldn't it be much more efficient to load all the sound effects one time at @init and delete them one time at @finalize?

(Also, same question goes for textures - should I load them once or every time I use them? MPP Loads them every time)
It would probably be more efficient to just create one set of sound effect objects at the beginning of the game, then store them in common data for any other script to pull and use. I would assume the same for images as well, but loaded and unloaded at the beginning of stages so you don't get lag spikes (due to loading) when a boss first appears, and to get rid of the no longer needed images.

Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #772 on: September 16, 2013, 05:30:30 PM »
What I find to be really annoying and strange is that they store all character images at the start of the game (taking ~500mb of RAM for that) and never unload them. But the game lags a lot when the levels start and after beating a mid-boss (it would be better to load the whole level at the start of the level). They didn't really bother to optimize the game.
Would be glad to get help with Touhou Doumeiju ~ Mystical Power Plant Translation Project spellcard comments' translation.

Helepolis

  • Charisma!
  • *
  • O-ojousama!?
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #773 on: September 16, 2013, 06:11:19 PM »
I have been discussing this on IRC as well while analysing the script. The author of MPP seems to have multiple PlaySEx going around in this work. If you noticed, some of them have different wait functions delaying the deletion.

God knows why the author decided to do it like this, as it doesn't give any benefits over the regular PlaySE in terms of memory/usage, except for the control of the sound. Which is questionable, as some sound functions don't do anything like the Division function to set it to SE or BGM. By the looks of this function, it appears as if each sound object is unique and separately controlled. It is not.

Somehow ph3 ignores the unique obj id for sounds, therefore if you delete the sound object, all sounds will stop playing (being deleted).

I wouldn't know why commondata would be useful here.
« Last Edit: September 16, 2013, 06:12:57 PM by Helepolis »

Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #774 on: September 17, 2013, 11:08:23 AM »
Well, I've done some research. Here are my findings:
1. LoadTexture function actually loads the texture into the ram (you can see it in the task manager). If you try to load twice, it will ignore the second one. If you load a texture in one script, it will apply to all scripts.
2. I tried the same thing with LoadSound with a huge file, but the RAM didn't go up! So I used procmon and found this out -
What LoadSound does is to open a handle to the file. When you use PlaySE, it starts reading the file.

So - loading texture in the beginning is essential, but loading sound in the beginning only saves you the CreateFile phase (getting a handle to the file).
Also, if you use LoadSound then you can only play it on the same script, so trying to load everything together is a pain.

So...... maybe the function I showed in my last post does make sense?! I am so confused.
« Last Edit: November 02, 2013, 04:57:14 PM by MoonRabbit »

Ozzy

  • Veteran Danmakufu Scripter
  • Currently working on a full Touhou fangame!
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #775 on: September 17, 2013, 10:57:12 PM »
Somehow ph3 ignores the unique obj id for sounds, therefore if you delete the sound object, all sounds will stop playing (being deleted).
I don't think that it ignores the obj id for sounds. I think what it does instead is deletes the sound (or the file handle of the sound) from memory when any object with that sound loaded is deleted. As to why it does this, I have no idea. It makes playing the same sounds together difficult.

Helepolis

  • Charisma!
  • *
  • O-ojousama!?
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #776 on: September 18, 2013, 05:48:41 AM »
Ah! Indeed now I remember again, you're correct Ozzy. My bad for wording it wrong. Indeed, it was regarding the same sound file though the deal stays the same. Same sound file or not, it should create a unique ID for each one and not delete them all together. Textures are pretty much handled the same way in terms of object handling.

Edit
It seems we have discussed this before on page 24 of this thread. http://www.shrinemaiden.org/forum/index.php/topic,10181.msg1004887.html#msg1004887

Talk about my bad memory orz.

Monkeypro257

Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #777 on: September 19, 2013, 04:02:32 AM »
I need help with basically everything. (well not really) I got all the correct functions in Initialize and Event, but when I test it out in Danmakufu the folder doesn't seem to have anything even though it's suppose to. I can't seem to get what's wrong in the folder's script. I'm using NotePad++.

Code: [Select]
#Touhou Danmakufu[Single]
#ScriptVersion[3]
#Title[""]
#Text[""]

let boss Obj;
let bossX = 0;
let bossY = 0;
let imgBoss = C:\Users\my computer's name :V\Desktop\Touhou Games\th_dnh_ph3\th_dnh_ph3\script\Tutorial ~ "HTDRB.png";

@Initialize (
// define a boss in bossObj and register it
bossObj = ObjEnemy_Create(OBJ_ENEMY_BOSS);
ObjEnemy_Regist(bossObj);

// texture the boss, set centre as true centre.
objPrin_SetTexture(bossObj,imgBoss);
ObjSprite2D_SetSourceRect(bossObj,0,0,240,311);
ObjSprite2D_SetDestCenter(bossObj);

// move boss to desired x y locations at desired speed
ObjMove_SetDestAtSpeed(bossObj,192,120,5);

)

@Event (
// setting the boss timer and life
alternative(GetEventType())
case(EV_REQUEST_LIFE) (
SetScriptResult{1500};
)
case(EV_REQUEST_TIMER) (
SetScriptResult(60);
)
)

@MainLoop (

)

@Finalize (

)



And, yes, Helepolis, I was looking at your how-to video. ::)

Drake

  • *
Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #778 on: September 19, 2013, 04:42:59 AM »
#Touhou Danmakufu[Single]
#ScriptVersion[3]
#Title[""]
#Text[""]

let boss Obj;
let bossX = 0;
let bossY = 0;
let imgBoss = C:\Users\my computer's name :V\Desktop\Touhou Games\th_dnh_ph3\th_dnh_ph3\script\Tutorial ~ "HTDRB.png";

@Initialize (
   // define a boss in bossObj and register it
   bossObj = ObjEnemy_Create(OBJ_ENEMY_BOSS);
   ObjEnemy_Regist(bossObj);
   
   // texture the boss, set centre as true centre.
   objPrin_SetTexture(bossObj,imgBoss);
   ObjSprite2D_SetSourceRect(bossObj,0,0,240,311);
   ObjSprite2D_SetDestCenter(bossObj);
   
   // move boss to desired x y locations at desired speed
   ObjMove_SetDestAtSpeed(bossObj,192,120,5);
   
)

@Event (
   // setting the boss timer and life
   alternative(GetEventType())
   case(EV_REQUEST_LIFE) (
      SetScriptResult{1500};
   )
   case(EV_REQUEST_TIMER) (
      SetScriptResult(60);
   )
)

@MainLoop (
)
@Finalize   (
)


you are amazing
« Last Edit: September 19, 2013, 04:45:02 AM by Drake »

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

Formless God

Re: ※ Dnh Q&A/Problem ※ ONLY for NEWEST engine (ph3 beta)
« Reply #779 on: September 19, 2013, 04:45:09 AM »
Did you type that from memory or your code actually looked like that? There are typos gdi drak

Code: [Select]
C:\Users\my computer's name :V\Desktop\Touhou Games\th_dnh_ph3\th_dnh_ph3\script\Tutorial ~ "HTDRB.png";needs to be
Code: [Select]
"C:/Users/my computer's name :V/Desktop/Touhou Games/th_dnh_ph3/th_dnh_ph3/script/Tutorial/HTDRB.png";The slash is /, not \. I'm not sure about that colon in the path. I'd take it out if I were you. Or just use relative pathing.
Code: [Select]
let csd = GetCurrentScriptDirectory();
let imgBoss = csd ~ "img.png"; //if picture is in the same folder as script
//or
let imgBoss = csd ~ "subfolder/img.png"; //if picture is in a subfolder

Yield the MainLoop.
« Last Edit: September 19, 2013, 04:47:10 AM by Formless Mass »