Bienvenue sur le Wiki Necrosis !
Speech.lua : Customize your summon messages !
Why is this a file instead of a game option ?
The first time I created such a function in Necrosis, I had a little UI to change my sentences. After a game crash (error 132), I lost the whole bunch of sentences I took several hours to write. So I decided to make them read-only for WoW :)
Default File
For those who do not dare or do not wish to modify that file (but I swear it is really easy!), Necrosis comes with a few default sentences you can look at for inspiration in creating yours. Those sentences are quite old (1.4 for the oldest); do not hesitate to correct them (spelling / grammar / vocabulary); to add new sentences or definitely delete / modify some, feel free to express your point of view on the forum. You can also put your whole file here as examples if somebody wants to take inspiration.
Modding the file
File Structure
There are 4 parts in the file :
- One part for messages when you summon a player, which begins with:
NECROSIS_INVOCATION_MESSAGES = {
- One part firing when you cast a Soulstone Resurrection, which begins with:
NECROSIS_SOULSTONE_ALERT_MESSAGE = {
- The demon part, you can recognize thanks to:
NECROSIS_PET_MESSAGE = {
- The part used by the Short Messaging:
NECROSIS_SHORT_MESSAGES = {
Lets talk about details…
Summon player
Here is an example of this part of the code :
NECROSIS_INVOCATION_MESSAGES = {
[1] = {
"Arcanum Taxi Cab ! I am summoning <target>, please click on the portal.",
},
[2] = {
"Welcome aboard, <target>, you are flying on the ~Succubus Air Lines~ to <player>...",
"Air Hostesses and their lashes are at your service during your trip !",
},
[3] = {
"If you click on the portal, someone named <target> will appear and do your job for you !",
},
};
Meaning of the code
The “spaces” at the beginning of lines are not spaces, but Tabulations. It helps the code to be clear and understandable, but it is not mandatory. You will notice that every time I open a {, I add a Tab to the following lines until I reach the } which comes with it.
See thoses braces as a big table. Each brace of {} would be a cell. You can see that a cell can contain cells too.
So, we have a big cell called NECROSIS_INVOCATION_MESSAGES, and within it we have 3 cells called 1, 2 et 3. Those are three different summoning messages Necrosis will be able to choose during your next TP. They are separated by commas.
The cell 2 is a little different from the others: it has two lines where every other around has only one. Thoses two sentences are also separated by a comma. Back in game, it allows to make two lines of chat instead of one, for example if your sentence is too long or not enough clear.
Adding a message
To add a message, you must keep all those explanations in mind. Now, let us imagine that you want to write a summoning message which says back in WoW:
You says: Eh, have you seen this funny guy with its axe and shield ?
You says: Uh ? We do not go any further since I have not summoned him ?
You says: Ok, ok, click on the portal !
There is already 3 summoning speeches; This one will be the forth. It has several lines, so we will have to seperate them with commas.
So we will code :
[4] = {
"Eh, have you seen this funny guy with its axe and shield ?",
"Uh ? We do not go any further since I have not summoned him ?",
"Ok, ok, click on the portal !"
},
And well, our complete fonction will look like that :
NECROSIS_INVOCATION_MESSAGES = {
[1] = {
"Arcanum Taxi Cab ! I am summoning <target>, please click on the portal.",
},
[2] = {
"Welcome aboard, <target>, you are flying on the ~Succubus Air Lines~ to <player>...",
"Air Hostesses and their lashes are at your service during your trip !",
},
[3] = {
"If you click on the portal, someone named <target> will appear and do your job for you !",
},
[4] = {
"Eh, have you seen this funny guy with its axe and shield ?",
"Uh ? We do not go any further since I have not summoned him ?",
"Ok, ok, click on the portal !"
},
};
Easy and crystal clear !
If you want to delete a message that you do not like, you just have to delete it from its number to its closing brace, and then renumber the next ones.
Soulstones
Soulstoning messages work the very same way as summoning a player. Easy !
Demon Stuff
Assumption
That was not that difficult, huh ? Now, it may seems to you a little harder, but you will see that if you succeeded in understanding how to write your own TP speeches, you will understand how to write your demons' ones.
Well, just before we had something like that :
| Summoning Speeches | |
|---|---|
| Speech 1 | |
| Speech 2 (part 1) | Speech 2 (part 2) |
| Speech 3 | |
Now, we simply want the same thing for each demon.
For example the Imp wants a table with several speeches to pick up, and each ones can be made of several lines. And so do your Voidwalker, your Succubus, your Felhunter and your Felguard.
And as your demons are…. demons, we will sort these tables in a bigger one called NECROSIS_PET_MESSAGE.
Let us assume there are only the three first demons. For each demon, we want to choose between two things to say:
You says: Come to me, demon type !
or
You says: I'll take my demon type…
You say: Be aware of the demon !
Now we just have to do the same for the summoning speeches. The only thing to know is that I used number instead of demon names or types, because it is easier for Necrosis to work with.
[1] = {
[1] = {
"Come to me, Imp !"
},
[2] = {
"I'll take my Imp",
"Be aware of the demon !,
},
};
[2] = {
[1] = {
"Come to me, Voidwalker !"
},
[2] = {
"I'll take my Voidwalker...",
"Be aware of the demon !,
},
};
[3] = {
[1] = {
"Come to me, Succubus !"
},
[2] = {
"I'll take my Succubus...",
"Be aware of the demon !,
},
};
You can see it is quite exactly the same thing as TP / Soulstoning speeches. We just need to put that in the general demon summoning speech table :
NECROSIS_PET_MESSAGES = {
[1] = {
[1] = {
"Come to me, Imp !"
},
[2] = {
"I'll take my Imp",
"Be aware of the demon !,
},
};
[2] = {
[1] = {
"Come to me, Voidwalker !"
},
[2] = {
"I'll take my Voidwalker...",
"Be aware of the demon !,
},
};
[3] = {
[1] = {
"Come to me, Succubus !"
},
[2] = {
"I'll take my Succubus...",
"Be aware of the demon !,
},
};
};
That is all ! Here is the meaning of the first table numbers :
- Imp
- Voidwalker
- Succubus
- Felhunter
- Felguard
- Demon of which we do not know the name or the type
- Steed
And if I do not want any speech for the Voidwalker ?
Just leave it as a blank table. For example, in this case:
NECROSIS_PET_MESSAGES = {
[1] = {
[1] = {
"Come to me, Imp !"
},
[2] = {
"I'll take my Imp",
"Be aware of the demon !,
},
};
[2] = {
};
[3] = {
[1] = {
"Come to me, Succubus !"
},
[2] = {
"I'll take my Succubus...",
"Be aware of the demon !,
},
};
};
Short Messaging
The short messaging is a little different. It has only two sentences: One for summoning players, the other for soulstoning them. When the Short Messaging is active, Necrosis does not pick up randomly its speeches in their tables anymore, it uses this table. It allows punctually to avoid the chat flooding with Necrosis if your raid leader is… fastidious :P
Normally, you do not have to change those sentence because they are perfect for their goal: being compact and precise.
Tags
Tags allow your messages to fit the game a little more. You put them into your sentences, and they are automatically replaced with some game element by Necrosis.
- <player> : Put your name in the sentence
"Thank you for choosing <player> as your personal summoner !"
JohnDoe says: Thank you for choosing JohnDoe as your personal summoner !
- <target> : Put the name of your target in the sentence
"I am summoning <target>, please click on the portal !"
JohnDoe says: I am summoning TheMan, please click on the portal !
- <pet> : Put the name of the demon you are summoning in the sentence
"I will really need some help...", "<pet>, take your lash and come !"
Marzhin says: I will really need some help…
Marzhin says : Betriana, take your lash and come !
There is also special tags which do not show anything but change the sentence they are put in.
- <emote> : Change the sentence into a /e
"<emote>is reading an ancient book...", "Let's see, I think I can summon a demon to help us !"
JohnDoe is reading an ancient book…
JohnDoe says: Let's see, I think I can summon a demon to help us !
- <after> : Summoning speeches are fired when you launch your demon summon. With this tag in your sentence, it will be fired after your demon is successfuly summoned
- <sacrifice> : This sentence will appear when you use Demoniac Sacrifice on the demon you summoned.
And now you know how to customize your speeches :)