The online racing simulator
Searching in All forums
(969 results)
sinanju
S3 licensed
I'm not sure what translation service you are using, but it's outputting rubbish, or at least, nothing I can understand.

The Hazard Lights script is a CASE command that will output buttons ONLY when you type the word "!blink".

If you already have other buttons in your lapper script called 'blink', then the newer buttons will overwrite the older same name buttons.

Is this what's happening?
sinanju
S3 licensed
Without seeing your code script, likely not much can be done to help.
sinanju
S3 licensed
If you're not using 'regex' to close buttons, then you'll have to show your code (preferably saved in a zip file) so someone can look at it.
If you are using regex, then you need to change your code a bit, but it's possible that you have given multiple buttons the same name.
sinanju
S3 licensed
Updated times for this track layout, which is still on my Sin'rs server, along with best drift scores to date (number 1 is best score I've ever seen on any of my layouts!) ...

South City SO6y Ellhell
sinanju
S3 licensed
Made this layout a while ago, and was going to put it on one of my servers once I'd done timed laps in every car. Unfortunately, my wheel and pedals went wonky, so couldn't finish doing laps in every car.

Track layout ...


My best times (single lap sprint) ...



Different track views ...



Be aware that the track isn't smooth - this is deliberate. Lots of people have complained over the years that the LFS tracks are too smooth, so I made bits that overlapped and this causes bumps. Think of it as how a track might be after a small earthquake tremor - only you are driving on an iffy track that's a long fall down!
sinanju
S3 licensed
To help others in future who may have similar issue, can you please detail what the problem actually was, along with the solution?
sinanju
S3 licensed
What would be simpler, would be large single colour light panels that you could place and have change the colour of, both by InSim command, as is possible just now for the existing layout start-lights.

Colours of Green (safe), Yellow (warning), Red (danger), and Blue (let leaders past).

Not only could they be used for proper racing, but if you were to place the Red, Yellow (as Amber) and Green in certain permutations (vertical, horizontal), then you could make your own traffic/start lights as you suggest.
sinanju
S3 licensed
The few people who make layouts do so regardless of size of area available or number of objects that can be placed.

Increasing these will make little difference, except for those that make layouts.

Part of the challenge for the layout maker is to see if you can make something challenging with what tools we already have.

Part of the challenge for the driver, is to see if they are better at the layout than anyone else.

For someone who is likely to only spend just over 2 hours a year on LFS (5 mins x 26 fortnights = 130 mins), I don't think you are qualified to say anything about the game.

If you were to spend the same amount of time playing LFS as the average person brushed their teeth in a fortnight, maybe I'd think you had a viewpoint worth exploring, but you don't, and neither are you brave enough to put your country rather than hiding behind "other".
Nodes and Zones
sinanju
S3 licensed
For this tutorial, it is assumed that you will already be aware on how to code basic buttons.

In LFSLapper ("lapper"), you can use Nodes and Zones to ‘trigger’ a sub-routine (a ‘sub’) for something to happen, for instance, open a button to display text.

Node
A Node is an invisible line that cuts across a track, and divides the track into small sections.



Typically, nodes would be used for Start/Finish lines, and splits/sectors. On LFS tracks, these are hard-coded in specific nodes on the track. You can place your own Start, Finish and (up to 3) split/sector lines on your own layouts. If placing these items, LFS and lapper are both configured to give timing details.

If you know the Node number, you can also define that to trigger your own sub.


Zone
A Zone is an invisible circular area that can be placed on any area of the track, or even off-track, and is used to trigger an event.



With LFS running, and LFSLapper connected to your LFS server (either online or local), you can find the Node and Zone coordinates by driving to the area you want to define then typing the following commands;

!node
!zone

Typing !node will display a single number (e.g. 123), and typing !zone will display the X and Y coordinates (e.g. -40 123).

Zone X and Y coordinates can be negative numbers as well as positive. And a zero (0).

These Node and Zone numbers will be needed for any code you make.

Once you have the numbers, you have to Register the node or zone, which is used to define the place chosen.

In lapper, the code could look like;

RegisterNodeAction ( "AS1", 123, RadarTrap1, "" );
RegisterZoneAction ( "BL1", -40,123, 5 , Ye_Olde_Shoppe, "" );

