Ergebnis 1 bis 7 von 7

Neverwinter Nights-Fragen zum SDK

  1. #1 Zitieren
    Abenteurer Avatar von knarrschak
    Registriert seit
    May 2005
    Beiträge
    89
    Hi, es passt zwar nicht richtig in dieses Forum, doch hab ich gesehen das es einige Modder in diesem Forum gibt! Und da ich nichts zu tun hab bis DL, hab ich angefangen nen kleinen Mod für NWN zu basteln (Der SDK ist schön einfach zu bedienen ).

    Ich hab nun aber einige Fragen:

    1.Wie kann ich es machen das ein gesprochenes gespräch kein zweites mal kommt bzw. ein neues kommt?

    2.Wie kann ich ein Heilemann machen?

    3.Wie kann ich bestehende Questlogbuch einträge aktualisieren?(also z.B. nach erfolgreichem Quest.)

    Helft bitte einem armen Unwissenden

    Danke im vorraus Knarrschak
    knarrschak ist offline

  2. #2 Zitieren
    Waldläufer Avatar von Sehenesmet
    Registriert seit
    Nov 2004
    Ort
    Unter meinem Schreibtisch
    Beiträge
    199
    Öhm, wenn ich das richtig verstanden habe geht es hier um NVW, oder?
    Dazu gibt es eine eigene Abteilung.Unter Planet Neverwinter (auch in diesem Forum) findet du sicher Hilfe...
    Sehenesmet ist offline

  3. #3 Zitieren
    Dea Avatar von Shiravuel
    Registriert seit
    Sep 2001
    Ort
    Thedas
    Beiträge
    15.418
    Komm mal hier hin Da bist Du dann richtig

    Edit: Wer hat denn hier so schnell geschoben
    “Spinnt der Wald oder ich?“ (Loghain Mac Tir im Brecilianwald)
    Shiravuel ist offline

  4. #4 Zitieren
    Ritter Avatar von Micha LNH HSV
    Registriert seit
    Mar 2002
    Ort
    Hamburg
    Beiträge
    1.732
    Zitat Zitat von knarrschak
    Hi, es passt zwar nicht richtig in dieses Forum, doch hab ich gesehen das es einige Modder in diesem Forum gibt! Und da ich nichts zu tun hab bis DL, hab ich angefangen nen kleinen Mod für NWN zu basteln (Der SDK ist schön einfach zu bedienen ).
    Ich hab nun aber einige Fragen:
    1.Wie kann ich es machen das ein gesprochenes gespräch kein zweites mal kommt bzw. ein neues kommt?
    2.Wie kann ich ein Heilemann machen?
    3.Wie kann ich bestehende Questlogbuch einträge aktualisieren?(also z.B. nach erfolgreichem Quest.)
    Helft bitte einem armen Unwissenden
    Danke im vorraus Knarrschak
    SDK= Toolset?
    Als erstes hier die Info an Dich Scripte als Anfänger nicht einfach zu kopieren, sondern
    zu tippen und versuchen zu verstehen. Das hilft am Anfang wirklich weiter.
    Hier 3 wichtige Links zum Thema NWN Scripting:

    http://nwn.bioware.com/forums/viewto...28728&forum=47
    http://www.nwnlexicon.com/
    http://www.rpg-pool.de/include.php?p...er=&themeid=11

    1.) Indem Du Variable verwendest. Entweder auf den PC(PCSpeaker) oder
    auf den NSC(OBJECT_SELF).
    (Wenn Variable "X" gleich "Y" dann sage das).

    Variable auf NSC(OBJECT_SELF) sichten:
    Code:
    int StartingConditional()
    {
        // Lokale Variablen sichten
        if (!(GetLocalInt(OBJECT_SELF, "wert") == 2))
        return FALSE;
        return TRUE;
    }
    Variable auf NSC(OBJECT_SELF) setzen:
    Code:
    void main()
    {
        SetLocalInt(OBJECT_SELF, "wert", 2);
    }
    2.)
    Denke Du meinst einen Priester, welcher im Tempel per Gespräch heilt:
    Code:
    void FakeRestore(object oTarget);
    
    void main()
    {
    object oPC = GetPCSpeaker();
    object oHenchman = GetAssociate(ASSOCIATE_TYPE_HENCHMAN,oPC);
    object oAnimal = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION,oPC);
    object oFamiliar = GetAssociate(ASSOCIATE_TYPE_FAMILIAR,oPC);
    object oDominated = GetAssociate(ASSOCIATE_TYPE_DOMINATED,oPC);
    object oSummoned = GetAssociate(ASSOCIATE_TYPE_SUMMONED,oPC);
    ActionPauseConversation();
    ActionCastFakeSpellAtObject(SPELL_GREATER_RESTORATION, OBJECT_SELF);
    ActionDoCommand(FakeRestore(oPC));
    if(GetIsObjectValid(oHenchman))
    {
    ActionDoCommand(FakeRestore(oHenchman));
    // checks to see if they have any cure crital wound potions; if not, creates it on them.
    if (!GetIsObjectValid(GetItemPossessedBy(oHenchman,"NW_IT_MPOTION003")))
    {
    CreateItemOnObject("NW_IT_MPOTION003",oHenchman,3);
    }
    }
    if(GetIsObjectValid(oAnimal))
    {
    ActionDoCommand(FakeRestore(oAnimal));
    }
    if(GetIsObjectValid(oFamiliar))
    {
    ActionDoCommand(FakeRestore(oFamiliar));
    }
    if(GetIsObjectValid(oDominated))
    {
    ActionDoCommand(FakeRestore(oDominated));
    }
    if(GetIsObjectValid(oSummoned))
    {
    ActionDoCommand(FakeRestore(oSummoned));
    }
    ActionResumeConversation();
    }
    
    void FakeRestore(object oTarget)
    {
    effect eVisual = EffectVisualEffect(VFX_IMP_RESTORATION_GREATER);
    
    effect eBad = GetFirstEffect(oTarget);
    //Search for negative effects
    while(GetIsEffectValid(eBad))
    {
    if (GetEffectType(eBad) == EFFECT_TYPE_ABILITY_DECREASE ||
    GetEffectType(eBad) == EFFECT_TYPE_AC_DECREASE ||
    GetEffectType(eBad) == EFFECT_TYPE_ATTACK_DECREASE ||
    GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_DECREASE ||
    GetEffectType(eBad) == EFFECT_TYPE_DAMAGE_IMMUNITY_DECREASE ||
    GetEffectType(eBad) == EFFECT_TYPE_SAVING_THROW_DECREASE ||
    GetEffectType(eBad) == EFFECT_TYPE_SPELL_RESISTANCE_DECREASE ||
    GetEffectType(eBad) == EFFECT_TYPE_SKILL_DECREASE ||
    GetEffectType(eBad) == EFFECT_TYPE_BLINDNESS ||
    GetEffectType(eBad) == EFFECT_TYPE_DEAF ||
    GetEffectType(eBad) == EFFECT_TYPE_CURSE ||
    GetEffectType(eBad) == EFFECT_TYPE_DISEASE ||
    GetEffectType(eBad) == EFFECT_TYPE_POISON ||
    GetEffectType(eBad) == EFFECT_TYPE_PARALYZE ||
    GetEffectType(eBad) == EFFECT_TYPE_NEGATIVELEVEL)
    {
    //Remove effect if it is negative.
    RemoveEffect(oTarget, eBad);
    }
    eBad = GetNextEffect(oTarget);
    }
    if(GetRacialType(oTarget) != RACIAL_TYPE_UNDEAD)
    {
    //Apply the VFX impact and effects
    int nHeal = GetMaxHitPoints(oTarget) - GetCurrentHitPoints(oTarget);
    effect eHeal = EffectHeal(nHeal);
    if (nHeal > 0)
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget);
    }
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eVisual, oTarget);
    }
    3.)
    Code:
    void main()
    {
        AddJournalQuestEntry("Text", 2, GetPCSpeaker(), FALSE);
    }
    Micha LNH HSV ist offline Geändert von Micha LNH HSV (23.05.2005 um 17:30 Uhr)

  5. #5 Zitieren

    Imaginärer Administrator
    Avatar von Fizzban
    Registriert seit
    Apr 2004
    Ort
    Mirandadorf
    Beiträge
    8.765
    Zitat Zitat von Dragonlady
    Edit: Wer hat denn hier so schnell geschoben
    Ich war gerade in der Gegend..
    Fizzban ist offline

  6. #6 Zitieren
    Abenteurer Avatar von knarrschak
    Registriert seit
    May 2005
    Beiträge
    89
    Hi danke für die schnelle hilfe!

    SDK hab ich wo aufgeschnappt und habe es als toolset interpretiert, doch dachte ich ich müsste auch solche fachsprache wie sdk verwenden um nicht ausgelacht zu werden doch anscheinend habe ich das gegenteil bewirkt.

    Nochmal danke... werde sobald ich zeit hab mich mal rein arbeiten.
    knarrschak ist offline

  7. #7 Zitieren
    Ritter Avatar von Micha LNH HSV
    Registriert seit
    Mar 2002
    Ort
    Hamburg
    Beiträge
    1.732
    Zitat Zitat von knarrschak
    doch dachte ich ich müsste auch solche fachsprache wie sdk verwenden um nicht ausgelacht zu werden doch anscheinend habe ich das gegenteil bewirkt.
    Warum sollte dich jemand auslachen. Quatsch.
    Wenn Du noch später Fragen hast wann und wo Du die Scripte einfügen
    musst frag einfach...
    Micha LNH HSV ist offline

Berechtigungen

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