找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1392|回复: 2

[原创] 利用excel生成新的人物属性

[复制链接]
发表于 2022-11-5 14:30:07 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
[RenPy] 纯文本查看 复制代码
init python:
    #首先导入所需库,openpyxl为第三方库,需要放入游戏目录下的python-packages文件夹内
    import openpyxl
    from openpyxl import workbook,load_workbook
    #path1为定位到游戏目录,path2为对应excel位置和excel名
    path1=config.gamedir
    path2="/jian.xlsx"
    excel=load_workbook(path1+path2)
    Sheet1=excel['Sheet1']
    #生成所需读取的内容数组
    idlist=[]
    namelist=[]
    hplist=[]
    maxhplist=[]
    classlist=[]
    agelist=[]
    atrlist=[]
    #读取属性类名的数组.max_column+1为表格最大列
    for i in range(1,Sheet1.max_column+1):
        atrlist.append(Sheet1.cell(row=1,column=i).value)
    #读取属性内容的数组,.max_row+1为表格最大行
    for i in range(2,Sheet1.max_row+1):
        idlist.append(Sheet1.cell(row=i,column=1).value)
        classlist.append(Sheet1.cell(row=i,column=2).value)
        namelist.append(Sheet1.cell(row=i,column=3).value)
        agelist.append(Sheet1.cell(row=i,column=4).value)
        hplist.append(Sheet1.cell(row=i,column=5).value)
        maxhplist.append(Sheet1.cell(row=i,column=6).value)
    #建立角色类
    class human:
        def __init__(self,name,age,hp,maxhp):
            self.name = name
            self.age = age
            self.hp = hp
            self.maxhp = maxhp
    #建一个存角色属性的数组
    c=[]
    #导入角色属性
    for i in range(0,len(idlist)-1):
        c.append(human(namelist[i],agelist[i],hplist[i],maxhplist[i]))

调用属性
[RenPy] 纯文本查看 复制代码
label start:
#调用角色属性的格式
#c[i].atr,i为角色属性在数组内的序列,第一个为0,atr为调用的属性类别,返回的是属性内容
"[c[0].name]"


附上我测试用的excel内容




                               
登录/注册后可看大图




我测试用的excel内容

我测试用的excel内容
 楼主| 发表于 2022-11-5 14:38:52 | 显示全部楼层
需要新增属性类别,在#生成所需读取的内容数组内增加数组内容,在#读取属性内容的数组内添加对应列数(column为列数)即可
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2022-11-5 14:40:43 | 显示全部楼层
需要更改角色类的组成,在 #建立角色类, #导入角色属性处修改即可
回复 支持 抱歉

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2024-11-21 19:07 , Processed in 0.121884 second(s), 29 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表