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 @@
 import polygons from "../polygons";
export function isPlayerInNoDMZone(pos) {
if (pos.x >= -540 && pos.x <= -531 let vec1 = new mp.Vector3(-515.60626, -2165.5671, 7.5437155);
&& pos.y >= -2151 && pos.y <= -2139) { let vec2 = new mp.Vector3(-527.26056, -2179.1477, 6.2923);
return true; 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; return false;
} }
export let isInAnyPolygon;
export default function nodmHandler() { export default function nodmHandler() {
polygon.visible = true;
polygon.height = 100;
polygon.lineColorRGBA = [255, 155, 0, 255];
mp.events.add('playerEnterPolygon', (polygon) => { mp.events.add('playerEnterPolygon', (polygon) => {
mp.gui.chat.push("entered"); mp.events.call('toggleNoDmZone', true);
isInAnyPolygon = true;
}); });
mp.events.add('playerLeavePolygon', (polygon) => { 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() { export default function weapondamageUtil() {
let blockInput = false; let blockInput = false;
@@ -10,7 +11,8 @@ export default function weapondamageUtil() {
}); });
mp.events.add('outgoingDamage', (sourceEntity, targetEntity, sourcePlayer, weapon, boneIndex, damage) => { 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; return true;
} }
}); });