Logo

SM 5 Theming - Gameplay to Evaluation transition, Menus and Options

Register Log In Back To Forums

Post #81 · Posted at 2014-08-06 04:29:22am 9.7 years ago

Offline Musashi
Musashi Avatar Member
108 Posts
United States
Reg. 2014-05-03

The newest nightly build didn't agree with my Title Screen; I could only select certain items, none of which were 'Start Game'. But thanks anyway.

I got most of the FC flash working now except for the last part, which it looks like I'll be able to program manually myself.

Post #82 · Posted at 2014-08-06 04:46:57am 9.7 years ago

Offline dbk2
dbk2 Avatar Member
332 Posts
Not Set
Reg. 2012-04-30


Last updated: 2014-08-06 04:48am
It is more likely that your theme didn't agree with the newest nightly build. I strongly encourage you to use a nightly build and fix your Lua.

What do the errors you get say?

Post #83 · Posted at 2014-08-06 04:48:24pm 9.7 years ago

Offline Musashi
Musashi Avatar Member
108 Posts
United States
Reg. 2014-05-03

Quote: dbk2
It is more likely that your theme didn't agree with the newest nightly build. I strongly encourage you to use a nightly build and fix your Lua.

What do the errors you get say?

In the Log? I can check that out tonight.

I trust I can run a nightly build in a separate folder and keep beta 3 in its current location?

Post #84 · Posted at 2014-08-06 06:39:34pm 9.7 years ago

Offline AJ 187
AJ 187 Avatar Member
130 Posts
Not Set
Reg. 2008-10-14

"retired"
Yes, you can do that (and I would recommend it)

Post #85 · Posted at 2014-08-06 06:45:44pm 9.7 years ago

Offline Kyzentun
Kyzentun Avatar Member
3,209 Posts
United States
Reg. 2008-02-20

"I'm honestly pissed off."
If you're not seeing errors reported on screen, you probably did something really dumb like copying ActorDef.lua from _fallback into your theme, which you absolutely should never do.

In general, don't copy code from another theme if you don't understand it. Copying code you don't understand burdens you with problems you can't fix.
silenttype01: Kyzentun is never harsh. He says it how it is.

GENERATION 24: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.

Post #86 · Posted at 2014-08-06 07:12:04pm 9.7 years ago

Offline razorblade
razorblade Avatar Member
1,099 Posts
Not Set
Reg. 2011-03-01


Last updated: 2014-08-06 07:16pm
That's why I hate using somebody's theme that uses other themer's materials as base. Starting from the works of KENP, travs, gene and then passed from generations to generations.

Post #87 · Posted at 2014-08-12 04:34:15am 9.7 years ago

Offline Musashi
Musashi Avatar Member
108 Posts
United States
Reg. 2014-05-03

Full combo flash is nearly ready, but one bothersome thing is still happening. This here's the code:




local pn = ...;
assert(pn);


local Center1Player = PREFSMAN:GetPreference('Center1Player');
local NumPlayers = GAMESTATE:GetNumPlayersEnabled();
local NumSides = GAMESTATE:GetNumSidesJoined();
local pss = STATSMAN:GetCurStageStats():GetPlayerStageStats(pn);
local st = GAMESTATE:GetCurrentStyle():GetStepsType();


local bComboGraphic = 'x2'


local t = Def.ActorFrame {
OffCommand = function(self)
local grade = pss:GetGrade();
if pss:FullComboOfScore('TapNoteScore_W1') or pss:FullComboOfScore('TapNoteScore_W2') or pss:FullComboOfScore('TapNoteScore_W3') then
self:queuecommand("Fullcombo");
end;
end;
};


local function GetPosition(pn)
if Center1Player and NumPlayers == 1 and NumSides == 1 then return SCREEN_CENTER_X; end;
local strPlayer = (NumPlayers == 1) and "OnePlayer" or "TwoPlayers";
local strSide = (NumSides == 1) and "OneSide" or "TwoSides";
return THEME:GetMetric("ScreenGameplay","Player".. ToEnumShortString(pn) .. strPlayer .. strSide .."X");
end;

local function GradationWidth()
if st == "StepsType_Dance_Double" then return (2);
elseif st == "StepsType_Dance_Solo" then return (1.5);
else return (1);
end;
end;

local function DownGradationWidth()
if st == "StepsType_Dance_Double" then return (SCREEN_WIDTH);
elseif st == "StepsType_Dance_Solo" then return (384);
else return (256);
end;
end;

local function TextZoom()
if st == "StepsType_Dance_Double" then return (1.61);
elseif st == "StepsType_Dance_Solo" then return (1.3);
else return (1);
end;
end;

