RunAction exécute l’action. Le comportement en jeu de cette condition et du
comptoir est décrit sous Systèmes de gameplay.
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 :
Déclaration
Params
- Les types sont
string,integerouboolean. enumcontient jusqu’à 16 mots simples ou entiers.requiredetdescriptionsont facultatifs.player_idest 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
requiresportant sur cette observation. - Les nombres sont additionnés sur ces faits. Tout le reste prend la valeur la plus récente.
Stock
- 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'.
{ ok = true, value = { stock } } ou { ok = false, error = code } :
Comptoir
Pour les PNJ qui vendent, déclarez unCatalog 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
{ 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.
spentest un champ d’observation réservé.
Contrat de RunAction
- Renvoyez exactement
truelorsque l’action est effectuée.falserejette 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
RegisterProvideravec 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 1journalise chaque push entrant et son résultat.

