Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 27.03.2012, 23:38   #1 (permalink)
Armed-Assault.de Team10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 02.07.2006
Ort: Kabul
Alter: 32
Beiträge: 2.664
Standard Unterschied - Player & local Player?

Ich sehe oft das leute in ihren Scripts die Abfrage "local Player" benutzen.

Das "local" ist doch aber total ueberfluessig da der Player immer lokal auf der Maschine des Spielers ist.

Auf einem Dedicated gibt es keinen Player und wenn jemand einen Server Hosted ist er selber ja auch nur der Player bei sich local auf dem Rechner. Somit zieht die Abfrage mit "Player" doch genauso wie mit "local Player".

Also, wozu nach "local Player" abfragen wenn der Player sowieso immer lokal ist und die Abfrage nach "Player" genau den selben effect hat?


Wenn ich da etwas falsch verstanden habe klaert mich bitte auf, danke.


gruß
hoschi
__________________


Moerderhoschi ist offline   Mit Zitat antworten
Alt 28.03.2012, 08:28   #2 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.725
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

Naja, es gibt eben Möglichkeiten die Abfrage auch anders zu gestalten. Der Befehl kommt immerhin von OFP 1.0 - da gab es viele andere Befehle noch nicht.

Und was meinst du mit "player" abfragen? Das ist ja noch kein bool im gegensatz zu "local player". Erst wenn du "object == player" fragst hast du eine äquivalenz zu local x. Jetzt hast du aber extra irgendwohin das Objekt übergeben müssen, wohin gegen du mit "local player" alles hast was du benötigst.

Also z.B. per Trigger ein Script gerufen was nun alle Spieler ausführen sollen:
if !(local player) exitWith {};
seit ArmA 1.0 jedoch:
if (!isPlayer) exitWith {};

Nur der Server:
if !(local server) exitWith {};
seit ArmA 1.08 jedoch:
if !(isServer) exitWith {};

Nur ein bestimmter Spieler:
if !(object == player) exitWith {};
oder eben:
if !(local object) exitWith {};


Seit ArmA2 gibt es nun auch noch "isDedicated".
Den Befehl "isPlayer" solltest du jedoch eigentlich nicht zum Abfragen von Lokalitäten verwenden. Das gibt Probleme wenn sich KI und Spieler in ein und dem selbem Fahrzeug befinden.
Local Player wird seit ArmA2 wirklich selten benötigt da es (mitlerweile) andere Wege gibt. Wenn du jedoch eine bestimmte Variable oder ein bestimmtes Objekt einsetzt sieht die Sache schon ganz anders aus.



Grüße
__________________
Niemand hat die Absicht eine Tüte zu bauen!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 28.03.2012, 10:13   #3 (permalink)
5000 Beiträge
 
Benutzerbild von Xeno
 
Registriert seit: 03.01.2008
Alter: 77
Beiträge: 6.547
Standard

*deleted*

Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels.

Geändert von Xeno (03.01.2014 um 09:28 Uhr).
Xeno ist offline   Mit Zitat antworten
Alt 28.03.2012, 10:20   #4 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Zitat von Psychobastard Beitrag anzeigen


Also z.B. per Trigger ein Script gerufen was nun alle Spieler ausführen sollen:

if !(local player) exitWith {};

seit ArmA 1.0 jedoch:

if (!isPlayer) exitWith {};

isPlayer kann so nicht verwendet werden! Mit isPlayer wird geprüft, ob eine bestimmte Spielfigur ein Spieler ist.

http://community.bistudio.com/wiki/isPlayer

Der Ersatz für if (! local player) exitWith {} lautet: if (isDedicated) exitWith {}
Vienna ist offline   Mit Zitat antworten
Alt 28.03.2012, 11:03   #5 (permalink)
Armed-Assault.de Team10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 02.07.2006
Ort: Kabul
Alter: 32
Beiträge: 2.664
Standard

Mich hat diese art der Abfrage nur etwas verwirrt da ich bis jetzt auch immer einen Player mit !isDedicated abgefragt habe.

Da es diese Abfrage aber zu OFP Zeiten noch nicht gab und ja noch viele Scripter aus dieser Zeit kommen ist es verstaendlich das der ein oder andere noch mit local Player abfraegt.

Ich danke euch auf jeden fall fuer die, wie immer, guten Antworten


mfg
hoschi
__________________


Moerderhoschi ist offline   Mit Zitat antworten
Alt 08.02.2013, 10:56   #6 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von WickerMan
 
Registriert seit: 28.12.2008
Ort: Bavaria (nix Germany)
Beiträge: 307
WickerMan eine Nachricht über ICQ schicken
Standard

Frage, wie muss die Bedingung eines Auslösers heißen?

Wenn eine Mission erst wenn Alle Spieler im Auslösebereich sind zu Ende ist?

Hinweis:
Es können 12 Spieler mitspielen, die mit s1, ......, s12 benannt sind.

Gruß
WickerMan ist offline   Mit Zitat antworten
Alt 08.02.2013, 12:19   #7 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Lester
 
Registriert seit: 26.11.2006
Ort: Kiel, S-H
Alter: 51
Beiträge: 3.010
Standard

Zitat von Xeno Beitrag anzeigen

I*deleted*

Da möchte ich aber etwas erweitern, ein Host ist trotz !isDedicated sowohl ein Server als auch ein Client !
__________________
Nur ein Beispiel das zeigt wie BI "support" definiert: https://feedback.bistudio.com/T75547

