I'm not sure the language this script uses. I just came to the last page to see the last post, to be honest.
To calculate user acceleration, you need to know the time between 0 and 100 (obvious =)).
Below I will give you an example about how I calculate it:
if (C.PosSpeed > 1 && C.OutPits == 1)
C.AccTimer += 100;
if (C.PosSpeed >= 100 && C.AccStage == 0)
C.AccStage = 1;
double Aceleracao = ((C.AccTimer * 100.0) / C.PosSpeed) / 1000;
InSim.Send_MTC_MessageToConnection("^3› ^7Aceleração 0-100: ^3" + Math.Round(Aceleracao, 1) + "^7 segundos", C.UniqueID, 0);
This script is inside a 100ms timer. So, every 100ms, it add 100 to a specific player's variable (AccTimer += 100).
Then, when the player reaches 100Km/H (PosSpeed >= 100), it calculates the time player took to reach 100, considering actual speed (because the speed can be 105 for example on the actual scan).
For example, on the actual scan, the user speed is 110 Km/H and the AccTimer is 600.
So, it means the user reach 110 in 600ms. On the proportion: ((600 * 100) / 110) / 1000 = 0,54545454...
Finally, I do a math.round to remove digits after the coma. The result in the case above will be 0,5 seconds.
I tried to explain everything, and it may be useful for other players. But I hope I answered your question