iT邦幫忙

2025 iThome 鐵人賽

DAY 21
0
佛心分享-SideProject30

最近的工程師真沒用系列 第 21

第二十一天-怪物資訊建立

  • 分享至 

  • xImage
  •  

我們接下來要做一個上傳畫面,讓人可以分享怪物資訊,畫面很簡單,就一個怪物選單,然後可以輸入參照物,因為有些怪物死不掉東西,但有些人他有辦法自己算,所以第二個輸入框就讓人輸入擊殺數量或掉落數量,雖然說可能有機率過大過小的問題,但我相信這東西可以校正回歸啦

好首先,發現怪物資訊這東西網路上有人準備好了 json 檔案,我們只要寫個小 python3 產出 SQL INSERT 就好

import json
import uuid

# 讀取 JSON
with open("../src/lib/datas/drop_data.json", encoding="utf-8") as f:
    drop_data = json.load(f)

with open("../src/lib/datas/item.json", encoding="utf-8") as f:
    items_data = json.load(f)

# namespace UUID,可以自己選擇固定值
base_namespace = uuid.uuid4()
# # 將 "apple" 轉為 UUID
custom_namespace = uuid.uuid5(base_namespace, "artale")

result = {}

for monster_name, drop_list in drop_data.items():
    # 產生 UUID v5

    monster_uuid = str(uuid.uuid5(custom_namespace, monster_name))
    # 聚合 datas
    datas = {}
    for item_id, item_name in items_data.items():
        if item_name in drop_list:
            datas[item_id] = item_name

    result[monster_uuid] = {
        "name": monster_name,
        "datas": datas
    }

# 寫入 output.json
with open("problytic-artale-datas.json", "w", encoding="utf-8") as f:
    json.dump(result, f, ensure_ascii=False, indent=2)

print("聚合完成,已輸出 problytic-artale-datas.json")

接著我們建立一個 API 專門全撈,反正剛看一下才 100 筆,沒差
在 srclibfront\ 底下建立 monster.ts

import item from '../datas/problytic-artale-datas.json';

export function getDatas() {
	return item;
}

然後找個頁面塞這段看看這段有沒有東西

<script lang="ts">
	import { getDatas } from '$lib/front/monster';

	let monsters = getDatas();

	console.log(monsters);
</script>

npm run preview 看看吧
明天我們繼續畫面接這個資料

今天的情緒抒發:


上一篇
第二十天-註冊頁面跳轉
下一篇
第二十二天-怪物資訊分享上傳畫面
系列文
最近的工程師真沒用26
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言