View difference between Paste ID: JL5Pxd5F and 2th4XC05
SHOW: | | - or go back to the newest paste.
1
local cuffTimer = {}
2
3
4
function tazer_func ( player )
5
6
	if player == client or not client then
7
		if isOnDuty(player) then
8
			if vioGetElementData ( player, "tazer" ) == 1 then else vioSetElementData ( player, "tazer", 0 ) end
9
			if vioGetElementData ( player, "tazer" ) == 0 then
10
				if not getPedOccupiedVehicle ( player ) then
11
					local posX, posY, posZ = getElementPosition( player )
12
					local tazerSphere = createColSphere( posX, posY, posZ, 3 )
13
					local nearbyPlayers = getElementsWithinColShape( tazerSphere, "player" )
14
					destroyElement( tazerSphere )
15
					local curTazerVicitm = nil
16
					local bestDist = 999
17
					for index, nearbyPlayer in pairs ( nearbyPlayers ) do
18
						if nearbyPlayer ~= player and not getPedOccupiedVehicle ( nearbyPlayer ) and getPedWeapon ( nearbyPlayer ) < 2 ) then
19
							local px, py, pz = getElementPosition ( nearbyPlayer )
20
							local cDist = getDistanceBetweenPoints3D ( posX, posY, posZ, px, py, pz )
21
							if cDist <= bestDist then
22
								curTazerVicitm = nearbyPlayer
23
								bestDist = cDist
24
							end
25
						end
26
					end
27
					if isElement ( curTazerVicitm ) then
28
						setPedAnimation( curTazerVicitm, "crack", "crckdeth2",-1,true,true,false)
29
						setTimer ( defreeze_tazer, 20000, 1, curTazerVicitm )
30
						vioSetElementData ( player, "tazer", 1 )
31
						setTimer ( reuse_tazer, 2000, 1, player )
32
						local posX, posY, posZ = getElementPosition( player )
33
						local chatSphere = createColSphere( posX, posY, posZ, 10 )
34
						local nearbyPlayers = getElementsWithinColShape( chatSphere, "player" )
35
						destroyElement ( chatSphere )
36
						toggleAllControls ( curTazerVicitm, false, true, false )
37
						local pname = getPlayerName ( player )
38
						outputLog ( pname.." hat "..getPlayerName(curTazerVicitm).." getazert!", "tazer" )
39
						for i=1, #nearbyPlayers do
40
							outputChatBox ( pname.." hat "..getPlayerName(curTazerVicitm).." getazert!", nearbyPlayers[i], 100, 0, 200 )
41
						end
42
						vioSetElementData ( curTazerVicitm, "tazered", true )
43
					else
44
						triggerClientEvent ( player, "infobox_start", getRootElement(), "\nEs ist kein\nSpieler in der\nNähe!", 5000, 125, 0, 0 )
45
					end
46
				end
47
			else
48
				triggerClientEvent ( player, "infobox_start", getRootElement(), "\nTazern ist nur\nalle 25 Sekunden\nmöglich!", 5000, 125, 0, 0 )
49
			end
50
		else
51
			triggerClientEvent ( player, "infobox_start", getRootElement(), "\nDu bist kein\nPolizist im\nDienst!", 5000, 125, 0, 0 )
52
		end
53
	end
54
end
55
addEvent ( "tazer", true )
56
addEventHandler ( "tazer", getRootElement(), tazer_func )
57
addCommandHandler ( "tazer", tazer_func )
58
59
function defreeze_tazer ( player )
60
	if isElement ( player ) then
61
		setPedAnimation ( player )
62
		vioSetElementData ( player, "tazered", false )
63
		if vioGetElementData ( player, "nodmzone" ) == 1 then
64
			toggleControl (player, "fire", false)
65
			toggleControl (player, "next_weapon", false)
66
			toggleControl (player, "previous_weapon", false)
67
			toggleControl (player, "aim_weapon", false)
68
			toggleControl (player, "vehicle_fire", false)
