PDA

View Full Version : Release


Gai-Luron
13th June 2009, 22:28
Special thank's

The original program was written by MonkOnHotTinRoof. I had his permission to maintain and develop it because it stopped the development. Thank's a lot Monkter for your initial prog ;)

Dev Team
Gai-Luron : Coder
Yisc[NL] : Support & Script Coder

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

LFSLapper Development Subforum : Help, Request, Bugs, Scripts
http://www.lfsforum.net/forumdisplay.php?f=262

Servers running lapper ver > 5.40
http://www.frh-team.net/reglapper/

Beta Release for test


Release Candidate


Download
http://www.lfs-lapper.org/download/lapper/LFSLapper6.012.zip

Old Release

LFSLapper's WebSite
http://www.lfs-lapper.org (http://www.lfs-lapper.org/)

LFSLapper's Manual (Work in progress)
French (http://www.lfs-lapper.org/help)
English (http://www.lfs-lapper.org/help/en)
Italian (http://www.lfs-lapper.org/help/it)
Polish (http://www.lfs-lapper.org/help/pl)

LFSLapper's Sourceforge
https://sourceforge.net/projects/lfslapper/

LFSLapper will work for both Demo and Licensed hosts and can be used also for single player games.
Will also work on dedicated servers and Linux OS (Mono required).

Some features

Multi LFS Management: One LFSLapper manage one or more LFS
Dedicated language script for config file : GLScript
LFSLapper come with powerfull script written by Yisc
Sqlite3 Databases
Support multi-language ( English, French, Polish, Norvegian )
Crash detection and notification by email and automatic restart
Public personal best lap notification
Public split times notifications
Best laps ladder; each track, each car with its own table
Storage of personal best laps into easy to edit text file
Auto Restart
Automatic rotation Tracks and/or Cars
Swearwords actions
Multiple LFS Event catched : End race, start race, on pit, end pit, Best split, etc... ( 67 Events )
Time scheduled actions
Welcome message
Simple drift scoring
Idle car detection
Pit actions
Flooding protection
FTP Personal best lap Transfer
Authorization ( license, Controls, handicap )
Penalties catching
Mph or Km/h
LFSLapper command via web
Messages box using LFS buttons
Actions buttons
... And much more

Quick start

Make sure you have .NET Framework installed (Mono will work, too).
Extract archive to arbitrary directory.
please read doc/readme.txt.

Utility
Trackinfo maker
Trackinfo maker is an utility who generate a trackInfo.cfg with splitting of wr with your own coefs. I generate the default trackInfo.cfg with this utility
http://www.lfs-lapper.org/download/l...ackinfo1.4.zip (http://www.lfs-lapper.org/download/lapper/trackinfo1.4.zip)

Clean SPB
CleanSPB.exe is an utility who clean all spb on PB file
http://www.lfs-lapper.org/download/lapper/CleanSPB.rar


PBLFSLapperPHPViewer By Gai-Luron
http://www.lfs-lapper.org/download/l...PViewer1.0.rar (http://www.lfs-lapper.org/download/lapper/PBLFSLapperPHPViewer1.0.rar)


All prog by Gai-Luron
LFSRelax :http://www.lfsforum.net/showthread.php?t=27913
LFSLapper :http://www.lfsforum.net/showthread.php?t=25756
LFSStat : http://www.lfsforum.net/showthread.php?t=24933


To compile
- Do not use framework 1.1 for compiling. The best way is to install c# visual Studio. You can find it here : http://msdn.microsoft.com/vstudio/express/visualcsharp/

Gai-Luron

Gai-Luron
13th June 2009, 22:31
Hello,

New Release: 5.8.4.2

Support multi-language

Gai-Luron


+-------------------------------+
|Changes from v5.841RC to 5.842 |
+-------------------------------+
1. Add new GLScript function
strFormat( formatStr,arg1,..,argn );
example:
strFormat( "The player {0}, there is actually {1} players on track", GetCurrentPlayerVar("nickName"), GetLapperVar( "nbPlayersOnTrack" ) )

This function is a very powerfull fonction to format text
The following table lists format controls supported by the C# String.Format() method together with examples of each control:
Control Type Description Example
C Currency
Displays number prefixed with the currency simple appropriate to the current locale
{0:C} of 432.00 outputs $432.00
D Decimal
Displays number in decimal form with optional padding
{0:D4} of 432 outputs 00432
E Exponential
Displays number in scientific form with optional value for fractional part
{0:E5} of 432.32 outputs 4.32320E+002
E Fixed
Displays the number including the specified number of decimal digits
{0:F3} of 432.324343 outputs 432.324
N Number
Converts a number to a human friendly format by inserting commas and rounding to the nearest 100th
{0:N} of 123432.324343 outputs 123,432.32
X Hexadecimal
Converts a number to hexadecimal
{0:X} of 432 outputs 1B0
0:0... Zero Padding
Adds zeros to pad argument
{0:0000.00} of 43.1 outputs 0043.10
0:0#... Space Padding
Adds spaces to pad argument
{0:####.##} of 43.1 outputs 43.1
% Percentage
Multiplies the argument by 100 and appends a percentage sign
{0:00.00%} of .432 outputs 43.20%

2 - Add new GLScript command
myConfig();
This show the Lapper config panel for the player

3 - Remove shift + I command.

4 - Add !myconfig in default LFSLapper.lpr file to call the player config panel

5 - Add language bloc translation in config file
Syntax :
Lang idLang
...
EndLang
You can create many block you want. Many block as you want for Lang "EN".
idMessage = Message;

idMessage is an idenditification of the message.
Message is the message displayed on the screen. You can put in it {0} ... {n} parameter. Look at strFormat

Example:
Lang "EN"
main_welc1 = "^7Welcome {0} ^7to ^1LFSLapper ^7powered server !&^2Type ^7!help ^2after leaving garage to see commands.";
main_welc2 = "^7Your actual friendly Position (all visitors) : ^7{0}&^2Your actual League prequalify Position : {1}^6Estimate Pool : {2}&Don't use swearwords on this server&respect other player&otherwise you can be banned";
main_accept = "Accept";
EndLang
Lang "EN"
main_deny = "Deny";
essai = "My test value 1 = {0}, value 2 = {1}";
EndLang
Lang "FR"
main_welc1 = "^7Bienvenue {0} ^7sur ce serveur Géré par ^1LFSLapper^7!&^2Tapez ^7!help ^2 pour voir les commandes après avoir quitté le garage";
main_welc2 = "^7Votre position absolue (Tous les visiteurs) : ^7{0}&^2Votre position de préqualification : {1}^6Estimation de poule : {2}&Ne pas employer de mots grossiers sur ce serveur&Respecter les autres joueurs&sinon vous risquez d'être banni";
main_accept = "Accepter";
main_deny = "Refuser";
essai = "Mon essai valeur 1 = {0}, valeur 2 = {1}";
EndLang

6 - Add new GLScript command
GlobalMsg( "Message" );
if same as cmdLFS("/msg Message"), but GlobalMsg support automatic translation ( see below )

7 - Add new GLScript command
GlobalRcm( "Message" );
if same as cmdLFS("/rcm Message") and cmdLFS("/rcm_all"), but GlobalRcm support automatic translation ( see below )

8 - Add new GLScript command
PrivRcm( "Message" );
if same as cmdLFS("/rcm Message") but for the current player, privRcm support automatic translation ( see below )

9 - Add new GLScript command
langEngine("%{idMessage}%", param,...,param )
but this function don't return the translated message, but set the translate
engine for the global messaging. This function must be used everywhere in message function

example:
langEngine("%{main_welc2}%",$Posabs,$Posqual,$Groupqual )
main_welc2 is defined in language block for the different language
the value is english is :
"^7Your actual friendly Position (all visitors) : ^7{0}&^2Your actual League prequalify Position : {1}^6Estimate Pool : {2}&Don't use swearwords on this server&respect other player&otherwise you can be banned"
in main_welc2 message
{0} is replaced by value of $Posabs
{1} is replaced by value of $Posqual
{2} is replaced by value of $Groupqual

10 - Add new GLScript command
langTranslate("%{idMessage}%", param,...,param ) same as langTranslate
but this function return the translated message.
idMessage , same id who is defined in block message
param1,..,paramn , parameter to fusion with message. look at strformat

11 - Add the choice of the lang in the !myconfig command.

12 - Fix minor bug in info when an error occur un script

13 - Fix bug in releasing button when type shift+I

14 - Language pack for EN ( English ) and FR ( French )

Gai-Luron
15th June 2009, 19:16
Release 5.8.4.2b

Default language is English and not french. Mistake by me ^^


Gai-Luron

Gai-Luron
23rd June 2009, 14:39
New release

+-------------------------------+
|Changes from v5.842 to 5.843 |
+-------------------------------+
1. Fix crash when password is to big in config file. Now send an error message

2. working dir autocreation when a new entry is present in LFSServers.cfg.

3. Add a new directory "defaultfiles" containing default file for autocreation

4. Fix bug in driftdbs when player have a \0 ( zero ) in nickname

Gai-Luron
18th July 2009, 12:44
Hello,

Release 5.8.4.4 avaiable

+-------------------------------+
|Changes from v5.843 to 5.844 |
+-------------------------------+
1. Add Krayy car reset code in LFSLapper
new events
Event OnMaxCarResets() : triggered when MaxCarResets is reached by a player
Event OnCarReset() : triggered when player do a car reset

New param var
MaxCarResets = #;
# number of allowed car reset before triggering OnMaxCarResets

2 Add 3 lapperVar var
RaceLaps = number or laps for a race
QalMins = number or minute in a qual
racelapsleft = Race lap left before end of race

getLapperVar( "RaceLaps" );
or
getLapperVar( "QalMins" );

3 Add updated GUI script From Tim

Gai-Luron
25th August 2009, 17:56
Hello,

Release 5.8.4.5 avaiable

+-------------------------------+
|Changes from v5.844 to 5.845 |
+-------------------------------+
Add Krayy code

1 Add 1 lapperVar var
raceMins = Race in minute pour timed races
numConns = Number of player connected
numPlayers = Number of player on track

getLapperVar( "raceMins" );

2 Add 1 player var
pitStops = Number of pitstop do by a player

GetCurrentPlayerVar("pitStops");
or
GetPlayerVar("nickane","pitStops");

3 Add new GLScritp file "who.lpr". it work with connected.lpr and add
a new command for player
!who -> display player connected

4 Add new GLScritp file "handicapper.lpr". it work with connected.lpr
Allow an admin to assign, save and load handicaps in-race
a new command for player and admin
!hc -> display player connected


SVN repositary updated

Gai-Luron
20th September 2009, 10:09
Hello,

Release 5.8.4.6 avaiable


+-------------------------------+
|Changes from v5.845 to 5.846 |
+-------------------------------+

1 ( Krayy ) Fix bug Reset some Var when race start

2 ( Krayy ) add new GLScript function
UserIsAdmin($userName);
Return 1 if true and 0 if false. Use admin.txt file to get admin
name and add UCID = 0 as admin ( console )
lpr file modified in accordance to the new function

3 Add $AdminFile in LFSLapper.lpr file to specify what file is used
for UserIsAdmin function

Gai-Luron
1st November 2009, 19:45
Hello,

Release 5.8.4.7 beta available for test purpose.

send me feedback for reorder feature.


+-------------------------------+
|Changes from v5.846 to 5.847 |
+-------------------------------+

1 Add $AutoRestartOnFirstFinished = false; config var to determine if the time used
for the AutoRestartRaceSec value

2 Add new glscript command to force rotation to next track
forceRotation();

3 Fix bug on result Race

4 Remove array var $ConfVar[idOfVar] replaced by getConfigVar( idOfVar )

5 Add new command setConfigVar( idOfVar, value )
You can set some config var in event, list of config var that can be modified

adminfile,adminemail,smtpserver,loginmail,passmail ,messagetime,showplayercontrol,defaulttopcar,
swearwordslist,swearwordsmax,handicapusers,swapsid e,autogears,shifter,helpbrake,axisclutch,autoclutc h,
mouse,kbnohelp,kbstabilised,customview,votelifesec ,voterestart,votequalify,voteend,autorestartracese c,
autorestartonfirstfinished,rotateeverynbraces,enab lerotation,rotatetracks,rotatecars,showsplitpb,ref reshqualusers,
qualusers,maxfloodlines,maxfloodlinestime,maxsessi onlaps,minanglevelocity,maxnbinstunt,maxallowedlap time1,
maxallowedlaptime2,onidletimeout1,idleexclude,onid letimeout2,gooddriftscore,minimumdriftscore,minimu mdriftspeed,
minimumdriftangle,maximumdriftangle,accelerationst artspeed,accelerationendspeed,accelerationstartspe edmph,
accelerationendspeedmph,accelerationprivatemaxtime , maxfastdriveonpit,pitwindowstart,pitwindowstop,
maxcarresets,reordergrid

6 Add new config Var
$ReorderGrid
Set the automatic reoder, value can be
"WR" reorder relative to World Record
"PB" reorder relative to Server Record
"LFS" LFS config file reorder

you can modify it in setConfigVar

Gai-Luron
3rd November 2009, 20:09
Hello,

Release 5.8.4.8 beta available for test purpose.

send me feedback.


+-------------------------------+
|Changes from v5.847 to 5.848 |
+-------------------------------+

1 Add new Event : OnEnterPitLane( $fact )
Player Event trigerred when player enter in pit Lane
fact can be:
ENTER // entered pit lane
NO_PURPOSE // entered for no purpose
DT // entered for drive-through
SG // entered for stop-go


2 Add new Event : OnExitPitLane()
Player Event trigerred when player exit pit Lane


3 Add a Global Variable $ListOfPlayers[index] containing the list of all the players connectect to the server
when you reach the end of this list, return ""
Example:
$i=0;
WHILE( $ListOfPlayers[$i] != "" )
WriteLine( "> " . $i . " - " . $ListOfPlayers[$i] . "<");
$i = $i+1;
ENDWHILE
************************************************** *****************************
PLEASE UPDATE YOUR SCRIPT TO USE THIS FEATURE INSTEAD OF $ar_user FROM PITBOARD
************************************************** *****************************

4 Add new player var : wr
Return the World Record for the current track/Car for the player

5 Fix bugs in !who script and add the use of the ListOfPlayers
************************************************** *****************************
PLEASE UPDATE YOUR SCRIPT TO USE THIS FEATURE INSTEAD OF $ar_user FROM PITBOARD
************************************************** *****************************
6 Fix bugs in reorder

Gai-Luron
4th November 2009, 11:49
Hello,

Release 5.8.4.9 beta available for test purpose.

send me feedback.


+-------------------------------+
|Changes from v5.848 to 5.849 |
+-------------------------------+
1 Add new player var : ontrack
getCurrentPlayerVar( "onTrack") equal 1 if player is on track and 0 of not

2 Add Winner flag on OnResult using new LFS char, limited button

3 Add new GLScript function to save a group to a file
UserGroupToFile( group, file );
Example:
UserGroupToFile( "admin", "./admin.txt" );


CAUTION:
In a future release ( not released for now ) i create new Lapper function to remove some not good designed functions
Function created:
openPrivBtn in replacement of OpenPrivateButton, this new function need UserName
closePrivBtn in replacement of ClosePrivateButton, this new function need UserName
privMsg need username in this future release
privRcm need userName in this future release
privDelayedCmd in replacement of privDelayedCommand , this new function need UserName

Function removed after a while, please update you script as soon i release this modified version, because in next month i remove definitively this function
openPrivButton
closePrivButton
getCurrentPlayerVar
privDelayedCommand


Each player event receive in this future version in argument the userName who triggered this event to have the ability to use the new function

Sorry for the inconvenience, but it's better for future language extension

Gai-Luron
4th November 2009, 18:00
Hello,

Release 5.8.5.0 beta available for test purpose.

send me feedback.

This version must be tested accurately because of change in script module to have the ability for a builtin function to return an Array.


+-------------------------------+
|Changes from v5.849 to 5.850 |
+-------------------------------+
1 Removed hardcoded Global Variable $ListOfPlayers[index] replaced, see below

2 Add new GLScrip Function GetListOfPlayers(), return an array containing list of players connected
Example
$i=0;
$ListOfPlayers = GetListOfPlayers();
WHILE( $ListOfPlayers[$i] != "" )
... Do What you Want ...
$i = $i +1;
ENDWHILE

3 Add new GLScrip Function GetListOfUsersGroup(), return an array containing list of user sorted in a specified group
Example
$i=0;
$ListOfUsers = GetListOfUsersGroup();
WHILE( $ListOfUsers[$i] != "" )
... Do What you Want ...
$i = $i +1;
ENDWHILE

Krayy
4th November 2009, 19:33
Slow down!! :)

haven't had time to send through some suggestions before a new update is out!

PS: Huge thanks for putting arrays into GLScript...that'll make life a lot easier.

Gai-Luron
4th November 2009, 20:13
Hello,

I slow down :) but the last features GetListOfUsersGroup,GetListOfPlayers returning an array var change how the scripts must be writed in future and i want to release it quickly. Next features are less important on how write a script ( except GLScript command explained before, but the suppression of the obsolete command it's not for tomorrow :razz:, don't worry :D).

Gai-Luron

Gai-Luron
6th November 2009, 21:44
Release 5.8.5.1 beta available for test purpose.

Here are the commands that I never had the time nor the courage to do. I hope they are useful for you

send me feedback.

NB: $CurrPly = GetPlayerInfo( $userName );
$CurrPly is a special array who continusly updated with correct player values
but you can't assign it to another var array using $newVar = $CurrPly;


+-------------------------------+
|Changes from v5.850 to 5.851 |
+-------------------------------+
1. Add new struct control in GLSCRIPT
FOREACH( var IN arrayVar )
....
ENDFOREACH

Whith this struct you can parse an array without knowing index
put on each iteration one element of the array arrayVar in var
var is an array containing only index "key", "value"
"key" is the key in the array
"value" is the value

Example:
Script Code

$toto[0,1,0] = "Zero,Un";
$toto[1,1,0] = "Un,Un";
$toto[1,2,0] = "Un,Deux";
$toto[2,2,0] = "Deux,Deux";
$toto[3,1,0] = "Trois,Un";
$toto[4,0,0] = "Quatre,zero";

FOREACH( $myVar IN $tata )
writeLine( "Key = " . $myVar["key" ] . " Value = " . $myVar["value" ] );
ENDFOREACH
Result on screen
Key = toto,4,0,0 Value = Quatre,zero
Key = toto,0,1,0 Value = Zero,Un
Key = toto,1,1,0 Value = Un,Un
Key = toto,1,2,0 Value = Un,Deux
Key = toto,2,2,0 Value = Deux,Deux
Key = toto,3,1,0 Value = Trois,Un

2. Add new GLScrip Function dumpVar(), to dump the content of a var to screen, debug purpose
Example
In script
$toto[0,1,0] = "Zero,Un";
$toto[1,1,0] = "Un,Un";
$toto[1,2,0] = "Un,Deux";
$toto[2,2,0] = "Deux,Deux";
$toto[3,1,0] = "Trois,Un";
$toto[4,0,0] = "Quatre,zero";
dumpVar( $toto );

print on screen:
$toto[4,0,0] = "Quatre,zero"
$toto[0,1,0] = "Zero,Un"
$toto[1,1,0] = "Un,Un"
$toto[1,2,0] = "Un,Deux"
$toto[2,2,0] = "Deux,Deux"
$toto[3,1,0] = "Trois,Un"

3. Completely rewriting array management in GLScript, now you can assign an array to a new var or array,
partially or entirely.
Example
In Script
$toto[0,1,0] = "Zero,Un";
$toto[1,1,0] = "Un,Un";
$toto[1,2,0] = "Un,Deux";
$toto[2,2,0] = "Deux,Deux";
$toto[3,1,0] = "Trois,Un";
$toto[4,0,0] = "Quatre,zero";

$tata = $toto;
$part = $toto[1];
$var = $toto[4,0,0];
$inArray[1] = $toto[1];

Result in Vars:
$toto[0,1,0] = "Zero,Un";
$toto[1,1,0] = "Un,Un";
$toto[1,2,0] = "Un,Deux";
$toto[2,2,0] = "Deux,Deux";
$toto[3,1,0] = "Trois,Un";
$toto[4,0,0] = "Quatre,zero";

$tata[0,1,0] = "Zero,Un"
$tata[1,1,0] = "Un,Un"
$tata[1,2,0] = "Un,Deux"
$tata[2,2,0] = "Deux,Deux"
$tata[3,1,0] = "Trois,Un"
$tata[4,0,0] = "Quatre,zero"

$part[1,0] = "Un,Un"
$part[2,0] = "Un,Deux"

$var = "Quatre,zero"

$inArray[1,1,0] = "Un,Un"
$inArray[1,2,0] = "Un,Deux"

4. New GLScript command getPlayerInfo( userName ), this function return an array containing all player var.
!!!!!!!SORRY!!!!!!! but this is the future command who kill the next command list in the future
Command killed in the future :-)
GetCurrentPlayerVar
GetPlayerVar
SetCurrentPlayerVar
SetPlayerVar

Set a Var with getPlayerInfo and then use it like an Array Var to retreive player var or to set player var
funny isn't it?

Example:
Event OnConnect( $userName ) # Player event
$CurrPly = GetPlayerInfo( $userName ); # Set A var for the player infos
IF( $CurrPly["userName"] != "" ) THEN # Kip Host
WriteLine( $CurrPly["userName"] ); # Retreive a player Var
WriteLine( $CurrPly["nickName"] ); # Retreive a player Var
$CurrPly["ess"] = 12; # Set a player Var
WriteLine( $CurrPly["ess"] );
ENDIF
EndEvent

Next Stage it's send to all parameter event the userName

5. New GLScript command to have the size of an array
arrayCount( array );

Example:
$toto[ 1 ] = "Un";
$toto[ 2 ] = "Deux";
WriteLine( $toto );
Result on Screen
2

Tim NL
8th November 2009, 15:43
Release 5.8.5.1 beta available for test purpose.

Hi Gai-Luron,
I wanted to test the new version but there is no lapper.exe in version 5.8.5.1 :shrug:.

And when i use ver5.849 then topUser and nearUser with a database storedvalue.dbs from ver.5.844 it gives a error
CASE "!point":
topUser( "^1[^7NLR^4] ^7Points System","ps_points_total","DESC",argv );
BREAK;
CASE "!rank":
nearUser( "^1[^7NLR^4] ^7Points System","ps_points_total","DESC",argv );
BREAK;

The following error apear when i type !point in lapper ver 5.849 with storedvalue.dbs from lapper ver. 5.844
-----------------------------------------------------------------------------
11/8/2009 4:59:59 PM

Lapper Instance 127.0.0.1/29991 abort!

Column does not exist.
Mono.Data.SqliteClient
at Mono.Data.SqliteClient.SqliteDataReader.GetOrdinal (String name)
at LFSDbs.storedDbs.GetTable(String key, Int32 from, String relativeToUserName, Int32 nbRead, String Filter, Boolean flagDesc) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\Dbs \storeddbs.cs:line 436
at LFSLapper.LFSClient.TopStoredUser(Int32 UCID, String title, String key, String pusername, String pnickname, String pcmd, Boolean flagNear, Boolean flagDesc) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\LFS Client\cmdLapper.cs:line 880
at LFSLapper.LFSClient.execCmd(unionVal val, ArrayList args, infoPlayer currInfoPlayer) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\LFS Client\parseEvent.cs:line 1110
at LFSLapper.LFSClient.myFunctions(unionVal val, ArrayList args) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\LFS Client\parseEvent.cs:line 806
at GLScript.GLApp.parseBackcall(SetOfVars GVAR, SetOfVars LVAR, unionVal val, ArrayList args) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\GLS cript\GLScript.cs:line 1031
at GLScript.Parseur.getval(SetOfVars GVAR, SetOfVars LVAR, executeParsedFunction BC) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\GLS cript\ParseExpr.cs:line 465
at GLScript.GLApp.retrieveEvalVar(String funcName, TokenParse tkparse, TokenBuffer currTokenBuffer, SetOfVars GVAR, SetOfVars LVAR, Boolean breakFunc, Char& breakCar) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\GLS cript\GLScript.cs:line 840
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\GLS cript\GLScript.cs:line 225
at GLScript.GLApp.privExecuteTokensPart(Int32 level, String funcName, SetOfVars GCAR, SetOfVars LVAR, Boolean breakable, Boolean inSwitchCase, Int32 start, Int32 end) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\GLS cript\GLScript.cs:line 355
at GLScript.GLApp.executeTokensPart(String funcName, SetOfVars GVAR, SetOfVars LVAR, Int32 start, Int32 end) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\GLS cript\GLScript.cs:line 156
at GLScript.GLApp.privExecuteFunction(String funcName, String[] argsVals) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\GLS cript\GLScript.cs:line 151
at GLScript.GLApp.executeFunction(String funcName, String[] argsVals) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\GLS cript\GLScript.cs:line 121
at Configurator.lexConfigurator.executeFunction(Strin g funcName, infoPlayer pcurrInfoPlayer, String[] par) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\cfg Parser\readCfg.cs:line 333
at LFSLapper.LFSClient.managePacket(MSO mso) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\LFS Client\managePacket.cs:line 664
at LFSLapper.LFSClient.Loop(Connect insimConnection) in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\LFS Client\loop.cs:line 1036
at LFSLapper.LFSClient.doloop() in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\LFS Client\lfsclient.cs:line 552
at LFSLapper.LFSListen.Listen.goWorkMode() in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\LFS Listen\Listen.cs:line 85
at LFSLapper.LFSListen.Listen.start() in D:\Dev\DevInsim\lapper\LFSLapper\LFSLapper\src\LFS Listen\Listen.cs:line 126
Int32 GetOrdinal(System.String)
Closing Instance...
-----------------------------------------------------------------------------

Bass-Driver
8th November 2009, 15:53
Hi Gai-Luron,
I wanted to test the new version but there is no lapper.exe in version 5.8.5.1 :shrug:.

just create a new one
compile the LFSLapper.csproj and put it in the BIN folder

Gai-Luron
8th November 2009, 16:43
- Error sorted
- Exe available on new release, sorry :shrug:

Release 5.8.5.2 beta available for test purpose.

send me feedback.


+-------------------------------+
|Changes from v5.851 to 5.852 |
+-------------------------------+
1. Add new player event : OnNameChange (krayy)

2. Update SuperUser checks to include UCID 0 (dedicated server or LFS host) (krayy)

3. Update finishedpos event to return a valid number at any time as currently
it does return a number if the racer has not passed the finish line (krayy)

4. privMsg now can take 1 or 2 Arg (krayy)
1 arg, send message to current player;
example : privMsg( "myMessage");
2 arg, Send a message to a specified user
example : privMsg( "gai-luron","myMessage");

5. Fix error on SetUserStoredValue, now accept string for storing

6. Improve array performance and use of specific player array getted with GetplayerInfo
if you copy an GetplayerInfo array in another array, you get a sbapshot or a carboncopy of the original array
and not a full featured GetPlayerInfo Array.

Gai-Luron
11th November 2009, 15:41
Release 5.9.0.1 beta available for test purpose.

There is a major change in configuration script to allow more flexibility in scripting. Update your main lpr file with new one. All modification to this main file is not a good thing, instead use myInc.lpr to overlap sub or event and catchevent, catchsub to add your feature to an existing main lpr file event or sub in you include files.

Now a script can be added without modify main lpr file


All release's include script are modified by myself to use new catch feature, take a look in it to modify you own include script and send me the result if you want include new script in main release
Script that are used are now in addonsused.lpr, modify this file to activate or deactivate a script. that's all
Add driftmeter.lpr in default release. To activate it go in addonsused.lpr and remove # before the include
In the future I only include script that don't modify main lpr file
All player event now receive the userName who triggered the event, your old LFSLapper.lpr file is obsolete, modify it or take a freshen version

Sorry for this important modifications, but it's for improve LFSLapper scripting

send me feedback.


+-------------------------------+
|Changes from v5.852 to 5.901 |
+-------------------------------+
1. GetListOfPlayer accept an optional argument to sort the list og player
Example:
$list = GetListOfPlayers("U"); # List sorted by userName
Or
$list = GetListOfPlayers("N"); # List sorted by nickName

2. Fix groupCmdLfs( cmd ); order in other serv

3. Add GLScript command reload() to stop lapper and reload config

4. CatchEvent eventName structure
Add new structure feature, it's offer the ability to define code in this struct
and catch an existing event located in the main lpr file. LFSLapper execute code located
in event then jump to code located in one or more catchEvent. it's very usefull for creating
script without modify the original lpr file.
To add a new functionality to lapper just add include(newScript) at the end
of lpr file and to remove put a # before the include.
newScript must use this CatchEvent.

CatchEvent eventName
...
EndCatchEvent

Example:
CatchEvent OnConnect( $userName )
WriteLine( "OnConnect appended");
EndCatchEvent

Before Event OnConnect( $userName ) is executed then execute code
located into one or more CatchEvent OnConnect( $userName )

5. CatchSub subName --> Same as CatchEvent but for sub
Add new structure feature, it's offer the ability to define code in this struct
and catch an existing sub located in the main lpr file. LFSLapper execute code located
in sub then jump to code located in one or more catchSub. it's very usefull for creating
script without modify the original lpr file.
To add a new functionality to lapper just add include(newScript) at the end
of lpr file and to remove put a # before the include.
newScript must use this CatchSub.

CatchSub mySub
...
EndCatchSub

Example:
CatchSub MySub( )
WriteLine( "MySub appended");
EndCatchSub

Before Sub MySub( ) is executed then execute code
located into one or more CatchSub MySub( )

6. Add userName in args passed to event player
OnMSO,OnAuthAllowed,OnAuthNotAllowed,OnAuthReached ,OnSwearWords1
OnSwearWords2,OnToLowHandicap,OnNotMatchFlags,OnCo nnect,OnDisConnect
OnSplit1,OnSplit2,OnSplit3,OnLap,OnSpbSplit1,OnSpb Split2,OnSpbSplit3
OnSpbLast,OnFlood,OnMaxSessionLaps,OnAngleVelocity ,OnMaxNbInStunt
OnMaxAllowedLapTime1,OnMaxAllowedLapTime2,OnIdle1, OnIdle2,OnDriftPB
OnDriftLap,OnDriftScore,OnPB,OnPBQual,OnAccelerati on,OnBeginPit
OnEndPit,OnPit,OnNotPitWindow,OnBeginPitWindow,OnE ndPitWindow
OnFastDriveOnPitL1,OnFastDriveOnPitL2,OnMaxFastDri veOnPit,OnFalseStartL1
OnFalseStartL2,OnLeaveRace,OnDriftTooLow,OnGoodDri ft,OnNewGapPlayerBehind
OnNewGapPlayerBefore,OnNewPlayerJoin,OnChangeTyres ,OnFinish,OnResult
OnCarReset,OnMaxCarResets,OnExitPitLane,OnEnterPit Lane,OnNameChange

7. Patch to allow storing data as another user. I.e: ( krayy )

SetUserStoredValue( "hmass", GetPlayerVar($uName,"h_mass"));
OR
SetUserStoredValue( $uName, "hmass", GetPlayerVar($uName,"h_mass"));

GetUserStoredValue( "hmass" );
OR
GetUserStoredValue( $uName, "hmass" );

8. Fix SQL error when userName have a single-quote (') in it in PB, Drift and stored

9. Add new GLScript function SplitToArray, this function allow splitting a string by a split char and put result into array

Example:
$tosplited = "Un,Deux,Trois,Quatre";
$splites = SplitToArray( $tosplited,"," );
WriteLine( "The result for pos 2 is " . splites[1] );
FOREACH( $val IN $splites)
WriteLine( "Val = " . $val["value"]);
ENDFOREACH

Result on Screen
The result for pos 2 is Deux
Val = Un
Val = Deux
Val = Trois
Val = Quatre

Krayy
12th November 2009, 02:34
Might I make a suggestion that 5.853 be renamed as 5.901 and divorced from the 5.8* line, as it (to my mind anyway) represents a HUGE change in the scripting language that will require rewrites of pretty much every Lapper file out there. It might be better to leave those be and start the new fork so people dont get confused (or p**ded off)

Gai-Luron
12th November 2009, 10:12
Hello!

You are right, i add one or two feature that turn in my mind in GLScripting and do this fork.

Gai-Luron

Gai-Luron
15th November 2009, 11:42
Release 5.9.0.2 beta available for test purpose.

send me feedback.


+-------------------------------+
|Changes from v5.901 to 5.902 |
+-------------------------------+
1. new command const, you can put it in sub/event or outside sub to define const
Const are preproced when reading config file, not on execution

const MY_CONST 12; # it's global const
const MY_CONST2 1 + 23; # it's global const
Sub mySub()
const LOCAL_CONST 13; # it's local const const only available in sub
const MY_CONST2 2 + 89; # This override the global const only in this sub;

$i = 12 + MY_CONST + LOCAL_CONST + MY_CONST2; # This is replaced by $i = 12 + 12 + 13 + 2 + 89;

EndSub

2. Fix Bug when setting a local var with global var and global var with localvar

Gai-Luron
22nd November 2009, 18:54
Release 5.9.0.3 RC available for test purpose.

send me feedback.


+-------------------------------+
|Changes from v5.902 to 5.903 |
+-------------------------------+
1. Improve number of simultaneus button allowed on screen to 240 ( LFS limit ) instead 170.

2. Add a timeout feature in script to stop infinite loop. Default is 2000ms
you can set your own value in LFSServers.cfg

timeOutScript=2000; # Time out in ms

3. Add player var retreiveid from Pubstat
PSDistance, // online statistics of one racer - distance in metres
PSFuel, // online statistics of one racer - fuel burnt in cl
PSLaps, // online statistics of one racer - laps
PSHostsJoined, // online statistics of one racer - hosts joined
PSWins, // online statistics of one racer - Wins
PSSecond, // online statistics of one racer - Second
PSThird, // online statistics of one racer - third
PSFinished, // online statistics of one racer - finished
PSQuals, // online statistics of one racer - quals
PSPole, // online statistics of one racer - pole
PSDrags, // online statistics of one racer - drags
PSDragWins, // online statistics of one racer - drag wins
PSCountry, // online statistics of one racer - country

4. Add a Sub fonction in LFSLapper.lpr script PstInfo, this function display the pubstat info for one player

5. Add new chat command !ps to display your pubstat info or !ps username to display the pubstat info for
a player present on server

6. Add new .lpr file consts.lpr, containing some const usefull to write script

Gai-Luron
25th November 2009, 18:11
Release 5.9.0.4 RC available for test purpose.

send me feedback.


+-------------------------------+
|Changes from v5.903 to 5.904 |
+-------------------------------+
1. Add blinking button feature on button, value is 8 or use ISB_BLINK const
Example:
openPrivButton( "clos",78,120,20,10,10,-1,ISB_DARK | ISB_BLINK,langEngine("%{main_accept}%"),OnConnectClose );
or
openPrivButton( "clos",78,120,20,10,10,-1,32 + 8,langEngine("%{main_accept}%"),OnConnectClose );

Better use const for more lisibility

2. new arg in functions
RegisterScheduleAction
RegisterScheduleAction
RegisterZoneAction
DelayedCommand
PrivDelayedCommand
accept a newArg that is an unique id for this Action.
this id is usefull when you want remove a RegisterScheduleAction, RegisterScheduleAction, RegisterZoneAction,DelayedCommand,PrivDelayedComma nd
You can also still continue use this function without this arg

Example:
RegisterScheduleAction( "myTest","* * * * * * *", SA_test );
RegisterNodeAction( "MyNode", "SO6" , 337 , SA_Test2 );
RegisterZoneAction( "MyZone", "SO6" , 337 , SA_Test3 );
DelayedCommand( "MyCommand", SA_Test3 );
PrivDelayedCommand( "MyCommand", SA_Test3 );


3. new functions
RemoveScheduleAction( idSched );
RemoveNodeAction( idSched, track );
RemoveZoneAction( idSched, track );
RemoveDelayedCommand( idSched );
RemovePrivDelayedCommand( idSched );

this functions allow to remove a previous registered action
Example:
RemoveScheduleAction( "myTest" );
RemoveNodeAction("MyNode","SO6");
RemoveZoneAction("MyZone","SO6");
RemoveDelayedCommand( "MyCommand" );
RemovePrivDelayedCommand( "MyCommand" );

4. Add a new player Var to know in witch zone the player is
if not in zone value is "NONE" else it's the id of the zone event, identifi you zoneaction now.
usefull when you want command available only in specific zone
Example
CASE "!buyfood":
IF( GetCurrentPlayerVar( "idZone") == "MyZone" ) THEN
... do what you want ...
ELSE
privmsg( "Command not available here");
ENDIF

Fire_optikz001
25th November 2009, 18:52
cool u added some of the stuff i needed for my cruise addon :D

Yisc[NL]
25th November 2009, 19:01
What a wonderful job you are doing mate.
So many changes since the last time I took a look at the code.
It's confusing me highly at the moment so I won't bother upgrading for a while, until I have enough time to sit down and have a real good look at all the things that have changed.
Anyway, great work and highly appreciated by many people.

Fire_optikz001
25th November 2009, 19:21
took me a few seconds to upgrade my script from 5.8.4.6

Gai-Luron
25th November 2009, 19:24
cool u added some of the stuff i needed for my cruise addon :D

The zone id, i think :razz: and the player var idZone. Very strange no? Yes it's only for your dev i have added this feature. I hope you release your cruise script to the community when you finish it ;). Please use catchevent and catchsub to have a standalone script.

@Yisc[NL]
Not many things are changed, the most important are the userName var passed to all event players, some modification in defaults script to use catchevent and catchsub, improvement of arrayvar and some builtin function can return array.

I modify some internal code too. Not visible for you, but better for me :D!

Thank's

Fire_optikz001
25th November 2009, 19:52
The zone id, i think :razz: and the player var idZone. Very strange no? Yes it's only for your dev i have added this feature. I hope you release your cruise script to the community when you finish it ;). Please use catchevent and catchsub to have a standalone script.

@Yisc[NL]
Not many things are changed, the most important are the userName var passed to all event players, some modification in defaults script to use catchevent and catchsub, improvement of arrayvar and some builtin function can return array.

I modify some internal code too. Not visible for you, but better for me :D!

Thank's
yes i will release it :) there is one more thing i do need ... if possible a thing to count km :)

Gai-Luron
25th November 2009, 20:55
Hello,

I have already a count meter for each player ( in meter ). But do you need an event to do a specific action? What do you want to do with this info?

How do you want to use it? in fact i don't know on how work cruise insim ^^

Thank's for your answer

Gai-Luron

Fire_optikz001
25th November 2009, 21:15
well in the end im gonna have to make it count money... i was thinking im not 100% how im gonna get it to store user stats :P

i would need to make it save user stats every x minutes

Gai-Luron
25th November 2009, 21:26
Why don't you save data on a specific node or zone of the track. When a player finish lap. and then when a player leave server

Andy King
25th November 2009, 21:33
Hi Gai, can we use.....

RemoveScheduleAction( "myTest1&myTest2&myTest3" );

or

RemoveScheduleAction( "myTest1" );
RemoveScheduleAction( "myTest2" );
RemoveScheduleAction( "myTest3" );

Also is it possible to set Lapper to use the 24 hour clock like hh:mm:ss

YOU HAVEN'T UPDATED LINK STILL SHOWING v5.9.0.3RC

Fire_optikz001
25th November 2009, 21:39
Why don't you save data on a specific node or zone of the track. When a player finish lap. and then when a player leave server
i mean i can make a scedualed event but would need a way go save it to the file

Fire_optikz001
25th November 2009, 22:17
http://www.lfs-lapper.org/download/lapper/LFSLapper5.904RC.zip

Gai-Luron
26th November 2009, 06:11
i mean i can make a scedualed event but would need a way go save it to the file


Why do you want to save it to file? why don't you use stored value?

RemoveScheduleAction( "myTest1&myTest2&myTest3" );

not possible! it's very important to have multiple remove event for you? i can do that if you want or if you can't wait create a sub like this


Sub rme( $ids )
$ar_id = SpliToArray( $id$,"&" );
FOREACH( $val IN $ar_id )
RemoveScheduleAction($val["value"]);
ENDFOREACH
EndSub





Gai-Luron

Fire_optikz001
26th November 2009, 14:36
didnt think of that :D well i think ill start

Gai-Luron
26th November 2009, 16:11
Release 5.9.0.5 RC available for test purpose.

send me feedback.


+-------------------------------+
|Changes from v5.904 to 5.905 |
+-------------------------------+
1. Fix bug on scheduledAction

Andy King
26th November 2009, 17:05
Hi Gai,
New version seems fine just filling DOS box with 0's now lol. Can you take a look at DefaultCar please as posabs is still not working. I could not get your SUB to work for removing SchedActions which is a shame as my Race Event Schedule has 56 SchedActions with ID Number_01 > Number_56. Would be so easy if I could have a nice small SUB rather than 56 lines long :smileypul

Why do we need all those message lines shown in screenshots I posted when sending private messages?

Well done Lapper is so powerfull now to what it was when I first started using it, congratulations.

Gai-Luron
26th November 2009, 17:26
FOR( $i = 0; $i < 56;$i = $i + 1 )
RemoveScheduleAction( "Number_" . strFormat("{0:00}",$i));
ENDFOR

Fo info strFormat("{0:00}",$i) return 00 if $i = 0, 01 when 1 and so on.

Why do we need all those message lines shown in screenshots I posted when sending private messages?

You are rigth, i remove this uglys messages

My sub must be work, i write the code this morning at work without test it, perhaps i have make mistake ;). But the idea is that kind of code


