Como hago? duda cambiar codigo de un repositorio y modificar parametros

TheSeeker

buenas, estoy trasteando con un engine de quake2 "Q2PRO", no tengo ni idea de codigo ni nada pero ahi estoy con el visual studio code y el chatgpt con jailbreak trasteando, la cosa es... estoy intentando modificar el codigo de este repositorio de github https://github.com/skullernet/q2pro para poder jugar en servidores con la opcion de cl_thirdperson 1, en singleplayer funciona perfectamente pero en multiplayer o servidores online esta protegida por cheat_protected, con la ayuda del gpt vi que en ciertos archivos esta la configuracion de de este parametro forzando siempre el FirstPersonView para que sea este 1, como coño hago para que se ejecute el cl_thirdperson en cualquier entorno o forzar el codigo para que no salte como cheat_protected, se que la configuracion de esto esta localizada en src/client/entities.c y main.c, nose si lo estoy haciendo realmente bien, si alguien puede dar un idea de si voy bien encaminado o ni de puta coña xD,

pd: actualmente e modificado algunos parametros para forzar que el ThirdPersonView sea 1 y que sea el prioritario.. estoy con problemas para compilar el codigo modificado ya que la informacion que tengo es que se compila con "meson" lo tengo instalado en el vistual studio code pero no paso del error de que el syntax no existe o que visual studio code no me deja correr meson aunque este instalado correctamente.

TheSeeker

voy a dar informacion mas detallada, por un lado en src/client/main.c nos encontramos con

 cl_thirdperson = Cvar_Get("cl_thirdperson", "0", CVAR_CHEAT);
    cl_thirdperson_angle = Cvar_Get("cl_thirdperson_angle", "0", 0);
    cl_thirdperson_range = Cvar_Get("cl_thirdperson_range", "60", 0);

en src/client/entities.c me encuentro con

