Portal-Zone Gothic-Zone Gothic II-Zone Gothic 3-Zone Gothic 4-Zone Modifikationen-Zone Download-Zone Foren-Zone RPG-Zone Almanach-Zone Spirit of Gothic

 

Ergebnis 1 bis 9 von 9
  1. Beiträge anzeigen #1 Zitieren
    Legend of Ahssûn Avatar von TheEternal
    Registriert seit
    Jun 2013
    Ort
    Frankfurt
    Beiträge
    4.546
     
    TheEternal ist offline

    Tür abschließen.

    Hat schon mal jemand mit Ikarus Türen abgeschlossen, also locked auf 1 gesetzt?
    Laut Anfangspost von Sektenspinner solls ja gehen. Ich weiß aber gar nicht wie ich da rangehen müsste.

    Kann mir einer helfen?
    [Bild: LoA_Banner_Skyline2.jpg]
    LoA Website
    Checkout Cloudevo: unlimited Cloud-Drive


  2. Beiträge anzeigen #2 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.246
     
    Milky-Way ist offline
    Durch die Vobliste iterieren, bis etwas mit dem gewünschten Namen gefunden ist. Das gefundene Objekt als oCMobDoor nutzen. Und dann würde ich mir mal die Eigenschaften
    Code:
        //oCMobLockable  
          var int _oCMobLockable_bitfield;
          var string _oCMobLockable_keyInstance;
          var string _oCMobLockable_pickLockStr;
    ansehen, und dabei den Zustand der Tür variieren.


    Das wäre mein Ansatz gewesen.

  3. Beiträge anzeigen #3 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Mit MEM_SearchVobByName(string name); findest du den Pointer auf deine Tür, Türen sind abgeleitet von oCMobLockable. In der Eigenschaft _oCMobLockable_bitfield sind mehrere Eigenschaften gespeichert (die meistens nur ein oder wenige Bits Platz benötigen), u.a. auch: oCMobLockable_bitfield_locked. Diese Eigenschaft gibt an, ob das Mob verschlossen ist. Wenn du diese Eigenschaft im Bitfeld auf 1 setzen möchtest, geht das so:

    Code:
    var int ptr; ptr = MEM_SearchVobByName("TUER");
    var oCMobLockable mob; mob = _^(ptr);
    mob._oCMobLockable_bitfield = mob._oCMobLockable_bitfield | oCMobLockable_bitfield_locked;
    Nach dem Code sollte die Tür verschlossen sein. Wenn du sie aufschließen willst, benutze
    Code:
    mob._oCMobLockable_bitfield = mob._oCMobLockable_bitfield &~ oCMobLockable_bitfield_locked;

  4. Beiträge anzeigen #4 Zitieren
    Legend of Ahssûn Avatar von TheEternal
    Registriert seit
    Jun 2013
    Ort
    Frankfurt
    Beiträge
    4.546
     
    TheEternal ist offline
    Ok, danke. Ich hatte leider noch keine Zeit die Ikarus Doku zu lesen, aber diesen Code hab ich verstanden.

    Kann ich davon ausgehen, dass die Objekte genauso/fast genauso heißen wie im Spacer? Also oCMobLockable -> Wie im Spacer zB. Türen und Truhen?

    Edit: Oh falsch ausgedrückt. Ich meinte natürlich klassen, die objekte kann man ja selbst wählen den namen.
    [Bild: LoA_Banner_Skyline2.jpg]
    LoA Website
    Checkout Cloudevo: unlimited Cloud-Drive

    Geändert von TheEternal (24.07.2014 um 16:41 Uhr)

  5. Beiträge anzeigen #5 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.246
     
    Milky-Way ist offline
    Ich nehme an, dass Sektenspinner sie so benannt hat. Du kannst sie in den Dateien im "EngineClasses" Ordner von Ikarus aber auch ansehen.

  6. Beiträge anzeigen #6 Zitieren
    Deus
    Registriert seit
    Sep 2008
    Ort
    Stuttgart
    Beiträge
    14.420
     
    Dalai Zoll ist offline
    Ich löse das ganz einfach über den ConditionFunc, ob eine Tür "locked" ist oder nicht. Das wird einfach gefaked.


    Code:
    // So kann man jederzeit über eine Var verändern 
    // ob eine Tür abgeschlossen ist oder nicht.
    // Zum Zeitpunkt "X" einfach per Script umschalten
    // Keinen Schlüsseleintrag in OnStateFunc machen
    var int lockdoor01;
    func int B_LockDoor_01()  // Eintrag im Spacer (B_LOCKDOOR_01)
    {
        if Npc_IsPlayer(self)  // PC_Hero
        {
            if (lockdoor01 == 0)    // Tür offen, kein Schlüssel erforderlich
            {
                return TRUE;
            }    
            else if (lockdoor01 == 1)    // Tür zugeschlossen Schlüssel erforderlich
            && (Npc_HasItems(self, Itke_Key01) > 0)
            {
                return TRUE;
            }        
            else
            {
                PRINT_KeyMissing;
                return FALSE;
            };        
        }
        else                  // alle Npc können durch (immer, ohne Schlüssel haben zu müssen)
        {
            return TRUE;
        };
    };

    Man benötigt nicht für jede Kleinigkeit Ikarus und muss studieren .....

    Edit
    Frage mich sowieso, warum der ConditionFunc so "stiefmütterlich" behandelt wird. Eine der besten Funktionen überhaupt. Man kann damit zum Beispiel

    -das "Item-Doppeln" durch Mobsi-Abbruch (Waffe ziehen) verhindern...

    -wenn NPC im TA etwas aufschliessen, dann ist das auch für den Hero auf, auch wenn er keinen Schlüssel hat, kann man ebenfalls verhindern..

    - Truhen beim ersten mal öffnen per Script befüllen, was den Vorteil hat, dass man nicht immer den Spacer öffnen muss, wenn man noch was reintut, etwas rausnehmen will....

    und vieles mehr.
    EWAGA MOD .... "echtes Gothic"!

    Team 101 Info über die Projekte und Downloaddatenbank:
    http://www.simple-creators.de/GameCo...c_content.html
    Geändert von Dalai Zoll (25.07.2014 um 09:30 Uhr)

  7. Beiträge anzeigen #7 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Niemand muss studieren, um Ikarus zu benutzen, ich z.B. beginne mein Studium erst dieses Wintersemester

    Außerdem kann man mit meiner Variante jede Tür öffnen (indem man z.B. die Tür im Fokus nimmt), dafür müsste man im Spacer jeder Tür eine ConditionFunc geben. Wenn man dafür noch anderen Nutzen hat (weil z.B. viele NPCs durch die Türen gehen oder so), mag das sinnvoll sein, aber meistens wäre das ziemlich viel Aufwand.
    Es ist doch wirklich egal, wie ein Problem gelöst wird, solange beide Lösungen auf das Problem bezogen äquivalent sind.

  8. Beiträge anzeigen #8 Zitieren
    Deus
    Registriert seit
    Sep 2008
    Ort
    Stuttgart
    Beiträge
    14.420
     
    Dalai Zoll ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Niemand muss studieren, um Ikarus zu benutzen, ich z.B. beginne mein Studium erst dieses Wintersemester


    Außerdem kann man mit meiner Variante jede Tür öffnen (indem man z.B. die Tür im Fokus nimmt), dafür müsste man im Spacer jeder Tür eine ConditionFunc geben. Wenn man dafür noch anderen Nutzen hat (weil z.B. viele NPCs durch die Türen gehen oder so), mag das sinnvoll sein, aber meistens wäre das ziemlich viel Aufwand.
    Es ist doch wirklich egal, wie ein Problem gelöst wird, solange beide Lösungen auf das Problem bezogen äquivalent sind.
    Hat auch niemand behauptet, sondern man muss nicht Ikarus studieren um eine Tür zuschliessen oder zu öffnen.
    Und deine Variante interessiert mich nicht! Und meine Variante war nicht an dich gerichtet. Es wird wohl niemand alle seine 200 Türen pausenlos locken und unlocken müssen. Deine Haarspalterei ist absolut unangebracht!


    Hör endlich auf mit deinem Bushing gegen meine Person. Oder hast du die Erlaubnis fast hinter jeden meiner Posts eine unsinnige Bemerkung zu schreiben? Ich mache auch nicht fortwährend Bemerkungen zu Männern in Frauengewändern!
    EWAGA MOD .... "echtes Gothic"!

    Team 101 Info über die Projekte und Downloaddatenbank:
    http://www.simple-creators.de/GameCo...c_content.html
    Geändert von Dalai Zoll (25.07.2014 um 13:10 Uhr)

  9. Beiträge anzeigen #9 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von Dalai Zoll Beitrag anzeigen
    Hat auch niemand behauptet, sondern man muss nicht Ikarus studieren um eine Tür zuschliessen oder zu öffnen.
    Und deine Variante interessiert mich nicht! Und meine Variante war nicht an dich gerichtet. Es wird wohl niemand alle seine 200 Türen pausenlos locken und unlocken müssen. Deine Haarspalterei ist absolut unangebracht!
    Da habe ich dich dann wohl falsch verstanden...

    Naja, doch? Wenn er z.B. einen Zauber scripten möchte, mit dem er eine Tür (die im Fokus) aufschließen möchte, dann muss das für alle möglichen Türen funktionieren. Es geht doch nur darum, auf die Unterschiede in den Lösungsansätzen hinzuweisen.

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
Impressum | Link Us | intern
World of Gothic © by World of Gothic Team
Gothic, Gothic 2 & Gothic 3 are © by Piranha Bytes & Egmont Interactive & JoWooD Productions AG, all rights reserved worldwide