-- FullCombo color base from Default Extended by A.C
local function GetFullComboEffectColor(pss)
if pss:FullComboOfScore('TapNoteScore_W1') then
return color("#ffffff");
elseif pss:FullComboOfScore('TapNoteScore_W2') then
return color("#fafc44");
elseif pss:FullComboOfScore('TapNoteScore_W3') then
return color("#06fd32");
elseif pss:FullComboOfScore('TapNoteScore_W4') then
return color("#00ffff");
else
return color("#ffffff");
end;
end;

-- Ring color
local function GetRingColor(pss)
if pss:FullComboOfScore('TapNoteScore_W1') then
return color("#fff999");
elseif pss:FullComboOfScore('TapNoteScore_W2') then
return color("#fff999");
elseif pss:FullComboOfScore('TapNoteScore_W3') then
return color("#ffffe7");
elseif pss:FullComboOfScore('TapNoteScore_W4') then
return color("#ffffe7");
else
return color("#ffffff");
end;
end;

-- Sound
t[#t+1] = LoadActor("Combo_Splash") .. {
FullcomboCommand=function(self)
self:play();
end;
};

-- Parts
t[#t+1] = Def.ActorFrame{
InitCommand=cmd(x,GetPosition(pn);diffusealpha,0);
FullcomboCommand = function(self)
self:diffusealpha(1);
self:diffuse(GetFullComboEffectColor(pss));
end;

-- Note flash star
Def.ActorFrame{
InitCommand=function(self)
if GAMESTATETonguelayerIsUsingModifier(pn,'reverse') then
self:y(SCREEN_CENTER_Y+152);
else
self:y(SCREEN_CENTER_Y-160);
end;
end;
-- Left
LoadActor("Star") .. {
InitCommand=cmd(blend,Blend.Add);
FullcomboCommand=function(self)
self:diffusealpha(0.5);
self:addx(-32);
self:rotationz(-25);
self:zoomx(0.5);
self:zoomy(1);
self:linear(0.5);
self:zoom(0.3);
self:rotationz(65);
self:linear(0.25);
self:zoom(0);
self:rotationz(155);
end;
};
-- Right
LoadActor("Star") .. {
InitCommand=cmd(blend,Blend.Add);
FullcomboCommand=function(self)
self:diffusealpha(0.5);
self:addx(32);
self:rotationz(35);
self:zoomx(0.5);
self:zoomy(1);
self:linear(0.5);
self:zoom(0.3);
self:rotationz(-55);
self:linear(0.25);
self:zoom(0);
self:rotationz(-145);
end;
};
-- Left2
LoadActor("Star") .. {
InitCommand=cmd(blend,Blend.Add);
FullcomboCommand=function(self)
self:diffusealpha(0.5);
self:addx(-96);
self:rotationz(-60);
self:zoomx(0.5);
self:zoomy(1);
self:linear(0.5);
self:zoom(0.3);
self:rotationz(30);
self:linear(0.25);
self:zoom(0);
self:rotationz(120);
end;
};
-- Right2
LoadActor("Star") .. {
InitCommand=cmd(blend,Blend.Add);
FullcomboCommand=function(self)
self:diffusealpha(0.5);
self:addx(96);
self:rotationz(90);
self:zoomx(0.5);
self:zoomy(1);
self:linear(0.5);
self:zoom(0.3);
self:rotationz(0);
self:linear(0.25);
self:zoom(0);
self:rotationz(-90);
end;
};
-- Left3 Solo and Double
LoadActor("Star") .. {
InitCommand=cmd(blend,Blend.Add);
FullcomboCommand=function(self)
if st == "StepsType_Dance_Double" or st == "StepsType_Dance_Solo" then
self:diffusealpha(0.5);
self:addx(-160);
self:rotationz(-15);
self:zoomx(0.5);
self:zoomy(1);
self:linear(0.5);
self:zoom(0.3);
self:rotationz(75);
self:linear(0.25);
self:zoom(0);
self:rotationz(165);
else
self:visible(false);
end;
end;
};
-- Right3 Solo and Double
LoadActor("Star") .. {
InitCommand=cmd(blend,Blend.Add);
FullcomboCommand=function(self)
if st == "StepsType_Dance_Double" or st == "StepsType_Dance_Solo" then
self:diffusealpha(0.5);
self:addx(160);
self:rotationz(90);
self:zoomx(0.5);
self:zoomy(1);
self:linear(0.5);
self:zoom(0.3);
self:rotationz(0);
self:linear(0.25);
self:zoom(0);
self:rotationz(-90);
else
self:visible(false);
end;
end;
};
-- Left4 Double
LoadActor("Star") .. {
InitCommand=cmd(blend,Blend.Add);
FullcomboCommand=function(self)
if st == "StepsType_Dance_Double" then
self:visible(true);
self:diffusealpha(0.5);
self:addx(-224);
self:rotationz(-60);
self:zoomx(0.5);
self:zoomy(1);
self:linear(0.5);
self:zoom(0.3);
self:rotationz(30);
self:linear(0.25);
self:zoom(0);
self:rotationz(120);
else
self:visible(false);
end;
end;
};
-- Right4 Double
LoadActor("Star") .. {
InitCommand=cmd(blend,Blend.Add);
FullcomboCommand=function(self)
if st == "StepsType_Dance_Double" then
self:diffusealpha(0.5);
self:addx(224);
self:rotationz(35);
self:zoomx(0.5);
self:zoomy(1);
self:linear(0.5);
self:zoom(0.3);
self:rotationz(-55);
self:linear(0.25);
self:zoom(0);
self:rotationz(-145);
else
self:visible(false);
end;
end;
};
};

-- Up gradation
LoadActor("Down") .. {
InitCommand=cmd(vertalign,bottom);
FullcomboCommand=function(self)
if GAMESTATETonguelayerIsUsingModifier(pn,'reverse') then
self:y(SCREEN_BOTTOM);
self:diffusealpha(0.5);
self:zoomx(GradationWidth());
self:zoomy(1);
self:linear(0.25);
self:diffusealpha(0.25);
self:zoomx(GradationWidth()+0.25);
self:zoomy(2);
self:linear(0.25);
self:zoomx(GradationWidth());
self:zoomy(1.5);
self:diffusealpha(0);
else
self:y(SCREEN_TOP);
self:diffusealpha(0.5);
self:zoomx(GradationWidth());
self:zoomy(-1);
self:linear(0.25);
self:diffusealpha(0.25);
self:zoomx(GradationWidth()+0.25);
self:zoomy(-2);
self:linear(0.25);
self:zoomx(GradationWidth());
self:zoomy(-1.5);
self:diffusealpha(0);
end;
end;
};

-- Slim light
Def.ActorFrame{
InitCommand=function(self)
if GAMESTATETonguelayerIsUsingModifier(pn,'reverse') then
self:y(SCREEN_CENTER_Y+152);
else
self:y(SCREEN_CENTER_Y-160);
end;
end;
-- Center
LoadActor("Slim") .. {
FullcomboCommand=function(self)
self:diffusealpha(0.5);
self:zoomx(0);
self:zoomy(0.5);
self:linear(0.25);
self:diffusealpha(0.25);
self:zoomx(1);
self:zoomy(1.75);
self:linear(0.25);
self:zoomx(0);
self:zoomy(0.5);
self:diffusealpha(0);
end;
};
-- Left
LoadActor("Slim") .. {
InitCommand=cmd(addx,-64);
FullcomboCommand=function(self)
self:diffusealpha(0.5);
self:zoomx(0);
self:zoomy(0.5);
self:linear(0.25);
self:diffusealpha(0.25);
self:zoomx(1);
self:zoomy(1.75);
self:linear(0.25);
self:zoomx(0);
self:zoomy(0.5);
self:diffusealpha(0);
end;
};
-- Right
LoadActor("Slim") .. {
InitCommand=cmd(addx,64);
FullcomboCommand=function(self)
self:diffusealpha(0.5);
self:zoomx(0);
self:zoomy(0.5);
self:linear(0.25);
self:diffusealpha(0.25);
self:zoomx(1);
self:zoomy(1.75);
self:linear(0.25);
self:zoomx(0);
self:zoomy(0.5);
self:diffusealpha(0);
end;
};
-- Solo and Double left
LoadActor("Slim") .. {
InitCommand=cmd(addx,-128);
FullcomboCommand=function(self)
if st == "StepsType_Dance_Double" or st == "StepsType_Dance_Solo" then
self:diffusealpha(0.5);
self:zoomx(0);
self:zoomy(0.5);
self:linear(0.25);
self:diffusealpha(0.25);
self:zoomx(1);
self:zoomy(1.75);
self:linear(0.25);
self:zoomx(0);
self:zoomy(0.5);
self:diffusealpha(0);
else
self:visible(false);
end;
end;
};
-- Solo and Double right
LoadActor("Slim") .. {
InitCommand=cmd(addx,128);
FullcomboCommand=function(self)
if st == "StepsType_Dance_Double" or st == "StepsType_Dance_Solo" then
self:diffusealpha(0.5);
self:zoomx(0);
self:zoomy(0.5);
self:linear(0.25);
self:diffusealpha(0.25);
self:zoomx(1);
self:zoomy(1.75);
self:linear(0.25);
self:zoomx(0);
self:zoomy(0.5);
self:diffusealpha(0);
else
self:visible(false);
end;
end;
};
-- Double left
LoadActor("Slim") .. {
InitCommand=cmd(addx,-192);
FullcomboCommand=function(self)
if st == "StepsType_Dance_Double" then
self:diffusealpha(0.5);
self:zoomx(0);
self:zoomy(0.5);
self:linear(0.25);
self:diffusealpha(0.25);
self:zoomx(1);
self:zoomy(1.75);
self:linear(0.25);
self:zoomx(0);
self:zoomy(0.5);
self:diffusealpha(0);
else
self:visible(false);
end;
end;
};
-- Double right
LoadActor("Slim") .. {
InitCommand=cmd(addx,192);
FullcomboCommand=function(self)
if st == "StepsType_Dance_Double" then
self:diffusealpha(0.5);
self:zoomx(0);
self:zoomy(0.5);
self:linear(0.25);
self:diffusealpha(0.25);
self:zoomx(1);
self:zoomy(1.75);
self:linear(0.25);
self:zoomx(0);
self:zoomy(0.5);
self:diffusealpha(0);
else
self:visible(false);
end;
end;
};
};

-- Down gradation
LoadActor("Down") .. {
InitCommand=cmd(vertalign,bottom);
FullcomboCommand=function(self)
if GAMESTATETonguelayerIsUsingModifier(pn,'reverse') then
self:y(SCREEN_TOP);
self:diffusealpha(0);
self:sleep(0.48);
self:diffusealpha(0.5);
self:zoomto(64,0);
self:linear(0.5);
self:zoomto(DownGradationWidth()+52,-480);
self:linear(0.3);
self:diffusealpha(0);
self:zoomto(DownGradationWidth(),-480);
else
self:y(SCREEN_BOTTOM);
self:diffusealpha(0);
self:sleep(0.48);
self:diffusealpha(0.5);
self:zoomto(64,0);
self:linear(0.5);
self:zoomto(DownGradationWidth()+52,480);
self:linear(0.3);
self:diffusealpha(0);
self:zoomto(DownGradationWidth(),480);
end;
end;
};

-- Left gradation
LoadActor("Gradation") .. {
InitCommand=cmd(vertalign,top;horizalign,right);
FullcomboCommand=function(self)
if GAMESTATETonguelayerIsUsingModifier(pn,'reverse') then
self:y(SCREEN_BOTTOM);
self:addx(46);
self:zoomx(0.75);
self:zoomy(-0.5);
self:diffusealpha(0);
self:sleep(0.24);
self:diffusealpha(1);
self:linear(0.24);
self:zoomy(-1);

self:linear(0.5);
self:zoomx(1);
self:addx(-14);
self:linear(0.1);
self:addx(-28);
self:linear(0.2);
self:addx(-GradationWidth()*128-64);
self:diffusealpha(0);
else
self:y(SCREEN_TOP);
self:addx(46);
self:zoomx(0.75);
self:zoomy(0.5);
self:diffusealpha(0);
self:sleep(0.24);
self:diffusealpha(1);
self:linear(0.24);
self:zoomy(1);

self:linear(0.5);
self:zoomx(1);
self:addx(-14);
self:linear(0.1);
self:addx(-28);
self:linear(0.2);
self:addx(-GradationWidth()*128-64);
self:diffusealpha(0);
end;
end;
};

-- Right gradation
LoadActor("Gradation") .. {
InitCommand=cmd(vertalign,top;horizalign,right);
FullcomboCommand=function(self)
if GAMESTATETonguelayerIsUsingModifier(pn,'reverse') then
self:y(SCREEN_BOTTOM);
self:addx(-46);
self:zoomx(-0.75);
self:zoomy(-0.5);
self:diffusealpha(0);
self:sleep(0.24);
self:diffusealpha(1);
self:linear(0.24);
self:zoomy(-1);

self:linear(0.5);
self:zoomx(-1);
self:addx(14);
self:linear(0.1);
self:addx(28);
self:linear(0.2);
self:addx(GradationWidth()*128+64);
self:diffusealpha(0);
else
self:y(SCREEN_TOP);
self:addx(-46);
self:zoomx(-0.75);
self:zoomy(0.5);
self:diffusealpha(0);
self:sleep(0.24);
self:diffusealpha(1);
self:linear(0.24);
self:zoomy(1);

self:linear(0.5);
self:zoomx(-1);
self:addx(14);
self:linear(0.1);
self:addx(28);
self:linear(0.2);
self:addx(GradationWidth()*128+64);
self:diffusealpha(0);
end;
end;
};

-- Double only left gradation2
LoadActor("Gradation") .. {
InitCommand=cmd(horizalign,right);
FullcomboCommand=function(self)
if st == "StepsType_Dance_Double" then
self:y(SCREEN_CENTER_Y);
self:addx(46);
self:diffusealpha(0);
self:zoomx(0.75);
self:sleep(0.98);
self:linear(0.1);
self:diffusealpha(1);
self:zoomx(1);
self:addx(-14);
self:linear(0.1);
self:addx(-28);
self:linear(0.2);
self:addx(-GradationWidth()*128-64);
self:diffusealpha(0);
else
self:visible(false);
end;
end;
};

-- Double only right gradation2
LoadActor("Gradation") .. {
InitCommand=cmd(horizalign,right);
FullcomboCommand=function(self)
if st == "StepsType_Dance_Double" then
self:y(SCREEN_CENTER_Y);
self:addx(-46);
self:diffusealpha(0);
self:zoomx(-0.75);
self:sleep(0.98);
self:linear(0.1);
self:diffusealpha(1);
self:zoomx(-1);
self:addx(14);
self:linear(0.1);
self:addx(28);
self:linear(0.2);
self:addx(GradationWidth()*128+64);
self:diffusealpha(0);
else
self:visible(false);
end;
end;
};

-- Ring star
LoadActor( "Star" ) .. {
InitCommand=function(self)
self:zoom(0);
self:blend(Blend.Add);
if GAMESTATETonguelayerIsUsingModifier(pn,'reverse') then
self:y(SCREEN_CENTER_Y+57);
else
self:y(SCREEN_CENTER_Y-65);
end;
end;
FullcomboCommand=function(self)
self:sleep(0.65);
self:diffusealpha(1);
self:zoomx(2);
self:zoomy(0);
self:linear(0.1);
self:zoomy(2);
self:rotationz(0);
self:linear(0.5);
self:zoom(1.2);
self:diffusealpha(0.4);
self:rotationz(90);
self:linear(0.05);
self:diffusealpha(0);
end;
};


};