RegisterNodeAction
The first part of the code defines the Track name abbreviation.
The second part, the number, defines the Node line.
The 3rd part defines the name of the sub(-routine) that is to be run when a car crosses the specified node.
The double quotes can be used if you want a second sub to run when car leaves node. Replace quote marks with name of sub. Leave quote marks if no sub is to be used.

Example sub for node;

Sub RadarTrap1($userName,$ZoneID)
openPrivButton( "ts_back",180,100,20,24,1,-1,16, "");
openPrivButton( "ts_front",181,101,18,22,1,-1,32, "");
openPrivButton( "ts_radartext",180,101,20,8,1,-1,0,"^1R A D A R");
openPrivButton( "ts_speed",102,107,16,5,4,6,0,( langEngine ( "%{ts_speed}%", $TrapText, ToPlayerUnit($TopSpeed), GetCurrentPlayerVar("UnitSpeed") )) );
EndSub

This sub basically opens a background box, with RADAR at top, and your speed underneath.

Example output of a Node sub



RegisterZoneAction
The first part of the code defines the Track name abbreviation.
The second part, the 3 numbers, defines the X and Y coordinates, along with the size of the zone in metres. Minimum size would be 1.
The 3rd part defines the name of the sub(-routine) that is to be run when a car crosses into the specified zone.
The double quotes can be used if you want a second sub to run when car leaves zone. Replace quote marks with name of sub. Leave quote marks if no sub is to be used.

Example sub for zone;

Sub Ye_Olde_Shoppe($userName,$ZoneID)
openPrivButton( "yos_back",80,80,20,24,1,-1,16,"");
openPrivButton( "yos _front",81,81,18,22,1,-1,32,"");
openPrivButton( "yos _text_top",80,81,20,8,1,-1,0,"^1Ye Olde Shoppe");
openPrivButton( "yos _text_main",80,89,6,6,1,-1,0,"^0Welcome to this shop%nl%^0where you find%nl%^0 all sorts of%nl%^0wonderful goods!");
EndSub

Example output of a Zone sub




Or to put it another way, think of SatNav - you put in your destination (the ZONE), and when you get there, you get message that you've arrived (the SUB_ROUTINE).

You can help define the node or zone by adding lines and objects, which will help to show the section better than just seeing an anonymous piece of track or off-track area.


EDIT: Updated for LFSLapper V7.0.4.4 as the sub callback for Zones and Nodes now has an extra variable ($ZoneID).
Last edited by sinanju, .
Testing 'Lapper' with your local (offline) server
sinanju
S3 licensed
Sometimes before you run your lapper scripts on your server, it's a good idea to test them out on your own local pc and iron out any unwanted bugs. Or maybe you just want to see what lapper looks like running.

For these tasks, you should run them locally. To do so, then .....

.... open your LFSLapper file, and find the default_1.ini file (usually in /bin/default folder), and open with a text editor (like Notepad).

Edit the file by entering your password, then save and close the file.

Run LFS as normal.

Choose "Multiplayer" option.

Choose "Start New Host"

At the next scree, pick the track/layout/weather that you want to use.

Once chosen, you will be taken to the "Start New Host" screen.

Make changes as follows;

