开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 6270|回复: 5
收起左侧

[其它] 因为不会Python请求大神帮转一下成易语言代码

[复制链接]
回帖奖励 12 枚 精币 回复本帖可获得 2 枚 精币奖励! 每人限 1 次(中奖概率 50 %)
结帖率:75% (3/4)
发表于 2018-10-17 21:37:52 | 显示全部楼层 |阅读模式   贵州省毕节市
本帖最后由 iManw 于 2018-10-17 22:10 编辑

from Utils import *

skill_types = [
        ['SkillName', 'string'],
        ['SkillDesc', 'string'],
        ['SkillLevel', 'tinyint'],
        ['SkillID', 'short'],
        ['SkillAnim', 'tinyint'],
        ['SkillIcon', 'int'],
        ['ReqLevel', 'short'],
        ['Country', 'tinyint'],
        
        ['AttackFighter', 'tinyint'],
        ['DefenseFighter', 'tinyint'],
        ['Patrolrogue', 'tinyint'],
        ['Shootrogue', 'tinyint'],
        ['AttackMage', 'tinyint'],
        ['DefenseMage', 'tinyint'],
        
        ['Grow', 'tinyint'],
        ['SkillPoint', 'tinyint'],
        ['TypeShow', 'tinyint'],
        ['TypeAttack', 'tinyint'],
        ['TypeEffect', 'tinyint'],
        ['TypeDetail', 'short'],
        
        ['NeedWeapon1', 'tinyint'],
        ['NeedWeapon2', 'tinyint'],
        ['NeedWeapon3', 'tinyint'],
        ['NeedWeapon4', 'tinyint'],
        ['NeedWeapon5', 'tinyint'],
        ['NeedWeapon6', 'tinyint'],
        ['NeedWeapon7', 'tinyint'],
        ['NeedWeapon8', 'tinyint'],
        ['NeedWeapon9', 'tinyint'],
        ['NeedWeapon10', 'tinyint'],
        ['NeedWeapon11', 'tinyint'],
        ['NeedWeapon12', 'tinyint'],
        ['NeedWeapon13', 'tinyint'],
        ['NeedWeapon14', 'tinyint'],
        ['NeedWeapon15', 'tinyint'],
        
        ['Shield', 'tinyint'],
        ['SP', 'short'],
        ['MP', 'short'],
        ['ReadyTime', 'tinyint'],
        ['ResetTime', 'short'],
        ['AttackRange', 'tinyint'],
        ['StateType', 'tinyint'],
        ['AttrType', 'tinyint'],
        ['Disable', 'short'],
        ['PrevSkillID', 'short'],
        ['SuccessType', 'tinyint'],
        ['SuccessValue', 'tinyint'],
        ['TargetType', 'tinyint'],
        ['ApplyRange', 'tinyint'],
        ['MultiAttack', 'tinyint'],
        ['KeepTime', 'short'],
        ['Weapon1', 'tinyint'],
        ['Weapon2', 'tinyint'],
        ['Weaponvalue', 'tinyint'],
        ['Bag', 'tinyint'],
        ['Arrow', 'short'],
        
        ['DamageType', 'tinyint'],
        ['DamageHP', 'short'],
        ['DamageSP', 'short'],
        ['DamageMP', 'short'],
        ['TimeDamageType', 'tinyint'],
        ['TimeDamageHP', 'short'],
        ['TimeDamageSP', 'short'],
        ['TimeDamageMP', 'short'],
        ['AddDamageHP', 'short'],
        ['AddDamageSP', 'short'],
        ['AddDamageMP', 'short'],
        
        ['AbilityType1', 'tinyint'],
        ['AbilityValue1', 'short'],
        ['AbilityType2', 'tinyint'],
        ['AbilityValue2', 'short'],
        ['AbilityType3', 'tinyint'],
        ['AbilityValue3', 'short'],
        
        ['HealHP', 'short'],
        ['HealSP', 'short'],
        ['HealMP', 'short'],
        ['TimeHealHP', 'short'],
        ['TimeHealSP', 'short'],
        ['TimeHealMP', 'short'],
        
        ['DefenseType', 'tinyint'],
        ['DefenseValue', 'tinyint'],
        ['LimitHP', 'tinyint'],
        ['FixRange', 'tinyint'],
        ['ChangeType', 'short'],
        ['ChangeLevel', 'short'],
]


