CREATE YOUR AI CUM SLUT ON CANDY.AI TRY FOR FREE
x

Kerni

Active Member
Game Developer
Oct 9, 2017
516
590
Hello everybody! I have a little problem in a pirate base - it should be the 2nd base - where you use the 3 fuses with the drone to open the entrance door. At the end of a corridor (laboratory?) Are several barrels or something similar. I'm stuck behind these barrels. Jump (Space and "WASD" unfortunately don't help me to get out again. I've tried it for about 2 hours). No matter which way I turn, I have no chance of getting out of there. Is there any trick to get out of here? Unfortunately I forgot to make additional saves beforehand. For approximate orientation I have attached a screenshot and the save as an attachment. Thank you for a help!

P.S .: I hope that the translation from German to English with Google Translate is reasonably correct.

Edit: Forgot the attachments.

I..i do not even ask how you got there...
Here is a modified savegame. I just edited the X and Z pos of the player character. Now he is in the on room next to the "player can stuck trap"

If this happens again then :
- just open the savegame in notepad ++ (normal notepad is possible but.. ugrss...)
- way down at the end of the file is the player position

(Green is the player pos)
...ngine.GameObject)€²[1DARRAY]°[1DARRAY]²0³-2428.489²1³106.1477²2³585.092²[1DARRAY]°[1DARRAY]²0³0²1³150.7²2³0²[1DARRAY]°[1DARRAY]²[1DARRAY]°[1DARRAY]²[1DARRAY]°

- change playerpos , save file and reload the savegame ^_^


Man man man...Ihr macht sachen o_O
Muss man euch jetzt auch noch das springen verbieten >_<
Ihr klettert ja wirklich auf allem.. hinauf...
 
  • Like
Reactions: RubberDuck2010

professorx10

Active Member
Game Developer
Jul 22, 2018
660
854
So I've got an interesting one. I've been playing 0.57 and 0.42 with no hitches until I put my PC on a keyboard/mouse switcher. This means my Keyboard and mouse are connected To USB inputs and switched to oneUSB input on my PC. All goes well until...
my save game starts and puts me in a place where I want to move around...like Yukari's station. Surprise, my mouse does not work inside the game to let me turn my head. Keyboard works in all functions. Arrow and other keys let me move back and forth..but my mouse inside the game is dead. Outside the game...and in menus, it works normally. So I plug another mouse into another USB port and bingo...that works fine in the game and outside as well.?? So I have a work around but am puzzled.
 
Sep 5, 2020
15
8
Here is a modified savegame

Thank you for the new save!

Hmm, it was very easy to get there. ;-)

Thank you also for the indication of where you can find the position information in the Save - I think there could be other similar traps. With this information you are then in a position to free yourself from a trap.

Even if I normally only speak German, I only write here in English with the help of the Google translator. Reading is barely possible - even with my poor knowledge of English. As far as I know, there is a point in the forum rules that only allows the English language.

Ah, one more thing: So far I have found a lot of inverted letters (e.g. priates / pirates, etc.) that even I notice with my poor knowledge of English. Unfortunately, this is bad for people with little / poor knowledge of English, as you then understand even less. Is there a good (and easy) way to report something like that? There is such a "mistake" in almost every dialogue or quest text. I currently estimate that I've found around 100 such "bugs". To report back all these errors with a screenshot is a bit time-consuming - it should also go beyond the scope of the forum.

For now, that's it - but there are a few more points for which I still have to make screenshots (possibly also with Save for certain positions).

Thanks again for the support.
 

Kerni

Active Member
Game Developer
Oct 9, 2017
516
590
So I've got an interesting one. I've been playing 0.57 and 0.42 with no hitches until I put my PC on a keyboard/mouse switcher. This means my Keyboard and mouse are connected To USB inputs and switched to oneUSB input on my PC. All goes well until...
my save game starts and puts me in a place where I want to move around...like Yukari's station. Surprise, my mouse does not work inside the game to let me turn my head. Keyboard works in all functions. Arrow and other keys let me move back and forth..but my mouse inside the game is dead. Outside the game...and in menus, it works normally. So I plug another mouse into another USB port and bingo...that works fine in the game and outside as well.?? So I have a work around but am puzzled.
Ahm.. you know. I do not know the inner working of unity 3d so i am as puzzled as you are o_O.