-- Ring
t[#t+1] = Def.ActorFrame{
InitCommand=cmd(x,GetPosition(pn);diffusealpha,0);
FullcomboCommand=cmd(diffusealpha,1);
-- Ring star highlight
LoadActor( "SStar" ) .. {
InitCommand=function(self)
self:zoom(0);
self:blend(Blend.Add);
if GAMESTATETonguelayerIsUsingModifier(pn,'reverse') then
self:y(SCREEN_CENTER_Y+57);
else
self:y(SCREEN_CENTER_Y-65);
end;
end;
FullcomboCommand=function(self)
self:diffuse(color("#ffffff"));
self:sleep(0.65);
self:diffusealpha(0.8);
self:zoomx(2);
self:zoomy(0);
self:linear(0.1);
self:zoomy(2);
self:rotationz(0);
self:linear(0.5);
self:zoom(1.2);
self:rotationz(90);
self:diffusealpha(0.4);
self:linear(0.05);
self:diffusealpha(0);
end;
};
-- Ring
LoadActor( "Fullcombo01" ) .. {
InitCommand=function(self)
self:zoom(0);
if GAMESTATETonguelayerIsUsingModifier(pn,'reverse') then
self:y(SCREEN_CENTER_Y+57);
else
self:y(SCREEN_CENTER_Y-65);
end;
end;
FullcomboCommand=function(self)
self:diffuse(GetRingColor(pss));
self:sleep(0.65);
self:zoomx(2);
self:zoomy(0);
self:linear(0.1);
self:zoomy(2);
self:rotationz(0);
self:linear(0.5);
self:zoom(1.2);
self:rotationz(90);
self:linear(0.15);
self:zoomy(0);
self:zoomx(0.5);
self:diffusealpha(0);
end;
};
-- Ring bar
LoadActor( "Fullcombo02" ) .. {
InitCommand=function(self)
self:zoom(0);
if GAMESTATETonguelayerIsUsingModifier(pn,'reverse') then
self:y(SCREEN_CENTER_Y+57);
else
self:y(SCREEN_CENTER_Y-65);
end;
end;
FullcomboCommand=function(self)
self:diffuse(GetRingColor(pss));
self:sleep(0.65);
self:zoomx(4);
self:zoomy(0);
self:linear(0.1);
self:zoomy(4);
self:rotationz(0);
self:linear(0.5);
self:zoom(1.25);
self:rotationz(-90);
self:linear(0.15);
self:zoomy(0);
self:zoomx(0.5);
self:diffusealpha(0);
end;
};
};

