Menu

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.

Show posts Menu

Messages - Mötley

#16
Off Topic: 0 is supposed to be dead center and that looks slightly off center. Are you sure doing that is right?

Also that event should fix it as Dooms showing you as the event is called each time the screen is adjusted, You just gotta reset the label every time the screen is adjusted. Make sure you don't have two of the same events loaded I suppose and add a message to the event Message("I was called"); to ensure it's getting called.

Still don't know much about client scripting for vcmp, only LU and a lot of the cool sides of the gui scripting isn't added >.< but even this should create a window to the exact size of the screen resolution
Screen <- GUI.GetScreenSize();
//Should add a alpha and transparancy to the window, maybe 120 and call for this window when it's rainy for an interesting graphical effect
GUIWindow(VectorScreen(0, 0), VectorScreen(Screen.x, Screen.y), Colour( 0, 0, 223 ), "Overlay"); 

http://liberty-unleashed.co.uk/LUWiki/Squirrel/Client/Functions/GUIWindow/Transparent

http://liberty-unleashed.co.uk/LUWiki/Squirrel/Client/Functions/GUIWindow/Alpha
#17
The wiki version doesn't update?
http://wiki.vc-mp.org/wiki/Scripting/Squirrel/Client_Functions/GUI::GetScreenSize

If it doesn't try seeing if a few things will manually update it like
http://wiki.vc-mp.org/wiki/Scripting/Squirrel/Client_Functions/GUI::SetMouseEnabled

Might be a bug, but the code might update when the mouse is showing. dunno
#18
Lol didn't know this was a sprite.. I thought we were talking about a gui label..

Sprites isn't something you should resize. I would just create 4 different sprites for four main ranges of resolutions. and depending on the resolution size, use what ever size you rendered for the resolution, you can still modify the size, But it's not wise to modify the size of a sprite that has a higher definition and the resolution calls for it to shrink, it's going to look like shit...

Tbh I use a custom 600 sized game window so my fps will always stay strong regardless of what crazy crap goes on around me in a server. I would try to make sure you have four different sprites for ranges of:
<1000>
<2000>
<3000>
<4000>

The wasted space will be worth it as the professionalism of the sprite will be perfected. I don't personally mess with gui and screen positions as I'm to anal about my work..

As for the label size, I would recommend looking into ceilThen begin checking out the font size after that
#19
Okay I'll try even though I haven't touched vcmp's client scripting..

I'll attempt to set it dead center as I have no clue where your trying to place it.

function GUI::GameResize(width, height)
{
// Should go dead center
registration_text <- ::GUILabel(VectorScreen(0, 0), Colour(28, 174, 190), "Registration");

screen <- GUI.GetScreenSize();

// tbh, should be VectorScreen(screen.X, screen.Y);
WelcomeScreen.Information.Position = VectorScreen(screen.X * 0.28, screen.Y * 0.10);

// what does font size have to do with setting to the screen size?
WelcomeScreen.Information.FontSize = screen.X * 0.06;

// Should add the label to the window
WelcomeScreen.AddChild(registration_text)
 }

idk, I tried,client side resources are a little odd in this mp. but I tried, If I knew enough on it I could be of great help but I don't have the time for it
#20
Your blog is terrible. So many ads. Are you that poor that you have to use other peoples scripts on a ad based site just to get money. Yet apparently you created a server called little blackey..

Toxic User Confirmed

Any true scripter does not need a script release, unless there looking for something that will save them time, or just want's a better example than the wiki
#21
I suppose I could write a drift counter if I had an accurate vehicle angle script as I can calculate: North, East, South, West, Ne, Nw, Sw, Se.

But to be honest  surface.dat multipliers, functions and constants should be added to the wiki. Liberty Unleashed has it and a drift counter could be created easily off there library.

An example of creating a random poly around a player http://forum.liberty-unleashed.co.uk/index.php/topic,2703.msg15477.html#msg15477.

