Du darfst nicht eiskalt ein 3.1.4.8 Tutorial auf 4.x anwenden ohne Grundkenntnisse darüber zu haben.
Schau mal hier: Wichtige Hinweise vor dem Eröffnen eines Server
Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.
Du darfst nicht eiskalt ein 3.1.4.8 Tutorial auf 4.x anwenden ohne Grundkenntnisse darüber zu haben.
Schau mal hier: Wichtige Hinweise vor dem Eröffnen eines Server
Schick am besten die File mal rein, wir schaun mal drüber
Meine Signatur lesen und wir können vielleicht helfen (Der Leitfaden zu den Logs ist gemeint)
Platziere nun einen Rasenmäher und tragen in der Init folgendes ein:
Wenn es viele Objekte werden sollte man aus Performancegründen keine Rasenmäher nehmen sondern Spiellogiken und mit einer Spiellogik einen Radius von ~500m abdecken. Außerdem sollte man statt [0,0,0] nearestObject HIEROBJEKTID besser this nearestObject HIEROBJEKTID aus Performancegründen! ([0,0,0] ist die linke obere Ecke der Karte. Mit meiner Variante sagen wir, dass er an der Stelle der Spiellogik anfangen zu suchen soll.
(getPos this nearestObject "House") hideObjectGlobal true;
Hier bietet sich auch eine kleine Änderung an: (nearestBuilding this) hideObjectGlobal true wäre hier die einfachere Variante
(Weniger Code -> schnellere Ausführung! Siehe meinen Beitrag bezüglich Code Optimierung, in meiner Signatur verlinkt. Nicht vom externen Link abschrecken lassen, musste ihn wegen der 500 Zeichen Begrenzung kürzen ^^)
Siehe:
nearestObject - Bohemia Interactive Community
nearestBuilding - Bohemia Interactive Community
nein, muss donorlevel heißen laut Abfrage, aber ganz ehrlich ich werd nicht schlau warum es die Fehler gibt. Bitte mal noch den Server RPT
[Erklärung|Leitfaden] Arma 3 Logs - Client, Server & extDB Log
Bitte zur Hölle liebe Leute lest die angepinnten Threads im Forum! Sie existieren nicht ohne Grund!
SELECT playerid, name, cash, bankacc, adminlevel, donorlevel, civ_licenses, arrested, civ_gear, civ_stats, civ_alive, civ_position, playtime FROM players WHERE playerid=''
Du hast in deiner DB schon alle diese Felder, oder?
dann wie oben beschrieben umgedreht anwenden und mal "donatorlevel" nennen
@nox Editierst du einfach so mein Tutorial xD nenene
Die 0 am Ende ist falsch. Da steht doch du sollst das nur hinschreiben wenn da false steht und das tut es nicht wenn du bis zu dem Punkt alles richtig gemacht hast ![]()
Ist die Funktion auch in der CfgRemoteExec.hpp eingetragen? Ist im Tut alles erklärt wenn man ordentlich liest...
Alles anzeigenHier mal eine kleine Erklärung wie es am einfachsten geht:
Du verbindest dich mit Navicat zu deiner Datenbank und wählst bei den Tabellen deine Tabelle players aus, Rechtsklick und dann "Design Table" klicken
Jetzt öffnet sich ein Fenster mit den gesamten Tabellenspalten. Du suchst dort dein "Donatorlevel"
Jetzt einfach umbenennen zu donorlevel und oben auf "Speichern" klicken
Und das war's auch schon. Im Idealfall vorher den Server stoppen
Datenbank nicht life_server du Held
1. Warum als .pbo angehängt? ![]()
2. Meine Signatur. Ohne Logs gar nix los.
Komm schon @nox, wer da nicht hinbekommt der schafft auch nicht BattlEye Filter zu googlen Kappa :p
Ja, war auch nicht böse gemeint @Saturin78, aber nicht direkt sowas sagen
Wenn aus der Datenbank der Wert abgefragt wird sollte das schon stimmen :p
Also bei mir gibt es kein donorlevel, es gibt da nur donatorlvl
Mal auf den Gedanken gekommen, dass du eine andere Version verwendest? Seit der 4.4r3 heißt das nämlich anders.
Hier mal eine kleine Erklärung wie es am einfachsten geht:
Du verbindest dich mit Navicat zu deiner Datenbank und wählst bei den Tabellen deine Tabelle players aus, Rechtsklick und dann "Design Table" klicken
etzt öffnet sich ein Fenster mit den gesamten Tabellenspalten. Du suchst dort dein "Donatorlevel"
etzt einfach umbenennen zu donorlevel und oben auf "Speichern" klicken
Und das war's auch schon. Im Idealfall vorher den Server stoppen
@Klaus Ferrano [TUTORIAL][ALTIS LIFE] life_fnc_MP zu remoteExec | undefined variable in Expression 'life_fnc_MP'
Im Tut steht doch sogar, dass es nur auf 3.1.4.8 läuft so... tztztz, Amateure im lesen hier ![]()
Da ich immer wieder Fragen diesbezüglich sehe, wie das ganze funktioniert, hier nun ein Tutorial dazu. Ich gehe das ganze Anhand eines Beispielcodes durch, diese Vorgehensweise ist allerdings auf alle anderen Scripte ebenfalls anwendbar.
Tutorial: life_fnc_MP umschreiben auf remoteExec
Version: Altis Life 4.4 und neuer (vorher obsolet)
Schiwerigkeitsgrad: Fortgeschrittener (man sollte Grundlagenkenntnis besitzen)
In diesem Tutorial erlangte Fähigkeiten:
~ life_fnc_MP Funktionen auf remoteExec umschreiben und korrekt whitelisten (life_fnc_MP existiert ab Version 4.4 nicht mehr)
Rechtliche Hinweise (Copyright):
Ich untersage die Verbreitung dieser Daten und die des von mir verfassten Tutorials in anderen Foren ohne vorher mein Einverständnis dazu einzuholen.
Nun zum eigentlichen Teil dieses Posts...
Anleitung:
Gegeben sei ein Codeschipsel aus einem Tutorial für Version 3.1.4.8, der ein Script per life_fnc_MP aufruft. Da wir allerdings 4.4 verwenden, müssen wir diesen auf remoteExec umschreiben. Und das geht wie folgt:
#define F(NAME,TARGET) class NAME { \
allowedTargets = TARGET; \
};
#define ANYONE 0
#define CLIENT 1
#define SERVER 2
class CfgRemoteExec {
class Functions {
mode = 1;
jip = 0;
...
F(life_fnc_broadcast,ANYONE) //neuer Eintrag unserer Funktion
...
};
class Commands {
mode = 1;
jip = 0;
...
};
};
Alles anzeigen
Hinweis: Das Erscheinungsbild der CfgRemoteExec.hpp kann variieren. Es ist lediglich wichtig, dass die Funktion unter class Functions steht und nicht bei class Commands
Fertig!
Das war's schon!
Ich wünsche euch Viel Spaß mit dem Tutorial
![]()