Ergebnis 1 bis 7 von 7
  1. #1
    12 of 5 Avatar von FastBow
    Registriert seit
    23.02.2011
    Beiträge
    16
    Downloads
    0
    Uploads
    0

    Standard Briefing hilfe gesucht!

    Auf manchen Karten kommen Briefings bei denen die Dialoge eine bestimmte Zeit andauern und die man nicht mit Esc abbrechen kann!
    Aber wie macht man diese?

    Grüße FastBow

  2. #2
    Sägewerker Avatar von Flodder
    Registriert seit
    12.07.2006
    Ort
    Wilstedt (Niedersachsen)
    Beiträge
    180
    Downloads
    0
    Uploads
    0

    Standard AW: Briefing hilfe gesucht!

    Zitat Zitat von FastBow Beitrag anzeigen
    Auf manchen Karten kommen Briefings bei denen die Dialoge eine bestimmte Zeit andauern und die man nicht mit Esc abbrechen kann!
    Aber wie macht man diese?

    Grüße FastBow
    Muster:
    Code:
    function SchmiedHaradBrief2()
    	local briefing = {noEscape=true} -- Dann muss in den geschweiften Klammer noEscape=true stehen!
    	BRIEFING_TIMER_PER_CHAR = 0.8 -- ist die Zeit pro Zeichen im Text
    	local AP, ASP = AddPages(briefing);
    	ASP("hero","Hero","Eine Orkaxt? Wo soll ich die denn herbekommen?", true)
    	ASP("harad","Harad","Bei den Orks natürlich, du Hirni!", true)
    	briefing.finished = function()
    	--Hier dann Folgefunktionen rein
    	end;
    	StartBriefing(briefing);
    end
    Wichtiger Hinweis:
    Um Briefings in diesem sog. "Neuen Briefingstil" realisieren zu können,
    muss folgendes gemacht werden:

    1. Eintrag in die FMA:
    Code:
    ActivateBriefingsExpansion()
    In die Comfort-Abteilung dann reinkopieren:
    Code:
    function AddPages( _briefing )
        local AP = function(_page) table.insert(_briefing, _page); return _page; end
        local ASP = function(_entity, _title, _text, _dialog, _explore) return AP(CreateShortPage(_entity, _title, _text, _dialog, _explore)); end
        return AP, ASP;
    end
    function CreateShortPage( _entity, _title, _text, _dialog, _explore) 
        local page = {
            title = _title,
            text = _text,
            position = GetPosition( _entity ),
    		action = function ()Display.SetRenderFogOfWar(0) end
        };
        if _dialog then 
                if type(_dialog) == "boolean" then
                      page.dialogCamera = true; 
                elseif type(_dialog) == "number" then
                      page.explore = _dialog;
                end
          end
        if _explore then 
                if type(_explore) == "boolean" then
                      page.dialogCamera = true; 
                elseif type(_explore) == "number" then
                      page.explore = _explore;
                end
          end
        return page;
    end
    function ActivateBriefingsExpansion()
        if not unpack{true} then 
            local unpack2;
            unpack2 = function( _table, i )
                                i = i or 1;
                                assert(type(_table) == "table");
                                if i <= table.getn(_table) then
                                    return _table[i], unpack2(_table, i);
                                end
                            end
            unpack = unpack2;
        end
        
        Briefing_ExtraOrig = Briefing_Extra;
        
        Briefing_Extra = function( _v1, _v2 )
                             for i = 1, 2 do
                                 local theButton = "CinematicMC_Button" .. i;
                                 XGUIEng.DisableButton(theButton, 1);
                                 XGUIEng.DisableButton(theButton, 0);
                             end
                             
                             if _v1.action then
                                 assert( type(_v1.action) == "function" );
                                 if type(_v1.parameters) == "table" then 
                                     _v1.action(unpack(_v1.parameters));
                                 else
                                     _v1.action(_v1.parameters);
                                 end
                             end
                             
                             Briefing_ExtraOrig( _v1, _v2 );
                         end;
        
        GameCallback_EscapeOrig = GameCallback_Escape;
        StartBriefingOrig = StartBriefing;
        EndBriefingOrig = EndBriefing;
        MessageOrig = Message;
        CreateNPCOrig = CreateNPC;
        
        StartBriefing = function(_briefing)
                            assert(type(_briefing) == "table");
                            if _briefing.noEscape then
                                GameCallback_Escape = function() end;
                                briefingState.noEscape = true;
                            end
                            
                            StartBriefingOrig(Umlaute(_briefing));
                        end
        
        EndBriefing = function()
                          if briefingState.noEscape then
                              GameCallback_Escape = GameCallback_EscapeOrig;
                              briefingState.noEscape = nil;
                          end
                          
                          EndBriefingOrig();
                      end;
        
        Message = function(_text)
                      MessageOrig(Umlaute(tostring(_text)));
                  end;
        
        CreateNPC = function(_npc)
                        CreateNPCOrig(Umlaute(_npc));
                    end;
        
        Umlaute = function(_text)
                      local texttype = type(_text);
                      if texttype == "string" then
                          _text = string.gsub( _text, "ä", "\195\164" );
                          _text = string.gsub( _text, "ö", "\195\182" );
                          _text = string.gsub( _text, "ü", "\195\188" );
                          _text = string.gsub( _text, "ß", "\195\159" );
                          _text = string.gsub( _text, "Ä", "\195\132" );
                          _text = string.gsub( _text, "Ö", "\195\150" );
                          _text = string.gsub( _text, "Ü", "\195\156" );
                          return _text;
                      elseif texttype == "table" then
                          for k, v in _text do
                              _text[k] = Umlaute( v );
                          end
                          return _text;
                      else return _text;
                      end
                  end;
    end
    Einmal drin, nimmt Dir diese Comfort-Funktion jede Menge Arbeit
    bei der Erstellung von Briefings im "neuen Briefingstil" ab und um die Umlaute braucht man sich auch nicht mehr zu kümmern!
    Geändert von Flodder (01.03.2011 um 10:17 Uhr)
    Sinnlos ist ein Leben ohne Sinn für nnisnU!

  3. #3
    Sägewerker Avatar von Flodder
    Registriert seit
    12.07.2006
    Ort
    Wilstedt (Niedersachsen)
    Beiträge
    180
    Downloads
    0
    Uploads
    0

    Standard AW: Briefing hilfe gesucht!

    Noch etwas:
    Falls alle Biefings nicht per Excape abgebrochen werden sollen, genügt es, wenn man in die FMA folgende Zeile einfügt:
    Code:
    GameCallback_Escape = function() end;
    ...dann sind alle Briefings von vornherein nicht mehr mit Escape abbrechbar. Das gilt dann auch für den "herkömmlichen Briefingstil"
    Sinnlos ist ein Leben ohne Sinn für nnisnU!

  4. #4
    12 of 5 Avatar von FastBow
    Registriert seit
    23.02.2011
    Beiträge
    16
    Downloads
    0
    Uploads
    0

    Standard AW: Briefing hilfe gesucht!

    Okay, das ist echt ne coole Sache!

    Man kann also den "Neuen Briefingstil" für schnelle Briefings hernehmen,
    aber kann man den alten denn noch zusätzlich benutzen?

    Grüße und danke für die gute Lösung
    FastBow

    PS:
    Am besten geht man hinter die Burg, dort findet man im graben eine alte Orkaxt!
    Oder die ganz harten können sich mit dem Ork,abseits in der Höhle schlägern!

  5. #5
    Sägewerker Avatar von Flodder
    Registriert seit
    12.07.2006
    Ort
    Wilstedt (Niedersachsen)
    Beiträge
    180
    Downloads
    0
    Uploads
    0

    Standard AW: Briefing hilfe gesucht!

    Zitat Zitat von FastBow Beitrag anzeigen
    Okay, das ist echt ne coole Sache!
    Man kann also den "Neuen Briefingstil" für schnelle Briefings hernehmen...
    Den kann man für alle Briefings verwenden. Egal, ob lang oder kurz. Die Länge eines Briefings hängt ja nur von der Menge der Textzeilen ab. Einer der Vorteile des "neuen Stils" ist die "Kompaktheit". Bedeutet: Viel weniger Zeilen und manch andere Dinge, die schon die dazugehörende Comfort-Funktion automatisch regelt. Mit sehr geringen Aufwand kann man zudem im neuen Stil zur Briefinglaufzeit weitere Dinge ablaufen lassen.

    Irgendwie habe ich das Gefühl, dass Du Dich gegen Comfort-Funktionen wehrst. Ich kann Dir aber jetzt schon versichern, dass Du ohne sie bei komplexen Abläufen nicht auskommen wirst. Erst recht dann nicht, wenn in der Map "highlights" ablaufen sollen. Warum auch wehren? Comforts tuhen niemandem weh, egal ob man sie verwendet oder nicht. Nicht aufgerufen liegen sie ja nur soz. "Auf Lauer".

    Bei Verwendung des Tinytools ist die Skriptmenge unbedeutend. 4MB Skript, wird man sowieso kaum erreichen.
    Zitat Zitat von FastBow Beitrag anzeigen
    ...aber kann man den alten denn noch zusätzlich benutzen?
    Eine Mischung ist kein Problem. Jederzeit möglich.
    Zitat Zitat von FastBow Beitrag anzeigen
    PS:
    Am besten geht man hinter die Burg, dort findet man im graben eine alte Orkaxt!
    Oder die ganz harten können sich mit dem Ork,abseits in der Höhle schlägern!
    Das Letztere wird gefordert!
    Mehr wird aber noch nicht verraten!

    Gruss
    Flodder
    Sinnlos ist ein Leben ohne Sinn für nnisnU!

  6. #6
    12 of 5 Avatar von FastBow
    Registriert seit
    23.02.2011
    Beiträge
    16
    Downloads
    0
    Uploads
    0

    Standard AW: Briefing hilfe gesucht!

    Hey!?*lächel* Ich wehre mich ja garnicht gegen Comfort-funktionen.
    Im Gegensatz : Ich finde sie sehr praktisch. Aber kann man den in dem neuen Stil auch
    Marker und pointer setzen. Das Problem ist das ich mich da nicht so gut auskenne!
    Ich werde mein bestes geben den Neuen stil zu lernen!

    LG
    FastBow

  7. #7
    Sägewerker Avatar von Flodder
    Registriert seit
    12.07.2006
    Ort
    Wilstedt (Niedersachsen)
    Beiträge
    180
    Downloads
    0
    Uploads
    0

    Standard AW: Briefing hilfe gesucht!

    Zitat Zitat von FastBow Beitrag anzeigen
    Aber kann man den in dem neuen Stil auch
    Marker und pointer setzen.
    Sicher! Kein Problem.
    Sinnlos ist ein Leben ohne Sinn für nnisnU!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Ähnliche Themen

  1. Skriptproblem Briefing
    Von Fidelio1958 im Forum S6 Scriptecke
    Antworten: 3
    Letzter Beitrag: 19.12.2008, 20:50
  2. Briefing hilfe bei ende
    Von Poldi im Forum S6 Scriptecke
    Antworten: 2
    Letzter Beitrag: 10.03.2008, 18:32

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •