[Editor1] Scripte?

Attic

Senior Member
Registriert
26.03.2002
Beiträge
683
Viele werden über meine Probleme mit dem Editor lachen, aber alleine schaff ichs einfach nicht.
Ich brauche drei Erklärungen in Bezug auf den Zusammenhang von aktion und Reaktion in NWN.
1. Ich habe nen NPC dem man antworten kann: "JA ich will deine Waren sehen" und nen Laden den ich erstellt habe.
leider bekomme ich es nicht hin, dass der Laden geöffnet wird wenn man mit obigem antwortet. Was muss ich beachten?
2. Ich will das wenn ein bestimmter plazierbarer Gegenstand (z.B. eine aufgespiesste Leiche) berührt oder "benutzt" wird eine von mir definierte Gruppe Monster gespawned wird. Dafür habe ich nen Gegenstand als benutzbar eingestellt und ne Begegnung mit den gewünschten Monstérn erstellt, aber wie bringe ich das nun zusammen???
3. Ich wil dass ein NPC schlafend auf nem Bett liegt, wie bekomme ich das hin?

mfg Attic
 

Tingil

Lord of the Links
Registriert
14.07.2000
Beiträge
7.884
1.) Du mußt dabei vor allem beachten, daß Du dem Laden einen einzigartigen TAG gibst. Der Rest ist ziemlich einfach: Du setzt in den "Actions taken"-Teil dieser Dialogoption folgendes Script...
Code:
void main()
{
    object oPC = GetPCSpeaker();
    object oStore = GetObjectByTag("PLACE_STORE_TAG_HERE");
    OpenStore(oStore, oPC);
}
Wenn Du ein etwas komplexeres Script verwenden möchtest, bei dem der "Überreden"-Wert des Käufers Einfluß auf den Preis hat, kannst Du auch folgendes Skript verwenden...
Code:
void main()
{
    object oPC = GetPCSpeaker();
    object oStore = GetObjectByTag("PLACE_STORE_TAG_HERE");
    int iSkillModPersuade = GetAbilityModifier(ABILITY_CHARISMA, oPC) +
        GetSkillRank(SKILL_PERSUADE, oPC);
    int iMarkUp = -2 * iSkillModPersuade;
    if (iMarkUp < -30)
        iMarkUp = -30;
    int iMarkDown = iSkillModPersuade;
    if (iMarkDown > 15)
        iMarkDown = 15;
    OpenStore(oStore, oPC, iMarkUp, iMarkDown);
}
Bei diesem Skript sind jedoch ein paar Dinge, was den MarkUp und den MarkDown Wert des Ladens angeht, zu beachten, da es auf einen MarkUp Wert von 100 und einem MarkDown Wert von 50 ausgelegt ist.

2.) Dazu kann ich leider nichts sagen, da ich mich mit Begegnungen noch nicht beschäftigt habe.

3.) Überhaupt nicht. Leider kann man niemanden auf einem Bett platzieren. Auf einer Schlafmatte jedoch schon.
 

Attic

Senior Member
Registriert
26.03.2002
Beiträge
683
Danke, aber wie setze ich den Tag? Und wie geht das mit der Person auf der Schlafmatte (wo muss ich im script der Person was eintragen?)
 

Tingil

Lord of the Links
Registriert
14.07.2000
Beiträge
7.884
Den setzt Du unter den "Eigenschaften" des Ladens.

Das kommt darauf an, ob der NSC sonst noch etwas tun soll, außer einfach schlafend herumliegen. Wenn er einfach nur schlafen soll, platzierst Du ihn im Editor auf der Matte und drehst ihn richtig herum. Dann editierst Du ihn und setzt folgendes Skript als sein "OnSpawn" Skript...
Code:
void main()
{
    effect eLieDown = EffectSleep();
    effect eSnore = EffectVisualEffect (VFX_IMP_SLEEP);
    effect eSleep = EffectLinkEffects (eLieDown, eSnore);
    ApplyEffectToObject (DURATION_TYPE_PERMANENT, eSleep, OBJECT_SELF);
}
..dann schläft der NSC und schnarcht dabei :D, macht aber sonst nichts anderes. :)
 
Oben