Skip to main content
Le fournisseur d’actions déclare des actions à côté des observations qu’il signale. Le modèle choisit une action déclarée comme n’importe quelle action du catalogue, Humalike n’accepte le tag qu’une fois les observations requises signalées, et votre RunAction exécute l’action. Le comportement en jeu de cette condition et du comptoir est décrit sous Systèmes de gameplay.
Activez myserver:give_map sur les PNJ qui doivent en disposer dans le tableau de bord. Les clés sont préfixées par l’espace de noms sur le réseau (myserver:give_map) et locales dans RunAction (give_map). RunAction reçoit les params du modèle fusionnés avec fixed et player_id :
Les actions sont redéclarées à chaque rapport de capacités. Une action modifiée ou supprimée prend effet au prochain démarrage de la ressource.

Déclaration

Params

  • Les types sont string, integer ou boolean.
  • enum contient jusqu’à 16 mots simples ou entiers.
  • required et description sont facultatifs.
  • player_id est toujours ajouté par Humalike.
  • Un tag dont les valeurs ne correspondent pas à la déclaration est écarté avant d’être prononcé ou mémorisé.

Conditions

Les faits dépensés disparaissent pour toutes les actions et pour le comptoir.

Params issus des faits

  • Les valeurs proviennent des faits comptés par la première entrée de requires portant sur cette observation.
  • Les nombres sont additionnés sur ces faits. Tout le reste prend la valeur la plus récente.

Stock

Remplace l’intégralité du stock du PNJ. Un objet non listé est un objet dont le PNJ ne possède aucun exemplaire. Le tableau de bord affiche le stock en lecture seule sur la page du PNJ.
  • Jusqu’à 32 objets par PNJ.
  • Les noms d’objets correspondent à ^[a-z][a-z0-9_]*$, au plus 48 caractères.
  • Les quantités sont des nombres entiers de 0 à 1 000 000, ou 'unlimited'.
Renvoie { ok = true, value = { stock } } ou { ok = false, error = code } :

Comptoir

Pour les PNJ qui vendent, déclarez un Catalog plutôt qu’une action par produit. Humalike prend la commande, la chiffre et encaisse le paiement, puis appelle deliver et refund sur votre RunAction.
Un PNJ vend les articles du catalogue que votre script a mis en stock.

deliver et refund

Les deux sont déclarées pour vous avec le Catalog. Ne les listez pas sous Actions.

Commandes depuis un menu

Envoie les lignes choisies depuis votre propre menu de boutique. Jusqu’à 16 lignes, chaque quantité de 1 à 1 000. Renvoie { ok = true, value = { lines } } ou { ok = false, error = code } :

Clés réservées

  • order, cancel_order, order_placed, order_refused : non déclarables comme actions ni comme observations.
  • deliver, refund : non déclarables comme observations.
  • Aucune clé ne peut être à la fois une action et une observation.
  • spent est un champ d’observation réservé.

Contrat de RunAction

  • Renvoyez exactement true lorsque l’action est effectuée. false rejette l’invocation, qui n’est pas réessayée.
  • Répondez dans les 5 secondes. Une réponse perdue (délai dépassé, connexion coupée, HTTP 5xx) est réessayée immédiatement, jusqu’à trois tentatives, sous le même id d’invocation.
  • Conservez les ids que vous avez acceptés et répondez à une répétition à partir de cet enregistrement, afin qu’une réponse perdue ne provoque jamais deux fois la même action.

Débogage

  • Une déclaration refusée est affichée par RegisterProvider avec le champ en cause. Rien n’est enregistré.
  • La page du PNJ dans le tableau de bord liste les actions déclarées avec leurs conditions. La vue transcription montre les observations et les actions effectuées.
  • humalike_debug 1 journalise chaque push entrant et son résultat.

Suite