forked from mountyzilla/mountyzilla
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTout_MZ.user.js
18588 lines (17328 loc) · 634 KB
/
Tout_MZ.user.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// ==UserScript==
// @name Tout_MZ
// @namespace MH
// @description Client MountyZilla
// @icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAMAAABg3Am1AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAMAUExURQAAAAUDBQwKBxQKBBwKEBkTBBwaJCQUBCQcCS4cBzASBDwWBDIeGCQGJDweLCwjETQkDjQqFDw0HDQqNDw2NEAeFEAlCkIsCkElF0EsFkwpEUwuHEQzFkw0ElwtH1w6BFQ1EVM8FVw5F14+GEEqLEwiNEE1J0wzLE88LFgsNFQzKV40Jl88KWw+HGQzN2E7N2w2NEQ+THA+QFRDIFZELFxCIFxKJFxNMl9VP2dEGmRLGXRLF2dEKWhMJ2ZENGdNOmJSLmxUK2xXP3RKLHdMP3BeKHdaL3pUInRfOnhVMWRaRGheSH9FR3dVQ3ZaQHReRnRmTHxhRn9pV39xZ4A8RIRMOIRXKYxWJIxfJ4xaPIBgKYFgNoNnNY9oMY1pPoRwNJBhNpFvPZxvPpxwMpx3P6RsOKRyPKR4O4RNSIxGVJBSRJZYT4NnRo9gRIRiVIxiXIRwR45wToRwVIR2WJBnTpxnRJR4QJx+RJJ4U5R+VJxwVpx9UIxqYIxyZI94YZJ+YJx+YpR+cKluSad6T6d+T6l+Qax6QLRuTLR+QLR6XKR4YKR+bJ+FObCEO52DXYyCZJCEbJyKfKOESqGNX6yFWK+MXbKER7GMSbyDRryNR7SFXLyLWbyTT7SUXbyaVKGDcayUYK6QbqSRda+YeLSaZLyWYbyZb7efd7ySfLqgZrymcMSRQcSRT8SXTcyXTMufU8maXMeVY9ShW9imX8agbcugYMyqbMSmfsimccqsf9ambNSrZdytZtSseNyybNyweOC3dey+f4yOnJSGiKyKhKyYiLSSlLCgiLSmjLylibSqlLasnryskLyyqLy2xMSihMWskc+0gceyl8i2mNS4k9S+mNy5ksi5psq+ptS8qNy+tOS+gOC+lNzClMzCrNTEp9TKrN/Eo9jFt9rMtuTEjOzDi/DLlPzKnPTVmuDLqO7NqOTOtuzSoePTuvDVsPvdtPzevPzisOTaw+zUwe/cwu3dzeTa1Pbjw/TmzPzmzvzuxPvr1Pzy2fz35/z+9AAAAEG26sQAAAEAdFJOU////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wBT9wclAAAACXBIWXMAAA7CAAAOwgEVKEqAAAAAGHRFWHRTb2Z0d2FyZQBwYWludC5uZXQgNC4wLjOM5pdQAAAGpElEQVRIS3WVD1wT5xnHwdUVWjacW9XQ4Ay6mipqV4MYyRlgeJBVtGrrXBKoiXRxBWxo1WXEqRXoulbSDUkiGqZAhVlJAiFX/oSYuI6mTLryJzUytTQ5SE0woHAsSd9j7EISTJT9Pnef5O6e7+d9nz/v80TMzKcJ4vZ6/f8f0byA2+QBAJsMPIVrPgC4unFsEP0POgoCb+YEwHyAt6fO9hWGT0+jk48QwNUzD4D3J4lu251O5323wxN45xcY+jP2OIBbSBKjpvl8/Q3tLac1ZAkAHNwB/DEAR2lS7YEDfHaaBBbobwQIL/EzeYNXiz/qNHCPMivfTaGvjIshQXACz9DqIqJLhMxhba/IvEDsMAwAU66b74jY8fE02s6XxLxqmCI3mKe9k6OD7cPVXHqWi1gnDJhAMeeO5zZGXXca9H36yuqa+N9ViD4UVUjlytPbIFENRtiEAhiKtZftQKVv3Ws8myNuq79YKTpDid4k5qZx2XDq7z/q9cUsFEBd7Tnxe77LO26WSYUFJ0XaUvFRFpmzS1TfWl8i7euz+QIQCngGoGcXbn5Qmd4ugeITV1MvZm08mgtxahrqilrtw87BKZ9RuA806o+//3bq5peTf/LzPSTG0qjVUAJLUl0vhaX3xlB0NsJhgGtVDHUXPTryiU//9feXYkm7agqfYRZIeq3adgxDv/HbhAL48Zi64Za9UYvWrGEyIRhyOHjiHSdQYL73wG2Z8GcwFAA26pC9hU1axjiULhR1s3giWFtd5PgcM1swy1zhhgKmz+82yzctJtcWFTR0pwspDL09Ncssue29iWFB+1AAN7VpK7kbY6Ph9LdS02tEsUkNPTRR20AtioGHp+8hgHc9ly7kMVY9sWzFy5bS/SIJZ8ni2B9JHA6LryLmNAeAgRN1EmHiD3+wujY5Op7COipnc5PJ5LQTJhBqPwcAy8d3jTr51lXH+h4c/+lpYZ4MptRB2hK4ogEPO0UBALi67C1NVQJ+cycy3MC+XCfN48HiZO5eurTPn7CggoBpuFOlbGxENE2I/njMSs4+saQoOyq1Gkq73D7PCvjN1hG1SqVSNjUXM0kLnqSXCugwi0rKkm6BOdqw5uEHQJdV5wNapBsWREZGbuTw8pI4/ByYDlfwc5tNjwHeyW57CwF0Nq+JjFwYtZDGgOvTuI1yAb/k/JH89485QohZAPx70K5TqzsNGd9bsGjRCgqtIO6AXNGmVZz9Y/5vX3yzuAaftZ1VALDZr3Yavn1/2ZMMiJ7CyTpDl6k62trUZ0/lv5KRnlHY+7DR+oH+HvzuvfG/rSdlCtj7c3icPq5cqdFfrpadyj+YuPPF7X/qm8u2H3Blf2azntwaBwnKeILSbtbFitN/RZDLFysOH8zftfXgkcYRR7D8ZoEZ0Lth/dq1MYvS+GV5PGl3Lixmy5s6Pvm44kj+YeHWQuSWEwumzw98d/PCH06KukzUndvgJEkuFyqAfoMYblsr39jOpK4vREbGgCuQPj/g6f3HByezPzicben5cHMydSmZxeLpjE5n9ivPpzNfKOkYGQdfYziOE67PAtO2C8UU8tIV8UuSsk7Umfp3xybmZiLG+wOJr65//mcZMt3I2HQtaefuWsIRHzBt2XMoDuKWyWT8fSkUyqYzPe8sZaXIDO6eTH7hwe2vNiFGO/72U8uXr81GfQMFdJGfSYK1ROY0KqWy/LUt8TuOQfp1ZYZxS+6l+uJzJUqdcWScxsjPf2P5bgIAJg68hDncqfQVn1KtuVKembghtyRFph9zceq1JeebEN1Ve83KPNmpvUUOEOEZ7dX/KmHgLqJUNaqUGm0rckWw8hfbEnhKg9OTxZFfamrp0F2tZu2vUr7OHyJ88Ixixl8Lh+7riNNwRYm0tSLKqn3wFnY5MuL97y9JcJ5coZALeLz3zr5e4psuEa5Dfbc4wtfM9mvGlsYqRUcH0qQSHJCX6+xW9PpiMo2Tk1dWXi57793SL2eTHdHPWsfJTYQozALxJY1GTVxqZXl5y1V9EZVMToI4ZQo1olYotOZAbUTMuBrERQlLoqOfejqOUXyuqpHYgEDxyY3eAfQbq9V6x2y+fcfhwnxDLgAAAMa+6v4L81wZn7WOkcFicY5+dAfz4tM4Tnxye9xTYX1mNtNegIOucWOnRrY/Ey6oG5xwT019gdps6KjLHdYBCPlricjeP4fG7deuIdKGUa9vcExd//QLFO1/2FODCgJet8VC7Hhg0BM0mQDA65uCjygIENuasKFE2w08/h/NzPwPOHaIyvrbq40AAAAASUVORK5CYII=
// @match http://games.mountyhall.com/*
// @match https://games.mountyhall.com/*
// @exclude *trolls.ratibus.net*
// @exclude *it.mh.raistlin.fr*
// @exclude *mh2.mh.raistlin.fr*
// @exclude *mhp.mh.raistlin.fr*
// @exclude *mzdev.mh.raistlin.fr*
// @version 1.6.36
// @grant GM_getValue
// @grant GM_deleteValue
// @grant GM_setValue
// ==/UserScript==
// vérif UTF-8 ş
/** *****************************************************************************
* This file is part of Mountyzilla. *
* *
* Mountyzilla is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
* (at your option) any later version. *
* *
* Mountyzilla is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with Mountyzilla; if not, write to the Free Software *
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA *
*******************************************************************************/
var MZ_latest = '1.6.36';
var MZ_changeLog = [
"V1.6.x \t\t 23/12/2024",
" - Adapations nouvelle vue",
"V1.5.x \t\t 23/09/2024",
" - Multiples correctifs suites aux mises à jours MH",
"V1.4.11 \t\t 06/05/2024",
" - Remise en route des Jubilaires",
"V1.4.10 \t\t 05/05/2024",
" - Compte à rebours aussi pour la DLA suivante",
"V1.4.8 \t\t 02/05/2024",
" - remise en route de l'avertissement pour les DE et TP près d'un trou",
"V1.4.7 \t\t 28/04/2024",
" - Possibilité d'afficher le compte à rebours dans le titre (voir dans les options)",
"V1.4.4 \t\t 25/04/2024",
" - Affiche les infos MZ dans la page profil mobile",
"V1.4.3 \t\t 14/04/2024",
" - Corrige l'affichage des trolls hors-vue",
" - Permet le scroll des options Mountyzilla en affichage vertical (et accel pour les kastars)",
" - N'essaie plus d'afficher les infos trolls en vue spécifique (monstre, trésors, etc.)",
" - Affiche directement les derniers changements sur la page de nouvelles",
"V1.4.2 \t\t 10/04/2024",
" - Ajoute la possibilité d'afficher les rapports d'erreurs directement en jeu",
"V1.4.1 \t\t 09/04/2024",
" - Affichage de version hors Greasemonkey",
" - Meilleur gestion des popup et diverses insertions en version smartphone",
"V1.4.0 \t\t 05/04/2024",
" - Refonte générale du script tout MZ",
" - Meilleur support de MH en mode smartphone",
"V1.3.1.41 \t 27/03/2024",
" - Meilleur affichage des trolls hors-vue (interface tactique)",
"V1.3.1.40 \t 26/03/2024",
" - Affichage des fatigues optimales dans le profil",
"V1.3.1.27 \t 07/12/2023",
" - Adaptation don de PX",
"V1.3.1.24 \t 04/11/2023",
" - Fix effet armure de pierre",
"V1.3.1.23 \t 21/10/2023",
" - Fix vue externe avec emoticone dans un nom de Gowap",
"V1.3.1.20 \t 17/08/2023",
" - NOM_TROLL en LocalStorage",
"V1.3.1.19 \t 13/08/2023",
" - NOM_TROLL en LocalStorage",
"V1.3.1.18 \t 18/06/2023",
" - modif ID HTML titre2",
"V1.3.1.17 \t 18/04/2023",
" - Fix le N de sortie de TP",
"V1.3.1.16 \t 16/04/2023",
" - Ajustement modif MH",
"V1.3.1.15 \t 28/03/2023",
" - Remise en route analyse résultat CdM",
"V1.3.1.14 \t 26/03/2023",
" - Correction attaque Rotobaffe",
"V1.3.1.11 \t 03/03/2023",
" - Préparation pour l'affichage des couleurs du pogo'",
"V1.3.1.10 \t 06/02/2023",
" - Adaptation à un changement de présentation MH (recherche de compo en tanière)",
"V1.3.1.9 \t 19/12/2022",
" - Ajout de l'affichage des compos sur l'équipement d'un suivant et traitement de la limitation à 100 réponses",
"V1.3.1.7 \t 17/12/2022",
" - Ajout de l'affichage des compos en tanière à l'historique d'un compo",
"V1.3.1.6 \t 28/11/2022",
" - Nouvelles caractéristiques de l'équipement",
"V1.3.1.5 \t 16/11/2022",
" - Correction vue externe, troll manquant",
"V1.3.1.4 \t 07/11/2022",
" - Correction appel Anatrolliseur si DLA nombre exact d'heures",
"V1.3.1.3 \t 20/08/2022",
" - Pilotage externe de certaines options",
"V1.3.1.2 \t 18/08/2022",
" - Enrichissement de la page des suivants",
"V1.3.0.99 \t 23/07/2022",
" - Mémorise si on veut la vue SCIZ ou pas dans les Events",
"V1.3.0.98 \t 28/06/2022",
" - Fix pb suite à changement de présentation de la vue",
"V1.3.0.97 \t 18/06/2022",
" - Fix tableau de Fatigue et AM dans certains cas",
"V1.3.0.96 \t 18/04/2022",
" - Ajout de la gestion des portails pour SCIZ",
"V1.3.0.95 \t 16/04/2022",
" - Corrections du cas de soit-même dans la vue pour SCIZ",
"V1.3.0.94 \t 22/03/2022",
" - Fix message quand la réserve de temps de tour est exactement 0",
"V1.3.0.93 \t 20/02/2022",
" - Ajout guilde et mention 'HORS VUE' pour les trolls de la coterie SCIZ",
"V1.3.0.92 \t 29/01/2022",
" - modif suite à changement MH sur les CdM",
"V1.3.0.91 \t 16/01/2022",
" - Correction BM vue, PVMax en %",
"V1.3.0.89 \t 05/01/2022",
" - Corrections variées pour SCIZ",
"V1.3.0.88 \t 01/01/2022",
" - Fix cacher les gowaps au même niveau",
"V1.3.0.87 \t 01/01/2022",
" - Adaptation aux modifs MH pages des suivants",
"V1.3.0.86 \t 31/12/2021",
" - Corrections pour SCIZ",
"V1.3.0.85 \t 31/12/2021",
" - Amélioration du support SCIZ (trolls cachés ou hors-vue)",
"V1.3.0.84 \t 29/12/2021",
" - Corrections pour SCIZ",
"V1.3.0.83 \t 29/12/2021",
" - Amélioration du support SCIZ (bestiaire, champignons et pièges)",
"V1.3.0.82 \t 14/11/2021",
" - fix nom monstre marqué avec un nombre",
"V1.3.0.81 \t 14/11/2021",
" - fix CdM sans date dans les messages du bot",
"V1.3.0.80 \t 20/10/2021",
" - fix plantage à l'affichage du profil publique en cas de CSS avancé",
"V1.3.0.79 \t 14/07/2021",
" - Correction effet venin GdS",
"V1.3.0.78 \t 17/06/2021",
" - Correction affichage des trésors en vue externe",
"V1.3.0.77 \t 23/04/2021",
" - Ajout d'une icône pour les monstres qui volent (=lévitent)",
"V1.3.0.76 \t 23/03/2021",
" - Correction pour SCIZ (surcharge des événements)",
"V1.3.0.75 \t 11/03/2021",
" - Masquer en vue externe les monstres masqués dans la vue",
"V1.3.0.74 \t 18/01/2021",
" - Support ancien Firefox",
"V1.3.0.73 \t 15/01/2021",
" - Adaptation à Dist H/V MH",
"V1.3.0.72 \t 11/01/2021",
" - Correction de la vue des trolls avec SCIZ",
"V1.3.0.71 \t 11/01/2021",
" - Amélioration du support SCIZ (Vue trolls)",
"V1.3.0.70 \t 08/01/2021",
" - adaptation vue externe dist H/V",
"V1.3.0.69 \t 25/12/2020",
" - Fix (tentative) message d'erreur sur armM_phy dans la vue",
"V1.3.0.68 \t 10/12/2020",
" - Limitation vue externe",
"V1.3.0.66 \t 07/12/2020",
" - Options en mode smartphone",
"V1.3.0.65 \t 30/11/2020",
" - Fix mémorisation des missions (donc cibles plus affichées) + fix filtre en mode smartphone",
"V1.3.0.63 \t 20/11/2020",
" - Ajout du calcul de la marge de temps de tour dans le profil (nommé marge ou augmentation)",
"V1.3.0.60 \t 16/11/2020",
" - Vue externe en mode smartphone",
"V1.3.0.59 \t 08/11/2020",
" - Adaptation page Bonus-Malus",
"V1.3.0.58 \t 01/11/2020",
" - Remplacement CONST par VAR dans SCIZ",
"V1.3.0.57 \t 30/10/2020",
" - Fix mouches présentes",
"V1.3.0.56 \t 08/10/2020",
" - Retour de la carte des suivants",
"V1.3.0.55 \t 05/09/2020",
" - Ajout compte à rebours de DLA",
"V1.3.0.54 \t 28/08/2020",
" - Supprime le déplacement de la page de vue au survol de la souris du titre \"INFORMATIONS\"",
"V1.3.0.53 \t 20/07/2020",
" - Correction de la vue smartphone",
"V1.3.0.51 \t 23/06/2020",
" - Correction de la vue",
"V1.3.0.47 \t 23/06/2020",
" - Correction blessure",
"V1.3.0.46 \t 23/06/2020",
" - Adaptation réserve de temps",
"V1.3.0.45 \t 17/06/2020",
" - Pas de reset (erroné ?) fatigue en affichage profil",
"V1.3.0.44 \t 13/06/2020",
" - Remplacement CONST par VAR à cause de IOS (bug ?)", // voir https://stackoverflow.com/questions/37228892/why-is-my-javascript-not-working-correctly-in-strict-mode-on-safari
"V1.3.0.43 \t 11/06/2020",
" - Affichage callstack en erreur profil",
"V1.3.0.42 \t 18/05/2020",
" - Amélioration du support SCIZ (Mise en option des fonctionnalités)",
"V1.3.0.41 \t 15/05/2020",
" - Amélioration du support SCIZ (Vie des trolls de la coterie)",
"V1.3.0.40 \t 13/05/2020",
" - Correction ARM dans le cas d'un grosse perte pour le tour",
"V1.3.0.39 \t 08/05/2020",
" - Correction erreur sur le profil en mode smartphone",
"V1.3.0.38 \t 25/04/2020",
" - Amélioration du support SCIZ (Gestion des trésors cachés)",
"V1.3.0.37 \t 19/04/2020",
" - Suite travail sur l'envoi de CdM en mode smartphone",
"V1.3.0.36 \t 20/04/2020",
" - Amélioration du support SCIZ (Icônes pour les événements !)",
"V1.3.0.35 \t 19/04/2020",
" - Ignorer l'absence de date/heure des CdM et gestion smartphone",
"V1.3.0.33 \t 14/04/2020",
" - Correction fausse reconnaissance de CdM sur les autres compétences",
"V1.3.0.32 \t 14/04/2020",
" - Adaptation page des ordres des suivant + [état et callback] pour les",
" scripts tiers (voir doc sur le mot clef MZ_callback_init)",
"V1.3.0.31 \t 22/03/2020",
" - Envoi des CdM à partir du message du Bot",
"V1.3.0.30 \t 22/03/2020",
" - Amélioration du support SCIZ (Trésors dans la vue !)",
"V1.3.0.29 \t 14/03/2020",
" - Fix calcul PV après blessure en cas de maxPV inconnu",
"V1.3.0.28 \t 13/03/2020",
" - Fix la détection incohérence CdM et affichage en rouge",
"V1.3.0.27 \t 20/02/2020",
" - Ajout de la probabilité de toucher avec Lancer de Potion dans la Vue",
"V1.3.0.26 \t 08/02/2020",
" - Lisibilité CdM en mode smartphone",
"V1.3.0.25 \t 07/02/2020",
" - Adaptation basique au profil modifié",
"V1.3.0.23 \t 30/01/2020",
" - Correction affichage filtre monstre",
"V1.3.0.22 \t 23/01/2020",
" - Re-adaptation re-modif MH (affichage des durées négatives)",
"V1.3.0.21 \t 21/01/2020",
" - Adaptation à une modif MH dans la page des suivants",
"V1.3.0.20 \t 21/01/2020",
" - Adaptation modif MH (affichage des durées négatives)",
"V1.3.0.19 \t 19/01/2020",
" - Centralisation des éléments tactiques",
"V1.3.0.18 \t 19/01/2020",
" - Correctif pour les icônes d'action à distance dans la vue",
"V1.3.0.17 \t 16/01/2020",
" - Correctif pour le recall du filtre des Monstres",
"V1.3.0.16 \t 10/01/2020",
" - Amélioration du support SCIZ (Fix sur le prettyprint)",
"V1.3.0.15 \t 10/01/2020",
" - Amélioration du support SCIZ (Fix sur les événements de zone)",
"V1.3.0.14 \t 06/01/2020",
" - Correction filtre par famille pour les monstres variables et sans cdm",
"V1.3.0.13 \t 06/01/2020",
" - Ajout du filtre sur la famille des monstres",
"V1.3.0.12 \t 28/12/2019",
" - Fixed bug fix pour SCIZ (JWT)",
"V1.3.0.11 \t 28/12/2019",
" - Bug fix pour SCIZ (JWT)",
"V1.3.0.10 \t 22/12/2019",
" - Corrections mineures pour SCIZ",
"V1.3.0.9 \t 19/12/2019",
" - Amélioration du support SCIZ (Fixes + AdvancedCSS + SwitchEvent)",
"V1.3.0.8 \t 16/12/2019",
" - Amélioration du support SCIZ (Fixes + Play_evenement + PJView_Events)",
"V1.3.0.7 \t 12/12/2019",
" - correction cibles des missions 'famille', 'pouvoir' et cas particulier de 'race'",
"V1.3.0.6 \t 11/12/2019",
" - suppression infobulle sur l'intervalle de confiance s'il n'y en a pas,",
" correction affiche de l'heure dernière CdM, plus de debug en profil de monstre",
"V1.3.0.5 \t 11/12/2019",
" - Première interconnexion avec SCIZ (Options + MonsterView)",
"V1.3.0.4 \t 29/11/2019",
" - Ajout des déciles",
"V1.3.0.3 \t 29/11/2019",
" - Affichage d'une icône pour les Phœnix dont la génération est connue",
"V1.3.0.2 \t 24/11/2019",
" - Réduction taille info CdM",
"V1.3.0.1 \t 22/11/2019",
" - Ajustements sur les infos tactiques",
"V1.3.0 \t\t 15/11/2019",
" - Refonte calculs tactiques de la vue - beta",
"V1.2.20.6 \t 09/11/2019",
" - Correction de la formule d'AdD dans le profil",
"V1.2.20.5 \t 16/10/2019",
" - Mutualisation analyse ordres suivants MZ_analyse_page_ordre_suivant",
"V1.2.20.4 \t 03/10/2019",
" - Adaptation modif MH de la page des suivants",
"V1.2.20.3 \t 02/09/2019",
" - Compétence golem vers l'anatroliseur",
"V1.2.20.2 \t 25/05/2019",
" - Gestion des Parasitus pour les missions",
"V1.2.20.1 \t 25/05/2019",
" - Correction de la cible en cas de mission demandant un kill de Crasc + message d'alerte en cas de fumeux",
"V1.2.20.0 \t 25/05/2019",
" - Adaptation aux modifications des CdM par MH",
"V1.2.19.2 \t 16/04/2019",
" - Correction majuscules dans les talents",
"V1.2.19.1 \t 14/04/2019",
" - Prise en compte des nouvelles AdX dans profil2",
"V1.2.18.15 \t 29/03/2019",
" - Correction simple quote dans toutes les missions",
"V1.2.18.14 \t 09/03/2019",
" - Correction affichage vues 2D externes suite à une modif MH",
"V1.2.18.13 \t 27/02/2019",
" - Correction simple quote dans les familles de monstre des missions",
"V1.2.18.12 \t 23/12/2018",
" - Message si \"Menu d'actions contextuelles\" est décoché",
"V1.2.18.11 \t 21/11/2018",
" - Correction it bricol'troll, login avec accent",
"V1.2.18.10 \t 08/08/2018",
" - Correction boulette sDiplo",
"V1.2.18.09 \t 04/08/2018",
" - Protection contre diplomatie mal initialisée",
"V1.2.18.08 \t 11/07/2018",
" - Correction pour fonctionnement hors GM",
"V1.2.18.07 \t 18/05/2018",
" - prise en compte bonus magique d'esquive dans le profil, correction",
" gestion de la souris dans la page d'équipement [Dabihul, welcome back]",
"V1.2.18.06 \t 28/01/2018",
" - Protection malus Crasc sans durée",
"V1.2.18.05 \t 18/11/2017",
" - Désactivation MZ V2 en mode dev pour les tests d'adaptation violentmonkey",
"V1.2.18.04 \t 04/09/2017",
" - retour version 1.2.18.02 avec GM 3.17",
"V1.2.18.03 \t 01/09/2017",
" - Désactivation de GM_setValue/getValue à cause d'une lenteur sur GM 3.16",
"V1.2.18.02 \t 26/08/2017",
" - correction boulette sur le compos d'enchantement",
"V1.2.18.01 \t 25/08/2017",
" - Suppression des messages sur les certificats en https",
" - Protection contre des erreurs dans le stockage des compos d'enchantement",
"V1.2.17.19 \t 23/08/2017",
" - Possibilité de plusieurs IT Bricol'Troll",
"V1.2.17.18 \t 22/08/2017",
" - Adaptation compétence 'travail de la pierre' (dont anatrolliseur)",
" - Accélération de l'affichage des niveaux si plus de 500 monstres",
"V1.2.17.17 \t 16/07/2017",
" - modification du mécanisme de filtrage pour contourner un pb",
"V1.2.17.16 \t 16/07/2017",
" - Ajout de messages de debug sur les retours AJAX",
"V1.2.17.15 \t 15/07/2017",
" - modification du mécanisme de filtrage pour contourner un pb",
"V1.2.17.14 \t 14/07/2017",
" - correction dans la gestion des étapes de mission",
"V1.2.17.13 \t 12/07/2017",
" - Adaptation au déplacement des colonnes dans la vue des Trõlls",
"V1.2.17.12 \t 16/06/2017",
" - Correction mauvais compte de PX quand on change de Trõll",
"V1.2.17.11 \t 01/05/2017",
" - Travail sur le fonctionnement hors Greasemonkey",
"V1.2.17.10 \t 30/04/2017",
" - Protection dans la récupération d'erreur",
"V1.2.17.9 \t 30/04/2017",
" - Correction récupération d'erreur IT Bricol'Troll",
"V1.2.17.8 \t 29/04/2017",
" - Correction Bonus/Malus cas +0\+10 (AE)",
" - Correction portée IdC",
" - Prise en compte du bonus de portée PM dans le calcul tactique",
"V1.2.17.7 \t 26/04/2017",
" - Version compatible hors GreaseMonkey",
"V1.2.17.6 \t 23/04/2017",
" - Correction gestion des missions en cas de réinstallation",
"V1.2.17.5 \t 20/04/2017",
" - Correction de la récupération du niveau du Trõll pour le calcul des PX",
"V1.2.17.4 \t 08/04/2017",
" - Affichage triangle camou/invi pour les Trõlls de l'IT vus (sous VlC)",
" - Adaptation de la diplomatie à une modification de la page MH",
"V1.2.17.3 \t 04/04/2017",
" - Messages console en cas de cadre d'erreur",
" - Trolls de l'IT mais pas dans le vue en orange",
"V1.2.17.2 \t 20/03/2017",
" - Correction des PV restants",
"V1.2.17.1 \t 20/03/2017",
" - Blocage des PV restants en attendant résolution de bug",
"V1.2.17 \t 19/03/2017",
" - Refonte de l'envoi des CdM",
" - Modification de l'analyse de la frame de gauche (suite modification MH)",
"V1.2.16.4 \t 08/03/2017",
" - correction ID de troll en envoi de PX/MP",
"V1.2.16.3 \t 27/02/2017",
" - correction bonus/malus FP",
"V1.2.16.2 \t 24/02/2017",
" - corrige bug des cases à cocher qui n'étaient plus mémorisées",
"V1.2.16.1 \t 21/02/2017",
" - corrige bug sur Fx 38.8 ESR",
"V1.2.16 \t 21/02/2017",
" - double stockage GM + localStorage version Vapulabehemot en préparation du passage HTTPS",
" - possibilité de masquer les Gowaps Sauvages dans la vue",
" - calcul des caractéristiques du siphon des âmes",
"V1.2.15.2 \t 02/02/2017",
" - adaptation décumul VlC (page des bonus/malus)",
"V1.2.15.1 \t 29/01/2017",
" - carte sur la page de description du lieu TP",
"V1.2.15 \t 25/01/2017",
" - mise en place des nouvelles cartes (suivants, TP)",
"V1.2.14.3 \t 25/01/2017",
" - résumé dans l'export des données Trõlligion",
"V1.2.14.2 \t 20/01/2017",
" - forcer filtrage après le chargement des niveaux des monstres dans la vue",
"V1.2.14.1 \t 20/01/2017",
" - réécriture filtrage des monstres par niveau dans la vue",
" - Changelog dans la page des news MZ",
"V1.2.14 \t 20/01/2017",
" - Ajout de l'export des données Trõlligion",
"V1.2.13.7 \t 10/01/2017",
" - Exclusion Bricoll'troll dans l'entête GM",
"V1.2.13.6 \t 08/01/2017",
" - Réécriture analyse des étapes de mission sur monstre de niveau...",
"V1.2.13.5 \t 07/01/2017",
" - Correction bug qui se manisfestait sous LINUX",
"V1.2.13.4 \t 07/01/2017",
" - Plus de traces en mode debug pour l'analyse des étapes de mission",
"V1.2.13.3 \t 07/01/2017",
" - Correction erreur sur un commentaire qui bloquait la compilation javascript",
"V1.2.13.2 \t 07/01/2017",
" - Correction missions, recherche troogle (familles et types de monstres)",
"V1.2.13.1 \t 06/01/2017",
" - Suppression oldSchoolProfile qui n'existe plus",
" - Ajout du 'refresh' du cadre de gauche",
"V1.2.13 \t 01/01/2017",
" - homogénéisation des messages d'erreur",
" - Ajout du lien Troogle sur les étapes de mission monstre",
"V1.2.12.2 \t 30/12/2016",
" - retour en mode normal (http si jeu en http)",
"V1.2.12.1 \t 27/12/2016",
" - Correction mode IP",
" - Version patch pour forcer https sur /mz.mh.raistlin.fr (http en panne)",
"V1.2.12 \t 24/12/2016",
" - Nettoyage des URL",
" - Mode dev (Shift+Click sur le mot 'Crédits' dans Options/Pack Graphique) qui se branche sur le site de dev",
" - Interface bricoll'Troll en https",
" - Remise en marche des cartes des trajets des gowaps",
"V1.2.11.5 à 7 20 \t 21/12/2016",
" - Trace et protection sur plantage remonté par Marsak (lié à la diplo dans la vue)",
"V1.2.11.4 \t 19/12/2016",
" - Changement des couleurs de la barre de vie Interface Bricol'Troll",
"V1.2.11.3 \t 19/12/2016",
" - Correction de la récupération des PI totaux (du coup la portée de TP était NaN)",
" - Interface Bricol'Troll : suppression Trõlls pas mis à jour depuis plus d'un mois et grisé ceux depuis plus de 7 jours",
"V1.2.11.2 \t 18/12/2016",
" - Correction bug interface Bricoll'Troll, n n'était pas affiché pour les Potrolls au soleil",
"V1.2.11.1 \t 17/12/2016",
" - Correction bug interface Bricoll'Troll, les potrolls n'étaient pas affichés s'il n'y en avait pas au moins un",
"V1.2.11 \t 13/12/2016",
" - Passage sur BdD Raistlin \\o/",
"V1.2.10.4 \t 12/12/2016",
" - Correction bug à la récupération d'une erreur interface Bricoll'Troll",
"V1.2.10.3 \t 09/12/2016",
" - Adaptation à une modification du HTML MH (voir MZ_cVueExterne.set2DViewSystem)",
"V1.2.10.2 \t 09/12/2016",
" - positionnement des Trõlls camou/invi à la bonne position par rapport à la distance",
"V1.2.10.1 \t 08/12/2016",
" - option pour affichage des Trõlls {invi/camou/hors vue} avec Bricol'Troll + peaufinage affichage",
"V1.2.10 \t 07/12/2016",
" - correction décumul des bonus/malus",
" - affichage des Trõlls {invi/camou/hors vue} avec Bricol'Troll",
"V1.2.9 \t\t 16/11/2016",
" - adaptation Firefox 50 (comportement différent sur échec Ajax https)",
"V1.2.8 \t\t 10/11/2016",
" - gestion des messages d'erreur de l'interface avec l'IT bricol'Troll",
" - déplacement des images sur l'infra raistlin + meilleure gestion HTTPS",
"V1.2.7 \t\t 07/11/2016",
" - remise en route de l'interface avec l'IT bricol'Troll",
"V1.2.6 \t\t 19/10/2016",
" - affichage d'un message en cas de certificat raistlin non accepté pour la vue sous https",
" - stockage idguilde et nomguilde",
"V1.2.5 \t\t 17/10/2016",
" - correction doublon do_cdm qui bloquait l'envoi des CdMs lors de la compétence",
" - remise en route de la gestion des options avec intégration md5 dans ce script",
"V1.2.4 \t\t 14/10/2016",
" - utilisation du relai raistlin pour l'envoi des CdM",
"V1.2.3",
" - suppression ancien profil",
" - nettoyage doublon sur getPortee",
" - adaptation portee TP basée sur les PI",
" - repository sur greasyfork.org (pour être en https et avoir la mise à jour automatique active par défaut)",
"V1.2.2",
" - correction bug sur les 2 URL raistlin qui avaient été confondues",
"V1.2.1",
" - include des URLs MH alternatives",
" - regroupement des URLs externes en tête de fichier pour pouvoir contempler l'horreur de la diversité de la chose",
" - Ajout d'un message d'alerte en cas de HTTPS sans avoir débloqué le contenu mixte",
"V1.2",
" - toujours un gros paquet sale, passage sous Greasemonkey",
"V1.1",
" - regroupement en un gros paquet sale",
];
/** ********************************************************
À faire / propositions d'évolutions
H2P 08/07/2020
* dans la vue des minerais, ça devrait a priori afficher, sur base des formules de mountypedia, le nombre de carats de chaque pépite de minerai
Bireli-Gravos 08/12/2018
FAIT faire un warning si l'utilisateur a désactivé la case "Menu d'actions contextuelles" dans la fenêtre "limiter la vue"
breizhou13 20/12/2016
envoyer les données à l'IT (Bricol'Trolls) aussi
(Roule') Ça me semble difficile vis à vis de Bricol'Troll. Un bouton pour demander le rafraichissement ?
partage de l'identification des tresors au sol. Ca c'etait cool mais ca implique une BDD
partage des CDM avec seulement son groupe. Perso je prefere le partage general
Akkila le boeuf le 26-03-2017 à 15:56
- bouton pour rafraîchir les infos des trolls de son groupe
Roule'
FAIT corriger la façon dont les cibles de mission sont stockées (JSON très grosse table)
Réactiver les jubilaires
À supprimer : traces marquées [MZd] (mises pour analyser pb Tcherno Bill)
06/01/2017 toute la partie tabcompo ne fonctionne plus (sans doute suite à la modification de l'affichage des objets en tanière)
- voir l'intérêt de refaire fonctionner
- gestion des compos d'enchantement, EM (!), mois des champignons, autre (?)
FAIT : ambiguité sur le nom de monstres de mission : Shai, Ombre, Geck'oo et Boujd'la
Sans doute à corriger, la compétence Baroufle pour le lien vers l'anatroliseur
Prévision des DLA de monstre
FAIT Niveau des monstres à la méthode Roule'
Raistlin
* et si la popup des compétences s'affichait aussi au survol des raccourcis ?
FAIT? pages des Bonus/malus, erreur sur l'effet total, tours suivants, attaque
FAIT Les cibles de mission ont disparu dans la vue (remonté par Hera)
80117 - Héra
* Il semble que l'icône de LdP n'apparait que pour les Tom
FAIT l'infobulle de sacrifice donne des info erronées maintenant (dues aux changement d'affichage des gains/bm de temps probablement). pour moi, ça me dit "vous ne pouvez pas compenser de blessures dues à un sacrifice" alors que clairement, je peux
Ajout dans le vue d'un pseudo-lieu pour la caverne où le meneur d'un mission doit se rendre
FAIT Pour la portée IdC, l'arrondi est par défaut et MZ le fait par excès (1 fois en horizontal + 1 fois en vertical)
FAIT Possibilité de plusieurs systèmes Bricol'troll
en 1.2.17.18 SyntaxError: expected expression, got end of script[En savoir plus] Tout_MZ.user.js:12731:6
?
FAIT Tenir compte de la distance pour le PM (calculatrice de combat)
Alanae/Gnu/Pen-Hiss
* l'infobulle du lancer de potion pourrait donner le % du jet de toucher en fonction de la distance
* popup d'erreur js en mode smartphone sur un TP (pb trajet_canvas)
Dans https://mhp.mh.raistlin.fr/mountyhall/View/View_closed.php, le lien pour se connecter à son troll est games.mountyhall.com Est-ce que ça peut être modifié par MZ ?
a de temps en temps un popup "Error: Permission denied to access property Symbol:toPrimitive"
est-ce que l'infobulle de charger pourrait calculer la portée pour les tours suivants en fonction de la diminution de fatigue (ce serait plus compliqué d'estimer quand on est blessé en fonction de la reg)
Kali
MASQUÉ "TyperError: InfoComposant[4] is undefined" à l'affichage de la vue
**********************************************************/
/** ********************************************************
Doc État et Callback pour l'utilisation par les scripts tiers
MZ met à jour la propriété document.body.dataset.MZ_Etat
1 à la fin de l'initialisation (tout le code MZ s'est déroulé mais il peut y avoir des appels AJAX en cours)
2 (uniquement sur l'onglet de la vue) quand l'onglet a été mis à jour avec les niveaux, etc.
ATTENTION, l'utilisateur peut demander un complément de CdM s'il voit plus de 500 monstres
MZ appelle les callback définies dans les tableaux suivants, si ces tableaux existent
document.body.MZ_Callback_init: fonctions que MZ appellera quand MZ aura fini sont initialisation
ATTENTION, si MZ est chargé avant le script tiers, cette fonction ne sera jamais appelée. Le script tiers doit donc tester l'état document.body.dataset.MZ_Etat et faire l'appel à la callback lui-même si l'état est déjà défini, ce qui signifie que MZ est déjà initialisé.
document.body.MZ_Callback_fin_vue: fonctions que MZ appellera quand MZ aura fini son premier traitement des CdM dans la vue
ATTENTION document.body.MZ_Callback_init et document.body.MZ_Callback_fin_vue sont des tableaux.
Vous n'êtes pas seuls au monde. Un autre script externe peut s'être déjà enregistré en callback
Voici un exemple de code pour enregistrer une callback
if (document.body.MZ_Callback_init === undefined) {
document.body.MZ_Callback_init = [myCallback];
} else {
document.body.MZ_Callback_init.push(myCallback);
}
**********************************************************/
/** x~x Logging/debugging MZ ------------------------------------------- */
var MY_DEBUG = false, MY_LOG = true;
function printMZ(print, check, obj, exc = undefined) {
// Wrapper logging MZ avec injection d'exception pour les devs.
// Utiliser : logMZ(..), warnMZ(..), debugMZ(..), avertissement(..)
if (!check) {
return;
}
let msg = typeof obj === "object" ? JSON.stringify(obj) : obj;
let lv = GM_info && GM_info.script && GM_info.script.version ? `|${GM_info.script.version}` : '';
if (exc) {
// Source l'exception directement dans le logger.
// Les navigateurs modernes injectent directement
// une stacktrace interactive (support large cf MDN) :
// https://developer.mozilla.org/fr/docs/Web/API/console/error_static
print(`[MZ${lv}] ${msg}\n---\n`, exc);
return;
}
print(`[MZ${lv}] ${msg}`);
}
function logMZ(obj, exc = undefined) {
if (exc) {
// Comme logMZ est le logger "par défaut"
// -> upgrade en _error_ si exception présente.
printMZ(window.console.error, MY_LOG, obj, exc);
return;
}
printMZ(window.console.info, MY_LOG, obj);
}
function warnMZ(obj, exc = undefined) {
printMZ(window.console.warn, MY_LOG, obj, exc);
}
function debugMZ(obj, exc = undefined) {
if (exc) {
// Comme debugMZ est le debugger "par défaut"
// -> upgrade en _trace_ si exception présente.
printMZ(window.console.trace, MY_DEBUG, obj, exc);
return;
}
printMZ(window.console.log, MY_DEBUG, obj);
// printMZ(window.console.debug, MY_DEBUG, obj);
}
// WARNING (gath) - non utilisé (refonte logging) -> commenté
// function traceStack(e, sModule) {
// let version = '';
// if (GM_info && GM_info.script && GM_info.script.version) {
// version = `${GM_info.script.version}`;
// }
// let sRet = `[MZ_TRACE|${version}]`;
// if (sModule) {
// sRet = `${sRet} \{${sModule}\}`;
// }
// try {
// if (e.message) {
// sRet = `${sRet} ${e.message}`;
// }
// } catch (e2) {
// sRet = `${sRet} <exception acces message>`; // + e2.message;
// }
// try {
// if (e.stack) {
// let sStack = e.stack;
// // enlever les infos confidentielles
// sRet = `${sRet}\n${sStack.replace(/file\:\/\/.*gm_scripts/ig, '...')}`;
// }
// } catch (e2) {
// sRet = `${sRet} <exception acces stack>`; // + e2.message;
// }
// return sRet;
// }
/** ********************************************************
**** Début de zone à déplacer dans une bibli commune ******
**********************************************************/
// URL de base serveur MZ
var URL_MZ = 'http://mz.mh.raistlin.fr/mz';
// pour passer en mode IP, commenter la ligne précédente et décommenter la suivante
// let URL_MZ = 'http://192.99.225.92/mz';
// URLs externes images (pas de souci CORS mais pas de HTTPS)
// On dirait qu'il n'y en a plus...
// URLs externes redirection (pas de souci CORS)
var URL_pageNiv = 'http://mountypedia.ratibus.net/mz/niveau_monstre_combat.php';
var URL_AnatrolDispas = 'http://mountyhall.dispas.net/dynamic/';
var URL_vue_CCM = 'http://clancentremonde.free.fr/Vue2/RecupVue.php';
var URL_vue_Gloumfs2D = 'http://gloumf.free.fr/vue2d.php';
var URL_vue_Gloumfs3D = 'http://gloumf.free.fr/vue3d.php';
var URL_vue_Grouky = 'http://mh.ythogtha.org/grouky.py/grouky';
var URL_vue_cube = 'vueCube/vueCube.html';
// URLs de test HTTPS
var URL_CertifRaistlin1 = `${URL_MZ.replace(/http:\/\//, 'https://')}/img/1.gif`; // s'adapte si mode IP
var URL_CertifRaistlin2 = 'https://it.mh.raistlin.fr/vilya/mz_json.php';
// ceux-ci rendent bien les 2 entêtes CORS (mais pas de HTTPS)
var URL_bricol = 'http://trolls.ratibus.net/'; // recupération des infos des trolls dans l'IT bricol'troll
var URL_bricol_https = 'https://it.mh.raistlin.fr/'; // IT bricol'troll en https via relai Raistlin
/** x~x marque pour s'y retrouver sous l'éditeur (longueur: 80 chars) -- */
/** x~x Libs ----------------------------------------------------------- */
/* ancien TODO
* - revoir la gestion des CdM --> nott armure magique
* - revoir tout ce qui est lié à la vue (estimateurs dég nott)
* - vérfier la gestion des enchants
*/
// Roule 04/09/2016 switch extern URLs to https if available
var isHTTPS = false;
if (window.location.protocol.indexOf('https') === 0) {
URL_MZ = URL_MZ.replace(/http:\/\//, 'https://');
URL_bricol = URL_bricol_https;
isHTTPS = true;
}
// Roule 23/12/2016 mode dev
var isDEV = false;
if (window.localStorage.getItem('MZ_dev') ||
window.location.href.indexOf('rouletabille.mh.free.fr') > 0 ||
window.location.href.indexOf('mzdev.mh') >= 0) {
URL_MZ = URL_MZ.replace(/$/, 'dev');
isDEV = true;
}
// Images (pas de souci CORS)
var URL_MZimg = `${URL_MZ}/img/`;
// URLs externes ajax (CORS OK)
var URL_MZinfoMonstre = `${URL_MZ}/monstres_0.9_FF.php`;
var URL_MZgetCaracMonstre = `${URL_MZ}/getCaracMonstre.php`;
var URL_pageDispatcherV2 = `${URL_MZ}/cdmdispatcherV2.php`;
// liens externes déduits
var URL_bricol_mountyhall = `${URL_bricol}mountyhall/`;
var MHicons = '/mountyhall/Images/Icones/';
/** x~x Compatibilité Greasemonkey/ViolentMonkey ----------------------- */
try { // à partir du 11/07/2018, (GM_getValue === undefined) provoque une exception
GM_getValue === undefined;
vue = isDesktopView() ? "desktop" : "mobile";
logMZ(`Fonctionnement dans Greasemonkey (vue ${vue})`);
} catch (exc) {
GM_getValue = function (key) { };
GM_setValue = function (key, val) { };
GM_deleteValue = function (key) { };
GM_info = { script: { version: MZ_latest } }; // GM_info.script.version
vue = isDesktopView() ? "desktop" : "mobile";
if (typeof MH_mountyzilla_json !== "undefined")
logMZ(`Fonctionnement intégré MH (vue ${vue})`);
else
logMZ(`Fonctionnement hors Greasemonkey (vue ${vue})`);
}
/* Utilisation de la gestion de l'enregistrement des données de
GreaseMonkey, avec partage entre scripts via le localStorage, par
Vapulabehemot (82169) 07/02/2017 */
// Correction Roule' pour les boolean, le JSON decode pose problème car MZ utilise JSON
// Nécessite la présence de @grant GM_getValue, @grant GM_deleteValue et @grant GM_setValue
function MY_getValue(key) {
let v = window.localStorage.getItem(key);
let vGM = GM_getValue(key);
if (vGM == null || v != null && v != vGM) {
GM_setValue(key, v);
} else if (v == null && vGM != null) {
v = vGM;
window.localStorage[key] = vGM;
}
return v;
}
function MY_removeValue(key) {
GM_deleteValue(key);
window.localStorage.removeItem(key);
}
function MY_setValue(key, val) {
// conversion des booléens en 0 ou 1 à cause du localStorage infoutu de gérer les booléens
if (val === true) {
val = 1;
} else if (val === false) {
val = 0;
}
try {
GM_setValue(key, val);
} catch (exc) {
logMZ(`MY_setValue echec GM_setValue(${key}, ${val})`, exc);
}
try {
window.localStorage[key] = val;
} catch (exc) {
logMZ(`MY_setValue echec localStorage[${key}] = ${val}]`, exc);
}
}
function MZ_setOrRemoveValue(key, val) {
if (val === true) {
val = 'true';
} else if (val === false || val === undefined || val === '') {
val = null;
}
if (val === null) {
MY_removeValue(key);
} else {
MY_setValue(key, val);
}
}
function MZ_getValueBoolean(key) {
let val = MY_getValue(key);
if (val == 'true' || val == 1) {
return true;
}
return false;
}
// gath: sessionStorage utilisé comme cache
// -> si besoin de reset cache, clore l'onglet
function MY_setSessionValue(key, value, expirationInMin = 3) {
let expDate = new Date(new Date().getTime() + (60000 * expirationInMin))
let sessVal = {
data: value,
expirationDate: expDate.toISOString()
}
window.sessionStorage.setItem(key, JSON.stringify(sessVal));
}
function MY_getSessionValue(key) {
let strVal = window.sessionStorage.getItem(key)
if (strVal !== null) {
let value = JSON.parse(strVal)
let expirationDate = new Date(value.expirationDate)
if (expirationDate > new Date()) {
return value.data;
}
}
window.sessionStorage.removeItem(key);
return null;
}
/** x~x Variables globales utiles -------------------------------------- */
// utilisé pour accès bdd (un peu partout) :
var numTroll = MY_getValue('NUM_TROLL');
// utilisé dans vue pour PX :
// Roule 16/06/2017 on ne peut pas prendre le dernier niveau vu ! on a peut-être changé de Troll
var nivTroll; // = MY_getValue('NIV_TROLL');
// Roule 20/04/2017 le niveau n'est plus dans la frame de gauche, on récupère dans <numtroll>.niveau
if (nivTroll == undefined) {
nivTroll = MY_getValue(`${numTroll}.niveau`);
}
// utilisés dans actions et vue (calculs SR) :
var mmTroll = MY_getValue(`${numTroll}.caracs.mm`);
var rmTroll = MY_getValue(`${numTroll}.caracs.rm`);
var currentURL = window.location.href;
/** x~x Durée script --------------------------------------------------- */
var date_debut = null;
var jour_en_ms = 864e5;
function start_script(nbJours_exp, texte) {
debugMZ(`Script ${texte} début sur ${window.location.pathname}`);
if (date_debut) {
return;
}
date_debut = new Date();
// Créé la variable expdate si demandé
if (!nbJours_exp) {
return;
}
let expdate = new Date();
expdate.setTime(expdate.getTime() + nbJours_exp * jour_en_ms);
}
function displayScriptTime(duree, texte) {
debugMZ(`Script ${texte} fin sur ${window.location.pathname}`);
let footerNode = getFooter();
if (!footerNode) {
return;
}
let node;
try {
node = document.evaluate(".//text()[contains(.,'Page générée en')]/../br", footerNode, null, 9, null).singleNodeValue;
} catch (e) {
return;
}
if (!node) {
return;
}
if (duree) {
insertText(node, ` - [${texte} en ${duree / 1000} sec.]`);
return;
}
insertText(node, ` - [Script MZ exécuté en ${(new Date().getTime() - date_debut.getTime()) / 1000} sec.]`);
}
/** x~x Communication serveurs ----------------------------------------- */
function FF_XMLHttpRequest(MY_XHR_Ob) {
let request = new XMLHttpRequest();
request.open(MY_XHR_Ob.method, MY_XHR_Ob.url);
for (let head in MY_XHR_Ob.headers) {
request.setRequestHeader(head, MY_XHR_Ob.headers[head]);
}
request.onreadystatechange = function () {
if (request.readyState != 4) {
return;
}
if (request.error) {
if (MY_XHR_Ob.onerror) {
MY_XHR_Ob.onerror(request);
}
return;
}
if (request.status == 0) {
if (isDEV) {
let grandCadre = createOrGetGrandCadre();
let sousCadre = document.createElement('div');
sousCadre.innerHTML = 'AJAX status = 0, voir console';
sousCadre.style.width = 'auto';
sousCadre.style.fontSize = 'large';
sousCadre.style.border = 'solid 1px black';
grandCadre.appendChild(sousCadre);
}
if (MY_XHR_Ob.onerror) {
MY_XHR_Ob.onerror(request);
}
// showHttpsErrorContenuMixte();
return;
}
if (MY_XHR_Ob.onload) {
if (MY_XHR_Ob.trace) {
logMZ(`XMLHttp.onload ${MZ_formatDateMS()} début traitement retour AJAX ${MY_XHR_Ob.trace}`);
}
/* DEBUG: Ajouter à request les pptés de MY_XHR_Ob à transmettre */
MY_XHR_Ob.onload(request);
if (MY_XHR_Ob.trace) {
logMZ(`XMLHttp.onload ${MZ_formatDateMS()} fin traitement retour AJAX ${MY_XHR_Ob.trace}`);
}
}
};
if (MY_XHR_Ob.HTML) {
request.responseType = 'document';
}
request.send(MY_XHR_Ob.data);
}
// rend une chaine affichant date et heure et milliseconds (maintenant si le paramètre est absent)
function MZ_formatDateMS(d = new Date(), avec_ms = true) {
let date_fmt = d.toLocaleString('fr-FR');
if (avec_ms) {
date_fmt = `${date_fmt}.${d.getMilliseconds()}`;
}
return date_fmt;
}
/** x~x Interface utilisateur ------------------------------------------ */
function isDesktopView() {
let nav = document.getElementsByTagName('nav');
if (nav.length == 0) { return true; }
// possible nav en desktop
return nav[0].className == "compact mh_h" || nav[0].innerText.includes('|');
}
function isSmartphoneBrowser() {
try {
return navigator.userAgentData.mobile;
} catch {
let check = false;
(function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
return check;
}
}
function replaceLinkMHtoMZ() {
let aList = document.getElementsByTagName('a');
for (let i = 0; i < aList.length; i++) {
if (aList[i].href.includes('games.mountyhall')) {
aList[i].href = 'https://mhp.mh.raistlin.fr/mountyhall/MH_Play/PlayStart2.php';
return;
} else if (aList[i].href.includes('smartphone.mountyhall')) {
aList[i].href = 'https://szp.mh.raistlin.fr/mountyhall/MH_Play/PlayStart2.php';
return;
}
}
}
// http://stackoverflow.com/questions/400212/how-do-i-copy-to-the-clipboard-in-javascript
function copyTextToClipboard(text) {
let textArea = document.createElement('textarea');
//
// *** This styling is an extra step which is likely not required. ***
//
// Why is it here? To ensure:
// 1. the element is able to have focus and selection.
// 2. if element was to flash render it has minimal visual impact.
// 3. less flakyness with selection and copying which **might** occur if
// the textarea element is not visible.
//
// The likelihood is the element won't even render, not even a flash,
// so some of these are just precautions. However in IE the element
// is visible whilst the popup box asking the user for permission for
// the web page to copy to the clipboard.
//
// Place in top-left corner of screen regardless of scroll position.
textArea.style.position = 'fixed';
textArea.style.top = 0;
textArea.style.left = 0;
// Ensure it has a small width and height. Setting to 1px / 1em
// doesn't work as this gives a negative w/h on some browsers.
textArea.style.width = '2em';
textArea.style.height = '2em';
// We don't need padding, reducing the size if it does flash render.
textArea.style.padding = 0;
// Clean up any borders.
textArea.style.border = 'none';
textArea.style.outline = 'none';
textArea.style.boxShadow = 'none';
// Avoid flash of white box if rendered for any reason.
textArea.style.background = 'transparent';
textArea.value = text;
document.body.appendChild(textArea);
textArea.select();
let successful = document.execCommand('copy');
document.body.removeChild(textArea);
return successful;
}
function avertissement(txt, duree, bBloque, exc = undefined) {
let d = duree ? ` pour (${duree} ms)` : '';