Last active
September 23, 2023 02:03
-
-
Save Yiin/ccb7162193b2dac40a205e8f0c820d01 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function getV1ServerArgs(eventName, args) { | |
return ({ | |
anyResourceError: ({ resource }) => [resource], | |
anyResourceStart: ({ resource }) => [resource], | |
anyResourceStop: ({ resource }) => [resource], | |
consoleCommand: ({ command, args }) => [command, ...args], | |
entityEnterColshape: ({ colShape, entity }) => [colShape, entity], | |
entityLeaveColshape: ({ colShape, entity }) => [colShape, entity], | |
explosion: ({ source, type, pos, fx, target }) => [source, type, pos, fx, target], | |
netOwnerChange: ({ entity, newOwner, oldOwner }) => [entity, newOwner, oldOwner], | |
playerChangedVehicleSeat: ({ player, vehicle, oldSeat, newSeat }) => [player, vehicle, oldSeat, newSeat], | |
playerConnect: ({ player }) => [player], | |
playerConnectDenied: ({ reason, name, ip, passwordHash, isDebug, branch, version, cdnUrl, discordId }) => [reason, name, ip, passwordHash, isDebug, branch, version, cdnUrl, discordId], | |
playerDamage: ({ player, attacker, healthDamage, armourDamage, weaponHash }) => [player, attacker, healthDamage, armourDamage, weaponHash], | |
playerDeath: ({ player, killer, weaponHash }) => [player, killer, weaponHash], | |
playerDisconnect: ({ player, reason }) => [player, reason], | |
playerEnteredVehicle: ({ player, vehicle, seat }) => [player, vehicle, seat], | |
playerEnteringVehicle: ({ player, vehicle, seat }) => [player, vehicle, seat], | |
playerLeftVehicle: ({ player, vehicle, seat }) => [player, vehicle, seat], | |
removeEntity: ({ object }) => [object], | |
// resourceStart: ({ errored }) => [errored], | |
// resourceStop: ({}) => [], | |
// resourceError: ({ error, file, line, stackTrace }) => [error, file, line, stackTrace], | |
syncedMetaChange: ({ entity, key, newValue, oldValue }) => [entity, key, newValue, oldValue], | |
streamSyncedMetaChange: ({ object, key, newValue, oldValue }) => [object, key, newValue, oldValue], | |
globalMetaChange: ({ key, newValue, oldValue }) => [key, newValue, oldValue], | |
globalSyncedMetaChange: ({ key, newValue, oldValue }) => [key, newValue, oldValue], | |
vehicleAttach: ({ vehicle, attachedVehicle }) => [vehicle, attachedVehicle], | |
vehicleDestroy: ({ vehicle }) => [vehicle], | |
vehicleDetach: ({ vehicle, detachedVehicle }) => [vehicle, detachedVehicle], | |
weaponDamage: ({ source, target, weaponHash, damage, offset, bodyPart }) => [source, target, weaponHash, damage, offset, bodyPart], | |
startFire: ({ player, fires }) => [player, fires], | |
startProjectile: ({ player, pos, dir, ammoHash, weaponHash }) => [player, pos, dir, ammoHash, weaponHash], | |
playerWeaponChange: ({ player, oldWeapon, newWeapon }) => [player, oldWeapon, newWeapon], | |
vehicleDamage: ({ vehicle, attacker, bodyHealthDamage, additionalBodyHealthDamage, engineHealthDamage, petrolTankDamage, weaponHash }) => [vehicle, attacker, bodyHealthDamage, additionalBodyHealthDamage, engineHealthDamage, petrolTankDamage, weaponHash], | |
localMetaChange: ({ player, key, newValue, oldValue }) => [player, key, newValue, oldValue], | |
connectionQueueAdd: ({ connectionInfo }) => [connectionInfo], | |
connectionQueueRemove: ({ connectionInfo }) => [connectionInfo], | |
serverStarted: ({}) => [], | |
playerRequestControl: ({ player, target }) => [player, target], | |
playerAnimationChange: ({ target, oldAnimDict, newAnimDict, oldAnimName, newAnimName }) => [target, oldAnimDict, newAnimDict, oldAnimName, newAnimName], | |
playerInteriorChange: ({ player, oldInterior, newInterior }) => [player, oldInterior, newInterior], | |
playerDimensionChange: ({ player, oldDimension, newDimension }) => [player, oldDimension, newDimension], | |
vehicleHorn: ({ vehicle, player, state }) => [vehicle, player, state], | |
vehicleSiren: ({ vehicle, state }) => [vehicle, state], | |
playerSpawn: ({ player }) => [player], | |
baseObjectCreate: ({ baseObject }) => [baseObject], | |
baseObjectRemove: ({ baseObject }) => [baseObject], | |
metaChange: ({ target, key, newValue, oldValue }) => [target, key, newValue, oldValue], | |
voiceConnection: ({ state }) => [state], | |
requestSyncedScene: ({ player, sceneID }) => [player, sceneID], | |
startSyncedScene: ({ player, sceneID, startPos, startRot, animDictHash, entityAnimPairs }) => [player, sceneID, startPos, startRot, animDictHash, entityAnimPairs], | |
stopSyncedScene: ({ player, sceneID }) => [player, sceneID], | |
updateSyncedScene: ({ player, startRate, sceneID }) => [player, startRate, sceneID], | |
clientDeleteObject: ({ player }) => [player], | |
clientRequestObject: ({ player, model, pos }) => [player, model, pos], | |
playerHeal: ({ player, oldHealth, newHealth, oldArmour, newArmour }) => [player, oldHealth, newHealth, oldArmour, newArmour] | |
})[eventName]; | |
} | |
function getV1ClientArgs(eventName, args) { | |
return ({ | |
anyResourceError: ({ resource }) => [resource], | |
anyResourceStart: ({ resource }) => [resource], | |
anyResourceStop: ({ resource }) => [resource], | |
changedVehicleSeat: ({ vehicle, oldSeat, newSeat }) => [vehicle, oldSeat, newSeat], | |
connectionComplete: ({ }) => [], | |
consoleCommand: ({ command, args }) => [command, ...args], | |
disconnect: ({ }) => [], | |
enteredVehicle: ({ vehicle, seat }) => [vehicle, seat], | |
gameEntityCreate: ({ entity }) => [entity], | |
gameEntityDestroy: ({ entity }) => [entity], | |
keydown: ({ key }) => [key], | |
keyup: ({ key }) => [key], | |
leftVehicle: ({ vehicle, seat }) => [vehicle, seat], | |
startEnteringVehicle: ({ vehicle, seat }) => [vehicle, seat], | |
startLeavingVehicle: ({ vehicle, seat }) => [vehicle, seat], | |
removeEntity: ({ object }) => [object], | |
resourceStart: ({ resource }) => [resource], | |
resourceStop: ({ resource }) => [resource], | |
resourceError: ({ resource }) => [resource], | |
syncedMetaChange: ({ entity, key, newValue, oldValue }) => [entity, key, newValue, oldValue], | |
streamSyncedMetaChange: ({ entity, key, newValue, oldValue }) => [entity, key, newValue, oldValue], | |
globalMetaChange: ({ key, newValue, oldValue }) => [key, newValue, oldValue], | |
globalSyncedMetaChange: ({ key, newValue, oldValue }) => [key, newValue, oldValue], | |
taskChange: ({ oldTask, newTask }) => [oldTask, newTask], | |
spawned: ({ }) => [], | |
localMetaChange: ({ key, newValue, oldValue }) => [key, newValue, oldValue], | |
netOwnerChange: ({ entity, newOwner, oldOwner }) => [entity, newOwner, oldOwner], | |
windowFocusChange: ({ state }) => [state], | |
windowResolutionChange: ({ oldResolution, newResolution }) => [oldResolution, newResolution], | |
playerAnimationChange: ({ target, oldAnimDict, newAnimDict, oldAnimName, newAnimName }) => [target, oldAnimDict, newAnimDict, oldAnimName, newAnimName], | |
playerWeaponShoot: ({ weaponHash, totalAmmo, ammoInClip }) => [weaponHash, totalAmmo, ammoInClip], | |
playerWeaponChange: ({ oldWeapon, newWeapon }) => [oldWeapon, newWeapon], | |
baseObjectCreate: ({ object }) => [object], | |
baseObjectRemove: ({ object }) => [object], | |
weaponDamage: ({ target, weaponHash, damage, offset, bodyPart, source, setDamageValue }) => [target, weaponHash, damage, offset, bodyPart, source], | |
worldObjectPositionChange: ({ object, oldPos }) => [object, oldPos], | |
worldObjectStreamIn: ({ object }) => [object], | |
worldObjectStreamOut: ({ object }) => [object], | |
// metaChange: ({ target, key, newValue, oldValue }) => [target, key, newValue, oldValue], | |
entityEnterColshape: ({ colShape, entity }) => [colShape, entity], | |
entityLeaveColshape: ({ colShape, entity }) => [colShape, entity], | |
entityHitEntity: ({ damager, entity, weaponHash }) => [damager, entity, weaponHash], | |
playerBulletHit: ({ weaponHash, victim, pos }) => [weaponHash, victim, pos], | |
voiceConnection: ({ state }) => [state] | |
})[eventName]; | |
} | |
export const on = (event, handler) => { | |
alt.Events[getV2Event(event)]((args) => { | |
const ret = handler(...(alt.isServer ? getV1ServerArgs(event, args) : getV1ClientArgs(event, args))); | |
if (ret === false && isCancellable(event)) { | |
args.cancel(); | |
} | |
if (typeof ret === 'number' && 'setDamageValue' in args) { | |
args.setDamageValue(ret); | |
} | |
}); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment