Référence condensée de l'API
Résumé de l'API publique de tlr_core, regroupée par domaine. La référence complète, avec les détails et les points à vérifier en jeu, est dans docs/API.md : chaque partie ci dessous indique la section correspondante. Retour au sommaire.
Tous les montants sont des entiers en centimes (150 vaut 1,50 $). Sauf mention contraire, les exports sont côté serveur et s'appellent exports.tlr_core:Nom(...).
Cœur
Section « Objet central » de docs/API.md.
GetCoreObject(): l'objet centralTLR.IsReady(): vrai quand le démarrage est terminé.GetVersion(): version de tlr_core.- Événement serveur
tlr:core:ready.
Modules et paramètres
Section « Déclarer un module ». Guide pas à pas : Créer un module externe.
RegisterModule(déclaration):trueoufalse, message.GetSetting(clé),OnSettingChanged(clé, fonction).- Événement serveur
tlr:settings:changed (clé, valeur).
Joueurs et personnages
Section « Joueurs (serveur) ».
GetPlayer(src):{ source, license, character }ou nil (copie).GetCharacterId(src),GetPlayerByCitizenId(id).- Existent aussi :
GetPlayerByLicense,GetPlayerByName,GetPlayerByUid,GetPlayerUid,GetCharacterUid,FindCharacter(voir la section « Identifiants uniques »). - Client :
GetCharacter(). - Événements serveur :
tlr:character:loaded (src, idPersonnage),tlr:character:unloaded (src, idPersonnage).
Économie
Section « Économie (serveur) » et « Argent : centimes, monnaie et billets ensanglantés ».
GetBalance(src, compte)avec'cash'ou'bank'.AddMoney(src, compte, montant, motif, opId)etRemoveMoney(...):true, nouveauSoldeoufalse, code(INSUFFICIENT_FUNDS,NO_CHARACTER...). UnopIdrejoué n'est pas appliqué deux fois.GetPrice(base): prix de base multiplié par le profil économique.FormatMoney(150)donne'$1.50'.- Aussi présents :
GetPriceMultiplier,ExchangeMoney.
Métiers
Section « Métiers ». Guide d'intégration : docs/integration/metiers.md.
GetJob(nom),GetJobs(),IsJobActive(nom),GetJobFamily(nom),IsInJobFamily(src, famille),SetJob(src, nom, grade).- Service :
IsOnDuty(src),SetDuty(src, actif),GetDutyCount(métierOuFamille),GetOnDutyPlayers(métierOuFamille). - Activités :
RegisterJobActivity(nom, spec),RemoveJobActivity(nom),ProvideJobItems(liste). - Alertes :
SendJobAlert(cible, données)aveccible='law','medical'ou un nom de métier. - Plusieurs métiers :
AddMultiJob,RemoveMultiJob,GetMultiJobs. - Client :
GetJobState(),IsOnDuty(). - Événements serveur :
tlr:jobs:changed (nom),tlr:jobs:refresh (src),tlr:jobs:duty (src, métier, enService),tlr:jobs:activity (src, activité, type).
Inventaire et objets
Section « Inventaire (serveur) ».
AddItem(src, nom, qté):trueoufalse, code(NO_SPACE,TOO_HEAVY,NOT_FOUND...).RemoveItem(src, nom, qté): retire d'abord les piles les plus anciennes.GetItemCount(src, nom),CanCarryItem(src, nom, qté),HasItem,GetItem(nom),GetItemByName,GetItemsByName,SetItemMetadata.- Poids :
GetTotalWeight,GetFreeWeight,GetItemWeight. - Client :
GetNeeds()donne{ hunger, thirst }. - Événements serveur :
tlr:inventory:used (src, nomObjet),tlr:inventory:updated (idPersonnage),tlr:items:changed.
Armes et licences
Section « Armes ».
HasLicense(src, type),HasLicenseByCharacter(idPersonnage, type),IssueLicense(idPersonnage, type, auteur, jours),RevokeLicense(idLicence, auteur, motif).GiveWeapon(src, 'WEAPON_X', { ammoBoxes = n }),RemoveWeapon(src, 'WEAPON_X'),GiveAmmo(src, 'AMMO_X', boîtes).GetEquippedWeapon(src),GetAmmo(src, 'AMMO_X'),DisarmPlayer(src).- Catalogue :
GetWeapon(nom),GetWeapons(),GetAmmoTypes(). - Événement serveur :
tlr:weapons:licenseChanged (idPersonnage).
Apparence
Section « Apparence ».
GetAppearance(src),OpenAppearanceEditor(src),OpenClothingShop(src, idMagasin).- Client :
GetAppearance().
Stockage et maisons
Section « Stockage et maisons ».
OpenStash(src, idCoffre, options),GetStashContents(idCoffre),AddStashItem(idCoffre, objet, qté, meta),RemoveStashItem(idCoffre, objet, qté),GetStashItemCount(idCoffre, objet).GetSaddlebagCapacity(),HasHouseAccess(idPersonnage, idMaison),GetCharacterHouses(idPersonnage).- Événements serveur :
tlr:storage:transferred,tlr:storage:houseFreed.
Chevaux
Section « Chevaux et charrettes ».
GetHorses(src),GetWagons(src),GetActiveHorse(src),IsHorseOwner(src, idCheval).- Aussi présents :
IsHorseInjured,IsActiveHorseInjured,GetHorseCourage.
Boutiques
Section « Boutiques ».
GetShops(),GetShop(id),IsShopOpen(id).- Événements serveur :
tlr:shops:purchased (src, idBoutique, lignes, total),tlr:shops:sold (src, idBoutique, objet, qté, total).
Banque et factures
Section « Banque et factures ».
CreateBill(données),GetBills(idPersonnage).- Comptes de métier :
GetJobAccountBalance(métier),AddJobMoney(métier, montant, motif, opId),RemoveJobMoney(métier, montant, motif, opId). - Aussi présents :
IsBankLocked,SetBankLockdown,ClearBankLockdown,IsBankAccountBlocked,SetBankAccountBlocked,GetBankTreasury,AddToTreasury,TakeFromTreasury,SendBankMessage,GetGoldPrice.
Ordre public
Section « Ordre public ».
IsPlayerCuffed(src),IsPlayerJailed(src),GetJailRemaining(src).CanLaw(src, action)aveccuff,search,fine,jail,records.AddCriminalRecord(idPersonnage, type, libellé)avecfine,jail,arrest,note,release.- Client :
IsCuffed(),IsJailed().
Portes, zones et blips
Section « Portes, zones et blips ».
- Serveur :
IsDoorLocked(id),SetDoorLocked(id, verrouillée),GetZonesAt(x, y),SetBlip(id, spec),RemoveBlip(id). - Client :
GetCurrentZones().
Lib tlib
Sections « Lib (logique) » et « Lib (interface) ». Inclusion : shared_script '@tlr_core/lib/init.lua'.
- Partagé :
tlib.locale,tlib.table,tlib.string,tlib.math,tlib.waitFor,tlib.timer,tlib.print. - Serveur :
tlib.callback.register,tlib.callback.await,tlib.notify(src, données),tlib.ratelimit,tlib.logger. - Client :
tlib.callback.await,tlib.prompt,tlib.zones,tlib.points,tlib.request,tlib.cache,tlib.onCache,tlib.raycast. - Interface (client) :
tlib.notify,tlib.progress,tlib.input,tlib.alert,tlib.context,tlib.menu,tlib.textui,tlib.skillcheck. - Exports client de tlr_core pour les autres ressources :
notify,progress,progressActive,cancelProgress,input,closeInput,alert,closeAlert,skillcheck,skillcheckActive,cancelSkillcheck, et les tablescontext,menu,textui(méthode en premier argument). - Événement serveur vers client :
tlr:lib:notify (données).
Autres domaines
Les exports suivants existent dans le code, côté serveur ou côté client selon le cas ; leur côté et leurs signatures sont décrits dans les sections de docs/API.md indiquées.
- Santé et maladies (section « Maladies, honneur, courage... ») :
Infect,TryInfect,Cure,CureAll,HasDisease,GetPlagueState,GetAddiction,AddDose,GetAlcohol,AddAlcohol,GetAlcoholLevel,IsDead,IsPlayerDead,RevivePlayer,HealPlayer,GetInjuries,SetInjuries. - Honneur :
GetHonor,AddHonor,GetAllHonor,GetHonorRank,GetCurrentHonorTown,GetHonorTownAt. - Gangs :
GetGang,GetGangMembers,GetGangCamp,GetGangFunds,AddGangFunds,RemoveGangFunds. - VIP :
GetVip. - Artisanat :
OpenCrafting,OpenCraftingBook,GetCraftingRecipes,GetCraftingLevel,GetCraftingExp,GiveCraftingExp. - Écosystème et chasse :
GetPopulation,GetSpecies,GetAllSpecies,GetSeason,IsHuntingLegal,HasHuntingLicense,RegisterHunt. - Monde et temps :
GetGameTime,GetWeather,GetZone,GetZoneName,GetZoneAtCoords. - Événements de Noël :
XmasIsActive,XmasIsEventActive,XmasGetAdventDay,XmasGetPlayerStats. - Surveillance :
SurveillanceFlag,SurveillanceGrace(docs/SURVEILLANCE.md). - Divers :
SendWebhook,ServerAnnouncement,SendChatMessage,GetUiTheme.
Actions RPC du panel
Section « Actions de l'interface (RPC) » et chaque section de domaine. Les actions s'enregistrent dans le code de tlr_core avec TLR.RPC.register (Architecture). Codes d'erreur stables : PERMISSION_DENIED, VALIDATION_FAILED, RATE_LIMITED, NOT_FOUND, CONFLICT, UNKNOWN_ACTION, NOT_READY, NO_CHARACTER, INSUFFICIENT_FUNDS, INTERNAL.
Source : tlr_core/docs/guide/dev_api.md