Author Topic: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry  (Read 243904 times)

Uruwi

  • Nightmare of Torrential Precipitation
  • 478 million goober
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #690 on: August 08, 2015, 12:45:59 PM »
That would be near-totally pointless, yes.

Bitwise operators are useful for holding a large number of flags.

And another thing I'd like to see, but will probably break compatibility, is a formal distinction between integers and real numbers.
foo = foldl $ flip ($)
Highest difficulty 1CCed for each game, by shot type in the original order. (-: never 1CCed on any difficulty, or never used; E: easy, N: normal, H: hard, L / U: lunatic / unreal.)
EoSD [NNNE] PCB [EE--N-] IN [NEEE + Ex Border] PoFV [Mystia N, Mystia E no charge] MoF [EN--H- + Ex Marisa B] SA [N-----] UFO [----EN] TD [NENE] DDC [EE-EHE + Ex Marisa B & Sakuya A] LoLK [PD --N- Legacy ---N] EE [N- + Ex Yabusame] EMS [N-- + Ex Yabusame] RMI [NHN + Ex YaoSuku]
Avelantis (demo) Easy YuukiB 426,077,200

Drake

  • *
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #691 on: August 08, 2015, 01:53:00 PM »
Bitwise operators are useful for holding a large number of flags.
The thing is that any implementation is going to be built using structures and operations that are much more wasteful in space and time, and then those emulated bitwise operations are just going to be used to run some algorithm or make some structure that you already could just have done with the tools already available. It's like an anti-API at that point. You can't say it's space-efficient to use a bit vector to hold flags and perform fast operations on, when your ""bit vector"" isn't space-efficient at all and the operations are just emulated by a bunch of slow stuff anyways.

EDIT: Yeah, sort of figured that's what you meant.
« Last Edit: August 09, 2015, 12:41:39 AM by Drake »

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

Uruwi

  • Nightmare of Torrential Precipitation
  • 478 million goober
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #692 on: August 08, 2015, 03:41:05 PM »
The thing is that any implementation is going to be built using structures and operations that are much more wasteful in space and time, and then those emulated bitwise operations are just going to be used to run some algorithm or make some structure that you already could just have done with the tools already available. It's like an anti-API at that point. You can't say it's space-efficient to use a bit vector to hold flags and perform fast operations on, when your ""bit vector"" isn't space-efficient at all and the operations are just emulated by a bunch of slow stuff anyways.

Yeah, I meant that implementing them yourself defeats the purpose, so they should be added into the language.
foo = foldl $ flip ($)
Highest difficulty 1CCed for each game, by shot type in the original order. (-: never 1CCed on any difficulty, or never used; E: easy, N: normal, H: hard, L / U: lunatic / unreal.)
EoSD [NNNE] PCB [EE--N-] IN [NEEE + Ex Border] PoFV [Mystia N, Mystia E no charge] MoF [EN--H- + Ex Marisa B] SA [N-----] UFO [----EN] TD [NENE] DDC [EE-EHE + Ex Marisa B & Sakuya A] LoLK [PD --N- Legacy ---N] EE [N- + Ex Yabusame] EMS [N-- + Ex Yabusame] RMI [NHN + Ex YaoSuku]
Avelantis (demo) Easy YuukiB 426,077,200

Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #693 on: August 10, 2015, 06:43:41 PM »
Please help.
How to make a "HighScore"?
I can't understand  :(

Drake

  • *
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #694 on: August 11, 2015, 03:33:40 AM »
It's Common Data manipulation. Any sort of record-keeping is usually done by changing Common Data and saving it to a file. (Unless you want to write your own format)

- First, records are usually given their own Common Data Area (which is just a kind of organization for Common Data).
- Then, you set the "high score" Common Data in that Area by default to 0.
- Create a task that checks if the current score is greater than the high score. If it is, set the high score Common Data to the current score.
- At the end of the script, save the Common Data Area to a file.
- Once this is working, change it so that at the start of the script, you load the file into Common Data instead of just setting it to 0.

