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