test: nodm zone mit polygons

This commit is contained in:
Fabian
2021-04-22 18:15:57 +02:00
parent c276b87977
commit fd5299ffa4
2 changed files with 31 additions and 14 deletions

View File

@@ -1,23 +1,38 @@

export function isPlayerInNoDMZone(pos) {
if (pos.x >= -540 && pos.x <= -531
&& pos.y >= -2151 && pos.y <= -2139) {
import polygons from "../polygons";
let vec1 = new mp.Vector3(-515.60626, -2165.5671, 7.5437155);
let vec2 = new mp.Vector3(-527.26056, -2179.1477, 6.2923);
let vec3 = new mp.Vector3(-519.55426, -2186.5708, 6.4070964);
let vec4 = new mp.Vector3(-506.00034, -2186.9153, 6.705781);
let vec5 = new mp.Vector3(-500.05966, -2178.3372, 3.6730707);
const polygon = polygons.add([vec1, vec2, vec3, vec4, vec5], 6, true, [255, 255, 255, 255], 0);
export function isTargetInPolygon(pos) {
polygons.pool.forEach(zone => {
if (polygons.isPositionWithinPolygon(pos, zone, zone.dimension)) {
return true;
}
});
return false;
}
export let isInAnyPolygon;
export default function nodmHandler() {
polygon.visible = true;
polygon.height = 100;
polygon.lineColorRGBA = [255, 155, 0, 255];
mp.events.add('playerEnterPolygon', (polygon) => {
mp.gui.chat.push("entered");
mp.events.call('toggleNoDmZone', true);
isInAnyPolygon = true;
});
mp.events.add('playerLeavePolygon', (polygon) => {
mp.gui.chat.push("leaved");
mp.events.call('toggleNoDmZone', false);
isInAnyPolygon = false;
});
setInterval(() => {
mp.events.call('toggleNoDmZone', isPlayerInNoDMZone(mp.players.local.position));
}, 200);
}

View File

@@ -1,4 +1,5 @@
import { isPlayerInNoDMZone } from "../Player/nodm";
import { isInAnyPolygon, isTargetInPolygon } from "../Player/nodm";
import polygons from "../polygons";
export default function weapondamageUtil() {
let blockInput = false;
@@ -10,7 +11,8 @@ export default function weapondamageUtil() {
});
mp.events.add('outgoingDamage', (sourceEntity, targetEntity, sourcePlayer, weapon, boneIndex, damage) => {
if (isPlayerInNoDMZone(targetEntity.position) || isPlayerInNoDMZone(sourceEntity.position)) {
if (isInAnyPolygon || isTargetInPolygon(targetEntity.position)) {
mp.gui.chat.push("Kein DM in NODM");
return true;
}
});