Edit : code corrected

Sub rme( $ids )
$ar_id = SplitToArray( $ids,"&" );
FOREACH( $val IN $ar_id )
RemoveScheduleAction($val["value"]);
ENDFOREACH
EndSub



DosBox is the distance done by player, i removed it in the attached exe file, with privmsg fix. Change only your exe


Gai-Luron

Andy King
26th November 2009, 18:15
Sub rme( $ids )
$ar_id = SplitToArray( $ids,"&" );
FOREACH( $val IN $ar_id )
RemoveScheduleAction($val["value"]);
ENDFOREACH
EndSub

Hi Gai, can you write me the CASE etc and an explanation as I am not getting how this works as I have 54 SchedActions to close....
RegisterScheduleAction("RaceNight_01","00 00 18 * * * *", Schedule_R_01);

RegisterScheduleAction("RaceNight_54","00 22 22 * * * *", Registration_Open );

and they all need closing. Sorry for being a dummy but cannot get my head around it and off to work now.

Thanks in advance

Gai-Luron
26th November 2009, 21:03
Sub removeMySched()
FOR( $i = 1; $i < 55;$i = $i + 1 )
$id = "RaceNight_" . strFormat("{0:00}",$i);
RemoveScheduleAction( $id );
ENDFOR
EndSub