Thank you for the new save!
You're welcome.



Ah, one more thing: So far I have found a lot of inverted letters (e.g. priates / pirates, etc.) that even I notice with my poor knowledge of English. Unfortunately, this is bad for people with little / poor knowledge of English, as you then understand even less. Is there a good (and easy) way to report something like that? There is such a "mistake" in almost every dialogue or quest text. I currently estimate that I've found around 100 such "bugs". To report back all these errors with a screenshot is a bit time-consuming - it should also go beyond the scope of the forum.
AAhh.. yes , my spelling was never the best. (even in german. oh my...)
BUT , there is a thing called spellchecking. If you use the "MW_modmanager.exe" you will see that there is one entry from "neko" who tried to fix a little bit. YOu can use that if you wish so. (A little tutorial is found in the folder "Story mod tools"

Hope this may help
 
Sep 5, 2020
15
8
folder "Story mod tools"
I've taken a look at this tool now - I think that this tool is simply too extensive for pure spelling checking or correction. Most of the time you don't want to make changes to the story - that's the author's "job".

In my opinion, it would be sufficient if you could press a certain (unused) key (as an example "F" for "false") in the event of a spelling mistake in a dialog and then save it in a text file. Exactly 2 or 3 specific lines, which are written into this text file, should be sufficient for this, so that the wrong place in question is precisely defined. In total there should be 4 or 5 lines for each faulty dialog. I try to insert the - in my opinion - correct lines into a (following) code tag.

Code:
story_hashtable["_HIDDEN_UniqueID"] = "Sun Feb 17 13:53:14 GMT+0100 2019_145";
story_hashtable["MainText"] = "But i need time.. more time.. is there more you want to ask ?";
story_hashtable["MainText"] = "But i need time.. more time.. is there more you want to ask?";
story_hashtable["NameText"] = "Maya";
story_hashtable["NameText"] = "Maya";
The first line should (in my opinion) be the correct position, the second line is the misspelled text (In this example, there is only the extra space before the question mark), and the third line would be the corrected text, and the fourth and fifth lines would be for the name ( In this example, however, the name is correct ). Since in this case only the most important data is uploaded, the server could be relieved. After all, it makes a difference whether 10 files (from 10 users) are uploaded with 10 MB each or whether these 10 files are only 10 kB each.

Merging (these 10 files) would now be required. However, there is a high probability that this can even be done fully automatically. I think that I could program this with the ancient QBasic without any major problems - yes, I program a bit as a hobby in Qbasic. Of course, you could also do this merging with the raw data for the game - here it would be interesting what the raw data basically looks like. Obviously, you should then also weigh up whether you should merge the uploaded files first, or whether you should merge each uploaded file individually with the raw data.

Theoretically it should also be possible to "export" the pure text from the dialogues of the raw data into a pure text file and then import it into software that has a spell checker, and then port it back again after the check. However, it cannot be used to find out whether the right person is speaking a sentence. I saw Juna utter a sentence that Marc ought to utter.

I am also happy to discuss this topic in German in the private messages - if desired.
 

Kerni

Active Member
Game Developer
Oct 9, 2017
516
590
Oh my.. so much String characters :D

I've taken a look at this tool now - I think that this tool is simply too extensive for pure spelling checking or correction. Most of the time you don't want to make changes to the story - that's the author's "job".

But this is why it is called "story mod" so people can add more to the story (for example things that i did not include or add soem mroe events where rarely used animations are beeing used)

In my opinion, it would be sufficient if you could press a certain (unused) key (as an example "F" for "false") in the event of a spelling mistake in a dialog and then save it in a text file. Exactly 2 or 3 specific lines, which are written into this text file, should be sufficient for this, so that the wrong place in question is precisely defined. In total there should be 4 or 5 lines for each faulty dialog. I try to insert the - in my opinion - correct lines into a (following) code tag.

....
Theoretically it should also be possible to "export" the pure text from the dialogues of the raw data into a pure text file and then import it into software that has a spell checker, and then port it back again after the check. However, it cannot be used to find out whether the right person is speaking a sentence. I saw Juna utter a sentence that Marc ought to utter.
Already did this in my previous game (and previous games) but it got rarely used
. Furthermore , you will run into problems later if you do it this way since all the positions of the Maintext and nametext in the file can be altered with a mod or with me adding something to it and make it a official release.
This is why i introduced the new method of actually using the tool i also use to develop the story.
(future proving the whole thing :)



Code:
story_hashtable["_HIDDEN_UniqueID"] = "Sun Feb 17 13:53:14 GMT+0100 2019_145";
story_hashtable["MainText"] = "But i need time.. more time.. is there more you want to ask ?";
story_hashtable["MainText"] = "But i need time.. more time.. is there more you want to ask?";
story_hashtable["NameText"] = "Maya";
story_hashtable["NameText"] = "Maya";
The first line should (in my opinion) be the correct position, the second line is the misspelled text (In this example, there is only the extra space before the question mark), and the third line would be the corrected text, and the fourth and fifth lines would be for the name ( In this example, however, the name is correct ). Since in this case only the most important data is uploaded, the server could be relieved. After all, it makes a difference whether 10 files (from 10 users) are uploaded with 10 MB each or whether these 10 files are only 10 kB each.
Hashtables :)
You can not have two identical keys in one hashtable without one overwriting the other.
THis does not work as you think it does.


