查看: 799|回复: 3
收起左侧

[讨论] 关于ts4script的一点小发现

[复制链接]

发表于 2019-4-28 23:40:27 | 显示全部楼层 |阅读模式

快快登录说出你的故事吧~!

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

x
本帖最后由 倦意 于 2019-4-28 23:44 编辑

还是从上次的大佬中受到启发,如果雷同(PS好像也没人发现)请谅解!!
本贴的目的就是抛砖引玉 如果对此有研究的dalao不妨站出来说说
ts4script在网上并没有很多资料,唯一的资料是显示是EA原创的一种格式
ts4script为py打包出来的一种格式,貌似package也是


简单看了各位大佬的帖子(功能性MOD),


我大胆推测:


package格式为储藏贴图+控制贴图功能的格式
ts4script为控制人物交互+事件发生的脚本



ts4script反编译发现:

这是一个叫AdultWorld.pyc的文件 简单的看了几段
  1. import services #导入服务
  2. from sims4.tuning.instance_manager import InstanceManager #从实例化管理器选取sims4.tuning.instance_manager一个叫S4 实例化管理的东西(PS:实例化就是我们在游戏能够看到的东西)
  3. import sims4.resources as sims4  #从sims4中选取一个sims4.resources 应该是资源控制
  4. from sims4.resources import Types #应该是导入了字体
  5. from ksuinjector import inject_to #不知道

  6. def add_super_affordances_to_objects(self): #def为定义了一个方法,这个方法调用了它本身
  7.     test_sa_instance_ids = (0x49D223738229D54FL, 0x77E084F9EDC4E4AFL, 0x1F5822C24AD0CBE6L, 0xCC3461D5BC9809C8L, 0x8C7872B1CB39B877L, 0xB32C579B1F2F02E5L, 0xAAD084CB020B8BF6L, 0xB01021C5D5369BE2L, 0x3EA37EF16A7B85B6L, 0x23347E00BB9908B7L, 0xE7585E1B7284E6E3L, 0x9B80173D8A01528L, 0xCDD66C9060ED9CAFL, 0xA994C081573A0D88L, 0x451D3EC23BDBA434L) #这是实例化的ID,具体意义不详
  8.     test_object_ids = (112485, 14845, 34680, 40340, 34682, 34684, 34679, 34678, 36369, 36370, 77507, 14978, 202932, 202931) #物品的ID
  9. # WARNING: Decompyle incomplete #这里是反编译不完全,可以忽视,下同


  10. def load_data_into_class_instances(original, self): #也是一个方法,加载数据进入class(应该为一个类)的实例化
  11.     original(self) #不详 调用了一个方法
  12.     if self.TYPE == Types.OBJECT: #如果自身的类型为上文出现的导入了字体??
  13.         add_super_affordances_to_objects(self)

  14. load_data_into_class_instances = inject_to(InstanceManager, 'load_data_into_class_instances')(load_data_into_class_instances)
  15. import services
  16. from sims4.tuning.instance_manager import InstanceManager
  17. import sims4.resources as sims4
  18. from sims4.resources import Types
  19. from ksuinjector import inject_to

  20. def add_super_affordances_to_objects(self):
  21.     test_sa_instance_ids = (0x49D223738229D54FL, 0x77E084F9EDC4E4AFL, 0x1F5822C24AD0CBE6L, 0xCC3461D5BC9809C8L, 0x8C7872B1CB39B877L, 0xB32C579B1F2F02E5L, 0xAAD084CB020B8BF6L, 0xB01021C5D5369BE2L, 0x3EA37EF16A7B85B6L, 0x23347E00BB9908B7L, 0xE7585E1B7284E6E3L, 0x9B80173D8A01528L, 0xCDD66C9060ED9CAFL, 0xA994C081573A0D88L, 0x451D3EC23BDBA434L)
  22.     test_object_ids = (112485, 14845, 34680, 40340, 34682, 34684, 34679, 34678, 36369, 36370, 77507, 14978, 202932, 202931)
  23. # WARNING: Decompyle incomplete


  24. def load_data_into_class_instances(original, self):
  25.     original(self)
  26.     if self.TYPE == Types.OBJECT:
  27.         add_super_affordances_to_objects(self)

  28. load_data_into_class_instances = inject_to(InstanceManager, 'load_data_into_class_instances')(load_data_into_class_instances)
复制代码
这是一个叫Videostation.pyc的反编译
  1. import services
  2. from sims4.tuning.instance_manager import InstanceManager
  3. import sims4.resources as sims4
  4. from sims4.resources import Types
  5. from ksuinjector import inject_to

  6. def add_super_affordances_to_objects(self):
  7.     ksuihuhvideostation_sa_instance_ids = (0xAC3E3502BF102D18L,)
  8.     ksuihuhvideostation_object_ids = (192263,)
  9. # WARNING: Decompyle incomplete


  10. def load_data_into_class_instances(original, self):
  11.     original(self)
  12.     if self.TYPE == Types.OBJECT:
  13.         add_super_affordances_to_objects(self)

  14. load_data_into_class_instances = inject_to(InstanceManager, 'load_data_into_class_instances')(load_data_into_class_instances)
  15. import services
  16. from sims4.tuning.instance_manager import InstanceManager
  17. import sims4.resources as sims4
  18. from sims4.resources import Types
  19. from ksuinjector import inject_to

  20. def add_super_affordances_to_objects(self):
  21.     ksuihuhvideostation_sa_instance_ids = (0xAC3E3502BF102D18L,)
  22.     ksuihuhvideostation_object_ids = (192263,)
  23. # WARNING: Decompyle incomplete


  24. def load_data_into_class_instances(original, self):
  25.     original(self)
  26.     if self.TYPE == Types.OBJECT:
  27.         add_super_affordances_to_objects(self)

  28. load_data_into_class_instances = inject_to(InstanceManager, 'load_data_into_class_instances')(load_data_into_class_instances)
复制代码


下面给出反编译的网站:可以把pyc编译成py格式
https://tool.lu/pyc/
有兴趣可以去把你家的ts4script解包研究研究
End



楼主热帖

共收到 3 菊花
打赏榜
暖暖Hathaway
共打赏 1 菊花
烤个辣翅
共打赏 1 菊花
Yarouer-
共打赏 1 菊花
4
暂无
--
5
暂无
--
6
暂无
--
7
暂无
--
版权声明
本站积极遵守中华人民共和国各项法律法规,促进良好社会公共道德,鼓励劳动者劳有所得。
为保护作者和平台的共同利益,在本站发布的原创内容所包含模型、图片、代码等版权归作者和平台共有,平台承诺不将此权利行使于法律行为以外用途。
本站原创作品仅供购买或下载者本人使用,任何平台或个人擅自转载、售卖本站原创作品,本站均保留诉讼权利。
此条款自作品发布起即时生效。

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

发表于 2019-4-29 06:00:01 | 显示全部楼层
过来看看
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

发表于 2019-4-29 06:00:01 | 显示全部楼层
过来看看
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

发表于 2019-4-29 07:27:09 手机访问 | 显示全部楼层
这一堆我看不懂的东西,是大佬了
我要说一句

【三宫六院论坛】唯一官方店为:sgly.taobao.com,除此之外都是假的!

回复 支持 反对

使用道具 举报

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

本版积分规则