# pvfUtilityWebApi **Repository Path**: icshare/pvfUtilityWebApi ## Basic Information - **Project Name**: pvfUtilityWebApi - **Description**: pvfUtilityWebApi接口文档及Demo - **Primary Language**: C# - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 12 - **Forks**: 3 - **Created**: 2022-07-30 - **Last Updated**: 2025-09-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README

pvfUtility WebApi

#### 介绍 pvfUtility 2020开始 一项重大的更新就是提供了HTTP接口进行自动化操作 这使得第三方工具可以利用http rest api进行文件读写 只需在软件内打开pvf,就能通过第三方工具进行下一步的操作 无需解压文件->再导入的繁琐操作! 软件目前(2022.7.30)提供了以下接口,如果需要更多的接口开放,欢迎联系QQ 812143836 [可以加群讨论接口开发的事项](https://qm.qq.com/cgi-bin/qm/qr?k=z6r2WpNy1LO1eDsoj6XQZ28usPcnLYMG&jump_from=webapi) 各语言DEMO ------- [E语言 by:糖糖](https://github.com/ledyxerago/pvfUtilityForEAssistant) [.NET by:梁月](https://gitee.com/horace2019/pvf-utility-demo) 获取pvfUtility版本号 ------- ###### 插件作者可以以版本来来确定用户当前使用的pvfUtility是否适用某些API接口 ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/getVersion ``` ###### 返回结果 ```json //注:使用此接口pvfUtility版本号需大于2022.9.30.2 {"Data":"2022.9.30.3","IsError":false,"Msg":null} ``` 获取文件列表 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/GetFileList?dirName=[目录名称]&returnType=0&fileType=[文件后缀名] ``` ``` 解释:dirName=equipment(目录名称) fileType=.equ(文件后缀名) 注:使用fileType pvfUtility版本号必须大于:2022.08.08.2 ``` ###### 返回结果(returnType=1) ```json { "Data": [ "cashshop/arad_cashshop.shp", "cashshop/hair_avagacha.shp", "cashshop/neck_avagacha.shp", "cashshop/belt_avagacha.shp", "cashshop/creatur_avagacha.shp", "cashshop/sudden_shop_1.shp" ], "IsError": false, "Msg": null } ``` 获取Pvf根目录列表 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/getPvfRootDirectory ``` ``` 注:使用fileType pvfUtility版本号必须大于:2022.9.30.2 ``` ###### 返回结果 ```json {"Data":["aicharacter","appendage","aura","cashshop","character","chatemoticon","clientonly","common","creature","data","dungeon","equipment","etc","event","itemshop","map","monster","n_quest","nexon","npc","passiveobject","pet","pvp_mission","region","skill","sqr","stackable","stagemap","town","ui","worldmap"],"IsError":false,"Msg":null} ``` 获取文件内容 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/GetFileContent?filePath=[文件路径]&useCompatibleDecompiler=[是否使用兼容性反编译器(true false)]&encodingType=null ``` ``` 注:使用encodingType参数 pvfUtility版本号需大于2022.12.3.1 //encodingType:仅适用于文本文件 如:nut、str、txt等 //TW=中国台湾 //CN=中国大陆 //KR=韩国 //JP=日本 //UTF8 //Unicode ``` ###### 返回结果(注:文件内容为utf-8编码) ```json { "Data": "#PVF_File\r\n\r\n[name]\r\n`鏃ュ厜鐭抽爡澧渀\r\n\r\n[name2]\r\n`name2_100300004`\r\n\r\n[grade]\r\n80\t\r\n[rarity]\r\n1\t\r\n[usable job]\r\n`[all]`\r\n\r\n[/usable job]\r\n\r\n[attach type]\r\n`[free]`\r\n\r\n[minimum level]\r\n80\t\r\n[magical attack]\r\n29\t\r\n[magical defense]\r\n73\t\r\n[price]\r\n64000\t\r\n[repair price]\r\n51200\t\r\n[value]\r\n46080\t\r\n[creation rate]\r\n250\t\r\n[equipment magical defense]\r\n6400\t6400\t\r\n[icon]\r\n`item/new_equipment/08_necklace/necklace.img`\r\n72\t\r\n[field image]\r\n`Item/FieldImage.img`\r\n6\t\r\n[equipment type]\r\n`[amulet]`\r\n18\t\r\n[move wav]\r\n`NECKLACE_TOUCH`\r\n\r\n[weight]\r\n400\t\r\n[item group name]\r\n`amulet`\r\n\r\n[cool time]\r\n10000\t\r\n", "IsError": false, "Msg": null } ``` 批量获取文件内容 ------- ###### 请求类型:POST ``` http://localhost:/Api/PvfUtiltiy/GetFileContents ``` 请求参数 ------- ``` JSON {"FileList":["creature/aquajello/aquajello.cre","creature/aquajello/attackinfo/overskill.atk"],"UseCompatibleDecompiler":false,"EncodingType":Null} ``` ###### 解释 ``` UseCompatibleDecompiler=是否使用兼容性反编译器 注:使用encodingType参数 pvfUtility版本号需大于2022.12.3.1 //encodingType:仅适用于文本文件 如:nut、str、txt等 //TW=中国台湾 //CN=中国大陆 //KR=韩国 //JP=日本 //UTF8 //Unicode ``` ###### 返回结果(注:文件内容为utf-8编码) ```json { {"Data":{"FileContentData":{"creature/aquajello/aquajello.cre":"#PVF_File\r\n\r\n[name]\r\n\t`明晰的水凝怪`\r\n\t\r\n\r\n[width]\r\n\t10\t10\r\n\r\n[floating height]\r\n\t0\r\n\r\n[layer]\r\n\t`[normal]`\r\n\r\n[skill recovery time]\r\n\t40000\r\n\r\n[over skill recovery time]\r\n\t60000\r\n\r\n[direction correct]\r\n\t1\r\n\r\n[move speed]\r\n\t286\t238\t114\t95\t70\r\n\r\n[gravity]\r\n\t1500\r\n\r\n[start level]\r\n\t1\r\n\r\n[permission level]\r\n\t1\r\n\r\n[max level]\r\n\t50\r\n\r\n[parent max level]\r\n\t50\r\n\r\n[artifact slot]\r\n\t`red`\r\n\t`blue`\r\n\t`green`\r\n[/artifact slot]\r\n\r\n[learn overskill level]\r\n\t30\r\n\r\n[skill MP]\r\n\t0\r\n\r\n[over skill MP]\r\n\t0\r\n\r\n[basic motion]\r\n\t`Animation/aquajello_stand.ani`\r\n\r\n[walk motion]\r\n\t`Animation/aquajello_move.ani`\r\n\r\n[run motion]\r\n\t`Animation/aquajello_move.ani`\r\n\r\n[skill motion]\r\n\t`Animation/aquajello_skill1_body.ani`\r\n\r\n[over skill motion]\r\n\t`Animation/aquajello_skill2_body.ani`\r\n\r\n[response motion]\r\n\t`Animation/aquajello_response_body.ani`\r\n\r\n[basic over effect]\r\n\t`Animation/aquajello_stand_dodge.ani`\r\n\r\n[walk over effect]\r\n\t`Animation/aquajello_move_dodge.ani`\r\n\r\n[run over effect]\r\n\t`Animation/aquajello_move_dodge.ani`\r\n\r\n[skill over effect]\r\n\t`Animation/aquajello_skill1_body_dodge.ani`\r\n\r\n[over skill over effect]\r\n\t`Animation/aquajello_skill2_body_dodge.ani`\r\n\r\n[response over effect]\r\n\t`Animation/aquajello_response_body_dodge.ani`\r\n\r\n[additional animation]\r\n\t`[over skill]`\t1\r\n\t`Animation/aquajello_skill2_handlight.ani`\r\n\r\n[additional animation]\r\n\t`[over skill]`\t2\r\n\t`Animation/aquajello_skill2_handlight2.ani`\r\n\r\n[etc motion]\r\n\t`Effect/aquajello_skill2_bottom.ani`\r\n\t`Effect/aquajello_skill2_bottom_normal.ani`\r\n[/etc motion]\r\n\r\n[revision x]\r\n\t0\r\n\r\n[revision y]\r\n\t30\r\n\r\n[attack info]\r\n\t``\r\n\t`AttackInfo/overskill.atk`\r\n[/attack info]\r\n\r\n[skill string]\r\n\t`水凝怪的祝福`\r\n\t\r\n\t`角色的攻擊力20秒內增加+15%%%%。`\r\n\t\r\n\t`冰刃疾風`\r\n\t\r\n\t`地底冒出尖銳的冰柱爆發,讓魔法陣領域內的怪物受傷害。角色的攻擊力同時在20秒內增加+15%%%%。`\r\n\t\r\n[/skill string]\r\n\r\n[skill level values]\r\n[/skill level values]\r\n\r\n[piercing]\r\n\t1000\t0\t1000\t0\r\n[/piercing]\r\n\r\n[int data]\r\n\t15\t15\t20000\t250\t62102\t400\t-50\t-15\t62103\t400\t-25\t23\t62104\t0\t-83\t3\t62105\t200\t25\t18\t62106\t200\t-15\t23\t62107\t200\t83\t-7\r\n[/int data]\r\n\r\n[string data]\r\n[/string data]\r\n\r\n[evolution quest]\r\n\t0\r\n\r\n[evolution creature id]\r\n\t0\r\n","creature/aquajello/attackinfo/overskill.atk":"#PVF_File\r\n\r\n[damage]\r\n\t200\r\n\r\n[attack type]\r\n\r\n[magic]\r\n\r\n[attack enemy]\r\n\t1\r\n\r\n[elemental property]\r\n\r\n[water element]\r\n\r\n[damage reaction]\r\n\r\n[damage]\r\n\r\n[push aside]\r\n\t100\r\n\r\n[lift up]\r\n\t30\r\n\r\n[attack direction]\r\n\r\n[hit horizon]\r\n\r\n[hit wav]\r\n\t`ICESPIRIT_HIT`\r\n\r\n[hit info]\r\n\r\n[blow]\r\n\r\n[no blood]\r\n\t100\t1.0\r\n"}},"IsError":false,"Msg":null} ``` 获取pvf文件内容(Json数据格式) ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/getFileData?filePath=[文件路径] ``` ###### 返回结果: ```json {"Data":[{"SectionName":"[type]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`include`","Children":[]}]},{"SectionName":"[range]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":2,"Value":"500","Children":[]}]},{"SectionName":"[duration]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":2,"Value":"0","Children":[]}]},{"SectionName":"[destroy method]","IsSection":true,"HasEndSection":true,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`duration`","Children":[]},{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`source destroy`","Children":[]}]},{"SectionName":"[event time]","IsSection":true,"HasEndSection":true,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`first`","Children":[]},{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":2,"Value":"500","Children":[]},{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`repeat`","Children":[]},{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":2,"Value":"0","Children":[]},{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`update`","Children":[]},{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":2,"Value":"2000","Children":[]}]},{"SectionName":"[overlab type]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`overlab`","Children":[]}]},{"SectionName":"[target]","IsSection":true,"HasEndSection":true,"DataType":5,"Value":null,"Children":[{"SectionName":"[object type]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`all`","Children":[]}]},{"SectionName":"[ally type]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`ally`","Children":[]}]}]},{"SectionName":"[event]","IsSection":true,"HasEndSection":true,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`appendage`","Children":[]},{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":2,"Value":"167","Children":[]}]},{"SectionName":"[effect]","IsSection":true,"HasEndSection":true,"DataType":5,"Value":null,"Children":[{"SectionName":"[attach target]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`delegator`","Children":[]}]},{"SectionName":"[type]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`animation`","Children":[]}]},{"SectionName":"[attach pos]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`bottom`","Children":[]}]},{"SectionName":"[index]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":2,"Value":"-1","Children":[]}]},{"SectionName":"[option]","IsSection":true,"HasEndSection":true,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`floor`","Children":[]},{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`apply custom color`","Children":[]},{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`sync speed`","Children":[]},{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`copy horizon`","Children":[]},{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`copy vertical`","Children":[]},{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`resize`","Children":[]}]},{"SectionName":"[file name]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`Aura/Effect/Animation/test_aura_range.ani`","Children":[]}]}]},{"SectionName":"[effect]","IsSection":true,"HasEndSection":true,"DataType":5,"Value":null,"Children":[{"SectionName":"[attach target]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`target`","Children":[]}]},{"SectionName":"[type]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`particle`","Children":[]}]},{"SectionName":"[attach pos]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`middle`","Children":[]}]},{"SectionName":"[file name]","IsSection":true,"HasEndSection":false,"DataType":5,"Value":null,"Children":[{"SectionName":null,"IsSection":false,"HasEndSection":false,"DataType":7,"Value":"`Aura/Effect/Particle/test_aura_particle2.ptl`","Children":[]}]}]}],"IsError":false,"Msg":null,"ErrorId":0} ``` ###### 返回结果数据模型: ```C# public class WebApiFileData { /// /// 标签名称 /// public string? SectionName { get; set; } /// /// 是否为标签 /// public bool IsSection { get { return this.DataType == ScriptType.Section; } } /// /// 是否具有结束标签 /// public bool HasEndSection { get; set; } /// /// 数据类型 /// public ScriptType DataType { get; set; } /// /// 数据值 /// public object Value { get; set; } /// /// 当数据类型为:Section (IsSection=True) 时 标签内的数据存放在此处 若标签内还有子标签也会存放在此处 /// public List Children { get; set; } } /// /// 数据类型 /// public enum ScriptType { Int = 2, IntEx, Float, Section, Command, String, CommandSeparator, StringLinkIndex, StringLink } ``` 获取主要的lst文件列表 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/GetAllLstFileList ``` ###### 返回结果:字典集合 键为:文件路径 值为:文件内容 ```json { "Data": ["town/town.lst", "aura/aura.lst", "region/region.lst", "stagemap/stagemap.lst", "worldmap/worldmap.lst", "appendage/appendage.lst", "character/character.lst", "equipment/equipment.lst", "pet/pet.lst", "stackable/stackable.lst", "aicharacter/aicharacter.lst", "dungeon/dungeon.lst", "chatemoticon/chatemoticon.lst", "monster/monster.lst", "creature/creature.lst", "cashshop/cashshop.lst", "map/map.lst", "npc/npc.lst", "itemshop/itemshop.lst", "passiveobject/passiveobject.lst", "n_quest/quest.lst", "pvp_mission/mission.lst", "skill/swordmanskill.lst", "skill/fighterskill.lst", "skill/gunnerskill.lst", "skill/mageskill.lst", "skill/priestskill.lst", "skill/atgunnerskill.lst", "skill/thiefskill.lst", "skill/atfighterskill.lst", "skill/atmageskill.lst", "skill/demonicswordman.lst", "skill/creatormage.lst"], "IsError": false, "Msg": null } ``` 删除文件 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/DeleteFile?filePath=[文件路径] ``` ###### 成功后返回结果 ```json { "IsError": false, "Msg": null } ``` ###### 失败后返回结果 ```json { "IsError": true, "Msg": "文件不存在" } ``` 批量删除文件 ------- ###### 请求类型:POST ``` http://localhost:/Api/PvfUtiltiy/DeleteFiles ``` ###### 请求参数(要删除的文件集合): ```json ["equipment/creature/aquajello.equ", "equipment/creature/asuna.equ", "equipment/creature/artbook_creature.equ"] ``` ###### 成功后返回结果 ```json {"Data":[],"IsError":false,"Msg":null} ``` ###### 失败后返回不存在的文件 ```json {"Data":["equipment/creature/aquajello.equ","equipment/creature/asuna.equ","equipment/creature/artbook_creature.equ"],"IsError":false,"Msg":null} ``` 上传新的文件内容 ------- ###### 新增或覆盖文件内容 ------- ###### 请求类型:POST ``` http://localhost:/Api/PvfUtiltiy/ImportFile?filePath=[文件路径] ``` ###### 请求参数(文本内容): ```json 文件内容 ``` ###### 返回结果 ```json {"IsError":false,"Msg":null} ``` 批量上传新的文件内容 ------- ###### 新增或覆盖文件内容 ------- ###### 请求类型:POST ``` http://localhost:/Api/PvfUtiltiy/ImportFiles ``` ###### 请求参数: ```json [{"FilePath":"文件路径","FileContent":"文件内容"},{"FilePath":"文件路径","FileContent":"文件内容"}] ``` ###### 返回结果(若上传失败 Data会返回) ```json {"Data":[],"IsError":false,"Msg":null} ``` 获取物品信息 ------- ###### 获取物品代码和物品名称 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/GetItemInfo?filePath=[文件路径] ``` ###### 返回结果 ```json {"Data":{"ItemName":"遠古精靈的秘藥","ItemCode":8491},"IsError":false,"Msg":null} ``` 批量获取物品信息 ------- ###### 获取物品代码和物品名称 ------- ###### 请求类型:POST ``` http://localhost:/Api/PvfUtiltiy/GetItemInfos ``` ###### 请求参数: ```json ["equipment/character/common/amulet/100300001.equ","equipment/character/common/amulet/100300004.equ","equipment/character/common/amulet/100300008.equ"] ``` ###### 返回结果(字典集合) ```json { "Data": { "equipment/character/common/amulet/100300001.equ": { "ItemName": "烈火之心項鏈", "ItemCode": 100300001 }, "equipment/character/common/amulet/100300004.equ": { "ItemName": "日光石項墜", "ItemCode": 100300004 }, "equipment/character/common/amulet/100300008.equ": { "ItemName": "冥炎逐日項鏈", "ItemCode": 100300008 } }, "IsError": false, "Msg": null } ``` 获取文件资源管理器具有焦点的文件路径 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/GetTreeListFocusedFilePath ``` ###### 返回结果 ```json { "IsError": false, "Msg": null, "Data":"PVF文件路径" } ``` 获取查找面板文件资源管理器具有焦点的文件路径 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/GetSearchPanelTreeListFocusedFilePath ``` ###### 返回结果 ```json { "IsError": false, "Msg": null, "Data":"PVF文件路径" } ``` 获取文档组 => 当前正在编辑的文档 => 文件路径 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/GetActiveDocumentFilePath ``` ###### 返回结果 ```json { "IsError": false, "Msg": null, "Data":"PVF文件路径" } ``` 文件路径集合 转换为 lst 返回字典集合 若该文件没有在lst注册 则不会返回! ------- ###### 请求类型:POST ``` http://localhost:/Api/PvfUtiltiy/FileListToLstRows ``` ###### 请求参数: ```json ["equipment/character/common/amulet/100300001.equ","equipment/character/common/amulet/100300004.equ","equipment/character/common/amulet/100300008.equ"] ``` ###### 返回结果 ```json //字典集合 自行解析拼接 数据说明: Dictionary<所属lst文件路径,Dictionary<代码,lst字符串路径>> { "Data": { "equipment/equipment.lst": { "100300008": "character/common/amulet/100300008.equ", "100300001": "character/common/amulet/100300001.equ" } }, "IsError": false, "Msg": null } ``` 确认文件是否存在 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/FileIsExists?filePath=[文件路径] ``` ###### 返回结果 ```json {"IsError":false,"Msg":null} ``` 获取文件资源管理器选中文件集合 ------- ###### 请求类型:GET ``` //这个API URL之前写错了 结尾处多写了一个s http://localhost:/Api/PvfUtiltiy/GetTreeSelectedFiles ``` ###### 返回结果 ```json { "Data": [ "cashshop/arad_cashshop.shp", "cashshop/hair_avagacha.shp", "cashshop/neck_avagacha.shp", "cashshop/belt_avagacha.shp", "cashshop/creatur_avagacha.shp", "cashshop/sudden_shop_1.shp" ], "IsError": false, "Msg": null } ``` 获取查找面板文件资源管理器选中文件集合 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/GetSearchPanelSelectedFiles ``` ###### 返回结果 ```json { "Data": [ "cashshop/arad_cashshop.shp", "cashshop/hair_avagacha.shp", "cashshop/neck_avagacha.shp", "cashshop/belt_avagacha.shp", "cashshop/creatur_avagacha.shp", "cashshop/sudden_shop_1.shp" ], "IsError": false, "Msg": null } ``` pvf封包另存为 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/SaveAsPvfFile?filePath=[保存路径] ``` ###### 返回结果 ```json { "IsError": false, "Msg": null } ``` ``` 解释:filePath=要另存为的文件完整路径 例:J:\360MoveData\Users\Administrator\Desktop\新建文件夹\script.pvf 注:路径中存在中文请进行Url编码 刚好有E语言的插件作者遇到这个问题 请使用:精易模块 编码_URL编码_JS("文件路径"); ``` 获取当前载入的封包文件路径 ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/GetPvfPackFilePath ``` ###### 返回结果 ```json { "IsError": false, "Msg": null, "Data":"PVF文件路径" } ``` 搜索PVF ------- ###### 请求类型:POST ``` http://localhost:/Api/PvfUtiltiy/SearchPvf ``` ###### 请求参数 ```JSON {"SearchFolder":"","Keyword":"[width]","Type":1,"SourceType":0,"NormalUsing":1,"IsStartMatch":false,"SearchResult":null,"ScriptContentSearchMode":1,"IsUseLikeSearchPath":false,"Trait":false,"UseRegularExpression":false,"WholeWordMatch":false,"RemoveOrKeep":1,"FileTypesString":null,"ScriptContent":"","ScriptContentStart":"","ScriptContentStop":""} ``` ###### 返回结果 ```json {"Data":["monster/specialmonster/hpsharingmonster2.mob","passiveobject/actionobject/monster/dimensiongate/cosmofiend/gaunis/namgyu_purple/chainge_tile.obj","passiveobject/actionobject/map/antberadd/tent/sausage.obj"],"IsError":false,"Msg":null} ``` 使用物品代码转换文件信息(返回:文件路径/物品名称) ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/ItemCodeToFileInfo?lstNames=equipment&itemCode=27098 ``` ###### 返回结果 ```json { "Data": { "FilePath": "equipment/character/swordman/weapon/ssword/n_sswd_eleno.equ", "ItemName": "無影劍 - 艾雷諾\r\nShapeless Sword Elenore" }, "IsError": false, "Msg": null } ``` ``` 解释: 注:pvfUtility版本号需大于2022.9.30.2 itemCode=物品代码 lstNames为物品代码所对应的 xxxxxx/xxxxx.lst名称 在pvfUtility打开【lst管理器】左侧列表显示的就是lst名称 小提示:在独立掉落的代码中 它可能是装备也可能是道具 推荐使用参数:?lstNames=equipment,stackable&itemCode=27098 使用英文逗号来分割lstName 你可以提供多个lstName来一次行获取到结果而不是重复的请求两次API并分别提交不同的lstName LstName若涉及'/'符号请进行URL编码 如:skill/fighte skill/swordman 等等... 切记!!! ``` 批量使用物品代码转换文件信息(返回:文件路径/物品名称) ------- ###### 请求类型:POST ``` http://localhost:/Api/PvfUtiltiy/ItemCodesToFileInfos ``` ###### POST参数: ```JSON {"lstNames":["equipment","stackable"],"ItemCodes":[1251,27098]} ``` ###### 返回结果 ```json //返回一个字典集合key=物品代码,Value=文件信息 { "Data": { "Infos": { "1251": { "FilePath": "stackable/consumption_1251.stk", "ItemName": "精制的裝備合成器" }, "27098": { "FilePath": "equipment/character/swordman/weapon/ssword/n_sswd_eleno.equ", "ItemName": "無影劍 - 艾雷諾\r\nShapeless Sword Elenore" } } }, "IsError": false, "Msg": null } ``` ``` 解释: 注:pvfUtility版本号需大于2022.9.30.2 POST参数传入多个lstName也是有限制的 Get方法也是一样!!! 例:你不能同时传入skill/swordman skill/fighter 不同职业的技能编号似乎是有重复的所以你不能这样使用! ``` ```c# //返回结果数据模型 /// /// 物品代码转换物品信息返回结果 /// public class ItemCodeToFileInfoDto { public string FilePath { get; set; } public string ItemName { get; set; } } /// /// 批量物品代码转换物品信息返回结果 /// public class ItemCodesToFileInfosDto { /// /// 返回 一个字典集合 Kye=物品代码,value=文件信息(文件名和物品名称) /// public Dictionary Infos { get; set; } } ``` 获取文件Icon图标(可用于开发预览插件) ------- ###### 请求类型:GET ``` http://localhost:/Api/PvfUtiltiy/getFileIcon?filePath=equipment/character/swordman/weapon/ssword/n_sswd_eleno.equ ``` ###### 返回结果 ```json //注:pvfUtility版本号需大于2022.9.30.2 //警告:请不要频繁的访问此接口 pvfUtility限制每0.5秒只能访问一次 //返回一个Base64字符串 自行转换为图片。 {"Data":"data:image/jpeg;base64,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","IsError":false,"Msg":null} ``` 获取lst文件信息 ------- ###### 请求类型:Get ``` 注:pvfUtility版本号需大于:2022.11.6.1 http://localhost:/Api/PvfUtiltiy/getLstFileInfo?filePath=equipment/equipment.lst ``` ###### 返回结果: ```JSON Dictionary {"Data":{"10018":{"PathHeader":"equipment","ItemPath":"character/common/jacket/cloth/vest_owool.equ","FullPath":"equipment/character/common/jacket/cloth/vest_owool.equ","ItemName":"古老的羊毛背心\r\nOld Wool Vest","ItemCode":10018},"10019":{"PathHeader":"equipment","ItemPath":"character/common/jacket/cloth/vest_wool.equ","FullPath":"equipment/character/common/jacket/cloth/vest_wool.equ","ItemName":"羊毛背心\r\nWool Vest","ItemCode":10019},"10020":{"PathHeader":"equipment","ItemPath":"character/common/jacket/cloth/robe_cfiber.equ","FullPath":"equipment/character/common/jacket/cloth/robe_cfiber.equ","ItemName":"炎麻長袍\r\nRobe of Carbon Fiber","ItemCode":10020},"10021":{"PathHeader":"equipment","ItemPath":"character/common/jacket/cloth/vest_thwool.equ","FullPath":"equipment/character/common/jacket/cloth/vest_thwool.equ","ItemName":"厚絨羊毛背心\r\nThick Wool Vest","ItemCode":10021},"10022":{"PathHeader":"equipment","ItemPath":"character/common/jacket/cloth/tunic_owool.equ","FullPath":"equipment/character/common/jacket/cloth/tunic_owool.equ","ItemName":"舊式絲綢背心\r\nOutdated Wool Tunic","ItemCode":10022}},"IsError":false,"Msg":null,"ErrorId":0} ``` 获取字符串表:stringtable.bin明文数据 ------- ###### 请求类型:Get ``` 注:pvfUtility版本号需大于:2022.11.11.1 http://localhost:/Api/PvfUtiltiy/getStringTable ``` ###### 返回结果: ```JSON 返回 字符串数组 ``` 文件路径获取图标-批量:filesToIconBase64 ------- ###### 请求类型:POST ``` 注:pvfUtility版本号需大于:2023.3.9.1 http://localhost:/Api/PvfUtiltiy/filesToIconBase64 ``` ###### 请求参数 文件路径集合: ```JSON ["equipment/character/common/amulet/100300001.equ","equipment/character/common/amulet/100300002.equ","equipment/character/common/amulet/100300003.equ"] ``` ###### 返回结果: ```JSON {"Data":{"equipment/character/common/amulet/100300001.equ":"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","equipment/character/common/amulet/100300002.equ":"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","equipment/character/common/amulet/100300003.equ":"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"},"IsError":false,"Msg":null,"ErrorId":0} ``` 判断文件夹是否存在-也适用于文件 ------- ###### 请求类型:Get ``` 注:pvfUtility版本号需大于:2022.11.11.1 http://localhost:27000/Api/PvfUtility/folderExists?filePath=equipment115651651 ``` ###### 返回结果: ```JSON 若不存在则返回错误。 ``` 转到文件资源管理器-打开编辑器文档(可选) ------- ###### 请求类型:Get ``` 注:pvfUtility版本号需大于:2022.11.11.1 http://localhost:/Api/PvfUtility/goToTreeListNode?filePath=equipment/equipment.lst&openTextDocument=0 1=打开编辑器 ``` ###### 返回结果: ```JSON 若错在错误则返回 ```