Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Sebastian
31
Tutorials / [howto] I/O functionality
« on July 29th, 2018, 11:35 AM »
// this was posted long time ago by SLC; had to be stickied even since
Quote from . on December 8th, 2015, 12:47 PM
The Squirrel standard library offers IO functionality. It's just a little more complicated for new users that don't know to process files in binary mode.

To open a file we use the file type constructor and pass the file name and desired flags/modes that we want to use when opening that file. Flags/modes are the similar to the C modes from fopen.

Code: [Select]
local myfile = file("text.txt","rb+");

In this case 'b' tells us that we open the file on binary mode and 'r+' allows us to both read and write/update to the file. The file must exist!

Then we use the readn(type); member function to read each byte from that file.

Code: [Select]
local my_str = "";

while (!myfile.eos())
{
    my_str += format(@"%c", myfile.readn('b'));
}

print(my_str);

We begin by creating a string variable `my_str` where we store the resulted string. Then we use the `eos()` (end of stream) member function to know when we reached the end of the file. If we reached the end of the file then `eos()` will return something different from null.

Then we read a single byte and since ASCII characters occupy a single byte that means we read a single character from the file. But a byte is nothing but a number. So we use the format function to convert that byte into a character which becomes a string. And we add the returned string which contains a single character to the actual string.

The list of values that you can read are as follows:
  • 'i' 32bits number returns an integer
  • 's' 16bits signed integer returns an integer
  • 'w' 16bits unsigned integer returns an integer
  • 'c' 8bits signed integer returns an integer
  • 'b' 8bits unsigned integer returns an integer
  • 'f' 32bits float returns an float
  • 'd' 64bits float returns an float

After that we print the retrieved text from the file. To write to a file we use the writen(type); member function which works just like the read function except it writes values.

Code: [Select]
local my_text = "Appended text goes here";

myfile.seek(0, 'e');

foreach (c in my_text)
{
    myfile.writen(c, 'b');
}

We begin by creating a dummy text string that will be appended to our current text. Then we move the cursor to the end of the file. We do that by seeking 0 bytes past the endpoint.

Then we use a foreach loop to process each character in our string. And since one ASCII character is one byte then we write them each as one byte.

The list of values that you can write are as follows:

  • 'l' processor dependent, 32bits on 32bits processors, 64bits on 64bits prcessors
  • returns an integer 'i'
  • 32bits number 's'
  • 16bits signed integer 'w'
  • 16bits unsigned integer 'c'
  • 8bits signed integer 'b'
  • 8bits unsigned integer 'f'
  • 32bits float 'd'
  • 64bits float

After we're done with the file we use the `close()` member function to close it and that's it.

Code: [Select]
myfile.close();



I suppose the whole code can be summarized into two simple read/write functions:
Code: [Select]
function ReadTextFromFile(path)
{
    local f = file(path,"rb"), s = "";

    while (!f.eos())
    {
        s += format(@"%c", f.readn('b'));
    }

    f.close();

    return s;
}

function WriteTextToFile(path, text)
{
    local f = file(path,"rb+"), s = "";

    f.seek(0, 'e');

    foreach (c in text)
    {
        f.writen(c, 'b');
    }

    f.close();
}

And used as:
Code: [Select]
print( ReadTextFromFile("test.txt") );

WriteTextToFile("test.txt", "Appended text goes here");

print( ReadTextFromFile("test.txt") );



I suppose the whole read function can also be optimized with a blob to avoid a ton of IO operations for a single byte.

Code: [Select]
function ReadTextFromFile(path)
{
    local f = file(path,"rb"), s = "", n = 0;
    f.seek(0, 'e');
    n = f.tell();
    if (n == 0)
        return s;
    f.seek(0, 'b');
    local b = f.readblob(n+1);
    f.close();
    for (local i = 0; i < n; ++i)
        s += format(@"%c", b.readn('b'));
    return s;
}
Also, SLC is sharing a function for reading between strings of a text:
Code: [Select]
// Assuming `text`, `begin_str` and `end_str` are all strings. no error checking

