Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 27.01.2010, 09:45   #1 (permalink)
500 Beiträge
 
Benutzerbild von Anemia
 
Registriert seit: 20.05.2009
Beiträge: 605
Standard Zufällige - Missionsziele

Hallo allerseits,
ich bastel derzeit an einer Mission "WayToVictory" die sich derzeit in der beta Phase befindet:

=NAG= :: Thema anzeigen - Way to Victory - [TvT_16]

Momentan ist die mission so aufgebaut das jede fraktion 2 fest definierte ziele hat, die zu erledigen sind. Um die ganze sache aber etwas spannender zu machen hätte ich gerne das bei jedem neustart der mission für jede Seite 2 - 3 zufällige ziele festgelegt werden, die ich vorher zusammengestellt habe.

Also aus einem Pool von 10 Aufgaben pro seite soll dann beim Missionsstart für jede seite zwei zufällige ausgesucht werden.

Irgendjemand eine idee dazu !?
Scripten kann ich selbst leider nicht .... ich kann scripts verändern .. aber keine eigenen schreiben
Anemia ist offline  
Alt 27.01.2010, 11:00   #2 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Buccs
 
Registriert seit: 03.10.2006
Ort: Aus dem Oooosten
Alter: 53
Beiträge: 1.286
Standard

Also bei Cipher wird jedesmal ein neues Missionsziel bei Missionsstart generiert. Vielleicht guckst du da mal rein und kannst dir was abschauen.

http://www.armaholic.com/page.php?id=6768
Buccs ist offline  
Alt 27.01.2010, 11:24   #3 (permalink)
500 Beiträge
 
Benutzerbild von Anemia
 
Registriert seit: 20.05.2009
Beiträge: 605
Standard

Zitat von Buccs Beitrag anzeigen

Also bei Cipher wird jedesmal ein neues Missionsziel bei Missionsstart generiert. Vielleicht guckst du da mal rein und kannst dir was abschauen.

Cipher Co-10 - Armaholic.com



Die mission kenne ich auch , allerdings ist es da ja immer das gleiche missionsziel .. nur die Lokation ändert sich , das ist ja aber nicht das was ich will
Anemia ist offline  
Alt 27.01.2010, 11:33   #4 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Buccs
 
Registriert seit: 03.10.2006
Ort: Aus dem Oooosten
Alter: 53
Beiträge: 1.286
Standard

Stimmt schon, aber es wird bei Cipher aus einem Pool an Locations eins per Zufall ausgewählt.
So weit weg von deinen Plänen ist das vielleicht nicht. Es sind möglicherweise nur die Parameter abzuändern.
Buccs ist offline  
Alt 27.01.2010, 12:16   #5 (permalink)
10 Jahre hx3
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Saint
 
Registriert seit: 04.01.2008
Alter: 50
Beiträge: 314
Standard

Hallo Ihr Lieben,

eine Lösungsmöglichkeit (sehr rudimentär.... ): ....und ungetestet
Code:
// tasks definieren

_title = localize "str_task1";
_desc = localize "str_task1_desc";
_descshort = localize "str_task1_descshort";
_descdispl = localize "str_task1_descdispl";
_task = player createsimpletask [_title];
_task setsimpletaskdescription [_desc, _descshort, _descdispl];
_task setsimpletaskdestination (getmarkerpos "ziel1m");
task1 = _task;
_title = localize "str_task2";
_desc = localize "str_task2_desc";
_descshort = localize "str_task2_descshort";
_descdispl = localize "str_task2_descdispl";
_task = player createsimpletask [_title];
_task setsimpletaskdescription [_desc, _descshort, _descdispl];
_task setsimpletaskdestination (getmarkerpos "ziel2m");
task2 = _task;
.
.
.
taskn = _task


// taskpool definieren

if (isnil "taskpool") then { taskpool = ["a","b","c","d",...,"n"] };

//tasks auswählen aus taskpool
_tasks = taskpool;

waitUntil { (count _tasks) > 0};
_selecttask = round random ((count _tasks)-1);
_task = (_tasks select _selecttask);

[_task] execVM execvm "randomtask.sqf";

