PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Unterstützungsmodule bei Coop nicht JIP fähig?


Joa666
18.12.2015, 16:16
Hallo zusammen,

nachdem ich nun etliche Zeit das Internet durchforsted habe und noch keinen Schritt weiter gekommen bin, stell ich mein Problem hier mal rein.

In einer Mission habe ich Unterstützungsmodule eingearbeitet.

Diese funktionieren auch wunderbar wenn die Mission neu gestartet wurde und alle zeitgleich joinen.

Wenn aber ein Spieler "nachjoined" werden diesem die Buttons der Anforderungen nicht mehr angezeigt.

Was hab ich vergessen oder sind die Module nicht JIP fähig?

Grüße

Joa

Drunken Officer
18.12.2015, 16:49
Du musst das Modul mit einem Namen versehen und dann synchronisieren. Schau mal das Forum hier durch, da war daß bereits Thema.

Joa666
19.12.2015, 06:40
Ich hab nicht nur das Forum hier mehrere Stunden durchscht, aber nichts passendes gefunden.

Ich versuchs mit deinem Tipp ... und wenns dann immer noch nicht funzt werd ich mich nochmal intensiv mit der Suche hier drin beschäftigen.

THX

Drunken Officer
19.12.2015, 11:25
BIS_fnc_addCommMenuItem
BIS_fnc_removeCommMenuItem

Suche mal im Netz nach den beiden Befehlen. Im BIS-Wiki findest du eine Erklärung, wie du diese Befehle verwenden musst.

Es ist local, also muss es der Client ausführen. Am besten, du arbeitest es in die InitplayerLocal.sqf ein. Die lädt jeder Spieler,egal ob von Anfang an dabei oder nachträglich

Joa666
20.12.2015, 08:48
Ok, tausend Dank,

habs gesucht, gefunden und angeschaut ... und bin raus ... das sind mir im Moment noch zu viele Böhmische Dörfer ...

Wäre ja auch zu einfach wenn man einfach Module platziert und es funzt wie man es sich wünscht ... Wir wollten einfach nur die Möglichkeit eine selbst definierte Nachschubkiste per Luftverlastung zum gewünschten Absetzpunkt transportieren zu lassen.

Da ich kein Multiplayer kompatibles Script gefunden habe dachte ich versuchs einfach mit den Modulen ... aber das war wohl nix ...

Nochmals Danke für die Hilfe und die Befehle ... aber ich denke das ich das in ca 2 bis 3 Jahren fehlerfrei einbauen kann.

Ach ja ... falls irgendwer ein passendes Script rumliegen hat und es mir zur Verfügung stellen will würd ich mich sehr darüber freuen.

Ich wünsche allen ein fohes Fest und geruhsame Feiertage.

Joa

Drunken Officer
20.12.2015, 09:11
Du syncronisiert dein Heli mit dem Unterstützer-Leister-Modul UL_Modul. Dann das Leister-Modul mit dem Anforder-Modul.

Das Anfordermodul nennen wir mal UA_Modul.

In der Initplayerlocal.swf kannst du es z.B. so machen:


_klasse = vehicleVarName player;
switch (_klasse) do
{
case "A1": { ..... };

case "A3" : { //Funker
UA_MODUL synchronizeObjectsAdd [a3]; BIS_supp_refresh = TRUE;
};
};


oder aber (auf der Karte nur Heli mit Leistermodul syncronisieren)


...
case "A3": {
[A3, UA_Modul, UL_Modul] call BIS_fnc_addSupportLink;
hint format ["Synchronized!: %1", synchronizedObjects player];
};
....


Was ich dir als erstes gegeben hatte, war dafür, wenn man bereits in der Description.ext unter CfgCommunication etwas definiert hat. Z.B. wenn man sein eigenes Unterstützungsscript geschrieben hat.

Es ist eigentlich nicht so der Hit.
- Heli + Crew spanwn lassen. Definiert sein sollte "fly".
Eine Kiste spawnen

Über Addwaypoint dem Heli Wegpunkte zu weisen.
Index 0 ist immer vorhanden. 1 z.B auf den Anforderer, 2 auf Startposi.
Im Statemanet des WP mit Index 1, einen Frachtschirm ca. 5 Meter hinter dem Heli spawnen lassen modeltoWorld eignet sich da gut und danach die Kiste an den Frachtschirm hängen. Das wars.