function GetTextBetween(text, begin_str, end_str, must_end = true) {
  // See where `begin_str` starts in the `text`
  local start_idx = text.find(begin_str, 0);
  // if `start_idx` is `null` then it wasn't found
  if (start_idx == null) {
    return null;
  }
  // Exclude `end_str` from the returned string
  start_idx += begin_str.len();
  // See where `end_str` starts in the `text`
  // Starting the search after where `begin_str` was located
  local end_idx = text.find(end_str, start_idx);
  // if `start_idx` is `null` then it wasn't found
  if (end_idx == null) {
    // If the end string must be present
    if (must_end) {
      return null; // Then return null
    // If the end string doesn't have to be present
    } else {
      // Return everything after `begin_str` (excluding `begin_str`)
      return text.slice(start_idx);
    }
  }
  // We have a beginning and an ending, so get that slice of text
  return text.slice(start_idx, end_idx);
}
32
Can somebody list all the risks of not using this function ? according to VC:MP.
I'm pretty sure this kind of topic will be helpful for much part of the comunity.
33
Client Scripting / [function] qGUI
« on June 10th, 2018, 01:01 AM »
I do need it, to avoid lots of useless code lines.
I'm sharing it, for people who might need it too.



We all know what's needed to create a basic .... label.
(click to show/hide)
        Account.Label4 = GUILabel( );
        Account.Label4.Pos = VectorScreen( 90, 280 );
        Account.Label4.FontSize = 12;
        Account.Label4.TextColour = Colour( 221, 221, 88 );
        Account.Label4.FontFlags = ( GUI_FFLAG_BOLD );
        Account.Label4.Text = "auto-login enabled";

6 damn code lines.
What if we gonna create a GUI Register system ? PLENTY of code, which can be shortened a lot.
So what do you say about 1 code line, instead of 6 ? :D
Much better!



I have created a function which does the job, with all the details you need.
For now, it includes code lines for Window, Label, Button, Checkbox, Editbox.
(which I believe are the most used ones so far)

Parameters
Window - qGUI( "window", pos, size, rgb, text, text_rgb, font_size, font_flags, remove_flags )
Label - qGUI( "label", pos, text_size, text_rgb, text, font_flags, font_name )
Button - qGUI( "button", pos, size, rgb, text, text_rgb, font_flags )
Checkbox - qGUI( "checkbox", pos, size, rgb )
Editbox - qGUI( "editbox", pos, size, rgb, text, text_rgb, flags )
(with green are optional arguments)

So here it is:
Code: [Select]
function qGUI( type, ... )
{
    if( vargv.len() >= 3 )
    {
        local   q = 0,
                pos = vargv[0],
                size = vargv[1],
                rgb = vargv[2];
               
        switch( type )
        {
            case "window":
            {
                q = GUIWindow();
               
                local   text = vargv[3].tostring(),
                        textrgb = vargv[4],
                        fontsize = vargv[5];
               
                q.Pos = pos;
                q.Size = size;
                q.Colour = Colour( rgb.R, rgb.G, rgb.B, 255 );
                if( rgb.A ) q.Alpha = rgb.A;
               
                q.Text = text;
                q.TextColour = Colour( textrgb.R, textrgb.G, textrgb.B );
                q.FontSize = fontsize;
               
                if( vargv.len() >= 7 ) q.FontFlags = ( vargv[6] );
                if( vargv.len() >= 8 ) q.RemoveFlags( vargv[7] );
            }
            break;
           
            case "label":
            {
                q = GUILabel();
               
                local   text = vargv[3].tostring();
                       
                q.Pos = pos;
                q.FontSize = size
                q.TextColour = Colour( rgb.R, rgb.G, rgb.B );
                q.Text = text;
               
                if( vargv.len() == 5 ) q.FontFlags = ( vargv[4] );
                if( vargv.len() == 6 ) q.FontName = vargv[5];
            }
            break;
           
            case "button":
            {
                q = GUIButton();
               
                local   text = vargv[3],
                        textrgb = vargv[4];
               
                q.Pos = pos;
                q.Size = size;
                q.Colour = Colour( rgb.R, rgb.G, rgb.B );
                q.Text = text;
                q.TextColour = Colour( textrgb.R, textrgb.G, textrgb.B );
               
                if( vargv.len() == 6 ) q.FontFlags = ( vargv[5] );
            }
            break;
           
            case "checkbox":
            {
                q = GUICheckbox();
               
                q.Pos = pos;
                q.Size = size;
                q.Colour = Colour( rgb.R, rgb.G, rgb.B );
            }
            break;
           
            case "editbox":
            {
                q = GUIEditbox();
               
                q.Pos = pos;
                q.Size = size;
                q.Colour = Colour( rgb.R, rgb.G, rgb.B );
               
                if( vargv.len() >= 4 ) q.Text = vargv[3];
                if( vargv.len() >= 5 ) q.TextColour = Colour( vargv[4].R, vargv[4].G, vargv[4].B );
                if( vargv.len() == 6 ) q.AddFlags( vargv[5] ); // like GUI_FLAG_EDITBOX_MASKINPUT
            }
            break;
        }
        if( q != 0 ) return q;
        else return srv_print( "GUI couldn't be created." );
    }
}



PS: I know I could set the pos and size and colour overall, by using just 3 lines.
But I preferred not to.
34
Scripting and Server Management / GUI CreateWindow() function
« on June 5th, 2018, 03:28 PM »
Hey there!

I'm looking forward for an overall function when creating GUI elements;
something like:
Code: [Select]
CreateWindow( size, colour, pos, text, textcolour, fontsize )

I tried my luck, but for some reason, it doesn't show up at all...
Code: [Select]
function qGUI( type, ... )
{
    switch( type.tostring() )
    {
        case "window":
        {
            local   q = GUIWindow(),
                    size = vargv[0],
                    colour = vargv[1],
                    pos = vargv[2],
                    text = vargv[3].tostring(),
                    textcolour = vargv[4],
                    fontsize = vargv[5];
                   
            q.Size = size;
            q.Colour = colour;
            q.Pos = pos;
            /* GENERAL */ q.FontFlags = ( GUI_FFLAG_BOLD );
            /* GENERAL */ q.RemoveFlags( GUI_FLAG_WINDOW_RESIZABLE | GUI_FLAG_WINDOW_CLOSEBTN );
            q.Text = text;
            q.TextColour = textcolour;
            q.FontSize = fontsize;
       
        break;
        }
}

If I do it in the classic way (one-by-one function for every setting) it will work.
What's going on ? How can I make it work ?
35
Closed Bug Reports / [bug] “broken cd”
« on June 3rd, 2018, 02:16 PM »
Just reminding...
It is a nightmare.
Quote from maxorator on June 25th, 2017, 01:20 PM
The radios work by using a global time counter anyway, which determines the position for every radio. Basically it would just mean having a server-wide sync of that counter (technically making it use a new counter and sync that, so it would not affect other things).
http://forum.vc-mp.org/?topic=4837.msg35409#msg35409
36
Tutorials / [tut] Placing 2dfx light on your custom object
« on June 1st, 2018, 11:54 PM »
Hey there!
I was gonna place some 2dfx lights today, and I was like "why not recording a tutorial?"
I'm pretty sure there are a lot of guys not able to, so this will help them out.

BLENDER software will offer you the needed coords.


https://youtu.be/QkSZR9mbsHA


2DFX Documentation
37
Closed Bug Reports / [bug] timed custom objects won't show up
« on August 8th, 2017, 10:37 PM »
Description
Let's take night neons as example. You set a custom neon to appear at 8pm and disappear at 5am.
If you join the server when the neon is visible, you won't be able to see it at all, nor if the time will be set to 7pm then back to 8pm.
It will just not stream for you at all.
You must join the server before 8pm or after 5am.

Reproducible
Always
38
Tutorials / [tut] Objects are constantly appearing/dissappearing
« on July 23rd, 2017, 06:42 AM »
I even forgot about this, until I reinstalled windows.

What's happening? Most of the objects are warping, just like in this video:


https://youtu.be/7hiaR7Xrgoo

To fix that, you have to go in any server and use this command:
Code: [Select]
/setconfig game_streammem 512

Credits: TheKilledDead and @PunkNoodle
Old post: here
39
Videos & Screenshots / [event] Halloween Flashbacks
« on June 10th, 2017, 04:10 AM »
a remake, based on the only records I've ever kept

https://youtu.be/4zQKBcjAEsU
40
Bugs and Crashes / [BUG] hi-jack enables player's colision
« on June 9th, 2017, 05:54 PM »
Description
Remember that old trick to hi-jack a car ? where a car was unable to be entered by driver's door and needed to be done by passenger's one, while it was occuppied by a player ?
Well, do that and ped's colision will be enabled.

Reproducible
Always

What you were doing when the bug happened
Testing

What you think caused the bug
VCMP detected the player out of car, and enabled it's colision ?

Video

https://youtu.be/Hh4FyjyOfpo
41
Closed Bug Reports / [BUG] entering vehicle glitch
« on June 6th, 2017, 12:17 AM »
Many players will hate me for reporting this.

Description
If you apply an animation (e.g. lay), then starting to enter a car, you will get glitched.
Put a weapon in hand and start firing everywhere you see.
]No ammo lose, but damage created

