Bienvenue sur le Wiki Necrosis !



Speech.lua : Passe deine Beschwörungsnachrichten an!

Wieso ist das eine Datei und keine in das Spiel integrierte Funktion?

Als ich das erste mal solch eine Funktion in Necrosis eingebaut habe, hatte ich ein kleines UI um meine Sätze zu ändern. Nach einem Absturz des Spiels (Error 132) habe ich alle Sätze verloren, die ich in vielen Stunden Arbeit geschrieben hatte. Deshalb habe ich entschieden sie für WoW nur zum Lesen zur Verfügung zu stellen :)

Standarddatei

Für alle die es nicht wagen oder wünschen die Datei zu verändern (ich schwöre, es ist wirklich einfach!), kommt Necrosis mit einigen Standardsätzen die euch helfen können, eure eigenen Sätze zu erstellen. Einige der Sprüche sind wirklich alt (die ältesten von Version 1.4); Zögere nicht diese zu korrigieren; Um neue Sprüche hinzuzufügen oder einige zu löschen / ändern, kannst du deine Vorschläge in unserem Forum posten. Du kannst auch deine ganzen Daten als Beispiele zur Inspiration für anderen bereit stellen.

Die Datei verändern

Datei Strucktur

Es gibt 4 Bereiche in dieser Datei:

  • Der erste Bereich beinhaltet die Nachrichten die angezeigt werden, wenn man einen Spieler Beschwört. Der Bereich beginnt mit:
	NECROSIS_INVOCATION_MESSAGES = {   
  • Der nächste Bereich beinhaltet die Nachrichten für die Seelenstein Wiederbelebung und beginnt mit:
	NECROSIS_SOULSTONE_ALERT_MESSAGE = {
  • Der Bereich für die Dämonen:
	NECROSIS_PET_MESSAGE = {
  • Und zu guter Letzt der Bereich der Kurznachrichten:
	NECROSIS_SHORT_MESSAGES = {

Nun, ran ans Eingemachte… ;)

Einen Spieler beschwören

Hier ein kleines Beispiel für diesen Bereich der Datei:

NECROSIS_INVOCATION_MESSAGES = {
		[1] = {
			"Arcanum Taxi Cab! Ich beschw\195\182re <target>, bitte klicke auf das Portal.",
		},
		[2] = {
			"Willkommen an Bord, <target>, du fliegst mit ~Sukkubus Air Lines~ zu <player>...",
			"Die Stewardessen und ihre Peitschen werden Dir w\195\164hrend der Reise zur Verf\195\188gung stehen!",
		},
		[3] = {
			"Wenn Du das Portal klicken w\195\188rdest, wird jemand mit dem Namen <target> erscheinen, und Deinen Job f\195\188r Dich tun!",
		},
		[4] = {
			"Wenn Du nicht m\195\182chtest, dass eine auf dem Boden kriechende, schleimige und einfach gr\195\164ssliche Kreatur aus diesem Portal kommt,",
			"klicke drauf und hilf <target>, so schnell wie m\195\182glich einen Weg zur H\195\182lle zu finden!",
		},
	};


\195\160? Was ist den das?

Lass uns ein wenig über diese eigenartigen Nummer reden. Diese Nummer erlauben es uns, spezielle Zeichen wie ä ö ü ß in WoW anzeigen zu lassen, da solche Zeichen auf einer Englischen Tastatur nicht existieren. Es gibt verschiedene Wege eine Datei zu encodieren, und das übliche Format ist nicht in der Lage solche Zeichen anzuzeigen wie WoW es tut. Deshalb müssen wir das auf diese Weise umgehen.

Hier findest du eine kleine Tabelle zum konvertieren der geläufigsten Zeichen.

Bedeutung des Codes

Die “Leerzeichen” am Anfang einer Zeilen sind keine wirklichen Lehrzeichen, sondern Tabulatoren. Sie helfen den Code lesbarer zu machen, aber sie sind nicht zwingend notwendig. Dir wird vielleicht auffallen, dass ich den Inhalt zwischen { und einem } mit einem Tab einrücke.

Betrachte diese geschweiften Klammern als eine große Tabelle. Jede Klammer von {} ist eine Zelle. Wie du im Code sehen kannst, kann jede Zelle auch weitere Zellen beinhalten.

Also, wir haben eine große Zelle mit der Bezeichnung NECROSIS_INVOCATION_MESSAGES und in dieser Zelle haben wir 3 weitere mit den Bezeichnungen 1, 2, 3 und 4. Diese stehen für vier verschiedene Beschwörungssprüche von Necrosis, welches bei deinem nächsten Teleport eine davon auswählt.

Die zweite und vierte Zelle ist etwas anders als die anderen beiden: Sie haben zwei Zeilen. Diese beiden Sätze sind jeweils auch durch ein Komma getrennt. Im Spiel selber wird dadurch bewerkstelligt, im Chat zwei statt nur einer Nachricht zu schreiben. Das ist vor allem nützlich, wenn deine Sätze zu lang oder zu unübersichtlich sind.

Eine Nachricht einfügen

Um eine Nachricht einzufügen, musst du all diese Erklärungen im Kopf behalten. Nun, stellen wir uns mal vor, wir wollen solch eine Nachricht im Spiel erscheinen lassen:

Du sagst: Hey, hast du diesen lustigen Typen mit seiner Axt und dem Schild gesehen?
Du sagst: Nicht? Wir können nicht weiter, bis ich ihn beschworen habe?
Du sagst: Ok, ok, jetzt klick schon auf das Portal!

Da es schon vier Nachrichten gibt, wäre das nun die fünfte. Die Nachricht hat mehrere Zeilen, weshalb wir sie durch ein Komma trennen müssen.

So würde der Code aussehen:

[5] = {
	"Hey, hast du diesen lustigen Typen mit seiner Axt und dem Schild gesehen?",
	"Nicht? Wir k\195\182nnen nicht weiter, bis ich ihn beschworen habe?",
	"Ok, ok, jetzt klick schon auf das Portal!"
},

Unsere Vollständige Funktion würde nun so aussehen:

NECROSIS_INVOCATION_MESSAGES = {
		[1] = {
			"Arcanum Taxi Cab! Ich beschw\195\182re <target>, bitte klicke auf das Portal.",
		},
		[2] = {
			"Willkommen an Bord, <target>, du fliegst mit ~Sukkubus Air Lines~ zu <player>...",
			"Die Stewardessen und ihre Peitschen werden Dir w\195\164hrend der Reise zur Verf\195\188gung stehen!",
		},
		[3] = {
			"Wenn Du das Portal klicken w\195\188rdest, wird jemand mit dem Namen <target> erscheinen, und Deinen Job f\195\188r Dich tun!",
		},
		[4] = {
			"Wenn Du nicht m\195\182chtest, dass eine auf dem Boden kriechende, schleimige und einfach gr\195\164ssliche Kreatur aus diesem Portal kommt,",
			"klicke drauf und hilf <target>, so schnell wie m\195\182glich einen Weg zur H\195\182lle zu finden!",
		},
		[5] = {
			"Hey, hast du diesen lustigen Typen mit seiner Axt und dem Schild gesehen?",
			"Nicht? Wir k\195\182nnen nicht weiter, bis ich ihn beschworen habe?",
			"Ok, ok, jetzt klick schon auf das Portal!"
		},
};

Einfach und Kristallklar!

Wenn du eine Nachricht löschen möchtest, die du nicht magst, musst du diese nur von ihrer Nummer aus bis zur abschließenden Klammer löschen und eventuell die nachkommenden Sprüche neu nummerieren.

Seelenstein

Seelensteinnachrichten funktionieren auf genau die gleiche Weise wie das Beschwören eines Spielers. Easy!

Dämonen

Die Theorie

Das war nicht wirklich schwer, oder? Das wird dir vielleicht etwas schwerer vorkommen, wenn du aber schon mit dem Teleportsprüchen zurecht gekommen bist, wirst du auch verstehen, wie man die Sprüche der Dämonen anpassen kann.

Nun…gerade eben hatten wir so etwas wie das hier:

Beschwörungs-Sprüche
Spruch 1
Spruch 2 (Teil 1) Spruch 2 (Teil 2)
Spruch 3

Jetzt wollen wir genau das gleiche, nur für jeden Dämon.

Dein Wichtel z.B. braucht eine Tabelle die verschiedenste Sprüche beinhalten soll und jede dieser Sprüche kann mehrere Zeilen haben. Genauso geht das auch mit deinem Leerwandler, Sukkubus, Teufelsjäger und Teufelswächter.

Und weil deine Dämonen nun mal…. Dämonen sind, werden wir ihre Tabelle in eine größere mit der Bezeichnung NECROSIS_PET_MESSAGE stecken.

Gehen wir mal davon aus, dass wir nur die ersten drei Dämonen haben. Jeder Dämon soll dabei zwischen zwei Sprüchen wählen können:

Du sagst: Komm zu mir, Typ des Dämons!

oder

Du sagst: Ich habe meinen Typ des Dämons gewählt…
Du sagst: Nehme dich vor dem Dämon in acht!

Jetzt müssen wir nur das gleichen tun, was wir schon bei den Beschwörungsnachrichten getan haben. Das einzige was du dabei beachten musst, ist, dass ich Nummern anstatt den Namen der Dämonen verwendet habe, da es für Necrosis einfacher ist damit zu arbeiten.

[1] = {
	[1] = {
		"Komm zu mir, Wichtel!"
	},
	[2] = {
		"Ich habe meinen Wichtel gewählt...",
		"Nehme dich vor dem Dämon in acht!,
	},
};
[2] = {
	[1] = {
		"Komm zu mir, Leerwandler!"
	},
	[2] = {
		"Ich habe meinen Leerwandler gewählt...",
		"Nehme dich vor dem Dämon in acht!,
	},
};
[3] = {
	[1] = {
		"Komm zu mir, Sukkubus!"
	},
	[2] = {
		"Ich habe meinen Sukkubus gewählt...",
		"Nehme dich vor dem Dämon in acht!,
	},
};

Wie du sehen kannst, ist es fast das gleiche wie die Teleport-/Seelensteinsprüche. Wir müssen das ganze nur noch in die Allgemeine Dämonensprüche-Tabelle einfügen:

NECROSIS_PET_MESSAGES = {
	[1] = {
		[1] = {
		"Komm zu mir, Wichtel!"
		},
		[2] = {
			"Ich habe meinen Wichtel gewählt...",
			"Nehme dich vor dem Dämon in acht!,
		},
	};
	[2] = {
		[1] = {
		"Komm zu mir, Leerwandler!"
		},
		[2] = {
			"Ich habe meinen Leerwandler gewählt...",
			"Nehme dich vor dem Dämon in acht!,
		},
	};
	[3] = {
		[1] = {
		"Komm zu mir, Sukkubus!"
		},
		[2] = {
			"Ich habe meinen Sukkubus gewählt...",
			"Nehme dich vor dem Dämon in acht!,
		},
	};
};

Das ist schon alles! Hier nochmal die Bedeutung der voran stehenden Nummern:

  1. Wichtel
  2. Leerwandler
  3. Sukkubus
  4. Teufelsjäger
  5. Teufelswächter
  6. Dämon dessen Namen und/oder Typ noch unbekannt sind
  7. Mount

Was tun, wenn beim Leerwandler nichts gesagt werden soll?

Lasse die Spalte dafür einfach leer. In diesem Beispiel sähe das so aus:

NECROSIS_PET_MESSAGES = {
	[1] = {
		[1] = {
		"Komm zu mir, Wichtel!"
		},
		[2] = {
			"Ich habe meinen Wichtel gewählt...",
			"Nehme dich vor dem Dämon in acht!,
		},
	};
	[2] = {
	};
	[3] = {
		[1] = {
		"Komm zu mir, Sukkubus!"
		},
		[2] = {
			"Ich habe meinen Sukkubus gewählt...",
			"Nehme dich vor dem Dämon in acht!,
		},
	};
};

Kurznachrichten (keine SMS ;P)

Diese Kurznachrichten unterscheiden sich ein wenig von den anderen. Sie haben eigentlich nur zwei Sätze: Einer für das beschwören eines Spielers, der andere für das setzen eines Seelensteins. Sobald das Kurznachrichtensystem aktiv ist, wählt Necrosis nicht mehr zufällig einen der Sprüche aus der Tabelle aus, sondern nimmt nur diese beiden her. Diese Funktion erlaubt es durch Necrosis verursachten “Spam” zu vermeiden, wenn dein Raidleiter etwas…sagen wir einfach…penibel ist :P Normalerweise musst du diese Nachrichten nicht ändern, denn für ihren Zweck sind sie schon bestens geeignet: kurz und präzise.

Tags

Diese Tags erlauben es dir, deine Nachrichten etwas passender in's Spiel zu integrieren. Füge sie einfach in deine Sätze ein und Necrosis wird sie automatisch durch den gewünschten Wert ersetzten.

  • <player> : Fügt deinen Namen ein
"Danke das Sie <player> als Ihren persönlichen Beschwörer gewählt haben!"

JohnDoe sagt: Danke das Sie JohnDoe als Ihren persönlichen Beschwörer gewählt haben!

  • <target> : Fügt den Namen deines Ziels ein
"Ich beschwöre <target>, bitte klickt auf das Portal!"

JohnDoe sagt: Ich beschwöre TheMan, bitte klickt auf das Portal!

  • <pet> : Fügt den Namen des Pets ein, dass du gerade beschwörst
"Ich brauche wirklich etwas Hilfe...",
"<pet>, nimm deine Peitsche und folge mir!"

JohnDoe sagt: Ich brauche wirklich etwas Hilfe…
JohnDoe sagt: Betriana, nimm deine Peitsche und folge mir!



Es gibt auch ein paar spezielle Tags, welche im Satz zwar nicht angezeigt werden, aber die Art der Ausgabe verändern.

  • <emote> : Ändern den Satz in einen /e
"<emote>liest in einem altertümlichen Buch...",
"Mal sehen, Ich glaube ich kann einen Dämon beschwören, der uns helfen wird!"

JohnDoe liest in einem altertümlichen Buch…
JohnDoe sagt: Mal sehen, Ich glaube ich kann einen Dämon beschwören, der uns helfen wird!

  • <after> : Dieser Spruch wird erst dann angezeigt, wenn die Beschwörung abgeschlossen ist. Normale Beschwörungsnachrichten kommen sobald man mit der Beschwörung beginnt.
  • <sacrifice> : Dieser Spruch erscheint nur dann, wenn du deinen Dämonen opferst.



Und jetzt weist du (hoffentlich), wie du deine eigenen Sprüche erstellen kannst :)


Personal Tools