Results 1 to 7 of 7

Neverwinter Nights-Fragen zum SDK

  1. #1 Reply With Quote
    Abenteurer knarrschak's Avatar
    Join Date
    May 2005
    Posts
    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 is offline

  2. #2 Reply With Quote
    Waldläufer Sehenesmet's Avatar
    Join Date
    Nov 2004
    Location
    Unter meinem Schreibtisch
    Posts
    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 is offline

  3. #3 Reply With Quote
    sehr drachischer Drache Dragonlady's Avatar
    Join Date
    Sep 2001
    Location
    Cyrodiil und Vvardenfell
    Posts
    15,749
    Komm mal hier hin Da bist Du dann richtig

    Edit: Wer hat denn hier so schnell geschoben

    Dragonlady is offline

  4. #4 Reply With Quote
    Ritter Micha LNH HSV's Avatar
    Join Date
    Mar 2002
    Location
    Hamburg
    Posts
    1,732
    Quote Originally Posted by 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 is offline Last edited by Micha LNH HSV; 23.05.2005 at 18:30.

  5. #5 Reply With Quote

    Promovierter Administrator
    Fizzban's Avatar
    Join Date
    Apr 2004
    Location
    Mirandadorf
    Posts
    8,281
    Quote Originally Posted by Dragonlady
    Edit: Wer hat denn hier so schnell geschoben
    Ich war gerade in der Gegend..

    Fizzban is offline

  6. #6 Reply With Quote
    Abenteurer knarrschak's Avatar
    Join Date
    May 2005
    Posts
    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 is offline

  7. #7 Reply With Quote
    Ritter Micha LNH HSV's Avatar
    Join Date
    Mar 2002
    Location
    Hamburg
    Posts
    1,732
    Quote Originally Posted by 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 is offline

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •