V2.02(10-03-2019)
Add: Blueflag system (Early stage)
Update: False start / Jumpstart detection improvements
Fix: Faulty Nicknames with '|' could cause invalid parameters errors in the timetable.
Fix: Other small code fixes/optimizations.
Fix: Live Timing: Error cause the window not work properly.
Fix: Live Timing: Wrong times when driver is driving the stage for the first time.
Fix: Guests could vote to restart the race
Fix: Guests could vote to end the race
Fix: Could set empty stagenames.
Known Issues.
-Timelist in timetable loads slow when many records in file has been saved.
-Weird sectortimes could not load into the timetable.
+---------------------------------------------------------------+
|Changes from 7.0.6.3 to 7.0.6.4 Public Test_10 |
+---------------------------------------------------------------+
=================================================
New:
=================================================
1: New function: PlayerDelayedcommand(); #Start delayedcommand for a specific player
$UserName = "Bass-Driver";
$NameOfDelay = "CloseButton";
$DelayInSeconds = 3;
$SubCallBack = "ThisSub";
PlayerDelayedcommand($UserName,$NameOfDelay,$DelayInSeconds,$SubCallBack);
2: New function: RemovePlayerDelayedCommand(); #Remove delayedcommand for a specific player
$UserName = "Bass-Driver";
$NameOfDelay = "CloseButton";
RemovePlayerDelayedCommand($UserName,$NameOfDelay);
3: New function: RegisterPlayerDetection(); #Detect player within a fieldofview and distance.
#Example
#$userName = Set Player for the detector
$userName = "Bass-Driver"; #The Detector is now enabled for Bass-Driver
#$FieldOfView = Set range of the view to detect players. (degrees)
$FieldOfView = 30; #view will be 0 to 30 and 0 to -30
#$Distance = Max distance of detection (Meters)
$Distance = 25;
#$NameofSubDetected = Execute Subcallback when 1 or more players are detected.
$NameofSubDetected = "PlayerDetected";
RegisterPlayerDetection($userName,$FieldOfView,$Distance,$NameofSubDetected);
#==========================================
#Sub callback
#==========================================
Sub PlayerDetected($userName,$DetectedPlayer)
OpenButton( $userName, "PlayerName",170,115,30,5,2,5,96, "^3Player: ^7".GetPlayerVar($DetectedPlayer,"NickName"));
OpenButton( $userName, "Speed",170,120,30,5,2,5,96, "^3Speed: ^7".GetPlayerVar($DetectedPlayer,"InstantSpeed")." km/h");
OpenButton( $userName, "Distance",170,125,30,5,2,5,96, "^3Heading: ^7".GetPlayerVar($DetectedPlayer,"Heading"));
EndSub
#########################################
#DISCORDBOT FEATURES
#########################################
4: New Event :
- This event will be executed when someone sends a discord message to LFSLapper.
- A Discordbot must be created to communicate between LFSLapper and Discord.
- In 'bin/default/includes/myInc.LPR' you can enter the 'DiscordToken' and the 'Discordchannel' to receive the messages from.
- Link to create a discordbot: https://github.com/reactiflux/discord-irc/wiki/Creating-a-discord-bot-&-getting-a-token
- Set DeveloperMode in your discordsettings to "ON' to copy the channel ID ( rightclick on the channel)
Event OnReceiveDiscordMessage($DiscordUname,$Text) # Player event
#Your code
EndEvent
#This function sends messages to your selected discordchannel.
#The discordbot must be connected while using this function
5: New Function: sendmessagetodiscord();
$DiscordChannel = "000000000000000000";
$Message = "Hello";
sendmessagetodiscord($DiscordChannel,$Message);
6: New setconfigvar() value: "DiscordBotStatus"
setconfigvar("DiscordBotStatus",$argv); #change the status of the discordbot
EndSub
=================================================
Changed:
=================================================
1:Hostname now visible when lapper succesfully connected to a server.
2:New errormessages to MSS file before Lapper starting (faulty adminpass)
3:Increased the frequence of retreiving info from LFS to every (50 ms) was 100ms (Proper testing needed)
-The MCI (Carinfo) packet will still execute every 100ms
4:Realtime driftscore refreshrate is set to 5 times a second instead of 10.
5:NumtoMSH(); returns values in HH:mm.ss format, was HH.mm.ss before.
6:Event oncrossingchecker: returns now which insim checkpoint you crossed.
7:Event oncrossingchecker: returns time in H:mm:ss format.
8:GetWr(); allows 1 parameter "CAR". Example below
CASE "!getwr":
IF($argv != "")THEN
$GetWRInfo = GetWR($argv);
ELSE
$GetWRInfo = GetWR();
ENDIF
privmsg("^7============================");
privmsg("^3WR Info:");
privmsg("^7============================");
privmsg("^7Car: ^8".$GetWRInfo["CName"]);
privmsg("^7Track: ^8".$GetWRInfo["Track"]);
privmsg("^7Racer: ^8". $GetWRInfo["racerName"]);
privmsg("^7Time: ^8".NumToMSH($GetWRInfo["WRTime"]));
privmsg("^7Sp1: ^8".NumToMSH($GetWRInfo["Split1"]));
privmsg("^7Sp2: ^8".NumToMSH($GetWRInfo["Split2"]));
privmsg("^7Sp3: ^8".NumToMSH($GetWRInfo["Split3"]));
privmsg("^7Last: ^8".NumToMSH($GetWRInfo["SectorLast"]));
BREAK;
9:GetWR(); Added 2 new values: Date & Time. Date/Time of WR
$GetWRInfo["Date"]);
$GetWRInfo["Time"]);
10:Store data for offline players
-New variable: $StoreOfflineData = false; #storedvalue.dbs Store Offline data , even when the player doesnt exist in the database.
-IF $StoreOfflineData = true, a warning message will be displayed on your lapperconsole and in your MSS logfile, after reloading lapper
=================================================
Fix:
=================================================
1: WriteLine() :Lapper crash when try to convert special LFS characters
2: Write() :Lapper crash when try to convert special LFS characters
3: LFSLapper.LPR : one of the debugoption turned on
4: LFSLapper.LPR : debugmessages
5: No returning value when accidently applying NumtoMSH(); twice
6: Changed hardcoded visible records in Toplist/UserTop/Drifttop from 24 to 10000
7: Linux/mono users couldnt start Lapper on theire computer (Testfase)
8: GetWR(); Couldnt get RO11 WRtime
Commands: (these are admincommands)
!rejoinfilter : Access the rejoinfilter settings
!debuglfspara : Get data from LFS, if needed
========================================================
Changelog
========================================================
#V1.0
# -Initial release
##########################################################################################
#Action on Event when player receives a Flag (Yellow/Blue flags and Lag/Missing packets).
##########################################################################################
# The Flags below returns 1 or 0 depends on which flag is received by the user
#$YellowFlag: Player receives a YellowFlag
#$BlueFlag : Player recieves a BlueFlag
#$LagFlag : Player is lagging or is missing carpackets
#$Time : ShortTimeFormat,same as GetLapperVar("ShortTime");
##########################################################################################
$PlayerFlagEvent = -1; #Enable Event 1 = ON / -1 = OFF
Event OnPlayerFlags($userName,$YellowFlag,$BlueFlag,$LagFlag,$Time) # Player event
#your code here
EndEvent
<?php
CASE "!d":
#Test Texts
$Test_Text = "[Text_01] This char: ^s , is a forward slash";
$Test_Text_Two = "[Text_02] This char: / , is a forward slash";
#PlayerNames
$Original_Player = GetPlayerVar($userName,"NickName");
$StrippedPlayer = StripLFSColor($Original_Player);
#Chars to detect
$TestChar_One = "^s";
$TestChar_Two = "/";
#============================================================
#STRING TESTING
#============================================================
privmsg("^3TEST STRINGS: Text_01 >> " .$Test_Text);
IF(Contains($Test_Text,$TestChar_One) == 1) THEN
privmsg("TEXT_One '^s' ^2detected");
ELSE
privmsg("TEXT_One '^s' ^1Not detected");
ENDIF
IF(Contains($Test_Text,$TestChar_Two) == 1) THEN
privmsg("TEXT_Two '/' ^2detected");
ELSE
privmsg("TEXT_Two '/' ^1Not detected");
ENDIF
privmsg("^3TEST STRINGS: Text_02 >> ".$Test_Text_Two);
IF(Contains($Test_Text_Two,$TestChar_One) == 1) THEN
privmsg("TEXT_One '^s' ^2detected");
ELSE
privmsg("TEXT_One '^s' ^1Not detected");
ENDIF
IF(Contains($Test_Text_Two,$TestChar_Two) == 1) THEN
privmsg("TEXT_Two '/' ^2detected");
ELSE
privmsg("TEXT_Two '/' ^1Not detected");
ENDIF
#============================================================
#PLAYERNAME TESTING
#============================================================
privmsg("^3TEST PLAYERNAME: ORIGNAL >> ".$Original_Player);
IF(Contains($Original_Player,$TestChar_One) == 1) THEN
privmsg("Original PlayerName: '^s' ^2detected");
ELSE
privmsg("Original PlayerName: '^s' ^1Not detected");
ENDIF
IF(Contains($Original_Player,$TestChar_Two) == 1) THEN
privmsg("Original PlayerName: '/' ^2detected");
ELSE
privmsg("Orignal PlayerName: '/' ^1Not detected");
ENDIF
privmsg("^3TEST PLAYERNAME: STRIPPED >> ".$StrippedPlayer);
IF(Contains($StrippedPlayer,$TestChar_One) == 1) THEN
privmsg("Stripped PlayerName: '^s' ^2detected");
ELSE
privmsg("Stripped PlayerName: '^s' ^1Not detected");
ENDIF
IF(Contains($StrippedPlayer,$TestChar_Two) == 1) THEN
privmsg("Stripped PlayerName: '/' ^2detected");
ELSE
privmsg("Stripped PlayerName: '/' ^1Not detected");
ENDIF
BREAK;
?>
<?php
CASE "!tt":
IF ( UserIsAdmin( $userName ) == 1 )
THEN
privMsg("Priv: This is a forward slash ^s");
GlobalMsg("Global: This is a forward slash ^s");
SetStoredValue("TestVarString","This is a forward slash ^s");
privmsg("GetstoredValue: ".GetStoredValue("TestVarString"));
SetUserStoredValue($userName,"UserTestVarString","This is a forward slash ^s");
privmsg("GetUserStoredValue: ".GetUserStoredValue($userName,"UserTestVarString"));
ENDIF
BREAK;
?>
V2.01(05-02-2019)
Add: StageNames: Now possible to change the default names, in the SetStageMenu.
Add: Systemcheck before starting. (File/Dir check)
Fix: HUD: Last car used still visible on top HUD when spectating or pit.
Fix: HUD: Wrong sectortimes when driving the stage for the first time.
Fix: CarClasses: Wrong message when a car doesnt meet the restriction requirements.
Fix: CarClasses: Didnt reconise the restricted cars from the timetable.
Fix: New best sectortimes werent loaded propely.
Fix: Could start on yellow light sometimes.
Fix: Other small fixes/optimizations.