PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Clientside Addon automatisch laden, und anderes


Mr.g-c
04.08.2008, 14:58
Hi Leute ich habe vor ein klitzkleines Scrip-only Addon zu machen dazu habe ich 3 fragen.
Vorweg, das addon soll nur clientside-only sein.

1. Ist es möglich das die Scripts in diesem Addon automatisch Laden ohne das man sie in jeder mission "aufrufen" muss? Wenn ja, wie?

2. Ich habe folgendes problem.
Ich habe ein Array mit Fahrzeug classnames, á la:
_farzeugarray = [m1a1, t72, cobra, etc];
Nun möchte ich, dass wenn immer der clientspieler ein gunner eines der im array eingetragenen fahrzeuge ist, ein code/script ausgeführt wird.
Wie geht das am besten (in SQF)? Mann muss dort wohl "foreach" nutzen, richtig?
Und sobald er ausgestegen ist (oder einfach nicht mehr der gunner ist), soll der Code (actionmenu-eintrag) entfernt werden.

Danke und Gruss Christian

burns
04.08.2008, 15:01
Bist du immernoch mit deinem Viewdistance Cheat dran? :bahnhof:
Hach, auf Deutsch kann man sich viel besser artikulieren ... mach doch mal in "Community" oder so nen Diskussionthread auf :zahn:

Mr.g-c
04.08.2008, 15:05
Doh, ich wusst das du antwortest.....
Sollte wir dazu nicht warten bis ACE draussen ist? Ich werde (sollte das Team es nicht lösen) auf jeden fall ein Addon dazu machen. SO kann der Mission-designer wählen ob er es zulässt oder nicht.
Weil ich *mitdemfingerzeig* lass mir meine Cobra-Gunnery nisch kaputt machen, nisch wahr....

burns
04.08.2008, 15:09
Doh, ich wusst das du antwortest.....

Anytime, anywhere :cool:


.. (sollte das Team es nicht lösen) auf jeden fall ein Addon dazu machen. SO kann der Mission-designer wählen ob er es zulässt oder nicht.

In dem Rahmen kann man auch nix einwenden. So hätte schliesslich jeder Serverbetreiber die Wahl ob er das Feautre einbauen will. Muss jeder für sich selbst wissen ob die Spieler genügend Reife mitbringen keinen Unfug damit zu treiben.


Fest integriert in einer Mod die vorraussichtlich sehr viel & oft genutzt werden wird,
wäre eine solche Funktion jedoch kompletter: :bs:

modEmMaik
04.08.2008, 15:12
Sieh Dir mal die Scripts in den crCTI's an. Da solltest Du alles mögliche finden, z.B.
- das unlimitedAmmo-Skript beinhaltet den check auf Distanz zum MHQ
- Action werden Clientseitig z.B. für den Repair-Truck eingetragen
- Viewdistance wird zum Missi-Start festgelegt und auf die Clients übertragen
und vieles mehr ;)

:edit: Gunner-Cobra findest Du in der MapFact-Air: Funktion FLIRon / off

Mr.g-c
04.08.2008, 15:12
Gut.... nun da wir das ja haben, eine weitere Frage:
3. Gibt es ein Scripting-Code der die aktuelle eingestellte Viewdistance ausgeben kann? So dass man nach dem aussteigen natürlich wieder die performanceschonende standart einstellung der mission haben kann?

Gruss Christian

modEmMaik
04.08.2008, 15:17
Gut.... nun da wir das ja haben, eine weitere Frage:
3. Gibt es ein Scripting-Code der die aktuelle eingestellte Viewdistance ausgeben kann? So dass man nach dem aussteigen natürlich wieder die performanceschonende standart einstellung der mission haben kann?

Gruss Christian

Anscheinend nicht, daher wurde in der crCTI die viewDistance-Auswahl in die Missi verpackt... Aber vielleicht weiss jemand anderes mehr... ;)

Mr.g-c
04.08.2008, 15:19
Hmm dann könnte man es aber jedenfalls so machen, dass man die Viewdistance aus der Mission abfragt und dan auf diese zurücksetzt, oder?
Problem ist aber für missionen ohne festgelegte Viewdistance......

