I came to the chat files to find that there are many many voice lines asigned to all kind of diferent situations, more than 500 for each character. However, the only voicelines I ever get in games are the “start game”, plus the “defeated” one and sometimes some comentary about who got what treasure first.
Is there a way to make the AI more talkative?
Yes, aiChats.xs. I know I’ve found and implemented some of the unused chats, and I know some other people were interested in doing the same but I’m not sure if they wound up implementing them also.
So…how do you did it?
La verdad es que usan el 10% de los diálogos, es una gran pena porque podrían ser más interactivos. Creo que los desarrolladores no encontraron una manera de aplicarlos para que no sean molestos.
Me pongo a pensar que la IA enemiga podría aplicar una burla dirigida al jugador humano y si tienes aliado que aplique al minuto una contra burla según quien fue el enemigo que habló.
La idea no es saturar el chat, se supone que sea random en las partidas grandes, pero que si hay una burla que exista una respuesta.
Si necesitan recursos que sean capaces de pedir, muy pocos usan estos diálogos.
Burlas según el primer edificio militar que ve la IA, se que existen muchas burlas con respecto a la civilización y sus unidades. Por ejemplo si la IA ve un blocao ruso puede intuir que hará infantería y tirar la burla “oh, los rusos, su infantería son como conejitos en el campo de batalla”.
Didn’t some of those get removed in DE? I really wanted to include all those ones about the first buildings it saw but thought they were removed between legacy and DE.
@LtSturm1 It’s relatively straightforward, you just use the sendStatement()
function under the circumstances that you want to send a chat. I’ll try to find an example later. Most of them are in aiChats, but a lot of them are just sprinkled throughout the rest of the ai.
Example:
int tcID = getUnit(cUnitTypeAgeUpBuilding, targetPlayer, cUnitStateAlive);
if (tcID >= 0)
{ // We see his TC for the first time.
if (getUnitByLocation(cUnitTypeUnit, cMyID, cUnitStateAlive, kbUnitGetPosition(tcID), 50.0) >= 0)
{ // I have a unit nearby, presumably I have LOS.
sendStatement(targetPlayer, cAICommPromptToEnemyISpotHisTC, kbUnitGetPosition(tcID));
}
xsDisableSelf();
}
Yo creo que donde más brillarían son en los juegos en equipos.
Digo, si nos vamos full roleplay, es raro hablar con tus enemigos, no crees?
Pero si juegas con un aliado, tiene perfecto sentido que te pida ayuda, se burle del enemigo e inclsuive, si es mayor su nivel al tuyo, que te da algunos consejos como producir más artillería.
Así yo creo que podrías implementarlo sin ser molesto.
Exactamente la IA podria ser más dinámica en este sentido