Habe ich ein kleines Tool geschrieben, das die Namensfindung vereinfachen soll.
Was es kann:
-Einlesen von verschiedenen Quellen.
-Filtern der Namen durch "Reguläre Ausdrücke"
-Eine grobe Namensbewertung (von 0 = weich/Gelehrter, bis 100 = hart/Krieger)
-Optionales Speichern und Ausblenden bereits verwendeter Namen
-Namensfindung über Zufallsgenerator
1: Das Programm ermittelt beim Start alle txt Dateien, die im gleichen Ordner, wie die exe selbst liegen und zeigt diese zur
Auswahl in der Combobox an. Damit kann man mehrere "Namensarten" verwalten, z.B. Personen und Ortsnamen oder Menschen
und Orknamen.
Die txt Dateien muss man selber anlegen: Wichtig ist dabei nur, dass jeder Name in einer eigenen Zeile steht (im Download ist eine Beispieldatei enthalten).
2: Mit "Datei laden" wird die in der Combobox angezeigte Datei eingelesen.
3: Der Inhalt der eingelesenen Datei.
4. Hier kann man mit "Regulären Ausdrücken" (Regex) die Namen filtern.
Infos zu Regex gibt es hier und hier (unter Punkt 4)
Beispiele:
Will man alle Namen haben, die mit a Anfangen, so tippt man: ^A
Will man Frauennamen haben (die meist auf a oder e enden), so tippt man: (e|a)$
Will man Namen haben, die mit T beginnen, in der Mitte irgendwo ein u haben und auf l enden, so tippt man:^T[\w]*u[\w]*l$
5. Der Button fügt automatisch einen Platzhalter [\w]* ein.
6. Damit kann man die Namensbewertung aktivieren.
Auf einer Punktebandbreite von 0-100 wird grob dargestellt, ob der Name eher zu einem Gelehrten passt (<50) oder eher zu einem Krieger(>50)
7. Damit kann man beim Filtern schon vergebene Namen ausblenden lassen.
Es wird im Verzeichnis der exe nach einer Datei "vergeben.vergeben" gesucht und falls vorhanden die darin gepeicherten Namen zum Filtern verwendet. Die Datei kann mit einem Texteditor editiert werden.
8. Startet den Filtervorgang (kann bei großen Datenmengen kann es schon mal mehrere Sekunden dauern)
9. Hier werden die gefilterten Namen dargestellt.
10. Die Namensbewertung.
11. Mit dem Button "Zufallsname" wird zufällig ein Name ermittelt.
Hat man die Namensbewertung aktiviert, kann man links den Mindest- und rechts den Maximalwert der Bewertung einstellen, in dem gesucht wird (will man z.B. Kriegernamen, so könnte man in einem Bereich von 70-100 suchen).
12. Anfang des Suchbereichs
13. Ende des Suchbereichs
14. Wenn dies aktiviert ist, so wird beim Kopieren in die Zwischenablage der Name als "verwendet" markiert und kommt in die Datei "vergeben.vergeben" (wird bei Bedarf automatisch erstellt).
15. Kopiert den aktuell markierten Eintrag in der "Namen gefiltert" Listbox (9) in die Zwischenablage (sodass man zum Einfügen nur Strg+v drücken muss). Alternativ kann man auch einfach auf einen Namen in der "Namen gefiltert" Listbox (9) doppelklicken.
Ich hoffe, dass das Tool für irgendjemanden von Nutzen ist.
Füttern kann man es z.B. mit http://www.schnauzer-ar.com/names.htm
oder anderen Namensseiten.
Die Datei ist im Anhang:
Update:
Ich hab das Ding mal etwas überarbeitet und optimiert:
So ist nun der absichtliche () Fehler im Fenstertitel weg.
Die Namenserkennung wurde leicht verändert (ich hoffe zum Guten).
Desweiteren wurde an der Performance geschraubt: Das Filtern von großen Datenmengen sollte jetzt schneller gehen (Listboxen sind recht lahm in der Darstellung, sodass ich sie durch Listviews ersetzt habe, hoffentlich haben sich dabei keine Fehler eingeschlichen, die ich übersehen habe).
Zustätzlich gibts im Paket noch das Tool "Multikill", welches dazu dient mehrfache Einträge aus .txt und .vergeben Dateien zu entfernen (die leicht entstehen, wenn man verschiedene Namensdateien zusammenführt).
Die Bedienung geht über Drag& Drop:
Methode a):
Das Tool starten, dann die gewünschte Daten auf das weiße Fenster ziehen.
Methode b):
Ohne das Tool zu starten einfach die gewünschte Datei auf die Multikill.exe ziehen.
Die Datei wird dann anschließend alphabetisch sortiert, und die überflüssigen Einträge entfernt.
Achtung: Dabei wird die Ursprungsdatei ungefragt überschrieben.
Das ist ja super. Vielen, vielen Dank, Sumpfkraut "Helfer in der Not" Junkie
Sowas kann man immer gut gebrauchen!
Gleich mal ausprobieren.
Du hast schonmal drüber nachgedacht, alles hinter dir zu lassen und weit, weit weg auf eine einsame Insel zu ziehen?
Lass es lieber bleiben und spiel anstattdessen meine neue Mod für Gothic 2:
Schöne Idee!
Ich hoffe mal, die Farbgebung hängt vom Systemschema ab, das grün sagt mir nämlich nicht besonders zu
Ja, es hängt mit dem Farbschema zusammen, also keine Angst
Was mich noch interessieren würde:
Wie werden die Namen automatisch bewertet?
Das ist recht primitiv (was besseres ist mir nicht eingefallen):
Standardwert ist bei allen Namen 50.
Dann werden die Namen nach ihren Buchstaben durchsucht.
Werden z.B. Vokale gefunden, so
wird die gefundene Anzahl mal einem Multiplikator subtrahiert (geht also in den Gelehrten-Bereich).
Endet der Name auf Vokal + m oder n oder s oder l, so wird noch mehr subtrahiert.
Enthält der Name Umlaute oder endet er auf b oder p oder k oder g oder t oder d, so wird addiert(geht in den Krieger-Bereich). Und so weiter.
Ich poste mal einfach den Funktions Code (dürfte für Scipter verständlich sein):
Code:
private int AnalyseName(String a)
{
int c=50;
a=String.Copy(a.ToLower());
Regex myRegex = new Regex(@"[aeiouv]");
MatchCollection matches = myRegex.Matches(a);
c -= matches.Count*2;
myRegex = new Regex(@"[aeiou][aeiou]");
matches = myRegex.Matches(a);
c -= matches.Count*4;
myRegex = new Regex(@"([p][h])|([q][u])|([xy])");
matches = myRegex.Matches(a);
c -= matches.Count *6;
myRegex = new Regex(@"([aeiou][mnsl])$");
matches = myRegex.Matches(a);
c -= matches.Count * 10;
myRegex = new Regex(@"([äöürkgzw])");
matches = myRegex.Matches(a);
c += matches.Count * 4;
myRegex = new Regex(@"(sch)|(ch)|(ck)");
matches = myRegex.Matches(a);
c += matches.Count * 10;
myRegex = new Regex(@"[äöürkgtdbpzw][äöürkgtdtbpzw]");
matches = myRegex.Matches(a);
c += matches.Count * 6;
myRegex = new Regex(@"[^c][h]");
matches = myRegex.Matches(a);
c += matches.Count * 2;
myRegex = new Regex(@"([bpkgtd])$");
matches = myRegex.Matches(a);
c += matches.Count * 10;
if (a.Length < 4)
{
c +=10;
}
if (c < 0)
{
c = 0;
}
else if (c > 100)
{
c = 100;
}
return c;
}
PS: "(sodass man zum Einfügen nur Strg+c drücken muss)"
Einfügen geht doch über [Strg] + [V] oder?
Vielleicht wird ja nochmal jemand den alten Namensthread ausgraben und weiter posten, damit er voll wird und nicht verloren geht. Dann kann man eine Riesendatei für das Klasse Tool erstellen!
Danke, Sumpfi!
Super, danke damit kann ich meine Quelle einpacken. Super Sumpfi.
Ich teste das Programm mal
Mfg,
Icebox
Edit:
So der Supernette Onkel Icebox hat mal kurz eine Namensliste erstellt.
Insgesamt sind es 2395 Namen, davon 1156 Männliche Namen und 1239 weibliche Namen. Es sind Europäische, Amerikanische und Östliche Namen enthalten. Afrikanische, Arabische und Asiatische Namen sind nicht enthalten
Vorzeitig nicht mehr aktiv, aber per PN erreichbar Sektenwahn
[/CENTER]
Ich habe dann mal eine eigene Namensdatei (DogNames^^) erstellt.
Enthalten sind 15823 Namen von A-Z.
Ich habe das ganze dann noch mit Icebox' Namensdatei zusammengeführt und komme damit auf insgesamt 18218 Namen, das sollte eigentlich ausreichen um jeden noch so anspruchsvollen Modder zufriedenzustellen^^
Ich habe dann mal eine eigene Namensdatei (DogNames^^) erstellt.
Enthalten sind 15823 Namen von A-Z.
Ich habe das ganze dann noch mit Icebox' Namensdatei zusammengeführt und komme damit auf insgesamt 18218 Namen, das sollte eigentlich ausreichen um jeden noch so anspruchsvollen Modder zufriedenzustellen^^
Vielen Dank für das tolle Tool Sumpfi!
Sumpfi! Vielen Dank! Ich bin nicht sehr Kreativ in Namen-Erfindung...
Da kommt das gerade richtig
@Oruk, man Danke^^ Das sind ja übelst viele Name in der .txt :O
Muss ich jetzt nichts zusammen stellen danke
Hmm...
Bei mir funktioniert das Programm nicht, da kommt immer so eine Fehlermeldung...
Die Anwendung ist wahrscheinlich mit c# geschrieben worden bzw. es braucht .net verweise. Du musst das DotNetFramework installieren.
@Sumpfkrautjunkie
Klein aber fein - Schönes Tool.
Kann ich sicher lich gebrauchen. Edit: Heist das Programm wirklich NemeGen (Titel der Anwendung betrachten)
Edit: Heist das Programm wirklich NemeGen (Titel der Anwendung betrachten)
Heißt bei mir genauso^^
Bei meiner DogName-Datei bekomme ich grade 'Bratwurst' als Krieger- und 'Indiana Jones' als Gelehrtenname, die Namenserkennung hat wohl noch ein paar klitzekleine Macken^^
Aber das liegt an der Namensdatei, das Tool selbst ist einfach nur genial, Hut ab!
Ich glaube ich erstelle mal eine Textdatei mit allen NPC-Namen aus dem normalen Gothic - brauch die Jemand?
Erster!
Ich habe mal gerade eben, wo ich die Skripte durchforst die Textdatei unten erstellt. Es sind alle Namen aus Gothic 2 + Nacht des Raben enthalten!
Gothic 1 folgt später nochmal glaube ich!
Update:
Ich hab das Ding mal etwas überarbeitet und optimiert:
So ist nun der absichtliche () Fehler im Fenstertitel weg.
Die Namenserkennung wurde leicht verändert (ich hoffe zum Guten).
Desweiteren wurde an der Performance geschraubt: Das Filtern von großen Datenmengen sollte jetzt schneller gehen (Listboxen sind recht lahm in der Darstellung, sodass ich sie durch Listviews ersetzt habe, hoffentlich haben sich dabei keine Fehler eingeschlichen, die ich übersehen habe).
Zustätzlich gibts im Paket noch das Tool "Multikill", welches dazu dient mehrfache Einträge aus .txt und .vergeben Dateien zu entfernen (die leicht entstehen, wenn man verschiedene Namensdateien zusammenführt).
Die Bedienung geht über Drag& Drop:
Methode a):
Das Tool starten, dann die gewünschte Daten auf das weiße Fenster ziehen.
Methode b):
Ohne das Tool zu starten einfach die gewünschte Datei auf die Multikill.exe ziehen.
Die Datei wird dann anschließend alphabetisch sortiert, und die überflüssigen Einträge entfernt.
Achtung: Dabei wird die Ursprungsdatei ungefragt überschrieben.