Code: [Select]
task THighScore(){
CreateCommonDataArea("RECORDS"); // Create the Common Data Area

// LoadCommonDataArea returns true if it was loaded properly
let loaded = LoadCommonDataAreaA2("RECORDS", GetCurrentScriptDirectory() ~ "records.dat"); 
if(!loaded){
SetAreaCommonData("RECORDS", "HIGH_SCORE", 0);  // If no high score was loaded, sets the high score to 0
}

loop{
if(GetScore() > GetAreaCommonData("RECORDS", "HIGH_SCORE", 0)){
SetAreaCommonData("RECORDS", "HIGH_SCORE", GetScore());
}
yield;
}
}

// When your script finishes
SaveCommonDataAreaA2("RECORDS", GetCurrentScriptDirectory() ~ "records.dat");
« Last Edit: August 11, 2015, 03:36:17 AM by Drake »

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

Uruwi

  • Nightmare of Torrential Precipitation
  • 478 million goober
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #695 on: August 11, 2015, 03:35:18 AM »
No need to set a common data entry ahead of time.
foo = foldl $ flip ($)
Highest difficulty 1CCed for each game, by shot type in the original order. (-: never 1CCed on any difficulty, or never used; E: easy, N: normal, H: hard, L / U: lunatic / unreal.)
EoSD [NNNE] PCB [EE--N-] IN [NEEE + Ex Border] PoFV [Mystia N, Mystia E no charge] MoF [EN--H- + Ex Marisa B] SA [N-----] UFO [----EN] TD [NENE] DDC [EE-EHE + Ex Marisa B & Sakuya A] LoLK [PD --N- Legacy ---N] EE [N- + Ex Yabusame] EMS [N-- + Ex Yabusame] RMI [NHN + Ex YaoSuku]
Avelantis (demo) Easy YuukiB 426,077,200

Drake

  • *
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #696 on: August 11, 2015, 05:25:06 AM »
Nope, but if you're putting many entries into e.g. the "RECORDS" area, it's good practice (imo) to manually set them all up to a default at the beginning rather than making sure every "default" argument in GetAreaCommonData() matches the intended default. Additionally, you can guarantee getting the list of keys with GetCommonDataValueKeyList() gives you a full list of keys, and that saving it to file doesn't miss any keys. These aren't necessarily relevant at all times, but I think it's relevant when you're setting up things like high scores and clear histories.

Again though, yes, the if(!loaded) block isn't strictly necessary.

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

Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #697 on: August 11, 2015, 06:11:20 AM »
Code: [Select]
task THighScore(){
CreateCommonDataArea("RECORDS"); // Create the Common Data Area

// LoadCommonDataArea returns true if it was loaded properly
let loaded = LoadCommonDataAreaA2("RECORDS", GetCurrentScriptDirectory() ~ "records.dat"); 
if(!loaded){
SetAreaCommonData("RECORDS", "HIGH_SCORE", 0);  // If no high score was loaded, sets the high score to 0
}

loop{
if(GetScore() > GetAreaCommonData("RECORDS", "HIGH_SCORE", 0)){
SetAreaCommonData("RECORDS", "HIGH_SCORE", GetScore());
}
yield;
}
}

// When your script finishes
SaveCommonDataAreaA2("RECORDS", GetCurrentScriptDirectory() ~ "records.dat");

All is working, except saving.
And how to make .dat file? I made one, but i think it's not that.

