Two easy to read complete opensource Noteskins called exact and easy.
Play around with them and ajust anything you want There are made to test and increase the easy ness of reading simfiles with certain notesins, In this case one for accuracy which is "exact" and one for cluster simfiles which is "easy" Easy is made to be easy to see with simfiles that are clustered for example an simfile with an high bpm and a load of notes coming at the same time, with an load of noteskins which have nice effects and its hard to read these paterns. so basicly you can read the file with clustered patterns which some people including me have trouble with. Exact is to test the accuracy, increasing your scores with Flawless, so people get higher scores on easier files.
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,19 @@
|
||||
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
|
||||
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
|
||||
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
|
||||
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath("_Center", "Go Receptor" );
|
||||
InitCommand=cmd(effectclock,"beat");
|
||||
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
|
||||
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
|
||||
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
|
||||
W5Command=NOTESKIN:GetMetricA("ReceptorArrow", "W5Command");
|
||||
W4Command=NOTESKIN:GetMetricA("ReceptorArrow", "W4Command");
|
||||
W3Command=NOTESKIN:GetMetricA("ReceptorArrow", "W3Command");
|
||||
W2Command=NOTESKIN:GetMetricA("ReceptorArrow", "W2Command");
|
||||
W1Command=NOTESKIN:GetMetricA("ReceptorArrow", "W1Command");
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_Center', 'tap note' );
|
||||
Frames = Sprite.LinearFrames( 1, 1 );
|
||||
};
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1,19 @@
|
||||
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
|
||||
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
|
||||
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
|
||||
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath("_Down", "Go Receptor" );
|
||||
InitCommand=cmd(effectclock,"beat");
|
||||
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
|
||||
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
|
||||
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
|
||||
W5Command=NOTESKIN:GetMetricA("ReceptorArrow", "W5Command");
|
||||
W4Command=NOTESKIN:GetMetricA("ReceptorArrow", "W4Command");
|
||||
W3Command=NOTESKIN:GetMetricA("ReceptorArrow", "W3Command");
|
||||
W2Command=NOTESKIN:GetMetricA("ReceptorArrow", "W2Command");
|
||||
W1Command=NOTESKIN:GetMetricA("ReceptorArrow", "W1Command");
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
|
||||
Frames = Sprite.LinearFrames( 1, 1 );
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
|
||||
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
|
||||
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
|
||||
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath("_DownLeft", "Go Receptor" );
|
||||
InitCommand=cmd(effectclock,"beat");
|
||||
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
|
||||
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
|
||||
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
|
||||
W5Command=NOTESKIN:GetMetricA("ReceptorArrow", "W5Command");
|
||||
W4Command=NOTESKIN:GetMetricA("ReceptorArrow", "W4Command");
|
||||
W3Command=NOTESKIN:GetMetricA("ReceptorArrow", "W3Command");
|
||||
W2Command=NOTESKIN:GetMetricA("ReceptorArrow", "W2Command");
|
||||
W1Command=NOTESKIN:GetMetricA("ReceptorArrow", "W1Command");
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_downleft', 'tap note' );
|
||||
Frames = Sprite.LinearFrames( 1, 1 );
|
||||
};
|
||||
@@ -0,0 +1,137 @@
|
||||
--I am the bone of my noteskin
|
||||
--Arrows are my body, and explosions are my blood
|
||||
--I have created over a thousand noteskins
|
||||
--Unknown to death
|
||||
--Nor known to life
|
||||
--Have withstood pain to create many noteskins
|
||||
--Yet these hands will never hold anything
|
||||
--So as I pray, Unlimited Stepman Works
|
||||
|
||||
local ret = ... or {};
|
||||
|
||||
--Defining on which direction the other directions should be bassed on
|
||||
--This will let us use less files which is quite handy to keep the noteskin directory nice
|
||||
--Do remember this will Redirect all the files of that Direction to the Direction its pointed to
|
||||
--If you only want some files to be redirected take a look at the "custom hold/roll per direction"
|
||||
ret.RedirTable =
|
||||
{
|
||||
--PIU
|
||||
Center = "Center",
|
||||
DownLeft = "DownLeft", -- for PIU and dance
|
||||
DownRight = "DownLeft", -- for PIU and dance
|
||||
UpLeft = "DownLeft",
|
||||
UpRight = "DownLeft",
|
||||
--Dance
|
||||
Down = "Down",
|
||||
Up = "Down",
|
||||
Left = "Down",
|
||||
Right = "Down",
|
||||
};
|
||||
|
||||
-- <
|
||||
--Between here we usally put all the commands the noteskin.lua needs to do, some are extern in other files
|
||||
--If you need help with lua go to http://kki.ajworld.net/lua/ssc/Lua.xml there are a bunch of codes there
|
||||
--Also check out commen it has a load of lua codes in files there
|
||||
--Just play a bit with lua its not that hard if you understand coding
|
||||
--But SM can be an ass in some cases, and some codes jut wont work if you dont have the noteskin on FallbackNoteSkin=common in the metric.ini
|
||||
local OldRedir = ret.Redir;
|
||||
ret.Redir = function(sButton, sElement)
|
||||
sButton, sElement = OldRedir(sButton, sElement);
|
||||
|
||||
sButton = ret.RedirTable[sButton];
|
||||
|
||||
if not string.find(sElement, "Head") and
|
||||
not string.find(sElement, "Explosion") then
|
||||
if string.find(sElement, "Hold") or
|
||||
string.find(sElement, "Roll") then
|
||||
if Var "Button" == "Down" or Var "Button" == "Up" or Var "Button" == "Left" or Var "Button" == "Right" then
|
||||
sButton = "Down";
|
||||
else
|
||||
sButton = "Center";
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Instead of separate hold heads, use the tap note graphics.
|
||||
if sElement == "Hold Head Inactive" or
|
||||
sElement == "Hold Head Active" or
|
||||
sElement == "Roll Head Inactive" or
|
||||
sElement == "Roll Head Active" or
|
||||
sElement == "Tap Fake"
|
||||
then
|
||||
sElement = "Tap Note";
|
||||
end
|
||||
|
||||
if sElement == "Tap Explosion Dim" or
|
||||
sElement == "Hold Explosion" or
|
||||
sElement == "Roll Explosion"
|
||||
then
|
||||
sElement = "Tap Explosion Bright";
|
||||
end
|
||||
|
||||
if sElement == "Tap Mine"
|
||||
then
|
||||
sButton = "Down";
|
||||
end
|
||||
|
||||
return sButton, sElement;
|
||||
end
|
||||
|
||||
local OldFunc = ret.Load;
|
||||
function ret.Load()
|
||||
local t = OldFunc();
|
||||
|
||||
--Explosion should not be rotated; it calls other actors.
|
||||
if Var "Element" == "Explosion" then
|
||||
t.BaseRotationZ = nil;
|
||||
end
|
||||
return t;
|
||||
end
|
||||
-- >
|
||||
|
||||
|
||||
-- Parts of noteskins which we want to rotate
|
||||
ret.PartsToRotate =
|
||||
{
|
||||
["Receptor"] = true,
|
||||
["Tap Explosion Bright"] = true,
|
||||
["Tap Explosion Dim"] = true,
|
||||
["Tap Note"] = true,
|
||||
["Tap Fake"] = true,
|
||||
["Tap Addition"] = true,
|
||||
["Hold Explosion"] = true,
|
||||
["Hold Head Active"] = true,
|
||||
["Hold Head Inactive"] = true,
|
||||
["Roll Explosion"] = true,
|
||||
["Roll Head Active"] = true,
|
||||
["Roll Head Inactive"] = true,
|
||||
};
|
||||
-- Defined the parts to be rotated at which degree
|
||||
ret.Rotate =
|
||||
{
|
||||
--PIU
|
||||
Center = 0,
|
||||
DownLeft = 0,
|
||||
DownRight = -90,
|
||||
UpLeft = 90,
|
||||
UpRight = 180,
|
||||
--Dance
|
||||
Down = 0,
|
||||
Up = 180,
|
||||
Left = 90,
|
||||
Right = -90,
|
||||
};
|
||||
|
||||
-- Parts that should be Redirected to _Blank.png
|
||||
-- you can add/remove stuff if you want
|
||||
ret.Blank =
|
||||
{
|
||||
["HitMine Explosion"] = true,
|
||||
["Hold Tail Active"] = true,
|
||||
["Hold Tail Inactive"] = true,
|
||||
["Roll Tail Active"] = true,
|
||||
["Roll Tail Inactive"] = true,
|
||||
};
|
||||
|
||||
-- dont forget to close the ret cuz else it wont work ;>
|
||||
return ret;
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,243 @@
|
||||
#USW Metric Version V2
|
||||
#Made for Version Stepmania 5 Preview 2
|
||||
|
||||
#I am the bone of my noteskin
|
||||
#Arrows are my body, and explosions are my blood
|
||||
#I have created over a thousand noteskins
|
||||
#Unknown to death
|
||||
#Nor known to life
|
||||
#Have withstood pain to create many noteskins
|
||||
#Yet these hands will never hold anything
|
||||
#So as I pray, Unlimited Stepman Works
|
||||
|
||||
[Global]
|
||||
#Noteskin this noteskin falls back on
|
||||
#We normaly make this fallback on common
|
||||
#Because its the global noteskin every default fallsback on to
|
||||
FallbackNoteSkin=common
|
||||
|
||||
[NoteDisplay]
|
||||
#Noteskin Animation Lengths
|
||||
AnimationIsBeatBased=1
|
||||
|
||||
##Tap Parts
|
||||
TapNoteAnimationLength=4
|
||||
TapMineAnimationLength=4
|
||||
TapLiftAnimationLength=4
|
||||
TapFakeAnimationLength=4
|
||||
##Hold Parts
|
||||
HoldHeadAnimationLength=4
|
||||
HoldTopCapAnimationLength=4
|
||||
HoldBottomCapAnimationLength=4
|
||||
HoldBodyAnimationLength=4
|
||||
HoldTailAnimationLength=4
|
||||
##Roll Parts
|
||||
RollHeadAnimationLength=4
|
||||
RollTopCapAnimationLength=4
|
||||
RollBottomCapAnimationLength=4
|
||||
RollBodyAnimationLength=4
|
||||
RollTailAnimationLength=4
|
||||
|
||||
|
||||
#Define if noteskin is Vivid or not
|
||||
#Value 1 = true, Value 0 = false
|
||||
|
||||
##Tap Parts
|
||||
TapNoteAnimationIsVivid=0
|
||||
TapMineAnimationIsVivid=0
|
||||
TapFakeAnimationIsVivid=0
|
||||
TapLiftAnimationIsVivid=0
|
||||
##Hold Parts
|
||||
HoldHeadAnimationIsVivid=0
|
||||
HoldTopCapAnimationIsVivid=0
|
||||
HoldBodyAnimationIsVivid=0
|
||||
HoldBottomCapAnimationIsVivid=0
|
||||
HoldTailAnimationIsVivid=0
|
||||
##Roll Parts
|
||||
RollHeadAnimationIsVivid=0
|
||||
RollTopCapAnimationIsVivid=0
|
||||
RollBodyAnimationIsVivid=0
|
||||
RollBottomCapAnimationIsVivid=0
|
||||
RollTailAnimationIsVivid=0
|
||||
|
||||
|
||||
#Texture Coord Offest Info
|
||||
|
||||
#This is the TextureCoordOffset which we use for Rhythm colored noteskins
|
||||
#If you dont want to use it, just keep the value 0
|
||||
#Rhythm colored noteskins are noteskins that have different colors for every
|
||||
#4th, 8th, 12th, 16th and so on
|
||||
#To use this you need to use simple math because it isnt based on the size of
|
||||
#the image but its based on the total value of the size which is 1
|
||||
#So if you got 9 frames (including 192nd)
|
||||
#You need to run this simple math
|
||||
# 1 / 9 = 0.11111111111111111111111111 (and so on)
|
||||
#Because using the entire value is to long, lets make it smaler to 6 digits
|
||||
#You can make it longer if you want but lets keep it nice to 6 digits
|
||||
|
||||
##Tap Parts
|
||||
TapNoteAdditionTextureCoordOffsetX=0.5
|
||||
TapNoteAdditionTextureCoordOffsetY=0.125
|
||||
TapNoteNoteColorTextureCoordSpacingX=0
|
||||
TapNoteNoteColorTextureCoordSpacingY=0.125
|
||||
TapMineAdditionTextureCoordOffsetX=0
|
||||
TapMineAdditionTextureCoordOffsetY=0
|
||||
TapMineNoteColorTextureCoordSpacingX=0
|
||||
TapMineNoteColorTextureCoordSpacingY=0
|
||||
TapLiftAdditionTextureCoordOffsetX=0
|
||||
TapLiftAdditionTextureCoordOffsetY=0
|
||||
TapLiftNoteColorTextureCoordSpacingX=0
|
||||
TapLiftNoteColorTextureCoordSpacingY=0
|
||||
TapFakeAdditionTextureCoordOffsetX=0.5
|
||||
TapFakeAdditionTextureCoordOffsetY=0.1
|
||||
TapFakeNoteColorTextureCoordSpacingX=0
|
||||
TapFakeNoteColorTextureCoordSpacingY=0.125
|
||||
##Hold Parts
|
||||
HoldHeadAdditionTextureCoordOffsetX=0.5
|
||||
HoldHeadAdditionTextureCoordOffsetY=0.125
|
||||
HoldHeadNoteColorTextureCoordSpacingX=0
|
||||
HoldHeadNoteColorTextureCoordSpacingY=0.125
|
||||
HoldTopCapAdditionTextureCoordOffsetX=0
|
||||
HoldTopCapAdditionTextureCoordOffsetY=0
|
||||
HoldTopCapNoteColorTextureCoordSpacingX=0
|
||||
HoldTopCapNoteColorTextureCoordSpacingY=0
|
||||
HoldBodyAdditionTextureCoordOffsetX=0
|
||||
HoldBodyAdditionTextureCoordOffsetY=0
|
||||
HoldBodyNoteColorTextureCoordSpacingX=0
|
||||
HoldBodyNoteColorTextureCoordSpacingY=0
|
||||
HoldBottomCapAdditionTextureCoordOffsetX=0
|
||||
HoldBottomCapAdditionTextureCoordOffsetY=0
|
||||
HoldBottomCapNoteColorTextureCoordSpacingX=0
|
||||
HoldBottomCapNoteColorTextureCoordSpacingY=0
|
||||
HoldTailAdditionTextureCoordOffsetX=0
|
||||
HoldTailAdditionTextureCoordOffsetY=0
|
||||
HoldTailNoteColorTextureCoordSpacingX=0
|
||||
HoldTailNoteColorTextureCoordSpacingY=0
|
||||
##Roll Parts
|
||||
RollHeadAdditionTextureCoordOffsetX=0
|
||||
RollHeadAdditionTextureCoordOffsetY=0
|
||||
RollHeadNoteColorTextureCoordSpacingX=0
|
||||
RollHeadNoteColorTextureCoordSpacingY=0
|
||||
RollTopCapAdditionTextureCoordOffsetX=0
|
||||
RollTopCapAdditionTextureCoordOffsetY=0
|
||||
RollTopCapNoteColorTextureCoordSpacingX=0
|
||||
RollTopCapNoteColorTextureCoordSpacingY=0
|
||||
RollBodyAdditionTextureCoordOffsetX=0
|
||||
RollBodyAdditionTextureCoordOffsetY=0
|
||||
RollBodyNoteColorTextureCoordSpacingX=0
|
||||
RollBodyNoteColorTextureCoordSpacingY=0
|
||||
RollBottomCapAdditionTextureCoordOffsetX=0
|
||||
RollBottomCapAdditionTextureCoordOffsetY=0
|
||||
RollBottomCapNoteColorTextureCoordSpacingX=0
|
||||
RollBottomCapNoteColorTextureCoordSpacingY=0
|
||||
RollTailAdditionTextureCoordOffsetX=0
|
||||
RollTailAdditionTextureCoordOffsetY=0
|
||||
RollTailNoteColorTextureCoordSpacingX=0
|
||||
RollTailNoteColorTextureCoordSpacingY=0
|
||||
|
||||
|
||||
#Other Stuff
|
||||
DrawHoldHeadForTapsOnSameRow=1
|
||||
DrawRollHeadForTapsOnSameRow=1
|
||||
TapHoldRollOnRowMeansHold=1
|
||||
StartDrawingHoldBodyOffsetFromHead=0
|
||||
StopDrawingHoldBodyOffsetFromTail=0
|
||||
HoldLetGoGrayPercent=1
|
||||
UseLighting=0
|
||||
ReverseDrawOrder=1101
|
||||
HoldHeadIsAboveWavyParts=1
|
||||
HoldTailIsAboveWavyParts=1
|
||||
HoldActiveIsAddLayer=0
|
||||
|
||||
|
||||
#Edit this incase you want to make noteskin for reverse or both
|
||||
FlipHoldBodyWhenReverse=1
|
||||
FlipHeadAndTailWhenReverse=1
|
||||
TopHoldAnchorWhenReverse=1
|
||||
|
||||
|
||||
#Diffuse Info v2
|
||||
|
||||
#Diffuse uses a color code to define the diffuse
|
||||
#You can use diffusealpha to make noteskins disapear with value = 0 or reapear with value = 1
|
||||
#The way it works is pretty easy
|
||||
#It is based on the Red,Blue,Green,Alpha value that you get with color
|
||||
#But instead of 255,255,255,255 it uses 1,1,1,1
|
||||
#So if you want to use a RBG value from an image like for example Taupe
|
||||
#Which has a value of 72,60,50 , What we just do is / 254 on every value
|
||||
#And we also add a Alpha (for transparent) value between 0.1 and 1
|
||||
#So We get 0.283464,0.236220,0.196850,0.6
|
||||
#You can go over the 6 digits after the . (which I don't do because I like to keep it clean and not to big)
|
||||
#diffuse,1,1,1,1 is the basic code
|
||||
#Change them to which value you want
|
||||
#add ; at the end of your command incase you add more commands
|
||||
|
||||
[GhostArrowDim]
|
||||
NoneCommand=
|
||||
HitMineCommand=visible,false
|
||||
AvoidMineCommand=
|
||||
MissCommand=
|
||||
#Boo explosion
|
||||
W5Command=diffuse,0.8,0.0,0.6,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Good explosion
|
||||
W4Command=diffuse,0.3,0.8,1.0,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Great explosion
|
||||
W3Command=diffuse,0.0,1.0,0.4,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Perfect explosion
|
||||
W2Command=diffuse,1.0,1.0,0.3,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Marvelous explosion
|
||||
W1Command=diffuse,1.0,1.0,1.0,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Hold end commands
|
||||
LetGoCommand=
|
||||
HeldCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
|
||||
|
||||
[GhostArrowBright]
|
||||
NoneCommand=
|
||||
HitMineCommand=visible,false
|
||||
AvoidMineCommand=
|
||||
MissCommand=
|
||||
#Boo explosion
|
||||
W5Command=diffuse,0.8,0.0,0.6,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Good explosion
|
||||
W4Command=diffuse,0.3,0.8,1.0,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Great explosion
|
||||
W3Command=diffuse,0.0,1.0,0.4,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Perfect explosion
|
||||
W2Command=diffuse,1.0,1.0,0.3,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Marvelous explosion
|
||||
W1Command=diffuse,1.0,1.0,1.0,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Hold end commands
|
||||
LetGoCommand=
|
||||
HeldCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
|
||||
|
||||
[ReceptorArrow]
|
||||
#For InitCommand take a look at "Down Receptor.lua"
|
||||
#InitCommand=
|
||||
NoneCommand=stoptweening;zoom,0.75;linear,0.11;zoom,1
|
||||
PressCommand=
|
||||
LiftCommand=
|
||||
AvoidMineCommand=
|
||||
#The way the receptor responds when you hit an arrow on specified judgment
|
||||
#Boo command
|
||||
W5Command=stoptweening
|
||||
#Good command
|
||||
W4Command=stoptweening
|
||||
#Great command
|
||||
W3Command=stoptweening
|
||||
#Perfect command
|
||||
W2Command=stoptweening
|
||||
#Marvelous command
|
||||
W1Command=stoptweening
|
||||
|
||||
[HoldGhostArrow]
|
||||
#The way the hold arrow reacts
|
||||
HoldingOnCommand=visible,true
|
||||
HoldingOffCommand=visible,false
|
||||
RollOnCommand=visible,true
|
||||
RollOffCommand=visible,false
|
||||
|
||||
[Press]
|
||||
ReverseOnCommand=vertalign,bottom
|
||||
ReverseOffCommand=vertalign,top
|
||||
PressCommand=visible,true
|
||||
LiftCommand=visible,false
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,19 @@
|
||||
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
|
||||
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
|
||||
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
|
||||
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath("_Center", "Go Receptor" );
|
||||
InitCommand=cmd(effectclock,"beat");
|
||||
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
|
||||
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
|
||||
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
|
||||
W5Command=NOTESKIN:GetMetricA("ReceptorArrow", "W5Command");
|
||||
W4Command=NOTESKIN:GetMetricA("ReceptorArrow", "W4Command");
|
||||
W3Command=NOTESKIN:GetMetricA("ReceptorArrow", "W3Command");
|
||||
W2Command=NOTESKIN:GetMetricA("ReceptorArrow", "W2Command");
|
||||
W1Command=NOTESKIN:GetMetricA("ReceptorArrow", "W1Command");
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_Center', 'tap note' );
|
||||
Frames = Sprite.LinearFrames( 1, 1 );
|
||||
};
|
||||
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
@@ -0,0 +1,19 @@
|
||||
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
|
||||
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
|
||||
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
|
||||
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath("_Down", "Go Receptor" );
|
||||
InitCommand=cmd(effectclock,"beat");
|
||||
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
|
||||
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
|
||||
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
|
||||
W5Command=NOTESKIN:GetMetricA("ReceptorArrow", "W5Command");
|
||||
W4Command=NOTESKIN:GetMetricA("ReceptorArrow", "W4Command");
|
||||
W3Command=NOTESKIN:GetMetricA("ReceptorArrow", "W3Command");
|
||||
W2Command=NOTESKIN:GetMetricA("ReceptorArrow", "W2Command");
|
||||
W1Command=NOTESKIN:GetMetricA("ReceptorArrow", "W1Command");
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 2.8 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
|
After Width: | Height: | Size: 3.1 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_down', 'tap note' );
|
||||
Frames = Sprite.LinearFrames( 1, 1 );
|
||||
};
|
||||
@@ -0,0 +1,19 @@
|
||||
--If a Command has "NOTESKIN:GetMetricA" in it, that means it gets the command from the metrics.ini, else use cmd(); to define command.
|
||||
--If you dont know how "NOTESKIN:GetMetricA" works here is an explanation.
|
||||
--NOTESKIN:GetMetricA("The [Group] in the metrics.ini", "The actual Command to fallback on in the metrics.ini");
|
||||
|
||||
local t = Def.ActorFrame {
|
||||
Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath("_DownLeft", "Go Receptor" );
|
||||
InitCommand=cmd(effectclock,"beat");
|
||||
NoneCommand=NOTESKIN:GetMetricA("ReceptorArrow", "NoneCommand");
|
||||
PressCommand=NOTESKIN:GetMetricA("ReceptorArrow", "PressCommand");
|
||||
LiftCommand=NOTESKIN:GetMetricA("ReceptorArrow", "LiftCommand");
|
||||
W5Command=NOTESKIN:GetMetricA("ReceptorArrow", "W5Command");
|
||||
W4Command=NOTESKIN:GetMetricA("ReceptorArrow", "W4Command");
|
||||
W3Command=NOTESKIN:GetMetricA("ReceptorArrow", "W3Command");
|
||||
W2Command=NOTESKIN:GetMetricA("ReceptorArrow", "W2Command");
|
||||
W1Command=NOTESKIN:GetMetricA("ReceptorArrow", "W1Command");
|
||||
};
|
||||
};
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -0,0 +1,4 @@
|
||||
return Def.Sprite {
|
||||
Texture=NOTESKIN:GetPath( '_downleft', 'tap note' );
|
||||
Frames = Sprite.LinearFrames( 1, 1 );
|
||||
};
|
||||
@@ -0,0 +1,137 @@
|
||||
--I am the bone of my noteskin
|
||||
--Arrows are my body, and explosions are my blood
|
||||
--I have created over a thousand noteskins
|
||||
--Unknown to death
|
||||
--Nor known to life
|
||||
--Have withstood pain to create many noteskins
|
||||
--Yet these hands will never hold anything
|
||||
--So as I pray, Unlimited Stepman Works
|
||||
|
||||
local ret = ... or {};
|
||||
|
||||
--Defining on which direction the other directions should be bassed on
|
||||
--This will let us use less files which is quite handy to keep the noteskin directory nice
|
||||
--Do remember this will Redirect all the files of that Direction to the Direction its pointed to
|
||||
--If you only want some files to be redirected take a look at the "custom hold/roll per direction"
|
||||
ret.RedirTable =
|
||||
{
|
||||
--PIU
|
||||
Center = "Center",
|
||||
DownLeft = "DownLeft", -- for PIU and dance
|
||||
DownRight = "DownLeft", -- for PIU and dance
|
||||
UpLeft = "DownLeft",
|
||||
UpRight = "DownLeft",
|
||||
--Dance
|
||||
Down = "Down",
|
||||
Up = "Down",
|
||||
Left = "Down",
|
||||
Right = "Down",
|
||||
};
|
||||
|
||||
-- <
|
||||
--Between here we usally put all the commands the noteskin.lua needs to do, some are extern in other files
|
||||
--If you need help with lua go to http://kki.ajworld.net/lua/ssc/Lua.xml there are a bunch of codes there
|
||||
--Also check out commen it has a load of lua codes in files there
|
||||
--Just play a bit with lua its not that hard if you understand coding
|
||||
--But SM can be an ass in some cases, and some codes jut wont work if you dont have the noteskin on FallbackNoteSkin=common in the metric.ini
|
||||
local OldRedir = ret.Redir;
|
||||
ret.Redir = function(sButton, sElement)
|
||||
sButton, sElement = OldRedir(sButton, sElement);
|
||||
|
||||
sButton = ret.RedirTable[sButton];
|
||||
|
||||
if not string.find(sElement, "Head") and
|
||||
not string.find(sElement, "Explosion") then
|
||||
if string.find(sElement, "Hold") or
|
||||
string.find(sElement, "Roll") then
|
||||
if Var "Button" == "Down" or Var "Button" == "Up" or Var "Button" == "Left" or Var "Button" == "Right" then
|
||||
sButton = "Down";
|
||||
else
|
||||
sButton = "Center";
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- Instead of separate hold heads, use the tap note graphics.
|
||||
if sElement == "Hold Head Inactive" or
|
||||
sElement == "Hold Head Active" or
|
||||
sElement == "Roll Head Inactive" or
|
||||
sElement == "Roll Head Active" or
|
||||
sElement == "Tap Fake"
|
||||
then
|
||||
sElement = "Tap Note";
|
||||
end
|
||||
|
||||
if sElement == "Tap Explosion Dim" or
|
||||
sElement == "Hold Explosion" or
|
||||
sElement == "Roll Explosion"
|
||||
then
|
||||
sElement = "Tap Explosion Bright";
|
||||
end
|
||||
|
||||
if sElement == "Tap Mine"
|
||||
then
|
||||
sButton = "Down";
|
||||
end
|
||||
|
||||
return sButton, sElement;
|
||||
end
|
||||
|
||||
local OldFunc = ret.Load;
|
||||
function ret.Load()
|
||||
local t = OldFunc();
|
||||
|
||||
--Explosion should not be rotated; it calls other actors.
|
||||
if Var "Element" == "Explosion" then
|
||||
t.BaseRotationZ = nil;
|
||||
end
|
||||
return t;
|
||||
end
|
||||
-- >
|
||||
|
||||
|
||||
-- Parts of noteskins which we want to rotate
|
||||
ret.PartsToRotate =
|
||||
{
|
||||
["Receptor"] = true,
|
||||
["Tap Explosion Bright"] = true,
|
||||
["Tap Explosion Dim"] = true,
|
||||
["Tap Note"] = true,
|
||||
["Tap Fake"] = true,
|
||||
["Tap Addition"] = true,
|
||||
["Hold Explosion"] = true,
|
||||
["Hold Head Active"] = true,
|
||||
["Hold Head Inactive"] = true,
|
||||
["Roll Explosion"] = true,
|
||||
["Roll Head Active"] = true,
|
||||
["Roll Head Inactive"] = true,
|
||||
};
|
||||
-- Defined the parts to be rotated at which degree
|
||||
ret.Rotate =
|
||||
{
|
||||
--PIU
|
||||
Center = 0,
|
||||
DownLeft = 0,
|
||||
DownRight = -90,
|
||||
UpLeft = 90,
|
||||
UpRight = 180,
|
||||
--Dance
|
||||
Down = 0,
|
||||
Up = 180,
|
||||
Left = 90,
|
||||
Right = -90,
|
||||
};
|
||||
|
||||
-- Parts that should be Redirected to _Blank.png
|
||||
-- you can add/remove stuff if you want
|
||||
ret.Blank =
|
||||
{
|
||||
["HitMine Explosion"] = true,
|
||||
["Hold Tail Active"] = true,
|
||||
["Hold Tail Inactive"] = true,
|
||||
["Roll Tail Active"] = true,
|
||||
["Roll Tail Inactive"] = true,
|
||||
};
|
||||
|
||||
-- dont forget to close the ret cuz else it wont work ;>
|
||||
return ret;
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 3.3 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 13 KiB |
@@ -0,0 +1,243 @@
|
||||
#USW Metric Version V2
|
||||
#Made for Version Stepmania 5 Preview 2
|
||||
|
||||
#I am the bone of my noteskin
|
||||
#Arrows are my body, and explosions are my blood
|
||||
#I have created over a thousand noteskins
|
||||
#Unknown to death
|
||||
#Nor known to life
|
||||
#Have withstood pain to create many noteskins
|
||||
#Yet these hands will never hold anything
|
||||
#So as I pray, Unlimited Stepman Works
|
||||
|
||||
[Global]
|
||||
#Noteskin this noteskin falls back on
|
||||
#We normaly make this fallback on common
|
||||
#Because its the global noteskin every default fallsback on to
|
||||
FallbackNoteSkin=common
|
||||
|
||||
[NoteDisplay]
|
||||
#Noteskin Animation Lengths
|
||||
AnimationIsBeatBased=1
|
||||
|
||||
##Tap Parts
|
||||
TapNoteAnimationLength=4
|
||||
TapMineAnimationLength=4
|
||||
TapLiftAnimationLength=4
|
||||
TapFakeAnimationLength=4
|
||||
##Hold Parts
|
||||
HoldHeadAnimationLength=4
|
||||
HoldTopCapAnimationLength=4
|
||||
HoldBottomCapAnimationLength=4
|
||||
HoldBodyAnimationLength=4
|
||||
HoldTailAnimationLength=4
|
||||
##Roll Parts
|
||||
RollHeadAnimationLength=4
|
||||
RollTopCapAnimationLength=4
|
||||
RollBottomCapAnimationLength=4
|
||||
RollBodyAnimationLength=4
|
||||
RollTailAnimationLength=4
|
||||
|
||||
|
||||
#Define if noteskin is Vivid or not
|
||||
#Value 1 = true, Value 0 = false
|
||||
|
||||
##Tap Parts
|
||||
TapNoteAnimationIsVivid=0
|
||||
TapMineAnimationIsVivid=0
|
||||
TapFakeAnimationIsVivid=0
|
||||
TapLiftAnimationIsVivid=0
|
||||
##Hold Parts
|
||||
HoldHeadAnimationIsVivid=0
|
||||
HoldTopCapAnimationIsVivid=0
|
||||
HoldBodyAnimationIsVivid=0
|
||||
HoldBottomCapAnimationIsVivid=0
|
||||
HoldTailAnimationIsVivid=0
|
||||
##Roll Parts
|
||||
RollHeadAnimationIsVivid=0
|
||||
RollTopCapAnimationIsVivid=0
|
||||
RollBodyAnimationIsVivid=0
|
||||
RollBottomCapAnimationIsVivid=0
|
||||
RollTailAnimationIsVivid=0
|
||||
|
||||
|
||||
#Texture Coord Offest Info
|
||||
|
||||
#This is the TextureCoordOffset which we use for Rhythm colored noteskins
|
||||
#If you dont want to use it, just keep the value 0
|
||||
#Rhythm colored noteskins are noteskins that have different colors for every
|
||||
#4th, 8th, 12th, 16th and so on
|
||||
#To use this you need to use simple math because it isnt based on the size of
|
||||
#the image but its based on the total value of the size which is 1
|
||||
#So if you got 9 frames (including 192nd)
|
||||
#You need to run this simple math
|
||||
# 1 / 9 = 0.11111111111111111111111111 (and so on)
|
||||
#Because using the entire value is to long, lets make it smaler to 6 digits
|
||||
#You can make it longer if you want but lets keep it nice to 6 digits
|
||||
|
||||
##Tap Parts
|
||||
TapNoteAdditionTextureCoordOffsetX=0.5
|
||||
TapNoteAdditionTextureCoordOffsetY=0.125
|
||||
TapNoteNoteColorTextureCoordSpacingX=0
|
||||
TapNoteNoteColorTextureCoordSpacingY=0.125
|
||||
TapMineAdditionTextureCoordOffsetX=0
|
||||
TapMineAdditionTextureCoordOffsetY=0
|
||||
TapMineNoteColorTextureCoordSpacingX=0
|
||||
TapMineNoteColorTextureCoordSpacingY=0
|
||||
TapLiftAdditionTextureCoordOffsetX=0
|
||||
TapLiftAdditionTextureCoordOffsetY=0
|
||||
TapLiftNoteColorTextureCoordSpacingX=0
|
||||
TapLiftNoteColorTextureCoordSpacingY=0
|
||||
TapFakeAdditionTextureCoordOffsetX=0.5
|
||||
TapFakeAdditionTextureCoordOffsetY=0.1
|
||||
TapFakeNoteColorTextureCoordSpacingX=0
|
||||
TapFakeNoteColorTextureCoordSpacingY=0.125
|
||||
##Hold Parts
|
||||
HoldHeadAdditionTextureCoordOffsetX=0.5
|
||||
HoldHeadAdditionTextureCoordOffsetY=0.125
|
||||
HoldHeadNoteColorTextureCoordSpacingX=0
|
||||
HoldHeadNoteColorTextureCoordSpacingY=0.125
|
||||
HoldTopCapAdditionTextureCoordOffsetX=0
|
||||
HoldTopCapAdditionTextureCoordOffsetY=0
|
||||
HoldTopCapNoteColorTextureCoordSpacingX=0
|
||||
HoldTopCapNoteColorTextureCoordSpacingY=0
|
||||
HoldBodyAdditionTextureCoordOffsetX=0
|
||||
HoldBodyAdditionTextureCoordOffsetY=0
|
||||
HoldBodyNoteColorTextureCoordSpacingX=0
|
||||
HoldBodyNoteColorTextureCoordSpacingY=0
|
||||
HoldBottomCapAdditionTextureCoordOffsetX=0
|
||||
HoldBottomCapAdditionTextureCoordOffsetY=0
|
||||
HoldBottomCapNoteColorTextureCoordSpacingX=0
|
||||
HoldBottomCapNoteColorTextureCoordSpacingY=0
|
||||
HoldTailAdditionTextureCoordOffsetX=0
|
||||
HoldTailAdditionTextureCoordOffsetY=0
|
||||
HoldTailNoteColorTextureCoordSpacingX=0
|
||||
HoldTailNoteColorTextureCoordSpacingY=0
|
||||
##Roll Parts
|
||||
RollHeadAdditionTextureCoordOffsetX=0
|
||||
RollHeadAdditionTextureCoordOffsetY=0
|
||||
RollHeadNoteColorTextureCoordSpacingX=0
|
||||
RollHeadNoteColorTextureCoordSpacingY=0
|
||||
RollTopCapAdditionTextureCoordOffsetX=0
|
||||
RollTopCapAdditionTextureCoordOffsetY=0
|
||||
RollTopCapNoteColorTextureCoordSpacingX=0
|
||||
RollTopCapNoteColorTextureCoordSpacingY=0
|
||||
RollBodyAdditionTextureCoordOffsetX=0
|
||||
RollBodyAdditionTextureCoordOffsetY=0
|
||||
RollBodyNoteColorTextureCoordSpacingX=0
|
||||
RollBodyNoteColorTextureCoordSpacingY=0
|
||||
RollBottomCapAdditionTextureCoordOffsetX=0
|
||||
RollBottomCapAdditionTextureCoordOffsetY=0
|
||||
RollBottomCapNoteColorTextureCoordSpacingX=0
|
||||
RollBottomCapNoteColorTextureCoordSpacingY=0
|
||||
RollTailAdditionTextureCoordOffsetX=0
|
||||
RollTailAdditionTextureCoordOffsetY=0
|
||||
RollTailNoteColorTextureCoordSpacingX=0
|
||||
RollTailNoteColorTextureCoordSpacingY=0
|
||||
|
||||
|
||||
#Other Stuff
|
||||
DrawHoldHeadForTapsOnSameRow=1
|
||||
DrawRollHeadForTapsOnSameRow=1
|
||||
TapHoldRollOnRowMeansHold=1
|
||||
StartDrawingHoldBodyOffsetFromHead=0
|
||||
StopDrawingHoldBodyOffsetFromTail=0
|
||||
HoldLetGoGrayPercent=1
|
||||
UseLighting=0
|
||||
ReverseDrawOrder=1101
|
||||
HoldHeadIsAboveWavyParts=1
|
||||
HoldTailIsAboveWavyParts=1
|
||||
HoldActiveIsAddLayer=0
|
||||
|
||||
|
||||
#Edit this incase you want to make noteskin for reverse or both
|
||||
FlipHoldBodyWhenReverse=1
|
||||
FlipHeadAndTailWhenReverse=1
|
||||
TopHoldAnchorWhenReverse=1
|
||||
|
||||
|
||||
#Diffuse Info v2
|
||||
|
||||
#Diffuse uses a color code to define the diffuse
|
||||
#You can use diffusealpha to make noteskins disapear with value = 0 or reapear with value = 1
|
||||
#The way it works is pretty easy
|
||||
#It is based on the Red,Blue,Green,Alpha value that you get with color
|
||||
#But instead of 255,255,255,255 it uses 1,1,1,1
|
||||
#So if you want to use a RBG value from an image like for example Taupe
|
||||
#Which has a value of 72,60,50 , What we just do is / 254 on every value
|
||||
#And we also add a Alpha (for transparent) value between 0.1 and 1
|
||||
#So We get 0.283464,0.236220,0.196850,0.6
|
||||
#You can go over the 6 digits after the . (which I don't do because I like to keep it clean and not to big)
|
||||
#diffuse,1,1,1,1 is the basic code
|
||||
#Change them to which value you want
|
||||
#add ; at the end of your command incase you add more commands
|
||||
|
||||
[GhostArrowDim]
|
||||
NoneCommand=
|
||||
HitMineCommand=visible,false
|
||||
AvoidMineCommand=
|
||||
MissCommand=
|
||||
#Boo explosion
|
||||
W5Command=diffuse,0.8,0.0,0.6,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Good explosion
|
||||
W4Command=diffuse,0.3,0.8,1.0,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Great explosion
|
||||
W3Command=diffuse,0.0,1.0,0.4,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Perfect explosion
|
||||
W2Command=diffuse,1.0,1.0,0.3,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Marvelous explosion
|
||||
W1Command=diffuse,1.0,1.0,1.0,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Hold end commands
|
||||
LetGoCommand=
|
||||
HeldCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
|
||||
|
||||
[GhostArrowBright]
|
||||
NoneCommand=
|
||||
HitMineCommand=visible,false
|
||||
AvoidMineCommand=
|
||||
MissCommand=
|
||||
#Boo explosion
|
||||
W5Command=diffuse,0.8,0.0,0.6,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Good explosion
|
||||
W4Command=diffuse,0.3,0.8,1.0,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Great explosion
|
||||
W3Command=diffuse,0.0,1.0,0.4,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Perfect explosion
|
||||
W2Command=diffuse,1.0,1.0,0.3,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Marvelous explosion
|
||||
W1Command=diffuse,1.0,1.0,1.0,1;zoom,1;diffusealpha,.9;linear,0.1;zoom,2;diffusealpha,.3;linear,0.06;diffusealpha,0
|
||||
#Hold end commands
|
||||
LetGoCommand=
|
||||
HeldCommand=diffuse,1.0,1.0,1.0,1;zoom,1;linear,0.06;zoom,1.1;linear,0.06;diffusealpha,0
|
||||
|
||||
[ReceptorArrow]
|
||||
#For InitCommand take a look at "Down Receptor.lua"
|
||||
#InitCommand=
|
||||
NoneCommand=stoptweening;zoom,0.75;linear,0.11;zoom,1
|
||||
PressCommand=
|
||||
LiftCommand=
|
||||
AvoidMineCommand=
|
||||
#The way the receptor responds when you hit an arrow on specified judgment
|
||||
#Boo command
|
||||
W5Command=stoptweening
|
||||
#Good command
|
||||
W4Command=stoptweening
|
||||
#Great command
|
||||
W3Command=stoptweening
|
||||
#Perfect command
|
||||
W2Command=stoptweening
|
||||
#Marvelous command
|
||||
W1Command=stoptweening
|
||||
|
||||
[HoldGhostArrow]
|
||||
#The way the hold arrow reacts
|
||||
HoldingOnCommand=visible,true
|
||||
HoldingOffCommand=visible,false
|
||||
RollOnCommand=visible,true
|
||||
RollOffCommand=visible,false
|
||||
|
||||
[Press]
|
||||
ReverseOnCommand=vertalign,bottom
|
||||
ReverseOffCommand=vertalign,top
|
||||
PressCommand=visible,true
|
||||
LiftCommand=visible,false
|
||||