Rivage brise 1460 : les modeles de creatures etaient des souches
Signale en jeu : « exemple lui n est pas attaquable », capture d un
.npc info montrant Felguard Legionnaire (109591) en Level: 1.
Nos creature_template de l epoque Legion sont des SOUCHES : sur les 152
entrees exclusives a cette carte, 141 etaient au niveau 1. La faction,
corrigee au tour precedent, n etait que la partie visible du trou.
Divergences relevees face au dump de reference :
minlevel 150/152 unit_flags2 147/152
maxlevel 145/152 unit_flags 136/152
unit_class 62/152 speed_run 55/152
AIName 32/152 speed_walk 12/152
151 entrees corrigees. Il ne reste que 6 souches : les entrees partagees
avec d autres cartes, volontairement ecartees comme pour les factions --
ce sont des declencheurs invisibles.
EXCLUS VOLONTAIREMENT du correctif, malgre leurs divergences :
AIName -- transposer pourrait defaire un comportement pose
sciemment chez nous.
flags_extra -- porte des drapeaux que le coeur calcule lui-meme, dont
CREATURE_FLAG_EXTRA_DUNGEON_BOSS pose au chargement
depuis instance_encounters.
Verification prealable ecrite : un comparateur colonne par colonne
(chantiers/rivage_brise/outils/comparer_templates.py) a mesure les
divergences avant toute modification, plutot que de transposer en bloc.
La faction n y figurait plus, confirmant que le correctif precedent avait
bien pris et que l outil dit vrai.
Retour arriere joint, reconstruit depuis les valeurs d avant correction.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Compare NOS creature_template avec ceux de la reference, pour les
|
||||
entrees exclusives a la carte 1460. Rapport seul, n'ecrit rien."""
|
||||
import io, re, subprocess
|
||||
from collections import Counter
|
||||
|
||||
DUMP = '/home/ubuntu/tmp/abs/LegionCore_world_2020_04_25.sql'
|
||||
|
||||
# colonnes qui pesent sur la jouabilite, et presentes dans les deux schemas
|
||||
CANDIDATES = ['minlevel','maxlevel','faction','npcflag','speed_walk','speed_run','scale','rank',
|
||||
'BaseAttackTime','RangeAttackTime','unit_class','unit_flags','unit_flags2',
|
||||
'dynamicflags','family','type','type_flags','HealthModifier','ManaModifier',
|
||||
'ArmorModifier','DamageModifier','ExperienceModifier','RegenHealth',
|
||||
'mechanic_immune_mask','flags_extra','MovementType','AIName','lootid']
|
||||
|
||||
|
||||
def dec(b):
|
||||
r, c, p, s, e = [], [], 0, False, False
|
||||
for ch in b:
|
||||
if s:
|
||||
c.append(ch)
|
||||
if e: e = False
|
||||
elif ch == '\\': e = True
|
||||
elif ch == "'": s = False
|
||||
continue
|
||||
if ch == "'": s = True; c.append(ch)
|
||||
elif ch == '(':
|
||||
p += 1; c = [] if p == 1 else c + [ch]
|
||||
elif ch == ')':
|
||||
p -= 1
|
||||
if p == 0: r.append(''.join(c))
|
||||
else: c.append(ch)
|
||||
elif p > 0: c.append(ch)
|
||||
return r
|
||||
|
||||
|
||||
def ch_(t):
|
||||
v, c, s, e = [], [], False, False
|
||||
for x in t:
|
||||
if s:
|
||||
c.append(x)
|
||||
if e: e = False
|
||||
elif x == '\\': e = True
|
||||
elif x == "'": s = False
|
||||
continue
|
||||
if x == "'": s = True; c.append(x)
|
||||
elif x == ',': v.append(''.join(c).strip()); c = []
|
||||
else: c.append(x)
|
||||
v.append(''.join(c).strip()); return v
|
||||
|
||||
|
||||
nos_cols = subprocess.check_output(
|
||||
['sudo', 'mysql', 'dc_world', '-N', '-e', 'SHOW COLUMNS FROM creature_template;']
|
||||
).decode('utf-8', 'replace')
|
||||
nos_cols = [l.split('\t')[0] for l in nos_cols.splitlines() if l.strip()]
|
||||
|
||||
communes = [c for c in CANDIDATES if c in nos_cols]
|
||||
print('colonnes comparees : %d' % len(communes))
|
||||
|
||||
q = ("SELECT ct.entry," + ','.join('ct.`%s`' % c for c in communes) +
|
||||
" FROM creature_template ct WHERE ct.entry IN (SELECT DISTINCT c.id FROM creature c "
|
||||
"WHERE c.map=1460 AND c.id NOT IN (SELECT DISTINCT id FROM creature WHERE map<>1460));")
|
||||
brut = subprocess.check_output(['sudo', 'mysql', 'dc_world', '-N', '-e', q]).decode('utf-8', 'replace')
|
||||
notre = {}
|
||||
for l in brut.splitlines():
|
||||
p = l.split('\t')
|
||||
if len(p) == len(communes) + 1:
|
||||
notre[int(p[0])] = dict(zip(communes, p[1:]))
|
||||
print('entrees exclusives a la carte 1460 : %d' % len(notre))
|
||||
|
||||
mot = 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 = mot.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)
|
||||
ie = cols.index('entry')
|
||||
for t in dec(''.join(b)):
|
||||
v = ch_(t)
|
||||
if len(v) != len(cols): continue
|
||||
try: e = int(v[ie])
|
||||
except ValueError: continue
|
||||
if e in notre:
|
||||
ref[e] = {c: v[cols.index(c)] for c in communes if c in cols}
|
||||
l = f.readline()
|
||||
|
||||
print('retrouvees dans la reference : %d' % len(ref))
|
||||
print()
|
||||
print(' colonne divergentes / comparees')
|
||||
divergences = Counter()
|
||||
for e in ref:
|
||||
for c in communes:
|
||||
if c not in ref[e]: continue
|
||||
a = notre[e][c].strip()
|
||||
b = ref[e][c].strip().strip("'")
|
||||
try:
|
||||
egal = abs(float(a) - float(b)) < 1e-6
|
||||
except ValueError:
|
||||
egal = (a == b)
|
||||
if not egal:
|
||||
divergences[c] += 1
|
||||
for c in communes:
|
||||
if divergences[c]:
|
||||
print(' %-22s %4d / %d' % (c, divergences[c], len(ref)))
|
||||
@@ -0,0 +1,144 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""Transpose les colonnes de jouabilite des creature_template de la
|
||||
carte 1460 depuis la reference. Produit le SQL et son retour arriere."""
|
||||
import io, re, subprocess
|
||||
|
||||
DUMP = '/home/ubuntu/tmp/abs/LegionCore_world_2020_04_25.sql'
|
||||
SORTIE = '/home/ubuntu/DestinyCore/sql/sylvania/rivage_templates_1460.sql'
|
||||
RETOUR = '/home/ubuntu/DestinyCore/chantiers/rivage_brise/retour_templates_1460.sql'
|
||||
|
||||
# EXCLUS volontairement :
|
||||
# AIName -- pourrait defaire un comportement pose sciemment chez nous
|
||||
# flags_extra -- porte des drapeaux que le coeur calcule lui-meme
|
||||
# (CREATURE_FLAG_EXTRA_DUNGEON_BOSS est pose au chargement)
|
||||
COLONNES = ['minlevel','maxlevel','unit_class','unit_flags','unit_flags2','npcflag',
|
||||
'speed_walk','speed_run','mechanic_immune_mask','RegenHealth']
|
||||
|
||||
|
||||
def dec(b):
|
||||
r, c, p, s, e = [], [], 0, False, False
|
||||
for ch in b:
|
||||
if s:
|
||||
c.append(ch)
|
||||
if e: e = False
|
||||
elif ch == '\\': e = True
|
||||
elif ch == "'": s = False
|
||||
continue
|
||||
if ch == "'": s = True; c.append(ch)
|
||||
elif ch == '(':
|
||||
p += 1; c = [] if p == 1 else c + [ch]
|
||||
elif ch == ')':
|
||||
p -= 1
|
||||
if p == 0: r.append(''.join(c))
|
||||
else: c.append(ch)
|
||||
elif p > 0: c.append(ch)
|
||||
return r
|
||||
|
||||
|
||||
def ch_(t):
|
||||
v, c, s, e = [], [], False, False
|
||||
for x in t:
|
||||
if s:
|
||||
c.append(x)
|
||||
if e: e = False
|
||||
elif x == '\\': e = True
|
||||
elif x == "'": s = False
|
||||
continue
|
||||
if x == "'": s = True; c.append(x)
|
||||
elif x == ',': v.append(''.join(c).strip()); c = []
|
||||
else: c.append(x)
|
||||
v.append(''.join(c).strip()); return v
|
||||
|
||||
|
||||
q = ("SELECT ct.entry,ct.name," + ','.join('ct.`%s`' % c for c in COLONNES) +
|
||||
" FROM creature_template ct WHERE ct.entry IN (SELECT DISTINCT c.id FROM creature c "
|
||||
"WHERE c.map=1460 AND c.id NOT IN (SELECT DISTINCT id FROM creature WHERE map<>1460));")
|
||||
brut = subprocess.check_output(['sudo', 'mysql', 'dc_world', '-N', '-e', q]).decode('utf-8', 'replace')
|
||||
notre = {}
|
||||
for l in brut.splitlines():
|
||||
p = l.split('\t')
|
||||
if len(p) == len(COLONNES) + 2:
|
||||
notre[int(p[0])] = (p[1], dict(zip(COLONNES, p[2:])))
|
||||
print('entrees exclusives a la carte 1460 : %d' % len(notre))
|
||||
|
||||
mot = 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 = mot.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)
|
||||
ie = cols.index('entry')
|
||||
for t in dec(''.join(b)):
|
||||
v = ch_(t)
|
||||
if len(v) != len(cols): continue
|
||||
try: e = int(v[ie])
|
||||
except ValueError: continue
|
||||
if e in notre:
|
||||
ref[e] = {c: v[cols.index(c)].strip("'") for c in COLONNES if c in cols}
|
||||
l = f.readline()
|
||||
|
||||
maj, rb, touchees = [], [], 0
|
||||
for e in sorted(ref):
|
||||
nom, nos = notre[e]
|
||||
diff = {}
|
||||
for c in COLONNES:
|
||||
if c not in ref[e]: continue
|
||||
a, b = nos[c].strip(), ref[e][c].strip()
|
||||
try:
|
||||
egal = abs(float(a) - float(b)) < 1e-6
|
||||
except ValueError:
|
||||
egal = (a == b)
|
||||
if not egal:
|
||||
diff[c] = b
|
||||
if not diff:
|
||||
continue
|
||||
touchees += 1
|
||||
maj.append("UPDATE `creature_template` SET %s WHERE `entry`=%d; -- %s"
|
||||
% (', '.join('`%s`=%s' % (c, v) for c, v in sorted(diff.items())), e, nom[:38]))
|
||||
rb.append("UPDATE `creature_template` SET %s WHERE `entry`=%d;"
|
||||
% (', '.join('`%s`=%s' % (c, nos[c]) for c in sorted(diff)), e))
|
||||
|
||||
print('entrees a corriger : %d' % touchees)
|
||||
|
||||
L = ["-- =====================================================================",
|
||||
"-- Rivage brise (carte 1460) -- MODELES DE CREATURES incomplets",
|
||||
"--",
|
||||
"-- Signale en jeu : « exemple lui n'est pas attaquable », capture d'un",
|
||||
"-- .npc info montrant Felguard Legionnaire (109591) en Level: 1.",
|
||||
"--",
|
||||
"-- Nos creature_template de l'epoque Legion sont des SOUCHES : sur les",
|
||||
"-- 152 entrees exclusives a cette carte, 141 sont au niveau 1. La",
|
||||
"-- faction, corrigee au tour precedent, n'etait que la partie visible.",
|
||||
"--",
|
||||
"-- Divergences relevees face au dump de reference :",
|
||||
"-- minlevel 150/152 unit_flags2 147/152",
|
||||
"-- maxlevel 145/152 unit_flags 136/152",
|
||||
"-- unit_class 62/152 speed_run 55/152",
|
||||
"--",
|
||||
"-- EXCLUS VOLONTAIREMENT du correctif :",
|
||||
"-- AIName -- 32 divergences, mais transposer pourrait defaire un",
|
||||
"-- comportement pose sciemment chez nous.",
|
||||
"-- flags_extra -- porte des drapeaux que le coeur calcule lui-meme,",
|
||||
"-- dont CREATURE_FLAG_EXTRA_DUNGEON_BOSS, pose au",
|
||||
"-- chargement depuis instance_encounters.",
|
||||
"--",
|
||||
"-- PORTEE : %d entrees, toutes exclusives a la carte 1460. Les entrees" % touchees,
|
||||
"-- possedant un spawn ailleurs sont ecartees -- ce sont des declencheurs",
|
||||
"-- invisibles pour lesquels les valeurs actuelles sont correctes.",
|
||||
"--",
|
||||
"-- Retour arriere : chantiers/rivage_brise/retour_templates_1460.sql",
|
||||
"-- =====================================================================",
|
||||
""]
|
||||
io.open(SORTIE, 'w', encoding='utf-8').write('\n'.join(L + maj) + '\n')
|
||||
io.open(RETOUR, 'w', encoding='utf-8').write(
|
||||
'-- Retour arriere des modeles de la carte 1460, valeurs d avant correction.\n'
|
||||
+ '\n'.join(rb) + '\n')
|
||||
print('ecrit : %s' % SORTIE)
|
||||
print('retour : %s' % RETOUR)
|
||||
@@ -0,0 +1,152 @@
|
||||
-- Retour arriere des modeles de la carte 1460, valeurs d avant correction.
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_class`=1, `unit_flags2`=0 WHERE `entry`=90506;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `speed_walk`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90515;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90516;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags2`=0 WHERE `entry`=90525;
|
||||
UPDATE `creature_template` SET `maxlevel`=102, `mechanic_immune_mask`=0, `minlevel`=102, `speed_run`=1.14286, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90544;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags2`=0 WHERE `entry`=90677;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90686;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90688;
|
||||
UPDATE `creature_template` SET `maxlevel`=100, `mechanic_immune_mask`=0, `minlevel`=100, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90705;
|
||||
UPDATE `creature_template` SET `maxlevel`=103, `minlevel`=103, `speed_run`=1.14286, `speed_walk`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90708;
|
||||
UPDATE `creature_template` SET `maxlevel`=103, `minlevel`=103, `speed_run`=1.14286, `speed_walk`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90709;
|
||||
UPDATE `creature_template` SET `maxlevel`=103, `minlevel`=103, `speed_run`=1.14286, `speed_walk`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90710;
|
||||
UPDATE `creature_template` SET `maxlevel`=103, `minlevel`=103, `speed_run`=1.14286, `speed_walk`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90711;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `speed_walk`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90712;
|
||||
UPDATE `creature_template` SET `maxlevel`=103, `minlevel`=103, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90713;
|
||||
UPDATE `creature_template` SET `maxlevel`=103, `minlevel`=103, `speed_run`=1.14286, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90714;
|
||||
UPDATE `creature_template` SET `maxlevel`=103, `minlevel`=103, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90716;
|
||||
UPDATE `creature_template` SET `maxlevel`=103, `minlevel`=103, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=90717;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=91353;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=91588;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=91902;
|
||||
UPDATE `creature_template` SET `minlevel`=98, `npcflag`=17179869184, `unit_flags`=33536 WHERE `entry`=91949;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=91951;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `speed_walk`=1, `unit_flags2`=0 WHERE `entry`=91967;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=91970;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=92061;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=92074;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=92121;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=92122;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=92558;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=92564;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=92586;
|
||||
UPDATE `creature_template` SET `minlevel`=98, `npcflag`=17179869184, `speed_run`=1.57143, `unit_flags`=33536 WHERE `entry`=93219;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `speed_walk`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=93704;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `mechanic_immune_mask`=0, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=93719;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=94189;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=94190;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=94191;
|
||||
UPDATE `creature_template` SET `minlevel`=98, `npcflag`=17179869184, `unit_flags`=33536, `unit_flags2`=2099200 WHERE `entry`=94209;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=94223;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=94276;
|
||||
UPDATE `creature_template` SET `minlevel`=98, `npcflag`=17179869184, `speed_run`=1.57143, `unit_flags`=33536 WHERE `entry`=97486;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=97496;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=97502;
|
||||
UPDATE `creature_template` SET `minlevel`=98, `npcflag`=17179869184, `unit_flags`=33536, `unit_flags2`=2099200 WHERE `entry`=97503;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags2`=0 WHERE `entry`=97510;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=97521;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `speed_walk`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=97525;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=97526;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=97527;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=97528;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_class`=1, `unit_flags2`=0 WHERE `entry`=100621;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `npcflag`=0, `speed_run`=1.14286, `unit_flags2`=0 WHERE `entry`=100959;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `speed_walk`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=101056;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `speed_walk`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=101057;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags2`=0 WHERE `entry`=101084;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags2`=0 WHERE `entry`=101086;
|
||||
UPDATE `creature_template` SET `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=101103;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=101632;
|
||||
UPDATE `creature_template` SET `RegenHealth`=1, `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0 WHERE `entry`=101667;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_class`=1, `unit_flags2`=0 WHERE `entry`=102696;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=102698;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=102701;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags2`=0 WHERE `entry`=102702;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=102703;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=102704;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=102705;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=102706;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105163;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105164;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105165;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105166;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105167;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105168;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105169;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105170;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105171;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105172;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105174;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105175;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105176;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105179;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105180;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105181;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105182;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105183;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105185;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105186;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105187;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105188;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105189;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105190;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105192;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105196;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105197;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105199;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105200;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105203;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105205;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=105206;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags2`=0 WHERE `entry`=105217;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=108990;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=109341;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=109586;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=109587;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=109591;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=109592;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=109604;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=110614;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=110615;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags2`=0 WHERE `entry`=110616;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags2`=0 WHERE `entry`=110617;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags2`=0 WHERE `entry`=110941;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111074;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111079;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111085;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111087;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111088;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111089;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111148;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111149;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111152;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111153;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111154;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111155;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111156;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111157;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111165;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111167;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111171;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111173;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111174;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=111175;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=112879;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `speed_walk`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=112920;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=112921;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=112976;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=112977;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113036;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113037;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113038;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113053;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113054;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113055;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_class`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113056;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113057;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113058;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `speed_run`=1.14286, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113059;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113129;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113290;
|
||||
UPDATE `creature_template` SET `maxlevel`=1, `minlevel`=1, `unit_flags`=0, `unit_flags2`=0 WHERE `entry`=113291;
|
||||
Reference in New Issue
Block a user