-- Star highlight
t[#t+1] = LoadActor("SStar") .. {
InitCommand=cmd(x,GetPosition(pn);diffusealpha,0;blend,Blend.Add);
FullcomboCommand=function(self)
if GAMESTATETonguelayerIsUsingModifier(pn,'reverse') then
self:y(SCREEN_CENTER_Y+152);
self:diffusealpha(0.95);
self:zoomx(0);
self:linear(0.1);
self:zoomx(4);
self:zoomy(1);
self:linear(0.12);
self:zoomx(1);
self:addy(-120);
self:linear(0.36);
self:addy(-360);
else
self:y(SCREEN_CENTER_Y-160);
self:diffusealpha(0.95);
self:zoomx(0);
self:linear(0.1);
self:zoomx(4);
self:zoomy(1);
self:linear(0.12);
self:zoomx(1);
self:addy(120);
self:linear(0.36);
self:addy(360);
end;
end;
};
--[[
-- FullCombo Text
t[#t+1] = Def.Sprite {
InitCommand=function(self)
self:x(GetPosition(pn));
self:diffusealpha(0);
if GAMESTATETonguelayerIsUsingModifier(pn,'reverse') then
self:y(SCREEN_CENTER_Y+57);
else
self:y(SCREEN_CENTER_Y-65);
end;
end;
FullcomboCommand=function(self)
if pss:FullComboOfScore('TapNoteScore_W1') then
self:Load("Text_X2_Marvelous_FullCombo"));

elseif pss:FullComboOfScore('TapNoteScore_W2') then
self:Load("Text_X2_Perfect_FullCombo"));

else self:Load("Text_X2_Great_FullCombo"));
end;
self:sleep(0.6);
self:diffusealpha(1);
self:zoomy(0);
self:linear(0.1);
self:zoom(1);
self:linear(0.5);
self:zoom(1.15);
self:linear(0.05);
self:diffusealpha(0.66);
self:zoomx(1.165);
self:linear(0.1);
self:zoomy(0);
self:zoomx(1.195);
self:diffusealpha(0);
end;
};
--]]