With calculating the vehicle's facing angle, If it's facing North but moving east for two seconds begin a drift counter from there, or whatever is best to prevent random drift messages. I don't think it's wise to script on the event onPlayerMove as it's called way to many times.

Should be easy but time consuming
#22
To keep it basic, maybe work off the two characters you added to the server.conf file and add a few

Create Gui text to the left center side or right displaying:

1: Info about the spawn class? Sharks etc, Medics.
2: Spawn weapon, The weapon that class gets on spawn
3: The area the player will spawn in.

That should be more than enough
#23
I noticed the -1 setting for car colours does not follow Carcols.dat. Some of the vehicles look bad.
For example:
https://cdn.discordapp.com/attachments/495234217987276810/500897701760860180/2018-10-14_01-05-59-0380.png

So I figured why not add them any who.

[noae]function ColourSlot(vehicle_model, iD) {
 local Generator, Colour;
 switch (vehicle_model) {

  case 130: {
  Generator = ( GetTickCount() % 7 ), Colour = [ [11,73], [18,74], [47,75], [41,76], [64,73], [52,74], [56,75], [32,76] ];
  return Colour[Generator][iD];
  }

  case 131: {
  Generator = ( GetTickCount() % 7 ), Colour = [ [62,37], [78,38], [2,62], [3,87], [2,78], [5,78], [5,62], [7,78] ];
  return Colour[Generator][iD];
  }

  case 132: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [5,5], [6,6], [10,10], [35,35], [33,33], [8,8], [2,2], [3,3] ]
  return Colour[Generator][iD];
  }

  case 133: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [13,76], [24,77], [63,78], [42,76], [54,77], [39,78], [11,76], [62,77] ];
  return Colour[Generator][iD];
  }

  case 134: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [18,1], [37,1], [55,1], [59,1], [43,1], [47,1], [66,1], [31,1] ];
  return Colour[Generator][iD];
  }

  case 135: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [30,0], [2,0], [36,0], [8,0], [10,0], [11,0], [14,0], [49,0] ];
  return Colour[Generator][iD];
  }

  case 136: {
    Generator = ( 0 ), Colour = [ [1,1] ];
  return Colour[Generator][iD];
  }

  case 137: {
    Generator = ( 0 ), Colour = [ [3,1] ];
  return Colour[Generator][iD];
  }

  case 138: {
  Generator = ( 0 ), Colour = [ [1,75] ];
  return Colour[Generator][iD];
  }

  case 139: {
  Generator = ( GetTickCount() % 3 ), Colour = [ [84,84], [1,1], [79,79], [78,78] ];
  return Colour[Generator][iD];
  }

  case 140: {
  Generator = ( GetTickCount() % 7 ), Colour = [ [58,1], [69,1], [75,77], [18,1], [32,1], [45,45], [13,1], [34,1] ];
  return Colour[Generator][iD];
  }

  case 140: {
  Generator = ( GetTickCount() % 7 ), Colour = [ [58,1], [69,1], [75,77], [18,1], [32,1], [45,45], [13,1], [34,1] ];
  return Colour[Generator][iD];
  }

  case 141: {
  Generator = ( GetTickCount() % 4 ), Colour = [ [2,2], [11,11], [12,12], [35,35], [36,36] ];
  return Colour[Generator][iD];
  }

  case 142: {
  Generator = ( 0 ), Colour = [ [13,72] ];
  return Colour[Generator][iD];
  }
  case 143: {
  Generator = ( GetTickCount() % 7 ), Colour = [ [62,62], [58,58], [62,62], [58,58], [32,32], [88,88], [1,1], [3,3] ];
  return Colour[Generator][iD];
  }
 
  case 144: {
    Generator = ( GetTickCount() % 5 ), Colour = [ [63,63], [67,67], [69,69], [91,91], [3,3], [7,7] ];
    return Colour[Generator][iD];
  }

  case 145: {
    Generator = ( GetTickCount() % 5 ), Colour = [ [25,25], [36,36], [52,52], [3,3], [53,53], [76,76] ];
    return Colour[Generator][iD];
  }

  case 146: {
    Generator = ( 0 ), Colour = [ [1,3] ];
    return Colour[Generator][iD];
  }

  case 147: {
    Generator = ( 0 ), Colour = [ [71,73] ];
    return Colour[Generator][iD];
  }
 
  case 148: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [43,43], [48,48], [54,54], [61,61], [64,64], [9,9], [13,13], [32,32] ];
    return Colour[Generator][iD];
  }

  case 149: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [45,75], [47,76], [33,75], [13,76], [54,75], [69,76], [59,75], [87,76] ];
    return Colour[Generator][iD];
  }

  case 150: {
    Generator = ( GetTickCount() % 2 ), Colour = [ [6,75], [6,73], [6,76] ];
    return Colour[Generator][iD];
  }

  case 151: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [9,9], [30,30], [36,36], [42,42], [13,13], [25,25], [54,54], [60,60] ];
    return Colour[Generator][iD];
  }

  case 152: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [5,8], [32,8], [43,8], [67,8], [11,11], [8,90], [2,2], [83,13] ];
    return Colour[Generator][iD];
  }

  case 153: {
    Generator = ( GetTickCount() % 5 ), Colour = [ [1,16], [1,56], [1,17], [1,53], [1,5], [1,35] ];
    return Colour[Generator][iD];
  }

  case 154: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [54,37], [13,1], [25,1], [38,59], [42,1], [46,1], [55,1], [2,37] ];
    return Colour[Generator][iD];
  }

  case 155: {
    Generator = ( 0 ), Colour = [ [43,0] ];
    return Colour[Generator][iD];
  }

  case 156: {
    Generator = ( 0 ), Colour = [ [46,1] ];
  return Colour[Generator][iD];
  }

  case 157: {
    Generator = ( 0 ), Colour = [ [46,1] ];
    return Colour[Generator][iD];
  }

  case 158: {
    Generator = ( 0 ), Colour = [ [4,75] ];
    return Colour[Generator][iD];
  }

  case 159: {
    Generator = ( GetTickCount() % 3 ), Colour = [ [1,1], [3,3], [36,36], [57,57] ];
    return Colour[Generator][iD];
  }

  case 160: {
    Generator = ( 0 ), Colour = [ [46,1] ];
    return Colour[Generator][iD];
  }

  case 161: {
    Generator = ( GetTickCount() % 5 ), Colour = [ [43,82], [48,82], [56,82], [58,82], [63,82], [2,82] ];
    return Colour[Generator][iD];
  }

  case 162: {
  // Tank does not exist, use green for colisions
    Generator = ( 0 ), Colour = [ [43,43] ];
    return Colour[Generator][iD];
  }

  case 163: {
  // cuban hermes does not exist, use black for colisions
    Generator = ( 0 ), Colour = [ [43,0] ];
    return Colour[Generator][iD];
  }

  case 164: {
    Generator = ( 0 ), Colour = [ [0,6] ];
    return Colour[Generator][iD];
  }

  case 166: {
    Generator = ( 0 ), Colour = [ [14,75] ];
    return Colour[Generator][iD];
  }

  case 167: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [56,75], [75,79], [13,76], [44,27], [67,77], [55,52], [21,26], [74,15] ];
    return Colour[Generator][iD];
  }

  case 168: {
    Generator = ( 0 ), Colour = [ [6,76] ];
    return Colour[Generator][iD];
  }

  case 169: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [57,8], [8,17], [43,21], [54,38], [67,8], [37,78], [65,79], [25,78] ];
    return Colour[Generator][iD];
  }

  case 170: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [78,73], [16,72], [1,75], [18,74], [88,88], [37,1], [59,59], [19,19] ];
    return Colour[Generator][iD];
  }

  case 171: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [17,27], [28,38], [38,47], [46,57], [41,27], [57,48], [67,58], [64,37] ];
    return Colour[Generator][iD];
  }

  case 172: {
    Generator = ( GetTickCount() % 4 ), Colour = [ [0,1], [70,1], [71,1], [72,1], [73,1] ];
    return Colour[Generator][iD];
  }

  case 173: {
    Generator = ( GetTickCount() % 6 ), Colour = [ [74,76], [93,77], [76,78], [15,76], [31,77], [43,78], [48,76] ];
    return Colour[Generator][iD];
  }

  case 174: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [51,0], [61,0], [41,0], [11,0], [64,0], [40,0], [38,0], [10,0] ];
    return Colour[Generator][iD];
  }

  case 175: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [37,37], [42,42], [53,53], [62,62], [7,7], [10,10], [11,11], [15,15] ];
    return Colour[Generator][iD];
  }

  case 176: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [1,3], [1,5], [1,16], [1,22], [1,35], [1,44], [1,53], [1,57] ];
    return Colour[Generator][iD];
  }

  case 177: {
    Generator = ( 0 ), Colour = [ [75,2] ];
    return Colour[Generator][iD];
  }

  case 178: {
    Generator = ( 0 ), Colour = [ [14,6] ];
    return Colour[Generator][iD];
  }

  case 179: {
    Generator = ( 0 ), Colour = [ [16,74] ];
    return Colour[Generator][iD];
  }

  case 182: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [1,3], [1,5], [1,16], [1,22], [1,35], [1,44], [1,53], [1,57] ];
    return Colour[Generator][iD];
  }

  case 183: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [57,8], [8,17], [43,21], [54,38], [67,8], [37,78], [65,79], [25,78] ];
    return Colour[Generator][iD];
  }

  case 184: {
    Generator = ( 0 ), Colour = [ [1,1] ];
    return Colour[Generator][iD];
  }

  case 185: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [84,15], [84,58], [84,31], [32,74], [43,31], [1,31], [77,31], [32,74] ];
    return Colour[Generator][iD];
  }

  case 186: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [28,72], [36,73], [48,74], [59,72], [67,73], [34,74], [13,72], [18,73] ];
    return Colour[Generator][iD];
  }

  case 187: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [58,1], [2,1], [5,1], [18,1], [32,1], [45,1], [13,1], [34,1] ];
    return Colour[Generator][iD];
  }

  case 188: {
    Generator = ( 0 ), Colour = [ [12,73] ];
    return Colour[Generator][iD];
  }

  case 189: {
    Generator = ( 0 ), Colour = [ [88,75] ];
    return Colour[Generator][iD];
  }

  case 190: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [1,3], [1,5], [1,16], [1,22], [1,35], [1,44], [1,53], [1,57] ];
    return Colour[Generator][iD];
  }

  case 191: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [13,13], [22,22], [35,35], [38,38], [2,2], [3,3], [48,48], [51,51] ];
    return Colour[Generator][iD];
  }

  case 192: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [2,37], [68,78], [11,79], [15,8], [33,37], [44,78], [56,79], [60,8] ];
    return Colour[Generator][iD];
  }

  case 193: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [79,79], [84,84], [7,7], [11,11], [19,19], [22,22], [36,36], [53,53] ];
    return Colour[Generator][iD];
  }

  case 194: {
    Generator = ( 0 ), Colour = [ [14,75] ];
    return Colour[Generator][iD];
  }

  case 195: {
    Generator = ( 0 ), Colour = [ [14,75] ];
    return Colour[Generator][iD];
  }

  case 196: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [67,76], [68,76], [78,76], [2,76], [16,76], [18,76], [25,76], [45,88] ];
    return Colour[Generator][iD];
  }

  case 197: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [51,1], [58,8], [60,1], [68,8], [2,1], [13,8], [22,1], [36,8] ];
    return Colour[Generator][iD];
  }

  case 198: {
    Generator = ( GetTickCount() % 3 ), Colour = [ [6,6], [46,46], [53,53], [3,3] ];
    return Colour[Generator][iD];
  }

  case 199: {
    Generator = ( 0 ), Colour = [ [75,2] ];
    return Colour[Generator][iD];
  }

  case 200: {
    Generator = ( 0 ), Colour = [ [43,0] ];
    return Colour[Generator][iD];
  }

  case 201: {
    Generator = ( 0 ), Colour = [ [13,13] ];
    return Colour[Generator][iD];
  }

  case 202: {
    Generator = ( GetTickCount() % 1 ), Colour = [ [1,15], [1,53] ];
    return Colour[Generator][iD];
  }

  case 203: {
    Generator = ( GetTickCount() % 1 ), Colour = [ [1,15], [1,53] ];
    return Colour[Generator][iD];
  }

  case 204: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [2,2], [16,16], [17,17], [21,21], [32,32], [38,38], [43,43], [60,60] ];
    return Colour[Generator][iD];
  }

  case 205: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [2,39], [9,39], [17,1], [21,1], [33,0], [37,0], [41,29], [56,29] ];
    return Colour[Generator][iD];
  }

  case 206: {
    Generator = ( 0 ), Colour = [ [16,16] ];
    return Colour[Generator][iD];
  }

  case 207: {
    Generator = ( GetTickCount() % 8 ), Colour = [ [1,1], [3,3], [2,2], [6,6], [79,41], [8,41], [12,76], [16,76], [23,76] ];
    return Colour[Generator][iD];
  }

  case 208: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [72,72], [93,93], [4,4], [11,11], [42,42], [51,51], [60,60], [64,64] ];
    return Colour[Generator][iD];
  }

  case 209: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [53,32], [15,32], [45,32], [34,30], [65,32], [14,32], [12,32], [43,32] ];
    return Colour[Generator][iD];
  }

  case 210: {
    Generator = ( GetTickCount() % 6 ), Colour = [ [1,1], [12,12], [2,2], [6,6], [4,4], [46,46], [53,53] ];
    return Colour[Generator][iD];
  }

  case 211: {
    Generator = ( GetTickCount() % 3 ), Colour = [ [1,1], [3,3], [6,6], [46,46] ];
    return Colour[Generator][iD];
  }

  case 212: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [41,41], [48,48], [52,52], [64,64], [71,71], [85,85], [10,10], [62,62] ];
    return Colour[Generator][iD];
  }

  case 213: {
    Generator = ( GetTickCount() % 5 ), Colour = [ [9,9], [32,32], [69,69], [73,73], [81,81], [34,34] ];
    return Colour[Generator][iD];
  }

  case 214: {
    Generator = ( GetTickCount() % 3 ), Colour = [ [12,35], [50,32], [40,26], [66,36] ];
    return Colour[Generator][iD];
  }

  case 215: {
    Generator = ( GetTickCount() % 6 ), Colour = [ [1,73], [1,74], [1,75], [1,76], [1,77], [1,78], [1,79] ];
    return Colour[Generator][iD];
  }

  case 216: {
    Generator = ( 0 ), Colour = [ [6,76] ];
    return Colour[Generator][iD];
  }

  case 217: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [1,14], [1,42], [1,57], [54,1], [1,3], [3,1], [12,39], [74,35] ];
    return Colour[Generator][iD];
  }

  case 218: {
    Generator = ( 0 ), Colour = [ [1,2] ];
    return Colour[Generator][iD];
  }

  case 219: {
    Generator = ( GetTickCount() % 5 ), Colour = [ [32,3], [32,42], [32,53], [32,66], [32,14], [32,32] ];
    return Colour[Generator][iD];
  }

  case 220: {
    Generator = ( 0 ), Colour = [ [6,6] ];
    return Colour[Generator][iD];
  }

  case 221: {
    Generator = ( GetTickCount() % 5 ), Colour = [ [40,65], [71,72], [52,66], [64,72], [30,72], [60,72] ];
    return Colour[Generator][iD];
  }

  case 222: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [78,78], [80,13], [2,78], [11,79], [16,8], [25,8], [33,78], [42,79] ];
    return Colour[Generator][iD];
  }

  case 223: {
    Generator = ( 0 ), Colour = [ [36,13] ];
    return Colour[Generator][iD];
  }

  case 224:
  case 233: {
    Generator = ( GetTickCount() % 5 ), Colour = [ [7,53], [3,40], [35,53], [40,75], [42,2], [46,6] ];
    return Colour[Generator][iD];
  }

  case 225: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [15,78], [49,78], [69,78], [45,78], [51,78], [66,78], [56,78], [12,78] ];
    return Colour[Generator][iD];
  }

  case 226: {
    Generator = ( GetTickCount() % 8 ), Colour = [ [8,1], [12,1], [16,1], [22,1], [34,1], [35,1], [41,1], [42,1], [54,1] ];
    return Colour[Generator][iD];
  }

  case 227: {
    Generator = ( 0 ), Colour = [ [46,1] ];
    return Colour[Generator][iD];
  }

  case 228: {
    Generator = ( GetTickCount() % 6 ), Colour = [ [22,77], [32,76], [46,75], [57,74], [66,74], [78,75], [1,74] ];
    return Colour[Generator][iD];
  }

  case 229: {
    Generator = ( GetTickCount() % 6 ), Colour = [ [87,54], [87,64], [8,2], [33,55], [56,69], [89,11], [33,2] ];
    return Colour[Generator][iD];
  }

  case 230: {
    Generator = ( GetTickCount() % 6 ), Colour = [ [30,65], [48,65], [64,68], [64,71], [11,73], [60,68], [74,64] ];
    return Colour[Generator][iD];
  }

  case 231: {
    Generator = ( 0 ), Colour = [ [14,75] ];
    return Colour[Generator][iD];
  }

  case 232: {
    Generator = ( GetTickCount() % 5 ), Colour = [ [2,35], [36,2], [51,53], [91,2], [11,22], [40,35] ];
    return Colour[Generator][iD];
  }

  case 234: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [51,9], [57,1], [45,9], [34,1], [65,9], [14,1], [12,9], [26,1] ];
    return Colour[Generator][iD];
  }

  case 235: {
    Generator = ( GetTickCount() % 7 ), Colour = [ [51,39], [57,38], [45,29], [34,9], [65,9], [14,1], [12,9], [26,1] ];
    return Colour[Generator][iD];
  }

  case 236: {
    Generator = ( GetTickCount() % 4 ), Colour = [ [3,3], [6,6], [7,7], [52,52], [76,76] ];
    return Colour[Generator][iD];
  }

  default: {
  // Shouldn't ever get called
    Generator = ( 0 ), Colour = [ [-1, -1] ];
  return Colour[Generator][iD];
  }
 }
}
[/noae]
There were a few modifications, I noticed vcmp likes to show paint during collisions for all vehicles when story mode doesn't do that for certain vehicles, For example the Sabre Turbo is actually blue in the Carcols file so the fact that vcmp loads that is a little weird so I manually changed some of the vehicles colours to match the colour of the vehicles for collisions.

