Développeurs
Le serveur garde le score et l'argent. Chaque client calcule la balle ; le dernier joueur qui l'a touchée fait foi et les autres suivent en tenant compte du ping. Le serveur vérifie chaque touche, chaque but et chaque gamelle (temps, position et vitesse de la balle, règles), chaque position de barre et chaque mise.
Exports serveur
| Export | Retour |
|---|---|
exports.kp_babyfoot:GetTables() |
Toutes les tables : { id, kind, coords, heading, owner } |
exports.kp_babyfoot:IsPlaying(src) |
true si le joueur est dans une partie |
exports.kp_babyfoot:GetGame(tableId) |
Partie en cours sur la table, ou nil |
exports.kp_babyfoot:StopGame(tableId) |
Arrête la partie, rend les mises et les paris |
Export client
| Export | Retour |
|---|---|
exports.kp_babyfoot:IsPlaying() |
true quand le joueur tient les poignées |
Events
| Event | Côté | Arguments |
|---|---|---|
kp_babyfoot:goalScored |
serveur | { table, team, mode } |
kp_babyfoot:matchEnd |
serveur | { table, winner, mode } |
kp_babyfoot:client:playing |
client | playing, tableId |
Exemple : cacher ton HUD pendant une partie.
AddEventHandler('kp_babyfoot:client:playing', function(playing)
exports['my_hud']:SetVisible(not playing)
end)
Anticheat
Les events réseau commencent tous par kp_babyfoot: et le serveur borne chaque valeur : inutile de les bloquer. Une valeur impossible part sur Config.Discord.CheatWebhook, sans sanction automatique.
Brancher un framework ou un inventaire
bridge/framework/custom.lua et bridge/inventory/ sont ouverts : remplis les fonctions (identifiant, nom, argent, groupe staff, objet) et choisis-les dans Config.Framework et Config.Inventory.