Guten Tag/Abend,
ich habe schon versucht die colSphere zu ändern doch trotzdem geht es nicht.
Ich habe die x und y Koordinate eingefügt.
Könnte mir jemand weiter helfen?
MfG,
McMoneyxD
Lua
local Zellen = {}
Zellen[1] = false
Zellen[2] = false
Zellen[3] = false
Zellen[4] = false
Zellen[5] = false
Zellen[6] = false
local CellKoords = {}
for i=1, 6, 1 do
CellKoords[i] = {}
end
CellKoords[1]["x"], CellKoords[1]["y"], CellKoords[1]["z"], CellKoords[1]["rot"] = 1539.5999755859, -1669.9000244141, 5.9000000953674, 0
CellKoords[2]["x"], CellKoords[2]["y"], CellKoords[2]["z"], CellKoords[2]["rot"] = 1539.5999755859, -1668.9000244141, 5.9000000953674, 0
CellKoords[3]["x"], CellKoords[3]["y"], CellKoords[3]["z"], CellKoords[3]["rot"] = 1539.5999755859, -1667.9000244141, 5.9000000953674, 0
CellKoords[4]["x"], CellKoords[4]["y"], CellKoords[4]["z"], CellKoords[4]["rot"] = 1539.5999755859, -1666.9000244141, 5.9000000953674, 0
CellKoords[5]["x"], CellKoords[5]["y"], CellKoords[5]["z"], CellKoords[5]["rot"] = 1539.5999755859, -1666.9000244141, 5.9000000953674, 0
CellKoords[6]["x"], CellKoords[6]["y"], CellKoords[6]["z"], CellKoords[6]["rot"] = 1539.5999755859, -1666.9000244141, 5.9000000953674, 0
local bailCosts = { 1000, 2000, 3000, 5000, 7000, 10000 }
addEvent ( "onPlayerGetsFreed", true )
local playerCelled = {}
function getFreeCell ( )
local va = false
local num = false
local vale = 0
while va == false do
if vale == 6 then
return false
end
num = math.random ( 1, 6 )
if Zellen[num] == false then
va = true
return num
end
vale = vale+1
end
end
function getCellCoords ( count )
if count == false then
return 2443.1318359375, -1274.8173828125, 988.19055175781, 110
end
return CellKoords[count]["x"], CellKoords[count]["y"], CellKoords[count]["z"], CellKoords[count]["rot"]
end
function cellHandlerFunc ( player )
local player = isElement ( player ) and player or source
local cell = playerCelled[player]
if cell then
Zellen[cell] = false
end
playerCelled[player] = nil
removeEventHandler ( "onPlayerGetsFreed", player, cellHandlerFunc )
removeEventHandler ( "onPlayerQuit", player, cellHandlerFunc )
removeEventHandler ( "onPlayerWasted", player, cellHandlerFunc )
end
function putPlayerInFreeCell ( player )
local cell = getFreeCell()
if cell == false then
else
Zellen[cell] = getPlayerName ( player )
playerCelled[player] = cell
removeEventHandler ( "onPlayerGetsFreed", player, cellHandlerFunc )
removeEventHandler ( "onPlayerQuit", player, cellHandlerFunc )
removeEventHandler ( "onPlayerWasted", player, cellHandlerFunc )
addEventHandler ( "onPlayerGetsFreed", player, cellHandlerFunc )
addEventHandler ( "onPlayerQuit", player, cellHandlerFunc )
addEventHandler ( "onPlayerWasted", player, cellHandlerFunc )
end
local x, y, z, rz = getCellCoords ( cell )
setElementPosition ( player, x, y, z )
setElementRotation ( player, 0, 0, rz )
setElementInterior ( player, 0 )
end
LVJailArea = createColCuboid ( 2278.166015625, 2424.8486328125, 3.0, 6.799804685, 10.05, 4.08400478363 )
local sfprisonjail = createColSphere ( 1585.0999755859, -1677.4000244141, 3.0, 6.799804685, 10.05, 4.08400478363 )
function isInLVJailArea ( player )
local x1, y1, z1 = getElementPosition ( player )
if getDistanceBetweenPoints3D ( x1, y1, z1, 198.08735656738, 174.32916259766, 1002.672668457 ) < 10 then
return true
else
return false
end
end
function isInSFJailArea ( player )
--[[local x, y, z = getElementPosition ( player )
if x < 229 and x > 213 and y < 116 and y > 107 and z < 1002 and z > 950 then
return true
else
return false
end]]
return isElementWithinColShape ( player, sfprisonjail )
end
function isInSFCarJailArea ( player )
local x, y, z = getElementPosition ( player )
if getDistanceBetweenPoints3D ( 1585.0999755859, -1677.4000244141, 0, x, y, 0 ) < 10 then
return true
else
return false
end
end
function isInLVCarJailArea ( player )
return isElementWithinColShape ( player, LVJailArea )
end
function arrest_func ( player )
local arrest_wanteds = tonumber(vioGetElementData( player, "wanteds" ))
local time
local fine
local kaution
local targetfrac = vioGetElementData( player, "fraktion" )
local arrester = nil
-----------------------------------------------------
if evilFraction[targetfrac] then
time = arrest_wanteds * math.ceil(jailtimeperwanted * 0.8)
fine = 150 * arrest_wanteds
kaution = bailCosts[arrest_wanteds]
else
time = arrest_wanteds * math.ceil(jailtimeperwanted)
fine = 200 * arrest_wanteds
kaution = 0
end
----------------------------------------------------------------
local veh = getPedOccupiedVehicle ( player )
if isElement ( veh ) then
arrester = getVehicleController ( veh )
vioSetElementData ( player, "arrester", arrester )
removePedFromVehicle ( player )
end
local boolean = not vioGetElementData ( player, "tied" )
if boolean then
local fix = "ent"
vioSetElementData ( player, "tied", boolean )
toggleAllControls ( player, boolean )
fadeCamera ( player, true, 0.5, 0, 0, 0 )
removeEventHandler ( "onPlayerCommand", player, block_tie_cmds )
end
if vioGetElementData ( player, "jailtime" ) > 0 then
cellHandlerFunc ( player )
end
arrestPlayer ( arrester, player, time, fine, kaution )
end
function ausknastenAusKnast ( player, cmd, targetname )
if isStateFaction ( player ) or isAdminLevel ( player, 4 ) then
if isOnDuty ( player ) or isAdminLevel ( player, 4 ) then
if getPlayerRank ( player ) >= 2 or isAdminLevel ( player, 4 ) then
if targetname then
local target = findPlayerByName( targetname )
if target then
if vioGetElementData ( target, "jailtime" ) > 0 and vioGetElementData ( target, "prison" ) == 0 then
freePlayerFromJail ( target )
local msg = "Der Spieler "..getPlayerName(target).." wurde von "..getPlayerName(player).." ausgeknastet."
sendMSGForFaction ( msg, 1, 0, 0, 155 )
sendMSGForFaction ( msg, 6, 0, 0, 155 )
sendMSGForFaction ( msg, 8, 0, 0, 155 )
else
triggerClientEvent ( player, "infobox_start", getRootElement(), "Der Spieler ist\nnicht im Knast!", 5000, 125, 0, 0 )
end
else
triggerClientEvent ( player, "infobox_start", getRootElement(), "Der Spieler existiert\nnicht oder ist\noffline!", 5000, 125, 0, 0 )
end
else
triggerClientEvent ( player, "infobox_start", getRootElement(), "Gebrauch:\n/ausknasten [Name]", 5000, 125, 0, 0 )
end
else
triggerClientEvent ( player, "infobox_start", getRootElement(), "Ab Rang 2\noder Supporter", 5000, 125, 0, 0 )
end
else
triggerClientEvent ( player, "infobox_start", getRootElement(), "Du musst\nOnduty sein!", 5000, 125, 0, 0 )
end
else
triggerClientEvent ( player, "infobox_start", getRootElement(), "Du bist nicht befugt!", 5000, 125, 0, 0 )
end
end
addCommandHandler ( "ausknasten", ausknastenAusKnast )
--[[function carrest_func ( player, cmd, target, time, fine, bail )
if target ~= nil then
target = getPlayerFromName(target)
local x, y, z = getElementPosition ( player )
local tx, ty, tz = getElementPosition ( target )
fine = math.abs ( math.floor ( tonumber ( fine ) ) )
bail = math.abs ( math.floor ( tonumber ( bail ) ) )
time = math.abs ( math.floor ( tonumber ( time ) ) )
if isOnDuty ( player ) or isArmy(player) then
local bool = ( isInLVCarJailArea ( player ) and isInLVCarJailArea ( target ) )
if getDistanceBetweenPoints3D ( -1590, 716, 0, x, y, 0 ) < 6.5 or bool then
if getDistanceBetweenPoints3D ( -1590, 716, 0, tx, ty, 0 ) < 6.5 or bool then
if vioGetElementData ( target, "wanteds" ) >= 1 then
removePedFromVehicle ( target )
arrestPlayer ( player, target, time, fine, bail )
else
triggerClientEvent ( player, "infobox_start", getRootElement(), "Der Buerger hat\nkeine Verbrechen\nbegangen!", 5000, 125, 0, 0 )
end
else
triggerClientEvent ( player, "infobox_start", getRootElement(), "\n\nZiel ist\nbeim Carport!", 7500, 125, 0, 0 )
end
else
triggerClientEvent ( player, "infobox_start", getRootElement(), "\n\nDu bist nicht\nam Carport!", 7500, 125, 0, 0 )
end
else
triggerClientEvent ( player, "infobox_start", getRootElement(), "Du bist\nkein Polizist im\nDienst!", 7500, 125, 0, 0 )
end
else
triggerClientEvent ( player, "infobox_start", getRootElement(), "Gebrauch:\n/carrest [Name]\n[Zeit] [Bail\n 0=Nein]", 7500, 125, 0, 0 )
end
end
addCommandHandler ( "carrest", carrest_func )]]
function arrestPlayer ( officer, player, time, fine, bail )
local money = vioGetElementData ( player, "money" )
if fine > money then
vioSetElementData ( player, "money", 0 )
else
vioSetElementData ( player, "money", money - fine )
end
if vioGetElementData ( player, "tied" ) then
fadeCamera ( player, true, 0.5, 0, 0, 0 )
toggleAllControls ( player, true )
end
vioSetElementData ( player, "jailtime", time )
if officer then
vioSetElementData ( officer, "boni", vioGetElementData ( officer, "boni" ) + vioGetElementData ( player, "wanteds" ) * wantedarrestmoney )
end
if bail == nil then bail = 0 end
if bail == 0 then
vioSetElementData ( player, "bail", 0 )
if officer then
outputChatBox ( "Du hast den Spieler "..getPlayerName ( player ).." ohne Kaution für "..fine.." $ und "..time.." Minuten eingesperrt!", officer, 0, 125, 0 )
outputChatBox ( "Du wurdest vom Staatsfraktionisten "..getPlayerName ( officer ).." ohne Kaution für "..fine.." $ und "..time.." Minuten eingesperrt!", player, 0, 125, 0 )
else
outputChatBox ( "Du wurdest ohne Kaution für "..fine.." $ und "..time.." Minuten eingesperrt!", player, 0, 125, 0 )
end
else
vioSetElementData ( player, "bail", bail )
if officer then
outputChatBox ( "Du wurdest vom Staatsfraktionisten "..getPlayerName ( officer ).." mit "..bail.." $ Kaution für "..fine.." $ und "..time.." Minuten eingesperrt!", player, 0, 125, 0 )
outputChatBox ( "Du hast den Spieler "..getPlayerName ( player ).." mit "..bail.." $ Kaution für "..fine.." $ und "..time.." Minuten eingesperrt!", officer, 0, 125, 0 )
else
outputChatBox ( "Du wurdest mit "..bail.." $ Kaution für "..fine.." $ und "..time.." Minuten eingesperrt!", player, 0, 125, 0 )
end
end
vioSetElementData ( player, "AnzahlImKnast", vioGetElementData ( player, "AnzahlImKnast" ) + 1 )
if officer then
outputChatBox ( getPlayerRankName ( officer ).." "..getPlayerName ( officer ).." hat "..getPlayerName ( player ).." eingesperrt!", getRootElement(), 0, 0, 150 )
vioSetElementData ( officer, "AnzahlEingeknastet", vioGetElementData ( officer, "AnzahlEingeknastet" ) + 1 )
else
outputChatBox ( getPlayerName ( player ).." wurde eingesperrt!", getRootElement(), 0, 0, 150 )
end
putPlayerInJail ( player )
end
local knast_cmds = {}
knast_cmds["smoke"] = true
knast_cmds["usedrugs"] = true
knast_cmds["sellgun"] = true
function disbaleKnastCMD ( cmd )
if knast_cmds[cmd] then
cancelEvent()
end
end
function putPlayerInJail ( player )
takeAllWeapons ( player )
vioSetElementData ( player, "wanteds", 0 )
setPlayerWantedLevel ( player, 0 )
triggerClientEvent ( player, "jailKeyDisable", player )
putPlayerInFreeCell ( player )
removeEventHandler( "onPlayerCommand", player, disbaleKnastCMD )
addEventHandler( "onPlayerCommand", player, disbaleKnastCMD )
setElementDimension ( player, 0 )
end
function bail_func ( player )
if vioGetElementData ( player, "jailtime" ) == 0 then
triggerClientEvent ( player, "infobox_start", getRootElement(), "\nDu bist nicht\nim Gefängnis!", 5000, 125, 0, 0 )
else
if vioGetElementData ( player, "bail" ) == 0 or vioGetElementData ( player, "prison" ) > 0 then
triggerClientEvent ( player, "infobox_start", getRootElement(), "\nDu hast\nkeine Kaution!", 5000, 125, 0, 0 )
else
local bail = vioGetElementData ( player, "bail" )
local money = vioGetElementData ( player, "money" )
if bail <= money then
vioSetElementData ( player, "money", money - bail )
freePlayerFromJail ( player )
if isElement ( vioGetElementData ( player, "arrester" ) ) then
local arrester = vioGetElementData ( player, "arrester" )
vioSetElementData ( player, "arrester", nil )
vioSetElementData ( arrester, "money", vioGetElementData ( arrester, "money" ) + bail/4 )
outputChatBox ( getPlayerName(player).." hat die Kaution bezahlt, du bekommst "..bail/4 .."$", arrester, 0, 200, 0 )
end
vioSetElementData ( player, "arrester", nil )
else
local bankmoney = vioGetElementData ( player, "bankmoney" )
if bail <= money + bankmoney then
local rest = bail - money
vioSetElementData ( player, "money", 0 )
vioSetElementData ( player, "bankmoney", bankmoney - rest )
if isElement ( vioGetElementData ( player, "arrester" ) ) then
local arrester = vioGetElementData ( player, "arrester" )
vioSetElementData ( player, "arrester", nil )
vioSetElementData ( arrester, "money", vioGetElementData ( arrester, "money" ) + bail/4 )
outputChatBox ( getPlayerName(player).." hat die Kaution bezahlt, du bekommst "..bail/4 .."$", arrester, 0, 200, 0 )
end
else
infobox ( player, "Du hast\nzu wenig Geld!\nKosten:\n"..bail, 5000, 125, 0, 0 )
end
end
end
end
end
addCommandHandler ( "bail", bail_func )
function freePlayerFromJail ( player )
removeEventHandler ( "onPlayerCommand", player, disbaleKnastCMD )
triggerEvent ( "onPlayerGetsFreed", player, player )
vioSetElementData ( player, "jailtime", 0 )
vioSetElementData ( player, "prison", 0 )
vioSetElementData ( player, "bail", 0 )
vioSetElementData ( player, "arrester", nil )
toggleControl ( player, "enter_exit", true )
toggleControl ( player, "fire", true )
toggleControl ( player, "jump", true )
toggleControl ( player, "action", true )
if vioGetElementData ( player, "heaventime" ) == 0 then
infobox ( player, "Du bist wieder\nfrei! Benimm dich\nin Zukunft besser!", 5000, 0, 200, 0 )
setElementInterior ( player, 0 )
setElementPosition ( player, 1542, -1675.5, 13.60000038147 )
end
end
function jailtime_func ( player )
local jailtime = vioGetElementData ( player, "jailtime" )
if jailtime == 0 then
local prisontime = vioGetElementData ( player, "prison" )
if prisontime == 0 then
infobox ( player, "\nDu bist nicht\nim Gefängnis!", 5000, 125, 0, 0 )
else
outputChatBox ("Du bist noch für "..prisontime.." Minuten im Prison!", player, 0, 125, 0 )
end
else
outputChatBox ("Du bist noch für "..jailtime.." Minuten im Gefängnis!", player, 0, 125, 0 )
end
end
addCommandHandler ( "jailtime", jailtime_func )
local stellenmarker = createPickup ( 241.2525, 113.0535, 1002.9187, 3, 1239, 50 )
setElementInterior ( stellenmarker, 10 )
local stellenAn = true
local stellenTimer = nil
addEventHandler ( "onPickupHit", stellenmarker, function (player)
infobox ( player, "Hier kannst du\ndich mit\n/ergeben stellen.", 5000, 0, 200, 0 )
end )
function stellen_func ( player )
if vioGetElementData ( player, "wanteds" ) > 0 then
if vioGetElementData ( player, "jailtime" ) == 0 and vioGetElementData ( player, "prison" ) == 0 then
if getElementInterior ( player ) == 0 then
if stellenAn then
local x, y, z = getElementPosition ( player )
local x1, y1, z1 = getElementPosition ( stellenmarker )
if getDistanceBetweenPoints3D ( x, y, z, x1, y1, z1 ) <= 10 then
local money = tonumber(vioGetElementData ( player, "money" ))
local wanteds = tonumber(vioGetElementData(player, "wanteds"))
local targetfrac = tonumber(vioGetElementData(player, "fraktion"))
local fine = 150 * wanteds
if evilFraction[targetfrac] then
fine = 100 * wanteds
end
if fine > money then
vioSetElementData ( player, "money", 0 )
else
vioSetElementData ( player, "money", money - fine )
end
if vioGetElementData ( player, "tied" ) then
fadeCamera ( player, true, 0.5, 0, 0, 0 )
toggleAllControls ( player, true )
end
local time = jailtimeperwanted*0.8*wanteds
local bail = bailCosts[wanteds]
if evilFraction[targetfrac] then
time = jailtimeperwanted*0.6*wanteds
end
vioSetElementData ( player, "jailtime", time )
vioSetElementData ( player, "bail", bail )
vioSetElementData ( player, "arrester", nil )
vioSetElementData ( player, "AnzahlImKnast", vioGetElementData ( player, "AnzahlImKnast" ) + 1 )
outputChatBox ( "Du hast dich mit "..bail.." $ Kaution für "..fine.." $ und "..time.." Minuten gestellt!", player, 0, 125, 0 )
outputChatBox ( getPlayerName ( player ).." hat sich gestellt!", root, 0, 0, 150 )
putPlayerInJail ( player )
else
infobox ( player, "Du bist nicht\nam Marker!", 5000, 0, 200, 0 )
end
else
infobox ( player, "Das Stellen\nist noch\ndeaktiviert!", 5000, 0, 200, 0 )
end
end
else
infobox ( player, "Du bist\nnoch im Knast!", 5000, 0, 200, 0 )
end
else
infobox ( player, "Du wirst\nnicht gesucht!", 5000, 0, 200, 0 )
end
end
addCommandHandler ( "ergeben", stellen_func )
function deaktiviereStellen ( player )
if isCop ( player ) or isFBI ( player ) or isArmy ( player ) then
if isOnDuty ( player ) then
if stellenAn then
stellenAn = false
local playername = getPlayerName ( player )
for playeritem, _ in pairs ( fraktionMembers[1] ) do
outputChatBox ( "Das Stellen wurde von "..playername.." deaktiviert!", playeritem, 255, 0, 0 )
end
for playeritem, _ in pairs ( fraktionMembers[6] ) do
outputChatBox ( "Das Stellen wurde von "..playername.." deaktiviert!", playeritem, 255, 0, 0 )
end
for playeritem, _ in pairs ( fraktionMembers[7] ) do
outputChatBox ( "Das Stellen wurde von "..playername.." deaktiviert!", playeritem, 255, 0, 0 )
end
stellenTimer = setTimer ( function () stellenAn = true outputChatBox ("Man kann sich nun wieder stellen!", getRootElement(), 0, 0, 255) end, 10*1000*60, 1 )
else
stellenAn = true
local playername = getPlayerName ( player )
for playeritem, _ in pairs ( fraktionMembers[1] ) do
outputChatBox ( "Das Stellen wurde von "..playername.." wieder aktiviert!", playeritem, 255, 0, 0 )
end
for playeritem, _ in pairs ( fraktionMembers[6] ) do
outputChatBox ( "Das Stellen wurde von "..playername.." wieder aktiviert!", playeritem, 255, 0, 0 )
end
for playeritem, _ in pairs ( fraktionMembers[7] ) do
outputChatBox ( "Das Stellen wurde von "..playername.." wieder aktiviert!", playeritem, 255, 0, 0 )
end
if isTimer (stellenTimer) then
killTimer ( stellenTimer )
stellenTimer = nil
end
end
else
infobox ( player, "Du bist\nnicht im Dienst!", 5000, 0, 200, 0 )
end
else
infobox ( player, "Du bist kein\nStaatsfraktionist!", 5000, 0, 200, 0 )
end
end
addCommandHandler ( "stellen", deaktiviereStellen )
local SFPrisonCarJail = createColCuboid ( 1560, -1694.4000244141, 5.8, 1560+1560.0999755859, -1694.4000244141, 5.8, 7 )
local LVPrisonCarJail = createColSphere ( 2279.3000488281, 2426.8000488281, 1, 2283.8000488281-2279.3000488281, 2435.1000976563-2426.8000488281, 9 )
local function prisonCarHit ( hitElement, dim )
if getElementType ( hitElement ) == "player" and dim then
if vioGetElementData ( hitElement, "wanteds" ) > 0 then
arrest_func ( hitElement )
end
end
end
addEventHandler ( "onColShapeHit", SFPrisonCarJail, prisonCarHit )
addEventHandler ( "onColShapeHit", LVPrisonCarJail, prisonCarHit )
Alles anzeigen