Hopefully this tiny snippet will help someone with there server, maybe you want to modify colours or whatever, regardless this should help!
I used integers instead of vehicle names as squirrel has a harder time finding strings vs integers

Examples:
[noae]   
local c1 = ColourSlot(model, 0);
local c2 = ColourSlot(model, 1);
CreateVehicle( model, player.Pos, player.Angle, c1, c2 );
[/noae]

[noae]function onVehicleRespawn(vehicle) {
  // Set vehicles to respawn with random colour
  vehicle.Colour1 = ColourSlot(vehicle.Model, 0);
  vehicle.Colour2 = ColourSlot(vehicle.Model, 1);
}
[/noae]

If you find any issues with the behavior of colours in this script, or anything in general please let me know :)
#24
[Suggestion]

Add loading client scripts + a simple basic client scripts
#25
That method returns the wrong angle as well during vehicle flip :'(

I promise I'm not frowning upon or anything I just want to keep this on topic as much as possible that's all.

What do you mean by which solution?
Quotebut I would request to remove the temp solution although it is a simple hack to get around but not a better way of doing it like this.
#26
Make your vehicle sit upside down and reset it by setting the vehicle position to be the same as the vehicle position, and set the angle that it gave you.

Do that and tell me your results. It's not 100% accurate, as I said I can drive down the road and use that method on a timer to set the angle to be the same as that angle gives me for the vehicle and it will return a different angle at times. Don't really know why this went from what I posted to everything after, Was mentioned since this is a easy fix as while in vehicle player status needs to be resetted or something like that
#28
I noted
QuoteThat Method oddly doesn't always return the right angle 80% of the time,
#29
That Method oddly doesn't always return the right angle 80% of the time, for example whenever the vehicle is upside down, the angle will return the wrong angle if you flip the vehicle, I can run this on a timer whenever i'm in vehicle to use that method and I will eventually face the wrong way vs what I posted. I only posted this as a general thing to fix as it would be helpful and a good way to do away with that method
#30
Player.Angle never updates while in a vehicle. While vehicle.Angle seems broken, it's not broken.
The only part about Vehicle.Angle that's broken is returning vehicle angles, You can set the angle normally based off of player.Angle just fine.

