The online racing simulator
Release: LFSLapper V7.0.6.3
Hello Lapperusers,

We have been working in cooperation with "iceman121" on a cruise insim for many months now. During the development of this insim we encountered some bugs. Some are old bugs and some are fairly new, that are caused by the latest releases of LFSLapper, ye sorry Smile. But we are gonna fix them bit by bit.

In this version we fixed some bugs and updated 1 GetLapperVar().

See the changelog below.

=================================================
Changed:
=================================================
1: GetLapperVar(ShortDate): Possible to add a 2nd parameter to add/delete days
Example: calculate date of unban a player

$NewDate = GetLapperVar(ShortDate,5); // Adds 5 days to the current date
$NewDate = GetLapperVar(ShortDate,+5); // Adds 5 days to the current date
$NewDate = GetLapperVar(ShortDate,-5); // Deletes 5 days to the current date
=================================================
Fix:
=================================================
1: InstantSpeed Playervar didnt reset to '0' after going to pit or spec (Shift+P / Shift+S)
2: Angle of car didnt reset to '0' after going to pit or spec (Shift+P / Shift+S)
-This could spam Event OnAngleVelocity() after losing control and pit/spec at the same time.
3: Event OnTakeOverCar(): Typo in sourcecode, didnt execute the event.
4: RegisterScheduledAction(): Function did not execute when only minutes are set.
-Rewrote small code of RegisterScheduledAction() and (Priv/Host)DelayedCommand();
-Lapper will now check, if it is a scheduled action or a delayedaction.
5: RegisterStreetAction(); Lappercrash when changing tracks or random lappercrash when leaving a street.
6: RegisterZoneAction ID still remains when a player pit/specs while standing inside a zone.

Have fun and see you on the roads Smile
Attached files
LFSLapper V7.0.6.3.zip - 6.4 MB - 1522 views
Great work on squashing bugs! Thumbs up Looking forward for new features in the near future. Big grin
Thx, i made a small mistake with releasing this version. I accidently didnt changed one of the debug options in lapper back to its default state. This will cause a spam of messages in the lapperconsole.

The users can easily change it back.

How to:


-Open LFSLapper.LPR.
-Go to line 228.
-Change $DisplayLoops = 1; to $DisplayLoops = 0;

Attached images
debugoption.jpg
Bass-driver is there any reason other than me being really stupid I cant get any thing above Release : LFSLapper V7.0.4.4 to connect to our server.

I will post the error later can't remember it now, but the latest versions with same settings as the version I can connect with gives me errors.
Dont have any idea why it shouldnt work.
only thing i can advise is to verify the files listed below.

-Verify LFSServers.cfg with your LFSLapper V7.0.4.4.
-Verify Default.ini with your LFSLapper V7.0.4.4.

One question, did you have copied some scripts from V7.0.4.4 to the newer releases of Lapper??

And indeed a errorlog whould become handy.
On Friday I have upgraded our AB.nl servers to this version and at first glance all seemed to be working fine. Then I was notified that some modules were not working and after a good look I noticed I had used the wrong addonsused.lpr file.
I corrected the mistake, reloaded all Lapper instances and then mayhem happened.
Nobody is able to drive on any of the servers, because the handicap system keeps kicking them off, saying that they don't have a class mentioned in their nickname.
After debugging for several hours (while my code has not changed for a while and was working flawless with version 7.0.4.10) I noticed it has to do with the "/" sign not being recognised properly when being simulated using "^s".
Putting a test-string directly into the database and then reloading Lapper, resulted in Lapper crashing over and over again.
In the end I gave up and reverted the servers back to version 7.0.4.10

*edit* included the logfile containing the crashes
Attached files
127.0.0.1-29990-ERR.txt - 30.6 KB - 269 views
uhm weird indeed.
You could give some examplecodes you tried set/get values to/from the database?

The testcode i'm generating works fine. Or i test it in a wrong way.


<?php 
CASE "!tt":
IF ( 
UserIsAdmin$userName ) == )
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;    
?>

Attached images
test_01.jpg
I will look deeper into this issue very soon, but got a bit too frustrated today.
Once I have more information, I will share it with you.
ye sure, maybe its something simple to solve. Or its something deeper.
Okay, here is what I have done.
First I connect Lapper 7.0.4.10 to a test server with 3 of my modules being activate (schedule, set schedule , hcs)
In the hcs module I added a debug line, to write the simulated / to the console (see line 94).
As soon as Lapper connects, the debug line is written to the console and ^s (simulation code for a /) is shown.

