· 6 years ago · Aug 20, 2019, 09:02 PM
1function onResourceStart ()
2 db = dbConnect( "sqlite", "database.db" )
3 dbExec(db, "CREATE TABLE IF NOT EXISTS user_data (name, surname, age, floor, date, email, serial)")
4end
5addEventHandler("onResourceStart", getResourceRootElement(getThisResource()), onResourceStart)
6
7function updatePlayerInfo (name, surname, age, floor, date, email, serial)
8 local result = dbPoll(dbQuery(db, "SELECT * FROM user_data WHERE serial = ?", serial), -1)
9 if result and #result ~= 0 then
10 dbExec(db, "UPDATE user_data SET name = ?, surname = ?, age = ?, floor = ?, date = ?, email = ? WHERE serial = ? ", name, surname, age, floor, date, email, serial)
11 else
12 dbExec(db, "INSERT INTO user_data VALUES(?, ?, ?, ?, ?, ?, ?)", name, surname, age, floor, date, email, serial)
13 end
14end
15
16function registerPass(player, name, surname, age, floor, type1, type2, type3, email)
17 local query = dbQuery(db,"SELECT * FROM user_data WHERE serial = ?", getPlayerSerial(player))
18 local result = dbPoll(query,-1)
19 if #result >= 1 then triggerClientEvent(player, "passCheck", player) return end
20 local date = type1.."."..type2.."."..type3
21 updatePlayerInfo(name, surname, age, floor, date, email, getPlayerSerial(player))
22 outputChatBox("Поздравляем! Вы успешно #00FF00оформили #FFFFFFпаспорт.",player,255,255,255,true)
23 outputChatBox("Для его открытия используйте: #00FF00/pass",player,255,255,255,true)
24 setElementData(player, "player:currentName", name)
25 setElementData(player, "player:currentSurname", surname)
26 setElementData(player, "player:currentAge", age)
27 setElementData(player, "player:currentFloor", floor)
28 setElementData(player, "player:currentDate", date)
29 setElementData(player, "player:currentEmail", email)
30 --setElementData(player, "player:Check", true)
31end
32addEvent("registerPass",true)
33addEventHandler("registerPass",getRootElement(),registerPass)
34
35function displayerPass(player, _, nick)
36 if not nick then
37 --if getElementData(player,"player:Check") == true then
38 --local query = dbQuery(db,"SELECT * FROM user_data WHERE serial = ?", getPlayerSerial(player))
39 --local result = dbPoll(query,-1)
40 --if #result <= 0 then outputChatBox("У вас нет паспорта.",player,255,0,0,true) return end
41 triggerClientEvent(player, "passPlayer", player, player)
42 --else
43 -- outputChatBox("У вас нет паспорта.",player,255,0,0,true)
44 --end
45 else
46 if getElementData(player,"player:Check") == true then
47 local taker = getPlayerFromName(nick)
48 if not taker or not isElement(taker) then outputChatBox("Игрок не найден!",player,255,0,0,true) return end
49 triggerClientEvent(taker, "passPlayer", taker, player)
50 outputChatBox("Вы успешно показали свой паспорт игроку под ником #00FF00"..getPlayerName(taker),player,255,255,255,true)
51 else
52 outputChatBox("У вас нет паспорта.",player,255,0,0,true)
53 outputChatBox("У игрока нет паспорта.",taker,255,0,0,true)
54 end
55 end
56end
57addCommandHandler(comPass, displayerPass)
58
59local Meria = createPickup(mer[1],mer[2],mer[3], 3, 1318, 1)
60local blip = createBlipAttachedTo(Meria, 25)
61setBlipVisibleDistance(blip, 400)
62
63local Meria2 = createPickup(mer2[1],mer2[2],mer2[3], 3, 1318, 1)
64setElementInterior(Meria2, int)
65
66function onPickupHitEnter (source)
67 setElementPosition(source, merTp[1], merTp[2], merTp[3])
68 setPedRotation(source, 0)
69 setElementInterior(source, int)
70 playSoundFrontEnd(source, 32)
71 toggleControl(source, "fire", false)
72end
73addEventHandler("onPickupHit", Meria, onPickupHitEnter)
74
75function onPickupHitLeave(source)
76 setElementPosition(source, merTp2[1], merTp2[2], merTp2[3])
77 setPedRotation(source, 0)
78 setElementInterior(source, 0)
79 playSoundFrontEnd(source, 32)
80 toggleControl(source, "fire", true)
81end
82addEventHandler("onPickupHit", Meria2, onPickupHitLeave)
83
84local abiding_timer = {}
85
86
87-----------------------------------------------------------Мною писаное которое---------
88
89addEventHandler("onPlayerLogin", root,
90 function()
91 local serial = getAccountName ( source:getAccount() )
92 local q = dbQuery(conn,"SELECT rowid,* FROM user_data WHERE serial=?",serial)
93 local result = dbPoll(q,-1)
94 if result then
95 for _,row in ipairs(result) do
96 setElementData(player, "player:currentName", name)
97 setElementData(player, "player:currentSurname", surname)
98 setElementData(player, "player:currentAge", age)
99 setElementData(player, "player:currentFloor", floor)
100 setElementData(player, "player:currentDate", date)
101 setElementData(player, "player:currentEmail", email)
102 end
103 end
104end
105)
106
107------------------------------------------Ниже сток-----------------------------------------------
108
109
110
111addEventHandler("onPlayerLogin", root,
112function(_,acc)
113 abiding_timer[source] = setTimer(giveAbidingForTime, 60 * 60000, 0, source)
114end)
115
116addEventHandler("onPlayerQuit", root,
117function(_,acc)
118 if isTimer(abiding_timer[source]) then
119 killTimer(abiding_timer[source])
120 end
121end)
122
123
124
125addEventHandler("onPlayerQuit", getRootElement(),
126 function ()
127 local account = getPlayerAccount(source)
128 setAccountData(account, "player:abiding", getElementData(source, "player:abiding") )
129 end
130)
131
132addEventHandler("onPlayerLogin", getRootElement(),
133 function (_,account)
134 setElementData(source,"isPlayerLogin", true)
135 setElementData(source, "player:abiding", (getAccountData(account, "player:abiding") or 35))
136 end
137)