Aller au contenu

gladiatrool — Fenêtre des toniques du Gladiatrool

gladiatrool — Fenêtre des toniques du Gladiatrool

10 fonctions dans ce namespace.

Index


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

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

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

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

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

gladiatrool.points()

returns number | nil

Points à dépenser en toniques, nil hors Gladiatrool.


gladiatrool.buy

gladiatrool.buy(position: number | templateId: number | offre: table)

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

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

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.