Gai-Luron
26th November 2009, 21:57
Release 5.9.0.6 RC available for test purpose.

send me feedback.

GO! GO! GO! with cruise Script, you have everything now :p


+-------------------------------+
|Changes from v5.904 to 5.906 |
+-------------------------------+
1. Add new player var TotDistMeter that is the distance in meter do by a player
this value is set to 0 when a player connect to the server
You can set this value by SetCurrentPlayerVar( "TotDistMeter" , 10000 );

2. Add new config var
$distToDo = 100;
it is the amount of meter that player must do to trigger new player event OnDistDone, see below

3. Add new event triggered when a player do a certain distance
$distToDo = 100;
Event OnDistDone( $userName ) # Player event
writeline( "100m dist done by " . $userName . " - total dist :" . GetCurrentPlayerVar("TotDistMeter") );
EndEvent

Fire_optikz001
27th November 2009, 15:41
Release 5.9.0.6 RC available for test purpose.

send me feedback.

GO! GO! GO! with cruise Script, you have everything now :p


+-------------------------------+
|Changes from v5.904 to 5.906 |
+-------------------------------+
1. Add new player var TotDistMeter that is the distance in meter do by a player
this value is set to 0 when a player connect to the server
You can set this value by SetCurrentPlayerVar( "TotDistMeter" , 10000 );

