Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 01/12/19 in Posts

  1. Anbei ein Script um den Spieler zu finden, der in einem bestimmten Umkreis am nächsten zu mir steht: Serverseitig var currentTarget = null; function getNearestPlayer(player, range) { let dist = range; mp.players.forEachInRange(player.position, range, (_player) => { if(player != _player) { let _dist = _player.dist(player.position); if(_dist < dist) { currentTarget = _player; dist = _dist; } } } ); } Benutzen kann man das dann so: mp.events.add("event_to_call", (player) => { getNearestPlayer(player, 5); if(currentTarget) { // Habe einen oder mehrere Spieler im Umkreis von 5 Metern gefunden und currentTarget ist nun der der am nächsten dran ist. } }); Das ganze geht auch mit Fahrzeugen: var currentTarget = null; function getNearestVehicle(player, range) { let dist = range; mp.vehicles.forEachInRange(player.position, range, (_vehicle) => { let _dist = _vehicle.dist(player.position); if(_dist < dist) { currentTarget = _vehicle; dist = _dist; } } ); } mp.events.add("event_to_call", (player) => { getNearestVehicle(player, 2); if(currentTarget) { // ... siehe oben, prüfen wem Fahrzeug gehört, ob abgeschlossen etc. etc. } });
    1 point
  2. mp.world.trafficLights.locked = true; mp.world.trafficLights.state = 0; setLights(); function setLights() { mp.world.trafficLights.state = 39; setTimeout(function(){ mp.world.trafficLights.state = 88; setTimeout(function(){ mp.world.trafficLights.state = 49; setTimeout(function(){ mp.world.trafficLights.state = 88; setTimeout(function(){ mp.world.trafficLights.state = 39; setTimeout(function(){ mp.world.trafficLights.state = 0; setTimeout(function(){ setLights(); }, 25000); // Grünphase West -> Ost }, 2000); // Grün werden West -> Ost }, 4000); // Gelbphase Nord -> Süd }, 15000); // Grünphase Nord -> Süd }, 2000); // Grün werden Nord -> Süd }, 4000); // Gelbphase West -> Ost } Diese Serverseitige Funktion wird beim Serverstart ausgeführt und startet sich danach immer wieder selbst. Die Zeiten (4000, 2000, 15000 und 25000) könnt ihr nach belieben anpassen.
    1 point
  3. Hey! I have looked everywhere to try and figure this out, wondering if you want help. I have the enable-clientside-cs.txt on the root of ragemp but still the login box doesn't come up at the start and F doesn't work. I just have a Mime guy wondering around the starting room with the text for F to start. Any idea what to look at to fix this? Or something I might of forgot to include I went through your whole document. Thank you advance.
    1 point
  4. Mit diesem kleinen Tutorial könnt Ihr MongoDB als Datenbank verwenden Im Hauptordner des Servers folgendes ausführen: npm install mongoose Alle folgenden Snippets werden Serverseitig verwendet, z.B. im Ordner "packages/mongo" index.js var mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/dbname', {useNewUrlParser: true}); Jetzt benötigen wir noch ein paar Klassen, z.B. im Unterordner "packages/mongo/Classes" accounts.js var mongoose = require('mongoose'); var Schema = mongoose.Schema; var accountsSchema = new Schema({ socialClub: String, registered: { type: Date, default: Date.now }, registerIP: String, lastIP: String, lastConnect: { type: Date, default: Date.now }, isOnline: Boolean, playTime: Number, isAdmin: Boolean, isSupporter: Boolean, isIngameSupporter: Boolean, isDeveloper: Boolean, isWhitelister: Boolean, isCop: Boolean, isMedic: Boolean, isACLS: Boolean, isJustice: Boolean, rankCop: Number, rankMedic: Number, rankACLS: Number, rankJustice: Number, lastDisconnect: { type: Date, default: Date.now }, }); exports.model = accountsSchema; Jetzt binden wir diese Klasse in unsere index.js ein: ... var Schema = mongoose.Schema; var accounts = require('./classes/accounts.js'); exports.accounts = accounts.model; Jetzt wollen wir in einem anderen Modul diese Collection nutzen login.js var mongoose = require('mongoose'); var db = require('../mongo/index.js'); var accounts = mongoose.model('accounts', db.accounts); Ok wir haben nun Zugriff auf die Datenbank und das Schema für die Documents Wir prüfen ob ein Spieler bereits einen Account hat in der login.js, dafür kann "playerReady" oder "playerJoin" verwendet werden, ich prüfe das erst nach dem Download der client_packages: mp.events.add('playerReady', (player) => { accounts.findOne({ 'socialClub': player.socialClub }).then(function (account) { if(account) { // Ja, account gefunden } }); }); Jetzt werden wir den Account aktualisieren: accounts.findOne({ 'socialClub': player.socialClub }).then(function (account) { if(account) { var now = new Date(); accounts.updateOne(account, { $set: { 'lastConnect': now, 'isOnline': true, 'lastIP': player.ip } }); } }); Das geht aber auch noch komfortabler: accounts.findOne({ 'socialClub': player.socialClub }).then(function (account) { if(account) { var now = new Date(); account.lastDisconnect = now; isOnline = true; playTime = account.playTime + (now - account.lastConnect); account.save(); } }); Beim Serverstart alle Accounts auf Offline setzen: accounts.updateMany( { 'isOnline': true }, { $set: { 'isOnline': false } } ); Sollte kein Account vorhanden sein, legen wir einen an: function newAccount(player) { var now = new Date(); var adoc = new accounts({ 'socialClub': player.socialClub, 'registered': now, 'registerIP': player.ip, 'lastIP': player.ip, 'lastConnect': now, 'isOnline': true, 'playTime': 0, 'isAdmin': false, 'isSupporter': false, 'isIngameSupporter': false, 'isDeveloper': false, 'isWhitelister': false, 'isCop': false, 'isMedic': false, 'isACLS': false, 'isJustice': false, 'rankCop': 0, 'rankMedic': 0, 'rankACLS': 0, 'rankJustice': 0 }); adoc.save().then(function(adoc) { mp.events.call("loadCharacter", player); }); } Ich hoffe das dies euch unterstützt, falls ihr mal mit MongoDB arbeiten wollt.
    1 point
  5. Sorry, it works 😃 Thank you
    1 point
×
×
  • Create New...