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
    Kämpfer
    Registriert seit
    Feb 2016
    Ort
    Dresden
    Beiträge
    349
     
    gladi1994 ist offline

    Spawnen von NPC's an einem bestimmten Tag

    Hallo,

    ich bins mal wieder mit einer weiteren Frage:
    Ich möchte einem NPC eine Art Beschaffungsauftrag geben. Für diesen benötigt er 2 Tage. Nun möchte ich nach diesen 2 Tagen mit einer gewissen Wahrscheinlichkeit NPC's in der Nähe spawnen lassen, die mich davon abhalten wollen, die "Bestellung" entgegenzunehmen.
    Kann ich es nach folgendem Prinzip machen? (nicht wundern, ist nur Pseudocode, hab die genaue Syntax immer noch nicht im Kopf )

    ordergiven = TRUE;
    ordergivenday = wldgetday;

    und dann einen sekündlichen trigger (mir fällt nichts anderes ein), der folgende Bedingung überprüft:

    if(ordergiven == TRUE && ordergivenday + 2 == wldgetday){
    wld_insertNPC(...)
    }

    Kann das so funktionieren? Sorry für die ständige Nachfrage, bin noch nicht so sicher auf dem Gebiet und bei mir dauert sowas immer ewig, bis ich es fehlerfrei und testbar geschrieben habe, daher wollt ich mal vorher nachfragen...

    Danke schonmal,

    Gladi

  2. Homepage besuchen Beiträge anzeigen #2 Zitieren
    Team Velen
    Registriert seit
    Aug 2015
    Beiträge
    952
     
    Bloodfly91 ist offline
    Hi,
    so sollte es funktionieren:

    Code:
    var int spawnQuestNpcsTriggered;
    
    func int spawnQuestNpcs()
    {
        var int spawnRandom; spawnRandom = Hlp_Random(7);
        
        if (ordergiven == true) && (ordergivenday <= (Wld_GetDay()-2)) && (spawnQuestNpcsTriggered == FALSE)
        {
            spawnQuestNpcsTriggered = TRUE;
        
            if (spawnRandom < 3)
            {
                Wld_InsertNpc (InstanceDesNpcs, "NameDesWaypoints");
                Wld_InsertNpc (InstanceDesZweitenNpcs, "NameDesWaypoints");
    
                // (usw. ...)
                
                Print ("Npcs wurden gespawnt!");
                
            } else {
            
                Print ("Npcs wurden NICHT gespawnt!");
            };
        };
    };
    Die Funktion spawnQuestNpcs(); müsstest du dann noch per Trigger aufrufen.

    Code:
    var int ordergivenday;
    var int ordergiven;
    und

    Code:
    ordergiven = TRUE;
    ordergivenday = Wld_GetDay();
    Müsstest du dann noch dort eintragen, wo du dem Spieler die Quest gibst.
    Geändert von Bloodfly91 (07.11.2017 um 21:47 Uhr)

  3. Beiträge anzeigen #3 Zitieren
    Kämpfer
    Registriert seit
    Feb 2016
    Ort
    Dresden
    Beiträge
    349
     
    gladi1994 ist offline
    Wow super, so ein fertiges Skript wollte ich mir eigentlich gar nicht erschleichen..
    Aber trotzdem vielen Dank für deine ausführliche Antwort! So in etwa hatte ich mir das gedacht, habs nur noch nicht so genau aufgeschrieben. (wie du eben )

    Ein großes Dankeschön an Dich!

    LG, Gladi

  4. Beiträge anzeigen #4 Zitieren
    Kämpfer
    Registriert seit
    Feb 2016
    Ort
    Dresden
    Beiträge
    349
     
    gladi1994 ist offline
    Wollte nur nochmal mitteilen, dass es einwandfrei funktioniert hat!

    Dankeschön

  5. Beiträge anzeigen #5 Zitieren
    Legende der Amazonen Avatar von Bisasam
    Registriert seit
    Dec 2006
    Ort
    Meine Faust in Sinis Gesicht
    Beiträge
    9.639
     
    Bisasam ist offline
    OOh vorsicht, du solltest in dieses Skript noch die Abfrage einbauen ob der Held sich im Dialog befindet (hero.aivar[AIV_INVINCIBLE]==FALSE) denn ansonsten kann es zu richtig fiesen Bugs kommen. Unter anderem:

    -Mitten im Dialog hört der Npc auf zu reden

    -Items werden nicht übergeben

    -Die Gespawnten mischen sich plötzlich mit den Outputs des Npcs in den Dialog ein

    Wld_InsertNpc überschreibt nämlich self und sollte deswegen niemals bei laufendem Dialog benutzt werden.


    "Das erinnert doch sehr erfreulich an das, was man sich als Gothicfan wünscht!"
    -Korallenkette

  6. Beiträge anzeigen #6 Zitieren
    Dea
    Registriert seit
    Jul 2007
    Beiträge
    10.447
     
    Lehona ist offline
    Zitat Zitat von Bisasam Beitrag anzeigen
    Wld_InsertNpc überschreibt nämlich self und sollte deswegen niemals bei laufendem Dialog benutzt werden.
    Ein kleiner Trostpreis: In zukünftigen Versionen von LeGo wird das mit FrameFunctions kein Problem mehr sein: Der globale Kontext wird gesichert, bevor eine Hook ausgeführt wird (und die FrameFunctions basieren auf den Hooks).

    Schamlose Werbung.

  7. Beiträge anzeigen #7 Zitieren
    now also in your universe  Avatar von Milky-Way
    Registriert seit
    Jun 2007
    Beiträge
    15.244
     
    Milky-Way ist offline
    Zitat Zitat von Lehona Beitrag anzeigen
    Ein kleiner Trostpreis: In zukünftigen Versionen von LeGo wird das mit FrameFunctions kein Problem mehr sein: Der globale Kontext wird gesichert, bevor eine Hook ausgeführt wird (und die FrameFunctions basieren auf den Hooks).

    Schamlose Werbung.
    Wann sind wir denn in der Zukunft?

  8. Beiträge anzeigen #8 Zitieren
    Kämpfer
    Registriert seit
    Feb 2016
    Ort
    Dresden
    Beiträge
    349
     
    gladi1994 ist offline
    Zitat Zitat von Bisasam Beitrag anzeigen
    OOh vorsicht, du solltest in dieses Skript noch die Abfrage einbauen ob der Held sich im Dialog befindet (hero.aivar[AIV_INVINCIBLE]==FALSE) denn ansonsten kann es zu richtig fiesen Bugs kommen. Unter anderem:

    -Mitten im Dialog hört der Npc auf zu reden

    -Items werden nicht übergeben

    -Die Gespawnten mischen sich plötzlich mit den Outputs des Npcs in den Dialog ein

    Wld_InsertNpc überschreibt nämlich self und sollte deswegen niemals bei laufendem Dialog benutzt werden.
    Vielen Dank, da hätte ich jetzt gar nicht dran gedacht.
    Das werde ich tun!

    Zitat Zitat von Milky-Way Beitrag anzeigen
    Wann sind wir denn in der Zukunft?
    Das war ganz diskret!

  9. Beiträge anzeigen #9 Zitieren
    Ehrengarde Avatar von mud-freak
    Registriert seit
    Dec 2005
    Beiträge
    2.199
     
    mud-freak ist offline
    Zitat Zitat von Milky-Way Beitrag anzeigen
    Wann sind wir denn in der Zukunft?
    Ich glaube das sollte nicht mehr so lang dauern. Im Moment wird es noch ein bisschen mit Gothic 1 getestet.

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