Reproducible
Always

Video

https://youtu.be/zmCabMqfiL0
42
Bugs and Crashes / [BUG] Changing handling + Pacient zero
« on June 6th, 2017, 12:17 AM »

Description
If you do change a car's model handling, it will be the only affected, unless that model is the first ever created in that server.
So if you create 2 stallions, and change 24th rule of Handling of the second stallion to make it LOWRIDE, it will be the only one affected. (as it should)
But if you make LOWRIDE the first stallion created, it will also affect the second one.

Reproducible
Always

What you were doing when the bug happened
What I love: tuning cars.

Video

https://youtu.be/pVd5adcZAyU
43
I've seen numerous ways of saving data: some good, some worse
But which one would actually be the greatest ?
(making almost imposible to lose any data by a crash or anything else)
44
Closed Bug Reports / [CRASH] 74A9D87A
« on May 28th, 2017, 04:41 PM »
Reproducible
frequently

What you were doing at the time of the crash
Manual reconnecting right after (manual) disconnecting.
ps: server is using a custom map. (and almost everything that can be >custom<)

EDIT2: It also happens when simply reconnecting.

EDIT3: Doesn't matter how you connect to the server, it can crash.

Are you using the Steam version?
I have it, but no.

What you think caused the crash
No, but seems to be similar to rww's report.
I've also freed player's starting events, like join/part/requestclass/spawn, so it's not because of my script.

What windows version are you using?
Windows 8.1

