En la pantalla de creación de personaje añades un campo que sea: surname (opcional). Con las mismas restricciones que el name (campo actual). Permitir cambiar el surname en las babershop. O también lo puedes poner como opción en la ventana de personaje y/o habilitar un comando.
En los placeholdes usas el concat(Name Surname) (quest, placas de personaje, tooltip, etc) para el resto de juego sigues usando el name (scripts, inv, who, w, etc, allá donde hace falta identificar inequívocamente al usuario por nombre o nombre-servidor). De esta manera, solo afectas a la visualización / interfaz (que es lo que hace el addon). La lógica de aplicación a nivel de servidor, bd, etc no tiene por qué trasladarse a la interface (de hecho, por algo se tratan los datos y los addons funcionan más allá de alguna falta de funcionalidades o restricciones base).
Evidentemente, como surname puede estar vacío (es opcional), este debe ser una cadena vacía a la hora de hacer el concat si el usuario no lo ha indicado. También puedes hacer que sea opcional que se muestre o no mediante una cvar.
En resumen, solo tienes un campo nuevo en la bd que solo se usa para mostrar en casos muy concretos.
Con esto has puesto apellidos sin romper el juego y controlas el cambio: solo aplica a visualización y tiene las mismas restricciones que el name (sabes el lenght maximo de name + surname, sabes los caracteres permitidos, etc.); así que puedes saber donde te cabe dicho concat o no, por ejemplo, ¿entra en la placa de personaje un nombre de 20chars? ¿hay que hacer una elipsis?
En cuanto las comillas y los guiones, se podría liberar para el surname sin major problema, ja que solo se usa para visualizar. El - server lo podrían poner a otro nivel del personaje donde se usa como visualización (en tooltips y otros lugares) para que no haya confusión. En el name no, a no ser que actualicen los scripts tipo “inv”, donde por ejemplo, funcionaran con dos parametros/args, el primero el nombre del pj y el segundo el server (en vez de usar un guion y un explode donde el nombre de server es el último elemento de la array, entendiendo que lo hacen así).
Again, no deja de ser lo mismo que el addon pero implementado en el juego base (en vez de guardarse en una configuración del addon se guarda en una base de datos).
Pero es que además, como ha dicho Steinn, ya existe en el juego los títulos. Mete un titulo personalizable a nivel de personaje que se comporte como surname y se muestre donde se muestran el título actualmente a nivel del juego (que solo es un par de sitios a lo sumo). Y a fines prácticos, ja estaría también. ¿Esto significa que debo de ir a un sitio que ponga títulos y ponerme el mío? No, que por debajo se trate como un título, no implica que en la interface se traslade / llame así o este en la sección de títulos.
Y en cuanto a la bolsa principal, que también salió el tema, idem de idem. Si realmente es un problema tocar la estructura existente, se crea una nueva complementaria: extra_slots asociado a la bolsa principal como clave foránea a un documento / filas de una tabla / collection y en se documento / filas de una tabla / collection se definen los extra_slot cada uno con su id, que contiene, cantidad, etc. Cuando vas a renderizar la bolsa principal, renderizas los slots de toda la vida más los extra_slots. Cuando actualizas un slot de la bolsa principal, has de informar al servidor si es una extra_slot o no, su id y el cambio, así el backend sabe donde tocar… El buscador y scripts que trabajen con las bolsas solo se les ha de indicar que han de trabajar con nuevos slots asociados a la principal. Tendrá algún más menos, pero a ver… ingenieros… no las vas a poder cambiar como las demás, pero igual si puedes comprar tokens que amplíen esos extra_slots… uhh, soluciones…
No cal decir, que los cambios se pueden hacer progresivamente por zonas, reinos o conjunto de personajes. Además, para algo están los reinos de pruebas, las betas internas, etc. El impacto sobre retail / live no debería ir más allá del mantenimiento semanal habitual.
Que también tengo una cosa clara, si no están estas cosas no es por limitaciones técnicas irresolubles y que harían implosionar el juego… es sencillamente porque así se quiere y así se desea por parte de la compañía. De un tiempo hacia aquí muchas cosas que se daban por imposible está sucediendo de forma progresiva. Simplemente, falta otro cambio de filosofía respecto a ese tema por parte de la compañía para que se ejecute. Seguramente, cambios de este tipo deben pasar unos filtros internos que, a día de hoy, no cumplen marcando su nula prioridad: a la espera de otras funcionalidades que afectaran, a la espera de cambios en bd que afectaran, impacto en el equipo de desarrollo (disponibilidad), nivel de aportación, publico objetivo, cantidad de soluciones alternativas sin tocar nada (por ejemplo, si ya hay addons que lo hacen o lo de las bolsas se soluciona poniendo bolsas más grandes…), impacto en la calidad de vida en el juego, ¿queda alguien que supiera como iba esta meh o el que se ponga va a estar días para entenderlo?, etc