Binn mal gespannt wie das zu lösen ist.....

modEmMaik
04.08.2008, 15:33
Nun gut, anscheinend wird als Obergrenze die Clientside-Einstellung von ArmA benutzt. In unseren crCTI-Sessions wir der Default auf 1800 gesetzt, wobei auf meiner alten Kiste maximal 1200 läuft, alles darüber würde bei mir in einer Endlos-Ruckelei enden.

Somit könnte man mal checken, was passiert, wenn die Missi die viewDistance auf 20000 setzt. Meiner Vemutung nach wird die nur so hoch gesetzt, wie der Benutzer unter den ArmA-Video Optionen gesetzt hat. Damit währe das Prob gelöst... denke ich mal.... :zahn:

Mr.g-c
04.08.2008, 15:40
Soweit ich es in erinnerung habe, überschreibt eine in der mission festgelegte Viewdistance die von Arma im Grafik-menu.
Ich konnte zb. in EVO immer auf utopische Viewdistances gehen obwohl bei mir im Grafikmenu 1000m stand.

Gruss Christian

Vienna
04.08.2008, 17:56
In Mehrspielermissionen sollte man die Sichtweite vorgeben, damit kein Spieler durch die bessere Sichtweite einen Vorteil hat.

Wird der Befehl setViewDistance in der Mission verwendet, dann ist die Einstellung aus dem Grafikmenü ausgeschalten. Dadurch ist auch keine Abfrage notwendig, weil der Mission ja die Sichtweite bekannt ist.

Es sind aber auf jedem PC unterschiedliche Sichtweiten möglich, somit auch z.B. eine geringere wenn der Spieler in einem Fahrzeug sitzt.

Als gute Sichtweiteneinstellung finde ich 2000m. Bei wem damit das Bild ruckelt, der sollte die Grafikeinstellungen zurückstellen. Ein hohe Bildauflösung ist wichtiger als die sonstigen Einstellungen. So erhält man ein scharfes Bild, welches auch noch hervorragend ist, wenn sonst alles auf Minimum gesetzt ist.

Mr.g-c
05.08.2008, 00:29
Irgend eine Antwort auf meine Fragen von Punkt 1 und 2?

.kju
05.08.2008, 06:15
1) initEH via XEH

Es gibt doch das Addon um clientseitig die Viewdistance setzen. Wieso das nicht als Basis
nehmen / Quelle zur Inspiration.

Vienna
05.08.2008, 08:42
1.

Keine Ahnung ob Skirpte im Addon automatisch gestartet werden können. Aber das Addon muß ja der Mission bekannt sein. Warum dann das Addon-Skript nicht in der Mission aufrufen?


2.

Einen Auslöser mit Bereich über das ganze Spielfeld erstellen welcher auf Alle oder nur eine Seite gestellt ist.

TypenBezeichnungen = die Bezeichnungen welche für createVehicle verwendet werden. Es muß korrekt die richtige Schreibweise beachtet werden. Groß- und Kleinschreibung beachten!


_unitsTypen = ["TypenBezeichnung","TypenBezeichnung",....];
_units = [];
{ if(typeOF _x IN _unitsTypen) then {_units = _units + [_x]} } forEach list Auslösername;
{ if (player == gunner _x) then { <gewünschte Aktion> } } forEach _units;


Wenn du für einzelne Typen unterschiedliche Aktionen haben willst, dann mußt du den Code für jede Typengruppe separat ausführen oder du machst im Bereich <gewünschte Aktion> nochmals Abfragen für jede Type. Für Letzteres wäre SQF-Skript wegen der übersichtlicheren Schreibweise notwendig.

Vienna
05.08.2008, 22:47
Ich habe gerade gesehen, dass es in ArmA seit V1.09 schon Umwandlung auf Groß- oder Kleinbuchstaben gibt.

Schreibe alle Typenbezeichnungen in Großbuchstaben und die ändere die Zeile wie unten, dann brauchst du dir um die Groß- und Kleinschreibung keine Sorgen mehr zu machen


{ if(toUpper(typeOF _x) IN _unitsTypen) then {_units = _units + [_x]} } forEach list Auslösername;