Announcement
Collapse
No announcement yet.
MAKI Cheats
Collapse
This is a sticky topic.
X
X
-
-
Originally Posted by scottiescotsman View PostI give up I cant complete my skinas I don't have the knowledge or xpertise so I will leave it there
.
Comment
-
-
Its just the stupid little things like bass/treble like volume .. did everything as asked and doesn't work no errors or anything.. I been on this every days for weeks and I only got 3 things left to do and I have done all asked but nothing works ... maybe I over working it I don't know.
thanks victhor
Steven
Comment
-
-
The original url was:
http://canada.landoleet.org/docs/pub...guiobjects.php
I can't find them on the Wayback Machine, but I do have a local backup of them.
They are still very good for learning modern skinning though and, as it happens, a Wa5 version is still online:
http://wiki.winamp.com/wiki/XML_GUI_Objects
The above docs are great for learning how the XML and XUI components work.
And there are some pretty advanced stuff that can be done simply by learning how XUI objects work, how to create them, etc.
Comment
-
-
I actually recommend you work with the Winamp5 version that I linked in my previous post.
It contains mostly the same stuff anyways.
My local copy of the old docs are from the Winamp3 days, and contain some stuff that would not work in Winamp5.
Comment
-
-
can u still ask for a maki script help ?
I need a maki script [half] written/fixed and compiled as it wont compile on windows 10
as soon as I get this done my first skin will be complete
I am making a double tape jvc skin and all working apart from the rotation, the way that I
have did it is ...
if I would have did it as one big animation the .png would have been huge [and would have needed 5 of them], so I split it into an individual reel for each animation and then just multiplied it by 4 to make the double cassette. but when I run the script it only works on the first reel and not on the other 3. I have seen a for statement used in a maki script but I have no idea how to write it.
I included the .m file I am using at present and some .xml code
hope someone still knows this stuff lol
Steven
code:
<groupdef id="tape.normal.group.cassette" x="0" y="0" w="1284" h="320">
<!-- Cassettes Back -->
<layer id="cassette1.base.back" image="cassette.back" x="154" y="34" sysregion="1"/>
<layer id="cassette2.base.back" image="cassette.back" x="818" y="34" sysregion="1"/>
<!-- Stop Cassettes -->
<animatedlayer id="layerStaticCassettes" x="173" y="52" w="134" h="134" image="cassette.tape.stop" autoplay="1" autoreplay="1" speed="60" ghost="1" />
<animatedlayer id="layerStaticCassettes" x="313" y="52" w="134" h="134" image="cassette.tape.stop" autoplay="1" autoreplay="1" speed="53" ghost="1" />
<animatedlayer id="layerStaticCassettes" x="837" y="52" w="134" h="134" image="cassette.tape.stop" autoplay="1" autoreplay="1" speed="57" ghost="1" />
<animatedlayer id="layerStaticCassettes" x="977" y="52" w="134" h="134" image="cassette.tape.stop" autoplay="1" autoreplay="1" speed="51" ghost="1" />
<!-- Play Cassettes -->
<animatedlayer id="layerRunningCassettes" x="173" y="52" w="134" h="134" image="cassette.tape.play" autoplay="1" autoreplay="1" speed="60" ghost="1" />
<animatedlayer id="layerRunningCassettes" x="313" y="52" w="134" h="134" image="cassette.tape.play" autoplay="1" autoreplay="1" speed="53" ghost="1" />
<animatedlayer id="layerRunningCassettes" x="837" y="52" w="134" h="134" image="cassette.tape.play" autoplay="1" autoreplay="1" speed="57" ghost="1" />
<animatedlayer id="layerRunningCassettes" x="977" y="52" w="134" h="134" image="cassette.tape.play" autoplay="1" autoreplay="1" speed="51" ghost="1" />
<!-- Forward Cassettes -->
<animatedlayer id="layerFastRunningCassettes" x="173" y="52" w="134" h="134" image="cassette.tape.forward" autoplay="1" autoreplay="1" speed="60" ghost="1" />
<animatedlayer id="layerFastRunningCassettes" x="313" y="52" w="134" h="134" image="cassette.tape.forward" autoplay="1" autoreplay="1" speed="53" ghost="1" />
<animatedlayer id="layerFastRunningCassettes" x="837" y="52" w="134" h="134" image="cassette.tape.forward" autoplay="1" autoreplay="1" speed="57" ghost="1" />
<animatedlayer id="layerFastRunningCassettes" x="977" y="52" w="134" h="134" image="cassette.tape.forward" autoplay="1" autoreplay="1" speed="51" ghost="1" />
<!-- Rewind Cassettes -->
<animatedlayer id="layerRewindRunningCassettes" x="173" y="52" w="134" h="134" image="cassette.tape.rewind" autoplay="1" autoreplay="1" speed="60" ghost="1" />
<animatedlayer id="layerRewindRunningCassettes" x="313" y="52" w="134" h="134" image="cassette.tape.rewind" autoplay="1" autoreplay="1" speed="53" ghost="1" />
<animatedlayer id="layerRewindRunningCassettes" x="837" y="52" w="134" h="134" image="cassette.tape.rewind" autoplay="1" autoreplay="1" speed="57" ghost="1" />
<animatedlayer id="layerRewindRunningCassettes" x="977" y="52" w="134" h="134" image="cassette.tape.rewind" autoplay="1" autoreplay="1" speed="51" ghost="1" />
<!-- Pause Cassettes -->
<animatedlayer id="layerPausingCassettes" x="173" y="52" w="134" h="134" image="cassette.tape.pause" autoplay="1" autoreplay="1" speed="120" ghost="1" />
<animatedlayer id="layerPausingCassettes" x="313" y="52" w="134" h="134" image="cassette.tape.pause" autoplay="1" autoreplay="1" speed="120" ghost="1" />
<animatedlayer id="layerPausingCassettes" x="837" y="52" w="134" h="134" image="cassette.tape.pause" autoplay="1" autoreplay="1" speed="120" ghost="1" />
<animatedlayer id="layerPausingCassettes" x="977" y="52" w="134" h="134" image="cassette.tape.pause" autoplay="1" autoreplay="1" speed="120" ghost="1" />
<!-- Cassettes Front -->
<layer id="cassette1.base.front" image="cassette.front" x="154" y="34" sysregion="1"/>
<layer id="cassette2.base.front" image="cassette.front" x="818" y="34" sysregion="1"/>
<script id="Animation" file="scripts/playbackanimation.maki"/>
</groupdef>Attached Files
Comment
-
-
Local file path string handling in maki
Aight, so it's not exactly straight forward to do file handling in maki.
One problem is that backslashes in strings cannot easily be handled in maki.
For example, consider this path (which is what a path from getPlayItemString() would look like):
file:\\c:\music\artist1\album1\song1.mp3
What if I want to get a string with only:
c:\music\artist1 ?
That's not easy.
getPath(getPlayItemString()) will only return:
file:\\c:\music\artist1\album1
We still need to remove:
file:\\
and:
\album1
Backslash is an escape character, so to search for a backslash in a string, one would normally have to write two backslashes: "\\".
But, the compiler will not compile the script if one tries to do that.
Another way is to look for the ASCII code for backslash: 92
But, if one tries to do a string search for Chr(92), it will return true for every single character in that string.
Not even getToken will work with backslash as separator.
However, there is one way to do it: urlEncode.
If we urlEncode the string, then every backslash will be replaced with: %5C
Now that we can search for.
So, here is a small script that finds the parent folder of the currently playing file:
PHP Code:// get the complete path to the currently playing file.
string path = getPath(getPlayItemString());
string parentpath = "";
if (strlen(path) > 0) {
// make sure the file is a local file by searching for "file:\\"
// the backslashes in "file:\\" are not included in this search, because the script will not compile with them included.
// we still need to remove the backslashes later however.
int start = strsearch(path, "file:");
if (start > -1) {
// the 7 is the number of characters to remove ( file:\\ )
// we must urlEncode the string, because we cannot search for a single backslash otherwise
path = urlEncode(strright(path, strlen(path) - (start + 7)));
int i = strlen(path) - 1;
while (i > -1) {
// search for the last backslash ( %5C ) position.
// we urlDecode all text before that position.
// the parentpath will then be that decoded text.
if (getToken(strright(path, strlen(path) - i), "%5C", 1) != "") {
parentpath = urlDecode(strleft(path, i));
break;
}
else
i--;
}
}
}
if (parentpath != "") {
// do stuff
// this messagebox will show the parent folder path
messagebox(parentpath, "test", 0, "");
}
Comment
-
-
Attempt #2: Local file path string handling in maki
Hmm, so it seems getToken doesn't handle multiple characters as token, which means my previous script may not always work.
There's also an easier way to get the full filepath without the "File:\\" part.
So, here's a better version, that I've also put into it's own function, for easier handling.
PHP Code:String getParentFolderPath(String path) {
string parentpath = "";
// we make sure the input path is not empty and that the second to last character is not a colon.
// if the second to last character is a colon, it means the input is the root of the drive ( c:\ )
if (strlen(path) > 0 && strmid(strright(path, 2), 0, 1) != ":") {
// we must urlEncode the string, because we cannot search for a single backslash otherwise
path = urlEncode(path);
int i = strlen(path) - 1;
while (i > -1) {
// search for the last backslash ( %5C ) position.
// we urlDecode all text before that position.
// the parentpath will then be that decoded text.
if (strsearch(strright(path, strlen(path) - i), "%5C") > -1) {
parentpath = urlDecode(strleft(path, i));
break;
}
else
i--;
}
}
return parentpath;
}
You need to add the following line where you declare your global variables:
PHP Code:Function String getParentFolderPath(String path);
PHP Code:// get the complete path to the currently playing file.
string filepath = getPath(getPlayItemMetaDataString("filename"));
// get the parent folder path.
string parentpath = getParentFolderPath(filepath);
// this messagebox will show the parent folder path
messagebox(parentpath, "test", 0, "");
Comment
-
-
Originally Posted by frisbeemonkey View PostAARGH! Another Animated Volume correction.
So much for these being helpful, I've become aware of yet another problem with the volume script. If you were sure you were doing everything right, yet for some reason you kept getting a Null Object Called guru meditation... that would be my fault. I changed the .m but forgot to update the .maki in my zip file that I posted. Rather than me post another zip, you can just compile the .m file in the archive and that will work as is or go to this thread and download the volume.zip found there.
~FrisbeeMonkey
PS. Any requests for any other simple scripts? I'm currently out of ideas.
Comment
-
-
Originally Posted by parisienne17 View Post
I've compiled volume.m script but still gets a guru meditation null object called. What can I do ?
You get a guru error if your script calls an object that you do not have. Objects in a script are quoted between parentheses like these: ("VolumeAnim"), ("HiddenVolume"), ("songticker"), or ("player.map.volume").
If you get a guru error then you either add the missing object or remove the lines that call the missing object.Ariszló @ WinCustomize & DeviantArt
Comment
-
Comment