gladiatrool — Fenêtre des toniques du Gladiatrool¶
gladiatrool — Fenêtre des toniques du Gladiatrool
10 fonctions dans ce namespace.
Index¶
Fenêtre des toniques : ce que voit le scriptgladiatrool.isOpengladiatrool.infogladiatrool.offersgladiatrool.tonicsgladiatrool.pointsgladiatrool.buygladiatrool.rerollgladiatrool.closeExemple — acheter le tonique le moins cher, puis fermer
Référence¶
Fenêtre des toniques : ce que voit le script¶
gladiatrool.isOpen() / gladiatrool.offers() / gladiatrool.buy(position) / gladiatrool.reroll() / gladiatrool.close()
Après chaque victoire au Gladiatrool, le serveur vous place dans la salle suivante puis ouvre la fenêtre des toniques (paquets wi et ws, journal « Gladiatrool »). Ce n'est ni une boutique de PNJ ni un échange : merchant.npcShopItems() et exchange.isActive() restent vides. Les toniques se paient en points du Gladiatrool, pas en kamas ni en jetons. Les offres restent achetables dans la salle, avant le combat. Le moteur ne clique jamais seul : le script achète, relance ou ferme. Un clic impossible est refusé tout de suite, sans pause ni paquet. Sinon, buy et reroll attendent comme un joueur avant d'envoyer le paquet (rythme du compte : tempo et régularité de l'onglet Config) ; un script qui a déjà patienté avec global.delay n'attend pas deux fois.
gladiatrool.isOpen¶
returns boolean
Vrai quand la fenêtre des toniques est ouverte : offres reçues, pas encore remises à zéro par le serveur (début ou fin de partie), ni fermées par un changement de carte, un combat ou gladiatrool.close(). Chaque salle gagnée la rouvre avec de nouvelles offres.
gladiatrool.info¶
returns table | nil
État de la partie, nil hors Gladiatrool : wins (salles gagnées), tokens (jetons accumulés, même total que le dialogue de Notend), tokenTable (jetons de chaque salle : 10, 20, 40…), points (points à dépenser en toniques), bonus (effets gagnés au dernier palier, au format des effets d'objet, déjà portés par l'objet « Gladiatrool Caractéristiques »), open (fenêtre ouverte), rerolls (relances restantes), tonics (comme gladiatrool.tonics()).
gladiatrool.offers¶
returns table
Les 6 toniques proposés ({} fenêtre fermée) : position (1 à 6), templateId, name, price (en points), bought (achat confirmé par le serveur), affordable (prix ≤ points), others (6 autres toniques de la même famille, joints par le serveur à l'offre ; ils ne s'achètent pas).
gladiatrool.tonics¶
returns table
Toniques de caractéristiques portés (5 emplacements) : slot (1 à 5), templateId, name, level. Racheter un tonique porté le monte d'un niveau (Tonique Ignis Perfectum → Tonique Ignis Perfectum II). Les toniques de sort (Ton. Evolutio, Ton. Mutatio) et de faveur n'y apparaissent pas.
gladiatrool.points¶
returns number | nil
Points à dépenser en toniques, nil hors Gladiatrool.
gladiatrool.buy¶
blocking · returns boolean, table | string
Achète une offre : position 1 à 6, templateId d'un tonique proposé, ou table de gladiatrool.offers(). Un clic (paquet wb), comme le client, après la pause d'un joueur (rythme du compte), puis la réponse du serveur attendue 5 s au plus. Renvoie true et l'offre achetée, ou false et un motif : closed (fenêtre fermée : carte changée, combat, fin de partie), busy (un autre clic attend sa réponse), unknown_offer, already_bought, not_enough_points (rien n'est envoyé dans ces 5 cas : sans pause si le refus est vu tout de suite ; s'il survient pendant la pause, par exemple une fenêtre qui se ferme, le même motif revient après elle), shop_changed (de nouvelles offres sont arrivées pendant la pause : rien n'est envoyé), refused (refus du serveur), no_answer (rien en 5 s).
gladiatrool.reroll¶
blocking · returns boolean, table | string
Nouveau tirage des 6 offres (paquet wu ; 1 point par relance dans les parties observées), après la même pause d'un joueur que buy. Renvoie true et les nouvelles offres, ou false et un motif : closed, busy, no_reroll_left, not_enough_points (rien n'est envoyé : sans pause si le refus est vu tout de suite ; s'il survient pendant la pause, le même motif revient après elle), shop_changed, no_answer.
gladiatrool.close¶
returns boolean
Ferme la fenêtre de votre côté. Aucun paquet n'est envoyé : le client officiel n'en envoie pas non plus. Renvoie true si elle était ouverte. Elle se rouvre à la salle suivante.
Exemple — acheter le tonique le moins cher, puis fermer¶
-- À l'arrivée dans une salle, après une victoire : le tonique le moins cher, puis fermer
if gladiatrool.isOpen() then
-- buy() patiente comme un joueur avant le clic (rythme du compte) : pas de global.delay ici
local choix = nil
for _, offre in ipairs(gladiatrool.offers()) do
if offre.affordable and not offre.bought and (choix == nil or offre.price < choix.price) then
choix = offre
end
end
if choix then
local ok, detail = gladiatrool.buy(choix)
if not ok then global.printMessage("Achat refusé : " .. detail) end
end
gladiatrool.close()
end
À appeler à l'arrivée dans chaque salle. gladiatrool.offers() est vide tant que la fenêtre n'est pas ouverte.