Many reasons why game development is not as easy as people think it s ^_^
Hope this helps :D
 
  • Like
Reactions: sc0rp10n
Sep 5, 2020
15
8
two identical keys in one hashtable
Oh, no - that's not what I meant either. Sorry I thought my explanation was sufficient.

The example in the code tag should be a pure text file (* .TXT) and not a JavaScript (* .JS) file.

I will now try a detailed explanation of how I imagine this. The read files I now have are "StoryEdit.JS" and the 2nd read file "Error.TXT". The "StoryEdit.JS" is now exactly this file that I create with "F3" from within the game. The "Error.TXT" then (in this case) contains exactly the text from the code tag from my previous comment. In addition, a new file is created - I would then call this file "StoryEdit__Corrected.JS" - but only temporarily. Obviously, the read files are copied into a working folder, where the "editing" then takes place

The (Basic) program now reads the first line from "Error.TXT".

Now the (Basic) program begins to look for the line in question in "StoryEdit.JS" and at the same time writes the lines in "StoryEdit__Corrected.JS" that do not match the line from "Error.TXT".

Obviously, the (Basic) program must read approx. 10 - 40 additional lines from "StoryEdit.JS" at the beginning and save them in a field (array), since the identifier "_HIDDEN_UniqueID" could not always be in the same line position. Strictly speaking, when you start the (Basic) program you only have to show the first appearance of the string "story_hashtable = new Hashtable ();" search - all previous lines can be written into the "StoryEdit__Corrected.JS" immediately - without having to buffer the lines in the array.

From now on, the lines are read in until the next time the string "story_hashtable = new Hashtable ();" appears and cached in the array. The first entry in the array is now the string "story_hashtable = new Hashtable ();". Then the string "story_hashtable [" _ HIDDEN_UniqueID "] =" Sun Feb 17 13:53:14 GMT + 0100 2019_145 ";" searched. If this character string is not found, the array is written to "StoryEdit__Corrected.JS" without any further changes, then the content of the array is deleted, and then the next lines are read in - and written again. If the entry with the "145" at the end is found at some point, then it goes to the 2nd part of the (Basic) program.
The next 2 or 4 lines are then read from the "Error.TXT" file.
After the string "story_hashtable [" MainText "] =" But i need time .. more time .. is there more you want to ask? ";" or "story_hashtable [" NameText "] =" Maya ";" searched. If both entries are found, then these lines (in the array) are replaced with lines 3 and 5 from "Error.TXT".
If the lines are not found (a correction could already have been made), the lines are not replaced.
Then it goes back to the 1st part of the program by writing in the "... Corrected.JS" and reading in the next lines from "StoryEdit.JS".

I hope it was a little more understandable now. Unfortunately, the functional description of a program is somewhat extensive.
 

Kerni

Active Member
Game Developer
Oct 9, 2017
516
590
Oh, no - that's not what I meant either. Sorry I thought my explanation was sufficient.
....

I hope it was a little more understandable now. Unfortunately, the functional description of a program is somewhat extensive.

Mhn.. sounds very complicated.
What i could do is implement a new function which will either extract only the story test in one file like this :

UNIQUE_ID_0~"Storytext"
UNIQUE_ID_1~"Storytext"
UNIQUE_ID_2~...

OR maybe this above but only if the player presses a button in game and only for the current displayed VN frame( i had this system with cell shock and Love : a desperate addiction)

How about this idea ?
(but not in the next beta >_< )
 
Sep 5, 2020
15
8
sounds very complicated
The program itself is not that complicated - only the description is complicated and tedious.


implement a new function
I don't think that's necessary anymore. I've already done the first test runs of my program, and I think the easiest thing to do is to rewrite this program a little so that it can be used right before putting the game together and uploading it. What could be useful (if it is at all possible) to define 1 to 2 keys in which "true" or "false" can be used to tell "my" program whether a spell check should be made for a certain text - or not (more).

The current requirement is that a file is available that has the same structure as "StoryEdit.js". Then (currently) 3 additional steps are required on the author's side. (But I want to take it so far that only one step is necessary in the end.)

1st step: "Export" into a pure text file of certain lines with my program. This is pretty automatic at the moment, as I have not yet added any additional functions.

Step 2: Load this plain text file into a text editor with a spell checker. There the spelling is checked and improved. After the correction, the file is saved again.

3rd step: "Import" from this text file with the program from step 1 - or possibly with a 2nd (Basic) program.

Then the corrected version can be reintegrated into the game.

I am currently testing the program for the first step. So far it looks pretty good - in my opinion (it currently takes about 5 minutes until the text file is ready). I'm also attaching a few screenshots so that you can imagine the whole thing a little better. But this program isn't finished yet - a few things are still missing. For the first test runs, there are also some things built in that will be removed for the finished version.


This is the screenshot of the file in which the dialogs are written - for the spell check in the 2nd step. The first lines are currently only available for detailed information - a large part of these lines will be removed in the final version. The numbers at the beginning of each line are a reference to the line number in the "StoryEdit" file. This is required for step 3.
Test 1 Dialoge.jpg




This is the screenshot of the file in which everything else is currently being written - but not currently used. I will most certainly remove that for the finished version of the program.
Test 1 Anderes.jpg


Here is a screenshot of the software with which I am writing the program. (with a bit of a browser background ;-) )
Programm.jpg


I hope that my last comments are not too off topic. If there are any questions about my program (currently ONLY available for "Milky Ways") please ask.
 

Kerni

Active Member
Game Developer
Oct 9, 2017
516
590
This is the screenshot of the file in which the dialogs are written - for the spell check in the 2nd step. The first lines are currently only available for detailed information - a large part of these lines will be removed in the final version. The numbers at the beginning of each line are a reference to the line number in the "StoryEdit" file. This is required for step 3.
View attachment 881332
Mhnn.. this all looks kind of dandy but i can only hope that some people will use it (if it gets done)
The problem is not usually that people do not have the means to spellcheck but the amount of text is mostly far too much for them to care.

Even for milky ways i told at least 5 people how to use the story edit tool (one of them even extracted the thing like you did)...
..I never heard from them again.

Please keep in mind that (in the new beta) we have over 19000 story frames with at least 5 worse a frame (that means about 90k words to spellcheck) so.. the sheer amount is what people tent to stop.

But.. lets see how this will work. Tell me what i need to implement once you are done.
 
Sep 5, 2020
15
8
that some people will use it
If I can get the program the way I want it to, then no user or player is needed for spelling correction. Because then everything is already running on the author's side - here with you - before the new version is available for download.

My plan also goes so far that I want to include another review. This "function" should check whether the right person is speaking a certain sentence. The following example does not appear in the game, but something similar occurs.
The key "NameText" reads "Marc" and the corresponding key "MainText" reads "Hello, Marc - what do you want?". In the game "Marc" would then ask himself this question. I intend that my program can also detect such "errors". With more than 180k lines in the "StoryEdit.JS" it is impossible to find such errors manually. That's why I also included the 3 keys ("NameText", "MainText" and "StoryQuestText") in the "Dialoge.Txt" file. However, the order doesn't suit me yet - I still have to sort it.

1st step: "Export" into a pure text file of certain lines with my program. This is pretty automatic at the moment, as I have not yet added any additional functions.
As it looks for me so far, I should have finished the program for the first step.

