· 8 years ago · Jul 09, 2018, 07:44 AM
1function onScriptLoad()
2{
3QuerySQL(db, "create table if not exists vehicles ( `ID` NUMERIC, `Price` NUMERIC DEFAULT 1, `Owner` TEXT, `Shared` TEXT, `PosX` FLOAT, `PosY` FLOAT, `PosZ` FLOAT, `Angle` FLOAT, Col1 NUMERIC DEFAULT 0, Col2 NUMERIC DEFAULT 0, Model NUMERIC )" );
4VehicleStats <- array(500, null);
5}
6
7class VehicleClass {
8 ID = 0;
9 Price = 0;
10 Owner = "None";
11 Shared = "None";
12 PosX = 0;
13 PosY = 0;
14 PosZ = 0;
15 EulerAngle = 0;
16 Col1 = 0;
17 Col2 = 0;
18 Model = 0;
19}
20
21function LoadVehs()
22{
23 local q = QuerySQL(db, "SELECT * FROM vehicles" ), i = 0;
24 if (q) {
25 while( GetSQLColumnData(q,0)) {
26 local price = GetSQLColumnData(q,1),
27 own = GetSQLColumnData(q,2),
28 shar = GetSQLColumnData(q,3),
29 Xp = GetSQLColumnData(q,4),
30 Yp = GetSQLColumnData(q,5),
31 Zp = GetSQLColumnData(q,6),
32 Angle = GetSQLColumnData(q,7),
33 C1 = GetSQLColumnData(q,8),
34 C2 = GetSQLColumnData(q,9),
35 model = GetSQLColumnData(q,10);
36 CreateVehicle( model, 0, Xp, Yp, Zp, Angle, C1 , C2 );
37 FindVehicle(GetVehicleCount()).EulerAngle = Angle;
38 FindVehicle(GetVehicleCount()).EulerSpawnAngle = Angle;
39 VehicleStats[FindVehicle(GetVehicleCount()).ID].ID = FindVehicle(GetVehicleCount()).ID;
40 VehicleStats[FindVehicle(GetVehicleCount()).ID].Price = price;
41 VehicleStats[FindVehicle(GetVehicleCount()).ID].Owner = own;
42 VehicleStats[FindVehicle(GetVehicleCount()).ID].Shared = shar;
43 VehicleStats[FindVehicle(GetVehicleCount()).ID].PosX = Xp;
44 VehicleStats[FindVehicle(GetVehicleCount()).ID].PosY = Yp;
45 VehicleStats[FindVehicle(GetVehicleCount()).ID].PosZ = Zp;
46 VehicleStats[FindVehicle(GetVehicleCount()).ID].EulerAngle = Angle;
47 VehicleStats[FindVehicle(GetVehicleCount()).ID].Col1 = C1;
48 VehicleStats[FindVehicle(GetVehicleCount()).ID].Col2 = C2;
49 VehicleStats[FindVehicle(GetVehicleCount()).ID].Model = model;
50 GetSQLNextRow(q);
51 i++
52 }
53 print("Number of vehicles: "+i+".");
54 return 0;
55 }
56 else print("No vehicles yet.");
57
58}
59
60
61
62
63
64case "addveh":
65 if (CheckLevel(player,6,"access") == true) {
66 if (!text) ClientMessage("[#F1C85C]<Usage>[$FF] /"+cmd+" (model) (color1) (color2) (price)",player,255,255,255);
67 else{
68 local v = split(text, " ");
69 if (v.len() < 4) ClientMessage("[#F1C85C]<Usage>[$FF] /"+cmd+" (model) (color1) (color2) (price)",player,255,255,255);
70 else if (v.len() > 4) ClientMessage("[#F1C85C]<Usage>[$FF] /"+cmd+" (model) (color1) (color2) (price)",player,255,255,255);
71 else {
72 local
73 model = v[0],
74 col1 = v[1],
75 col2 = v[2],
76 price = v[3],
77 q = QuerySQL(db,"SELECT * FROM vehicles");
78 if (!IsNum(model)) ClientMessage("[#FFB8A8]The Model[$FF] must be a number!",player,250,250,250);
79 else if ( !IsNum(col1) || !IsNum(col2) ) ClientMessage("[#FFB8A8]The Colors[$FF] must have a number value!",player,250,250,250);
80 else if ( !IsNum(price) ) ClientMessage("[#FFB8A8]The Price[$FF] must be a number!",player,250,250,250);
81 else if ( price.tointeger()<0 ) ClientMessage("[#FFB8A8]The Price[$FF] must be higher than 0!",player,250,250,250);
82 else {
83 CreateVehicle( model.tointeger(), 0, Vector(player.Pos.x,player.Pos.y,player.Pos.z), player.Angle, col1.tointeger(), col2.tointeger() );
84 FindVehicle(GetVehicleCount()).SpawnAngle = player.Angle;
85 VehicleStats[ FindVehicle(GetVehicleCount()).ID ] = VehicleClass ();
86 VehicleStats[ FindVehicle(GetVehicleCount()).ID ].ID = FindVehicle(GetVehicleCount()).ID;
87 VehicleStats[ FindVehicle(GetVehicleCount()).ID ].Price = price;
88 VehicleStats[ FindVehicle(GetVehicleCount()).ID ].PosX = player.Pos.x;
89 VehicleStats[ FindVehicle(GetVehicleCount()).ID ].PosY = player.Pos.y;
90 VehicleStats[ FindVehicle(GetVehicleCount()).ID ].PosZ = player.Pos.z;
91 VehicleStats[ FindVehicle(GetVehicleCount()).ID ].EulerAngle = FindVehicle(GetVehicleCount()).SpawnAngle;
92 VehicleStats[ FindVehicle(GetVehicleCount()).ID ].Col1 = col1;
93 VehicleStats[ FindVehicle(GetVehicleCount()).ID ].Col2 = col2;
94 VehicleStats[ FindVehicle(GetVehicleCount()).ID ].Model = model;
95 QuerySQL( db, "INSERT INTO vehicles VALUES ( '"+FindVehicle(GetVehicleCount()).ID+"', '"+price+"', 'None', 'None', '"+player.Pos.x+"', '"+player.Pos.y+"', '"+player.Pos.z+"', '"+FindVehicle(GetVehicleCount()).EulerSpawnAngle+"', "+col1+", "+col2+", "+model+" ) ");
96 ClientMessageToAll(RankLevel(PlayerStats[ player.ID ].Level)+" "+player.Name+" has added a new vehicle in "+GetDistrictName( player.Pos.x,player.Pos.y )+" ("+GetVehicleNameFromModel(v[0])+" - ID "+FindVehicle(GetVehicleCount()).ID+").",207, 249, 255);
97 FreeSQLQuery(q);
98 }
99 }
100 }
101 }
102 break;