Key MobBase on its ID and stop reading loadID
Every static_npc_mobbase row has ID = loadID since 3.6 dropped the server-made rows, so the race rune and rune effects are looked up by ID and the loaders no longer filter on loadID. No value change (dev: 2375 of 2375 rows have ID = loadID). Mob.loadID and NPC.loadID are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
7027000ba1
commit
236bddc93b
5 files changed
+10
-18
No files matched your search
@@ -164,7 +164,7 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed {
|
||||
writer.putInt(0);
|
||||
writer.putInt(0);
|
||||
|
||||
int tid = (mob.mobBase != null) ? mob.mobBase.getLoadID() : 0;
|
||||
int tid = (mob.mobBase != null) ? mob.mobBase.getObjectUUID() : 0;
|
||||
if (mob.isPet()) {
|
||||
writer.putInt(2);
|
||||
writer.putInt(3);
|
||||
@@ -191,7 +191,7 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed {
|
||||
writer.putInt(0);
|
||||
|
||||
if (mob.mobBase != null)
|
||||
writer.putInt(mob.mobBase.getLoadID());
|
||||
writer.putInt(mob.mobBase.getObjectUUID());
|
||||
else
|
||||
writer.putInt(mob.loadID);
|
||||
|
||||
@@ -768,7 +768,7 @@ public class Mob extends AbstractIntelligenceAgent implements Delayed {
|
||||
bonus *= (1 + this.bonuses.getFloatPercentAll(ModType.Speed, SourceType.None));
|
||||
|
||||
if (this.isPlayerGuard())
|
||||
switch (this.mobBase.getLoadID()) {
|
||||
switch (this.mobBase.getObjectUUID()) {
|
||||
case 2111:
|
||||
if (this.isWalk())
|
||||
if (this.isCombat())
|
||||
|
||||
@@ -27,7 +27,6 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
|
||||
public class MobBase extends AbstractGameObject {
|
||||
|
||||
private final int loadID;
|
||||
private final String firstName;
|
||||
private final byte level;
|
||||
private final float scale;
|
||||
@@ -65,8 +64,7 @@ public class MobBase extends AbstractGameObject {
|
||||
RuneTemplate rune = null;
|
||||
String fsmName;
|
||||
|
||||
this.loadID = rs.getInt("loadID");
|
||||
rune = RuneTemplate._runes.get(this.loadID);
|
||||
rune = RuneTemplate._runes.get(this.getObjectUUID());
|
||||
|
||||
if (rune != null) {
|
||||
this.firstName = rune.obj_name;
|
||||
@@ -87,7 +85,7 @@ public class MobBase extends AbstractGameObject {
|
||||
this.run = rune.rune_speed.getOrDefault(mbEnums.MovementType.RUN, 0f);
|
||||
this.runCombat = rune.rune_speed.getOrDefault(mbEnums.MovementType.COMBATRUN, 0f);
|
||||
} else {
|
||||
Logger.error("Mobbase " + this.getObjectUUID() + " has no race rune " + this.loadID);
|
||||
Logger.error("Mobbase " + this.getObjectUUID() + " has no race rune");
|
||||
this.firstName = "";
|
||||
this.level = 0;
|
||||
this.fsm = mbEnums.MobBehaviourType.None;
|
||||
@@ -126,7 +124,7 @@ public class MobBase extends AbstractGameObject {
|
||||
this.mask += MBServerStatics.MASK_RAT;
|
||||
|
||||
this.mobBaseStats = (rune != null) ? new MobBaseStats(rune) : MobBaseStats.GetGenericStats();
|
||||
this.effectsList = MobBaseEffects.getEffectsForRune(this.loadID);
|
||||
this.effectsList = MobBaseEffects.getEffectsForRune(this.getObjectUUID());
|
||||
|
||||
}
|
||||
|
||||
@@ -171,10 +169,6 @@ public class MobBase extends AbstractGameObject {
|
||||
return this.firstName;
|
||||
}
|
||||
|
||||
public int getLoadID() {
|
||||
return this.loadID;
|
||||
}
|
||||
|
||||
public int getLevel() {
|
||||
return this.level;
|
||||
}
|
||||
|
||||
@@ -236,7 +236,7 @@ public class NPC extends AbstractCharacter {
|
||||
writer.putInt(0);
|
||||
|
||||
if (npc.mobBase != null)
|
||||
writer.putInt(npc.mobBase.getLoadID());
|
||||
writer.putInt(npc.mobBase.getObjectUUID());
|
||||
else
|
||||
writer.putInt(2011);
|
||||
|
||||
|
||||
Reference in new issue
Block a user