소스 검색

Minor fixes and cleanups to the mob database (#6356)

* Made some minor fixes and cleanups to the mob database documentation and parser.
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
Aleos 3 년 전
부모
커밋
ff0cbfe4e8
6개의 변경된 파일23개의 추가작업 그리고 18개의 파일을 삭제
  1. 1 1
      db/import-tmpl/mob_db.yml
  2. 1 1
      db/mob_db.yml
  3. 1 1
      db/pre-re/mob_db.yml
  4. 1 1
      db/re/mob_db.yml
  5. 1 1
      doc/yaml/db/mob_db.yml
  6. 18 13
      src/map/mob.cpp

+ 1 - 1
db/import-tmpl/mob_db.yml

@@ -41,7 +41,7 @@
 #   Vit                     Vitality which affects defense. (Default: 1)
 #   Int                     Intelligence which affects magic attack. (Default: 1)
 #   Dex                     Dexterity which affects hit rate. (Default: 1)
-#   Luk                     Luck which affects perfect dodge/lucky flee/lerfect flee/lucky dodge rate. (Default: 1)
+#   Luk                     Luck which affects perfect dodge/lucky flee/perfect flee/lucky dodge rate. (Default: 1)
 #   AttackRange             Attack range. (Default: 0)
 #   SkillRange              Skill cast range. (Default: 0)
 #   ChaseRange              Chase range. (Default: 0)

+ 1 - 1
db/mob_db.yml

@@ -41,7 +41,7 @@
 #   Vit                     Vitality which affects defense. (Default: 1)
 #   Int                     Intelligence which affects magic attack. (Default: 1)
 #   Dex                     Dexterity which affects hit rate. (Default: 1)
-#   Luk                     Luck which affects perfect dodge/lucky flee/lerfect flee/lucky dodge rate. (Default: 1)
+#   Luk                     Luck which affects perfect dodge/lucky flee/perfect flee/lucky dodge rate. (Default: 1)
 #   AttackRange             Attack range. (Default: 0)
 #   SkillRange              Skill cast range. (Default: 0)
 #   ChaseRange              Chase range. (Default: 0)

+ 1 - 1
db/pre-re/mob_db.yml

@@ -41,7 +41,7 @@
 #   Vit                     Vitality which affects defense. (Default: 1)
 #   Int                     Intelligence which affects magic attack. (Default: 1)
 #   Dex                     Dexterity which affects hit rate. (Default: 1)
-#   Luk                     Luck which affects perfect dodge/lucky flee/lerfect flee/lucky dodge rate. (Default: 1)
+#   Luk                     Luck which affects perfect dodge/lucky flee/perfect flee/lucky dodge rate. (Default: 1)
 #   AttackRange             Attack range. (Default: 0)
 #   SkillRange              Skill cast range. (Default: 0)
 #   ChaseRange              Chase range. (Default: 0)

+ 1 - 1
db/re/mob_db.yml

@@ -41,7 +41,7 @@
 #   Vit                     Vitality which affects defense. (Default: 1)
 #   Int                     Intelligence which affects magic attack. (Default: 1)
 #   Dex                     Dexterity which affects hit rate. (Default: 1)
-#   Luk                     Luck which affects perfect dodge/lucky flee/lerfect flee/lucky dodge rate. (Default: 1)
+#   Luk                     Luck which affects perfect dodge/lucky flee/perfect flee/lucky dodge rate. (Default: 1)
 #   AttackRange             Attack range. (Default: 0)
 #   SkillRange              Skill cast range. (Default: 0)
 #   ChaseRange              Chase range. (Default: 0)

+ 1 - 1
doc/yaml/db/mob_db.yml

@@ -24,7 +24,7 @@
 #   Vit                     Vitality which affects defense. (Default: 1)
 #   Int                     Intelligence which affects magic attack. (Default: 1)
 #   Dex                     Dexterity which affects hit rate. (Default: 1)
-#   Luk                     Luck which affects perfect dodge/lucky flee/lerfect flee/lucky dodge rate. (Default: 1)
+#   Luk                     Luck which affects perfect dodge/lucky flee/perfect flee/lucky dodge rate. (Default: 1)
 #   AttackRange             Attack range. (Default: 0)
 #   SkillRange              Skill cast range. (Default: 0)
 #   ChaseRange              Chase range. (Default: 0)

+ 18 - 13
src/map/mob.cpp

@@ -4322,7 +4322,7 @@ uint64 MobDatabase::parseBodyNode(const YAML::Node &node) {
 		if (!this->asString(node, "AegisName", name))
 			return 0;
 
-		if (name.length() > NAME_LENGTH) {
+		if (name.size() > NAME_LENGTH) {
 			this->invalidWarning(node["AegisName"], "AegisName \"%s\" exceeds maximum of %d characters, capping...\n", name.c_str(), NAME_LENGTH - 1);
 		}
 
@@ -4336,7 +4336,7 @@ uint64 MobDatabase::parseBodyNode(const YAML::Node &node) {
 		if (!this->asString(node, "Name", name))
 			return 0;
 
-		if (name.length() > NAME_LENGTH) {
+		if (name.size() > NAME_LENGTH) {
 			this->invalidWarning(node["Name"], "Name \"%s\" exceeds maximum of %d characters, capping...\n", name.c_str(), NAME_LENGTH - 1);
 		}
 
@@ -4350,7 +4350,7 @@ uint64 MobDatabase::parseBodyNode(const YAML::Node &node) {
 		if (!this->asString(node, "JapaneseName", name))
 			return 0;
 
-		if (name.length() > NAME_LENGTH) {
+		if (name.size() > NAME_LENGTH) {
 			this->invalidWarning(node["JapaneseName"], "JapaneseName \"%s\" exceeds maximum of %d characters, capping...\n", name.c_str(), NAME_LENGTH - 1);
 		}
 
@@ -4367,6 +4367,11 @@ uint64 MobDatabase::parseBodyNode(const YAML::Node &node) {
 		if (!this->asUInt16(node, "Level", level))
 			return 0;
 
+		if (level > MAX_LEVEL) {
+			this->invalidWarning(node["Level"], "Level %hu exceeds MAX_LEVEL, capping to %hu.\n", level, MAX_LEVEL);
+			level = MAX_LEVEL;
+		}
+
 		mob->lv = level;
 	} else {
 		if (!exists)
@@ -4617,12 +4622,12 @@ uint64 MobDatabase::parseBodyNode(const YAML::Node &node) {
 		int64 constant;
 
 		if (!script_get_constant(size_constant.c_str(), &constant)) {
-			this->invalidWarning(node["Size"], "Unknown monster size %s, defaulting to Size_Small.\n", size.c_str());
+			this->invalidWarning(node["Size"], "Unknown monster size %s, defaulting to Small.\n", size.c_str());
 			constant = SZ_SMALL;
 		}
 
 		if (constant < SZ_SMALL || constant > SZ_BIG) {
-			this->invalidWarning(node["Size"], "Invalid monster size %s, defaulting to Size_Small.\n", size.c_str());
+			this->invalidWarning(node["Size"], "Invalid monster size %s, defaulting to Small.\n", size.c_str());
 			constant = SZ_SMALL;
 		}
 
@@ -4642,12 +4647,12 @@ uint64 MobDatabase::parseBodyNode(const YAML::Node &node) {
 		int64 constant;
 
 		if (!script_get_constant(race_constant.c_str(), &constant)) {
-			this->invalidWarning(node["Race"], "Unknown monster race %s, defaulting to RC_FORMLESS.\n", race.c_str());
+			this->invalidWarning(node["Race"], "Unknown monster race %s, defaulting to Formless.\n", race.c_str());
 			constant = RC_FORMLESS;
 		}
 
 		if (!CHK_RACE(constant)) {
-			this->invalidWarning(node["Race"], "Invalid monster race %s, defaulting to RC_FORMLESS.\n", race.c_str());
+			this->invalidWarning(node["Race"], "Invalid monster race %s, defaulting to Formless.\n", race.c_str());
 			constant = RC_FORMLESS;
 		}
 
@@ -4696,12 +4701,12 @@ uint64 MobDatabase::parseBodyNode(const YAML::Node &node) {
 		int64 constant;
 
 		if (!script_get_constant(ele_constant.c_str(), &constant)) {
-			this->invalidWarning(node["Element"], "Unknown monster element %s, defaulting to ELE_NEUTRAL.\n", ele.c_str());
+			this->invalidWarning(node["Element"], "Unknown monster element %s, defaulting to Neutral.\n", ele.c_str());
 			constant = ELE_NEUTRAL;
 		}
 
 		if (!CHK_ELEMENT(constant)) {
-			this->invalidWarning(node["Element"], "Invalid monster element %s, defaulting to ELE_NEUTRAL.\n", ele.c_str());
+			this->invalidWarning(node["Element"], "Invalid monster element %s, defaulting to Neutral.\n", ele.c_str());
 			constant = ELE_NEUTRAL;
 		}
 
@@ -4806,12 +4811,12 @@ uint64 MobDatabase::parseBodyNode(const YAML::Node &node) {
 		int64 constant;
 
 		if (!script_get_constant(ai_constant.c_str(), &constant)) {
-			this->invalidWarning(node["Ai"], "Unknown monster AI %s, defaulting to MONSTER_TYPE_06.\n", ai.c_str());
+			this->invalidWarning(node["Ai"], "Unknown monster AI %s, defaulting to 06.\n", ai.c_str());
 			constant = MONSTER_TYPE_06;
 		}
 
 		if (constant < MD_NONE || constant > MD_MASK) {
-			this->invalidWarning(node["Ai"], "Invalid monster AI %s, defaulting to MONSTER_TYPE_06.\n", ai.c_str());
+			this->invalidWarning(node["Ai"], "Invalid monster AI %s, defaulting to 06.\n", ai.c_str());
 			constant = MONSTER_TYPE_06;
 		}
 
@@ -4831,12 +4836,12 @@ uint64 MobDatabase::parseBodyNode(const YAML::Node &node) {
 		int64 constant;
 
 		if (!script_get_constant(class_constant.c_str(), &constant)) {
-			this->invalidWarning(node["Class"], "Unknown monster class %s, defaulting to CLASS_NORMAL.\n", class_.c_str());
+			this->invalidWarning(node["Class"], "Unknown monster class %s, defaulting to Normal.\n", class_.c_str());
 			constant = CLASS_NORMAL;
 		}
 
 		if (constant < CLASS_NORMAL || constant > CLASS_EVENT) {
-			this->invalidWarning(node["Class"], "Invalid monster class %s, defaulting to CLASS_NORMAL.\n", class_.c_str());
+			this->invalidWarning(node["Class"], "Invalid monster class %s, defaulting to Normal.\n", class_.c_str());
 			constant = CLASS_NORMAL;
 		}