Files
D4rkst3randClaude Opus 5 d9643620ff
Lint / Lint Resource (push) Has been cancelled
feat(light): gesyncte Tauchlampe
Licht ist in GTA nie synchronisiert - DrawSpotLight zeichnet nur lokal fuer den
aktuellen Frame. "Gesynct" heisst deshalb: der Zustand wird als Statebag
repliziert und jeder Client zeichnet die Lampen aller Taucher in seiner Naehe
selbst. Muster uebernommen aus d4rk_phone (Statebag, adaptives Polling,
Distanzfilter).

client/light.lua ist ein reiner Renderer ohne gemeinsamen Zustand mit main.lua -
er kommt mit dem Statebag allein aus und kennt weder Ausruestung noch Flasche.

- Richtung ueber zwei bone-relative Punkte am Kopf-Bone statt ueber
  GetEntityForwardVector: beim Tauchen liegt der Ped waagerecht im Wasser, der
  Entity-Forward wuerde stur horizontal leuchten. Die Offsets von
  GetPedBoneCoords sind laut Native-Doku "relative to the bone's rotation",
  die Differenz zweier solcher Punkte enthaelt also den Pitch
- Toggle per lib.addKeybind, Standard L, vom Spieler umlegbar
- Distanzfilter und Limit auf die naechsten N Lampen, Schatten abschaltbar
- Prop-Model wird vorher mit IsModelValid geprueft: lib.requestModel wirft bei
  ungueltigen Models einen Error, der sonst die ganze Ausruestung lahmlegt
- Lampen-Status im HUD

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-10 23:56:40 +02:00

35 lines
627 B
Lua

fx_version 'cerulean'
game 'gta5'
author 'D4rkst3r'
description 'Tauchausrüstung mit Flaschengrößen, gesyncter Lampe und Tiefenanzeige'
repository 'https://git.d4rkst3r.de/D4rkst3r/d4rk_divegear'
version '1.0.1'
ox_lib 'locale'
shared_scripts {
'@ox_lib/init.lua',
'@qbx_core/modules/lib.lua',
}
server_script 'server/main.lua'
client_scripts {
'client/main.lua',
'client/light.lua',
}
ui_page 'nui/index.html'
files {
'config/client.lua',
'config/shared.lua',
'locales/*.json',
'nui/index.html',
'nui/style.css',
'nui/script.js',
}
lua54 'yes'
use_experimental_fxv2_oal 'yes'