· 7 years ago · Oct 28, 2018, 01:08 AM
1symbols = {
2 'A',
3 'B',
4 'C',
5 'Y',
6 'O',
7 'P',
8 'T',
9 'E',
10 'X',
11 'M',
12 'H',
13 'K'
14}
15
16function buyNumberPlayer(ply, amount)
17 takePlayerMoney(ply, amount)
18end
19addEvent("buyNumberPlayer", true)
20addEventHandler("buyNumberPlayer", root, buyNumberPlayer)
21
22function createNumberShopPoints()
23 for _, tab in pairs(numberPoints) do
24 local pos = tab.pos
25 local markerColor = tab.markerColor
26 local markerSize = tab.markerSize
27
28 local marker = createMarker(pos[1], pos[2], pos[3], 'cylinder', markerSize, unpack(markerColor))
29 --createBlipAttachedTo(marker,63)
30 --dxDraw3DText("УÑтановка номеров", pos[1],pos[2], pos[3]+3)
31 setElementData(marker, 'data', tab)
32
33 addEventHandler('onMarkerHit', marker, function(element)
34 if getElementType(element) ~= 'player' then return end
35 if isGuestAccount(getPlayerAccount(element)) then return end
36 local veh = getPedOccupiedVehicle(element)
37 if not veh then return end
38 if getVehicleOccupant(getPedOccupiedVehicle(element)) ~= element then return end
39 --if not getElementData(veh,'owner') then return end
40
41 triggerClientEvent(element, 'numbers:startNumberSelect1', source, getElementData(source, 'data'))
42 end)
43 end
44end
45createNumberShopPoints()
46
47addEventHandler("onPlayerLogin", root, function (_, account)
48 if not isGuestAccount(account) then
49 updateNumbersInfo(source)
50 end
51end)
52
53function updateNumbersInfo(player)
54 if isElement(player) then
55 local result = dbPoll(dbQuery(db, "SELECT * FROM numbersPlayers WHERE Account = ?", getAccountName(getPlayerAccount(player))), -1)
56 if type(result) == "table" then
57 setElementData(player, "NumbersPlayer", result)
58 end
59 end
60end
61
62addEventHandler("onResourceStart", resourceRoot,
63 function()
64 db = dbConnect("sqlite", "database/database.db")
65 dbExec(db, "CREATE TABLE IF NOT EXISTS numbersPlayers (Account, numbers)")
66 for i, player in ipairs(getElementsByType("player")) do
67 updateNumbersInfo(player)
68 end
69
70 for i, vehicle in ipairs(getElementsByType("vehicle")) do
71 triggerLatentClientEvent("triggerCNum", 50000, false, resourceRoot, vehicle)
72 end
73 end)
74
75 function check(ply)
76 local accName = getAccountName (getPlayerAccount (ply))
77 if isObjectInACLGroup ("user."..accName, aclGetGroup ("Admin")) then
78 triggerClientEvent(ply, "numbers:startNumberSelect2", ply)
79 else
80 -- outputChatBox("Вы не админ")
81 return
82 end
83 end
84 addCommandHandler("num", check)
85
86 function saveNumbersServer(money, veh)
87 takePlayerMoney(source, money)
88 account = getAccountName(getPlayerAccount(source))
89 numbers = toJSON({getElementData(veh, "number:plate"), getElementData(veh, "numberType")})
90 dbExec(db, "INSERT INTO numbersPlayers VALUES(?, ?)", account, numbers)
91 local rand1 = math.random(0, 9)
92 local rand2 = math.random(0, 9)
93 local rand3 = math.random(0, 9)
94 local rand4 = math.random(0, 9)
95 local rand6 = math.random(1, 9)
96 local rand5 = math.random(10, 99)
97 local symbol_1 = symbols[math.random(#symbols)]
98 local symbol_2 = symbols[math.random(#symbols)]
99 local symbol_3 = symbols[math.random(#symbols)]
100 setElementData(veh, "numberType", "ru")
101 setElementData(veh, "number:plate", symbol_1..rand1..rand3..rand4..symbol_2..symbol_3..rand5)
102 numbers = toJSON({getElementData(veh, "number:plate"), getElementData(veh, "numberType")})
103 if isNumberExists(ntype,ntext) then
104 outputChatBox("[#ff0000Ошибка#ffffff] ÐÐµÐ»ÑŒÐ·Ñ ÐºÑƒÐ¿Ð¸Ñ‚ÑŒ такой номер! Он уже зарегиÑтрирован!", source,255,255,255,true)
105 return false
106 end
107 outputChatBox("Ð’Ñ‹ уÑпешно Ñохранили номера!", source)
108 id = getElementData(veh, "ID")
109 exports["gs_shop_system"]:updateVehicles(source)
110 updateNumbersInfo(source)
111 end
112 addEvent("saveNumbersServer", true)
113 addEventHandler("saveNumbersServer", root, saveNumbersServer)
114
115 function updateNumbersServer(money, veh, num, typeNum)
116 takePlayerMoney(source, money)
117 account = getAccountName(getPlayerAccount(source))
118 numbers = toJSON({num, typeNum})
119 dbExec(db, "DELETE FROM numbersPlayers WHERE Account = ? AND numbers = ?", getAccountName(getPlayerAccount(source)), numbers)
120 setElementData(veh, "numberType", typeNum)
121 setElementData(veh, "number:plate", num)
122 outputChatBox("Ð’Ñ‹ уÑпешно перенеÑли номера!", source)
123 id = getElementData(veh, "ID")
124 exports["gs_shop_system"]:updateVehicles(source)
125 updateNumbersInfo(source)
126 end
127 addEvent("updateNumbersServer", true)
128 addEventHandler("updateNumbersServer", root, updateNumbersServer)
129
130 function editNumbersServer(money, veh, newNum, newTypeNum)
131 oldNum = getElementData(veh, "number:plate")
132 oldTypeNum = getElementData(veh, "numberType")
133 takePlayerMoney(source, money)
134 account = getAccountName(getPlayerAccount(source))
135 numbersNew = toJSON({newNum, newTypeNum})
136 numbersOld = toJSON({oldNum, oldTypeNum})
137 dbExec(db, "DELETE FROM numbersPlayers WHERE Account = ? AND numbers = ?", getAccountName(getPlayerAccount(source)), numbersNew)
138 dbExec(db, "INSERT INTO numbersPlayers VALUES(?, ?)", account, numbersOld)
139 setElementData(veh, "numberType", newTypeNum)
140 setElementData(veh, "number:plate", newNum)
141 outputChatBox("Ð’Ñ‹ уÑпешно перенеÑли номера!", source)
142 id = getElementData(veh, "ID")
143 exports["gs_shop_system"]:updateVehicles(source)
144 updateNumbersInfo(source)
145 end
146 addEvent("editNumbersServer", true)
147 addEventHandler("editNumbersServer", root, editNumbersServer)