Added public files

Roughly added all public files. Probably missed some, though.
diff --git a/doc/props/P_NO_ATTACK b/doc/props/P_NO_ATTACK
new file mode 100644
index 0000000..0f39180
--- /dev/null
+++ b/doc/props/P_NO_ATTACK
@@ -0,0 +1,82 @@
+P_NO_ATTACK
+
+NAME:
+     P_NO_ATTACK "no_attack"
+
+DEFINIERT IN:
+     <living/combat.h>
+
+BESCHREIBUNG:
+     Wenn ein NPC nicht angreifbar sein soll (weil er zum Beispiel in einer
+     Gilde oder einer Quest Informationen vermittelt oder aehnlichen), sollte
+     man diese Property auf einen Wert ungleich Null setzen. Sie wird immer
+     abgefragt, wenn ermittelt wird, ob ein Lebewesen prinzipiell angreifbar
+     ist. D.h. auch, dass nach Abfragen von P_NO_ATTACK _nicht_ immer ein
+     Kampf gestartet wird und dass man dabei _nicht_ im Kampf sein muss!
+
+     Gibt man hier einen String an (mit einem Satzzeichen und "\n" abge-
+     schlossen), wird dieser bei direkten Angriffen ausgegeben. Bei anderen
+     Datentypen wird eine Defaultmeldung ausgegeben. Die Defaultmeldung
+     lautet: "<Name> laesst sich nicht angreifen!\n"
+
+     Mit direkten Angriffen sind 'toete <name>' und Angriffszauber gemeint
+     (bzw. alles, was living/life::Kill(), spellbook::TryAttackSpell(),
+     spellbook::TryDefaultAttackSpell() und spellbook::FindEnemyVictim()
+     aufruft).
+
+ACHTUNG:
+
+  1) Zum Thema QueryMethoden auf P_NO_ATTACK
+     Grundsaetzlich legt man entweder eine Query-Methode auf P_NO_ATTACK:
+        Set(P_NO_ATTACK, #'my_no_attack, F_QUERY_METHOD);
+     oder definiert eine Funktion _query_no_attack() im NPC.
+
+     Wie muss nun eine solche Funktion aussehen? Z.B.:
+     
+     int|string my_no_attack() {
+       if (!objectp(this_player())) return 0;
+       if (opfer==getuid(this_player()) || this_player()==this_object())
+         return(0);
+       return(1); //nicht angreifbar
+     }
+
+     Diese Funktion macht den NPC nun nur fuer den Spieler 'opfer' angreifbar.
+     Stattdessen kann natuerlich auch jede andere Bedingung genutzt werden.
+
+     Aber warum die zweite Bedingung, this_player()==this_object()?
+     Warum sollte der NPC sich selber angreifen duerfen?
+
+     Das liegt an folgenden 2 Dingen:
+
+     1. Kaempfer kriegen bei eingeschaltetem Fokus Probleme, wenn man das 
+     nicht macht. Das liegt an folgendem: Wenn der NPC angreift, ruft er 
+     natuerlich Defend() im Spieler auf. Dieses schaut nach, ob der Spieler 
+     den Skill SK_MAGICAL_DEFENSE hat. Dieser ist bei Kaempfern das Parieren.
+     Dieses schaut nach, ob der Fokus aktiv ist, wenn ja, wird dem 
+     ge'fokus'te Gegner besonders gut ausgewichen. Zu diesem Zweck wird die 
+     Liste der Feind im Raum erstellt mit PresentEnemies() abgerufen. Dieses 
+     fragt aber in allen (potentiellen) Gegnern P_NO_ATTACK ab und beendet 
+     den Kampf mit allen Gegnern, die nicht angreifbar sind. Bei dieser 
+     Abfrage ist jedoch TP==NPC, weil der ja angreift. Wenn er nun 1 
+     zurueckgibt, wird der Kampf an der Stelle beendet. 
+
+     2. Wenn der NPC den Spieler angreift, wird im Spieler InsertEnemy(NPC)
+     aufgerufen. Auch diesem Fall findet die Abfrage von P_NO_ATTACK statt, 
+     da InsertEnemy() ja erstmal rausfinden muss, ob der Gegner angreifbar 
+     ist, bevor er in die Feindliste eingetragen wird. Da der NPC den 
+     Angriff beginnt, ist TP der NPC. Wenn die Query-Methode auf P_NO_ATTACK
+     hier abbricht, wird der NPC nicht in die Feindliste des Spielers 
+     eingetragen. Dann bekaempft der NPC den Spieler, aber der Spieler nicht
+     den NPC.
+
+
+  2) P_NO_ATTACK des NPC wird z.B. beim Kampf eines Kaempfers mit dem NPC 
+     pro Kampfrunde um die 10mal abgerufen. Wenn der Kaempfer nur eine 
+     Attacke macht. Wenn er noch Sonderattacken machen, Spells ausfuehrt, 
+     etc. wird das noch mehr. D.h. was auch immer ihr in der Query-Methode 
+     im NPC macht: 
+     Es sollte schnell sein, jeder Tick an Rechenzeit zaehlt hier xfach!
+
+
+LETZTE AENDERUNG:
+09.11.2015, Arathorn