Skip to content
56K.ES

56K.ES

Sobre software libre y otras movidas

Menu
Menu

Open Tomb – 003 – Ejecutar y alterar Tomb Raider II

Posted on 21/06/202106/07/2021 by fanta

Ya doy paso de Tomb Raider I a Tomb Raider II.  En este post voy a comentar como se puede disfrutar de Tomb Raider II con Opentomb en Linux y luego un par de alteraciones que se le pueden hacer al juego y que no he nombrado en anteriores posts.

Vamos a darle duro pues.

Descargar e instalar el tinglado

Se puede hacer como se relata en los siguiente pasos. No obstante si no te funciona Opentomb (el binario precompilado que lleva el tar.gz en su interior) puedes compilarte tu propio Opentomb siguiendo los pasos que comentamos en esta otra entrada:

$ mkdir -p ~/opentomb/tomb2
$ cd ~/opentomb/tomb2
$ wget -q "http://fanta.56k.es/200-GM-Tomb_Raider_classic/1997-Tomb_Raider_II/tomb_raider_2-opentomb-linux.tar.gz"
$ tar xfvz tomb_raider_2-opentomb-linux.tar.gz
$ mv tomb_raider_2/* .
$ rm -rf tomb_raider_*
$ ./OpenTomb

 

Cambiar el tamaño de por ejemplo una llave

Con la función setEntityScaling vamos a poder cambiar el tamaño en x,y,z de algunos objetos del juego.
En el caso de Tomb Raider II primer nivel (la muralla china) se puede cambiar el tamaño de la primera llave que encontraremos así:

print(getEntityScaling(0x11));
setEntityScaling(0x11, 3.0, 3.0, 3.0);
print(getEntityScaling(0x11));

Recordemos de anteriores posts que eso se puede añadir sin problemas al autoexec.lua y se ejecutará al iniciar opentomb.

 

 

Un autoexec.lua con algunas funciones

Si se desea empezar a trastear lo mismo vienen bien estas 3 funciones ( p2l, tohex y  getPositionAllEntities ) que dejo en este autoexec.lua completo:


-- LUA autoexec config file
-- CVAR's section. here you can create and delete CVAR's

if(cvars == nil) then
    cvars = {};
end;

-- CVAR's section. here you can create and delete CVAR's
cvars.show_fps = 0;
cvars.free_look_speed = 2500;

-- FUNCTIONS
function p2l(id) -- position to log
    logPos = {getEntityPos(id)}
    print(id, logPos[1], logPos[2], logPos[3])
	local file = io.open( "temporalData.log", "a" );
	file:write(id..";"..logPos[1]..";"..logPos[2]..";"..logPos[3]);
	file:write("\n");
	file:close();
end

function tohex(num)
    local charset = {"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"}
    local tmp = {}
    repeat
        table.insert(tmp,1,charset[num%16+1])
        num = math.floor(num/16)
    until num==0
    return table.concat(tmp)
end

function getPositionAllEntities ()
	for valor = 1,254,1
	do
   		print("0x"..tohex(valor)); -- print position on console
   		p2l("0x"..tohex(valor)); -- write position into logfile
	end
end

-- AUTOEXEC LINES
setLanguage("english");
setGravity(0, 0, -5700.0);
mlook(0);
freelook(0);
cam_distance(1024.0);
setCameraViewDistance(32768);
noclip(0);
loadMap(base_path .. "data/tr2/data/WALL.TR2", 1, 0);

getPositionAllEntities();

 

Obtener el ID y posición de algunas entidades del nivel

Con esas funciones (en concreto con getPositionAllEntities) vamos a poder hacer cosas como estas:

 getPositionAllEntities();

Nos dejará un archivo llamado temporalData.log con valores separados por «;» de las posiciones de las diferentes entidades.

 

 

Ejemplo al que he añadido algo de información:

 

Si deseamos obtener solamente la posición de una entity en el archivo de log se puede hacer así:

p2l("0x11");

p2l (position to log) mandará al iniciar Opentomb la posición de 0x11 al log. Lo añadirá al final del archivo.

 

Y eso es todo lo que quería compartir en esta entrada.
En futuras entradas iremos probando Tomb Raider III y algo que podamos alterar que no esté ya comentado.

 

Saludos cordiales.

3 thoughts on “Open Tomb – 003 – Ejecutar y alterar Tomb Raider II”

  1. puppet dice:
    04/06/2021 a las 14:12

    Que maravilla, tengo que probarlo 🙂

  2. fanta dice:
    04/06/2021 a las 22:29

    Es una maravilla para alterar los juegos y ver como está construido.

  3. fanta dice:
    04/06/2021 a las 22:29

    Gracias por el prime ! 😛

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Generic selectors
Exact matches only
Search in title
Search in content
©2022 56K.ES | Built using WordPress and Responsive Blogily theme by Superb