Drunken Officer
20.12.2015, 14:28
Hier mal ein kleines Beispiel für ein eigenes Script:

Speichere diese Script ab:
http://pastebin.com/5c6AmrWw



Jetzt die Option, es über dieses lustige Kommunitakionsmenü aufzurufen.
Dazu in der Description.ext folgendes eintragen

class CfgCommunicationMenu
{

class Muniher
{
text = "Munition anfordern";
expression = player execVM "scripte\s_helisupport.sqf";
icon = "tex\ui\heli_evac_ca.paa";
removeAfterExpressionCall = 1;
};
};


in der Initplayerlocal.sqf diesen Eintrag:

if ( vehicleVarName player == "ExakterNamederFigursowieimEditorbenannt") then { _supportHeli = [player,"Muniher"] call BIS_fnc_addCommMenuItem; };


Und schon hat dein Spieler, welchen du die Option anhängst die Möglichkeit den Heli zu rufen. Die Option verschwindet nach dem Aufruf.
Der Heli startet 2500m entfernt vom Spieler und wird 1200m, nach dem Überflug gelöscht.

Statt diese ModeltoWorld-Geschichte kannst du auch zB. Marker nehmen, welche vorher auf der Karte platziert wurden.
_veh = createVehicle ["B_Heli_Transport_03_unarmed_F", getMarkerPos "Mkr_SupHeli", [], 0, "FLY"];

Buliwyf
20.12.2015, 14:46
mycargo ... überdenken! :p

Drunken Officer
20.12.2015, 15:17
geändert! Ich habe ihm nur die Möglichkeit mit dem Script aufgezeigt, sonst kommt er durcheinander

Joa666
22.12.2015, 17:55
Vielen Dank für die Hilfe und das vorgezogene Weihnachtsgeschenk.

Ich werd das ganze gleich mal in die Mission einbauen.

Das ganze müsste dann ja auch funktionieren wenn ich ein zweites, abgeändertes Script für ne Sani Kiste umschreibe ... also das script anders bennen, und die class cfg und die local anpassen.

Das Problem mit der Luftunterstützung und dem Ari Support hab ich zwar immer noch, aber das Logistik Problem ist somit gelöst.

Nochmals vielen Dank

Und Frohe Feiertage

Joa

Joa666
22.12.2015, 18:30
Nachtrag:

Läuft alles wie beschrieben ... nur leider taucht keine Kiste auf ... weder die erstellte noch eine platzierte ind benannte.

Da ich der Kacknoob bin kann ich mir da nicht weiterhelfen.

Grüße

joa

Buliwyf
22.12.2015, 19:12
Und wie soll man Dir jetzt weiterhelfen? Mittels einer Kristallkugel? Es gibt so ätzend viel was Du hättest verreißen können... und deswegen sage ich immer wieder, dass man sich mit dem Sch**ß beschäftigen muss. Die Scripterei in ArmA ist nunmal eine Wissenschaft für sich und wer denkt, er könne mal eben schnell ein blaues Auto gegen ein Rotes ersetzen, der irrt... :ugly:

Drunken Officer
22.12.2015, 19:45
Taucht bei deiner Version keine Kiste auf oder bei meiner?

Ich habe es selber getestet, und es kommt eine Kiste. Wie Buli schrieb, Kristallkugel ham'er nicht. Da musst du mal die Hosen runter lassen und dein Script hier einstellen.

Wenn du mit BIS_fnc_addSupportLink arbeitest, taucht es auf. Du mußt die Module benennen. Bei meiner Operation Halmazag funktioniert es auch!
Sieh dir mal das Video bis 02:30 an. Da schnappe ich mir ein Langstreckenfunkgerät und bekomme den Link für die Mörser. Ich habe die Möglichkeit zur Untersützung also an ein Funkgerät gehangen. Ist im Prinzip das Gleiche, was du vorhast. Zu Beginn habe ich die Option nicht, dann habe ich sie.
HObmgatHt9s

Joa666
23.12.2015, 12:14
@Buliwyf:

als normal denkender Mitteleuropäer ist, und war für mich klar, dass wenn ich zu einem Script schreibe, dass es nicht so funktioniert, es eigentlich klar sein sollte dass ich das gepostete Script meine.

Aber dumme Kommentare ist man hier drin ja gewohnt, deswegen hatte ich mir auch lang überlegt überhaupt etwas zu posten.