Also Player.Angle returns your last known angle from when you first entered your current vehicle, when you exit a vehicle it returns that angle. But it does start to update around 100 ms after exiting a vehicle, It just returns your last angle for some odd reason, The fact that it never updates while in vehicle is why most users have bugged angles when using player.Angle as a angle for vehicles, it just never updates.

So my request is to force Player.Angle to update while in a vehicle, and not to return the players last know angle when exiting a vehicle. If player.Angle updates it shouldn't do that anyway or at least don't set it for the last known angle, just putting that out there to be sure it get's noted.

I have a snippet from testing, this is for flipping a vehicle back over/sets your vehicles angle to be the same as your current vehicle facing angle.

Leave the timer as is, unless  you want to see how player.Angle returns your last known angle vs your current facing angle.
Hopefully this will help explain what I am talking about as I have the flu and don't feel to well :-[

    if (cmd == "flip") {
      // refresh vehicle
      local vehicle = FindVehicle(player.Vehicle.ID), Vehicle_Model = player.Vehicle.Model, vpos = player.Vehicle.Pos, c1 = player.Vehicle.Colour1, c2 = player.Vehicle.Colour2;
      if (vehicle) {
        // Vehicle fliping around like crazy could possibly cause player.Angle to not update for the given time
        if (vehicle.Speed.x < 0.00005 && vehicle.Speed.y < 0.00005) {
            player.Frozen = true;
            vehicle.Remove();
            // Needs a slight offset as it happens so fast it goes unnoticed
            NewTimer("FlipVehicle", 100, 1, Vehicle_Model, player.ID, vpos.x, vpos.y, vpos.z, c1, c2 );
        }
      }
    }

function FlipVehicle( model, fplayer, x, y, z, c1, c2 )
{
    local player = FindPlayer(fplayer);
    if (player) {
        local vehicle = CreateVehicle( model, Vector(x, y, z), player.Angle, c1, c2);
        player.Vehicle = vehicle;
        player.Frozen = false;
        Message("Vehicle angle returns: " + player.Angle);
    }
}

I'm just the new guy