static void CL_FinishViewValues(void)
{
    centity_t *ent;

if (!cl_thirdperson->integer)  <---- integer == 1 ?
    goto first;

ent = &cl_entities[cl.frame.clientNum + 1];
if (ent->serverframe != cl.frame.number)
    goto first;

if (!ent->current.modelindex)
    goto first;

CL_SetupThirdPersionView();   <--- cambiar aqui a First?
return;

first:
    CL_SetupFirstPersonView();  <--- aqui se fuerza que sea siempre FirstPersonView cierto? 
B

Prueba a cambiar

CVAR_CHEAT

por

0

en la línea 2742 de main.c

1 respuesta
TheSeeker

#3 aqui ya habia modificado estaba en 0 lo puse en 1 no deberia ser asi? o que 0 deberia cambiar

cl_thirdperson = Cvar_Get("cl_thirdperson", "1", CVAR_CHEAT);
    cl_thirdperson_angle = Cvar_Get("cl_thirdperson_angle", "0", 0);
    cl_thirdperson_range = Cvar_Get("cl_thirdperson_range", "120", 0);

gracias por la ayuda! :D ahora falta compilar para probar

B

Así

Cvar_Get("cl_thirdperson", "1", 0)

Pero déjalo todo como el original y prueba cambiando solo esto:

en la línea 2822 de main.c deja el

bool CL_CheatsOK(void) {return true;}
TheSeeker

pruebo y te digo algo! hace 40minutos

19:46 no hay manera de compilarlo o soy un ciego, en el propio repositorio que te bajas te viene el meson.build pero se ve que no quiere compilarse o activarse nose que estoy haciendo mal, sigo buscando a ver si doy con la tecla que es.. aparte de que es fijo facilismo y no doy acertado XDD

TheSeeker

aunque no lo parezca sigo intentando compilar esto :D

B

Pon los errores que da la consola

TheSeeker

esto es lo que me dice en visual studio code meson : El término 'meson' no se reconoce como nombre de un cmdlet, función, archivo de script o programa ejecutable. Compruebe si escribió correctamente el nombre o, si incluyó una ruta de acceso, compruebe
que dicha ruta es correcta e inténtelo de nuevo.
En línea: 1 Carácter: 1

  • meson
  • + CategoryInfo : ObjectNotFound: (meson:String) [], CommandNotFoundException
  • + FullyQualifiedErrorId : CommandNotFoundException y lo tengo instalado por pip el meson.

ahora mismo estoy probando en visual studio 2022

TheSeeker

pip install meson
Defaulting to user installation because normal site-packages is not writeable
Requirement already satisfied: meson in c:\users\xinob\appdata\roaming\python\python311\site-packages (1.1.1)

PS C:\Users\xinob\q2pro> meson
meson : El término 'meson' no se reconoce como nombre de un cmdlet, función, archivo de script o programa ejecutable. Compruebe si escribió correctamente el nombre o, si incluyó una ruta de acceso, compruebe que dicha
ruta es correcta e inténtelo de nuevo.
En línea: 1 Carácter: 1

  • meson
  • + CategoryInfo : ObjectNotFound: (meson:String) [], CommandNotFoundException
  • + FullyQualifiedErrorId : CommandNotFoundException

como puedes ver meson esta instalado pero cuando pongo meson da error ?, sera que tengo que cambiar algo en PATH?

1 respuesta
B

#10 prueba con el instalador para windows https://github.com/mesonbuild/meson/releases

1 respuesta
TheSeeker

#11 genial, esa idea a funcionado! ahora me esta dando un error pero imagino que estoy escribiendo algo mal
PS C:\Users\xinob\Source\Repos\q2pro> meson setup -Dwrap_mode=forcefallback builddir
The Meson build system
Version: 1.1.1
Source dir: C:\Users\xinob\source\repos\q2pro
Build dir: C:\Users\xinob\source\repos\q2pro\builddir
Build type: native build
Program python3 found: YES
Project name: q2pro
Project version: r26812d4906be

meson.build:1:0: ERROR: Unknown compiler(s): [['icl'], ['cl'], ['cc'], ['gcc'], ['clang'], ['clang-cl'], ['pgcc']]
The following exception(s) were encountered:
Running icl "" gave "[WinError 2] El sistema no puede encontrar el archivo especificado"
Running cl /? gave "[WinError 2] El sistema no puede encontrar el archivo especificado"
Running cc --version gave "[WinError 2] El sistema no puede encontrar el archivo especificado"
Running gcc --version gave "[WinError 2] El sistema no puede encontrar el archivo especificado"
Running clang --version gave "[WinError 2] El sistema no puede encontrar el archivo especificado"
Running clang-cl /? gave "[WinError 2] El sistema no puede encontrar el archivo especificado"
Running pgcc --version gave "[WinError 2] El sistema no puede encontrar el archivo especificado"

A full log can be found at C:\Users\xinob\source\repos\q2pro\builddir\meson-logs\meson-log.txt
PS C:\Users\xinob\Source\Repos\q2pro> meson compile -C builddir

ERROR: Current directory is not a meson build directory: C:\Users\xinob\source\repos\q2pro\builddir.
Please specify a valid build dir or change the working directory to it.
It is also possible that the build directory was generated with an old
meson version. Please regenerate it in this case.

TheSeeker

resuelto lo de compiladores y carpeta, se abre una ventana 1 segundo y se cierra..? en el terminal no dice nada tampoco ni hay errores en ningun lado.

1 respuesta
B

#13


Abre la carpeta q2pro en el VS con Archivo >> Abrir >> Carpeta
Abre el terminal de VS con Ver >> Terminal

Ejecuta los comandos en ese terminal...

TheSeeker

perdona que no contestara, estoy sin tocar casi el ordenador... sigo intentando solucionar la compilacion del repositorio, esto me esta sirviendo para aprender un poco la verdad, me gusta aunque son todo errores XD

1 respuesta
B

#15 Acabo de compilar y no me da ningún error, sólo tienes que abrir la carpeta y ejecutar los comandos desde el terminal de visual studio

edit: asegúrate que tengas marcado en la instalación de vs el "desarrollo para escritorio con c++"

Usuarios habituales