Results 1 to 3 of 3
  1. #1

    Default Slight theme modification

    I have a problem.

    There is a fantastic pump theme on sm5, Pump Delta - it is called. Here is the siteluizsan.zxq.net/theme/

    I have figured out some moment of sm5 theming, lua programming and read references. My goal is to add "LD RD LD RD LD RD" code to open settings screen.

    Currently, the "/" (so "Select") opens options screen for 1 player in overlay and so another for player 2. Can you help me with some advice? In skype, facebook or icq?

    I have modifed code section, so

    Code:
    [ScreenSelectMusic]
    
    SampleMusicFallbackFadeInSeconds=0.3
    SampleMusicDelay=0.5
    SampleMusicDelayInit=0.2
    
    TimerOnCommand=visible,true;draworder,101;
    TimerX=SCREEN_CENTER_X+150
    TimerY=SCREEN_TOP+32
    
    ShowHeader=false
    ShowFooter=true
    
    BannerOnCommand=visible,false
    #
    MusicWheelX=SCREEN_CENTER_X
    MusicWheelY=SCREEN_CENTER_Y
    MusicWheelOnCommand=fov,60;vanishpoint,SCREEN_CENTER_X,SCREEN_CENTER_Y+90;zoom,0.9;shadowlength,1;horizAlign,center;addx,SCREEN_CENTER_X;decelerate,0.35;addx,-SCREEN_CENTER_X
    MusicWheelOffCommand=
    #
    ShowSongTime=true
    SongTimeX=SCREEN_CENTER_X+90
    SongTimeY=SCREEN_CENTER_Y+20
    SongTimeOnCommand=diffusealpha,0;horizalign,right;draworder,100;zoom,0.6;strokecolor,Color("Outline");shadowlength,1;sleep,0.3;linear,0.8;diffusealpha,1
    SongTimeOffCommand=bouncebegin,0.15;zoom,0;diffusealpha,0;
    SongTimeResetCommand=diffuse,Color("White")
    SongTimeAutogenCommand=diffuse,Color("Green");
    SongTimeLongCommand=diffuse,Color("Yellow");diffusebottomedge,Color("Orange");
    SongTimeMarathonCommand=diffuse,color("0.2,1,0.7,1");diffusebottomedge,Color("Green");
    #
    ShowSortOrder=true
    SortOrderX=SCREEN_CENTER_X
    SortOrderY=SCREEN_CENTER_Y+20
    SortOrderOnCommand=uppercase,true;draworder,101;strokecolor,Color("Outline");zoom,0.45;shadowlenght,1
    SortOrderSortCommand=finishtweening;zoom,0.45*1.25;diffuse,Color("Yellow");diffusebottomedge,Color("Orange");decelerate,0.5;zoom,0.45;diffuse,Color("White");
    SortOrderOffCommand=bouncebegin,0.15;zoomy,0;
    #
    ShowBPMDisplay=true
    BPMDisplayX=SCREEN_CENTER_X-88
    BPMDisplayY=SCREEN_CENTER_Y+20
    BPMDisplayOnCommand=diffusealpha,0;maxwidth,100;shadowlength,1;zoom,0.6;draworder,100;finishtweening;horizalign,left;strokecolor,Color("Outline");sleep,0.3;linear,0.8;diffusealpha,1
    BPMDisplayOffCommand=bouncebegin,0.15;zoomx,0;
    #
    PaneDisplayP1X=SCREEN_CENTER_X-327
    PaneDisplayP1Y=SCREEN_CENTER_Y+135
    PaneDisplayP2X=SCREEN_CENTER_X+197
    PaneDisplayP2Y=SCREEN_CENTER_Y+135
    #
    TimerSeconds=90
    SampleMusicLoops=false
    SampleMusicFallbackFadeInSeconds=2
    
    PreviousSongButton=PrevSong()
    NextSongButton=NextSong()
    
    ChangeStepsWithGameButtons=GAMESTATE:GetCurrentGame():GetName() ~= "pump"
    
    PreviousDifficultyButton=PrevDiff()
    NextDifficultyButton=NextDiff()
    
    
    TwoPartSelection=true
    TwoPartConfirmsOnly=GAMESTATE:GetCurrentGame():GetName() ~= "pump"
    TwoPartTimerSeconds=-1
    SelectMenuChangesDifficulty=false
    UsePlayerSelectMenu=false
    SelectMenuAvailable=false
    OptionsListTimeout=0.1
    UsePlayerSelectMenu=false
    OptionsMenuAvailable=false
    UseOptionsList=true
    
    OptionsListP1OnCommand=x,SCREEN_CENTER_X-230;y,SCREEN_CENTER_Y-70;draworder,100;
    OptionsListP2OnCommand=x,SCREEN_CENTER_X+230;y,SCREEN_CENTER_Y-70;draworder,100;
    
    CodeNames="SpeedUp,SpeedDown,SpeedHalfUp,SpeedHalfDown,SpeedQuarterUp,SpeedQuarterDown,GameLevelUp,GameLevelDown,ShowOptionsMenu"
    CodeSpeedUp="UpLeft,UpRight,UpLeft,UpRight,Center"
    CodeSpeedDown="UpRight,UpLeft,UpRight,UpLeft,Center"
    CodeSpeedHalfUp="DownLeft,DownRight,DownLeft,DownRight,Center"
    CodeSpeedHalfDown="DownRight,DownLeft,DownRight,DownLeft,Center"
    CodeSpeedQuarterUp="UpLeft,UpRight,DownLeft,DownRight,Center"
    CodeSpeedQuarterDown="UpRight,UpLeft,DownRight,DownLeft,Center"
    CodeGameLevelUp="UpLeft,UpLeft,UpRight,UpRight,DownLeft,DownLeft,DownRight,DownRight,Center"
    CodeGameLevelDown="DownRight,DownRight,DownLeft,DownLeft,UpRight,UpRight,UpLeft,UpLeft,Center"
    CodeShowOptionsMenu="DownLeft,DownRight,DownLeft,DownRight,DownLeft,DownRight"
    In last string a addied a custom code CodeShowOptionsMenu

    In metrics in is also OptionsList, OptionsListP1 and OptionsListP2 definitions.

  2. #2

    Default

    So in BGAnimations/ScreenSelectMusic decorations/default.lua i addied in the end of code detector actor

    Code:
    t[#t+1] = LoadActor(THEME:GetPathS("","EX_Confirm"))..{
    CodeMessageCommand = function(self, params)
    	if params.PlayerNumber == PLAYER_2 then
    		--SCREENMAN:SystemMessage(GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsString("ModsLevel_Preferred"));
    		--SCREENMAN:SystemMessage(GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3]);
    		--=============================================================
    		if params.Name == 'SpeedUp' then
    			self:play()
    	
    			local P2State = GAMESTATE:GetPlayerState(PLAYER_2);
    			local P2Options = P2State:GetPlayerOptionsString("ModsLevel_Preferred");
    			local Speed = (P2State:GetCurrentPlayerOptions():GetXMod()+1).."x";
    		
    			if Speed == nil then
    				Speed = "1x";
    			end
    		
    			local XMod = P2State:GetCurrentPlayerOptions():GetXMod()
    			if XMod >= 7.25 then
    				Speed = "0.5x";
    			end
    			
    			if GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3] == nil or 
    			GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3] == "" then
    				P2State:SetPlayerOptions("ModsLevel_Preferred", P2Options..","..Speed..",default");
    			else
    				P2State:SetPlayerOptions("ModsLevel_Preferred", P2Options..","..Speed);
    			end
    			
    		end
    		--=============================================================
    		if params.Name == 'SpeedDown' then
    			self:play()
    			
    			local P2State = GAMESTATE:GetPlayerState(PLAYER_2);
    			local P2Options = P2State:GetPlayerOptionsString("ModsLevel_Preferred");
    			local Speed = (P2State:GetCurrentPlayerOptions():GetXMod()-1).."x";
    		
    			if Speed == nil then
    				Speed = "1x";
    			end
    		
    			local XMod = P2State:GetCurrentPlayerOptions():GetXMod()
    			if XMod <= 1.25 then
    				Speed = "8x";
    			end
    		
    			if GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3] == nil or 
    			GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3] == "" then
    				P2State:SetPlayerOptions("ModsLevel_Preferred", P2Options..","..Speed..",default");
    			else
    				P2State:SetPlayerOptions("ModsLevel_Preferred", P2Options..","..Speed);
    			end
    			
    		end
    		--=============================================================
    		if params.Name == 'SpeedHalfUp' then
    			self:play()
    			
    			local P2State = GAMESTATE:GetPlayerState(PLAYER_2);
    			local P2Options = P2State:GetPlayerOptionsString("ModsLevel_Preferred");
    			local Speed = (P2State:GetCurrentPlayerOptions():GetXMod()+0.5).."x";
    
    			if Speed == nil then
    				Speed = "1x";
    			end
    		
    			local XMod = P2State:GetCurrentPlayerOptions():GetXMod()
    			if XMod >= 7.75 then
    				Speed = "0.5x";
    			end
    			
    			if GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3] == nil or 
    			GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3] == "" then
    				P2State:SetPlayerOptions("ModsLevel_Preferred", P2Options..","..Speed..",default");
    			else
    				P2State:SetPlayerOptions("ModsLevel_Preferred", P2Options..","..Speed);
    			end
    			
    		end
    		--=============================================================
    		if params.Name == 'SpeedHalfDown' then
    			self:play()
    			
    			local P2State = GAMESTATE:GetPlayerState(PLAYER_2);
    			local P2Options = P2State:GetPlayerOptionsString("ModsLevel_Preferred");
    			local Speed = (P2State:GetCurrentPlayerOptions():GetXMod()-0.5).."x";
    
    			if Speed == nil then
    				Speed = "1x";
    			end
    		
    			local XMod = P2State:GetCurrentPlayerOptions():GetXMod()
    			if XMod <= 1.25 then
    				Speed = "8x";
    			end
    			
    			
    			if GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3] == nil or 
    			GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3] == "" then
    				P2State:SetPlayerOptions("ModsLevel_Preferred", P2Options..","..Speed..",default");
    			else
    				P2State:SetPlayerOptions("ModsLevel_Preferred", P2Options..","..Speed);
    			end
    			
    		end
    		--=============================================================
    		if params.Name == 'SpeedQuarterUp' then
    			self:play()
    			
    			local P2State = GAMESTATE:GetPlayerState(PLAYER_2);
    			local P2Options = P2State:GetPlayerOptionsString("ModsLevel_Preferred");
    			local Speed = (P2State:GetCurrentPlayerOptions():GetXMod()+0.25).."x";
    
    			if Speed == nil then
    				Speed = "1x";
    			end
    		
    			local XMod = P2State:GetCurrentPlayerOptions():GetXMod()
    			if XMod >= 8 then
    				Speed = "0.5x";
    			end
    			
    			
    			if GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3] == nil or 
    			GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3] == "" then
    				P2State:SetPlayerOptions("ModsLevel_Preferred", P2Options..","..Speed..",default");
    			else
    				P2State:SetPlayerOptions("ModsLevel_Preferred", P2Options..","..Speed);
    			end
    			
    		end
    		--=============================================================
    		if params.Name == 'SpeedQuarterDown' then
    			self:play()
    			
    			local P2State = GAMESTATE:GetPlayerState(PLAYER_2);
    			local P2Options = P2State:GetPlayerOptionsString("ModsLevel_Preferred");
    			local Speed = (P2State:GetCurrentPlayerOptions():GetXMod()-0.25).."x";
    
    			if Speed == nil then
    				Speed = "1x";
    			end
    		
    			local XMod = P2State:GetCurrentPlayerOptions():GetXMod()
    			if XMod <= 0.5 then
    				Speed = "8x";
    			end
    			
    			
    			if GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3] == nil or 
    			GAMESTATE:GetPlayerState(PLAYER_2):GetPlayerOptionsArray("ModsLevel_Preferred")[3] == "" then
    				P2State:SetPlayerOptions("ModsLevel_Preferred", P2Options..","..Speed..",default");
    			else
    				P2State:SetPlayerOptions("ModsLevel_Preferred", P2Options..","..Speed);
    			end
    			
    		end
    		--=============================================================
    
    		if params.Name == 'ShowOptionsMenu' then
    			self:play()
    		end
    
    		--=============================================================			
    		
    		
    		
    		
    	end
    end
    }
    The last section on 'ShowOptionsMenu'. So NOW, when i press LD RD LD RD LD RD ingame, the EX_Confirm sound plays (self:play() runs) so code is working. But further is worst :-(

    There is an actor, called oplist.

    Code:
    t[#t+1] = LoadActor("oplist") ..{
    InitCommand=cmd(draworder,100;diffuse,color("1,0.95,0.9,0");zoom,0.675;Center;diffusealpha,0;blend,Blend.Add);
    		
    		OptionsListOpenedMessageCommand=function(self,params)
    			if params.Player == pn then
    				if pn == PLAYER_1 then
    					self:zoomx(0.675);
    					
    				elseif pn == PLAYER_2 then
    					self:zoomx(-0.675);
    							
    				end
    				
    				self:playcommand("Open");
    			end
    		end;
    		
    
    		OpenCommand=cmd(stoptweening;decelerate,0.3;diffusealpha,1;);
    		OptionsListClosedMessageCommand=function(self,params)
    			if params.Player == pn then
    
    				self:stoptweening();
    				self:accelerate(0.3);
    				self:diffusealpha(0);
    				
    			end
    		end;
    
    }
    It response for message OptionsListOpenedMessage, but i try to find out, where this message have broadcasted and i can not :-(

    So, as far, as i can, i done this:

    Code:
    	self:play()
    			params.Player = PLAYER_1
    			SCREENMAN:GetTopScreen("OptionsListP1")
    			MESSAGEMAN:Broadcast("OptionsListOpenedMessage", params)
    It is creates a screen! But there is a transparent screen. It is just blocks input and dont draw anything. I waste so many time, but can't figure out, how show options screen, like it shows on "/" button. If there is another, who can help - it will be fantastic!

    There is very uncomfortable to walk for a keyboard from dance pad for only press options screen button :-( with adding LD RD LD RD LD RD code - the control of sm will be full from dance pad.

    So there is a many quastions, like what is this:
    Code:
    OptionsListP1OnCommand=x,SCREEN_CENTER_X-230;y,SCREEN_CENTER_Y-70;draworder,100;
    OptionsListP2OnCommand=x,SCREEN_CENTER_X+230;y,SCREEN_CENTER_Y-70;draworder,100;
    And when it plays?

    Why i can't find OptionsListOpenedMessageCommand broadcater?

    etc. I fully understand, that i can REALLY doing something WRONG. I will be very happy, if somebody will show me a normal documentation of default clases, syntax and meaning of metrics files etc. I can abstractly understand, what is the Actor, Screen, what is the global message system, but practice knocks me up.

    Sorry for my broken english.

  3. #3
    Super Moderator
    Join Date
    Nov 2006
    Posts
    3,490

    Default

    Just have your ShowOptionsMenu thing call SCREENMAN:GetTopScreen():OpenOptionsList(pn). pn is the player you want to open the list for (PLAYER_1 or PLAYER_2).

Similar Threads

  1. A slight problem...
    By [+] in forum Input, Adapter, and Controller questions
    Replies: 0
    Last Post: 01-21-2010, 01:54 PM
  2. Modification
    By akstylish in forum StepMania (the program) Wish list
    Replies: 1
    Last Post: 01-09-2009, 02:12 AM
  3. Two theme modification questions
    By Gemi in forum Add-on Help/Questions/Requests
    Replies: 5
    Last Post: 10-12-2008, 01:56 PM
  4. A Slight Dilemma...
    By shadowAKA086 in forum Song and Course questions
    Replies: 33
    Last Post: 11-13-2007, 06:29 AM
  5. Slight delay with EMS dualshooter
    By dieorbuy in forum Input, Adapter, and Controller questions
    Replies: 1
    Last Post: 08-02-2007, 02:49 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Thanks to

SourceForge.net Logo