Barotrauma
No hay suficientes valoraciones
[AH] ID Card Printer
   
Premio
Favoritos
Favorito
Quitar
Tamaño
Publicado el
Actualizado el
532.258 KB
27 NOV 2021 a las 3:24 a. m.
24 ABR 2022 a las 6:04 a. m.
5 notas sobre cambios ( ver )

Suscríbete para descargar
[AH] ID Card Printer

Descripción
Este mod sobrescribe la tarjeta de identificación del juego. Puede haber incompatibilidad con otros mods que sobrescriban ese mismo objeto.
Este mod necesita Lua for Barotrauma instalado como mod de servidor.




¿Alguna vez has perdido tu tarjeta de identificación y deseado tenerla de vuelta sin crear un personaje nuevo? ¿Alguna vez has querido ascender un tripulante leal a oficial y darle acceso a áreas susceptibles del submarino? O puede incluso, ¿has querido alguna vez degradar a un oficial a simple tripulante?

Si tu respuesta es sí a cualquiera de esas preguntas, entonces este mod es para ti.

Ahora puedes fabricar un nuevo objeto llamado Impresora de tarjetas de identidad. Una vez tengas la impresora instalada y conectada a la corriente entonces puedes insertarle una tarjeta de identidad para modificarla. Para poder hacerlo tienes las siguientes clavijas:

Clavija leer_etiquetas, cuando una señal uno (1) es recibida entonces todas las etiquetas sobreescribibles de la tarjeta de identificación son enviadas en forma de señal a través de leer_etiquetas_sal (o en su lugar se envía una señal none si no hay etiquetas válidas).

Clavija escribir_etiquetas, cuando una señal es recibida escribe su valor como etiquetas en la tarjeta de identificación. Para prevenir exploits con etiquetas especiales de otros objetos, sólo acepta etiquetas que empiezan con id (por ejemplo: id_captain). Cualquier etiqueta sobreescribible que no esté en la señal se pierde, de esta manera puedes enviar una señal sin sentido (por ejemplo: id_sin_etiquetas_para_ti) para eliminar todas las demás etiquetas y así degradar una tarjeta de identificación. Para poder escribir más de una etiqueta al mismo tiempo puedes concatenarlas con comas (por ejemplo: id_medic,id_security,id_engineer).

Ten en cuenta que las etiquetas de acceso válidas son diferentes dependiendo del submarino, aunque todos los submarinos del juego base usan las siguientes: id_captain, id_security, id_medic, id_engineer, id_mechanic. También puedes usar la clavija leer_etiquetas con otra tarjeta de identidad a modo de plantilla.

Clavija escribir_personaje, cuando una señal es recibida busca su valor entre los nombres de la tripulación y escribe una tarjeta de identificación clónica apropiada (por ejemplo: si tienes a Artie Dolittle como tripulante, si envías una señal "Artie Dolittle" sin comillas entonces se escribira una tarjeta "Artie Dolittle el asistente" , aunque no tendrá etiquetas de acceso). Puedes usar esto para escribir tarjetas de identidad nuevas para los tripulantes que las pierdan. O para robo de identidad si eres un traidor ingenioso.

También puedes ahora fabricar tarjetas de identidad en blanco, que son perfectamente apropiadas para estas operaciones.

Para un ejemplo de un circuito usando la impresora dentro del juego, este mod incluye también un item assembly.

Problemas conocidos:
  • Como Lua no funciona sin un servidor, este mod no funciona en el editor de submarinos ni en modo de un jugador.
  • Pueden haber exploits en JCJ mediante la escritura de tarjetas de identificación enemigas.

CREDITS:
  • ID Card Printer sprite by LzNN.
13 comentarios
Haufzibelstoltz 18 AGO 2022 a las 7:12 p. m. 
Write_character pin, without crew spawn tags.

lua:

local function replaceIdCardAndWriteCharacter(targetInventory, oldItem, newPrefab, character)
Entity.Spawner.AddItemToRemoveQueue(oldItem)
ah_utils.time.delayFunction(0.1, function()
Entity.Spawner.AddItemToSpawnQueue(newPrefab, targetInventory, nil, nil, function(spawned)
spawned.GetComponentString("IdCard").Initialize(nil, character);
end)
end)
end
local function ah_idcard_printer_write_character(item, contained, signal, connection)
local target = contained[1]
local inventory = target.ParentInventory
local prefab = target.Prefab
local character = ah_utils.table.firstOrNil(Character.CharacterList, function(it)
return it.IsHuman and it.Info.Name == signal.value
end)
if(character ~= nil) then
replaceIdCardAndWriteCharacter(inventory, target, prefab, character)

end
end
Haufzibelstoltz 18 AGO 2022 a las 1:57 p. m. 
Set InventoryIconColor
lua:
targetItem.SerializableProperties[Identifier("InventoryIconColor")].SetValue(targetItem,Color(255, 0, 0, 255))
Uzric Rash  [autor] 4 AGO 2022 a las 3:45 a. m. 
The write_character pin is still broken.
Although it's less of an issue in campaign mode now because idcards are sold in stations.
Still a bummer for traitor mode though.
The other pins work perfectly as far as I know.
Dr.Shimapan 3 AGO 2022 a las 11:05 p. m. 
any update on broken status?
Uzric Rash  [autor] 26 ABR 2022 a las 2:24 a. m. 
Unfortunately upon further investigation it looks like it's not possible: I can change the SpriteColor (that is, when the ID card is dropped on the floor) but the InventoryColor is hardcoded so it can only be changed in the sub editor.
Uzric Rash  [autor] 26 ABR 2022 a las 1:06 a. m. 
That's a very good idea. I believe it is possible. When I have more free time I will add that.
thecrazy13 25 ABR 2022 a las 1:47 p. m. 
Would there be any way to add a write color to this in order to change the cards sprite color?
whosyourdaddy 28 NOV 2021 a las 8:09 a. m. 
Good, maybe one day, lua will realize life service server.
Evil Factory 27 NOV 2021 a las 6:20 a. m. 
Nice!
jimmyl 27 NOV 2021 a las 3:54 a. m. 
though i could just airlock myself and wait 10 minutes to respawn as security