def MainSkill(outFmt):
    if (outFmt.export_complete):
        return CombineSkill("Skill")
    if (outFmt.csv_import or outFmt.csv_complete):
        return ExtractSkill("Skill", outFmt)

def MainNPCSkill(outFmt):
    if (outFmt.export_complete):
        return CombineSkill("NpcSkill")
    if (outFmt.csv_import or outFmt.csv_complete):
        return ExtractSkill("NpcSkill", outFmt)

def CombineSkill(type):
        csvIn = work_dir + type + ".complete.csv"
        try:
                csvf = csv.DictReader(open(csvIn))
        except IOError:
                sys.exit(MsgFileReadError % csvIn)
        
        foutName = work_dir + type + ".SData"
        try:
                fout = open(foutName, mode='wb')
        except IOError:
                sys.exit(MsgFileWriteError % foutName)

        recs = []
        for row in csvf:
                recs.append(row)
        print "skill_rows: " + str(len(recs))

        # Write Total.
        record_total = struct.pack('I', (len(recs) / 3))
        fout.write(record_total)

        for i in recs:
                pack_fields(fout, skill_types, i)
        return True


def ExtractSkill(type, outFmt):
        # Open SData File.
        skillSData = feed_dir + type + ".SData"
        try:
                input = open(skillSData, mode='rb')
        except IOError:
                sys.exit(MsgFileReadError % skillSData)
        
        header = get_data_headers(skill_types)
        
        if (outFmt.csv_import):
                filename = work_dir + type + ".import.csv"
                header.pop(1) # Remove SkillDesc
                header.pop(3) # Remove SkillAnim
                header.pop(3) # Remove SkillIcon
        
        if (outFmt.csv_complete):
                filename = work_dir + type + ".complete.csv"
        
        print("Creating " + filename)   
        # Open File for output.
        try:
                fout = open(filename, mode='wb')
        except IOError:
                sys.exit(MsgFileWriteError % filename)
        
        fout_csv = csv.writer(fout)
        fout_csv.writerow(header)
        fout_csv = csv.DictWriter(fout, header)

        record_total = unpack_field(input, 'int')

        i = 0
        j = 0
        while True:
                rec = unpack_fields(input, skill_types, {})
               
                if (rec["SkillLevel"] == 1):
                        i += 1
                        j = 0
                j += 1
               
                if (outFmt.csv_import):
                        rec["SkillID"] = i
               
                cs_rec = copyKeys(rec, header)
                fout_csv.writerow(cs_rec)
                if (i == record_total and j == 3):
                        break
        return True

发表于 2020-3-9 10:24:21 | 显示全部楼层   北京市北京市

回帖奖励 +2 枚 精币

不知道搞定没
回复 支持 反对

使用道具 举报

发表于 2019-9-17 23:13:18 | 显示全部楼层   河南省洛阳市
楼主贴的代码不全,问题也大
回复 支持 反对

使用道具 举报

结帖率:57% (4/7)
发表于 2018-12-11 10:50:56 | 显示全部楼层   浙江省温州市

回帖奖励 +2 枚 精币

from Utils import * 是加载Utils模块的意思
skill_types=[............]是一个字典(你可以理解为数组)
def MainSkill(outFmt) def是定义函数的开头 MainSkill是函数名 outFmt是参数
然后也没啥难的了 基本上可以看懂了啊。
回复 支持 反对

使用道具 举报

结帖率:75% (3/4)
 楼主| 发表于 2018-11-21 18:46:57 | 显示全部楼层   贵州省毕节市
艾幻翔 发表于 2018-11-21 13:25
Utils的代码呢?
函数名竟然含大写字母,不符合规范呀~

这个是老外写的!我不会PY
回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 2018-11-21 13:25:54 | 显示全部楼层   广东省深圳市

回帖奖励 +2 枚 精币

Utils的代码呢?
函数名竟然含大写字母,不符合规范呀~
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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