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
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline

    Pfx-Effekte auf Items

    Hey. In Gothic 2 werden ja irgendwie Pfx-Effekte über Items gelegt. Bei Tränken und Spruchrollen zum Beispiel.
    In der Gothic 1 Alpha war das auch mal drin. War aber immer verbugged. Hat jemand mal versucht, das in Gothic 1 zu integrieren oder kann mir jemand sagen, wie das in Gothic 2 realisiert wurde und ob das theoretisch machbar ist?
    Phoenix Dev | Website | Discord

  2. Beiträge anzeigen #2 Zitieren
    Abenteurer
    Registriert seit
    Aug 2018
    Beiträge
    52
     
    Feiger Scavenger ist offline
    Eigentlich ist das ganz einfach, Wenn du dir die Tränke Scripts anschaust, solltest du schnell erkennen wie man das hin bekommt.
    Man muss im Item Script einfach zwei Einträge machen.

    Code:
    wear                =     WEAR_EFFECT;
        effect                =    "SPELLFX_WEAKGLIMMER_BLUE";
    Bei "SPELLFX_???" gibt es noch mehr Effekte die so anfangen, das bestimmt dann den visuellen Effekt, irgendwo gab es dazu mal eine Liste
    Funktioniert bei jeden Item / Rüstung.

    Im Item script sieht das dann wie folgt aus.

    Code:
    INSTANCE ItPo_Mana_03(C_Item){
        name             =    NAME_Trank;
    
    
        mainflag         =    ITEM_KAT_POTIONS;
        flags             =    ITEM_MULTI;
    
    
        value             =    Value_ManaElixier;    
    
    
        visual             =    "ItPo_Mana_03.3ds";
        material         =    MAT_GLAS;
        on_state[0]        =    UseItPo_Mana_03;
        scemeName        =    "POTIONFAST";
    
    
        wear            =     WEAR_EFFECT;
        effect            =    "SPELLFX_MANAPOTION";
    
    
        description        =     "Mana Elixier";
        
        TEXT[1]            =     NAME_Bonus_Mana;                
        COUNT[1]        =     Mana_Elixier;
        
        TEXT[5]            =     NAME_Value;                    
        COUNT[5]        =     Value_ManaElixier;
    };

  3. Beiträge anzeigen #3 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline
    Ja in Gothic 2, Gothic 1 kennt diese Funktion "effect" aber gar nicht, wie mir scheint.
    Phoenix Dev | Website | Discord

  4. #4 Zitieren
    Illari
    Gast
     
    Zitat Zitat von lali Beitrag anzeigen
    Ja in Gothic 2, Gothic 1 kennt diese Funktion "effect" aber gar nicht, wie mir scheint.
    Ich denke so einfach wird das nicht. Du musst sicherlich die PFX in die System Scripts einfügen.
    Also unter _work\Data\Scripts\System\PFX.
    Wenn es mal ein Teil der Engine war wird es entweder dort noch auskommentiert stehen oder du musst anfangen es zu reproduzieren. Weiss ja nicht ob es eine Version von Gothic im world wide web gibt die dieses noch als beispiel irwo enthält

  5. Beiträge anzeigen #5 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline
    Zitat Zitat von Illari Beitrag anzeigen
    Ich denke so einfach wird das nicht. Du musst sicherlich die PFX in die System Scripts einfügen.
    Also unter _work\Data\Scripts\System\PFX.
    Wenn es mal ein Teil der Engine war wird es entweder dort noch auskommentiert stehen oder du musst anfangen es zu reproduzieren. Weiss ja nicht ob es eine Version von Gothic im world wide web gibt die dieses noch als beispiel irwo enthält
    Ja, wollte mich erstmal schlau machen, wie es in Gothic 2 gelöst ist, damit ich nach diesen Ansätzen suchen kann. In Gothic 1 unter System/PFX ist schonmal "INSTANCE MAGICGLOW" ausgeklammert. // Aber ganz unten ist nochmal eine gleichnamige Instanz mit dem selben Namen. Mal testen.^^

    edit:
    // Also diese beiden MagicGlows sind was ganz unterschiedliches. Aber die Frage ist ja, gibt es eine Funktion in Gothic, die es ermöglicht, so einen Pfx an ein Item zu heften.
    Phoenix Dev | Website | Discord
    Geändert von lali (18.05.2019 um 17:27 Uhr)

  6. Beiträge anzeigen #6 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.487
     
    Cryp18Struct ist offline
    In GFA von mud-freak wird ein Effekt an den gerade verschossenen Pfeil geklebt
    (Gothic 1 und 2 werden hier unterschiedlich behandelt):
    Code:
    //https://github.com/szapp/GothicFreeAim/blob/develop/_work/data/Scripts/Content/GFA/_intern/rangedShooting.d#L402
        // 5th: Add trail strip FX for better visibility
        // The horizontal position of the camera is aligned with the arrow trajectory, to counter the parallax effect and to
        // allow reasonable aiming. Unfortunately, when the projectile flies along the out vector of the camera (exactly
        // away from the camera), it is barely to not at all visible. To aid visibility, an additional trail strip FX is
        // applied. This is only necessary when the projectile does not have an FX anyway (e.g. magic arrows). The trail
        // strip FX will be removed later once the projectile stops moving.
        if (GOTHIC_BASE_VERSION == 2) {
            // Gothic 1 does not offer effects on items
            if (Hlp_StrCmp(MEM_ReadString(projectilePtr+oCItem_effect_offset), "")) { // Projectile has no FX
                MEM_WriteString(projectilePtr+oCItem_effect_offset, GFA_TRAIL_FX);
                const int call2 = 0;
                if (CALL_Begin(call2)) {
                    CALL__thiscall(_@(projectilePtr), oCItem__InsertEffect);
                    call2 = CALL_End();
                };
            };
        } else {
            // Simplified mechanics for Gothic 1
            Wld_PlayEffect(GFA_TRAIL_FX_SIMPLE, projectile, projectile, 0, 0, 0, FALSE);
        };
    Du könntest also probieren an eine referenz auf das item zu kommen und dann mit Wld_PlayEffect einen Effekt zu starten. Falls das bei items welche in der Welt herumliegen funktioniert, müsste man das wahrscheinlich nach jedem laden eines Spielstandes erneut machen, weil die Partikeleffekte da ja verschwinden.

  7. Beiträge anzeigen #7 Zitieren
    Hero Avatar von lali
    Registriert seit
    Feb 2016
    Beiträge
    5.473
     
    lali ist offline
    Danke! Was meinst du mit "an eine Referenz auf das Item" kommen? Was kann ich mir darunter vorstellen?
    Es ist also nicht machbar, den Effekt irgendwie einfach in das Item-Skript einzufügen? Oder einen Effekt z.B. an eine Item-Kategorie zu heften? Zum Beispiel an alle Ringe und Amulette oder an alle Scrolls und Runen. Das wäre vielleicht am einfachsten.
    Phoenix Dev | Website | Discord

  8. Beiträge anzeigen #8 Zitieren
    Knight
    Registriert seit
    Aug 2009
    Ort
    Hessen
    Beiträge
    1.487
     
    Cryp18Struct ist offline
    Zitat Zitat von lali Beitrag anzeigen
    Danke! Was meinst du mit "an eine Referenz auf das Item" kommen? Was kann ich mir darunter vorstellen?
    Es ist also nicht machbar, den Effekt irgendwie einfach in das Item-Skript einzufügen? Oder einen Effekt z.B. an eine Item-Kategorie zu heften? Zum Beispiel an alle Ringe und Amulette oder an alle Scrolls und Runen. Das wäre vielleicht am einfachsten.
    Wenn du Wld_PlayEffect mit einem in der Welt herumliegendem item als Ziel aufrufen willst, brauchst du ja eine referenz auf das item die du als Parameter an die Funktion übergeben kannst.
    Also ganz grob:
    Code:
    var zcVob meinVob;
    meinVob = // hier muss meinVob irgendwie sinnvoll befüllt werden
    Wld_PlayEffect("Effektname", meinVob, meinVob, 0, 0, 0, FALSE);
    Du könntest dir evt. diese Funktion von mud-freak als Vorlage nehmen:
    https://github.com/szapp/GothicFreeA...jectiles#world
    Und dann für alle in der Welt liegenden Manatränke Effekt X starten und für alle in der Welt liegenden Heiltränke Effekt Y starten ...
    Ich bin mir halt nicht sicher ob das überhaupt funktionieren wird, kann ja sein das Effekte außerhalb der KI-Glocke gar nicht existieren in G1 oder so.

  9. Beiträge anzeigen #9 Zitieren
    Apprentice
    Registriert seit
    Feb 2018
    Beiträge
    19
     
    bogu9821 ist offline
    Zitat Zitat von Cryp18Struct Beitrag anzeigen
    Wenn du Wld_PlayEffect mit einem in der Welt herumliegendem item als Ziel aufrufen willst, brauchst du ja eine referenz auf das item die du als Parameter an die Funktion übergeben kannst.
    Also ganz grob:
    Code:
    var zcVob meinVob;
    meinVob = // hier muss meinVob irgendwie sinnvoll befüllt werden
    Wld_PlayEffect("Effektname", meinVob, meinVob, 0, 0, 0, FALSE);
    Du könntest dir evt. diese Funktion von mud-freak als Vorlage nehmen:
    https://github.com/szapp/GothicFreeA...jectiles#world
    Und dann für alle in der Welt liegenden Manatränke Effekt X starten und für alle in der Welt liegenden Heiltränke Effekt Y starten ...
    Ich bin mir halt nicht sicher ob das überhaupt funktionieren wird, kann ja sein das Effekte außerhalb der KI-Glocke gar nicht existieren in G1 oder so.
    As far as I know, this function only has effect once, so you would have to call it in framefunction / hook / triggerscript.
    It would certainly affect performance, because you would have to act on the lists during the game, even if you would call it in the hook.

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