2. Add new config var
$distToDo = 100;
it is the amount of meter that player must do to trigger new player event OnDistDone, see below

3. Add new event triggered when a player do a certain distance
$distToDo = 100;
Event OnDistDone( $userName ) # Player event
writeline( "100m dist done by " . $userName . " - total dist :" . GetCurrentPlayerVar("TotDistMeter") );
EndEvent

:P ill start working on it now :)

also does it say that every 100m?

I also will need this added http://www.lfsforum.net/showthread.php?t=61328

not the savegrouptofile as u already have something like that

MariusMM
27th November 2009, 15:54
:P ill start working on it now :)

also does it say that every 100m?

I also will need this added http://www.lfsforum.net/showthread.php?t=61328

not the savegrouptofile as u already have something like that

Obviously it says whatever you want it to say after how long you want.

$distToDo = 100;
Event OnDistDone( $userName ) # Player event
writeline( "100m dist done by " . $userName . " - total dist :" . GetCurrentPlayerVar("TotDistMeter") );
EndEvent

The red is where you edit how ever long distance you want the bonus to be at.

If I haven't completely misunderstood LFS lapper ^^. (Never scripted anything with lapper...)

Fire_optikz001
27th November 2009, 16:05
Obviously it says whatever you want it to say after how long you want.

$distToDo = 100;
Event OnDistDone( $userName ) # Player event
writeline( "100m dist done by " . $userName . " - total dist :" . GetCurrentPlayerVar("TotDistMeter") );
EndEventThe red is where you edit how ever long distance you want the bonus to be at.

If I haven't completely misunderstood LFS lapper ^^. (Never scripted anything with lapper...)
i can see that now :)

Also is it possible to store the cruise info in its own dbs? like Cruise.dbs? kinda like the drift points and such

Gai-Luron
29th November 2009, 16:14
Hi Gai,
... please as posabs is still not working. I could not get your SUB to work for ...

Change Posabs to PosAbs. Now all var are case sensitive

Gai-Luron
7th December 2009, 00:02
Release 5.9.1.0 beta available for test purpose.

send me feedback.

Replace only the LFSLapper.exe in the previous version and add tops.lpr in your include folder


