Gangwar System Complete

This commit is contained in:
Lukas Moungos
2020-01-22 21:05:39 +01:00
parent 5d452d6391
commit 4761baeea4
2 changed files with 21 additions and 20 deletions

View File

@@ -211,7 +211,7 @@
} }
if (self.leaderBlipVector != null) { if (self.leaderBlipVector != null) {
let dist = mp.game.gameplay.getDistanceBetweenCoords(mp.players.local.position.x, mp.players.local.position.y, mp.players.local.position.z, self.leaderBlipVector.x, self.leaderBlipVector.y, self.leaderBlipVector.z, false); let dist = mp.game.gameplay.getDistanceBetweenCoords(mp.players.local.position.x, mp.players.local.position.y, mp.players.local.position.z, self.leaderBlipVector.x, self.leaderBlipVector.y, self.leaderBlipVector.z, false);
if (self.isInsideArea() && self._status != "attack" && dist <= 3) { if (self.isInsideArea() && self._status != "attack" && dist <= 6) {
if (self.leaderBlipVector != null) { if (self.leaderBlipVector != null) {
mp.game.graphics.drawText(self.name + "\n~y~Gang: ~s~" + self.owner + "\n~y~Wert: ~s~$~g~187", [self.leaderBlipVector.x, self.leaderBlipVector.y, self.leaderBlipVector.z], { mp.game.graphics.drawText(self.name + "\n~y~Gang: ~s~" + self.owner + "\n~y~Wert: ~s~$~g~187", [self.leaderBlipVector.x, self.leaderBlipVector.y, self.leaderBlipVector.z], {
font: 7, font: 7,
@@ -226,13 +226,9 @@
} }
private delay(ms: number) {
return new Promise(resolve => setTimeout(resolve, ms));
}
async startGangWar() { startGangWar() {
var self = this; var self = this;
await this.delay(1000);
if (self._status == "normal") { if (self._status == "normal") {
let dist = mp.game.gameplay.getDistanceBetweenCoords(mp.players.local.position.x, mp.players.local.position.y, 0, self.leaderBlipVector.x, self.leaderBlipVector.y, self.leaderBlipVector.z, false); let dist = mp.game.gameplay.getDistanceBetweenCoords(mp.players.local.position.x, mp.players.local.position.y, 0, self.leaderBlipVector.x, self.leaderBlipVector.y, self.leaderBlipVector.z, false);
if (dist <= 3) { if (dist <= 3) {
@@ -285,10 +281,13 @@
setLeaderBlip(bool) { setLeaderBlip(bool) {
var self = this; var self = this;
if (this.leaderColShape != null) {
this.leaderColShape.destroy();
this.leaderColShape = null;
}
if (bool) { if (bool) {
self.leaderBlipVector = mp.players.local.position; self.leaderBlipVector = mp.players.local.position;
mp.events.callRemote("SERVER:Turf_SetNewLeaderPoint", JSON.stringify(self.leaderBlipVector), JSON.stringify(self.id)); mp.events.callRemote("SERVER:Turf_SetNewLeaderPoint", JSON.stringify(self.leaderBlipVector), JSON.stringify(self.id));
self.setLeaderColShape();
return; return;
} }
@@ -306,7 +305,7 @@
let newVector = new mp.Vector3(self.leaderBlipVector.x, self.leaderBlipVector.y, self.leaderBlipVector.z - 2) let newVector = new mp.Vector3(self.leaderBlipVector.x, self.leaderBlipVector.y, self.leaderBlipVector.z - 2)
self.leaderColShape = mp.markers.new(1, newVector, 2, { self.leaderColShape = mp.markers.new(1, newVector, 2, {
color: [255, 255, 255, 150], color: [255, 255, 0, 150],
visible: true, visible: true,
dimension: 0 dimension: 0
}); });
@@ -337,13 +336,12 @@
if ((!self._entered)) { if ((!self._entered)) {
if (self.isInsideArea() && (self.isNearGround() == true)) { if (self.isInsideArea() && (self.isNearGround() == true)) {
self._entered = true; self._entered = true;
if (self._status === "attack") { if (self._status == "attack") {
mp.game.audio.playSoundFrontend(1, "Enter_Capture_Zone", "DLC_Apartments_Drop_Zone_Sounds", true); mp.game.audio.playSoundFrontend(1, "Enter_Capture_Zone", "DLC_Apartments_Drop_Zone_Sounds", true);
mp.game.graphics.stopScreenEffect("MinigameTransitionIn"); mp.game.graphics.stopScreenEffect("MinigameTransitionIn");
mp.game.graphics.startScreenEffect("MinigameTransitionOut", 500, false); mp.game.graphics.startScreenEffect("MinigameTransitionOut", 500, false);
} }
mp.events.callRemote("Gangarea:Enter", JSON.stringify(self.id)); mp.events.callRemote("Gangarea:Enter", JSON.stringify(self.id));
} }
} else if (self._entered == true) { } else if (self._entered == true) {
@@ -476,9 +474,18 @@
var turfs = JSON.parse(turfsJSON); var turfs = JSON.parse(turfsJSON);
if (gangturfs.length > 0) { if (gangturfs.length > 0) {
gangturfs[gangturfs.length - 1].edit = false; gangturfs[gangturfs.length - 1].edit = false;
gangturfs.forEach(function (turf) {
turf._status = "disabled";
turf.id = -420; //Due to garbage collecting this value needs to be negative, so that the Server doesn't find multiple Turfs in the Database with same ID's.
if (turf.leaderColShape != null) {
turf.leaderColShape.destroy();
turf.leaderColShape = null;
}
});
} }
clearBlips(); clearBlips();
if (turfs.length > 0) { if (turfs.length > 0) {
gangturfs = []; gangturfs = [];
turfs.forEach(function (turf) { turfs.forEach(function (turf) {
if (turf.Id != undefined) { if (turf.Id != undefined) {
@@ -534,19 +541,13 @@
mp.events.add('CLIENT:Turf_LoadLeaderBlip', () => { mp.events.add('CLIENT:Turf_LoadLeaderBlip', () => {
gangturfs.forEach(function (turf) { gangturfs.forEach(function (turf) {
if (turf.Id != undefined) {
turf.setLeaderBlip(false); turf.setLeaderBlip(false);
}
}); });
}); });
mp.events.add('ADMIN:Turf_CreateLeaderBlip', () => { mp.events.add('ADMIN:Turf_CreateLeaderBlip', () => {
gangturfs.forEach(function (turf) { gangturfs.forEach(function (turf) {
if (turf._entered == true) { if (turf._entered == true) {
if (turf.leaderColShape != null) {
turf.leaderColShape.destroy();
turf.leaderColShape = null;
}
turf.setLeaderBlip(true); turf.setLeaderBlip(true);
} }
}); });

View File

@@ -182,7 +182,7 @@ namespace ReallifeGamemode.Server.Gangwar
{ {
if (turf.status == "attack") if (turf.status == "attack")
{ {
client.SendChatMessage("Ein GW läuft grad bruder"); // DEBUG //change to smth more serious ChatService.ErrorMessage(client,"Du kannst momentan kein Gangwar starten");
return; return;
} }
} }