[patch] compteurs des alambics cassés

Crayona
Messages : 457
Inscription : 24 juin 2012, 18:53

[patch] compteurs des alambics cassés

Message par Crayona »

Voici un petit patch qui ajoute du code pour compter les casses des alambics à cause de la production de Vif-Argent: le181-alambic_break_counter.patch

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;
(NB: Les caractères accentués doivent être en latin1 (ISO-8859-1) dans le code source du client, même s'ils s'affichent en utf-8 ici.)

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.

Ackak
Messages : 7348
Inscription : 18 déc. 2005, 19:31

Re: [patch] compteurs des alambics cassés

Message par Ackak »

Modification prise sur le svn.
Celui qui apprend quelque chose de moi enrichit son savoir sans réduire le mien, tout comme celui qui allume sa chandelle à la mienne se donne de la lumière sans me plonger dans l'obscurité.
-- Thomas Jefferson

Répondre