1. Do you need support for Assetto Corsa Competizione? Please use the proper forum below and ALWAYS zip and attach the WHOLE "Logs" folder in your c:\users\*youruser*\AppData\Local\AC2\Saved. The "AppData" folder is hidden by default, check "Hidden items" in your Windows view properties. If you report a crash, ALWAYS zip and attach the WHOLE "Crashes" folder in the same directory. Do not post "I have the same issue" in an existing thread with a game crash, always open your own thread. Do not PM developers and staff members for personal troubleshooting and support.
  2. As part of our continuous maintenance and improvements to Assetto Corsa Competizione we will be releasing small updates on a regular basis during the esports season which might not go through the usual announcement process detailing the changes until a later version update where these changes will be listed retrospectively.
  3. If ACC doesn't start with an error or the executable is missing, please add your entire Steam directory to the exceptions in your antivirus software, run a Steam integrity check or reinstall the game altogether. Make sure you add the User/Documents/Assetto Corsa Competizione folder to your antivirus/Defender exceptions and exclude it from any file sharing app (GDrive, OneDrive or Dropbox)! The Corsair iCue software is also known to conflict with Input Device initialization, if the game does not start up and you have such devices, please try disabling the iCue software and try again. [file:unknown] [line: 95] secure crt: invalid error is a sign of antivirus interference, while [Pak chunk signing mismatch on chunk] indicates a corrupted installation that requires game file verification.
  4. When reporting an issue with saved games, please always zip and attach your entire User/Documents/Assetto Corsa Competizione/Savegame folder, along with the logs and the crash folder (when reporting related to a crash).

About that maybe-server-api