local function FCText(pss)
if pss:FullComboOfScore('TapNoteScore_W1') then
return "Text_X2_Marvelous_FullCombo";
elseif pss:FullComboOfScore('TapNoteScore_W2') then
return "Text_X2_Perfect_FullCombo";
else
return "Text_X2_Great_FullCombo";
end;
end;


if pss:FullComboOfScore('TapNoteScore_W1') then

t[#t+1] = Def.ActorFrame {

LoadActor( "Text_Marvelous_FullCombo" )..{
OnCommand=cmd(diffusealpha,0;x,GetPosition(pn);y,SCREEN_CENTER_Y+57);
-- OffCommand=cmd(linear,2;diffusealpha,0);
FullcomboCommand=cmd(sleep,0.6;diffusealpha,1;zoomy,0;linear,0.1;zoom,1;linear,0.5;zoom,1.15;linear,0.05;diffusealpha,0.66;zoomx,1.165;linear,0.1;zoomy,0;zoomx,1.195;diffusealpha,0)
};
}

elseif pss:FullComboOfScore('TapNoteScore_W2') then

t[#t+1] = Def.ActorFrame {

LoadActor( "Text_Perfect_FullCombo" )..{
OnCommand=cmd(diffusealpha,0;x,GetPosition(pn);y,SCREEN_CENTER_Y+57);
-- OffCommand=cmd(linear,2;diffusealpha,0);
FullcomboCommand=cmd(sleep,0.6;diffusealpha,1;zoomy,0;linear,0.1;zoom,1;linear,0.5;zoom,1.15;linear,0.05;diffusealpha,0.66;zoomx,1.165;linear,0.1;zoomy,0;zoomx,1.195;diffusealpha,0)
};
}

