test: nodm zone mit polygons
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user