Then I did the exact same thing with Lapper 7.0.6.3 and as you see, the debug line is written but ^s is not shown.

I have also uploaded the script I tested with (which is the latest version of the HCS script, with some debugging added here and there (can easily be found searching for "DEBUG").
Attached images
70410.PNG
7063.PNG
Attached files
hcs.txt - 53.6 KB - 281 views
It seems that only the console is having this bug.

I might think where this is coming from.

in version V7.0.5.0 i have edited/updated the Write/WriteLine functions.
https://www.lfs.net/forum/thread/91751-Release%3A-LFSLapper-V7-0-5-0

Since then, its possible to add colortags into your textstring. But now it seems that the other special characters doesnt work anymore.

I gonna look into this, but i can't tell when.

Sorry
No problem if it will take some time and no, it's not only the console as the rest of the script is failing because of that first missing symbol and then players get spectated for not having a class in their nickname, while they actually have one.
For now I will leave our servers at Lapper 7.0.4.10 and once a possible solution is out, I will test things again.
i might ask some stupid questions, but i try to gather much info as possible. To get a proper testresult

-How should the nicknames look like?
"/nickname".

-Is it possible to post the failing strings. And give some examples how they should be displayed?

Thanks.
Stupid questions do not exist, only stupid answers, so just ask as all might help you.

A nickname should look like this: ^1Yis^7c[^4NL] ^1^s4
The colors are not important so stripped it is like this: Yisc[NL] ^s4 ==> Yisc[NL] /4

When the HCS script starts, it sets a sign to look for in the players nicknames, by default that is code ^s or translated it is /
If you then follow the rest of the script, you will see that it starts looking for this sign in the nickname and when found it goes on to determine the class (the number behind the /).

Feel free to ask for more information if needed.
Here's a small Test Progress.

WriteLine() and Write() functions are indeed bugged when it tries to detect ^s or or other special characters. So i have replaced that code with the code from version 7.0.4.10 to continue testing.

I have created a small testcode to see it detects a '^s'(/) or a '/'


<?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) == 1THEN
                    privmsg
("TEXT_One '^s' ^2detected");
                ELSE
                    
privmsg("TEXT_One '^s' ^1Not detected");
                ENDIF
                
                IF(
Contains($Test_Text,$TestChar_Two) == 1THEN
                    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) == 1THEN
                    privmsg
("TEXT_One '^s' ^2detected");
                ELSE
                    
privmsg("TEXT_One '^s' ^1Not detected");
                ENDIF
                
                IF(
Contains($Test_Text_Two,$TestChar_Two) == 1THEN
                    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) == 1THEN
                    privmsg
("Original PlayerName: '^s' ^2detected");
                ELSE
                    
privmsg("Original PlayerName: '^s' ^1Not detected");
                ENDIF
                
                IF(
Contains($Original_Player,$TestChar_Two) == 1THEN
                    privmsg
("Original PlayerName: '/' ^2detected");
                ELSE
                    
privmsg("Orignal PlayerName: '/' ^1Not detected");
                ENDIF
                
                
privmsg("^3TEST PLAYERNAME: STRIPPED >> ".$StrippedPlayer);
                IF(
Contains($StrippedPlayer,$TestChar_One) == 1THEN
                    privmsg
("Stripped PlayerName: '^s' ^2detected");
                ELSE
                    
privmsg("Stripped PlayerName: '^s' ^1Not detected");
                ENDIF
                
                IF(
Contains($StrippedPlayer,$TestChar_Two) == 1THEN
                    privmsg
("Stripped PlayerName: '/' ^2detected");
                ELSE
                    
privmsg("Stripped PlayerName: '/' ^1Not detected");
                ENDIF
            BREAK;
?>

In some cases it detects a / and not a ^s.

@ Yisc[NL]
Maybe worth a shot to change the $class_indicator from "^s" to "/";

In the attachments you see a screenshot of your hcs.lpr debugmessages. I think one of the last 2 debugmessages seems to be wrong.

You also find a new LFSLapper.exe
WARNING: This is version 7.0.6.3 but with the old WriteLine() and Write() function from version 7.0.4.10
Attached images
TestProgress.jpg
TestProgress_02.jpg
Attached files
LFSLapper V7.0.6.3_DEBUG VERSION_01.zip - 158.9 KB - 293 views

FGED GREDG RDFGDR GSFDG