else

t[#t+1] = Def.ActorFrame {

LoadActor( "Text_Great_FullCombo" )..{
OnCommand=cmd(diffusealpha,0;x,GetPosition(pn);y,SCREEN_CENTER_Y+57);
-- OffCommand=cmd(linear,2;diffusealpha,0);
FullcomboCommand=cmd(sleep,0.6;diffusealpha,1;zoomy,0;linear,0.1;zoom,1;linear,0.5;zoom,1.15;linear,0.05;diffusealpha,0.66;zoomx,1.165;linear,0.1;zoomy,0;zoomx,1.195;diffusealpha,0)
};
}

end;

-- local t = Def.ActorFrame {};

t[#t+1] = Def.ActorFrame {

LoadActor( "Testpic" )..{
OnCommand=cmd(Center;addy,70);
OffCommand=cmd(linear,2;diffusealpha,0);

};
}


return t;



Here's what bothers me: I have many items that use the type of Full Combo as a condition (Full Marvelous, Perfect, or regular/Great), such as the color of the graphics, and those work fine, but the last piece, for the Text Graphic, always returns the else clause, for a regular Full Combo, even when a Full Perfect or Full Marvelous combo occurs. Yet both the color and the text graphic use

if pss:FullComboOfScore('TapNoteScore_W1') then