Discussion in 'Chit Chat Room' started by Minolin, Jun 11, 2015.

  1. Minolin

    Minolin Staff Member KS Dev Team

    Didn't you read the other thread? We'll be able to kickban 30 drivers /s.

    Joke aside. 10ms still sounds huge. No I have no idea when you wanted to send messages in a row, despite of the built-in behaviour that the framwork requests all car_infos on a new sesison.
    I have another strange behaviour while receiving messages in the collision-context. Might be a programming/lock error, but it's quite strange that the error only occurs with the acServer; the fake server doesn't.
     
  2. Thomas Gocke

    Thomas Gocke Alien

    In my plugin I broadcast the top10 leaderboard including the incidents and fastest lap (missing in the official race leaderboard) and also include all players, not only the last connected players. That's where the problems occurred.
    Only 30 drivers per second? With 20ms delay you would still be possible to do 50 per second ;) And requesting the full field car info will take less than half a second.

    Apart from the problem that an incident might be reported by the server as "A with B" and "A with B" instead of both directions, I've seen the server report an incident that happend during the session change (while that screen turns black and you can't control the car anymore) for the next session. Probably happens because of the delay Stefano implemented to collect the events in order to not send several events for the same incident.
    What did occur in your case?
     
  3. Minolin

    Minolin Staff Member KS Dev Team

    The first contact start thread with a bag (of car ids), and the next few seconds all new contacts will check if one of both is already in the bag (and add both then).
    In the result it's a) not important if the server reports 0+1, 1+0 or 1+0, 1+0 or whatever; and I dodge double/triple hits as well as mass accidents.

    Something was wrong when testing this live (which is so cumbersome compared to the fakeServer), and somehow double hits would be reported twice. But this may be my error, but I never found it.
    The error vanished (hopefully) while changing little things and doing logs.
     
  4. @Stereo, does this really work for you? I have tried today and I seem to have problems with inhibiting user connections:

    I can connect even though the auth request is answered with the FAIL| string:

    Code:
    NEW PICKUP CONNECTION from  192.168.1.89:64262
    VERSION 107
    Neys
    REQUESTED CAR: ks_toyota_gt86*
    CALLING PLUGIN AUTH: http://127.0.0.1:50041/acauth?&GUID=76561198134606914&PSW=
    AUTH PLUGIN RESPONSE:
    FAIL|this is a test
    ENTRY LIST OPEN MODE 1
    Looking for available slot by name
    Looking for available slot
    Slot found at index 0
    ResetCarResults, index: 0
    DRIVER ACCEPTED FOR CAR 0
    DRIVER ACCEPTED FOR CAR Neys
    Tyre blankets: false
    Sending SESSION ID : 0
    Sending type 1
    Sending type 3
    Sending ID : 0
    Sending type 1
    FIND AND SEND PLAYER'S POSITION
    ELAPSED=5003
    DRIVER: Neys []
    UDP_PLUGIN: Realtime pos interval now set to: 100 ms
    Dispatching TCP message to ks_toyota_gt86 (0) [Neys []]
    Sending car list from index:0
    Dispatching TCP message to ks_toyota_gt86 (0) [Neys []]
    Neys [] changed tyres to SM
    Associating 192.168.1.89:58963 with car ks_toyota_gt86 (0) [Neys []]
    Sending weather  20 28
    Sending first leaderboard to car: ks_toyota_gt86 (0) [Neys []]
    SendLapCompletedMessage
    1) Neys BEST: 16666:39:999 TOTAL: 0:00:000 Laps:0 SesID:0
    SendLapCompletedMessage END
    UDP_PLUGIN: Realtime pos interval now set to: 100 ms
    Dispatching TCP message to ks_toyota_gt86 (0) [Neys []]
    Checksums received from  Neys []
    system/data/surfaces.ini  ok
    content/tracks/nurburgring-sprint/data/surfaces.ini  ok
    Car checksum  ks_toyota_gt86 true
    Dispatching TCP message to ks_toyota_gt86 (0) [Neys []]
    Clean exit, driver disconnected:  Neys []
    EOF
    

    This is how it looks, when I return OK:

    Code:
    NEW PICKUP CONNECTION from  192.168.1.89:64294
    VERSION 107
    Neys
    REQUESTED CAR: ks_toyota_gt86*
    CALLING PLUGIN AUTH: http://127.0.0.1:50041/acauth?&GUID=76561198134606914&PSW=
    AUTH PLUGIN RESPONSE:
    OK
    PLAYER AUTHORIZED
    ENTRY LIST OPEN MODE 1
    Looking for available slot by name
    Looking for available slot
    Slot found at index 0
    ResetCarResults, index: 0
    DRIVER ACCEPTED FOR CAR 0
    DRIVER ACCEPTED FOR CAR Neys
    Tyre blankets: false
    Sending SESSION ID : 0
    Sending type 1
    Sending type 3
    Sending ID : 0
    Sending type 1
    FIND AND SEND PLAYER'S POSITION
    ELAPSED=6121
    DRIVER: Neys []
    Dispatching TCP message to ks_toyota_gt86 (0) [Neys []]
    Sending car list from index:0
    Dispatching TCP message to ks_toyota_gt86 (0) [Neys []]
    Neys [] changed tyres to SM
    Associating 192.168.1.89:56307 with car ks_toyota_gt86 (0) [Neys []]
    Associating 192.168.1.89:56307 with car ks_toyota_gt86 (0) [Neys []]
    Sending weather  20 28
    Sending first leaderboard to car: ks_toyota_gt86 (0) [Neys []]
    SendLapCompletedMessage
    1) Neys BEST: 16666:39:999 TOTAL: 0:00:000 Laps:0 SesID:0
    SendLapCompletedMessage END
    UDP_PLUGIN: Realtime pos interval now set to: 100 ms
    Dispatching TCP message to ks_toyota_gt86 (0) [Neys []]
    Checksums received from  Neys []
    system/data/surfaces.ini  ok
    content/tracks/nurburgring-sprint/data/surfaces.ini  ok
    Car checksum  ks_toyota_gt86 true
    Dispatching TCP message to ks_toyota_gt86 (0) [Neys []]
    Clean exit, driver disconnected:  Neys []
    EOF
    
    Am I missing something obvious or is this not working ATM? Thanks for your help!
     
  5. Stereo

    Stereo Alien

    I didn't get a chance to test it, maybe it just doesn't work.
     
  6. Thanks for responding. @Minolin are you using the AUTH feature of AC atm?
     
  7. Minolin

    Minolin Staff Member KS Dev Team

    Yes, but never tested as well :) currently at the Ring, will try when back home
     
  8. Cool, thank you. And have fun at the ring :)
     
  9. Minolin

    Minolin Staff Member KS Dev Team

    Yes, looks pretty much the same to me. Auth request is done perfectly, but without the consequence of blocking me :D
    upload_2015-8-15_19-40-11.png

    Probably a case of RTFM, where our FM is probably the corresponding live steam. So I will HTFM again.
    Edit:
    Unfortunately we've only seen the OK| text, and he talked about "OK pipe, FAIL pipe", so you should be right. Maybe we just need the correct <keyword>| to block the connection - @Lord Kunos can you help out? FAIL|reason is not the keyword.
     
    Last edited: Aug 15, 2015
  10. Stereo

    Stereo Alien

    When in doubt, use frhed...

    acserver.exe contains "DENY|Sorry, you are too stupid to join here"
     
  11. Minolin

    Minolin Staff Member KS Dev Team

    Sir, you are genious. But still two remaining questions:

    a) wth would this string be contained? Doesn't this compiler optimize code, or at least remove comments?
    b) why would it still fail to fail? :(
    upload_2015-8-15_20-13-15.png
     
  12. Stereo

    Stereo Alien

    I don't know why that in particular got left in, probably some form of help message as it's near "ERROR: ACSP_KICK_USER index %d out of bound" etc. the actual 'DENY' is a separate string. It's almost certainly compiled for debugging though.

    If you do something really wrong there's a string in there, "What the hell? Who sent "
     
    Last edited: Aug 15, 2015
  13. ABernardo

    ABernardo Racer

    Just asking questions the answers to which I don't know.

    Anyhow, it's nice to know we have one more *****le in the world.
     
  14. Stereo

    Stereo Alien

    @Minolin I just noticed your server responses are in double quotes whereas neys & the stream are not, maybe a problem?
     
    Minolin likes this.
  15. Minolin

    Minolin Staff Member KS Dev Team

    Very good observation, didn't notice this. It's DENY| without string literals (like .net WCF would do per default string return because it's treated as json).
    upload_2015-8-15_23-36-25.png

    byte[] resultBytes = Encoding.UTF8.GetBytes(result);
    WebOperationContext.Current.OutgoingResponse.ContentType = "text/plain";
    return new System.IO.MemoryStream(resultBytes);
     
  16. Stereo

    Stereo Alien

    Cool, I'll update my app (although afaik nobody has used it yet)
     
  17. OK, many thanks @Stereo for the genius investigations. While this seems to work, there is a new problem :) When assigning

    Code:
    AUTH_PLUGIN_ADDRESS=127.0.0.1:50041/acauth?maxRank=0&
    
    to the ac server, it seems to not read the configuration option correctly:

    Code:
    CALLING PLUGIN AUTH: http://127.0.0.1:50041/acauth?maxRank&GUID=76561198134606914&PSW=
    
    it seems like the config file parser omits the =0 from my URL :(. @Lord Kunos is there a chance for a fix? Thanks in advance!
     
  18. Minolin

    Minolin Staff Member KS Dev Team

    true, can be seen here as well (GRADE=A was ignored), so currently the AUTH interface will only get the steamid as information.
    A context would be really helpful here.
     
  19. JackCY

    JackCY Racer

    Documentation, specification of the AC APIs, not only an example that we have to reverse engineer to get a guess of the API but instead have the specs and be able to build from that.
    There seems to be way too much guessing for the API and where the limits for the features are.

    Version check would be great, also always list the difference of new versions in the API specs so we know what needs to be updates, can be added or was removed.

    I've developed tools for games before and I know first hand what a pain it is to have poor API specs and API changing too much. So I'm waiting with AC until it matures before making any tools.
     
    Last edited: Aug 17, 2015
  20. chuky

    chuky Alien

    Would it be possible to have an event when a driver cuts in a race ? Even better can we imagine one if a driver changes surface ?

    I made a rallycross track (it's called Gentlemen Rallycross) and the rule is you have to take the Joker lane exactly once per race. I'd like to make a server plugin to tell if people have taken the joker lane. At the moment drivers use a client app to tell when they cut, and only the Joker lane counts as a cut. But it'd be better to have the server check for cuts instead of the client, because then you wouldn't need to download and install a client app and also you're sure noone is cheating.

    What would be even better is to have the Joker lane as a special surface and have an event for when drivers change surface. This way the Joker lane wouldn't count as a cut and you could have forbidden surfaces on the track that wouldn't count as taking the Joker lane.
     
    Last edited: Aug 17, 2015

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice