RAGE MP Dev-Blog #3

Zuerst wurden die Bankautomaten fertiggestellt (einzahlen/auszahlen/Transaktionen), getestet und bekamen ein vorläufiges Design. Dabei sind ein paar Fehler mit dem Chat aufgetreten, die dann auch direkt behoben wurden. Zum Beispiel konnte der Chat beim Abbrechen der Auswahl für die Bankkarte nicht mehr geöffnet werden, da bei nur einer Bankkarte der Bankautomat aufgeht.


Nachdem die Bankautomaten fertiggestellt wurden, hatte ich mir spontan den Voice-Chat von RAGE MP angeschaut. Ich habe es so programmiert, dass der Client, sobald ein Spieler in Reichweite kommt, diesen an den Server sendet, welcher dann den Voice-Chat für diejenigen aktiviert. Außerdem habe ich noch verschiedene Reichweiten eingebaut, die der Spieler selber einstellen kann, um in einer bestimmten Reichweite mit den Spielern zu interagieren: Flüstern (5m), Normal (25m), Laut (40m), Schreien (60m). Auch wird ein Spieler, je weiter er weg ist, leiser.


Das Levelsystem wurde auch noch mal überarbeitet und für die Anzeige der Erfahrungspunkte nutze ich jetzt die Levelanzeige aus GTA Online. Zusätzlich kamen die ersten Befehle für Admins dazu:

  • /tp - um sich selbst zu einem Spieler zu teleportieren.
  • /tphere - um einen Spieler zu sich selbst zu teleportieren.
  • /tpxyz - um sich selbst zu den angegebenen Koordinaten zu teleportieren.
  • /tpatm - um sich selbst zu einem ATM zu teleportieren.
  • /atm create - um einen ATM zu erstellen.

Alle Befehle wurden auch schon auf ein Adminlevel festgelegt, insgesamt gibt es nur 4, und können von normalen Spielern nicht verwendet werden.


Dann kamen noch viele kleine Änderungen wie:

  • Das Speichern von Rüstung und HP.
  • Die HP Regeneration im Client ausgeschaltet.
  • Die Taste "G" um als Beifahrer einzusteigen.
  • NativeUI an eine bestimmte Position gebunden, damit wenn man vom Bankautomaten weggeht, dieses sich wieder schließt (zu finden bei mir auf GitHub).
  • Geld wurde zu einem richtigen Gegenstand geändert (ist jetzt auch nicht mehr in der SQL Tabelle vom Spieler drin, sondern in der Inventar Tabelle).
  • Fehler bei der Gewichtsberechnung vom Inventar behoben (statt items[itemID][subItemID] wurde items[subItemID] verwendet, wodurch viel zu viel Platz im Inventar war).
  • Support von Farben für den Chat (können noch nicht vom Spieler verwendet werden).
  • Es wurde ein HUD erstellt, welches Mikrofonstatus (stumm/nicht stumm und Reichweite), Geld, Hunger/Durst und wenn im Fahrzeug die km/h anzeigt.

Nach den ganzen Änderungen habe ich mir erst mal überlegt, wie das Haussystem aufgebaut werden muss (Datenbank) und damit angefangen. Dafür wurde erst mal der Befehl /house create erstellt und die ersten Häuser wurden auch schon erstellt. Viel mehr, als nur die Häuser zu erstellen, geht bisher noch nicht, als Nächstes kommen erst mal die Funktionalitäten für das Haus.


Außerdem habe ich die komplette Struktur vom Client überarbeitet, nun werden für den Client die Dateien index.js (Inhalte für den Client selber) und cef.js (Funktionalitäten für den Browser) über Webpack erstellt. Es gibt jetzt auch nur noch eine HTML Datei für den Browser, welche die einzelnen HUD Komponenten über Vue.js lädt. So werden jetzt HTML, CSS und JS komprimiert und alles lässt sich um einiges besser verwalten.


Ich habe jetzt auch sloc, welches die Code Zeilen, Dateien, Kommentare, Todos usw. zählt, für das Projekt eingerichtet. Und für die die es interessiert hier die Zahlen:

Vor dem Umbau des Clients: 3530 Zeilen, 2919 Source Code Zeilen, 169 Kommentare, 470 leere Zeilen, 18 Todos, 48 Dateien.

Nachdem Umbau des Clients: 3284 Zeilen, 2702 Source Code Zeilen, 163 Kommentare, 444 leere Zeilen, 17 Todos, 51 Dateien.


sloc: https://www.npmjs.com/package/sloc

modifiziertes RAGEMP-NativeUI von mir: https://github.com/derpierre65/RageMP-NativeUI