Files
daluandou/.codely.packages/cn.tuanjie.codely.bridge@1.0.85-785dea6a/scripts/fix-meta-guids.sh
T
huadexuan 53d95802e5 ```
feat(gameplay): 更新单位属性和材质配置

- 调整多个单位的基础生命值和攻击力数值平衡
- 修改CoreBattleGround材质的纹理缩放比例
- 更新地砖材质颜色为白色
- 优化纹理资源设置,调整最大纹理尺寸并添加PlayableAds平台支持
- 修复弓箭手技能目标查找逻辑,改用统一的敌人检测方法
- 为水晶矿添加中立阵营设置和光球视觉效果同步
- 调整预制体中的全局缩放参数
- 为狼人和石巨人添加NavMeshAgent组件支持
- 优化水晶矿血条显示位置计算方式
```
2026-09-20 21:52:31 +08:00

95 lines
2.5 KiB
Bash
Executable File

#!/usr/bin/env sh
# Replace invalid GUIDs in .meta files with proper 32-char lowercase hex.
# Works on macOS (/dev/urandom) and Windows (Git Bash).
#
# Usage:
# ./scripts/fix-meta-guids.sh # fix invalid GUIDs and stage changes
# ./scripts/fix-meta-guids.sh --check # dry-run (show what would change)
# ./scripts/fix-meta-guids.sh --no-stage # fix but do not git add changed files
set -eu
cd "$(dirname "$0")/.." || exit 1
MODE="fix"
AUTO_STAGE=true
for arg in "$@"; do
case "$arg" in
--check)
MODE="check"
;;
--fix)
MODE="fix"
;;
--no-stage)
AUTO_STAGE=false
;;
*)
echo "Unknown option: $arg"
echo "Usage:"
echo " ./scripts/fix-meta-guids.sh"
echo " ./scripts/fix-meta-guids.sh --check"
echo " ./scripts/fix-meta-guids.sh --no-stage"
exit 2
;;
esac
done
gen_guid() {
od -An -tx1 -N16 /dev/urandom | tr -d ' \n' | head -c 32
}
invalid_count=0
fixed_count=0
tmp_list=".fix-meta-guids.list.$$"
find . -name "*.meta" -not -path "./.git/*" -not -path "*/build/*" -not -path "*/obj/*" > "$tmp_list"
while IFS= read -r f; do
[ -z "$f" ] && continue
guid=$(awk '/^guid:/ { gsub(/\r/, "", $2); print $2 }' "$f")
[ -z "$guid" ] && continue
case "$guid" in
[a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9][a-f0-9])
continue
;;
esac
invalid_count=$((invalid_count + 1))
new_guid=$(gen_guid)
if [ "$MODE" = "fix" ]; then
awk -v ng="$new_guid" '/^guid:/ { print "guid: " ng; next } { print }' "$f" > "$f.tmp"
mv "$f.tmp" "$f"
if [ "$AUTO_STAGE" = "true" ]; then
git add -- "$f"
fi
echo "FIXED $f: $guid -> $new_guid"
fixed_count=$((fixed_count + 1))
else
echo "INVALID $f: $guid (would fix to $new_guid)"
fi
done < "$tmp_list"
rm -f "$tmp_list"
if [ "$invalid_count" -eq 0 ]; then
echo "All .meta GUIDs are valid."
exit 0
fi
if [ "$MODE" = "check" ]; then
echo ""
echo "Found $invalid_count invalid .meta GUID(s)."
echo "Run to fix:"
echo " ./scripts/fix-meta-guids.sh"
exit 1
fi
echo ""
echo "Fixed $fixed_count invalid .meta GUID(s)."
if [ "$AUTO_STAGE" = "true" ]; then
echo "Staged fixed .meta files automatically."
else
echo "Remember to stage fixed files manually."
fi
echo "You can run git commit again."