From 483b3c02bc40995c39f2cf7ff5bba61073b74f9d Mon Sep 17 00:00:00 2001 From: SylvaniaCore deploy Date: Fri, 28 Aug 2026 15:19:13 +0200 Subject: [PATCH] Rivage brise 1460 : les demons etaient flagues en allies MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signale en jeu, capture a l appui : « ce sont bien des ennemis mais flagues en allie » -- plaques de nom vertes sur les Legionnaires gangregarde. Sur les 156 entrees placees, 729 spawns sur 757 portaient la faction 35, amicale envers tous. Comparaison avec creature_template du dump de reference : 135 entrees divergeaient. Ce trou est ANTERIEUR a l import des placements, qui ne touche pas creature_template -- c est une valeur par defaut posee sur ces PNJ de Legion dans notre base. Repartition retablie : 2780 441 creatures les demons de la Legion (hostiles) 2879 105 les PNJ Alliance 2876 67 les PNJ Horde 1768 23 les demons nommes (Anetheron, Balnazzar, Brutallus) 35 74 ce qui doit rester neutre : canons, vehicules, navires, declencheurs invisibles PRUDENCE OBSERVEE : creature_template.faction agit PARTOUT, pas seulement sur la carte visee. Les 4 entrees possedant un spawn hors de la carte 1460 ont donc ete EXCLUES du correctif -- ce sont des declencheurs invisibles (General Purpose Bunny) et un matelot, pour lesquels la faction 35 est correcte. Portee reelle : 135 entrees exclusives a 1460. Fichier de retour arriere joint (chantiers/rivage_brise/), reconstruit depuis les valeurs en place avant modification. Co-Authored-By: Claude Opus 5 --- .../rivage_brise/outils/factions_1460.py | 103 +++++++++++ .../rivage_brise/outils/generer_factions.py | 141 +++++++++++++++ .../rivage_brise/retour_factions_1460.sql | 152 ++++++++++++++++ sql/sylvania/rivage_factions_1460.sql | 168 ++++++++++++++++++ 4 files changed, 564 insertions(+) create mode 100644 chantiers/rivage_brise/outils/factions_1460.py create mode 100644 chantiers/rivage_brise/outils/generer_factions.py create mode 100644 chantiers/rivage_brise/retour_factions_1460.sql create mode 100644 sql/sylvania/rivage_factions_1460.sql diff --git a/chantiers/rivage_brise/outils/factions_1460.py b/chantiers/rivage_brise/outils/factions_1460.py new file mode 100644 index 0000000..1a48315 --- /dev/null +++ b/chantiers/rivage_brise/outils/factions_1460.py @@ -0,0 +1,103 @@ +# -*- coding: utf-8 -*- +"""Compare la faction de reference et la notre pour les creatures +placees sur la carte 1460. N'ecrit rien : rapport seul.""" +import io, re, subprocess + +DUMP = '/home/ubuntu/tmp/abs/LegionCore_world_2020_04_25.sql' + + +def decoupe_tuples(bloc): + res, cur, prof, chaine, echap = [], [], 0, False, False + for c in bloc: + if chaine: + cur.append(c) + if echap: echap = False + elif c == '\\': echap = True + elif c == "'": chaine = False + continue + if c == "'": + chaine = True; cur.append(c) + elif c == '(': + prof += 1 + cur = [] if prof == 1 else cur + [c] + elif c == ')': + prof -= 1 + if prof == 0: res.append(''.join(cur)) + else: cur.append(c) + elif prof > 0: + cur.append(c) + return res + + +def champs(t): + vals, cur, chaine, echap = [], [], False, False + for c in t: + if chaine: + cur.append(c) + if echap: echap = False + elif c == '\\': echap = True + elif c == "'": chaine = False + continue + if c == "'": + chaine = True; cur.append(c) + elif c == ',': + vals.append(''.join(cur).strip()); cur = [] + else: + cur.append(c) + vals.append(''.join(cur).strip()) + return vals + + +# entrees reellement placees chez nous sur la carte 1460, avec notre faction +sortie = subprocess.check_output( + ['sudo', 'mysql', 'dc_world', '-N', '-e', + "SELECT DISTINCT c.id, ct.faction, ct.name FROM creature c " + "JOIN creature_template ct ON ct.entry=c.id WHERE c.map=1460;"]) +notre = {} +for ligne in sortie.decode('utf-8', 'replace').splitlines(): + p = ligne.split('\t') + if len(p) >= 3: + notre[int(p[0])] = (int(p[1]), p[2]) +print('entrees placees sur la carte 1460 : %d' % len(notre)) + +# faction cote reference +motif = re.compile(r"insert\s+into\s+`creature_template`\(([^)]*)\)\s+values\s*", re.I) +ref = {} +with io.open(DUMP, encoding='utf-8', errors='replace') as f: + l = f.readline() + while l: + m = motif.match(l.lstrip()) + if m: + cols = [c.strip().strip('`') for c in m.group(1).split(',')] + b = [l[l.lower().find('values') + 6:]] + while not b[-1].rstrip().endswith(';'): + s = f.readline() + if not s: break + b.append(s) + if 'entry' in cols and 'faction' in cols: + ie, ifa = cols.index('entry'), cols.index('faction') + for t in decoupe_tuples(''.join(b)): + v = champs(t) + if len(v) == len(cols): + try: + e = int(v[ie]) + except ValueError: + continue + if e in notre: + ref[e] = int(v[ifa]) + l = f.readline() + +print('trouvees dans la reference : %d' % len(ref)) +divergentes = {e: (notre[e][0], ref[e], notre[e][1]) for e in ref if ref[e] != notre[e][0]} +print('FACTIONS DIVERGENTES : %d' % len(divergentes)) +print() +from collections import Counter +c = Counter((n, r) for n, r, _ in divergentes.values()) +print(' notre -> reference nombre') +for (n, r), k in c.most_common(12): + print(' %5d -> %-8d %d' % (n, r, k)) +print() +print(' exemples :') +for e in list(divergentes)[:12]: + n, r, nom = divergentes[e] + print(' %-8d %-30s %d -> %d' % (e, nom[:30], n, r)) diff --git a/chantiers/rivage_brise/outils/generer_factions.py b/chantiers/rivage_brise/outils/generer_factions.py new file mode 100644 index 0000000..f428668 --- /dev/null +++ b/chantiers/rivage_brise/outils/generer_factions.py @@ -0,0 +1,141 @@ +# -*- coding: utf-8 -*- +"""Genere les corrections de faction pour les creatures de la carte 1460. + +PRUDENCE : creature_template.faction agit PARTOUT, pas seulement sur la +carte visee. On exclut donc toute entree qui possede un spawn sur une +autre carte -- en pratique des declencheurs invisibles, pour lesquels la +faction 35 est correcte et ne doit surtout pas etre touchee. +""" +import io, re, subprocess + +DUMP = '/home/ubuntu/tmp/abs/LegionCore_world_2020_04_25.sql' +SORTIE = '/home/ubuntu/DestinyCore/sql/sylvania/rivage_factions_1460.sql' + + +def decoupe_tuples(bloc): + res, cur, prof, chaine, echap = [], [], 0, False, False + for c in bloc: + if chaine: + cur.append(c) + if echap: echap = False + elif c == '\\': echap = True + elif c == "'": chaine = False + continue + if c == "'": + chaine = True; cur.append(c) + elif c == '(': + prof += 1 + cur = [] if prof == 1 else cur + [c] + elif c == ')': + prof -= 1 + if prof == 0: res.append(''.join(cur)) + else: cur.append(c) + elif prof > 0: + cur.append(c) + return res + + +def champs(t): + vals, cur, chaine, echap = [], [], False, False + for c in t: + if chaine: + cur.append(c) + if echap: echap = False + elif c == '\\': echap = True + elif c == "'": chaine = False + continue + if c == "'": + chaine = True; cur.append(c) + elif c == ',': + vals.append(''.join(cur).strip()); cur = [] + else: + cur.append(c) + vals.append(''.join(cur).strip()) + return vals + + +def sql(q): + return subprocess.check_output(['sudo', 'mysql', 'dc_world', '-N', '-e', q]).decode('utf-8', 'replace') + + +# entrees exclusivement presentes sur la carte 1460 +lignes = sql("SELECT c.id, ct.faction, ct.name FROM creature c " + "JOIN creature_template ct ON ct.entry=c.id WHERE c.map=1460 " + "AND c.id NOT IN (SELECT DISTINCT id FROM creature WHERE map<>1460) " + "GROUP BY c.id, ct.faction, ct.name;") +notre = {} +for l in lignes.splitlines(): + p = l.split('\t') + if len(p) >= 3: + notre[int(p[0])] = (int(p[1]), p[2]) + +exclues = sql("SELECT COUNT(DISTINCT id) FROM creature WHERE map=1460 " + "AND id IN (SELECT DISTINCT id FROM creature WHERE map<>1460);").strip() +print('entrees exclusives a la carte 1460 : %d (exclues car partagees : %s)' % (len(notre), exclues)) + +motif = re.compile(r"insert\s+into\s+`creature_template`\(([^)]*)\)\s+values\s*", re.I) +ref = {} +with io.open(DUMP, encoding='utf-8', errors='replace') as f: + l = f.readline() + while l: + m = motif.match(l.lstrip()) + if m: + cols = [c.strip().strip('`') for c in m.group(1).split(',')] + b = [l[l.lower().find('values') + 6:]] + while not b[-1].rstrip().endswith(';'): + s = f.readline() + if not s: break + b.append(s) + if 'entry' in cols and 'faction' in cols: + ie, ifa = cols.index('entry'), cols.index('faction') + for t in decoupe_tuples(''.join(b)): + v = champs(t) + if len(v) == len(cols): + try: + e = int(v[ie]) + except ValueError: + continue + if e in notre: + ref[e] = int(v[ifa]) + l = f.readline() + +corr = {e: (notre[e][0], ref[e], notre[e][1]) for e in ref if ref[e] != notre[e][0]} +print('a corriger : %d' % len(corr)) + +L = [] +L.append("-- =====================================================================") +L.append("-- Rivage brise (carte 1460) -- CORRECTION DES FACTIONS") +L.append("--") +L.append("-- Signale en jeu, capture a l'appui : « ce sont bien des ennemis mais") +L.append("-- flagues en allie » -- les demons portaient une plaque de nom verte.") +L.append("--") +L.append("-- Notre creature_template porte la faction 35 (amicale envers tous)") +L.append("-- comme valeur par defaut pour ces PNJ de Legion : sur les 156 entrees") +L.append("-- placees, 135 divergeaient de la reference. Ce trou est ANTERIEUR a") +L.append("-- l'import des placements, qui ne touche pas creature_template.") +L.append("--") +L.append("-- Valeurs reprises de creature_template du dump de reference") +L.append("-- (dufernst/LegionCore-7.3.5, meme lignee uwow).") +L.append("--") +L.append("-- PRUDENCE : creature_template.faction agit PARTOUT. Les entrees") +L.append("-- possedant un spawn hors de la carte 1460 sont donc EXCLUES -- ce") +L.append("-- sont des declencheurs invisibles (General Purpose Bunny) pour") +L.append("-- lesquels la faction 35 est correcte et ne doit pas etre touchee.") +L.append("--") +L.append("-- Portee : %d entrees corrigees, exclusives a la carte 1460." % len(corr)) +L.append("-- =====================================================================") +L.append("") + +from collections import Counter +c = Counter((n, r) for n, r, _ in corr.values()) +for (n, r), k in c.most_common(): + L.append("-- %5d -> %-6d (%d creatures)" % (n, r, k)) +L.append("") + +for e in sorted(corr): + n, r, nom = corr[e] + L.append("UPDATE `creature_template` SET `faction`=%d WHERE `entry`=%d; -- %s (etait %d)" + % (r, e, nom.replace('--', '-').strip("'")[:40], n)) + +io.open(SORTIE, 'w', encoding='utf-8').write('\n'.join(L) + '\n') +print('ecrit : %s' % SORTIE) diff --git a/chantiers/rivage_brise/retour_factions_1460.sql b/chantiers/rivage_brise/retour_factions_1460.sql new file mode 100644 index 0000000..9409615 --- /dev/null +++ b/chantiers/rivage_brise/retour_factions_1460.sql @@ -0,0 +1,152 @@ +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90686; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=97525; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=112920; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=100959; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=97527; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=112977; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=102702; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=97510; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113054; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113055; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=110617; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=102706; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113058; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90506; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=97528; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=94191; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113056; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=110616; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113057; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=102696; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113053; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=94190; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=112976; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=109494; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=91967; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=94189; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=91970; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=101667; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=102701; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113059; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90525; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=109341; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105176; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105169; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105168; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105171; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105170; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111079; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90688; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111154; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111089; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=91902; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105166; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105163; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111165; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111153; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111152; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111149; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111148; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=92558; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105192; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105188; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105190; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105185; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105187; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105186; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105181; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105180; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105182; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105179; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90677; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105203; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90515; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90516; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=101103; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111167; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111156; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111088; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111087; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105197; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105189; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111173; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111175; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111174; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105183; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105175; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105174; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105165; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105164; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111157; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111155; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111085; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111171; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105206; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105196; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105167; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105205; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105200; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105199; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=111074; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=92074; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113129; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105217; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=90544; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=110941; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=105172; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=94223; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=97502; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=102698; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=92564; +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=91949; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=92122; +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=97503; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=92121; +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=94209; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=100621; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=110615; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=97526; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113290; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=108990; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=112921; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=97521; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=93704; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=101084; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=101086; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=110614; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=102704; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=102703; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=102705; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=109591; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113037; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113036; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=109604; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=109592; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113291; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=113038; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90711; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90712; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90708; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=91588; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=109587; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=112879; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=91353; +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=97486; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=92586; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=92061; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=109586; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=101056; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90714; +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=93219; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90710; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=97496; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=101057; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90717; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=93719; +UPDATE `creature_template` SET `faction`=16 WHERE `entry`=90705; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=94276; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=91951; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=101632; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90716; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90713; +UPDATE `creature_template` SET `faction`=35 WHERE `entry`=90709; diff --git a/sql/sylvania/rivage_factions_1460.sql b/sql/sylvania/rivage_factions_1460.sql new file mode 100644 index 0000000..772d141 --- /dev/null +++ b/sql/sylvania/rivage_factions_1460.sql @@ -0,0 +1,168 @@ +-- ===================================================================== +-- Rivage brise (carte 1460) -- CORRECTION DES FACTIONS +-- +-- Signale en jeu, capture a l'appui : « ce sont bien des ennemis mais +-- flagues en allie » -- les demons portaient une plaque de nom verte. +-- +-- Notre creature_template porte la faction 35 (amicale envers tous) +-- comme valeur par defaut pour ces PNJ de Legion : sur les 156 entrees +-- placees, 135 divergeaient de la reference. Ce trou est ANTERIEUR a +-- l'import des placements, qui ne touche pas creature_template. +-- +-- Valeurs reprises de creature_template du dump de reference +-- (dufernst/LegionCore-7.3.5, meme lignee uwow). +-- +-- PRUDENCE : creature_template.faction agit PARTOUT. Les entrees +-- possedant un spawn hors de la carte 1460 sont donc EXCLUES -- ce +-- sont des declencheurs invisibles (General Purpose Bunny) pour +-- lesquels la faction 35 est correcte et ne doit pas etre touchee. +-- +-- Portee : 135 entrees corrigees, exclusives a la carte 1460. +-- ===================================================================== + +-- 35 -> 2780 (80 creatures) +-- 35 -> 1768 (20 creatures) +-- 35 -> 2879 (15 creatures) +-- 35 -> 2876 (13 creatures) +-- 35 -> 1819 (2 creatures) +-- 16 -> 2878 (1 creatures) +-- 16 -> 2780 (1 creatures) +-- 35 -> 14 (1 creatures) +-- 35 -> 2028 (1 creatures) +-- 35 -> 2877 (1 creatures) + +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=90506; -- Felfire Imp (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=90515; -- Infernal Siegebreaker (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=90516; -- Mo'arg Painbringer (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=90525; -- Eredar Chaos Guard (etait 35) +UPDATE `creature_template` SET `faction`=2878 WHERE `entry`=90544; -- Krosus (etait 16) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=90677; -- Wrathguard Dreadblade (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=90686; -- Felstalker Dreadhound (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=90688; -- Tichondrius the Darkener (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=90705; -- Dread Commander Arganoth (etait 16) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=90708; -- Vol'jin (etait 35) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=90709; -- Lady Sylvanas Windrunner (etait 35) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=90710; -- Baine Bloodhoof (etait 35) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=90711; -- Thrall (etait 35) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=90712; -- Earthen Ring Shaman (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=90713; -- King Varian Wrynn (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=90714; -- Lady Jaina Proudmoore (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=90716; -- Gelbin Mekkatorque (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=90717; -- Genn Greymane (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=91353; -- Kirin Tor Battle-Mage (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=91588; -- Fel Lord Kurduz (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=91902; -- Brutallus (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=91967; -- Infernal Siegebreaker (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=91970; -- Felguard Invader (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=92121; -- Argent Dawnbringer (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=92122; -- Gnomeregan Tinkerer (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=92558; -- Arkethrax (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=92564; -- Mo'arg Painbringer (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=92586; -- Ironforge Cannoneer (etait 35) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=93704; -- Darkspear Headhunter (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=93719; -- Fel Commander Azgalor (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=94189; -- Living Felblaze (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=94190; -- Burning Sentry (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=94191; -- Burning Terrorhound (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=94223; -- Argent Dawnbringer (etait 35) +UPDATE `creature_template` SET `faction`=14 WHERE `entry`=94276; -- Gul'dan (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=97496; -- Kirin Tor Battle-Mage (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=97502; -- Argent Dawnbringer (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=97510; -- Soulbound Destructor (etait 35) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=97521; -- Earthen Ring Shaman (etait 35) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=97525; -- Thunder Bluff Brave (etait 35) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=97526; -- Deathguard Elite (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=100621; -- Mother Virila (etait 35) +UPDATE `creature_template` SET `faction`=2028 WHERE `entry`=100959; -- Unattended Cannon (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=101056; -- Gilnean Royal Guard (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=101057; -- Gilnean Royal Guard (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=101632; -- Mo'arg Painbringer (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=101667; -- Shielded Anchor (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=102696; -- Felslag Imp (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=102698; -- Anostronoth (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=102701; -- Mo'arg Painbringer (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=102702; -- Wrathguard Dreadblade (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=102703; -- Fel Lord Dukaz (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=102704; -- Fel Lord Zarnoz (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=102705; -- Fel Lord Rakaz (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=102706; -- Grinning Shadowstalker (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105163; -- Destromath (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105164; -- Felgard Legionnaire (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105165; -- Felgard Legionnaire (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105166; -- Gorgonnash (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105167; -- Imp Mother Fecunda (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105168; -- Anetheron (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105169; -- Mephistroth (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105170; -- Balnazzar (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105171; -- Mal'ganis (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105172; -- Winged Nightmare (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105174; -- Smashspite the Hateful (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105175; -- Blerg (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105176; -- Sathrovarr the Corruptor (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105179; -- Lord Jaraxxus (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105180; -- Grand Warlock Alythess (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105181; -- Lady Sacrolash (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105182; -- Gravax the Desecrator (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105183; -- Lord Kra'vos (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105185; -- Overseer Lykill (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105186; -- Oublion (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105187; -- Azoran (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105188; -- Cordana Felsong (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105189; -- Doomlord Kazrok (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105190; -- Varedis Felsoul (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=105192; -- Caria Felsoul (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105196; -- Brogozog (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105197; -- Felwing (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105199; -- Felstalker Dreadhound (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105200; -- Felguard Invader (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105203; -- Felguard Invader (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105205; -- Mo'arg Spinebreaker (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=105206; -- Wrathguard Dreadblade (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=105217; -- Argent Dawnbringer (etait 35) +UPDATE `creature_template` SET `faction`=1819 WHERE `entry`=108990; -- Stormwind Gryphon (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=109586; -- Fel Lord Rakkan (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=109587; -- Fel Lord Zardak (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=109591; -- Felguard Legionnaire (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=109592; -- Felguard Legionnaire (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=109604; -- Felguard Legionnaire (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=110614; -- Malificus (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=110615; -- Argent Dawnbringer (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=110616; -- Dark Worshipper (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=110617; -- Shadowsworn Harbinger (etait 35) +UPDATE `creature_template` SET `faction`=2879 WHERE `entry`=110941; -- Dessicated Crusader (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111074; -- Grinning Shadowstalker (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111079; -- Dantalionax (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111085; -- Geth'xun (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111087; -- Hakkar the Houndmaster (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111088; -- Lord Perdition (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111089; -- Malinoth (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111148; -- Lady Ran'zara (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111149; -- Talixae Flamewreath (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111152; -- Grand Summoner Abraxeton (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111153; -- Aargoss (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111154; -- Malgalor (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111155; -- Makaan the Malevolent (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111156; -- Fel Lord Dakuur (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111157; -- Pilik (etait 35) +UPDATE `creature_template` SET `faction`=1768 WHERE `entry`=111165; -- Lady Keletress (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111167; -- Lochaber (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111171; -- Carnivore (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111173; -- Soulchaser (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111174; -- Vaultwarden Umbra (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=111175; -- The Overseer (etait 35) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=112920; -- Dark Ranger (etait 35) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=112921; -- Bilgewater Blastmaster (etait 35) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=112976; -- Argent Lightbringer (etait 35) +UPDATE `creature_template` SET `faction`=2876 WHERE `entry`=112977; -- Argent Lightbringer (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=113036; -- Fel Lord Razzar (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=113037; -- Fel Lord Darakk (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=113038; -- Fel Lord Kurrz (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=113053; -- Mother Sepestra (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=113054; -- Diathorus the Seeker (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=113055; -- Lord Banehollow (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=113056; -- Solenor the Slayer (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=113057; -- Fel Lord Durkan (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=113058; -- Fel Lord Volak (etait 35) +UPDATE `creature_template` SET `faction`=2780 WHERE `entry`=113059; -- Fel Lord Garzan (etait 35) +UPDATE `creature_template` SET `faction`=2877 WHERE `entry`=113129; -- Fel Lava (etait 35) +UPDATE `creature_template` SET `faction`=1819 WHERE `entry`=113290; -- Riding Bat (etait 35)