Drop the server-made mobbase rows and the dead mobbase columns
The 406 ID <> loadID mobbases (15000-17266) were junk: no RUNE file, nothing on dev references them. MobBase now always reads its core fields from the race rune and logs an error if the rune is missing; the loader skips any ID <> loadID rows still present. GetClassType only matched those IDs, so it always returned 2518 and is replaced by the constant. DB: MBDATA/JSON-Refactor-Plan/sql/3.6-mobbase-cleanup.sql deletes the rows, the 10 orphan static_npc_mobbase_effects rows (17061/17122/17154) and drops 13 columns no longer read: lootTableID, name, level, health, atr, defense, minDmg, maxDmg, noaggro, raceType, fsm, notEnemy, enemy. Value changes: none for the 2375 loaded mobbases. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c811ba9f4e
commit
ccc9d9f0ed
3 files changed
+14
-46
No files matched your search
@@ -181,7 +181,7 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed {
|
||||
serializeRune(mob, writer, 5, GameObjectType.NPCClassRuneTwo.ordinal(), 252621); //guard rune
|
||||
} else if (mob.contract != null || mob.isPlayerGuard()) {
|
||||
writer.putInt(3);
|
||||
serializeRune(mob, writer, 3, GameObjectType.NPCClassRuneTwo.ordinal(), MobBase.GetClassType(mob.getMobBaseID())); //warrior class
|
||||
serializeRune(mob, writer, 3, GameObjectType.NPCClassRuneTwo.ordinal(), 2518); //warrior class
|
||||
serializeRune(mob, writer, 5, GameObjectType.NPCClassRuneThree.ordinal(), 252621); //guard rune
|
||||
} else
|
||||
writer.putInt(1);
|
||||
|
||||
@@ -16,6 +16,7 @@ import engine.loot.BootySetEntry;
|
||||
import engine.mbEnums;
|
||||
import engine.parsers.objects.RuneTemplate;
|
||||
import engine.server.MBServerStatics;
|
||||
import org.pmw.tinylog.Logger;
|
||||
|
||||
import java.sql.ResultSet;
|
||||
import java.sql.SQLException;
|
||||
@@ -63,11 +64,7 @@ public class MobBase extends AbstractGameObject {
|
||||
String fsmName;
|
||||
|
||||
this.loadID = rs.getInt("loadID");
|
||||
|
||||
// Server-made mobbases (15000+) borrow a playable race rune as loadID; only their DB row describes them.
|
||||
|
||||
if (this.getObjectUUID() == this.loadID)
|
||||
rune = RuneTemplate._runes.get(this.loadID);
|
||||
rune = RuneTemplate._runes.get(this.loadID);
|
||||
|
||||
if (rune != null) {
|
||||
this.firstName = rune.obj_name;
|
||||
@@ -82,16 +79,12 @@ public class MobBase extends AbstractGameObject {
|
||||
this.notEnemy = EnumSet.copyOf(rune.rune_not_enemy_monster_types);
|
||||
this.enemy = EnumSet.copyOf(rune.rune_enemy_monster_types);
|
||||
} else {
|
||||
this.firstName = rs.getString("name");
|
||||
this.level = rs.getByte("level");
|
||||
this.healthMax = rs.getInt("health");
|
||||
this.damageMin = rs.getFloat("minDmg");
|
||||
this.damageMax = rs.getFloat("maxDmg");
|
||||
this.attackRating = rs.getInt("atr");
|
||||
this.defenseRating = rs.getInt("defense");
|
||||
this.fsm = mbEnums.MobBehaviourType.valueOf(rs.getString("fsm"));
|
||||
this.notEnemy = mbEnums.fromLong(rs.getLong("notEnemy"), mbEnums.MonsterType.class);
|
||||
this.enemy = mbEnums.fromLong(rs.getLong("enemy"), mbEnums.MonsterType.class);
|
||||
Logger.error("Mobbase " + this.getObjectUUID() + " has no race rune " + this.loadID);
|
||||
this.firstName = "";
|
||||
this.level = 0;
|
||||
this.fsm = mbEnums.MobBehaviourType.None;
|
||||
this.notEnemy = EnumSet.noneOf(mbEnums.MonsterType.class);
|
||||
this.enemy = EnumSet.noneOf(mbEnums.MonsterType.class);
|
||||
}
|
||||
|
||||
this.goldMod = rs.getInt("goldMod");
|
||||
@@ -165,26 +158,6 @@ public class MobBase extends AbstractGameObject {
|
||||
return DbManager.MobBaseQueries.GET_MOBBASE(id);
|
||||
}
|
||||
|
||||
public static int GetClassType(int mobbaseID) {
|
||||
|
||||
switch (mobbaseID) {
|
||||
case 17235:
|
||||
case 17233:
|
||||
case 17256:
|
||||
case 17259:
|
||||
case 17260:
|
||||
case 17261:
|
||||
return 2518;
|
||||
case 17258:
|
||||
case 17257:
|
||||
case 17237:
|
||||
case 17234:
|
||||
return 2521;
|
||||
default:
|
||||
return 2518;
|
||||
}
|
||||
}
|
||||
|
||||
public void updateSpeeds(float walk, float walkCombat, float run, float runCombat) {
|
||||
this.walk = walk;
|
||||
this.walkCombat = walkCombat;
|
||||
|
||||
Reference in new issue
Block a user