Hallo,
füge vor dem Hinzufügen des Namens mal eine Kontrolle ein:
Delphi-Quellcode:
begin
// ...
ShowMessage(IntToStr(Length(gegnerName[z])) + ': ' + gegnerName[z]);
richedit1.Lines.Add('You hit '+ gegnername[z] + ' for ' + inttostr(schaden) + ' points of damage.');
// ...
end;
Wenn die ausgegebene Längenangabe nicht deiner Erwartung entspricht, dann hast du beim Einlesen von gegnerName Null-Zeichen erwischt, die bei vielen internen String-Operationen als Ende der Zeichenkette interpretiert werden.
Wie hast du die Variable gegnerName[] deklariert? Wie füllst du sie?
Grüße vom marabu