das ist verdammt schwer und auch nicht mit ein paar sätzen erklärt...

Außerdem ist "gut" eine ungenaue Bezeichnung, was willst du genau erreichen?

Das mit dem stehenbleiben:
Du könntest dem NPC erstmal eine Route zuweisen, zB immer hoch und runter laufen, und wenn der held ein vorgebenes sichtfeld beschreitet führt der gegner gewünschte aktion aus, stehen bleiben halt, die Route unterbrechen. Das Sichtfeld kannst du entweder mit Events pflastern oder durch Variablen bestimme, das ist aber kompliziert, weiß ich jetzt auch nicht aber guck manl im code von "Der Feind" oder so nach.

Die Waffe nach Situation wechseln - Was meinst du damit? Wenn ich der Gegner wäre würde ich immer die stärkste Waffe halten. Aber wenn du sowas wie Granaten meinst, dann musst du das inszeniern - Zum Beispiel wenn der Held ankommt führt der gegner automatisch eine in einem Event vorgeschriebene Aktion aus, zB in Deckung gehn oder granate werfen.
Den Maker so zu proggramieren das die Gegner immer selbstständig entscheiden ob sie jetzt stürmen oder wegrennen oder in Deckung gehn ist wohl ziemlich schwer... jedenfalls wenn das auch noch Sinn machen soll...