celguar / mangosbot-bots

Bot AI Core from ike3 for cmangos/mangos classic/tbc/wotlk
https://github.com/cmangos/playerbots
85 stars 42 forks source link

Expanded text for bots #342

Open BloodRunsCold opened 5 months ago

BloodRunsCold commented 5 months ago

Hi all, I've been working on adding more text that bots can type in chat with a bunch of help from AI tools.

Covers a broad range of topics such as in-game help or tips, random banter, increased variety in WTB/WTS messages, random memes, references to real life, more variety in reply text, etc.

Contains some mild swearing and no extreme topics. English only. Paladins and WOTLK content are mentioned a couple of times.

Small preview ![Wow 2024-01-13 21-35-05](https://github.com/celguar/mangosbot-bots/assets/123315673/204a9d4c-c294-4030-bebf-f7ae5d9f3b42) ![Wow 2024-01-13 21-36-19](https://github.com/celguar/mangosbot-bots/assets/123315673/5806313d-8fbe-48a3-a9bf-5f74b0f19957) ![Wow 2024-01-13 21-37-19](https://github.com/celguar/mangosbot-bots/assets/123315673/ed42a86a-3397-4582-ad27-973d5c0ba1c0) ![Wow 2024-01-13 21-39-01](https://github.com/celguar/mangosbot-bots/assets/123315673/c1be8fe4-f7da-40d6-9b03-7e78c7bb3eb8) ![Wow 2024-01-13 21-39-58](https://github.com/celguar/mangosbot-bots/assets/123315673/91cfb369-1f87-4373-87e6-a98d36b26c35) ![Wow 2024-01-13 21-41-13](https://github.com/celguar/mangosbot-bots/assets/123315673/d2d6fead-8afd-4724-ad99-a1e61438336f) ![Wow 2024-01-13 21-41-53](https://github.com/celguar/mangosbot-bots/assets/123315673/6839575a-9ce3-4b25-8c0a-d977edbf6dbf) ![Wow 2024-01-13 21-43-12](https://github.com/celguar/mangosbot-bots/assets/123315673/e98a3bdd-960d-43a6-a872-887be5f5470c) ![Wow 2024-01-13 21-44-24](https://github.com/celguar/mangosbot-bots/assets/123315673/4be386bc-3e8e-42de-bf9d-b6b51f0be067) ![Wow 2024-01-13 21-45-22](https://github.com/celguar/mangosbot-bots/assets/123315673/1182169d-bcd7-42ec-b154-45a917a47a2d)
Download + Install instructions for MySQL Workbench Download: Zip file with .sql file inside: [wotlkplayerbots_ai_playerbot_texts.zip](https://github.com/celguar/mangosbot-bots/files/14437101/wotlkplayerbots_ai_playerbot_texts.zip) Raw text (you can copy-paste this directly into a query): https://gist.githubusercontent.com/BloodRunsCold/9793982c26ba2e64b1c6f18300b310f7/raw/042d2eb40e7cb38bf4af565ba8414d31fdf2fdbe/gistfile1.txt Install instructions for MySQL Workbench: - Download the zip file from this post (or just open the raw text in your browser) - Start the server and click on "Database" > "Connect to Database" in MySQL Workbench - Use "127.0.0.1" as Hostname, "3310" as Port, "root" as username, and "123456" as password (without quotes) - Make sure that the "wotlkplayerbots" database is selected - Open the .sql file from the zip archive with something like Notepad++, copy the text and paste it into a new query in MySQL Workbench (or just paste the raw text there instead) - Click on "Execute"

Sources:

28-2-2024 - added around 500 more lines Initial release - contains around 4500 lines of text

celguar commented 5 months ago

Yes we all have very big interest. This looks very good!

BloodRunsCold commented 5 months ago

Yes we all have very big interest. This looks very good!

I've added the initial version of my .csv file along with install instructions to the top post! I assume that's the best way to share it but if not then please let me know if there is a better way. The new lines start at id 7500+ so you should be able to just import it into the existing table.

Also please consider my requests if possible, having the bots be able to yell and mention each other in their messages would take this thing to the next level. It's getting pretty hard to come up with text that isn't directed at anyone specific, even with the help of AI.

Either way, I want to add more text in the future but will probably only update once I manage to add another significant amount. I hope the current version will provide enough entertainment for a while haha.

celguar commented 5 months ago

say_type 0 - say, 1 - yell

celguar commented 5 months ago

thanks for the upload!

BloodRunsCold commented 5 months ago

say_type 0 - say, 1 - yell

It doesn't seem to work for me unless I'm just doing it wrong. Does it need a specific topic to work? I think I tried with both suggest_something and suggest_faction but the bots just type the messages in general chat.

I just reuploaded the .csv, I missed one line of text that started with "Is". If bots type something like "Is there a Blacksmithing trainer in %zone?" in Guild chat or any chat that the bots can reply to, it will crash the server. I found out the hard way and thought I fixed all such lines but apparently missed one, sorry about that. It's the line "Is there a Blacksmithing trainer in %zone?" which I now changed to "Guys is there a Blacksmithing trainer in %zone?"

celguar commented 5 months ago

suggest smth are only used in chat channels, you can't yell in chat channels

celguar commented 5 months ago

btw why you use .csv. Workbench can't export as .sql?

celguar commented 5 months ago

interesting thanks. Can you upload a crashlog after such text?

celguar commented 5 months ago

well suggest_X is also used in guild chat, but still never in say or yell or reply

BloodRunsCold commented 5 months ago

well suggest_X is also used in guild chat, but still never in say or yell or reply

The problem is that I don't know what to put in the "name" field, I tried "suggest_faction" and "suggest_something", and it makes sense that those are used for chat channels, but leaving the "name" field blank or changing it to "yell" also doesn't seem to do anything. Well anyway, not a huge issue, I just thought it'd be fun if the bots could yell out some stuff once in a while but it's not necessary at all.

About the .csv file, I was told that that was the best way to share this kind of text haha. I have now uploaded a .sql file instead.

Here's a crash log when a sentence that begins with "is" is typed in guild chat: f8cb0ba1mangosd.exe[18-1_21-7-8].txt

I think it's because the bots want to reply with "yeah i know [something] is a [something]", but it goes wrong for some reason. Unless my game is completely broken, you should be able to reproduce the crash by typing something like "is anyone there" in a guild chat with bots a few times until they try to reply.

celguar commented 5 months ago

Like I said yell is set in say_type name is bot text name that is used in code. If you see bot saying "LEEEROOOY JENKINGS" when lot of mobs attack, and you want to add more options for that, you add text with same name as that text's name in table, iirc it's "aoe"

celguar commented 5 months ago

if you look at original texts you should see pretty clearlY that suggest faction means ....suggest faction, so %s is replaced by random faction name. suggest instance is for instance, suggest trade is for trade. all these are only used for guild and channels. Other "names" are used in other cases, e.g. "reply" are used to reply to chat messages in channels or in say/yell. But replies I think are hardcoded to be the same type, so if you yell bots around reply with yell too. But other stuff like aoe, taunt, loot etc can be set to say or yell using say_type

BloodRunsCold commented 5 months ago

I should have probably worded my request a bit better. I wanted to occasionally make bots yell specific lines by setting say_type to 1 for text under "suggest_something" and "suggest_faction", and basically have them ignore the chat channel it's supposed to be typed in and yell it anyway.

I wanted for example to add a line that goes "Hey what's up everyone" and put it under "suggest_something", then copy-paste that line with say_type 1 so that bots would sometimes type "Hey what's up everyone" in general/guild chat, but also sometimes yell it. The frequency of yell messages should be low, which is why "suggest_something" and "suggest_faction" would be great because the bots would have a large pool of other messages to choose from.

It would add a bit to the feeling that there are other players on the server if you could sometimes see random funny or amusing red messages come through while questing or grinding in my opinion, but If I'm asking for something ridiculous then just ignore me haha it's not a problem at all!

celguar commented 5 months ago

suggest faction abd suggest something are not used in say or yell , only chat channels and guild

celguar commented 5 months ago

if you want them to say those things somewhere else, you can try use custom::say strategy. Check custom strategy table. You would need to use some trigger to make them say it, e.g. random or seldom. And set say_type 0 or 1 to make it say or yell. and then add new lines for that strategy to that table with phrases you want. e.g. seldom>say::suggest_something!99

Tho I'm checking code right now, and I think say type is broken. Will need to fix it, is probably not used now and they will just say it.

celguar commented 5 months ago

but yeah I can try change suggest smth code to use say/yell instead of a channel sometimes too...

celguar commented 5 months ago

btw your archive is broken

BloodRunsCold commented 5 months ago

To explain it a bit better, I only worked with what was already available, and most of the text I added is in "suggest_faction" and "suggest_something". With my .sql, those two topics each have around 2000 new lines of text added to them, so you will constantly see new messages posted by bots in general chat and guild chat as well. I wanted to keep guild chat clean and wholesome, so things like "you guys are all noobs!" are in "suggest_faction" only, while more normal text is in "suggest_something".

My other request for bot names is also similar, like how bots say "Hey (botname) do you want to join my group?" in chat when two of them are near each other. I would love the ability to use a command for (botname) in "suggest_faction" and "suggest_something" as well so that I could make them "talk" to each other in general and guild chat.

It'd be awesome if you could manage to get yell working for those two! I also re-uploaded the archive, GitHub won't let me put .sql or .rar files in my post so I had to use WinZip, I hope it works now.

BloodRunsCold commented 5 months ago

By the way, looks like typing anything that begins with "are" in guild chat also eventually causes a crash when bots try to reply.

If that is truly the case and it's not just in my game, you might want to check line 156 in the playerbot texts table that says "Are there a good quests in %zone?" under "suggest_something".

Here's the crash log in case it might be helpful: f8cb0ba1mangosd.exe[19-1_17-38-10].txt

I changed the lines that begin with "are" from my added text and re-uploaded the archive just now.

Edit: same thing with "am". I changed every line in "suggest_something" so that none of them start with "be", "is", "am", "were", "was", and "are," and re-uploaded the archive again.

celguar commented 5 months ago

I repeat suggest_faction is to suggest grind some rep faction and is only used in general or guild chat where nobody is near suggest_instance is for suggest dungeon (aka LFG), suggest something is for stuff that doesn't fit. None of these are used in say or yell so no bot name is gonna be used there anyway

celguar commented 5 months ago

if you want them to say those things somewhere else, you can try use custom::say strategy. e.g seldom>say::suggest_something!99

As for names I can try add "nearest player name" I guess

BloodRunsCold commented 5 months ago

if you want them to say those things somewhere else, you can try use custom::say strategy. e.g seldom>say::suggest_something!99

As for names I can try add "nearest player name" I guess

Ah okay thanks I'll try using custom::say then. Nearest player name would be awesome, but again, none of what I've requested is really important, it's just some fun things I could play around with to add some personality to the bots. If it's too much trouble then we can just forget about it, I'm sure you have more important things to work on.

My only real request is to have the crashes caused by linking verbs such as "is" and "am" fixed. Adding new sentences without those words is really hard!

Quest79 commented 5 months ago

Is there a reason why your sql is dropping and remaking the entire table? Wouldn't adding to the existing table be better?

BloodRunsCold commented 5 months ago

Is there a reason why your sql is dropping and remaking the entire table? Wouldn't adding to the existing table be better?

Yeah sorry, still getting the hang of MySQL and I just posted what Workbench exports by default. I've re-uploaded the archive again, it'll only insert the new lines of text into the existing table now.

celguar commented 5 months ago

gonna try add a hackfix for these words starting with is am etc

celguar commented 5 months ago

do you still have the OG texts with them

BloodRunsCold commented 5 months ago

do you still have the OG texts with them

Yes, I tested some more and it looks like the line doesn't necessarily have to start with one of those words, simply having "is" in a sentence that bots can post in guild chat caused my game to crash a few times with the same crash log as the ones I posted here.

Here are the original lines under "suggest_something" that have those words in them:

Line 136: "Anyone is looking for %role? Line 137: "%role is looking for quild." Line 147: "%zone: is anybody here?" Line 148: "%zone: where is everyone?" Line 152: "%zone is the best place to be!" Line 156: "Are there a good quests in %zone?" Line 158: "Who is in %zone?" Line 160: "%zone is the worst place to be."

celguar commented 5 months ago

I've seen them many times in game and dont remember any crash , are you sure these are thet cause the crash?

BloodRunsCold commented 5 months ago

It's related to some combination of those words for sure, I can guarantee a crash by spamming "is anyone there" in guild chat a few times, and the crash log looks the same as when the game otherwise randomly crashes.

This line is always in the crash log: "ai::ChatReplyAction::ChatReplyDo+1BF4 D:\a\mangosbot-bots\mangosbot-bots\src\modules\Bots\playerbot\strategy\actions\SayAction.cpp line 561"

I looked up that line and it says "msg = "yeah i know " + word[verb_pos - 1] + " is a " + word[verb_pos + 1];"

So I can only assume that it has to do with bots trying to reply to something but causing a crash instead.

I tested changing all "suggest_something" lines to "suggest_faction" instead, and the game did not randomly crash anymore during a 3 hour test.

Here is a crash log from yesterday after a random crash: f8cb0ba1mangosd.exe[22-1_2-44-38].txt

And here is one from just now when I crashed the server by typing "is anyone there" in guild chat 4 times: f8cb0ba1mangosd.exe[22-1_16-25-15].txt

celguar commented 5 months ago

Hm I'm asking is there and it works for me without crash..wierd Image

celguar commented 5 months ago

Nevermind I spammed in /1 and it crashed

BloodRunsCold commented 5 months ago

Nevermind I spammed in /1 and it crashed

The newest beta fixed the issue I think, no more crashes when typing something with "is" or when bots send similar messages in guild chat. Looks like bots no longer send any messages in trade chat though, not sure if that was intended.

I'll continue adding more text, thank you for the fix!

celguar commented 5 months ago

They only send suggest_trade in trade chat I think.

BloodRunsCold commented 5 months ago

Nope, they don't send anything in /2 anymore unfortunately, not even the original suggest_sell or suggest_trade lines.

Wow 2024-02-07 01-27-09

celguar commented 4 months ago

@BloodRunsCold Hey! Your downloaded archive on first post is only 400kb and has only one text

BloodRunsCold commented 4 months ago

@BloodRunsCold Hey! Your downloaded archive on first post is only 400kb and has only one text

Weird! I just re-uploaded it with an updated .sql file. Also, here's a link to the raw text from a Gist I just created, I think you can copy-paste that and execute it in a query:

https://gist.githubusercontent.com/BloodRunsCold/9793982c26ba2e64b1c6f18300b310f7/raw/042d2eb40e7cb38bf4af565ba8414d31fdf2fdbe/gistfile1.txt

celguar commented 4 months ago

I'm sorry you probably made it one line and I thought it's one text 😁