+-------------------------------+
|Changes from v5.906 to 5.910 |
+-------------------------------+

**** CHANGING TO 5.9 BECAUSE OF BIG CHANGE IN GLScript, Very hard coding ****

1. Rewrite a big part of GLScript Parsing and lexer to cache compilation code.
Now very Speed up the execution of the code. Very hard coding
Try !gui one time ( caching at this point ), then type !gui ( very faster )

2. Add new GLScript function
GetListTop( $argv )
$argv is the same meaning arg as !top XRG etc...
$list = GetListTop( $argv );

This command return a 2 dimension arrayVar containing the result of the top
Write a test in your script with dumpVar( $list ) to view all available value
or take a look at tops.lpr the use

3. Create a new script ( to be finished ) for replace builtin command !top with a GLscript command file, you can
modify your top look as you want.
To view this new top type !mytop in chat line
This top is the same as old but only writed in GLScript :-), i remove the builtin code when i finish this
script.

Gai-Luron
11th December 2009, 21:30
Release 5.9.1.1 beta available for test purpose.

send me feedback.


+-------------------------------+
|Changes from v5.910 to 5.911 |
+-------------------------------+
Change LFSLapper.exe and defPitInfo.lpr from previous version

1. Fix error on retreive value in stored DBS

2. Fix error when no car is selected

3. Fix error in defpit.lpr script

Tim NL
12th December 2009, 18:32
Hi Gai,
Thanks for updates.:thumbsup:

I have updated some lpr scripts.

LFSLapper.lpr :
Changed the GetCurrentPlayerVar("Nickname") into GetCurrentPlayerVar("NickName")
I did the same for UserName , PosAbs and some more.
The !reload was not working. Fixed
Text in winnerflag was missing. Added
And some other small things that im forgot.:schwitz:

pitboard.lpr :
Changed the GetCurrentPlayerVar("isBestSectorSplit1") into GetCurrentPlayerVar("IsBestSectorSplit1")
Changed the GetCurrentPlayerVar("Nickname") into GetCurrentPlayerVar("NickName")

In pitboard.lpr the SetCurrentPlayerVar("Information","^2 Best possible lap is: " . NumToMSH(GetCurrentPlayerVar("Tpb")) ); will not work yet.:shrug:

who.lpr :
Was missing.
I changed the colors a bit. grey letters on light background was difficult to read.

Maybe i forgot or mist somethings.:Looking_a

__

Gai-Luron
12th December 2009, 22:21
oooppps thank you very much, now GetPlayerVar and GetCurrentPlayerVar are case sensitive and i forgot some change in scripts.

Strange for Tpb, i take a look for it

Thank you for your help

Gai-Luron

PS: Exact for the who but for waiting you can find it in bin\defaultfiles\workingdir\includes, i fortgot to put it in default folder

PS2: NEW RELEASE WITH YOUR FIX :thumbsup:
+-------------------------------+
|Changes from v5.911 to 5.912 |
+-------------------------------+
Change LFSLapper.exe and LFSLapper.lpr, pitBoard.lpr, who.lpr

1. Fix some error on script due to case sensitivity in GetCurrentPlayerVar And GetPlayerVar
Thank you very much Tim NL

2. who.lpr now present in release

Fire_optikz001
14th December 2009, 01:45
Gai to make things easier could u possibly put a link in ur post for the updates?

Gai-Luron
16th December 2009, 21:44
Release 5.9.1.3 beta available for test purpose.

send me feedback.


+-------------------------------+
|Changes from v5.912 to 5.913 |
+-------------------------------+
Files to replace From the previous version
LFSLapper.exe
LFSLapper.lpr ( or remove !top !topqual !near !nearqual entry in the big case)
driftdef.lpr
driftmeter.lpr

1. Fix some error on script due to case sensitivity driftdef.lpr, driftmeter.lpr
Thank you very much Tim NL

2. Fix error in Parsing '(' and ')' under certain condition

3. Fix error in optimization in assignation var or array

4. Add a mathematical function round to make a number rounded
round( 12.34,1 ) -> 12.3
round( 12.36,1 ) -> 12.4

5. !top, !near, !topqual, !nearqual are now managed in tops.lpr . You can
modify this file to have your own top display
next stage drf

Yisc[NL]
16th December 2009, 22:49
Would it be possible to make Lapper 64bits compatible? My server is still 32bits but building and testing scripts is something I do on my local machine. Since I'm using Windows 7 Ultimate (x64) I can't work with the current Lapper because it contains 16bit things I guess. Running 32bits applications is no problem at all but Lapper keeps crashing so there must be some 16bit stuff left somewhere I think.

Gai-Luron
16th December 2009, 23:18
I don't have 64 bit windows

Gai-Luron

Gai-Luron
20th December 2009, 12:32
Version 5.9.1.4 is released as standard version. Please migrate your old LFSLapper to this version.

Gai-Luron

I stop dev for a while ( only if fix bug need ), i starts writing manual at

http://www.lfs-lapper.org/help/ ( in french up to date )
http://www.lfs-lapper.org/help/en/ ( in english )

Gai-Luron

Fire_optikz001
20th December 2009, 14:49
Version 5.9.1.4 is released as standard version. Please migrate your old LFSLapper to this version.

Gai-Luron

I stop dev for a while ( only if fix bug need ), i starts writing manual at

http://www.lfs-lapper.org/help/ ( in french up to date )
http://www.lfs-lapper.org/help/en/ ( in english )

Gai-Luron

http://www.lfs-lapper.org/help/en/specifications.htm french D:

Gai-Luron
20th December 2009, 15:47
under construction

Gai-Luron
21st December 2009, 20:37
Release 5.9.1.4 available for test purpose.

send me feedback.

+-------------------------------+
|Changes from v5.914 to 5.915 |
+-------------------------------+
Files to replace From the previous version
LFSLapper.exe

1. Fix error on storedvalue on migration from 5.8

2. Add players Vars
PBDrift to have the drift PB on the current combo

Yisc[NL]
23rd December 2009, 09:04
I don't have 64 bit windows

Gai-Luron

You don't need to have 64bit Windows.
I'm running a lot of 32bit applications on my Windows 7 64bit without any problem.
But when the software contains 16bit code, files, dll's etc. I won't work.
So all that's needed to get it running on a 64bit system is to get rid of those 16bit things.

Gai-Luron
23rd December 2009, 15:21
I think 16 bit stuff are in sqlite dll and i don't change anything int it

For Lapper is writen only with C#

Fire_optikz001
23rd December 2009, 16:49
;1336547']You don't need to have 64bit Windows.
I'm running a lot of 32bit applications on my Windows 7 64bit without any problem.
But when the software contains 16bit code, files, dll's etc. I won't work.
So all that's needed to get it running on a 64bit system is to get rid of those 16bit things.

Here try this

Gai-Luron
23rd December 2009, 20:46
Release 5.9.1.4 available for test purpose.

send me feedback.


+-------------------------------+
|Changes from v5.915 to 5.916 |
+-------------------------------+
Files to replace From the previous version
LFSLapper.exe
driftmeter.lpr

1. Fix bug on delayed command and registeraction

2. Add new version of driftmeter by Sinanju ( thank you )

Fire_optikz001
23rd December 2009, 20:47
Release 5.9.1.4 available for test purpose.

send me feedback.
sinanju

Gai-Luron
23rd December 2009, 20:53
LoL

Yisc[NL]
23rd December 2009, 20:54
Here try this

This is not the same file as Gai-Luron is including.
But I'm sure the correct file will be out there somewhere.
Lapper contains this files:

Mono.Data.SqliteClient.dll
Mono.Data.SqliteClient.dll.last
sqlite3.dll

If there are x64 versions of that, and we replace them, would that be sufficient?

Fire_optikz001
23rd December 2009, 20:54
;1337272']This is not the same file as Gai-Luron is including.
But I'm sure the correct file will be out there somewhere.
Lapper contains this files:

Mono.Data.SqliteClient.dll
Mono.Data.SqliteClient.dll.last
sqlite3.dll

If there are x64 versions of that, and we replace them, would that be sufficient?
thats the file i use on my x64 pc O.o

least it used to work

oter thing to try is recompile the sorce selecting x86 then it should work with x64 fine

Gai-Luron
25th December 2009, 15:51
Release 5.9.1.7 available for test purpose.

send me feedback.

And

MERRY CHRISTMAS 2009

+-------------------------------+
|Changes from v5.916 to 5.917 |
+-------------------------------+
Files to replace From the previous version
LFSLapper.exe
replace '&' in all multiline button with %nl% or replace LFSLapper.lpr
replace '&' in all multiline button with %nl% or replace driftmeter.lpr

1. Remove flickering when you display same id button on screen

2. Separator for multiline message is now %nl% (newline) instead '&' to avoid
new line when username or nickname of player contain '&' char

3. Add new separator in text to display in button ( cycling separator ):
%at% is an alternate(s) text, you can have as many alternate text as you
want. LFSLapper display all text separated by %at% one every second

Example
openPrivButton( "drewpitleave02",50,12,100,10,10,10,ISB_DARK,"^1R E M E M B E R !%at%^7R E M E M B E R !%at%D O N ' T C R Y !" );

This display
first "R E M E M B E R !" in red
then "R E M E M B E R !" in white
finally "D O N ' T C R Y !"
then go to the first message and do one more cycle

drew555
25th December 2009, 20:28
Today I celebrated Gai's birthday ;)

Fire_optikz001
25th December 2009, 20:31
LOVE THE UPDATE :d

Gai-Luron
26th December 2009, 12:34
Release 5.9.1.8 fix bugs available.

send me feedback.


+-------------------------------+
|Changes from v5.917 to 5.918 |
+-------------------------------+
Files to replace From the previous version
LFSLapper.exe

1. Fix error when type !stop and then !start in LFS chat window

2. Autorestart LFSLapper instance on error, 4 times
( only if crash < 10s beetween 2 retry ), then go in standBy mode




Put link of the manual in frst post

Fire_optikz001
26th December 2009, 13:52
Release 5.9.1.8 fix bugs available.

send me feedback.


+-------------------------------+
|Changes from v5.917 to 5.918 |
+-------------------------------+
1. Fix error when type !stop and then !start in LFS chat window



:D ment to report this a few days ago also did this ahppen to fix the upd bug? when i do reload or stop on on upd it would crash

i also need list group (http://www.lfsforum.net/showthread.php?t=61328) For my cruise insim or u can make ur own version :)

Gai-Luron
29th December 2009, 21:41
Release 5.9.1.9 fix bugs available. Because i made much modification in instance management. Test it before
Thank Krayy for the bug report and to find it :thumb:
send me feedback.

+-------------------------------+
|Changes from v5.918 to 5.919 |
+-------------------------------+
Files to replace From the previous version
LFSLapper.exe
tops.lpr
handicapper.lpr

1. Rewrite the instance management, dirty code replaced with more clean
and easy to maintain to try to solve bug in 5.9.1.8

2. Correct a bug in tops.lpr script file

3. Fix bug when udp connection and reload config ( thank's krayy )

4. Updated handicapper.lpr file

Fire_optikz001
29th December 2009, 21:58
:D ment to report this a few days ago also did this happen to fix the upd bug? when i do reload or stop on on upd it would crash

Fix bug when udp connection and reload config ( thank's krayy )[/CODE]
Cough

also where to dl this?

Gai-Luron
29th December 2009, 22:50
If you wrote a little better, I understand what you say. I thought you meant upd for update. You use too many abbreviations, they do not understand anything. Try to write a little better, I'm not American and read English is difficult enough for me. Imagine that I write with French abbreviation!

UDP != upd

Gai-Luron
29th December 2009, 23:15
5.919 Released

Fire_optikz001
30th December 2009, 06:02
If you wrote a little better, I understand what you say. I thought you meant upd for update. You use too many abbreviations, they do not understand anything. Try to write a little better, I'm not American and read English is difficult enough for me. Imagine that I write with French abbreviation!

UDP != upd
sorry i have bad spelling D:

emit-nl
30th December 2009, 08:52
Thanks Gai-Luron!
I was wondering.. is it better/faster to use LFSLapper in UDP mode?

Thanks for the update, it fixes a few nice features!

Gai-Luron
30th December 2009, 09:47
No it's better to use in TCP, but some person can't connect in TCP and i don't know what ( maybe firewall ). It's for this i leave old UDP mode in LFSLapper.

In TCP you can have more than one insim connection to your LFS

Gai-Luron

emit-nl
30th December 2009, 09:52
Aah, ok! Now I understand.
Thanks :)

Gai-Luron
30th December 2009, 22:35
Version 5.9.1.9c

Polish translation
Norvegian translation

Thank's for the translation

Gai-Luron
31st December 2009, 19:31
Release 5.9.2.0 for the new year

send me feedback.

Happy New Year!!


+-------------------------------+
|Changes from v5.918 to 5.919 |
+-------------------------------+
Files to replace From the previous version
LFSLapper.exe
LFSLapper.lpr ( languages added )
defPitInfo.lpr ( languages added )
driftdef.lpr ( languages added )
driftmeter.lpr ( languages added )
winnerflags.lpr ( languages added )

1. Rewriting and cleaning GLScript Parser ( Take 6 hours, arghhh ) Krayy now it's most easy to read :p
to be tested accurately. This rewrite is to fix this error
$myVar = $myVar * -1;
now work as intended
2. Add new operator '!' not
!1 -> 0
!0 -> 1
not of a number different to 0 is 0

3. openPrivTextButton now call the callBack subRoutine with 2 arg,
first = idOfButton
Second = Text
Example of called subroutine
Sub goto_sub( $id,$text )
WriteLine( $id );
EndSub

Yisc[NL]
31st December 2009, 20:54
Happy new year Gai and thanks for all the work on Lapper.

Fire_optikz001
1st January 2010, 09:01
Release 5.9.2.0 for the new year

send me feedback.

Happy New Year!!


+-------------------------------+
|Changes from v5.918 to 5.919 |
+-------------------------------+
winnerflags.lpr ( languages added )


Winnerflags.lpr is not included :S

Gai-Luron
1st January 2010, 11:06
Fixed

Gai-Luron
8th January 2010, 19:33
Release 5.9.2.1

send me feedback.

+-------------------------------+
|Changes from v5.920 to 5.921 |
+-------------------------------+
Files to replace From the previous version
LFSLapper.exe

1. Add new event when the drift score is reseted due low speed
Event OnDriftResetScore( $userName ) # Player event
....
EndEvent

2. New function GetUserStoredNum, like GetUserStoredValue but return a numeric value
or -1 if the stored value is a string
GetUserStoredNum( key );
GetUserStoredNum( userName,key );

3. New function GetStoredNum, like GetStoredValue but return a numeric value
or -1 if the stored value is a string
GetUserNum( key );
GetUserNum( userName,key );

4. Fix error on parser when one function splitted in multiline

5. New player Var, this var can also be set
ViewSPBSplit, // What split PB to Show, S = Session, P = PB, W = World record
ShowSplitPb, // Does the split PB iare showed 1 = Yes, 0 = No
UnitSpeedKmh, // What's unit is used for speed and distance 1 = km 0 = miles

6. Add new function GetListOfLang, return an array containig the list of lang available in LFSLapper

emit-nl
9th January 2010, 09:23
Thanks for the update!
I really like you make the ideas of people reallity in a short time:thumb:

Thanks especially for the GetListOfLang function

Tim:D

Gai-Luron
9th January 2010, 19:47
Release 5.9.2.2

send me feedback.

+-------------------------------+
|Changes from v5.921 to 5.922 |
+-------------------------------+
Files to replace From the previous version
LFSLapper.exe
pitboard.lpr

Add new arg to function RegisterNodeAction and RegisterZoneAction, for
no modification add "" in the new arg
old -> RegisterNodeAction( "BL1" , 140 , DisplaySpeed );
new -> RegisterNodeAction( "BL1" , 140 , DisplaySpeed,"" );
Add new arg to function RegisterNodeAction with ""
old -> RegisterZoneAction( "MyZone", "SO6" , 337 , SA_Test3 );
new -> RegisterZoneAction( "MyZone", "SO6" , 337 , SA_Test3, "" );

1. new arg in functions
RegisterZoneAction
RegisterNodeAction
accept a newArg that is of the subroutine called when leave a zone, node.
Example:
RegisterZoneAction( "MyZone", "SO6" , 337 , SA_Test3, SA_LeaveTest3 );
RegisterNodeAction( "BL1" , 140 , DisplaySpeed,ExitDisplaySpeed );

If you don't want a leave subroutine or enter subroutine put "" in arg
RegisterNodeAction( "BL1" , 140 , DisplaySpeed,"" );
RegisterZoneAction( "MyZone", "SO6" , 337 , "", SA_LeaveTest3 );

2. Fixed bug in !pitwindow command

Fire_optikz001
9th January 2010, 21:05
Release 5.9.2.2

send me feedback.

+-------------------------------+
|Changes from v5.921 to 5.922 |
+-------------------------------+
Files to replace From the previous version
LFSLapper.exe
pitboard.lpr

Add new arg to function RegisterNodeAction and RegisterZoneAction, for
no modification add "" in the new arg
old -> RegisterNodeAction( "BL1" , 140 , DisplaySpeed );
new -> RegisterNodeAction( "BL1" , 140 , DisplaySpeed,"" );
Add new arg to function RegisterNodeAction with ""
old -> RegisterZoneAction( "MyZone", "SO6" , 337 , SA_Test3 );
new -> RegisterZoneAction( "MyZone", "SO6" , 337 , SA_Test3, "" );

1. new arg in functions
RegisterZoneAction
RegisterNodeAction
accept a newArg that is of the subroutine called when leave a zone, node.
Example:
RegisterZoneAction( "MyZone", "SO6" , 337 , SA_Test3, SA_LeaveTest3 );
RegisterNodeAction( "BL1" , 140 , DisplaySpeed,ExitDisplaySpeed );

If you don't want a leave subroutine or enter subroutine put "" in arg
RegisterNodeAction( "BL1" , 140 , DisplaySpeed,"" );
RegisterZoneAction( "MyZone", "SO6" , 337 , "", SA_LeaveTest3 );

2. Fixed bug in !pitwindow command

tyvm for adding the exit zone/node sub this defiantly helps me with my cruise addon

Gai-Luron
12th January 2010, 21:42
Release 5.9.2.3 -> minor update

send me feedback.


+-------------------------------+
|Changes from v5.922 to 5.923 |
+-------------------------------+
Files to replace From the previous version
- LFSLapper.exe
- Change in LFSLApper.lpr
old -> Event OnDisConnect( $userName )
new -> Event OnDisConnect( $userName, $reason )

1. Add new arg to event OnDisConnect
Event OnDisConnect( $userName, $reason ) # Player event
Look at const.lpr to view reason list
# Leave Reason on disconnect
const LEAVR_DISCO 0; # disconnect
const LEAVR_TIMEOUT 1; # timed out
const LEAVR_LOSTCONN 2; # lost connection
const LEAVR_KICKED 3; # kicked
const LEAVR_BANNED 4; # banned
const LEAVR_SECURITY 5; # OOS or cheat protection

example:
IF( $reason == LEAVR_DISCO ) THEN
privMsg( "Normal disconnect");
ENDIF
IF( $reason == LEAVR_LOSTCONN ) THEN
privMsg( "Lost connection");
ENDIF

Fire_optikz001
12th January 2010, 21:50
Release 5.9.2.3 -> minor update

send me feedback.


+-------------------------------+
|Changes from v5.922 to 5.923 |
+-------------------------------+
Files to replace From the previous version
- LFSLapper.exe
- Change in LFSLApper.lpr
old -> Event OnDisConnect( $userName )
new -> Event OnDisConnect( $userName, $reason )

1. Add new arg to event OnDisConnect
Event OnDisConnect( $userName, $reason ) # Player event
Look at const.lpr to view reason list
# Leave Reason on disconnect
const LEAVR_DISCO 0; # disconnect
const LEAVR_TIMEOUT 1; # timed out
const LEAVR_LOSTCONN 2; # lost connection
const LEAVR_KICKED 3; # kicked
const LEAVR_BANNED 4; # banned
const LEAVR_SECURITY 5; # OOS or cheat protection

example:
IF( $reason == LEAVR_DISCO ) THEN
privMsg( "Normal disconnect");
ENDIF
IF( $reason == LEAVR_LOSTCONN ) THEN
privMsg( "Lost connection");
ENDIF

dont u also need to update const.lpr?

:O :O :O the exe has pretty colors ^.^

would be coold if the text could actualy be like ^1 = red ^2 = green would be cool if u could do that

Gai-Luron
12th January 2010, 22:01
Yes also conts.lpr

You can add color in const but you need to concat them. Can't and don't want parse a string

Const RED "^7";

"This is " . RED . " red color"

Fire_optikz001
12th January 2010, 22:21
Yes also conts.lpr

You can add color in const but you need to concat them. Can't and don't want parse a string

Const RED "^7";

"This is " . RED . " red color"

i ment in the exe is possible to do that with the lfs colors?
like if u write line my server name it would show ^0[^4S^0C] ^7Cruise Server would be cool if u could make it appear as

i used gray instead of white so u could see

[SC] Cruise Server

Gai-Luron
13th January 2010, 20:31
You speak japanese for me. Color work in LFSLapper!!!!!!:Looking_a

sinanju
13th January 2010, 22:17
Do you mean the colours in the cmd window when you click on lfslapper.exe?

If so, see http://commandwindows.com/configure.htm


Edit: Error in running exe is I forgot to set password in new version of lapper!

Fire_optikz001
14th January 2010, 04:00
no i mean like lets say my servers name is ^0[^4^0C] ^7Cruise Server it would be cool if it showed the actual colors instead of ^0[^4^0C] ^7Cruise Server

avetere
14th January 2010, 10:01
If so, see http://commandwindows.com/configure.htm


seeing that color-table for the first time, the question arrises:
Why did the devs decide to swap the codes for red/blue and yellow/cyan ? The rest seems to be done in quite analogy to that table ... :confused:

Gai-Luron
14th January 2010, 11:15
no i mean like lets say my servers name is ^0[^4^0C] ^7Cruise Server it would be cool if it showed the actual colors instead of ^0[^4^0C] ^7Cruise Server

Showed Where?

Fire_optikz001
14th January 2010, 13:26
Showed Where?
cmd window

see window for what i mean

Gai-Luron
14th January 2010, 13:32
In console window when you use writeline

Krayy
14th January 2010, 19:12
In console window when you use writeline
The problem there is that you will need to convert the color codes (^7 etc) to ANSI color codes, which is a pain in the arse. Just write the output using the NickNameStripped player var which has the color codes already removed.

sinanju
14th January 2010, 19:25
The problem there is that you will need to convert the color codes (^7 etc) to ANSI color codes, which is a pain in the arse. Just write the output using the NickNameStripped player var which has the color codes already removed.
And for those that don't understand Australasian lingo;
'qui est une douleur dans le cul'.
I think

Fire_optikz001
14th January 2010, 21:59
NickNameStripped
is there a way to strip colors from anything?

like Strip( GetCurrentPlayerVar("NickName") );

Krayy
14th January 2010, 23:02
is there a way to strip colors from anything?

like Strip( GetCurrentPlayerVar("NickName") );
Gai would have to write a GL callable function to pass and return the string to the stripLFSColor function.

Gai-Luron
15th January 2010, 16:57
Release 5.9.2.4

send me feedback.


+-------------------------------+
|Changes from v5.923 to 5.924 |
+-------------------------------+
Files to replace From the previous version
- LFSLapper.exe
- Add event OnChangePos in LFSLapper.lpr or replace LFSLapper.lpr

1. Fixed bug in setuserstoredvalue when not used in player event
2. Fixed bug in getuserstorednum when not used in player event
3. Fixed bug in getuserstoredvalue when not used in player event
4. Fixed bug in privmsg when not used in player event
5. Add new LFSLapper function StripLFSColor to remove all color and lang char in string
$var = StripLFSColor("^7toto^8tata");
6. Add new Event OnChangePos triggered when player change his position in race or qual
Event OnChangePos($userName,$lastPos,$currPos)
...
EndEvent

Danny LFS
15th January 2010, 17:07
Release of 5.923 was 3 days ago! Don't you think development is a bit too fast? (on the good side though;))

Gai-Luron
15th January 2010, 19:34
Hello,


There are little update and fix bug. Big modifications are not done.*


Gai-Luron

Fire_optikz001
15th January 2010, 20:39
5. Add new LFSLapper function StripLFSColor to remove all color and lang char in string
$var = StripLFSColor("^7toto^8tata");

this cuts off the first and last letter of what it strips :/

Gai-Luron
15th January 2010, 20:41
Ok, i forgot one thing, i fix it soon

Fire_optikz001
15th January 2010, 20:48
Ok, i forgot one thing, i fix it soon
k :)

Gai-Luron
15th January 2010, 21:12
Fixed, download version b. Change only LFSLapper.exe


Gai-Luron

Fire_optikz001
15th January 2010, 21:25
Fixed, download version b. Change only LFSLapper.exe


Gai-Luron

Thanks now i can do the thing with my clan tag protection :D

Fire_optikz001
16th January 2010, 18:26
um u might want to fix ondisconnect (add $reason ) on the includes :)