as their conditional. Anyone know why?

Post #88 · Posted at 2014-08-12 04:44:47am 9.7 years ago

Offline Kyzentun
Kyzentun Avatar Member
3,209 Posts
United States
Reg. 2008-02-20

"I'm honestly pissed off."
I'm not going to read through the 847 lines of code you pasted. If you want help, you'll have to narrow down your problem better than that, at least to show that you understand the code you're talking about.

Let's start by looking at what Lua.xml says about "FullComboOfScore". It's under the "PlayerStageStats" section.
Quote
bool FullComboOfScore( TapNoteScore tns )
Returns true if a full combo (tns and up) was obtained.
Okay, now, what does "TapNoteScore_W1" mean? The TapNoteScore enum values are at the bottom of Lua.xml.
Quote
'TapNoteScore_None': 0
'TapNoteScore_HitMine': 1
'TapNoteScore_AvoidMine': 2
'TapNoteScore_CheckpointMiss': 3
'TapNoteScore_Miss': 4
'TapNoteScore_W5': 5
'TapNoteScore_W4': 6
'TapNoteScore_W3': 7
'TapNoteScore_W2': 8
'TapNoteScore_W1': 9
'TapNoteScore_CheckpointHit': 10
So, there are various TapNoteScore values, used to indicate how good the score on a tap was (among other things).
So FullComboOfScore looks to see if only taps of the given value or better were scored.
silenttype01: Kyzentun is never harsh. He says it how it is.

GENERATION 24: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.

Post #89 · Posted at 2014-08-18 04:04:33am 9.6 years ago

Offline Musashi
Musashi Avatar Member
108 Posts
United States
Reg. 2014-05-03

I'll narrow it down:

This code always returns text reading "Full Combo" even when a Perfect or Marvelous Full Combo occurs. The images for Text_Marvelous_FullCombo and Text_Perfect_FullCombo do say "Marvelous Full Combo" and "Perfect Full Combo".

local function GetFCText(pss)
if pss:FullComboOfScore('TapNoteScore_W1') then
return Def.ActorFrame {

LoadActor( "Text_Marvelous_FullCombo" )..{
OnCommand=cmd(diffusealpha,0;x,GetPosition(pn);y,SCREEN_CENTER_Y+57);
-- OffCommand=cmd(linear,2;diffusealpha,0);
FullcomboCommand=cmd(sleep,0.6;diffusealpha,1;zoomy,0;linear,0.1;zoom,1;linear,0.5;zoom,1.15;linear,0.05;diffusealpha,0.66;zoomx,1.165;linear,0.1;zoomy,0;zoomx,1.195;diffusealpha,0)
};
}
elseif pss:FullComboOfScore('TapNoteScore_W2') then
return Def.ActorFrame {

LoadActor( "Text_Perfect_FullCombo" )..{
OnCommand=cmd(diffusealpha,0;x,GetPosition(pn);y,SCREEN_CENTER_Y+57);
-- OffCommand=cmd(linear,2;diffusealpha,0);
FullcomboCommand=cmd(sleep,0.6;diffusealpha,1;zoomy,0;linear,0.1;zoom,1;linear,0.5;zoom,1.15;linear,0.05;diffusealpha,0.66;zoomx,1.165;linear,0.1;zoomy,0;zoomx,1.195;diffusealpha,0)
};
}
elseif pss:FullComboOfScore('TapNoteScore_W3') then
return Def.ActorFrame {

LoadActor( "Text_Great_FullCombo" )..{
OnCommand=cmd(diffusealpha,0;x,GetPosition(pn);y,SCREEN_CENTER_Y+57);
-- OffCommand=cmd(linear,2;diffusealpha,0);
FullcomboCommand=cmd(sleep,0.6;diffusealpha,1;zoomy,0;linear,0.1;zoom,1;linear,0.5;zoom,1.15;linear,0.05;diffusealpha,0.66;zoomx,1.165;linear,0.1;zoomy,0;zoomx,1.195;diffusealpha,0)
};
}
else
return Def.ActorFrame {

LoadActor( "Text_Great_FullCombo" )..{
OnCommand=cmd(diffusealpha,0;x,GetPosition(pn);y,SCREEN_CENTER_Y+57);
-- OffCommand=cmd(linear,2;diffusealpha,0);
FullcomboCommand=cmd(sleep,0.6;diffusealpha,1;zoomy,0;linear,0.1;zoom,1;linear,0.5;zoom,1.15;linear,0.05;diffusealpha,0.66;zoomx,1.165;linear,0.1;zoomy,0;zoomx,1.195;diffusealpha,0)
};
}
end;
end;