Step 2: Load this plain text file into a text editor with a spell checker. There the spelling is checked and improved. After the correction, the file is saved again
I've also tried the spell checker with 2 programs. Once with the word processing program Writer from Open Office and with the text editor Textpad. To me it currently looks like the text editor is better suited. I am afraid that a word processor like "Writer" or "Word" could change the file structure when saving - that would then possibly cause problems somewhere.
Rechtschreibprüfung Open office 01.jpg Rechtschreibprüfung Open office.jpg Rechtschreibprüfung Texteditor 01.jpg Rechtschreibprüfung Texteditor.jpg

So that you can imagine what it looks like, I have uploaded the "WIP.ZIP" file as an attachment. This file contains the "StoryEdit" as a text file (for the sake of completeness), then a "Dauer.txt" (how long the program run lasts is temporarily saved here) and several files with numbers after a name - these files are also pure text files. The "Dialoge002.txt" file is particularly interesting because it is currently the most recent file for the 2nd step. From here you could also translate the file into other languages - I would still have to test whether the formatting is retained.

that means about 90k words to spellcheck
New words - or complete? Words or texts that have already been checked do not have to be checked again - unless these words or texts are changed later.

what i need to implement
Now that's a tough question. It depends on what would be possible and useful on your side as an author - without unnecessarily cluttering the game with ballast. On my side, I have a lot of options with Basic. Just as an example: I could write each individual key in a separate file. In the program I already use the 3 known keys ("MainText", "NameText" and "StoryTextQuest").

Basically, only the new or changed content has to be checked for errors in general. If there was a possibility of an entry in the "StoryEdit" like "The spelling has been checked so far." pops up and the new content is inserted after that, that would be a possibility. Another possibility could be a kind of "log file" and the existing key "story_hashtable [" _ HIDDEN_UniqueID "]". As far as I've seen correctly, the entry after the equal sign should only appear once in the whole game or the "StoryEdit".
 

Kerni

Active Member
Game Developer
Oct 9, 2017
516
590
Basically, only the new or changed content has to be checked for errors in general. If there was a possibility of an entry in the "StoryEdit" like "The spelling has been checked so far." pops up and the new content is inserted after that, that would be a possibility. Another possibility could be a kind of "log file" and the existing key "story_hashtable [" _ HIDDEN_UniqueID "]". As far as I've seen correctly, the entry after the equal sign should only appear once in the whole game or the "StoryEdit".
Mhnn. i would need to recronize this in my exhcange function (which exchanges the spellcorreted text with the old one).
Because there are two ways of inserting a story mod
1 . only Maintext and nametext will be importet from the spellchecked version (i would need to include your state also)
2 . all is getting importet from the spellchecking file (i have to do nothing since everythign would be overwritten)

Bzut as i mentioned , not in the upcomming beta , the next beta would be a candate for such a thing.
 
Sep 5, 2020
15
8
Sorry if I only answer today, but unfortunately I've been on other sites for the last few days because of the terrorist attack in Vienna. (I am from Austria.)

The "ideas" from my previous comment can be put aside at the moment, as a significantly faster program runtime can only be expected later (when the "StoryEdit" contains approx. 1M lines). At the moment there are only 180k lines available. With this small number, I expect the program to run for just under 5 minutes plus the time needed to correct spelling in a text editor.

2 . all is getting importet from the spellchecking file
If the data format of the file with the original data matches the data format of "StoryEdit.js", then only the old file has to be exchanged for the new file. Because I then write my program so that the necessary lines are first written in a certain way into the file for the spell check. This can already be seen in the "Dialoge002.txt" in the "WIP.ZIP". This "Dialoge002.txt" is loaded into a text editor with a spell checker and the spell check is carried out. Then this file is saved.
Then my program is given the command to continue working. Now my program starts with the (corrected) file "Dialoge002.txt". If my program recognizes certain information in the line from "Dialoge002.txt" (here it would be the specified line number at the beginning) then my program works with 2 additional files. That would be the "StoryEdit.js" again as a read file. In addition, there is the "StoryEdit_NEU.js" file in which the complete content for the corrected "StoryEdit.js" is temporarily written. My program now reads from the old "StoryEdit.js" all lines that are in front of the specified line number from "Dialoge002.txt", and immediately writes these lines 1: 1 without changes to the new "StoryEdit_NEU.js". The line with the line number in which there is a match (currently the first line for a change is the line with the number 1733) is now changed so that the content within the quotation marks is replaced with the corrected text. Then the corrected line is written in the new "StoryEdit.js" - but now completely including the equal sign and the key name. This then runs until the end of both read files "StoryEdit.js" and "Dialoge002.txt".