Online mode: (choose your Licence [e.g. S3] or choose what suits you.
Visibility: local
Host Name: (whatever you want to call your local host, e.g. HOME)
Host Password: enter a password
Admin Password: enter a password
IP Address: auto
Port: 63392


> Local host configuration settings

Press the green GO button.

You may get the Windows Firewall message appear. Allow access to Private networks.

When you get to the Car/Track selection screen, type
/insim 29999


> what to type

A confirmation message (InSim : port 29999) will appear in top left hand corner.

Go back into your LFSLapper file, and look for the LFSLapper.exe file (usually found in /bin folder).

Click on this file to start lapper.

If things work properly, a Command Prompt type window will open, and will give the LFSLapper Version number, along with small amount of blurb, finally ending with greater than (>) symbol. When finished with lapper, this is where you would type quit, and it will stop lapper and close this window.


> command prompt window

If things work normally, then you will see a large Welcome message in the middle of the LFS screen.


> non standard lapper made welcome message
sinanju
S3 licensed
It will be difficult to help unless you can tell people what programming language or InSim you're going to use.

In LFSLapper ("lapper"), it's fairly easy.

You would run lapper, drive to the area you want the zone (your shop, bank, etc) to be located, type the command word "!ZONE", and you will be given X and Y co-ordinates. These are used in your code to define your zone.

The 1st part of the code would look like;

RegisterZoneAction( "BL1" , -60,106, 5 , Knocking_Shoppe,"" );

Where -60 is X, 106 is Y, and 5 is how big an area (in metres).

The "Knocking_Shoppe" would be the name of your sub-routine to run when someone enters the proscribed zone.

Example:

Sub Knocking_Shoppe()
<define what happens when you enter proscribed zone,
e.g. open Button with text, such as "Welcome to XDriftingKingx's Knocking Shoppe - all welcome">
EndSub

With other Languages/InSims, likely to be bit more complicated, especially if there's no easy way to get the X and Y co-ordinates.

Like I said in my 1st post, first you define a zone, then you run a sub-routine when someone enters the zone.

In the case of lapper, you use "RegisterZoneAction" to define your zone, then within that line of code, you have name of sub-routine, and you will have a sub-routine code which will run when a driver enters the zone.

In some cases, it would also be possible to do exactly the same with a NODE, but you can't define an area as such, just really a line that crosses the track or layout. The Finish line is a Node that has a sub-routine that runs when you finish the lap/race (e.g. give time and/or position, etc). Nodes are also used to give Split/Sector times.

Lines and objects can be placed at the Zone or Node to help define the place bit better than just an anonymous piece of track or off-track area.

So, to recap;

> define (specify X/Y co-ordinates) the area (zone/node) you want your shop (or whatever) to be on the circuit or layout
> append sub-routine code to run (what's to happen) when driver enters the defined area.

Or to put it another way, think of SatNav - you put in your (ZONE) destination, and when you get there, (SUB_ROUTINE) you get message that you've arrived.
sinanju
S3 licensed
I don't know what you know, just that you asked a question, for which I gave a perfectly good answer. Maybe you should have given more information or worded your question differently?

And you still haven't said what InSim or programming language you are using.
sinanju
S3 licensed
You have to define a X, Y 'Zone', and you can call this zone anything you want, eg shop, bank, station, hideout, etc.

With so many objects that can now be placed, you can now even make shops, etc, to stand on this zone - or mark the zone with barriers and lines.

How you define the Zone will depend on what InSim or programming language you are using. You will have to advise what this is if you want more specific information - for instance, in lapper, you 'register' a zone, and define the zone name, X and Y stats, and append a sub-routine to run when a driver enters this specific defined zone in one of their cars.
sinanju
S3 licensed
Quote from Bass-Driver :... We need moderators in this LFSLapper Development section.

Thought I'd ask Devs if you and Yisc[NL] could be moderators for the lapper section Smile
Use your new powers wisely!
sinanju
S3 licensed
Quote from Siikais1 :Hello Sinanju!
who told that i need fully completed twin system?

You did
Quote from Siikais1 :i want to start new Twin system!
But idk where i need to start and how to start ;(

sinanju
S3 licensed
From my viewpoint, it looks like you want more than help. In fact, it sounds like you want someone to provide you with a fully complete working system, without any effort by yourself, and likely, if supplied with a system, you would be looking for ongoing support as well.

The fact you don't even know exactly what file you've to look it, speaks volumes about your likely lack of understanding on how to code lapper, even if you manage to open and read the correct file.

Can you explain why someone should just give you a twin drift system?

Apart from being more competition for getting people on our own servers, what will you, especially as a demo user, be contributing?
sinanju
S3 licensed
Looks like it may be a private or global message, both of which are limited in character length, rather than a button, which has long character length, so best if you split message into 2 lines.

Put the 'You will be banned....' into its own separate message line.
sinanju
S3 licensed
Been a long time since I've seen these messages, but I think it's the private messages in the Event OnNotMatchFlags section.

Put a # (hash) in front of every line that starts privMsg.

If messages disappear after that, then you can leave like that, or delete all lines starting privMsg - don't delete the Event/End Event lines.
Editing standard driftmeter.lpr script to suit your own requirements
sinanju
S3 licensed
If you open the driftmeter.lpr file (any text editor) and look for following 2 buttons -

openPrivButton( "drftscoretext",186,160,9,5,3,-1,0,langEngine( "%{driftmeter_driftscoretext}%" , $LastDriftScore ) );
openPrivButton( "driftcombotext",187,150,9,7,3,-1,0,langEngine( "%{driftmeter_driftcombotext}%" , $DriftScore ) );

drftscoretext is the button that shows your score for current drift - will be overwritten with new score if you do new drift.

driftcombotext is the button that shows your score for the current lap, and will add up and total all your scores for the individual drifts. Resets at start of new lap. Lapper does not save record unless you cross start/finish line.

Try playing around with the button parameters to move/edit buttons to suit.

First number is placement left to right (out of 200), 2nd is placement top to bottom (out of 200), 3rd is width, 4th is height of text, 5th would be spacing between lines of text, 6th is time in seconds for button to stay in view [-1 means always there], and last number refers to background colour of button + text alignment.

More info on button number meanings within standard LFSLapper.lpr file.

If you want to change colour of text within button, then you will have to edit the language file(s), which can be found at bottom of file - for English text, will be under Lang "EN".

Buttons are;
driftmeter_driftscoretext = "^2+ ^7{0}";
driftmeter_driftcombotext = "^7{0}";

The ^2 and ^7 refers to the colours used (I'll let you research within the LFSLapper.lpr file to find colour values), and the {0} refers to the $ var (eg $DriftScore) at the end of the button description line.

Have fun!

PS My keyboard spacebar key is kaput, and you've no idea how long it's taken to write this by CTRL-V spaces between every single word and sentence Smile Hope it was worth the effort.
sinanju
S3 licensed
Any smaller, and I'd never been able to work out what you wanted! Smile

To be honest, I wouldn't have a clue how to do the lights that show the angle.

You'll need to explain what the numbers mean (I assume both numbers represent scores - current drift (shown as O), and total lap score?

Was the original that you copied, done in lapper?
sinanju
S3 licensed
Hi, and welcome to the the world of LFSLapper Smile

The default 'lapper' script (LFSLapper.lpr) has a lot of comments within that explains what the code does, and how to make changes.

For further info, you should also read the changes.txt file that is in the /docs folder.

I would suggest that you read this post about the basics of buttons - HERE

From this, I'd suggest practising on editing the standard 'Welcome' message. If you get comfortable changing this, then you can have a play on moving/resizing/editing the drift scoreboard that you have got working.

As for someone changing the drift scoreboard gui, may help if you could do rough mock-up image of how you want it to look.

I would also suggest doing search within this section of the forum as you will also (eventually) find examples of other drift scoreboard layouts.
sinanju
S3 licensed
You gotta just love it when a demo user posts content showing a track and autocross objects they don't have license for - a paid for one, that is.

Or is it you just don't like using your proper licensed username on the forum? Or maybe you 'borrow' a relatives/friends/neighbours licensed account?

Or maybe you're doing it for someone else who doesn't speak English as well as you do? Or maybe they're painfully shy? Or maybe it's all a mistake, and you have bought a license, but 'demo licensed' under your username won't update.

Was showing https://www.facebook.com/emirhan.pala.108 a good idea?
sinanju
S3 licensed
Read this by Yisc[NL], which explains how to set zones on any track.
sinanju
S3 licensed
Quote from lfsrm :,,,I bet you're a student who are working on his free time or you're unemployed ,,,

I'm just over 10 years away from retiring, and left high school 40 years ago, so not student, and P45 required to hand to next employer as starting next temporary job.
sinanju
S3 licensed
Quote from lfsrm :Don't generalize, rich people are a very tiny minority in these country, computer and other stuff if they are officially imported the government may reduce taxes so the common people can buy one or two due to their importance nowadays, I bet the smartphones you're talking about are only 50$ chinese clone since I see them everywhere here, many people sacrifice money and time just to get normal things that you guys can buy in one day.

Well if we assume the average salary there is about 150 $, a 50$ for the s2 are about 30% of their total monthly income, if in your country you're paid 2500$ do you accept to spend 750$ in one game ?...

Talking of generalising...

I've earned about $5,278 US dollars for 51 weeks - a week shy of 12 months. If you're wondering why I didn't pay tax, its because I only earned one third of amount allowed before tax deducted. And I'm not alone in earning this amount.

And as for chinese cloned phones - most of the ones I saw were iphone 5's with apple logo on back - most people didn't want to put them in cases as it hid the logo. They were quite happy to let me handle them when I showed them my old 4S, and I said I'd like to compare.
Last edited by sinanju, .
FGED GREDG RDFGDR GSFDG