<?php
getlistoflayouts($Filter,$Sort,$TypeSort);
?>
<?php
# UserToplist
include( "./AutoLayoutChanger.lpr");
?>
<?php
$LayoutFolder = ""; #LFSLapper must be on the same machine as the LFS Server.
#Set Path to the layoutfolder of your LFSServer
#$LayoutFolder = ""; #Example : C:\LFS_0.6R\data\layout
#The layouts in your Layoutfolder must also exist in the default Layoutfolder of your LFS directory.
CatchEvent OnLapperStart()
GlobalVar $Timelimit; $Timelimit = 90; #This is the time in minutes
GlobalVar $ElapsedTime; $ElapsedTime = 0; #Reset Value to (re)start the timer.
GlobalVar $NrOfLayout; $NrOfLayout = 1; #Reset Value to start from the top of the layout list.
#ss mm hh dayOfWeek dd MM YYYY
RegisterScheduleAction( "0 * * * * * *", RSA_Time ); #Execute this action each minute
EndCatchEvent
Sub RSA_Time() # Lapper Event
$ElapsedTime = $ElapsedTime + 1;
#IF $ElapsedTime is bigger or equal than the timelimit
#Reset $ElapsedTime and goto Load layout sub
IF ($ElapsedTime >= $Timelimit) THEN
$ElapsedTime = 0;
LoadLayout();
ENDIF
EndSub
Sub LoadLayout()
#The vars below are needed to retreive the layout from the layoutfolder
$Filter = "";
$Sort = "LAYOUTNAME";
$TypeSort = "ASC";
#Try to retreive the layouts from the layoutfolder you have set above
$layoutlist = getlistoflayouts($Filter,$Sort,$TypeSort);
#Get numberoflayouts from the current track
$MaxNumberOfLayouts = $layoutlist["NumberOfLayouts"];
#Load the layout
privmsg("Loading Layout:".$layoutlist[$NrOfLayout,"LayoutName"]);
cmdLFS("/axload ".$layoutlist[$NrOfLayout,"LayoutName"]);
#Set numberoflayout for the next action
$NrOfLayout = $NrOfLayout + 1;
#IF $NrOfLayout is bigger or equal than the number of layouts in your layoutfolder
#Reset $NrOfLayout
IF ($NrOfLayout >= $MaxNumberOfLayouts) THEN
$NrOfLayout = 1;
ENDIF
EndSub
?>
=================================================
Updates:
=================================================
01: Add/Removeobject: Non-floating input values will now be converted into floating values
02: Lapper no longer returns $userName converted to lowercase format
03: UserGroupToFile no longer converts usernames to lowercase format
=================================================
Updates:
=================================================
01: It is now possible to not allow AI drivers to join race. MANY THANKS TO LakynVonLegendaus
####################
#Disable AI drivers#
####################
# Enable (1) or disable (-1) $DisableAI option
# If enabled, LFS will not allow AI drivers to join race (/ai) and all AI drives that are already on
track will be spectated on Lapper start/reload
$DisableAI = -1;
02: Add/Removeobject: Floating values for X / Y / Z axis are now possible
ExampleCode:
GlobalVar $GateOpen; $GateOpen = "19.38:-654.38:0.75:208:175:-70";
GlobalVar $GateClosed; $GateClosed = "21.38:-654.38:0.75:5:174:-70";
=================================================
Fixes:
=================================================
01: Add/Removeobject: Heading value wasnt calculated correctly. And negative values werent possible.
=================================================
New:
=================================================
01: New Lappervar: 'Lapperstate'
-Check which state your lapper is. Stable or experimental etc
=================================================
Updates:
=================================================
01: Update TrackList.cfg . Thanks Sinanju :)
02: Event OnObjectInfo($userName,$NumO,$Action,$X,$Y,$Z,$Type,$InDex,$Heading) # Player event
//Added new value for $Action
//Get GroundLevel ZByte.
=================================================
Fix:
=================================================
01: (Priv/Host)Delayedcommand: Cannot be executed when settime is not equal with the current time.
The Delayedcommand task stays in the list and will never be executed.
Continues loops could hang. And had to be resetted manually.
<?php
$ExamplePath = "C:\Users\Danny\Desktop\Testfile.txt";
IF (FileExist( $ExamplePath ) == 1) THEN
privmsg("File Exist");
ELSE
privmsg("File does not Exist");
ENDIF
?>
<?php
###################################################
#Example CODE
###################################################
### Command ###
CASE "!fl":
FileList();
BREAK;
### Subcall ###
Sub FileList()
$UserName = getCurrentPlayerVar( "UserName" );
$Folder = "C:\Users\Danny\Desktop\CruiseFolder";
$ListOfFiles = getlistoffiles($Folder);
$FileListButClose = "";
$RunLoop = "TRUE";
$FileNumber = 1;
$initTop = 40; #Startheight
$P_H = 5; #Height of button
$P_T = $initTop + ($P_H);
#================================================
#Background/Title/CloseButton/Filter
#================================================
openPrivButton("FileList_bgd",39,$initTop-8,108,110,10,-1,16,"");
openPrivButton("FileList_title",40,$initTop-7,106,6,10,-1,160,"^7List of Files(".$ListOfFiles["NumberOfFiles"].")");
openPrivButton("FileListFolder_title",40,$initTop-7,106,6,10,-1,64,"^7".$Folder);
openPrivButton("FileListFNUM_title",40,$initTop-1,6,5,10,-1,32,"^6Nr");
openPrivButton("FileListFNAME_title",46,$initTop-1,40,5,10,-1,32,"^6FileName");
openPrivButton("FileListFCREATE_title",86,$initTop-1,20,5,10,-1,32,"^6CreationDate");
openPrivButton("FileListFMOD_title",106,$initTop-1,20,5,10,-1,32,"^6ModificationDate");
openPrivButton("FileListFSIZE_title",126,$initTop-1,20,5,10,-1,32,"^6FileSize");
openPrivButton("FileList_close",40,$initTop+95,106,6,10,-1,32,"^3Close List",CloseFileList);
WHILE ($RunLoop == "TRUE")
IF ($ListOfFiles[$FileNumber,"FileName"] != "") THEN
$colnumber = $ListOfFiles[$FileNumber,"FileNumber"];
$colname = $ListOfFiles[$FileNumber,"FileName"];
$colcreationdate = $ListOfFiles[$FileNumber,"FileCreated"];
$colmodifydate = $ListOfFiles[$FileNumber,"FileModified"];
$colsize = $ListOfFiles[$FileNumber,"FileSize"];
openPrivButton("colpos_".$FileNumber,40, $P_T, 6, $P_H, $P_H, -1, 16 | ISB_C2 | ISB_C4 , $colnumber);
openPrivButton("colfilename_".$FileNumber, 46, $P_T, 40, $P_H, $P_H, -1, 16 | ISB_LEFT, "^7".$colname);
openPrivButton("colcreationdate_".$FileNumber, 86, $P_T, 20, $P_H, $P_H, -1, 16, "^0" .$colcreationdate . "");
openPrivButton("colmodifydate_".$FileNumber, 106, $P_T, 20, $P_H, $P_H, -1, 16, "^0" .$colmodifydate . "");
openPrivButton("colsize_".$FileNumber, 126, $P_T, 20, $P_H, $P_H, -1, 16, "^0" .$colsize . " Bytes");
$P_T = $P_T + 5;
$FileListButClose = $FileListButClose . "&colpos_".$FileNumber."&colfilename_".$FileNumber."&colmodifydate_".$FileNumber."&colcreationdate_".$FileNumber."&colsize_".$FileNumber;
SetPlayerVar($UserName, FileListClose, $FileListButClose);
$FileNumber = $FileNumber + 1;
ELSE
$RunLoop = "FALSE";
ENDIF
ENDWHILE
EndSub
?>
<?php
$tobesplit = "one,two,three";
$splits = SplitToArray( $tobesplit,"," );
########################################################
//Result on screen with a single line
WriteLine( "The result for pos 1 is " . $splits[1] ); #Displayed "one" in command window
WriteLine( "The result for pos 2 is " . $splits[2] ); #Displayed "two" in command window
WriteLine( "The result for pos 3 is " . $splits[3] ); #Displayed "three" in command window
########################################################
########################################################
//Display results with a FOREACH loop
FOREACH( $val IN $splits)
WriteLine( "Pos = " . $val["value"]);
ENDFOREACH
#Result on screen
Val = one
Val = two
Val = Three
########################################################
########################################################
//Display results with a FOREACH loop
$i = 1;
WHILE($i < 4)
WriteLine( "Pos ".$i."=" . $splits[$i]);
$i=$i+1; #Count up
ENDWHILE
Results that will be displayed in Command window
Pos 1 = one
Pos 2 = two
Pos 3 = Three
########################################################
########################################################
//Display results with a FOR loop
FOR($i=1;$i<4;$i=$i+1)
WriteLine( "Pos ".$i."=" . $splits[$i]);
ENDFOR
Results that will be displayed in Command window
Pos 1 = one
Pos 2 = two
Pos 3 = Three
########################################################
?>
<?php
##########################################################################################
#Action on Event when a players changed interface mode
##########################################################################################
/*
#### $Mode ####
NORMAL, // 0 - not in a special mode
OPTIONS, // 1
HOST_OPTIONS, // 2
GARAGE, // 3
CAR_SELECT, // 4
TRACK_SELECT, // 5
SHIFTU, // 6 - free view mode
NUM
#### $SubMode : When a player edit a Object ####
PLAIN, // 0 no buttons displayed
BUTTONS, // 1 buttons displayed (not editing)
EDIT_CHALK, // 4
EDIT_CONES, // 5
EDIT_TYRES, // 6
EDIT_MARKERS, // 7
EDIT_OTHER, // 8
EDIT_CONCRETE, // 9
EDIT_CONTROL, // 10
EDIT_MARSH, // 11
#### $SelObject: When $SubMode = 11 (EDIT_MARSH) ####
MARSH_IS_CP = 252; // insim checkpoint
MARSH_IS_AREA = 253; // insim circle
MARSH_MARSHALL = 254; // restricted area
MARSH_ROUTE = 255; // route checker
*/
Event OnInterfaceMode($userName,$Mode,$SubMode,$SelObject,$Time) # Player event
/*
privmsg("UserName: ".$userName);
privmsg("Mode: ".$Mode);
privmsg("SubMode: ".$SubMode);
privmsg("Selected Object: ".$SelObject);
privmsg("Time: ".$Time);
*/
EndEvent
?>
=================================================
New:
=================================================
01: New Function: CarSwitches(); //More info in Docs/CarSwitches
-Set switches of your car lights,horn,siren,flash,signals
NOTE: You must be a host to enable this function.
02: New Lapperoption: DebugSettings , in LFSLapper.LPR
When setting one of these options below, it will displayed the executed subs/events/Loops in your Lapper console.
$DisplaySubs = 0; #Player created subs
$DisplayLoops = 0; #DelayedCommand functions,
$DisplayEvents = 0; #(Catch)Events
#Note: These settings are in a testfase, there is a chance that some subs not will be displayed in the console.
=================================================
Updates:
=================================================
01: Sqlite Database libraryfiles. (not mono yet)
Case "!loadlayout":
cmdLFS("/axload <Layoutname>");
BREAK;