Missionsparameter Auswahl - paramsarray
Ich möchte einen Parameter definieren, der mir es ermöglicht bei Start der Mission auszuwählen ob der Introfilm abläuft oder nicht.
Trotz Suche http://hx3.de/editing-scripting-167/...iplayer-19682/ http://hx3.de/editing-scripting-167/...g-nacht-19685/ bin ich noch nicht auf das gestoßen was ich brauche: Meine description.ext Code:
class Params Code:
//non-JIP player, someone who's went through role selection and briefing Vielen Dank für eure Hilfe! __________________________________________________ ________________________________ So, nach weiterer Suche bin ich darauf gestossen: http://hx3.de/editing-scripting-167/...onieren-18816/ Psychobastard´s Hinweis verhalf zum Durchbruch: Code:
playtime = paramsArray select 0; Code:
//Mission parameters In die globale Variable film wird der Inhalt des paramsArray 0 übergeben. Was genau fragt denn "isNil" ab? Laut BI Wiki: Zitat:
|
Das Intro Skript wird zwar abgespielt doch der 2. Parameter wird nicht übergeben. Wenn in der description.ext der Wert auf 1 gesetzt wird so passiert nix.
Auch das funkt nicht: Code:
if (isNil "film") then {[] exec "intro\film.sqs";} else {[] exec "scripts\faststart.sqs";}; Alles s****e! Wenn irgendjemand ne Lösung hat: BITTTÖÖÖ! Lasst mich nicht dumm sterben :sauf: |
Hi Spider!
beim drüberschauen hab ich jetzt keinen Fehler gefunden. Sollte eigentlich funktionieren. ein Versuch währe die if-then-else Abfrage zu umgehen, ich check nie wie das genau zunzt... Code:
//Mission parameters - IntroMovie Ich glaube auch, du hast .SQF mit SQS vermischt. Du hast eine Init.sqf also musst du alle code-Zeilen mit einem ; abschliessen Code:
//Mission parameters - IntroMovie isNil wird verwendet und zu überprüfen ob eine Variable bereits gesetzt wurde, und einen gültigen Wert hat. z.B. schreib in ein script: Code:
if (isNil "film") then {hintc "film ist nil";}; schreibst du: Code:
film = true; so hab ich das zumindest verstanden... mann kann auch nicht mehr benöltigte Variablen zustören: Code:
variableToDestroy = nil; Bitte korrigiert mich wenn ich falsch liege! :) |
*deleted*
Xeno |
@Xeno
Wenn du nur einen Bruchteil deines Wissens so an den Mann bringen könntest, daß es der durchschnittliche Missionsersteller verstehen kann… Ich wäre darüber jedenfalls überglücklich, da ich das leidige „global – Thema“ noch nie komplett verstanden habe, um es universell einzusetzen. |
*deleted*
Xeno |
Dazu noch eine Frage:
Zitat:
Zitat:
|
@ Xeno
Danke für die guten Erklärungen! jetzt hab ich beim Versuch Spiderman zu helfen selbst ne Menge gelernt :) Der letzte Codeschnipsel ist ja mal genial, da muss ich meine Missionen nicht ganz so oft als MPmission exportieren um zu testen. |
Zitat:
Xeno |
Zitat:
|
Zitat:
Da wäre ich gerne bereit Geld für auszugeben. |
Liste der Anhänge anzeigen (Anzahl: 1)
Den "Scripting Guide" auf Deutsch würde ich mir auch einiges kosten lassen….
Ich würde gern einen zusätzlichen Parameter in ein fertiges Parametersystem (von Bon_Inf) einbauen, diese klappt aber leider nicht, egal was ich auch versuche. Dieser Parameter soll darüber entscheiden, ob ein Respawn an einem bestimmten Ort sofort ausgeführt werden soll oder ob man warten muß bis andere Teammitglieder gestorben sind, um dann mit diesen zusammen wieder zur Hauptgruppe zu stoßen, welches wiederum das Teamplay fördern könnte. Die Description: class Params { //paramsArray[0] class tfor_daytime { title="Tageszeit"; values[]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1 9,20,21,22,23}; default=10; texts[]={"0000","0100","0200","0300","0400","0500","0600" ,"0700","0800","0900","1000","1100","1200","1300", "1400","1500","1600","1700","1800","1900","2000"," 2100","2200","2300"}; }; //paramsArray[1] class tfor_max_death_per_mission { title="max. Tode / Mission"; values[]={999999,20,10,3}; default=10; texts[]={"unbegrenzt","20 - Einfach","10 - Normal","3 - Schwer"}; }; //paramsArray[2] class tfor_injury_system { title="Verletzungen nach Wiederbeleben"; values[]={0,2,3,5,7}; default=3; texts[]={"keine","geringe","Normal","schwere","sehr schwere"}; }; //paramsArray[3] class tfor_injury_system_agony { title="Chance zum Wiederbeleben"; values[]={1,5,10,100}; default=5; texts[]={"keine","Normal","hohe","garantiert"}; }; ///////////////////////////////////////////////////////////////////////////////////////////// // um diesen Parameter geht es //paramsArray[4] class tfor_warteplatz { title="Wieviel Spieler werden fuer Respawn benoetigt"; values[]={0,1,2}; default=1; texts[]={"einer","zwei","gesamte Gruppe"}; }; ///////////////////////////////////////////////////////////////////////////////////////////////// Die Init: if(isNil "tfor_deathcount") then {tfor_deathcount = 0}; // Wieviel Spieler tot sein müssen, damit diese wieder gerespawnt werden können ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // um diesen Parameter geht es tfor_warteplatz = paramsArray select 0; if (tfor_warteplatz == 0) then {hint "so ein Scheiss, wieso wird hier nichts ausgefuehrt?"}; if (tfor_warteplatz == 1) then {execVM "sqf\Param2Spieler.sqf"}; if (tfor_warteplatz == 2) then {nul = [] execVM "sqf\ParamalleSpieler.sqf"}; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// if(isNil "paramsArray") then{ paramsArray = [ 11, // Time of Day 16, // max death per mission 3, // Injury System 5 // Injury System Agony ]; }; tfor_daytime = paramsArray select 0; //Server setVariable ["tfor_daytime",tfor_daytime,false]; tfor_max_death_per_mission = paramsArray select 1; //Server setVariable ["tfor_max_death_per_mission",tfor_max_death_per_mi ssion,false]; tfor_injurysystem = paramsArray select 2; //Server setVariable ["tfor_injurysystem",tfor_injurysystem,false]; tfor_injurysystem_agony = paramsArray select 3; //Server setVariable ["tfor_injurysystem_agony",tfor_injurysystem_agony, false]; Könnte sich bitte jemand dieses Beispiel angucken? Schon mal Danke im Voraus! Gruß Rettich |
tfor_warteplatz ist in deiner description.ext paramsarray select 4 aber in der Init.sqf tust du es als Paramysarray select 0 deklarieren. belass es doch bei 4 und es geht.
tfor_warteplatz = paramsArray select 4; if (paramsarray select 4 == 0) then {hint "jetzt gehdor!"}; if (paramsarray select 4 == 1) then {execVM "sqf\Param2Spieler.sqf"}; if (paramsarray select 4 == 2) then {nul = [] execVM "sqf\ParamalleSpieler.sqf"}; |
Danke Moerderhoschi! :daumen:
Jetzt hab ich das endlich mal kapiert. :juhu: Da die Nummerierung in der Description immer durch die // unwirksam gemacht wird, dachte ich bisher, dass diese nur der Übersicht dient. |
Vielen Dank für die Hilfe Xeno und SmartGun!
Thema paramsarray! Ihr kennt das?! Die Spielzeit wurde im paramsarray auf morgens gesetzt, mit Nachsichtgerät seit ihr durch die Wälder gestapft. Nun, nach einer Stunde Spielzeit ist die Sonne hoch am Himmel und ihr strakt bereits mit den ersten paar Bier im Bauch vor einer Kneipe in Chernogorsk. Da kommt ein JIP Spieler um die Ecke und behauptet steif und fest: Nein, bei ihm sei es nacht und dunkel wie im A**** von der Merkel, deswegen habe er immer noch das Nachtsichtgerät auf. Da hat doch der Server wieder mal nicht die Zeit mit den Clients synchronisiert, verdammt! Lösung: 1. description.ext Code:
class Params Code:
//non-JIP player, someone who's went through role selection and briefing a) server_time_boardcast.sqf Code:
while {isserver} do Code:
waituntil {player == player}; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:05 Uhr. |
Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias