Le code et assez simple alors je le colle ici aussi:
Code : Tout sélectionner
diff --git a/counters.c b/counters.c
index bd6a900..69a439f 100644
--- a/counters.c
+++ b/counters.c
@@ -1337,6 +1337,11 @@ void increment_critfail_counter(char *name)
increment_counter(CRIT_FAILS, name, 1, 0);
}
+void increment_break_counter(char *name)
+{
+ increment_counter(BREAKS, name, 1, 0);
+}
+
void increment_harvest_counter(int quantity)
{
increment_counter(HARVESTS, harvest_name, quantity, 0);
diff --git a/counters.h b/counters.h
index a787758..c73ad2a 100644
--- a/counters.h
+++ b/counters.h
@@ -25,6 +25,7 @@ void print_session_counters(const char *category);
void increment_death_counter(actor *a);
void increment_critfail_counter(char *name);
+void increment_break_counter(char *name);
void increment_harvest_counter(int quantity);
void decrement_harvest_counter(int quantity);
void increment_alchemy_counter();
diff --git a/multiplayer.c b/multiplayer.c
index 30e282a..934816a 100644
--- a/multiplayer.c
+++ b/multiplayer.c
@@ -1141,6 +1141,12 @@ void process_message_from_server (const Uint8 *in_data, int data_length)
increment_critfail_counter(item_name);
}
} // End critfail counters block
+#define MATCH_PREFIX(s,p) (0 == strncmp(s, p, sizeof(p) - 1))
+ if (MATCH_PREFIX(inventory_item_string+1, "Ingrédients dangereux...")) {
+ if (strstr(inventory_item_string, "Ta création d'un Vif-Argent vient d'échouer")) {
+ increment_break_counter("Alambic");
+ }
+ }
#endif //ENGLISH
}
break;
Un souci est que la séquence "Alambic" ne se trouve pas dans le paquet INVENTORY_ITEM_TEXT, et le message RAW_TEXT de "L'alambic que Crayona..." est variable car il contient le nom du personnage. Alors on suppose que si la production d'un vif-argent échoue avec "Ingrédients dangereux" ça veut dire forcément qu'un alambic vient de se casser. Ce n'est pas optime, même un peu fragile, mais je ne vois pas une meilleure solution si l'on ne va pas changer le texte sur le serveur.