Files
reallife-gamemode/ReallifeGamemode.Client/util/weapondamage.ts
2021-07-04 20:46:32 +02:00

428 lines
14 KiB
TypeScript

import { isInAnyNoDMPolygon, listNoDMZones } from "../Player/polygons";
import polygons from "../polygons";
import { getWantedCount } from "../Gui/wanteds";
import { spawnschutzEnabled } from "../Player/spawnschutz";
//import Hits from "./hitmarker";
function isTargetInPolygon(pos): boolean {
let found = false;
listNoDMZones.forEach(zone => {
if (polygons.isPositionWithinPolygon(pos, zone, zone.dimension)) {
found = true;
return;
}
});
if (found) return true;
return false;
}
export default function weapondamageUtil(globalData: IGlobalData) {
let blockInput = false;
mp.players.local.setSuffersCriticalHits(false);
mp.players.forEachInStreamRange((player) => {
player.setSuffersCriticalHits(false);
});
mp.events.add(RageEnums.EventKey.INCOMING_DAMAGE, (sourceEntity: EntityMp, sourcePlayer: PlayerMp, targetEntity: EntityMp, weapon: number, boneIndex: number, damage: number) => {
if ((isTargetInPolygon(sourceEntity.position) || isInAnyNoDMPolygon) && getWantedCount() === 0) {
return true;
}
if (globalData.IsAfk == true && getWantedCount() === 0) {
return true;
}
if (spawnschutzEnabled && getWantedCount() === 0) {
return true;
}
});
mp.events.add(RageEnums.EventKey.OUTGOING_DAMAGE, (sourceEntity, targetEntity, sourcePlayer, weapon, boneIndex, damage) => {
if (spawnschutzEnabled && getWantedCount() === 0) {
return true;
}
/*
if (targetEntity.type === 'player') {
Hits.add(damage, targetEntity.position);
}
*/
});
mp.events.add("render", () => {
if (blockInput) {
mp.game.controls.disableControlAction(32, 142, true);
mp.game.controls.disableControlAction(32, 140, true);
mp.game.controls.disableControlAction(32, 263, true);
}
});
mp.events.add('SERVER:WeaponModifier', (player) => {
//mp.gui.chat.push("Modifier steht jetzt auf" + modifier);
//mp.players.local.setWeaponDamageModifier(modifier);
let modifier = 1;
let meelemodifier = 1;
blockInput = (mp.game.weapon.getWeapontypeGroup(player.weapon) != 2685387236);
switch (player.weapon) {
case 0x1B06D571: // pistol
modifier = 0.4;
meelemodifier = 1;
break;
case 0xBFE256D4: // pistol_mk2
modifier = 0.4;
meelemodifier = 1;
break;
case 0x5EF9FEC4: // combatpistol
modifier = 0.5;
meelemodifier = 1;
break;
case 0x22D8FE39: // appistol
modifier = 0.185;
meelemodifier = 1;
break;
case 0x3656C8C1: // stungun
modifier = 0;
meelemodifier = 1;
break;
case 0x99AEEB3B: // pistol50
modifier = 0.35;
meelemodifier = 1;
break;
case 0xBFD21232: // snspistol
modifier = 0.25;
meelemodifier = 1;
break;
case 0x88374054: // snspistol_mk2
modifier = 0.26;
meelemodifier = 1;
break;
case 0xD205520E: // heavypistol
modifier = 0.2;
meelemodifier = 1;
break;
case 0x83839C4: // vintagepistol
modifier = 0.2;
meelemodifier = 1;
break;
case 0x47757124: // flaregun
modifier = 0;
meelemodifier = 1;
break;
case 0xDC4DB296: // marksmanpistol
modifier = 0.25;
meelemodifier = 1;
break;
case 0xC1B3C3D1: // revolver
modifier = 0.2;
meelemodifier = 1;
break;
case 0xCB96392F: // revolver_mk2
modifier = 0.16;
meelemodifier = 1;
break;
case 0x97EA20B8: // doubleaction
modifier = 0.23;
meelemodifier = 1;
break;
case 0xAF3696A1: // raypistol
modifier = 0;
meelemodifier = 1;
break;
case 0x2B5EF5EC: // ceramicpistol
modifier = 0.25;
meelemodifier = 1;
break;
case 0x917F6C8C: // navyrevolver
modifier = 0.2;
meelemodifier = 1;
break;
case 0x57A4368C: // gadgetpistol
modifier = 0.25;
meelemodifier = 1;
break;
case 0x13532244: // microsmg
modifier = 0.25;
meelemodifier = 1;
break;
case 0x2BE6766B: // smg
modifier = 0.25;
meelemodifier = 1;
break;
case 0x78A97CD0: // smg_mk2
modifier = 0.23;
meelemodifier = 1;
break;
case 0xEFE7E2DF: // assaultsmg
modifier = 0.259;
meelemodifier = 1;
break;
case 0x0A3D4D34: // combatpdw
modifier = 0.185;
meelemodifier = 1;
break;
case 0xDB1AA450: // machinepistol
modifier = 0.2;
meelemodifier = 1;
break;
case 0xBD248B55: // minismg
modifier = 0.21;
meelemodifier = 1;
break;
case 0x476BF155: // raycarbine
modifier = 0.1;
meelemodifier = 1;
break;
case 0x1D073A89: // pumpshotgun
modifier = 0.2;
meelemodifier = 1;
break;
case 0x555AF99A: // pumpshotgun_mk2
modifier = 0.2;
meelemodifier = 1;
break;
case 0x7846A318: // sawnoffshotgun
modifier = 0.15;
meelemodifier = 1;
break;
case 0xE284C527: // assaultshotgun
modifier = 0.1;
meelemodifier = 1;
break;
case 0x9D61E50F: // bullpupshotgun
modifier = 0.35;
meelemodifier = 1;
break;
case 0xA89CB99E: // musket
modifier = 0.5;
meelemodifier = 1;
break;
case 0x3AABBBAA: // heavyshotgun
modifier = 0.11;
meelemodifier = 1;
break;
case 0xEF951FBB: // dbshotgun
modifier = 0.2;
meelemodifier = 1;
break;
case 0x12E82D3D: // autoshotgun
modifier = 0.12;
meelemodifier = 1;
break;
case 0x5A96BA4: // combatshotgun
modifier = 0.19;
meelemodifier = 1;
break;
// TODO
case 0xBFEFFF6D: // assaultrifle
modifier = 0.225;
meelemodifier = 1;
break;
case 0x394F415C: // assaultrifle_mk2
modifier = 0.15;
meelemodifier = 1;
break;
case 0x83BF0278: // carbinerifle
modifier = 0.2;
meelemodifier = 1;
break;
case 0xFAD1F1C9: // carbinerifle_mk2
modifier = 0.22;
meelemodifier = 1;
break;
case 0xAF113F99: // advancedrifle
modifier = 0.2;
meelemodifier = 1;
break;
case 0xC0A3098D: // specialcarbine
modifier = 0.2;
meelemodifier = 1;
break;
case 0x969C3D67: // specialcarbine_mk2
modifier = 0.23;
meelemodifier = 1;
break;
case 0x7F229F94: // bullpuprifle
modifier = 0.18;
meelemodifier = 1;
break;
case 0x84D6FAFD: // bullpuprifle_mk2
modifier = 0.2;
meelemodifier = 1;
break;
case 0x624FE830: // compactrifle
modifier = 0.2;
meelemodifier = 0.1;
break;
case 0x9D1F17E6: // militaryrifle
modifier = 0.22;
meelemodifier = 1;
break;
case 0x9D07F764: // mg
modifier = 0;
meelemodifier = 1;
break;
case 0x7FD62962: // combatmg
modifier = 0;
meelemodifier = 1;
break;
case 0xDBBD7280: // combatmg_mk2
modifier = 0;
meelemodifier = 1;
break;
case 0x61012683: // gusenberg
modifier = 0.2;
meelemodifier = 1;
break;
case 0x05FC3C11: // sniperrifle
modifier = 0.5;
meelemodifier = 1;
break;
case 0x0C472FE2: // heavysniper
modifier = 0.17;
meelemodifier = 1;
break;
case 0xA914799: // heavysniper_mk2
modifier = 0.19;
meelemodifier = 1;
break;
case 0xC734385A: // marksmanrifle
modifier = 0.15;
meelemodifier = 1;
break;
case 0x6A6C02E0: // marksmanrifle_mk2
modifier = 0.12;
meelemodifier = 1;
break;
case 0xB1CA77B1: // rpg
modifier = 0;
meelemodifier = 1;
break;
case 0xA284510B: // grenadelauncher
modifier = 0;
meelemodifier = 1;
break;
case 0x4DD2DC56: // grenadelauncher_smoke
modifier = 0;
meelemodifier = 1;
break;
case 0x42BF8A85: // minigun
modifier = 0.1;
meelemodifier = 1;
break;
case 0x7F7497E5: // firework
modifier = 0;
meelemodifier = 1;
break;
case 0x6D544C99: // railgun
modifier = 0;
meelemodifier = 1;
break;
case 0x63AB0442: // hominglauncher
modifier = 0;
meelemodifier = 1;
break;
case 0x0781FE4A: // compactlauncher
modifier = 0;
meelemodifier = 1;
break;
case 0xB62D1F67: // rayminigun
modifier = 0.1;
meelemodifier = 1;
break;
case 0xA2719263: // unarmed
meelemodifier = 0.1;
modifier = 1;
break;
case 0x958A4A8F: // bat
meelemodifier = 0.15;
modifier = 1;
break;
case 0x8BB05FD7: // flashlight
meelemodifier = 0.1;
modifier = 1;
break;
case 0xD8DF3C3C: // knuckle
meelemodifier = 0.1;
modifier = 1;
break;
case 0x678B81B1: // nightstick
meelemodifier = 0.1;
modifier = 1;
break;
}
mp.game.invoke("0xCE07B9F7817AADA3", player, modifier);
mp.game.invoke("0x4A3DC7ECCC321032", player, meelemodifier);
//mp.gui.chat.push("Modifier: " + modifier + "MeeleModifier: " +meelemodifier);
});
mp.events.add('SERVER:WeaponModifier2', (player, modifier, meelemodifier) => {
//mp.gui.chat.push("Modifier steht jetzt auf" + modifier);
//mp.players.local.setWeaponDamageModifier(modifier);
mp.game.invoke("0xCE07B9F7817AADA3", player, modifier);
mp.game.invoke("0x4A3DC7ECCC321032", player, meelemodifier);
//mp.gui.chat.push("Modifier: " + modifier + "MeeleModifier: " + meelemodifier);
});
mp.events.add("entityStreamIn", (entity) => {
if (entity.type === "player") {
entity.setSuffersCriticalHits(false);
}
});
mp.events.add("ADMIN:test", (weapon, pickuphash, weaponhash, ammo, x, y, z, ) => {
mp.gui.chat.push("angekommen");
//mp.game.object.createPickupRotate(0xE46E11B4, 100, 100 + 3, 80, 0, 0, 0, 512, 10, 0, true, 1834241177);
let pickup = mp.game.object.createPickupRotate(pickuphash, x + 2, y, z, 0, 0, 0, 512, ammo, 0, true, weaponhash);
mp.events.add('render', () => {
// Draw to screen.
mp.game.graphics.drawText(weapon, [x + 2, y, z+ 0.5], {
font: 7,
color: [255, 255, 255, 185],
scale: [0.4, 0.4],
outline: true,
centre: true
});
});
mp.game.object.setPickupRegenerationTime(pickup, 1);
mp.gui.chat.push("ausgeführt");
});
/*mp.events.add('playerWeaponShot', (targetPosition, targetEntity) => {
for (var x in this.weaponAmmo) {
if (this.weaponAmmo[x].id != this.currentWeapon) {
continue;
}
this.weaponAmmo[x].ammo = this.weaponAmmo[x].ammo - 1;
}*/
}