//randomtask.sqf
_task  = _this select 0;
switch (_task) do
{
    case "a":
    {
        taskhint [localize "str_tasksetcurrent",[1,1,1,1], "taskcurrent"];player setcurrenttask task1  
/*hier lassen sich beliebig viele weitere goodies einbauen (z.b gegner/camps/vehicles/auslöser/marker werden gespawnt, u.v.m */
    };
    case "b":
    {
        taskhint [localize "str_tasksetcurrent",[1,1,1,1], "taskcurrent"];player setcurrenttask task2
    };
    case "c":
    {
        taskhint [localize "str_tasksetcurrent",[1,1,1,1], "taskcurrent"];player setcurrenttask task3    
    };
    .
    .
    .
    case "n":
    {
        taskhint [localize "str_tasksetcurrent",[1,1,1,1], "taskcurrent"];player setcurrenttask taskn    
    };
};
__________________
"Um nirgends eine gähnende Leere zu lassen, wollen wir uns vorstellen, daß aller Orten und zu jeder Zeit etwas Wahrnehmbares vorhanden ist. Um nicht Materie oder Elektrizität zu sagen, will ich für dieses Etwas das Wort Substanz brauchen."

Hermann Minkowski

Geändert von Saint (27.01.2010 um 12:32 Uhr).
Saint ist offline  
Alt 28.01.2010, 07:26   #6 (permalink)
500 Beiträge
 
Benutzerbild von Anemia
 
Registriert seit: 20.05.2009
Beiträge: 605
Standard

Danke Bo ,
habs leider noch nicht testen können aber das sieht schonmal ganz gut aus , derzeit benutze ich ein Briefing Template von Mikey

das ganze sieht so aus:

Code:
/*
  *    Mikey's Briefing Template v0.03
  *
  *
  *    Notes: 
  *        - Use the tsk prefix for any tasks you add. This way you know what the varname is for by just looking at it, and 
  *            aids you in preventing using duplicate variable names.
  *
  *
  *        Required briefing commands:        
  *        - Create Note:            player createDiaryRecord ["Diary", ["*The Note Title*", "*The Note Message*"]]; 
  *        - Create Task:            tskExample = player createSimpleTask ["*The Task Title*"];
  *        - Set Task Description:    tskExample setSimpleTaskDescription ["*Task Message*", "*Task Title*", "*Task HUD Title*"];
  *
  *        Optional briefing commands:
  *         - Set Task Destination:    tskExample setSimpleTaskDestination (getMarkerPos "mkrObj1");  // use an existing marker!
  *        - Set the Current Task:    player setCurrentTask tskExample;
  *        
  *        Formatting:
  *        - To add a newline:         <br/>
  *        - To add a marker link:    <marker name='mkrObj1'>Attack this area!!!</marker>
  *        - To add an image:         <img image='somePic.jpg'/> 
  *           - custom width/height:    <img image='somePic.jpg' width='200' height='200'/>
  *        
  *        Commands to use in-game:
  *        - Set Task State:        tskExample setTaskState "SUCCEEDED";   // states: "SUCCEEDED"  "FAILED"  "CANCELED" "CREATED"
  *        - Get Task State:        taskState tskExample;
  *        - Get Task Description:    taskDescription tskExample;   // returns the *task title* as a string
  *        - Show Task Hint:        [tskExample] call mk_fTaskHint;  // make sure tskExample and the mk_fTaskHint function exist
  *                            
  *
  *    Authors: Jinef & mikey
  */

// since we're working with the player object here, make sure it exists
waitUntil { !isNull player }; // all hip now ;-)
waitUntil { player == player };