Gai-Luron
16th January 2010, 18:54
it's better if you specify the script where the error is. this to avoid search it!

Fixed in 5.9.2.4c

replace pitboard.lpr

Gai-Luron


u = you , please use this last word, better for understand, thank's

lysergic
19th January 2010, 22:55
it's better if you specify the script where the error is. this to avoid search it!

Fixed in 5.9.2.4c

replace pitboard.lpr

Gai-Luron


u = you , please use this last word, better for understand, thank's

Stop that Gai!! You are working too much, really!

;)

Gai-Luron
20th January 2010, 21:19
Stop that Gai!! You are working too much, really!

i work too much to allow LFSLapper Script developper to work hard to write good script for the community. ;)

Release 5.9.2.5

send me feedback.

+-------------------------------+
|Changes from v5.924 to 5.925 |
+-------------------------------+
Files to replace From the previous version
- LFSLapper.exe

1. Add new function to open private button for another player
Syntax :
openButton( username, idOfButton, left, top, width, height, interline, secondDisplayed, style, text[,optional_backCall] );

2. Add new function to close private button for another player
Syntax :
closeButton( username, idOfButton );

3 - Add new command openTextButton, to open a button who query an input string for a specified player
openTextButton( "username","ref2",103,140,20,10,10,32,"Caption","Toto",30,saisTxt );

Open a button for the current player, args are
1 - UserName of the player who want open a text button
2 - Unique id for this button
3 - Left coordinate for this button ( 0-200 )
$origL = (value between 0-200); - when this value is used, every next value can be made relative to this one (example: $origL + 5;)
4 - Top coordinate for this button ( 0-200 )
$origT = (value between 0-200); - when this value is used, every next value can be made relative to this one (example: $origT + 5;)
5 - Width of the button ( 0-200 )
6 - Heigth of the button ( 0-200 )
7 - Space between line in multiline button
8 - Format of the button, look at insim.txt for values
9 - Caption displayed in the input box
10 - Button Text
11 - Number char to be input
12 - Backcalled sub

Backcalled function receive 2 args
first = idOfButton
Second = Text
Example of called subroutine
Sub goto_sub( $id,$text )
WriteLine( $id );
EndSub

Yisc[NL]
20th January 2010, 22:01
All these releases are awesome Gai.
Too bad I haven't any time to play with Lapper at all :(

Fire_optikz001
21st January 2010, 01:22
1. Add new function to open private button for another player
Syntax :
openButton( username, idOfButton, left, top, width, height, interline, secondDisplayed, style, text[,optional_backCall] );


ty :D now i can finish the last bit of my cop sys for cruise addon and ill be releasing it :D



2. Add new function to close private button for another player
Syntax :
openButton( username, idOfButton );

3 - Add new command openTextButton, to open a button who query an input string for a specified player
openPrivTextButton( "username","ref2",103,140,20,10,10,32,"Caption","Toto",30,saisTxt );
typos?

loconstant
21st January 2010, 10:38
Merci Gai-luron, pour tout ton travail !!!!

Gai-Luron
21st January 2010, 13:54
De rien Loco ;) d'un autre coté, t'as un Wagon de retard avec LFSLapper :p, honte sur toi :D

Rigth Fire_optikz001 :shy:


2. Add new function to close private button for another player
Syntax :
closeButton( username, idOfButton );

3 - Add new command openTextButton, to open a button who query an input string for a specified player
openTextButton( "username","ref2",103,140,20,10,10,32,"Caption","Toto",30,saisTxt );

loconstant
21st January 2010, 14:21
Ouais mais gcomp fait de nouveaux truc :), je me lance ce soir sur lapper....

Gai-Luron
21st January 2010, 14:51
Des trucs cochons j'espère :D

Gai-Luron
15th February 2010, 17:29
New intermediate Release : 5.9.2.6

+-------------------------------+
|Changes from v5.925 to 5.926 |
+-------------------------------+
Files to replace From the previous version
- LFSLapper.exe
- addonused.lpr
- utils.lpr
- consts.lpr

1. Add new function RandomNum to have a randomized number
RandomNum() return a decimal number between 0 and 1
RandomNum(a,b) return a decimal number between a and b
RandomNum( -100,100 ) return a number between -100 and 100
RandomNum( 100,120 ) return a number between 10 and 120

2. Add new function isRegexMatch to test if an expression match a regex expr
Example : To test if a string is a time string
isRegexMatch( "^[0-9]{1}\.[0-9]{2}\.[0-9]{2}", "1.24.30" ) return 1
isRegexMatch( "^[0-9]{1}\.[0-9]{2}\.[0-9]{2}", "12.24:30" ) return 0

search regular expression on the net to know how work regular expressions

3. Add new function getListOfPlayerButton, this function return an Array containing
all the name of the currently displayed player button

4. Add a new lpr file containing some GLScript usefull fonction
Added in this file
- closeButtonRegex( $userName, $exp ) to close all button of one player that idOfButton match
$exp. $exp it's a regular expression
- adminMsg to send a message to all admin present on server

5. Add new event when practice start
OnPracStart( $numP ) this event receive number of player present

6 Add new lapper's vars
$raceInProg -> return value 0,1,2 relative to race status, look at consts.lpr
$raceId -> an unique race identificator that in the race start date time

Fire_optikz001
15th February 2010, 19:45
New intermediate Release : 5.9.2.6
Nice work :D

does this have support for 64 bit or have you not finished that yet?

also you did not include the updated exe :S we have to build it ourselves

Gai-Luron
15th February 2010, 20:06
Sorted, Download b version.

I change to Visual Studio 2008 and i forgot to change some things :)

Fire_optikz001
15th February 2010, 20:09
What did you say, it's present
when i extracted the exe it was version 5.9.2.5 went into source built it and it was 5.9.2.6 i think you forgot to build the exe...

on the other hand i love how u can now have decimals in random number... :D didnt know u could do that...

Gai-Luron
15th February 2010, 20:21
not work on 64bit, modification not all done

Fire_optikz001
15th February 2010, 20:24
not work on 64bit, modification not all done
kk i can not wait

Gai-Luron
20th February 2010, 17:48
Beta release 6.000 for 64bit system


Beta Release for 64 bits test
http://www.lfs-lapper.org/download/l...0beta64bit.zip (http://www.lfs-lapper.org/download/lapper/LFSLapper6.000beta64bit.zip)


Gai-Luron

Bass-Driver
19th March 2010, 16:09
when comes the final release of 6.000??

lysergic
21st March 2010, 21:22
Hi I think there is a file missing in the last version: include( "./listevent.lpr");

Gai-Luron
22nd March 2010, 15:54
Hello 6.0.0.0 can be considered as stable version.

I'am busy on how to use Grammatical analyser to use with current GLScript Lexer to have an easy way to upgrade and powerfull GLScript.

But you can use 6.0.0.0, it's seem's to e stable


Gai-Luron

Yisc[NL]
23rd March 2010, 11:39
Hi Gai, reported a bug about Lapper 5.9.2.6b in your email.
Just tested the same thing with 6.0.0.0 and the bug is present there too.

Gai-Luron
23rd March 2010, 19:49
Not a bug

Yisc[NL]
23rd March 2010, 20:24
Not a bug

Clearly a bug, see new email ;)
And to make it not too much oftopic for the rest of the readers.
Start Lapper with a totaly default script, start driving another car then set in $DefaultTopCar (which is XFG by default) and then type !distance
This will display the distance driven with the XFG on the selected track, instead of the car the player is driving.
No matter what car your are driving, it always displays the first value set in $DefaultTopCar

Gai-Luron
24th March 2010, 18:44
Hello,

New selected car is activated only when you return on track. It's an insim limitation, car is sended on join track not on change in pit
If you join server with a different Car, the value used is defaultTopCar. This value is set on join track

Gai-Luron

emit-nl
29th April 2010, 11:10
Hello 6.0.0.0 can be considered as stable version.

I'am busy on how to use Grammatical analyser to use with current GLScript Lexer to have an easy way to upgrade and powerfull GLScript.

But you can use 6.0.0.0, it's seem's to e stable


Gai-Luron

Is it better for me to wait with upgrading to 6.0.0.0 beta b, because you are upgrading the GLScript? Or won't there be much changes?
I'm now running LFSLapper 5.9.2.6.
How long do you think it will take before you have finished a new release?

Thanks!
Tim

Gai-Luron
29th April 2010, 21:26
Hello,

I make a break, no dev for now! to much work at my job

Gai-Luron

emit-nl
2nd May 2010, 10:51
Ok, no problem. Then I'm going to work on the 6.0.0.0 beta b version :)
Thanks for all the work you did already! :D And good luck on your job!

Kind Regards,
Tim

Gai-Luron
2nd July 2010, 17:17
New Patch Release By Krayy: 6.6.1.0


+-------------------------------+
|Changes from v6.001 to 6.010 |
+-------------------------------+
Patch For Krayy

1. New vars:
"mustpit" – this returns a 1 or 0 if the /mustpit flag is set in the server (although it only does it when it receives an IS_RST, which is at restart, so maybe we should request an IS_RST at certain times during the race, like 25%, 50% and 75% complete)

2. New functions:
Getplayervarbyucid – returns a var when giving the UCID. Used for more compact lpr code when using buttons (see attached gui files, which I will put on forums later)
Getplayervarbyplid – as above but uses PLID
Userisserveradmin – has the user logged in as a server admin, or is he a member of admin group, or is he UCID 0?

3. New event:
OnButtonFunction – run when user presses Shift+I or Shift+B

+-------------------------------+
|Changes from v5.925 to 6.001 |
+-------------------------------+
Files to replace From the previous version
- LFSLapper.exe
- who.lpr

1. No need to unset var if reasigned with getListXXXX GLScript function


+-------------------------------+
|Changes from v5.925 to 6.000 |
+-------------------------------+
Files to replace From the previous version
- LFSLapper.exe
Files to Add in exe folder
- libsqlite3.so.0.so
- System.Data.SQLite.dll
- sqlite3.dll
Files not yet used
- Mono.Data.SqliteClient.dll

Fire_optikz001
2nd July 2010, 23:31
New Patch Release By Krayy: 6.6.1.0
:D yay now i can fix some bugs on my cruise insim

... what vars are required for OnButtonFunction?

you didn't include it in the lpr

Krayy
3rd July 2010, 00:54
:D yay now i can fix some bugs on my cruise insim

... what vars are required for OnButtonFunction?

you didn't include it in the lpr
Oops. Put this in Lapper.lpr as a template for it

Event OnButtonFunction($userName, $SubT) # Player Event
# DEBUG ("Button SubT for " . $userName . " is " . $SubT);
EndEvent

Fire_optikz001
3rd July 2010, 01:18
Oops. Put this in Lapper.lpr as a template for it

Event OnButtonFunction($userName, $SubT) # Player Event
# DEBUG ("Button SubT for " . $userName . " is " . $SubT);
EndEvent

ty :]

Gai-Luron
5th July 2010, 19:35
New lpr Release By Krayy: 6.6.1.1



+-------------------------------+
|Changes from v6.010 to 6.011 |
+-------------------------------+
Add Krayy Library

1. remove old help command in lfslapper.lpr
2. Add multi tabbed lib in .lpr file, look at gui_help on how to use
3. New commands in lfs:
!ma
!hc
!help
Multi-lang to do in gui_help.lpr

DftKing
21st July 2010, 05:25
i get a error

id_main ongooddrift not found


i have figured out that this is where its suppose to broadcast to the server that someone made a good drift and how much etc. but it dosent work

and i cant find a line in the config(s) that corrisponds to it


im useing version 5.925

and the driftmeater mode

sinanju
21st July 2010, 12:16
Version 6.010 (and earlier) of lapper has bug in driftmeter.lpr.

Has main_ongooddrift - should be driftmeter_ongooddrift

Fire_optikz001
1st December 2010, 05:03
http://www.frh-team.net/reglapper/ gives 500 Internal Server Error

Dygear
1st December 2010, 05:14
Working fine for me.

loconstant
1st December 2010, 09:30
works for me too, not so much live server left...

Fire_optikz001
10th December 2010, 00:36
i have made an unofficial automated Lapper installer


Automatically downloads the latest version
Automatically Extracts it for you too

*Note: this only works on windows*

LINK (http://dl.dropbox.com/u/10898783/Cruise/Installer.vbs)

Dygear
10th December 2010, 07:04
i have made an unofficial automated Lapper installer


Automatically downloads the latest version
Automatically Extracts it for you too

*Note: this only works on windows*

LINK (http://dl.dropbox.com/u/10898783/Cruise/Installer.vbs)

Visual Basic ... Really!?

emit-nl
10th December 2010, 07:47
Cool! :)
However, I know it isn't a virus, but BitDefender says it is a "Generic.XP.ADODB.0236799D" and blocks it.
What's the reason of this you think? ;)

Nice work anyway.. :P

Tim

Fire_optikz001
10th December 2010, 12:36
@Dygear whats wrong with Visual basic? :3

Cool! :)
However, I know it isn't a virus, but BitDefender says it is a "Generic.XP.ADODB.0236799D" and blocks it.
What's the reason of this you think? ;)

Nice work anyway.. :P

Tim

ADODB would be where it attempts to download,,, i can assure you it is not a Virus

emit-nl
10th December 2010, 14:49
I know it isn't a virus :) But BitDefender won't let me download it.

Tim ;)

Dygear
10th December 2010, 18:53
@Dygear whats wrong with Visual basic? :3

This:

However, I know it isn't a virus, but BitDefender says it is a "Generic.XP.ADODB.0236799D" and blocks it.

BitDefender won't let me download it.

VBS has a bad rep because of all of the script kiddies but there is a reason for that. It was easy to exploit the system, and still kinda is.

Fire_optikz001
10th December 2010, 21:22
This:
VBS has a bad rep because of all of the script kiddies but there is a reason for that. It was easy to exploit the system, and still kinda is.

it does not give me any problem :/

racing.dude
13th December 2010, 06:00
has anyone got versoin 6.00 running on windows 7 64bit
all i get is error -
15/02/2010 21:18:37 -> Not a connexion packet! Close connection

any ideas

Fire_optikz001
13th December 2010, 21:45
has anyone got versoin 6.00 running on windows 7 64bit
all i get is error -
15/02/2010 21:18:37 -> Not a connexion packet! Close connection

any ideas

Make sure you have the Ip port and pass set correctly

ardalan5090
17th December 2010, 16:42
Hi
i use lfslapper and enjoy it!
but i can not see drift point window in the race.
what i do ?
command plz ?
tnx

sinanju
17th December 2010, 17:20
To see drift score table, type !drf or !drf xrt if you want to only want to see top XRT drift points, !drf rb4 for RB4 points, etc.

If you can't see any drift points as you are driving and drifting, then you haven't enabled the driftmeter.lpr addon.

Look in your ./default/includes folder for file called addonsused.lpr. If th ere is a hash (#) symbol in front of the include( "./driftmeter.lpr"); line, then remove it and save the file.

This will enable the scoring window.

ardalan5090
18th December 2010, 16:06
thanks alot :thumbsup:

ardalan5090
22nd December 2010, 17:38
how can i clean soccer save in lfslapper ?
i can see them with !top
i want erase them

thank you .

Gai-Luron
19th February 2011, 15:39
New Patch Release By Krayy: 6.6.1.2


Here's a small update to the GetPlayerInfo function in the scriptFunctions.cs file to allow calling it wothout any paramas returns the current player info e.g called as

$currPly = GetPlayerInfo();

Will return the info array for the current player,

$currPly = GetPlayerInfo("Krayy");

returns infor for specific player.

omar hasan
3rd March 2011, 11:16
is that for drift points?? bec when i open it on LFS it doesnot show drift points just this ??

sinanju
3rd March 2011, 12:19
Looks like you are in the Forces view - press the F key to toggle on/off.

To get the drift scoreboard working, look at my post of 17 December - just a few above your post.

omar hasan
3rd March 2011, 12:52
but i play with mouse and i play in force

omar hasan
3rd March 2011, 13:10
but i need it like this

omar hasan
3rd March 2011, 14:42
need help fast plz

omar hasan
3rd March 2011, 16:36
plz help me ther is 11 views for the photo any one help me

91mason91
3rd March 2011, 18:56
plz help me ther is 11 views for the photo any one help me

Read :x

Dygear
3rd March 2011, 21:08
you are in the Forces view - press the F key to toggle on/off.

This also has nothing to do with LFSLapper ... What an epic fail ...

sinanju
3rd March 2011, 21:51
plz help me ther is 11 views for the photo any one help me
The scoreboard in your image isn't the standard drift scoreboard.

omar hasan
4th March 2011, 15:14
The scoreboard in your image isn't the standard drift scoreboard.

so how can i make it like that??

BIzO
4th March 2011, 17:54
so how can i make it like that??

to see drift score table, type !drf or !drf xrt if you want to only want to see top xrt drift points, !drf rb4 for rb4 points, etc.

If you can't see any drift points as you are driving and drifting, then you haven't enabled the driftmeter.lpr addon.

Look in your ./default/includes folder for file called addonsused.lpr. If th ere is a hash (#) symbol in front of the include( "./driftmeter.lpr"); line, then remove it and save the file.

This will enable the scoring window.

:x

sinanju
4th March 2011, 18:10
so how can i make it like that??
Open the driftmeter.lpr file, look for the section
CatchEvent OnDriftScore
and move & resize buttons to suit.

Buttons consist of various parameters;
button id, x co-ord, -y co-ord, button width, letter height, letter spacing, time, button background and text justification placement, and the text (coloured if you prefer) you want to show.

For instance;
openPrivButton( "test_button",6,146,20,6,6,6,32,"^1Test");
Button called 'test_button' is 6 in from left (out of 200), 146 down from top (out of 200), 20 wide, with 6 high letters and 6 spacing, with red text centred on a dark background reading 'TEST'.

Lots of details on how to make and configure in the LFSLapper doc folder.

Or, alternatively, you could ask the admin of the server you were on, but don't hold your breath.

A lot of work goes into something like that, and as a unique draw to get people into their server, most server owners won't part with their insim.

Don't want to appear rude, but as a demo user, you're even less likely to be given something like that.

Yisc[NL]
1st June 2011, 18:56
Is there any chance the latest version of Lapper being made available for x64 systems too?
I'm trying to get back into it, but since I'm running Windows 7 x64, the latest version of Lapper won't start at all.

Is there a way to ignore a piece of script when Lapper starts?
I'm having a valid piece of code, but due to a value being empty when Lapper starts, it throws an error and Lapper aborts.

sinanju
1st June 2011, 22:38
;1599116']Is there any chance the latest version of Lapper being made available for x64 systems too?
I'm trying to get back into it, but since I'm running Windows 7 x64, the latest version of Lapper won't start at all..
I got new 64-bit pc running Win7 Pro, and have had no problems with any of the 5.9x or 6.x Lapper versions.

T3charmy
16th October 2011, 01:31
Alright, I received a reply back from Gai, He said that I could Continue development on this for now, for now, I plan to just keep it simple as possible such as adding access to new packets! (If you don't hear back from me in the next few hours... I have probably given up...

Edit: looking on how to add new packets now so...

Krayy
23rd October 2011, 09:57
Alright, I received a reply back from Gai, He said that I could Continue development on this for now, for now, I plan to just keep it simple as possible such as adding access to new packets! (If you don't hear back from me in the next few hours... I have probably given up...

Edit: looking on how to add new packets now so...
I've already added collisions and admin packet processing in a forked build if you need it.

ViKTOOR-LFS
29th October 2011, 16:23
hi there

i have little problem with this code :


#$SwearWordsList = "&./swear.txt";
$SwearWordsMax = 2; # Maximum number of allowed swearwords per session

Event OnSwearWords1( $userName ) # Player event
privMsg( langEngine( "%{main_swear11}%" ) );
privMsg( langEngine( "%{main_swear12}%", GetCurrentPlayerVar("SwearWordsRem") ) );
EndEvent

Event OnSwearWords2( $userName ) # Player event
privMsg( langEngine( "%{main_swear21}%" ) );
cmdLFS( "/kick " . GetCurrentPlayerVar("UserName") );
EndEvent

how i can make them banned ??

caz im try to do like this

cmdLFS( "/ban " . GetCurrentPlayerVar("UserName") );

but nothing happen !!

E.Reiljans
29th October 2011, 16:37
you must add number of days in the end (like 999 or 1).

ViKTOOR-LFS
29th October 2011, 16:53
you must add number of days in the end (like 999 or 1).

i already now did like this:

cmdLFS( "/ban 999 " . GetCurrentPlayerVar("UserName") );


still the same ! coming After like this word

Too many swearwords, spectated :shrug:

E.Reiljans
29th October 2011, 17:21
It should becmdLFS( "/ban " . GetCurrentPlayerVar("UserName") . " 999");notcmdLFS( "/ban 999 " . GetCurrentPlayerVar("UserName") );

ViKTOOR-LFS
29th October 2011, 17:56
It should benot

YESSSSS :nana:

THANK YOU E.Reiljans :Handshake

sankkuq
24th November 2011, 07:52
Hi! -how i can enable kick voting but not ban voting like when u press ban vote button and if bans voting enabled 6/6 players he just get kicked and then he can come back normally.. :shrug: Only admins can ban. Someone know how to do that? And how to change to partice ??