Code: [Select]
task THighScore(){
let pathDigit = GetCurrentScriptDirectory() ~ "img/Default_SystemDigit.png";
let count = 12;

let obj = ObjPrim_Create(OBJ_SPRITE_LIST_2D);
ObjPrim_SetTexture(obj, pathDigit);
ObjRender_SetBlendType(obj, BLEND_ADD_ARGB);
Obj_SetRenderPriority(obj, 0.9);
ObjRender_SetY(obj,100);

CreateCommonDataArea("RECORDS");

let loaded = LoadCommonDataAreaA2("RECORDS",GetCurrentScriptDirectory() ~ "./../../../../records.dat");
if(!loaded){
SetAreaCommonData("RECORDS","HIGH_SCORE",0);}
while(true){
if(GetScore() > GetAreaCommonData("RECORDS","HIGH_SCORE",0)){ //Need here exactly a zero?
SetAreaCommonData("RECORDS","HIGH_SCORE",GetScore());}

let score = GetScore();
score = min(score, 999999999999);
let listNum = DigitToArray(score, count);
ObjSpriteList2D_ClearVertexCount(obj);
ascent(iObj in 0 .. count){
let num = listNum[iObj];
ObjRender_SetX(obj, 495 + iObj * 10);
ObjSpriteList2D_SetSourceRect(obj, num * 36, 0, (num + 1) * 36, 32);
ObjSpriteList2D_SetDestRect(obj, 0, 0, 12, 24);
ObjSpriteList2D_AddVertex(obj);}
yield;}}

And a end of STG script:

Code: [Select]
...
SaveCommonDataAreaA2("RECORDS",GetCurrentScriptDirectory() ~ "./../../../../records.dat");
loop(200){yield;}
Obj_Delete(music);
CloseStgScene();
...

Helepolis

  • Charisma!
  • *
  • O-ojousama!?
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #698 on: August 11, 2015, 06:38:07 AM »
The dat file is automatically created inside 'data' folder inside your script root when you start saving. But since A2 is being used here it will be saved in target directory.

And I would encourage to use absolute pathing if you're having a directory which is ../../../../ etc. I have no idea what that directory is suppose to be but that is like what, 5th sub folder in root?

Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #699 on: August 11, 2015, 06:59:46 AM »
The dat file is automatically created inside 'data' folder inside your script root when you start saving. But since A2 is being used here it will be saved in target directory.

And I would encourage to use absolute pathing if you're having a directory which is ../../../../ etc. I have no idea what that directory is suppose to be but that is like what, 5th sub folder in root?

Yes it's all one folder(directory) :D
So, dat file will appear automatically?

Helepolis

  • Charisma!
  • *
  • O-ojousama!?
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #700 on: August 11, 2015, 07:03:02 AM »
No I mean, don't use ./../../../ etc as pathname but use for example script/yourproject/folder1/folder2/records.dat  (absolute path).

It should appear automatically when your script calls the save commondata area.

Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #701 on: August 11, 2015, 07:07:25 AM »
No I mean, don't use ./../../../ etc as pathname but use for example script/yourproject/folder1/folder2/records.dat  (absolute path).

It should appear automatically when your script calls the save commondata area.
Oh, thanks!
(Sorry for my English :T )

Failure McFailFace

  • I'm h...a...p...p...y...
  • Impor
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #702 on: August 16, 2015, 12:50:35 PM »
Does Danmakufu have a built-in "wait" function that waits for X number of frames?
1cc Easy: DDC (all) | 1cc Normal: UFO (SanA autobomb),  DDC (ReiA, SakA) , LoLK (Sanae PD)| EX clears: DDC (MarB Ultra) | Puzzle Games: StB: 10-X, DS: Hatate unlock, ISC: All clear

Sparen

  • Danmakufu Artist
  • Git ready, git set, PUUSH!
    • AFCDTech
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #703 on: August 16, 2015, 12:52:54 PM »
Does Danmakufu have a built-in "wait" function that waits for X number of frames?

No.

Sage Ω (Ultima)

  • CEO at Team Eternal Desire
  • ??? X
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #704 on: August 16, 2015, 02:28:44 PM »
Does Danmakufu have a built-in "wait" function that waits for X number of frames?

function wait(frames)
{
loop(frames){yield;}
}

Failure McFailFace

  • I'm h...a...p...p...y...
  • Impor
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #705 on: August 16, 2015, 02:58:00 PM »
function wait(frames)
{
loop(frames){yield;}
}
Huh, that's all it takes? neat

Thanks!
1cc Easy: DDC (all) | 1cc Normal: UFO (SanA autobomb),  DDC (ReiA, SakA) , LoLK (Sanae PD)| EX clears: DDC (MarB Ultra) | Puzzle Games: StB: 10-X, DS: Hatate unlock, ISC: All clear

Lollipop

  • stay woke
  • literally and figuratively dying
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #706 on: August 18, 2015, 04:35:21 PM »
How do you make one of those dual-boss fights, i.e there are two bosses on the screen and they both share 1 lifebar.
Touhou 1CCS:
Hard: LLS, EoSD(NB), PCB(NB), IN, MoF, TD, DDC(NB), LoLK
Lunatic: EoSD, PCB, DDC, LoLK
Extra: LLS, EoSD, PCB(Extra&Phantasm), IN, MoF, SA, DDC, LoLK
Current Focus: 1cc SA Hard, or an Extra

Sage Ω (Ultima)

  • CEO at Team Eternal Desire
  • ??? X
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #707 on: August 18, 2015, 04:58:26 PM »
Ok, this method works for both sharing and or having an independent lifebar.

You should create a simple enemy object using ObjEnemy_Create(OBJ_ENEMY); assign animations, and stuff and use ObjEnemy_Regist(the id of the enemy); to initialize it.

That is pretty much it, the rest is just transferring from one single to another. Now there are two ways of doing this, one way (what I prefer to do) is to pass the second boss's object id to commondata, and then get that id back in the next single and continue controlling the second boss. Method 2 is similar to method 1 but instead of object id, you pass in the position of the second boss.

Method 1
Code: [Select]
You might not have this depending on how you update dnh, as one of the updates replaces this task for an if statement in the MainLoop. The logic however, is mostly the same.

task TEnd()
{
while(main boss has health){yield;}
Obj_Delete(main boss);
//
SetcommonData("Boss 2 object",boss2);
CloseScript(GetOwnScriptID);
}

Next Single....

@Initialize()
{
boss2 = GetCommonData("Boss 2 object",ID_INVALID); // if this does not exist, then the function will substitute with a different value, in this case, I choose ID_INVALID constant or -1.
}

Method2

Code: [Select]
task TEnd()
{
while(main boss has health){yield;}
Obj_Delete(main boss);

//This time we're saving the boss's position to an array and passing that array.
SetcommonData("Boss 2 Position",[ObjMove_GetX(boss2),ObjMove_GetY(boss2)]);
Obj_Delete(boss2);
CloseScript(GetOwnScriptID);
}

Next Single....

@Initialize()
{

// same as before, if the commondata doesn't exist, use a default value.
let position = GetCommonData("Boss 2 Position",[0,0]);
ObjMove_SetPosition(boss2,position[0],position[1]);
}

