a) mal aus der Hüfte geschossen:
Einziges Problem: Wenn du mehrere von den Büchern im Spiel verteilst, wird jedes das Charisma erhöhen. Das kann man aber auch umgehen, indem man die doOnce-Variable in eine Dummy-Quests verpackt.
Evtl. muß ein ähnliches Skript in einen OnEquipp-Block. Ich bin nicht sicher, ob das Auswählen des Buchs im Inventar als "Activate" oder "Equip" gilt.
b) ist schwieriger zu realisieren. Evtl. mit einem Skript, daß in der GameMode-Sektion eine Variable prüft, die im OnActivate-Block gesetzt wird. Das klappt aber z.B. dann nicht richtig, wenn der Spieler das Buch schon im Inventar hat.
c) ist afaik nicht drin. So etwas wie "OnHover" kenne ich nicht.