switch (side player) do 
{
    
    case WEST: // BLUFOR briefing goes here
    {
        player createDiaryRecord["Diary", ["Info", "<br/>Autor: =NAG= Anemia<br/>Version: 1.5"]];
        player createDiaryRecord["Diary", ["Situation", "<br/>Die Russischen Einheiten haben sich im Norden eingegraben.<br/>Sie nehmen alles mit ihrem Mörser unter beschuss was ihnen unter die Augen kommt.<br/><br/>Eines unserer vorgelagerten Sanitäts Einrichtungen benötigt dringend neues Benzien um die Stromgeneratoren am laufen zu halten. Ohne Strom ist dieses Lager nutzlos."]];
        player createDiaryRecord["Diary", ["Mission", "<br/>Das Lazaret in <marker name='lopatino'>Lopatino</marker> benötigt dringend Treibstoff um die Stromgeneratoren am laufen zu halten.<br/>Wir müssen den Treibstoff-LKW sicher nach <marker name='lopatino'>Lopatino</marker> bringen."]];



        // Secondary Objective
        
        //>---------------------------------------------------------<
        // Primary Objective
        tskwest1 = player createSimpleTask["Primary: Treibstoff-LKW"]; 
        tskwest1 setSimpleTaskDescription["Wir müssen den Treibstoff LKW von <marker name='pulkowo'>Pulkowo</marker> nach <marker name='lopatino'>Lopatino</marker>  zu unserem Lazaret bringen.<br /><br />Der Feind darf unter keinen Umständen den LKW erbeuten", "Treibstoff-LKW", "Treibstoff-LKW"];
        player setCurrentTask tskwest1;

// weitere Missionsziele bisher im Editor über Trigger
    
    };
    case EAST: // REDFOR briefing goes here
    {
        
        player createDiaryRecord["Diary", ["Info", "<br/>Autor: =NAG= Anemia<br/>Version: 1.5"]];
        player createDiaryRecord["Diary", ["Situation", "<br/>Der Wiederstand breitet sich im Westen immer weiter aus. Wir müssen unbedingt Städte unter Kontrolle bringen, bevor die US-Einheiten uns zuvor kommen."]];
        player createDiaryRecord["Diary", ["Mission", "<br/>Wir müssen <marker name='pustoschka'>Pustoschka</marker> vom Feindlichen Wiederstand befreihen, bevor uns die US-Einheiten zuvor kommen."]];



        // Secondary Objective


        //>---------------------------------------------------------<
        // Primary Objective
        tskeast1 = player createSimpleTask["Primary: Pustoschka einnehmen"]; 
        tskeast1 setSimpleTaskDescription["Wir müssen <marker name='pustoschka'>Pustoschka</marker> vom Feindlichen Wiederstand befreihen, bevor uns die US-Einheiten zuvor kommen.", "Pustoschka einnehmen", "Pustoschka einnehmen"];
        tskeast1 setSimpleTaskDestination (getMarkerPos "pustoschka");
        player setCurrentTask tskeast1;


// weitere Missionsziele bisher im Editor über Trigger
        
    };
    
    
    case RESISTANCE: // RESISTANCE/INDEPENDENT briefing goes here
    {
    
        player createDiaryRecord["Diary", ["Info", "<br/>Autor: =NAG= Anemia<br/>Version: 1.5"]];
        player createDiaryRecord["Diary", ["Situation", "<br/>Benzin ist knapp in diesen zeiten, die meisten Tankstellen sind seid Wochen geschlossen weil sie keine Treibstoff-Lieferung mehr bekommen.<br/><br/>Die USA hat ein Handelsboykott über Tschernaruss verhängt, ohne Rücksicht auf die Zivile Bevölkerung.<br/>Also werden wir uns von ihnen Treibstoff besorgen müssen."]];
        player createDiaryRecord["Diary", ["Mission", "<br/>Wir haben einen Funkspruch des US-Lazarets in <marker name='lopatino'>Lopatino</marker> abgefangen.<br/>Sie benötigen dringend Treibstoff aus dem US-Stützpunkt in der nähe von <marker name='pulkowo'>Pulkowo</marker>.<br/><br/>Das ist unsere Chance !!<br/> Wir müssen den LKW unbeschadet entführen."]];
        

        // Secondary Objective
        

        //>---------------------------------------------------------<
        // Primary Objective
        tskgue1 = player createSimpleTask ["Treibstoff-LKW Sicherstellen"];
        tskgue1 setSimpleTaskDescription ["<br/>Wir haben einen Funkspruch des US-Lazarets in <marker name='lopatino'>Lopatino</marker> abgefangen.<br/>Sie benötigen dringend Treibstoff aus dem US-Stützpunkt in der nähe von <marker name='pulkowo'>Pulkowo</marker>.<br/><br/> Wir müssen den LKW unbeschadet entführen.<br/>", "Treibstoff-LKW", "Treibstoff-LKW"];
        player setCurrentTask tskgue1;

// weitere Missionsziele bisher im Editor über Trigger            
        
    };
    
    
    case CIVILIAN: // CIVILIAN briefing goes here
    {
        
        
    };
};
Ich brauche halt für alle 3 seiten "eigene" Ziele. Da die anderen Parteien vorher nicht wissen sollen was die "gegner" für aufgaben haben.

Derzeit ist pro Partei nur ein Ziel in der Briefing.sql definiert , das zweite Ziel wird jeweils per auslöser hinzugefügt.
Es währe nun nicht das Problem wenn beide Missionsziele der jeweiligen Partei von anfang an bekannt sind.

Hast du vielleicht eine idee wie ich das bewerkstellige ?!
Anemia ist offline  
Alt 28.01.2010, 12:10   #7 (permalink)
10 Jahre hx3
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Saint
 
Registriert seit: 04.01.2008
Alter: 50
Beiträge: 314
Standard

Ich nutze das Briefing Template von Lester und Rettich.

Evtl. würde sich dort eine "player side" Abfrage integrieren lassen, habe ich allerdings noch nicht ausprobiert.

Ein Vorteil von Lesters Template ist, dass man alle Tasks vordefinieren kann, sie dann "unsichtbar" macht, um sie anschließend bei Bedarf zu aktivieren.

Das Template bekommst du hier am Ende des ersten Posts, dort ist es angehängt.
__________________
"Um nirgends eine gähnende Leere zu lassen, wollen wir uns vorstellen, daß aller Orten und zu jeder Zeit etwas Wahrnehmbares vorhanden ist. Um nicht Materie oder Elektrizität zu sagen, will ich für dieses Etwas das Wort Substanz brauchen."

Hermann Minkowski
Saint ist offline  
Alt 28.01.2010, 21:22   #8 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Rettich
 
Registriert seit: 06.04.2008
Ort: bei Kiel
Alter: 50
Beiträge: 313
Rettich eine Nachricht über Skype™ schicken
Standard

Wie Onkel Bo schon sagte, mit Lesters Briefing müsste es gehen habe auch schon mehrere Seiten im Briefing integriert. Und im Nachhinein müsste man auch per Skript neue Ziele kreieren können, es geht jedenfalls mit den Notizen.

Guck dir mal diese Mission an, sie ist zwar noch nicht ganz fertig, aber aus den enthaltenen Skripten müsstest du dir etwas basteln können. Für dich sollte insbesondere die „Briefing.sqf“, „Hintergrund.sqf“ und z.B. „RandomFunkDolina.sqf“ wichtig sein.
Angehängte Dateien
Dateityp: rar Kamp_V139.Chernarus.rar (284,9 KB, 63x aufgerufen)
Rettich ist offline  
Alt 29.01.2010, 01:22   #9 (permalink)
500 Beiträge
 
Benutzerbild von Anemia
 
Registriert seit: 20.05.2009
Beiträge: 605
Standard

Zitat von Rettich Beitrag anzeigen

Wie Onkel Bo schon sagte, mit Lesters Briefing müsste es gehen habe auch schon mehrere Seiten im Briefing integriert. Und im Nachhinein müsste man auch per Skript neue Ziele kreieren können, es geht jedenfalls mit den Notizen.

Guck dir mal diese Mission an, sie ist zwar noch nicht ganz fertig, aber aus den enthaltenen Skripten müsstest du dir etwas basteln können. Für dich sollte insbesondere die „Briefing.sqf“, „Hintergrund.sqf“ und z.B. „RandomFunkDolina.sqf“ wichtig sein.


Ok .. danke ich werds mir mal anschauen
Anemia ist offline  
 


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
Missionsziele/Briefing und Missionsdateien Mr.NiceGuy Editing & Scripting 27 25.03.2010 12:53
Zufällige Position einer Einheit/Objekt Phoenixmaster13 Editing & Scripting 8 31.12.2009 14:35
Coop Lag und Missionsziele Mr.NiceGuy Multiplayer 18 22.08.2009 16:28
Zufällige Wegpunkte daniel123 Editing & Scripting 12 10.07.2009 21:45
Missionsziele abhaken+nächstes Ziel Mr.NiceGuy Editing & Scripting 5 16.06.2009 18:19


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 117 118 119