The two files "StoryEdit.js" and "Dialoge002.txt" can then be deleted and the file "StoryEdit_NEU.js" renamed to "StoryEdit.js" again. The corrected "StoryEdit.js" can now be brought back into the game.

Sorry, the text was again longer because a description of the program sequence is unfortunately somewhat extensive.

Hmm, I think I will temporarily add a part to the program that might make it easier to understand how my program works. I will simply convert the texts into the simplest secret language in the world and then upload the "StoryEdit_secret.js" for viewing.
 

Kerni

Active Member
Game Developer
Oct 9, 2017
516
590
.... now changed so that the content within the quotation marks is replaced with the corrected text. Then the corrected line is written in the new "StoryEdit.js" - but now completely including the equal sign and the key name. This then runs until the end of both read files "StoryEdit.js" and "Dialoge002.txt".

The two files "StoryEdit.js" and "Dialoge002.txt" can then be deleted and the file "StoryEdit_NEU.js" renamed to "StoryEdit.js" again. The corrected "StoryEdit.js" can now be brought back into the game.

Sorry, the text was again longer because a description of the program sequence is unfortunately somewhat extensive.

Hmm, I think I will temporarily add a part to the program that might make it easier to understand how my program works. I will simply convert the texts into the simplest secret language in the world and then upload the "StoryEdit_secret.js" for viewing.

Oh my..this sounds very complicated o_O
 
Sep 5, 2020
15
8
.this sounds very complicated
No, the program itself is not that complicated. Only my description is very complicated. For example, if I would write the instruction manual for Word, then this instruction manual will fill approx. 1000 books with 1000 pages each in DIN A4 - without graphics or screenshots.

I have temporarily expanded the program a bit - with the conversion of the (spoken) texts ("MainText") into a simple secret language. Each letter in the secret language is only replaced with the next letter in the alphabet. I will now take the word "Test" as an example:

Letter "T" ---> letter "U"
Letter "e" ---> letter "f"
Letter "s" ---> letter "t
Letter "t" ---> letter "u"

The letter "Z" / "z" is replaced with the letter "A" / "a".

The first screenshots show how the whole thing looks in the game (from the beginning). Once the picture with the original text, and next to it the picture with the text in the secret language:

Here is the 1st scene:
Original000.jpg Secret000.jpg

Here is the 2nd scene:
Original001.jpg Secret001.jpg

Here is the 3rd scene:
Original002.jpg Secret002.jpg

And the 4th scene:
Original003.jpg Secret003.jpg

Here is a screenshot of the two JS files (the yellow markings show the lines with the changes, and the green ones show a few unchanged lines):
storyedit_original-geheim.jpg

And here is a screenshot of the game folder (with the changed secret language):
Game Folder.jpg

As an attachment there is a zip file with 4 files that can be viewed with a text viewer. The file "Geheimtext.txt" contains all lines in which the text has been changed into secret language (just for quick viewing) . The file "lesenschreibengeheim.bas" is the programming file. If you have some knowledge of English, this file should be self-explanatory. And the last two files are the files that I displayed in a screenshot a little further above.
 

WICKEDp4th

AAAAAAAAAAAAAAA!
Donor
Sep 6, 2017
3,496
5,928



This weekend i added the unique and generic events for the new machine you may find in the new part of the pirate base but only for Yukari and Maya. Malia is still missing and i need to implement her events next weekend.

Along with the new events for the pirate base i added over 350 VN frames which was more than i expected (this is Malias events are not done yet due to the massive amount of eventsi had to do and the features i wanted to built into the new machine)

So.. that means i have to do these things before i can upload a new beta.
- Add malias events for the new machen
- Add one more AI life event in case the girls want to speak with the player
- Re-Generate navmesh ( i might do this in the middle of the week since it takes hours)
- Re-generate umbra occlusion culling (also.. might do this in the week)
- Smoketest
- Upload... and post :)

(Hope i can do this in one weekend but we will see)

 

renshijian

Newbie
Aug 29, 2020
89
2
I'm starting all over again, because Yukari's skin is not normal skin anymore, and I didn't find that option. Save direct card can't save.
 
4.30 star(s) 25 Votes