69
			toggleControl (player, "vehicle_secondary_fire", false)
70
		end
71
		if vioGetElementData ( player, "tied" ) then
72
			toggleAllControls ( player, true, true, false )
73
			if isTimer ( cuffTimer[player] ) then
74
				toggleControl ( player, "sprint", false )
75
				toggleControl ( player, "walk", false )
76
				setControlState ( player, "walk", true )
77
			end
78
		end
79
	end
80
end
81
82
function reuse_tazer ( player )
83
84
	vioSetElementData ( player, "tazer", 0 )
85
end
86
87
function accept_func ( player, cmd, add )
88
89
	if add == "test" then
90
		local cop = vioGetElementData ( player, "tester" )
91
		if isElement ( cop ) then
92
			local alc = vioGetElementData ( player, "alcoholFlushPoints" ) / 25
93
			local drogen = vioGetElementData ( player, "drugFlushPoints" )
94
			infobox ( player, "\n\n\nDu hast dem\nTest zugestimmt.", 5000, 0, 125, 0 )
95
			local result = "Ergebnis:\nAlkoholgehalt im Blut: "..alc.." Promil,\nTHC-Gehalt im Blut: "..drogen
96
			outputChatBox ( result, cop, 200, 200, 0 )
97
			outputChatBox ( result, player, 200, 200, 0 )
98
		else
99
			infobox ( player, "\n\n\nNicht möglich.", 5000, 125, 0, 0 )
100
		end
101
	end
102
end
103
addCommandHandler ( "accept", accept_func )
104
105
106
function cuff_func ( player, cmd, target )
107
108
	if player == client or not client then
109
		if isOnDuty(player) then
110
			local target = getPlayerFromName ( target )
111
			if target then
112
				local x1, y1, z1 = getElementPosition ( player )
113
				local x2, y2, z2 = getElementPosition ( target )
114
				if getDistanceBetweenPoints3D ( x1, y1, z1, x2, y2, z2 ) <= 5 then
115
					vioSetElementData ( target, "sprint", 1 )
116
					if isTimer ( cuffTimer[target] ) then
117
						killTimer ( cuffTimer[target] )
118
						outputChatBox ( "Du hast die Handschellen von "..getPlayerName(target).." erneuert!", player, 0, 125, 0 )
119
					else
120
						toggleControl ( target, "sprint", false )
121
						toggleControl ( target, "walk", false )
122
						setControlState ( target, "walk", true )
123
						outputChatBox ( getPlayerName(player).." hat dich gefesselt! Du kannst nicht mehr rennen!", target, 0, 125, 0 )
124
						outputChatBox ( "Du hast "..getPlayerName(target).." Handschellen angelegt!", player, 0, 125, 0 )
125
						takeAllWeapons ( target )
126
					end
127
					cuffTimer[target] = setTimer ( reengage_sprint, 30000, 1, target )
128
				else
129
					triggerClientEvent ( player, "infobox_start", getRootElement(), "\n\nDu bist zu weit\nentfernt!", 5000, 125, 0, 0 )
130
				end
131
			else
132
				triggerClientEvent ( player, "infobox_start", getRootElement(), "\n\nUngueltiger Spieler!", 5000, 125, 0, 0 )
133
			end
134
		else
135
			triggerClientEvent ( player, "infobox_start", getRootElement(), "\nDu bist kein\nPolizist im\nDienst!", 5000, 125, 0, 0 )
136
		end
137
	end
138
end
139
addEvent ( "cuffGUI", true )
140
addEventHandler ( "cuffGUI", getRootElement(), cuff_func )
141
addCommandHandler ( "cuff", cuff_func )
142
143
function reengage_sprint ( player )
144
145
	vioSetElementData ( player, "sprint", 0 )
146
	toggleControl ( player, "sprint", true )
147
	toggleControl ( player, "walk", true )
148
	setControlState ( player, "walk", false )
149
	outputChatBox ( "Du hast deine Fußfesseln gelöst!", player,  0, 125, 0 )
150
end