Das Problem ist, dass du eine zu allgemeine Frage stellst, weil du gerne eine eierlegende Wollmichsau hättest. Im Grunde fragst du z.B. nicht: "gibt es einen Befehl, mit dem mich ein NPC anquatscht, nachdem ich eine bestimmte Aktion durchgeführt habe", sondern:
"ey, ich brauch einen Script, der gleich 4(!) Dinge verarbeitet:
1) Ich sammle ein Buch auf
2) ein Typ quatscht mich dann an
3) der Typ gibt mir einen Zettel
4) Ich werde Mitglied der Gilde, wenn ich die Gildenräume betrete
Jetzt erstellt mir bitte mal einen komplett fertigen Script, dann kann ich meinen Namen darunter setzen und es läuft."
Papa Roachs Antwort ist zugegebenermaßen wirklich komisch, aber - in dubio pro res - vielleicht heißt "ich denke schon": "ich bin schon dabei, mir einen passenden Script für dich zu überlegen". Aber selbst wenn nicht: so wie deine Frage gestellt ist, beschwört sie unpassende Antworten förmlich von selbst herauf!
Zu deiner Ursprungsfrage:
1) kann mit mit einem OnAdd, OnActivate oder OnEquip-Block gemacht werden, je nachdem, wie du das Buch aufsammelst. Liegt es irgendwo im der Welt rum (und nicht in einem NPC oder Container), funktionert z.B. onActivate
2) der Befehl StartConversation könnte dir helfen, besonders, wenn er dann im unter 1) genannten Block auftaucht
3) Player.AddItem xxx 1 einfach als Result Script im passenden Dialog anhängen
4) hier dürften die Befehle GetInCell und SetFactionRank helfen