Any other questions (or something isn't clear), feel free to PM me.

Lollipop

  • stay woke
  • literally and figuratively dying
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #708 on: August 18, 2015, 06:02:09 PM »
Ok, this method works for both sharing and or having an independent lifebar.

You should create a simple enemy object using ObjEnemy_Create(OBJ_ENEMY); assign animations, and stuff and use ObjEnemy_Regist(the id of the enemy); to initialize it.

That is pretty much it, the rest is just transferring from one single to another. Now there are two ways of doing this, one way (what I prefer to do) is to pass the second boss's object id to commondata, and then get that id back in the next single and continue controlling the second boss. Method 2 is similar to method 1 but instead of object id, you pass in the position of the second boss.

Method 1
Code: [Select]
You might not have this depending on how you update dnh, as one of the updates replaces this task for an if statement in the MainLoop. The logic however, is mostly the same.

task TEnd()
{
while(main boss has health){yield;}
Obj_Delete(main boss);
//
SetcommonData("Boss 2 object",boss2);
CloseScript(GetOwnScriptID);
}

Next Single....

@Initialize()
{
boss2 = GetCommonData("Boss 2 object",ID_INVALID); // if this does not exist, then the function will substitute with a different value, in this case, I choose ID_INVALID constant or -1.
}

Method2

Code: [Select]
task TEnd()
{
while(main boss has health){yield;}
Obj_Delete(main boss);

//This time we're saving the boss's position to an array and passing that array.
SetcommonData("Boss 2 Position",[ObjMove_GetX(boss2),ObjMove_GetY(boss2)]);
Obj_Delete(boss2);
CloseScript(GetOwnScriptID);
}

Next Single....

@Initialize()
{

// same as before, if the commondata doesn't exist, use a default value.
let position = GetCommonData("Boss 2 Position",[0,0]);
ObjMove_SetPosition(boss2,position[0],position[1]);
}

Any other questions (or something isn't clear), feel free to PM me.

Thanks!
Touhou 1CCS:
Hard: LLS, EoSD(NB), PCB(NB), IN, MoF, TD, DDC(NB), LoLK
Lunatic: EoSD, PCB, DDC, LoLK
Extra: LLS, EoSD, PCB(Extra&Phantasm), IN, MoF, SA, DDC, LoLK
Current Focus: 1cc SA Hard, or an Extra

GuardianTempest

  • Adorably Awkward Android
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #709 on: September 03, 2015, 03:48:04 AM »
Pardon the bump, but I'm trying to follow Sparen's tutorial and I'm stuck on recreating Eternal Meek.

Code: [Select]
//Variables, constants and inclusions
let objBoss;
let objScene = GetEnemyBossSceneObjectID();
let objPlayer =GetPlayerObjectID();

#include"script/default_system/Default_ShotConst.txt"
#include"script/default_system/Default_Effect.txt"

@Event{
alternative(GetEventType())
case(EV_REQUEST_LIFE){
SetScriptResult(500);
        }
case(EV_REQUEST_TIMER){
//SetScriptResult(60);
SetScriptResult(13);
}
case(EV_REQUEST_SPELL_SCORE){
SetScriptResult(1000000);
}
}

@Initialize{
objBoss = ObjEnemy_Create(OBJ_ENEMY_BOSS);
ObjEnemy_Regist(objBoss);
//ObjMove_SetDestAtFrame(objBoss, GetCenterX, 60, 60);

ObjEnemyBossScene_StartSpell(objScene);

TDrawLoop;
TFinalize;
MainTask;
}

@MainLoop{
        ObjEnemy_SetIntersectionCircleToShot(objBoss, ObjMove_GetX(objBoss), ObjMove_GetY(objBoss), 32);
        ObjEnemy_SetIntersectionCircleToPlayer(objBoss, ObjMove_GetX(objBoss), ObjMove_GetY(objBoss), 24);
        yield;
}

// Tasks ###############
task TDrawLoop {
let imgExRumia = GetCurrentScriptDirectory ~ "ExRumia.png";
ObjPrim_SetTexture(objBoss, imgExRumia);
ObjSprite2D_SetSourceRect(objBoss, 64, 1, 127, 64);
ObjSprite2D_SetDestCenter(objBoss);
}

task MainTask {
    ObjMove_SetDestAtFrame(objBoss, GetCenterX, 60, 60)
    wait(120);
    while(ObjEnemy_GetInfo(objBoss,INFO_LIFE)>0){
CreateShotA1(ObjMove_GetX(objBoss), ObjMove_GetY(objBoss), rand(3,6), rand(0,360), DS_BALL_S_BLUE, 20);
yield;
    }
}
}

task TFinalize {
    while(ObjEnemy_GetInfo(objBoss,INFO_LIFE)>0){yield;}
if(ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SHOOTDOWN_COUNT)
+ObjEnemyBossScene_GetInfo(objScene, INFO_PLAYER_SPELL_COUNT) == 0){
AddScore(ObjEnemyBossScene_GetInfo(objScene,INFO_SPELL_SCORE));
}
let ex = ObjMove_GetX(objBoss);
let ey = ObjMove_GetY(objBoss);
TExplosionA(ex, ey, 10, 0.6);
Obj_Delete(objBoss);
DeleteShotAll(TYPE_ALL,TYPE_ITEM);
SetAutoDeleteObject(true);
CloseScript(GetOwnScriptID());
return;
}

// Functions ###############

function GetCenterX{
     return GetStgFrameWidth/2;
}

function GetCenterY{
     return GetStgFrameHeight/2;
}

function wait(n){
     loop(n){yield;}
}

function rand_int(min, max){
return round(rand(min, max));
}

The weird thing is that, aside from removing the bullet scripts, there's little difference with my earlier sandbox script.

Drake

  • *
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #710 on: September 03, 2015, 03:58:58 AM »
In MainTask(), you are missing a semicolon and you have an extra closing bracket.

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

GuardianTempest

  • Adorably Awkward Android
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #711 on: September 03, 2015, 04:22:50 AM »
Thanks for the quick response, I had a weird feeling I just had programming errors.

GuardianTempest

  • Adorably Awkward Android
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #712 on: September 04, 2015, 01:37:01 PM »
Pardon the double posting, but is there a way to make my delay laser follow the player?

Uruwi

  • Nightmare of Torrential Precipitation
  • 478 million goober
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #713 on: September 04, 2015, 01:45:11 PM »
Pardon the double posting, but is there a way to make my delay laser follow the player?
You can edit your post.

Just use the movement functions plus ObjStLaser_SetAngle.
foo = foldl $ flip ($)
Highest difficulty 1CCed for each game, by shot type in the original order. (-: never 1CCed on any difficulty, or never used; E: easy, N: normal, H: hard, L / U: lunatic / unreal.)
EoSD [NNNE] PCB [EE--N-] IN [NEEE + Ex Border] PoFV [Mystia N, Mystia E no charge] MoF [EN--H- + Ex Marisa B] SA [N-----] UFO [----EN] TD [NENE] DDC [EE-EHE + Ex Marisa B & Sakuya A] LoLK [PD --N- Legacy ---N] EE [N- + Ex Yabusame] EMS [N-- + Ex Yabusame] RMI [NHN + Ex YaoSuku]
Avelantis (demo) Easy YuukiB 426,077,200

Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #714 on: September 05, 2015, 04:26:48 AM »
Help! I've tried to run Danmakufu using AppLocale and somehow it still crashes! Any idea why?

Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #715 on: September 05, 2015, 06:55:33 PM »
Umm...sir...if you didn't notice, in this subforum, there's a sticky topic called "Q&A for Danmakufu 0.12m"  and "Q&A for Danmakufu ph3" or something like that.

Sorry if I was a bit harsh, but you just bumped an old thread [a bump of almost 3 years, even!] just for asking a completely irrevelant question. :T



No harshness imo but only the truth there, I merged the posts -Hele
« Last Edit: September 07, 2015, 05:47:43 AM by Helepolis »

Gusano Wornis

  • Member of Team Mystique
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #716 on: September 07, 2015, 10:46:32 PM »
This question can be a bit difficult to be answered because of the complexity of it.

I am working on nanbei Project, it does have a multi-language system (between english and spanish).
the system Works fine, but to make it selectable I need to create a options menu in the package script. the question is. how to do a basic options screen?.

I do know i need CommonDataArea and things, but I need help to make the selectable (yes/no) options and the volume (%) options too. any help?
carrying dead weight since 2015~

