Immobilier et bâtiments¶
Installation et démarrage¶
Le schéma immobilier est installé automatiquement avant que l’API soit déclarée prête. Après
l’intégration des branches véhicules/crafting et immobilier, la migration
0038_merge_buildings préserve les deux historiques publiés et garantit que 0037_buildings est
appliquée. La migration corrective non destructive 0039_building_timestamps constitue ensuite
l'unique head : elle permet à PostgreSQL d'horodater automatiquement les nouvelles agences et les
autres données immobilières. L'API n'est déclarée prête qu'après son application.
Agences et catalogues¶
Les bâtiments sont des zones prismatiques persistantes définies par un polygone au sol et des bornes verticales. Ils sont proposés par une agence précise :
- une agence légale affiche un blip configurable et débite un compte bancaire autorisé ;
- une agence clandestine ne crée aucun blip et prélève le cash de l'inventaire personnel ;
- chaque agence présente uniquement son propre catalogue ;
- un prix nul est autorisé et produit tout de même un reçu de sink traçable.
L'achat peut être personnel ou effectué pour un groupe dans lequel le personnage possède
GROUP_CAN_BUY_BUILDING. Les limites globales par personnage et par groupe sont configurables ;
la valeur 0 signifie illimité. Paiement, ownership, badge maître, permissions de groupe et reçu
sont validés ensemble : un refus ne laisse aucun effet partiel.
Ownership, copropriété et transfert¶
Un bâtiment appartient soit à un personnage, soit à un groupe, jamais aux deux. Un propriétaire personnel peut inviter un copropriétaire pour sept jours et lui accorder séparément les droits de gestion des accès, copropriétaires, contrats, garages et stockages. Aucun droit n'existe avant l'acceptation.
Le propriétaire peut proposer un transfert vers un personnage ou un groupe. L'offre expire après 24 heures, doit être acceptée et ne déplace aucun argent. Tous les garages rattachés doivent être vides. Le transfert conserve les équipements et inventaires, mais révoque les anciens badges, codes, copropriétaires et permissions dynamiques avant de remettre un nouveau badge maître.
Gestion du bâtiment¶
Les mutations joueur se font à proximité d'un point de gestion : émission/révocation de badges, configuration des codes et délais de reverrouillage, copropriété et transfert. Les badges sont des objets physiques non empilables et transférables. Leur portée contient une liste explicite de portes ; une porte ajoutée plus tard n'est jamais accordée implicitement.
Une porte simple ou double s'ouvre avec un badge actif autorisé ou son code. Cinq erreurs de code dans une minute bloquent le couple personnage/porte pendant cinq minutes. Les codes sont hachés et ne sont jamais relus. Une porte déverrouillée peut se reverrouiller automatiquement ; l'échéance est persistante. Un bâtiment sans propriétaire ou désactivé force toutes ses portes à l'état verrouillé.
Garages, stockages et monde¶
Un garage rattaché est de type personal ou group. Le premier accepte le véhicule personnel du
joueur autorisé ; le second accepte uniquement les véhicules du groupe propriétaire. Chaque
garage et stockage d'un bâtiment de groupe crée une permission dynamique assignable aux rangs.
Les droits use_garages et use_storages couvrent les copropriétaires personnels.
Dans une zone active, Medusa neutralise la densité des peds, scénarios, véhicules aléatoires et véhicules stationnés. Les joueurs et entités scriptées ne sont pas supprimés. Agences, props de gestion, portes et interactions sont matérialisés uniquement à proximité.
Administration¶
Le web admin propose la recherche des agences/bâtiments, l'édition des métadonnées, le rattachement
d'un stockage ou garage, les limites d'ownership, la suppression sûre, la recovery d'ownership et
les reçus de sink. F10 permet le placement des Peds d'agence, le dessin des zones et la sélection
d'un prop ou d'une porte existante. Les commandes /adminagencies et /adminbuildings écrivent
leurs résultats dans le terminal F9.
Lorsqu'un Ped d'agence est placé depuis F10, E soumet sa position puis l'interface attend la
confirmation de persistance. Le message de succès n'apparaît qu'après l'enregistrement et la liste
World Edit est alors rechargée. Un échec affiche un identifiant de tentative et conserve son
diagnostic détaillé dans F9.
Permissions administratives :
ADMIN_ALLOW_VIEW_BUILDINGS: consulter agences, bâtiments et reçus ;ADMIN_ALLOW_EDIT_BUILDINGS: créer, éditer, rattacher et placer ;ADMIN_ALLOW_DELETE_BUILDINGS: supprimer un bâtiment éligible ;ADMIN_ALLOW_OVERRIDE_BUILDING_ZONE: publier une zone qui en chevauche une autre ;ADMIN_ALLOW_MANAGE_BUILDING_OWNERSHIP: changer l'ownership par recovery ;ADMIN_ALLOW_BUILDING_ACCESS_RECOVERY: réinitialiser les accès lors d'une recovery.
La suppression est refusée si le bâtiment est possédé, si un garage contient un véhicule ou si un stockage contient un objet. La recovery reloge tous les véhicules vers des garages compatibles ou n'applique aucun changement.