Dieser Guide beschreibt die verschiedenen Best-Practices für das erstellen von jeder Form von Code bei RealLifeRPG.
== Allgemein
- Alle Datei/Variablen/Kommentare auf Englisch
(IMPORTANT) Das benutzen von Umlauten, ... kann dazu führen das alles kaputt geht, also KEIN DEUTSCH !
== Gebäude
- **Classnames** müssen mit `Land_` beginnen und dann den namen der ´.p3d´ haben
- Alle **Türen**, **Toren** und sonstige dinge die animiert werden können heißen `door_` und dann eine Nummer
== Class Names
Damit es nicht zu Duplikaten zwischen den verschiedenen Mods und classnames in der Mission kommt, sollten die folgenden Regeln beachtet werden
(IMPORTANT) Bitte beachtet auch die genaue Groß- und Kleinschreibung
# **U**niformen: `RL_U_name`
# **B**ackpack: `RL_B_name`
# **V**est: `RL_V_name`
# **H**eadgear: `RL_H_name`
# **G**oggles: `RL_G_name`
# **W**affen: `RL_W_name`
# **M**agazin: `RL_M_`
# **I**tem: `RL_I_name`
# Fahrzeuge: `RL_name`
== File Template
```lang=javascript,name=example.sqf
#include "\life_server\script_macros.hpp"
#include "..\..\script_macros.hpp"
/*
* Author: RealLifeRPG Team
*
* Description:
* <What does this Function do ?>
*
* Arguments:
* 0: NUMBER - Example Number
* 1: ARRAY - Example Array
* 2: CODE or STRING - Example Code or String
*
* Return Value:
* Nothing
*
* Example:
* N/A
*
*/
params [
["_exampleString","",[""]],
["_exampleInt",0,[0]],
["_exampleArray",[],[[]]] ,
["_exampleObject",ObjNull,[ObjNull]]
];
```
== Error Handling
Es gibt 4 verschiedene Macros mit denen Errors geloggt werden können, alternativ kann direkt die `life_fnc_logError` mit entsprechenden Parametern aufgerufen werden.
```lang=javascript,name=example.sqf
LOG(1); // einfacher log, wird als hint und im rpt geloggt, die 1 ist der Error Code, dieser kann auch jeder andere typ sein
LOGP(1,_param); // log mit parameter
LOGS(1); // silent log, wird nur im rpt und nicht als hint angezeigt
LOGSP(1,_param); // wie LOGS nur mit parametern
```
Der Errorcode muss pro Datei eindeutig sein.
== User Actions
Damit die user actions der Fahrzeuge per Konfigurierbaren Hotkey gesteuert werden können. Damit das geht müssen die useractions nach folgender Konvention benannt werden.
Die Liste enthält die Grund namen der user action, dahinter kommt immer `_on` und `_off` für die entsprechenden Funktionen
- Blaulicht/Gelblicht `gyro`
- Sirene `siren`
- Fernlicht `beam`
- Blinker rechts `indicator_r`
- Blinker links `indicator_l`
== Datenbanken
==== Benennung ====
- Die PlayerID Spalte heißt `pid`
- Die ID spalte heißt `id`
- Fremdschlüssel/Andere ids `<name>_id` , Keyname `key_<table_name>_<name>`
==== Allgemein ====
- Jede Tabelle bei der es Sinn macht enthält die spalten `updated_at` und `created_at` mit entsprechenden Werten (automatisch in DB einstellen) und `disabled (tinyint default 0)`
- ein log Tabelle heißt immer `log_<log_name>`