Zumindest wurde diese Erwartung erfüllt. Danke dafür.

@DrunkenOfficer:

Es geht um dein gepostetes Script. Dort wird keine Kiste angezeigt, bzw abgeworfen.

Ich hab dein gepostetes Script 1:1 übernommen. Weder im Editor noch aufm dem Server wird bei der Anforderung eine Kiste abgeworfen.

Alles andere passt ... die Anforderung über 0 ... 8 ... 1 ist möglich. Die Meldung zum Heli erscheint ... der Heli fliegt an und verschwindet nach der gesetzten Meterzahl ... aber keine Kiste weit und breit.

Davon abgesehen ist mir klar, dass keiner Aussagen zu einem von mir veränderten Script treffen kann ... dies war aber meinerseits nie das Thema.

Aber seis drum ... Danke

Drunken Officer
23.12.2015, 13:29
Kann man auch mal Kritik hin nehmen, ohne ausfällig zu werden? Es war eben nicht klar, wo es Probleme gibt, da dein Beitag zugleich im Kontext zu einer Sanitätsveriante stand.

Ich habe die Änderung im Script rot markiert. Bei mir funktioniert es.

Joa666
23.12.2015, 14:51
Ich gebs auf ... der Heli der kommt und hat nun zwar die geforderte Kiste schön als Slingload dran hängen, aber er fliegt einfach über mich drüber und nimmt die Kiste mit, bis er damit verschwindet ...

Warum es bei dir funzt und bei mir nicht, kann ich mir nicht erklären ...

Aber da es ja eh nur ein Problem von meinem gesamten Komplex ist, lass ich es einfach.

Irgendwie hatte ich gehofft, dass es einen Befehl gibt durch den man ein gesetztes Modul ansprechen kann ... wo immer der dann auch drin stehen mag ... aber das wird wohl wenn dann über den befehl
BIS_fnc_addSupportLink

funktionieren ... Leider sind im Wiki keine Beispiele dazu.


Ich lass es einfach und setz es auf meine Liste.


Irgendwann krieg ich das hin.




Ach ja ... und Kritik kann ich hin nehmen. Und nicht nur dass, Kritik ist wichtig ... solange sie berechtigt ist.


Frohe Feiertage


joa

Drunken Officer
23.12.2015, 15:48
Ich habe keine Ahnung was du falsch machst.

Für was brauchst du bei so einer einfachen Funktion wie BIS_fnc_addsupportlink in Beispiel. Außerdem habe ich dir doch in einem kompletten Beitrag erklärt wie es funktioniert. Da ist sogar ein Beispiel dabei. Sorry, aber wenn du das dann noch immer nicht hinbekommst, kann ich dir leider nicht weiterhelfen.


Description:
Adds support types during a mission.

Parameter(s):
_this select 0: OBJECT - Requester unit
_this select 1: OBJECT - Requester module
_this select 2: OBJECT - Provider module

Returns:
nothing
[derSpielerwelchereshabensoll,DeinAnfordererModul,D einLeisterModul] call bis_fnc_addsupportLink

Joa666
24.12.2015, 07:08
Zum Abschluss folgendes:

Es funktioniert.

Dank der Hilfe von Drunken Officer.

Für alle die das gleiche Problem haben oder haben werden will ich hier die Lösung des Ganzen posten:



Zuerst müsst ihr den Spieler mit Namen (P1) versehen
AnfordererModul (A1) platzieren und benennen
LeisterModul (L1) platzieren und benennen
Die beiden Module syncronisieren
eine Datei im Missionsverzeichnis erstellen mit dem Namen initPlayerlocal.sqf


in diese dann folgende Zeile einfügen



if ( vehicleVarName player == "(P1)") then { [(P1),(A1),(L1)] call bis_fnc_addsupportLink; };

Dies könnt ihr für jegliches LeisterModul wiederholen.

Und schon erscheint das gewählte Icon wenn der Spieler InGame ist.


Solltet ihr einem anderen Spieler ebenfalls Anforderungsrechte geben, ist durch diese Variante das JIP möglich.

Bei Leistern, die zwar das gleiche leisten jedoch ein anderes Fahrzeuig verwenden muss ein ein neuer Anforderer platziert werden.

Das weiter oben eingefügte Script funzt ebenfalls für Supportlieferung.

Danke nochmal an Drunken Officer

Joa