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