PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zu PublicVariable und Mehr


Eyevi
05.06.2013, 03:53
Hallo Comunity,

dieser Post wird grade auf einem Smartphone geschrieben, daher entschuldige ich mich schon einmal im Voraus für diverse Fehler durch die Autokorrektur :ugly:

Frage1:
Wenn ich eine Multiplayer Mission erstelle und in die Init.sqf eine Variable erstelle, dann gillt diese doch seperat für jeden Spieler oder? Also wenn ich dort zB. die Variable Geld deklariere, hat dann jeder Spieler einen Geldbetrag. Wenn ich nun irg. wo ein Objekt erstelle und diesem eine AA gebe an der man Geld verliert, und ein Spieler diese auslöst, dann gilt diese doch nur für den Spieler. Wenn ich nun aber das Geld eines anderen Spielers abfrage wie mache ich das? Ich meine, sobald ich eine Variable Public setze, würde sie ja die die "Geldwerte" der anderen Spieler überschreiben. Als Beispiel: Spieler1 hat Spieler2 getötet. Spieler1 soll nun alles Geld von Spieler2 bekommen. Wie wäre so etwas realisierbar?

Frage2:
Eigene Gegenstände... gibt es dafür vieleicht ein anständiges Tutorial? ZB. Nahrungsmittel oder Getränke einfügen wie in DayZ. Oder eine Waffe modifizieren usw.

Frage3:
Ich habe in einer meiner Missionen das Problem, das ich einer leeren Waffenkiste via AA hinzugefügt, dass sich Spieler Waffen darin spawnen lassen können. Dies klappt jedoch immer nur, wenn der Host dies ausführt... irg. jemand eine Idee wie man mir dort helfen könnte?

Ich stelle fest, ich hätte noch gefühlt 1000 Fragen xD

Aber vielen Dank schon mal für Antworten auf diese Fragen :)

Vienna
05.06.2013, 08:37
1.

Lokale Variable (beginnend mit _Unterstich) sind isoliert in einem Skript sichtbar. Darum können solche in Skripten gleiche Namen haben ohne sich gegenseitig zu beeinflussen.

Globale Variable beginnen ohne Unterstich und sind isoliert auf jedem PC. Werden sie in Skripten verwendet, dann wirken sich Wertänderungen in jedem Skirpt aus. Sie können auf jedem PC einen anderen Wert haben.

Sollen Wertänderungen von globalen Variablen auf allen PCs erfolgen, dann geschieht die Bekanntgabe nach der Wertänderung mit dem Befehl publicVariabel "NameDerVariaben";

In deinem Fall ist für jeden Spieler ein eigenes "Konto" (namentlich eigene globale Variable) erforderlich. Wertänderungen sind mit Befehl publicVariable zu synchronisieren.

Zu publicVariable gibt es auch noch weitere Befehle, siehe hier die weiterführenden Links: http://community.bistudio.com/wiki/publicVariable


2. Ist nicht einfach zu verwirklichen.


3. http://community.bistudio.com/wiki/addAction ist lokal. Die Aktion muss so angelegt werden, dass sie jeder Spieler bekommt. z.B. wenn die Kiste im Editoer aufgestellt wird und die Aktion in die Initialisierungszeile der Kiste eingetragen wird. Wird die Kiste mit Skript erstellt, dann erfolgt das mit http://community.bistudio.com/wiki/setVehicleInit