Changelog: Difference between revisions
(Created page with "Changelog of serverside JS API of RAGE Multiplayer 0.3.2 as of 28.11.2017. WIP. ==Events updates== *Added: Events.getAllOf(eventName) *Added: Events.remove(eventName[, hander...") |
No edit summary |
||
| Line 136: | Line 136: | ||
}); | }); | ||
</syntaxhighlight > | </syntaxhighlight > | ||
==New entity | ==New entity constructors== | ||
<syntaxhighlight lang="javascript"> | <syntaxhighlight lang="javascript"> | ||
mp.vehicles.new(model, position, | mp.vehicles.new(model, position, | ||
Revision as of 00:02, 29 November 2017
Changelog of serverside JS API of RAGE Multiplayer 0.3.2 as of 28.11.2017. WIP.
Events updates
- Added: Events.getAllOf(eventName)
- Added: Events.remove(eventName[, hander])
- Added: Events.reset()
Player updates
- Added: Player.weapons (documented below)
- Added: Player.removeWeapon(weapon)
- Added: Player.removeAllWeapons()
- Added: Player.currentWeapon (get / set)
- Added: Player.currentWeaponAmmo (get / set)
- Added: Player.getWeaponAmmo(weapon)
- Added: Player.setWeaponAmmo(weapon, ammo)
- Added: Player.allWeapons (get)
- Added: Player.getHeadOverlay(id)
- Added: Player.setHeadOverlay(id, [overlayId, opacity)
- Added: Player.socialClubName (get)
- Added: Player.isStreamed(player)
- Added: Player.streamedPlayers (get)
- Added: Player.isReloading (get)
- Added: Player.isOnLadder (get)
- Added: Player.isInMelee (get)
- Added: Player.packetLoss (get)
Blip updates
- Added: Blip.shortRange (get / set)
- Added: Blip.drawDistance (get / set)
- Added: Blip.rotation (get / set)
TextLabel updates (includes entity methods)
- Added: TextLabel.color (get / set)
- Added: TextLabel.drawDistance (get / set)
- Added: TextLabel.los (get / set)
- Added: TextLabel.text (get / set)
Vehicle updates
- Added: Vehicle.mods[id] (get / set) // also available as Vehicle.get / setMod(id) since 0.3
- Added: Vehicle.extras[id] (get / set)
- Added: Vehicle.isStreamed(player)
- Added: Vehicle.streamedPlayers
- Added: Vehicle.dashboardColor (get / set)
- Added: Vehicle.pearlescentColor (get / set)
- Added: Vehicle.livery (get / set)
- Added: Vehicle.numberPlateType (get / set)
- Added: Vehicle.trimColor (get / set)
- Added: Vehicle.windowTint (get / set)
- Added: Vehicle.wheelColor (get / set)
- Added: Vehicle.wheelType (get / set)
- Added: Vehicle.getExtra(id)
- Added: Vehicle.setExtra(id, extra)
- Added: Vehicle.taxiLights (get / set)
- Added: Vehicle.dashboardColor (get / set)
- Added: Vehicle.trailer
- Added: Vehicle.traileredBy
New events
- Added: entityCreated (entity)
- Added: playerReady (player)
- Added: entityModelChange (entity, oldModel)
- Updated: playerEnterVehicle => playerStartEnterVehicle
- Updated: playerEnteredVehicle => playerEnterVehicle
- Updated: playerExitVehicle => playerStartExitVehicle
- Updated: playerLeftVehicle => playerExitVehicle
- Added: playerDamage (player, healthLoss, armorLoss)
- Added: playerWeaponChange (player, oldWeapon, newWeapon)
- Added: vehicleDamage (vehicle, bodyHealthLoss, engineHealthLoss)
- Added: vehicleSirenToggle (vehicle, state)
- Added: vehicleHornToggle (vehicle)
- Added: vehicleTrailerAttach (vehicle, trailer)
- Added: playerMarkWaypoint (player, position)
- Added: playerReachWaypoint (player)
Entity updates (for all for entitiy types)
- Added: Entity.data.name (gets / sets synced variable just like getVariable / setVariable)
- Added: Entity.getVariable(name)
- Added: Entity.setVariable(name, value)
Player.weapons
- Added: Player.weapons.all (returns an object just like Player.allWeapons)
- Added: Player.weapons.name / Player.weapons.hash / Player.weapons.current (gets/sets ammo of specific weapon just like Player.get / setWeaponAmmo)
- Added: Player.weapons.clear()
Events examples
// Add events
mp.events.add(
{
playerJoin: (player) => {},
playerChat: (player, msg) => {}
});
//
function playerJoinHandler(player)
{
}
// Add an event
mp.events.add("playerJoin", playerJoinHandler);
// Remove specified handler of specified event
mp.events.remove("playerJoin", playerJoinHandler);
// Remove handler(s) specified event(s)
mp.events.remove("playerJoin");
mp.events.remove(["playerJoin", "playerQuit"]);
// Reset whole event manager
mp.events.reset();
// Get all handlers of specified event
mp.events.getAllOf("playerJoin").forEach(_ev => _ev(null));
//
const ev = new mp.Event("playerDeath", (player, reason, killer) =>
{
mp.players.broadcast('First blood!');
ev.destroy(); // this event handler will be not called anymore since it's destroyed
});
ev.destroy(); // due to this line the event is never going to be executed if we call this before it
// Per-entity (available for all of entities) event manager
mp.events.add("playerJoin", (player) =>
{
player.events.push("playerSpawn", (player) =>
{
mp.players.broadcast(`hey ${player.name}, this is your first spawn!`);
return true; // return true from the event to destroys it for the entity after execution
});
});
New entity constructors
mp.vehicles.new(model, position,
{
heading: heading,
numberPlate: numberPlate,
alpha: alpha,
color: color,
locked: locked,
engine: engine,
dimension: dimension
});
mp.objects.new(model, position,
{
rotation: rotation,
alpha: alpha,
dimension: dimension
});
mp.blips.new(sprite, position,
{
name: name,
scale: scale,
color: color,
alpha: alpha,
drawDistance: drawDistance,
shortRange: shortRange,
rotation: rotation,
dimension: dimension,
});
mp.checkpoints.new(type, position, radius,
{
direction: direction,
color: color,
visible: visible,
dimension: dimension
});
mp.markers.new(type, position, scale,
{
direction: direction,
rotation: rotation,
color: color,
visible: visible,
dimension: dimension
});
mp.labels.new(text, position,
{
los: los,
font: font,
drawDistance: drawDistance,
color: color,
dimension: dimension
});