Uruwi

  • Nightmare of Torrential Precipitation
  • 478 million goober
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #717 on: September 07, 2015, 11:07:09 PM »
This question can be a bit difficult to be answered because of the complexity of it.

I am working on nanbei Project, it does have a multi-language system (between english and spanish).
the system Works fine, but to make it selectable I need to create a options menu in the package script. the question is. how to do a basic options screen?.

I do know i need CommonDataArea and things, but I need help to make the selectable (yes/no) options and the volume (%) options too. any help?

Key reading and text objects.


You know, at least have some courtesy and be of good cheer to explain more elaborately instead of a one-liner with vague directions. -Helepolis
« Last Edit: September 08, 2015, 05:44:31 AM by Helepolis »
foo = foldl $ flip ($)
Highest difficulty 1CCed for each game, by shot type in the original order. (-: never 1CCed on any difficulty, or never used; E: easy, N: normal, H: hard, L / U: lunatic / unreal.)
EoSD [NNNE] PCB [EE--N-] IN [NEEE + Ex Border] PoFV [Mystia N, Mystia E no charge] MoF [EN--H- + Ex Marisa B] SA [N-----] UFO [----EN] TD [NENE] DDC [EE-EHE + Ex Marisa B & Sakuya A] LoLK [PD --N- Legacy ---N] EE [N- + Ex Yabusame] EMS [N-- + Ex Yabusame] RMI [NHN + Ex YaoSuku]
Avelantis (demo) Easy YuukiB 426,077,200

Sparen

  • Danmakufu Artist
  • Git ready, git set, PUUSH!
    • AFCDTech
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #718 on: September 08, 2015, 12:59:32 AM »
This question can be a bit difficult to be answered because of the complexity of it.

I am working on nanbei Project, it does have a multi-language system (between english and spanish).
the system Works fine, but to make it selectable I need to create a options menu in the package script. the question is. how to do a basic options screen?.

I do know i need CommonDataArea and things, but I need help to make the selectable (yes/no) options and the volume (%) options too. any help?
Key reading and text objects.

You will store the results of the Yes/No as well as the Volume, as Fluffy stated, using keys set using SetAreaCommonData.
For example:
Code: [Select]
    }else if(selectIndex == INDEX_MUSIC) {
selectIndex2++;
if(selectIndex2 > 20) { selectIndex2 = 20; }//Music doesn't wrap to 0
SetAreaCommonData("Config","BGMVolume", 5*selectIndex2);//Index goes up to 20
NotifyEventAll(EV_USER_PACKAGE+82, 0);//Alter music bgm volume
PlaySFX(select);

For text, use text object similarly to how they work in the default package. Just make sure that you have a way of telling the player which option they are currently on.

Uruwi

  • Nightmare of Torrential Precipitation
  • 478 million goober
Re: ※ Dnh Q&A/Problem thread II ※ for Danmakufu ph3 .1 preX(ry
« Reply #719 on: September 14, 2015, 08:16:34 PM »
I'm having an extremely strange issue with declared players in a script called by the package that declared these players. However I order the player files in the #Player declaration or which ones I include, ./../player/player0.dnh is the only one that is recognized.
foo = foldl $ flip ($)
Highest difficulty 1CCed for each game, by shot type in the original order. (-: never 1CCed on any difficulty, or never used; E: easy, N: normal, H: hard, L / U: lunatic / unreal.)
EoSD [NNNE] PCB [EE--N-] IN [NEEE + Ex Border] PoFV [Mystia N, Mystia E no charge] MoF [EN--H- + Ex Marisa B] SA [N-----] UFO [----EN] TD [NENE] DDC [EE-EHE + Ex Marisa B & Sakuya A] LoLK [PD --N- Legacy ---N] EE [N- + Ex Yabusame] EMS [N-- + Ex Yabusame] RMI [NHN + Ex YaoSuku]
Avelantis (demo) Easy YuukiB 426,077,200