Geändert von Xeno (03.01.2014 um 09:28 Uhr).
Lester ist offline   Mit Zitat antworten
Alt 08.02.2013, 13:15   #8 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.725
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

Code:
{vehicle _x in thisList} count playableUnits >= (({alive _x} count playableUnits)/100*75)
In diesem Beispiel löst der Trigger aus wenn sich 75% der noch lebenden Spieler in dem Trigger befinden.


Grüße
__________________
Niemand hat die Absicht eine Tüte zu bauen!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 08.02.2013, 14:48   #9 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von WickerMan
 
Registriert seit: 28.12.2008
Ort: Bavaria (nix Germany)
Beiträge: 307
WickerMan eine Nachricht über ICQ schicken
Standard

Danke

edit:
Der Auslöser löst sofort aus.

a/b: 10/10
Aktivierung: keine
Vorhanden
Zeitüberschreitung
Typ Ende 1
Bedingung: {vehicle _x in thisList} count playableUnits >= (({alive _x} count playableUnits)/100*75)
Bei akt: titletext [". . ","Plain",2]

Geändert von WickerMan (08.02.2013 um 15:16 Uhr).
WickerMan ist offline   Mit Zitat antworten
Alt 08.02.2013, 18:28   #10 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Bei Aktivierung: keine wird niemand in der Liste sein.

Zum Testen siehe Post #12.

Geändert von Vienna (09.02.2013 um 14:53 Uhr).
Vienna ist offline   Mit Zitat antworten
Alt 09.02.2013, 02:51   #11 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.725
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

mit aktivierung "keine" wird das auch nix... den rest musst du schon alleine machen.
__________________
Niemand hat die Absicht eine Tüte zu bauen!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 09.02.2013, 11:58   #12 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Die Bedingung ist korrekt und sie wird in MP bei "Aktivierung: keine" immer false ergeben!

Ein Test im Editor ist aber nicht möglich, weil dort der Befehl playableUnits ein leeres Array ausgibt!

Somit ergibt die Bedingung im Editor immer true, egal welche "Aktivierung" eingestellt ist!

Zum Testen der Bedingung im Editor kannst du anstelle von playableUnits z.B. eine Liste mit den spielbaren Soldaten anlegen:

Spieler = [S1, S2, S3, ...]

Um solche Fehler zu erkennen, lass dir vom Auslöser vorerst die Bedingung ausgeben:
Code:
Bedingung: true
Bei Akt. : player groupChat format["%1 >= %2",{vehicle _x in thisList} count playableUnits, (({alive _x} count playableUnits)/100*75)]
Vienna ist offline   Mit Zitat antworten
Alt 09.02.2013, 13:21   #13 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.725
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

Das stimmt nicht. Ohne jetzt groß zu diskutieren was wieso und aber hätte wäre wenn mit Ausnahme: Die Bedingung einfach auf WEST Anwesend und fertig. Macht nicht so ein Drama daraus... is doch ganz easy.
__________________
Niemand hat die Absicht eine Tüte zu bauen!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 09.02.2013, 14:29   #14 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

Wenn was falsch war, dann mein Hinweis in Post #10, dass für die Bedingung alle spielbaren Soldaten belegt sein müssen. Das habe ich dort gelöscht.

Tests wie im Post #12 bringen die dort genannten Ergebnisse.


Psychobastard hat mich verunsichert. Es stimmt doch, wie ich ursprünglich im Post #10 beschrieb, dass nicht von Spielern belegte spielbare Soldaten das Ergebnis der Bedingung verfälschen können. Das Array von playableUnits beinhaltet auch die spielbaren Soldaten, welche nicht von Spielern gesteuert werden.

Die tatsächlich im Spiel befindlichen Spieler können z.B. so gelistet werden:
Code:
_spielerListe = [];
{if (isPlayer _x) then {_spielerListe =_spielerListe + [_x]}} forEach playableUnits;

Geändert von Vienna (09.02.2013 um 15:51 Uhr).
Vienna ist offline   Mit Zitat antworten
Alt 09.02.2013, 16:11   #15 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von WickerMan
 
Registriert seit: 28.12.2008
Ort: Bavaria (nix Germany)
Beiträge: 307
WickerMan eine Nachricht über ICQ schicken
Standard

ok, Danke werde es heute gleich testen!

Im Test hatte ich auch Aktivierung: Bluefor getestet, aber nur im Editor
Ab und zu ist es auch des Verständnisses, die Hintergedanken zu erfahren warum weshalb . . .


edit:
Auf dem Server funktioniert es!
Im nach hinein erscheint es mir logisch, warum es im Editor nicht gehen kann!

Danke euch beiden!

Geändert von WickerMan (09.02.2013 um 16:40 Uhr).
WickerMan ist offline   Mit Zitat antworten
Alt 09.02.2013, 18:18   #16 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.725
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

lol
__________________
Niemand hat die Absicht eine Tüte zu bauen!
Pfandgiraffe ist offline   Mit Zitat antworten
Antwort

Stichworte
local player, lokal, player, spieler


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Rucksack CptMike Editing & Scripting 21 28.10.2011 00:35
Weapon Save Config Arni83 Editing & Scripting 8 18.02.2011 19:35
Sidechat ist nur local! GER_CJ-187 Editing & Scripting 11 18.11.2010 08:08
Problem mit Briefing im MP Clawhammer Editing & Scripting 13 17.09.2010 18:29
Heal/Repair Script / Einheiten in einem Radius zufällig generieren lassen Noobfire Editing & Scripting 8 06.08.2010 16:22


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116