Guten Tag, liebe Community,
hiermit möchte ich ein Script releasen, welches einem erlaubt eine Bombe zu legen, und auch zu entschärfen.
Ablauf:
Spieler A legt mit dem Befehl "/bombe" eine Bombe, welche, sofern nichts mit der Bombe passiert, nach 10 Minuten explodiert.
Spieler B muss das Bombengebiet sicherstellen und zur Bombe gelangen. Mit dem Befehl "/delbomb" wird die Bombe entschärft, dieser Vorgang dauert 1 Minute, in der Spieler B sich nicht bewegen kann.
Spieler A muss verhindern, dass die Bombe entschärft wird. Sobald Spieler B gestorben ist, wird der Vorgang sofort abgebrochen.
Screenshots
-- Bombe --
local Bombe_R
local Bombe_O
local Bombe_P
local Bombe_T
local Bombe_T2
local Bombe_S = false
addCommandHandler('bombe', function(psource)
if (Bombe_S == false) then
if(isPedOnGround(psource) and not isElementInWater(psource) and not isPedInVehicle(psource))then
local x, y, z = getElementPosition(psource)
_G["Bombe_O"] = createObject(1654, x-.5, y, z-.85, -90, 0, 0, true)
-- setElementCollisionsEnabled(_G["Bombe_O"], false)
outputChatBox("-- Es wurde eine Bombe gelegt !", getRootElement(), 120, 0, 0)
outputChatBox("Deine Bombe wurde erfolgreich gelegt, beschütze sie 10 Minuten lang.", psource, 80, 80, 0)
setElementFrozen(psource, true)
setPedAnimation(psource, 'BOMBER', 'BOM_Plant', -1, false)
setTimer(function() setElementFrozen(psource, false) setPedAnimation(psource) end, 3000, 1)
Bombe_R = createRadarArea(x-55, y-55, 105, 105, 150, 0, 0, 200, getRootElement())
setRadarAreaFlashing(Bombe_R, true)
Bombe_S = true
Bombe_P = psource
Bombe_T = setTimer(function()
xB, yB, zB = getElementPosition(_G["Bombe_O"])
createExplosion(xB, yB, zB+1, 10)
destroyElement(_G["Bombe_O"])
destroyElement(Bombe_R)
Bombe_CD = setTimer(function() Bombe_S = false end, 3600000, 1)
if isElement(Bombe_P) then
givePlayerMoney(psource, 1000)
outputChatBox("Die Bombe ist erfolgreich hochgegangen! Du erhälst 1000€.", psource, 0, 120, 0)
end
end, 600000, 1)
end
else
outputChatBox('Entweder gibt es bereits eine aktive Bombe oder du musst noch warten!', psource, 120,0,0)
end
end)
addCommandHandler("delbomb", function(pl)
local x, y, z = getElementPosition(pl)
if(Bombe_S == true and not isTimer(Bombe_T2))then
if not isPedInVehicle(pl) then
local xB, yB, zB = getElementPosition(_G["Bombe_O"])
if(getDistanceBetweenPoints3D(xB, yB, zB, x, y, z) < 5)then
setElementFrozen(pl, true)
setPedAnimation(pl, "BOMBER", "BOM_Plant_Loop", 60000)
outputChatBox("Die Bombe wird entschärft, dieser Vorgang dauert 60 Sekunden...", pl, 80, 80, 0)
setElementData(pl, 'defusePlayer', true)
Bombe_T2 = setTimer(bombDefuse_Like, 60000, 1, pl)
addEventHandler('onPlayerWasted', pl, function()
if(getElementData(source, 'defusePlayer') == true)then
if isTimer(Bombe_T2) then
killTimer(Bombe_T2)
end
setElementFrozen(source, false)
outputChatBox("Du hast es nicht geschafft die Bombe zu entschärfen!", source, 120, 0, 0)
setElementData(source, 'defusePlayer', false)
end
end)
end
end
end
end)
function bombDefuse_Like(player)
if(isTimer(Bombe_T))then
killTimer(Bombe_T)
end
destroyElement(_G["Bombe_O"])
destroyElement(Bombe_R)
outputChatBox("Die Bombe wurde erfolgreich entschärft !", getRootElement(), 0, 120,0)
outputChatBox("Du hast die Bombe erfolgreich entschärft, du erhälst 1000€.", player)
givePlayerMoney(player, 1000)
Bombe_CD = setTimer(function() Bombe_S = false end, 3600000, 1)
setElementFrozen(player, false)
setElementData(player, 'defusePlayer', false)
end
Alles anzeigen
Es kann natürlich nach Belieben verändert werden und ggf. an z.B. Vio-Gamemodes angepasst werden.
Ihr dürft es frei verwenden/editieren, jedoch dürft ihr es NICHT als Eures ausgeben oder es unter eurem Namen weitergeben.
Mit freundlichen Grüßen
McRyder