t[#t+1] = GetFCText(pss)


By contrast, this code below gives white graphics for MFCs, Yellow for PFCs, and Green for regular FCs:


local function GetFullComboEffectColor(pss)
if pss:FullComboOfScore('TapNoteScore_W1') then
return color("#ffffff");
elseif pss:FullComboOfScore('TapNoteScore_W2') then
return color("#fafc44");
elseif pss:FullComboOfScore('TapNoteScore_W3') then
return color("#06fd32");
elseif pss:FullComboOfScore('TapNoteScore_W4') then
return color("#00ffff");
else
return color("#ffffff");
end;
end;


The logic seems the same, but when I write it for returning images it always returns False for the TapNoteScore functions.

Post #90 · Posted at 2014-08-18 04:11:24am 9.6 years ago

Offline Kyzentun
Kyzentun Avatar Member
3,209 Posts
United States
Reg. 2008-02-20

"I'm honestly pissed off."
If you're running that first chunk of code while the gameplay screen is being created, then that's your problem. You're checking what taps the player has hit before they've even hit anything.
silenttype01: Kyzentun is never harsh. He says it how it is.

GENERATION 24: The first time you see this, copy it into your sig on any forum and add 1 to the generation. Social experiment.

Post #91 · Posted at 2014-08-29 09:43:23pm 9.6 years ago

Offline Musashi
Musashi Avatar Member
108 Posts
United States
Reg. 2014-05-03


Last updated: 2014-08-30 01:43am
Quote: Kyzentun
If you're running that first chunk of code while the gameplay screen is being created, then that's your problem. You're checking what taps the player has hit before they've even hit anything.

That would make sense, and it gave me an idea too;

Within this LUA, FullComboCommand is defined, and appears to trigger after the final step of the song if a Full Combo occurred. I'm now thinking this part might call for a defined MFCCommand and PFCCommand.

Edit:
My ideas worked; I defined Actor Commands MFCCommand, PFCCommand, and GFCCommand, and now the correct Full Combo Text appears. With that, I am finally all done with the FC flash.

I also have a working Stage Clear transition; for awhile it would skip that animation and head right to Evaluation after the last step; Having certain InitCommands for a particular image seemed to be the cause. My current version of the Stage Failed animation is doing the same thing right now, but I think I can fix it.

Still to come:

Player/Stage options and related screens. I'm looking into a way to change the Options screen such that only the currently selected option from each category is visible, rather than all the selectable choices being shown in a list. I'm also looking to add my own cursors.

Setting the font for the "Press Start" message

Adding graphics to the title screen, like a different screen cap for each menu choice. I'm hoping I can apply the same logic I used in the Select Style and Play Mode screens for this

Build a Ranking/High Scores screen.

Add Danger graphics, such as a red flash in the Lifebar/Stream display, and an image that says "DANGER"

Beyond that, I'll have some cleanup to take care of with some of the graphics and metrics, but this theme could be ready for sharing soon. As always, thanks for the knowledge, and great job all around!

8/29/2014 Post:
I'm looking to build menu screens, but so far I can't seem to find a metric or command that changes line spacing for the menus (like the player and song options or the game settings). I'm also curious about a setting that determines how many rows in a menu are shown at a time. Edit: Found NumItemsShown within ScreenPlayerOptions. Now I just need a SpacingY type metric

Edit again: For spacing, I needed a RowPositionTransformFunction with a self:y command. With this, menus are coming along great!
Register Log In Back To Forums

0 User(s) Viewing This Thread (Past 15 Minutes)

©2006-2024 Zenius -I- vanisher.com -5th style- IIPrivacy Policy
Web Server: 2% · Database: 4% · Server Time: 2024-04-23 07:12:46
This page took 0.01 seconds to execute.
Theme: starlight · Language: englishuk
Reset Theme & Language