Crash Report
Code: [Select]
Address: 74A9D87A error C0000005
EAX 00000021 EBX 2756EA7C ECX 00000020 EDX 00000020
EBP 27572B14 ESP 0018F2C4 ESI 00000001 EDI 0018F338
Stack:
0018F30C
00000020
748D4B90
0018F338
00000001
00000020
00000020
0018F338
2756EA7C
748D4587
2756EA7C
0018F338
0018F30C
2756EA78
2756EA78
27572B14
1A1B3C60
748D5AE8
00000020
0018F358
27572AC0
0018F344
0018F34C
0018F348
2756EA78
00000000
00000000
2756EA78
2756EA78
0018F6B4
1A1B3C60
0000000D
756E6547
49656E69
6C65746E
000306C3
05100800
7FFAFBBF
748E7EB7
27572B14
27572B1C
2756EA78
2756EA7C
0018F6B4
1A1B3C60
749B7E3C
2756EA7C
00000018
23DC59C0
0018F6B4
23A32118
00000000
23A32118
00000000
24205D90
00664BE2
24205D90
2E126508
24205D90
0018F690
2EEB6D78
00000080
2E126508
00000000
00000000
00000000
00000000
00020002
00090003
00090009
00090009
00090009
00090009
00090009
0000000E
00000000
0018F414
747A0F77
02500000
00000000
00008000
00000040
025038B8
00000002
0250A408
00000000
0000007F
00008000
025038B8
00000001
0018F4DC
20000000
00008000
0250A408
74A312CC
03C6B3FC
0018F480
00000004
025089C8
00000000
025087C8
2BA6C240
025038B8
00000080
7478D91D
025038B8
0018F480
00000004
00000000
7478D9D8
00002000
00000028
00000020
00B00000
74A312CC
03C6B3FC
0018F4D4
00000008
00000007
000207D0
00000028
00000000
1A1E63E0
244B0550
05F888E8
00020000
00020000
749B6ACD
1A1B3C60
00000018
24C556F0
0018F6B4
23A32118
00000020
00000000
000208F8
74A950BF
0018F574
77D70EA9
00000020
00000000
0000001F
00000020
0000000F
74A31655
244B6320
00000002
00000005
00000000
00000000
00000028
00000080
03BFA944
0000000D
0000001A
00000000
00000175
03BFAA98
03BFA944
31545844
24205D90
24205D90
0000001A
00000003
24205DC4
0063CB05
00000080
00000080
00000001
0000001A
24205DC4
00000300
0018F594
74A95163
00B00000
00000000
00000020
00000000
00000000
23DC59C0
74B50774
00000000
0018F5E4
74AF18C6
23DC59C0
74AF1869
3FB933CF
00000018
24C556F0
23A32118
1A1E63D0
00000064
00000000
23DC59C0
0018F5AC
02580272
0018F6F0
74A9DF80
4B177853
FFFFFFFE
Net version 67000, build version 5929CA76.
00400000 S 00614000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\gta-vc.exe
1E870000 S 0004D000 N C:\Users\seBastian\AppData\Local\Vice City Multiplayer\04rel004\bass.dll
21100000 S 0005C000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\mss32.dll
22100000 S 00014000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\mss\Mssa3d.m3d
22200000 S 00015000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\mss\Mssa3d2.m3d
22300000 S 00011000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\mss\Mssds3ds.m3d
22400000 S 00014000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\mss\Mssds3dh.m3d
22500000 S 00014000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\mss\Msseax.m3d
22600000 S 00016000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\mss\Mssfast.m3d
22D00000 S 00062000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\mss\Mssrsx.m3d
22E00000 S 00019000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\mss\msseax3.m3d
24600000 S 00011000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\mss\Reverb3.flt
26F00000 S 0002A000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\mss\Mp3dec.asi
62FD0000 S 00C29000 N C:\WINDOWS\SYSTEM32\nvd3dum.dll
651F0000 S 00037000 N C:\Program Files\WIDCOMM\Bluetooth Software\SysWOW64\BtMmHook.dll
68580000 S 00081000 N C:\WINDOWS\SYSTEM32\DSOUND.DLL
68630000 S 0000A000 N C:\WINDOWS\SYSTEM32\avrt.dll
69E30000 S 00036000 N C:\WINDOWS\SYSTEM32\dinput8.dll
6E7C0000 S 000EC000 N C:\WINDOWS\system32\ddraw.dll
702F0000 S 00046000 N C:\WINDOWS\System32\fwpuclnt.dll
725F0000 S 0000A000 N C:\WINDOWS\SYSTEM32\HID.DLL
72600000 S 00007000 N C:\WINDOWS\SYSTEM32\DCIMAN32.dll
72FF0000 S 00008000 N C:\WINDOWS\SYSTEM32\DPAPI.dll
73480000 S 0008B000 N C:\WINDOWS\SYSTEM32\SHCORE.DLL
73510000 S 002AB000 N C:\WINDOWS\SYSTEM32\WININET.dll
737C0000 S 00235000 N C:\WINDOWS\SYSTEM32\iertutil.dll
73A00000 S 00023000 N C:\WINDOWS\SYSTEM32\WINMMBASE.dll
73A30000 S 00016000 N C:\WINDOWS\SYSTEM32\MPR.dll
73A50000 S 0014B000 N C:\WINDOWS\SYSTEM32\urlmon.dll
73BA0000 S 0001A000 N C:\WINDOWS\SYSTEM32\dwmapi.dll
73BC0000 S 00017000 N C:\WINDOWS\SYSTEM32\MSACM32.dll
73BE0000 S 00013000 N C:\WINDOWS\SYSTEM32\samcli.dll
73C00000 S 00023000 N C:\WINDOWS\SYSTEM32\WINMM.dll
73C30000 S 000ED000 N C:\WINDOWS\SYSTEM32\UxTheme.dll
73D20000 S 00266000 N C:\WINDOWS\AppPatch\AcGenral.DLL
73F90000 S 000A0000 N C:\WINDOWS\system32\apphelp.dll
74080000 S 00040000 N C:\WINDOWS\system32\powrprof.dll
740F0000 S 00060000 N C:\WINDOWS\SYSTEM32\AUDIOSES.DLL
741C0000 S 00053000 N C:\WINDOWS\System32\MMDevApi.dll
742D0000 S 00008000 N C:\Windows\System32\rasadhlp.dll
742E0000 S 00010000 N C:\WINDOWS\system32\wshbth.dll
742F0000 S 0000A000 N C:\WINDOWS\System32\winrnr.dll
74300000 S 0007E000 N C:\WINDOWS\SYSTEM32\DNSAPI.dll
74380000 S 0004B000 N C:\WINDOWS\System32\mswsock.dll
743D0000 S 00014000 N C:\WINDOWS\system32\NLAapi.dll
743F0000 S 00016000 N C:\WINDOWS\system32\pnrpnsp.dll
74410000 S 00011000 N C:\WINDOWS\system32\napinsp.dll
74440000 S 00009000 N C:\WINDOWS\SYSTEM32\kernel.appcore.dll
74780000 S 00045000 N C:\Users\seBastian\AppData\Local\Vice City Multiplayer\04rel004\libpng15.dll
747D0000 S 000BF000 N C:\Program Files (x86)\NVIDIA Corporation\3D Vision\nvSCPAPI.dll
74890000 S 00420000 N C:\Users\seBastian\AppData\Local\Vice City Multiplayer\04rel004\vcmp-game.dll
74D60000 S 00007000 N C:\WINDOWS\SYSTEM32\d3d8thk.dll
74D70000 S 0010D000 N C:\WINDOWS\SYSTEM32\d3d8.dll
74E80000 S 00005000 N D:\Jocuri\Grand Theft Auto Vice City\HERE IS THE BEST\ddraw.dll
75060000 S 00008000 N C:\WINDOWS\SYSTEM32\WINNSI.DLL
75070000 S 00020000 N C:\WINDOWS\SYSTEM32\IPHLPAPI.DLL
750F0000 S 000A3000 N C:\WINDOWS\WinSxS\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.8387_none_5094ca96bcb6b2bb\MSVCR90.dll
752C0000 S 0000F000 N C:\WINDOWS\SYSTEM32\profapi.dll
752E0000 S 0001B000 N C:\WINDOWS\SYSTEM32\USERENV.dll
753D0000 S 00021000 N C:\WINDOWS\SYSTEM32\DEVOBJ.dll
75430000 S 00065000 N C:\WINDOWS\SYSTEM32\WINSPOOL.DRV
754A0000 S 00008000 N C:\WINDOWS\SYSTEM32\VERSION.dll
754B0000 S 00054000 N C:\WINDOWS\SYSTEM32\bcryptPrimitives.dll
75510000 S 0000A000 N C:\WINDOWS\SYSTEM32\CRYPTBASE.dll
75520000 S 0001E000 N C:\WINDOWS\SYSTEM32\SspiCli.dll
75540000 S 0007C000 N C:\WINDOWS\SYSTEM32\ADVAPI32.dll
755C0000 S 00140000 N C:\WINDOWS\SYSTEM32\KERNEL32.DLL
75700000 S 00027000 N C:\WINDOWS\system32\IMM32.DLL
75730000 S 00188000 N C:\WINDOWS\SYSTEM32\CRYPT32.dll
758C0000 S 0004F000 N C:\WINDOWS\SYSTEM32\WS2_32.dll
75910000 S 012BB000 N C:\WINDOWS\SYSTEM32\SHELL32.dll
76BD0000 S 00007000 N C:\WINDOWS\SYSTEM32\NSI.dll
76BE0000 S 0017D000 N C:\WINDOWS\SYSTEM32\combase.dll
76DC0000 S 00097000 N C:\WINDOWS\SYSTEM32\OLEAUT32.dll
76F10000 S 0008D000 N C:\WINDOWS\SYSTEM32\clbcatq.dll
76FA0000 S 0010E000 N C:\WINDOWS\SYSTEM32\GDI32.dll
770B0000 S 00153000 N C:\WINDOWS\SYSTEM32\USER32.dll
77210000 S 0003D000 N C:\WINDOWS\SYSTEM32\WINTRUST.dll
77250000 S 00041000 N C:\WINDOWS\SYSTEM32\sechost.dll
772A0000 S 000BA000 N C:\WINDOWS\SYSTEM32\RPCRT4.dll
77360000 S 001B1000 N C:\WINDOWS\SYSTEM32\SETUPAPI.DLL
77520000 S 00006000 N C:\WINDOWS\SYSTEM32\PSAPI.DLL
77530000 S 0003C000 N C:\WINDOWS\SYSTEM32\cfgmgr32.dll
77600000 S 000D7000 N C:\WINDOWS\SYSTEM32\KERNELBASE.dll
77870000 S 000C3000 N C:\WINDOWS\SYSTEM32\msvcrt.dll
77940000 S 0000E000 N C:\WINDOWS\SYSTEM32\MSASN1.dll
77950000 S 00112000 N C:\WINDOWS\SYSTEM32\MSCTF.dll
77AE0000 S 00129000 N C:\WINDOWS\SYSTEM32\ole32.dll
77C10000 S 00045000 N C:\WINDOWS\SYSTEM32\SHLWAPI.dll
77D30000 S 0016F000 N C:\WINDOWS\SYSTEM32\ntdll.dll
45
Bugs and Crashes / [Bug] changing worlds = your car suffers
« on May 25th, 2017, 11:14 PM »
Description
A car may suffer if you change from e.g. world 1 to world 2, then back to world 1.
(only if you had a contact with that car - entering it - )
Mostly the driver's door gets damaged.

Reproducible
Almost everytime.

What you were doing when the bug happened
Entering an interior (in DDRP server), then returning to the main world.

Pictures

Before entering interior (different world)


Inside interior


Returning to the main world