铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 22|回复: 4

[lua复刻] 如何突破生命最大值、内力最大值、经验最大值的限制

[复制链接]
 楼主| 发表于 2026-7-8 12:28 | 显示全部楼层 |阅读模式

马上注册,结交更多侠友!

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x
金庸群侠传系列游戏
—天书劫MOD扩展部分教程
一、如何突破生命最大值、内力最大值、经验最大值的限制。
(一)首先用upedit修改器导出原来游戏的Excel表格内容。
(二)修改jyconst.lua里面的人物定义
CC.PersonSize = 239     --(后面新增加了,这里的数字也要修改)
CC.Person_S = {}
CC.Person_S["代号"] = {    0,    0,   2  }
CC.Person_S["头像代号"] = {    2,    0,   2  }
CC.Person_S["生命增长"] = {    4,    0,   2  }
CC.Person_S["无用"] = {    6,    0,   2  }
CC.Person_S["姓名"] = {    8,    2,   10  }
CC.Person_S["外号"] = {    18,    2,   10  }
CC.Person_S["性别"] = {    28,    0,   2  }
CC.Person_S["等级"] = {    30,    0,   2  }
  CC.Person_S["经验"] = {    32,    3,   4  }
  CC.Person_S["生命"] = {    36,    3,   4  }
  CC.Person_S["生命最大值"] = {   40,    3,    4  }
CC.Person_S["受伤程度"] = {    44,    0,    2  }
CC.Person_S["中毒程度"] = {    46,    0,   2  }
CC.Person_S["体力"] = {    48,    0,    2  }
CC.Person_S["物品修炼点数"] = {    50,    0,   2  }
CC.Person_S["武器"] = {    52,    0,    2  }
CC.Person_S["防具"] = {    54,    0,    2  }
  fori = 1, 5 do
   CC.Person_S["出招动画帧数" .. i] = {      56 + 2 * (i - 1),     0,      2    }
   CC.Person_S["出招动画延迟" .. i] = {      66 + 2 * (i - 1),     0,      2    }
   CC.Person_S["武功音效延迟" .. i] = {      76 + 2 * (i - 1),     0,      2    }
  end
CC.Person_S["内力性质"] = {    86,    0,    2  }
  CC.Person_S["内力"] = {    88,    3,   4  }
  CC.Person_S["内力最大值"] = {   92,    3,    4  }
CC.Person_S["攻击力"] = {    96,    0,   2  }
CC.Person_S["轻功"] = {    98,    0,    2  }
CC.Person_S["防御力"] = {    100,    0,    2  }
CC.Person_S["医疗能力"] = {    102,    0,   2  }
CC.Person_S["用毒能力"] = {    104,    0,    2  }
CC.Person_S["解毒能力"] = {    106,    0,    2  }
CC.Person_S["抗毒能力"] = {    108,    0,    2  }
CC.Person_S["拳掌功夫"] = {    110,    0,   2  }
CC.Person_S["御剑能力"] = {    112,    0,   2  }
CC.Person_S["耍刀技巧"] = {    114,    0,    2  }
CC.Person_S["特殊兵器"] = {    116,    0,    2  }
CC.Person_S["暗器技巧"] = {    118,    0,    2  }
CC.Person_S["武学常识"] = {    120,    0,   2  }
CC.Person_S["品德"] = {    122,    0,    2  }
CC.Person_S["攻击带毒"] = {    124,    0,    2  }
CC.Person_S["左右互搏"] = {    126,    0,    2  }
CC.Person_S["声望"] = {    128,    0,    2  }
CC.Person_S["资质"] = {    130,    0,    2  }
CC.Person_S["修炼物品"] = {    132,    0,   2  }
CC.Person_S["修炼点数"] = {    134,    0,    2  }
  fori = 1, 10 do
   CC.Person_S["武功" .. i] = {      136 + 2 * (i - 1),     0,      2    }
   CC.Person_S["武功等级" .. i] = {      156 + 2 * (i - 1),     0,      2    }
  end
  fori = 1, 4 do
   CC.Person_S["携带物品" .. i] = {      176 + 2 * (i -1),      0,      2   }
   CC.Person_S["携带物品数量" .. i] = {      184 + 2 * (i - 1),     0,      2    }
  end
CC.Person_S["特殊"] = {    192,    0,    2  }
  
    CC.Person_S["生命str"]={194,2,9}
         CC.Person_S["生命最大值str"]={203,2,9}
         CC.Person_S["内力str"]={212,2,9}
         CC.Person_S["内力最大值str"]={221,2,9}
CC.Person_S["经验str"]={230,2,9}
红色的是修改的,绿色的是新增加的,其原理就是在lua层面定义字符串数字映射到原来的生命、内力、经验等地方,从而欺骗底层二进制的读取机制。
  (三)修改up.ini中的定义。
TypeName1 =人物
   TypedataItem1 = 89
   
   data(1,0) = 1 1 2 0 0 -1 代号人物代号,仅作为标志,游戏不使用,偏移0
   data(1,1) = 1 1 2 0 0 -1 头像/战斗代号人物头像代号(hdgrp)和战斗动作编号Fight***,偏移2
   data(1,2) = 1 1 2 0 0 -1 生命增长升级时生命增长幅度,每升一级生命最大值增长:3*生命增长+(0-6)随机,偏移4
   data(1,3) = 1 1 2 0 0 -1 无用无用,偏移6
   data(1,4) = 1 1 10 1 1 -1 姓名姓名,最多4个汉字,偏移8
    data(1,5)= 1 1 10 1 0 -1 外号外号,最多5个汉字,程序中似乎不用,偏移18
   data(1,6) = 1 1 2 0 0 -1 性别性别,012太监,偏移28
   data(1,7) = 1 1 2 0 0 -1 等级等级,最多30级,偏移30
   data(1,8) = 1 1 4 0 0 -1 经验值 经验值,最高60000,偏移32
   data(1,9) = 1 1 4 0 0 -1 生命 生命值,最高999,偏移34
   data(1,10) = 1 1 4 0 0 -1 生命最大值 生命最大值,最高999,偏移36
   data(1,11) = 1 1 2 0 0 -1 受伤程度受伤程度,最高100。过重影响医疗,不能住宿恢复生命等。医疗/吃药可减少,偏移38
   data(1,12) = 1 1 2 0 0 -1 中毒程度中毒程度,中毒后战斗每回合减少生命,中毒越深减少越多。,偏移40
   data(1,13) = 1 1 2 0 0 -1 体力体力,最大100,偏移42
   data(1,14) = 1 1 2 0 0 -1 物品修炼点数物品修炼点数,修炼能练出物品的秘笈时使用,偏移44
   data(1,15) = 1 1 2 0 0 2 武器武器物品代号,偏移46
   data(1,83) = 1 1 2 0 0 2 特殊特殊物品代号,偏移182
   data(1,16) = 1 1 2 0 0 2 防具防具物品代号,偏移48
   data(1,17) = 1 1 2 0 0 -1 出招动画帧数 fight***中每方向动画帧数,1医疗/用毒/解毒,起始偏移50
   data(1,18) = 1 1 2 0 0 -1 出招动画帧数 fight***中每方向动画帧数,2拳,起始偏移52
   data(1,19) = 1 1 2 0 0 -1 出招动画帧数 fight***中每方向动画帧数,3剑,起始偏移54
   data(1,20) = 1 1 2 0 0 -1 出招动画帧数 fight***中每方向动画帧数,4刀,起始偏移56
   data(1,21) = 1 1 2 0 0 -1 出招动画帧数 fight***中每方向动画帧数,5特殊,起始偏移58
   data(1,22) = 1 1 2 0 0 -1 出招动画延迟 1医疗/用毒/解毒出招动画延迟帧数,出招动画开始到此延迟帧数后才显示武功效果,起始偏移60
   data(1,23) = 1 1 2 0 0 -1 出招动画延迟 2拳出招动画延迟帧数,出招动画开始到此延迟帧数后才显示武功效果,起始偏移62
   data(1,24) = 1 1 2 0 0 -1 出招动画延迟 3剑出招动画延迟帧数,出招动画开始到此延迟帧数后才显示武功效果,起始偏移64
   data(1,25) = 1 1 2 0 0 -1 出招动画延迟 4刀出招动画延迟帧数,出招动画开始到此延迟帧数后才显示武功效果,起始偏移66
   data(1,26) = 1 1 2 0 0 -1 出招动画延迟 5特殊出招动画延迟帧数,出招动画开始到此延迟帧数后才显示武功效果,起始偏移68
   data(1,27) = 1 1 2 0 0 -1 武功音效延迟相应的武功音效延迟帧数,出招动画开始到此延迟帧数后才播放武功音效,起始偏移70
   data(1,28) = 1 1 2 0 0 -1 武功音效延迟相应的武功音效延迟帧数,出招动画开始到此延迟帧数后才播放武功音效,起始偏移72
   data(1,29) = 1 1 2 0 0 -1 武功音效延迟相应的武功音效延迟帧数,出招动画开始到此延迟帧数后才播放武功音效,起始偏移74
   data(1,30) = 1 1 2 0 0 -1 武功音效延迟相应的武功音效延迟帧数,出招动画开始到此延迟帧数后才播放武功音效,起始偏移76
   data(1,31) = 1 1 2 0 0 -1 武功音效延迟相应的武功音效延迟帧数,出招动画开始到此延迟帧数后才播放武功音效,起始偏移78
   data(1,32) = 1 1 2 0 0 -1 内力性质内力性质,0阴性、1阳性、2阴阳调和,偏移80
   data(1,33) = 1 1 4 0 0 -1 内力 内力,最大999,偏移82
   data(1,34) = 1 1 4 0 0 -1 内力最大值 内力最大值,最大999,偏移84
   data(1,35) = 1 1 2 0 0 -1 攻击力攻击力,最大100,偏移86
   data(1,36) = 1 1 2 0 0 -1 轻功轻功,最大100,偏移88
   data(1,37) = 1 1 2 0 0 -1 防御力防御力,最大100,偏移90
   data(1,38) = 1 1 2 0 0 -1 医疗医疗,最大100,偏移92
   data(1,39) = 1 1 2 0 0 -1 用毒用毒,最大100,偏移94
   data(1,40) = 1 1 2 0 0 -1 解毒解毒,最大100,偏移96
   data(1,41) = 1 1 2 0 0 -1 抗毒抗毒,最大100,偏移98
   data(1,42) = 1 1 2 0 0 -1 拳掌拳掌,最大100,偏移100
   data(1,43) = 1 1 2 0 0 -1 御剑御剑,最大100,偏移102
   data(1,44) = 1 1 2 0 0 -1 耍刀耍刀,最大100,偏移104
   data(1,45) = 1 1 2 0 0 -1 特殊兵器特殊兵器,最大100,偏移106
   data(1,46) = 1 1 2 0 0 -1 暗器技巧暗器技巧,最大100,偏移108
   data(1,47) = 1 1 2 0 0 -1 武学常识武学常识,最大100,偏移110
   data(1,48) = 1 1 2 0 0 -1 品德品德,最大100,偏移112
   data(1,49) = 1 1 2 0 0 -1 攻击带毒攻击带毒,最大100,偏移114
   data(1,50) = 1 1 2 0 0 -1 左右互搏左右互搏,0战斗攻击一次,1战斗攻击两次,偏移116
   data(1,51) = 1 1 2 0 0 -1 声望个人声望,偏移118
   data(1,52) = 1 1 2 0 0 -1 资质资质,资质越高修炼所需经验越少,偏移120
   data(1,53) = 1 1 2 0 0 2 修练物品当前修练物品代号,偏移122
   data(1,54) = 1 1 2 0 0 -1 修炼点数修炼点数,当前修炼点数,偏移124
   data(1,55) = 1 1 2 0 0 4 所会武功1 所会武功1代号,0表示没有武功,起始偏移126
   data(1,56) = 1 1 2 0 0 4 所会武功2 所会武功2代号,0表示没有武功,起始偏移128
   data(1,57) = 1 1 2 0 0 4 所会武功3 所会武功3代号,0表示没有武功,起始偏移130
   data(1,58) = 1 1 2 0 0 4 所会武功4 所会武功4代号,0表示没有武功,起始偏移132
   data(1,59) = 1 1 2 0 0 4 所会武功5 所会武功5代号,0表示没有武功,起始偏移134
   data(1,60) = 1 1 2 0 0 4 所会武功6 所会武功6代号,0表示没有武功,起始偏移136
   data(1,61) = 1 1 2 0 0 4 所会武功7 所会武功7代号,0表示没有武功,起始偏移138
   data(1,62) = 1 1 2 0 0 4 所会武功8 所会武功8代号,0表示没有武功,起始偏移140
   data(1,63) = 1 1 2 0 0 4 所会武功9 所会武功9代号,0表示没有武功,起始偏移142
   data(1,64) = 1 1 2 0 0 4 所会武功10 所会武10功代号,0表示没有武功,起始偏移144
   data(1,65) = 1 1 2 0 0 -1 所会武功1等级所会武功1等级,100分一级,900点十级,起始偏移146
   data(1,66) = 1 1 2 0 0 -1 所会武功2等级所会武功2等级,100分一级,900点十级,起始偏移148
   data(1,67) = 1 1 2 0 0 -1 所会武功3等级所会武功3等级,100分一级,900点十级,起始偏移150
   data(1,68) = 1 1 2 0 0 -1 所会武功4等级所会武功4等级,100分一级,900点十级,起始偏移152
   data(1,69) = 1 1 2 0 0 -1 所会武功5等级所会武功5等级,100分一级,900点十级,起始偏移154
   data(1,70) = 1 1 2 0 0 -1 所会武功6等级所会武功6等级,100分一级,900点十级,起始偏移156
   data(1,71) = 1 1 2 0 0 -1 所会武功7等级所会武功7等级,100分一级,900点十级,起始偏移158
   data(1,72) = 1 1 2 0 0 -1 所会武功8等级所会武功8等级,100分一级,900点十级,起始偏移160
   data(1,73) = 1 1 2 0 0 -1 所会武功9等级所会武功9等级,100分一级,900点十级,起始偏移162
   data(1,74) = 1 1 2 0 0 -1 所会武功10等级所会武功10等级,100分一级,900点十级,起始偏移164
   data(1,75) = 1 1 2 0 0 2 携带物品1 携带物品1代号,起始偏移166
   data(1,76) = 1 1 2 0 0 2 携带物品2 携带物品2代号,起始偏移168
   data(1,77) = 1 1 2 0 0 2 携带物品3 携带物品3代号,起始偏移170
   data(1,78) = 1 1 2 0 0 2 携带物品4 携带物品4代号,起始偏移172
   data(1,79) = 1 1 2 0 0 -1 携带物品1数量携带物品1数量,起始偏移174
   data(1,80) = 1 1 2 0 0 -1 携带物品2数量携带物品2数量,起始偏移176
   data(1,81) = 1 1 2 0 0 -1 携带物品3数量携带物品3数量,起始偏移178
   data(1,82) = 1 1 2 0 0 -1 携带物品4数量携带物品4数量,起始偏移180
    data(1,84) = 1 1 91 1 -1 生命 生命值,最高999999,偏移10
    data(1,85) = 1 1 9 1 1 -1 生命最大值 生命最大值,最高999999,偏移10
    data(1,86) = 1 1 9 1 1 -1 内力 内力值,最高999999,偏移10
    data(1,87) = 1 1 9 1 1 -1 内力最大值 内力最大值,最高999999,偏移10
data(1,88) = 1 1 9 1 1 -1 经验   ,最高999999,偏移10
这里也一样,红色的是修改的,绿色的是新增的,注意这里面的偏移数值不能改,改了会出错,应该是底层二进制的原因,修改不了。
(四)现在就可以将之前导出的Excel表格数据再导入进去(用快速导出和导入,要不然会很慢,记得点击保存。)
(五)修改jymain.lua主游戏文件中的代码,这里要修改很多,光修改生命和内存,改的少,修改经验就麻烦。
1.
首先找到function LoadRecord(id)这个函数,然后在他前面新增增加两段代码,我用红色标出来。



【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2026-7-8 12:30 | 显示全部楼层
(四)现在就可以将之前导出的Excel表格数据再导入进去(用快速导出和导入,要不然会很慢,记得点击保存。)
(五)修改jymain.lua主游戏文件中的代码,这里要修改很多,光修改生命和内存,改的少,修改经验就麻烦。
1.
首先找到function LoadRecord(id)这个函数,然后在他前面新增增加两段代码,我用红色标出来。
    --新增加的对生命最大值支持的两段代码
function SaveLife()
          for i = 0,JY.PersonNum-1 do
                   JY.Person["生命str"] = tostring(JY.Person["生命"])
                   JY.Person["生命最大值str"] = tostring(JY.Person["生命最大值"])
                   JY.Person["内力str"] = tostring(JY.Person["内力"])
                   JY.Person["内力最大值str"] = tostring(JY.Person["内力最大值"])
                   -- 新增:经验
                   JY.Person["经验str"] = tostring(JY.Person["经验"])
          end
end
function LoadLife()
          for i = 0,JY.PersonNum-1 do
                   JY.Person["生命"] = tonumber(JY.Person["生命str"])
                   JY.Person["生命最大值"] = tonumber(JY.Person["生命最大值str"])
                   JY.Person["内力"] = tonumber(JY.Person["内力str"])
                   JY.Person["内力最大值"] = tonumber(JY.Person["内力最大值str"])
                   -- 新增:经验
                   JY.Person["经验"] = tonumber(JY.Person["经验str"])
          end
end
function LoadRecord(id)
local t1 = lib.GetTime()
local data = Byte.create(24)
Byte.loadfile(data, CC.R_IDXFilename[0], 0, 24)
local idx = {}
idx[0] = 0
for i = 1, 6 do
   idx = Byte.get32(data, 4 * (i - 1))
end
JY.Data_Base = Byte.create(idx[1] - idx[0])
Byte.loadfile(JY.Data_Base, CC.R_GRPFilename[id], idx[0], idx[1] -idx[0])
local meta_t = {
   __index = function(t, k)
     return GetDataFromStruct(JY.Data_Base, 0, CC.Base_S, k)
   end,
   __newindex = function(t, k, v)
     SetDataFromStruct(JY.Data_Base, 0, CC.Base_S, k, v)
   end
}
setmetatable(JY.Base, meta_t)
JY.PersonNum = math.floor((idx[2] - idx[1]) / CC.PersonSize)
JY.Data_Person = Byte.create(CC.PersonSize * JY.PersonNum)
Byte.loadfile(JY.Data_Person, CC.R_GRPFilename[id], idx[1],CC.PersonSize * JY.PersonNum)
for i = 0, JY.PersonNum - 1 do
   JY.Person = {}
   local meta_t = {
     __index = function(t, k)
       return GetDataFromStruct(JY.Data_Person, i * CC.PersonSize, CC.Person_S,k)
     end,
     __newindex = function(t, k, v)
       SetDataFromStruct(JY.Data_Person, i * CC.PersonSize, CC.Person_S, k, v)
     end
   }
   setmetatable(JY.Person, meta_t)
end
JY.ThingNum = math.floor((idx[3] - idx[2]) / CC.ThingSize)
JY.Data_Thing = Byte.create(CC.ThingSize * JY.ThingNum)
Byte.loadfile(JY.Data_Thing, CC.R_GRPFilename[id], idx[2], CC.ThingSize* JY.ThingNum)
for i = 0, JY.ThingNum - 1 do
   JY.Thing = {}
   local meta_t = {
     __index = function(t, k)
       return GetDataFromStruct(JY.Data_Thing, i * CC.ThingSize, CC.Thing_S, k)
     end,
     __newindex = function(t, k, v)
       SetDataFromStruct(JY.Data_Thing, i * CC.ThingSize, CC.Thing_S, k, v)
     end
   }
   setmetatable(JY.Thing, meta_t)
end
JY.SceneNum = math.floor((idx[4] - idx[3]) / CC.SceneSize)
JY.Data_Scene = Byte.create(CC.SceneSize * JY.SceneNum)
Byte.loadfile(JY.Data_Scene, CC.R_GRPFilename[id], idx[3], CC.SceneSize* JY.SceneNum)
for i = 0, JY.SceneNum - 1 do
   JY.Scene = {}
   local meta_t = {
     __index = function(t, k)
       return GetDataFromStruct(JY.Data_Scene, i * CC.SceneSize, CC.Scene_S, k)
     end,
     __newindex = function(t, k, v)
       SetDataFromStruct(JY.Data_Scene, i * CC.SceneSize, CC.Scene_S, k, v)
     end
   }
   setmetatable(JY.Scene, meta_t)
end
JY.WugongNum = math.floor((idx[5] - idx[4]) / CC.WugongSize)
JY.Data_Wugong = Byte.create(CC.WugongSize * JY.WugongNum)
Byte.loadfile(JY.Data_Wugong, CC.R_GRPFilename[id], idx[4],CC.WugongSize * JY.WugongNum)
for i = 0, JY.WugongNum - 1 do
   JY.Wugong = {}
   local meta_t = {
     __index = function(t, k)
       return GetDataFromStruct(JY.Data_Wugong, i * CC.WugongSize, CC.Wugong_S,k)
     end,
     __newindex = function(t, k, v)
       SetDataFromStruct(JY.Data_Wugong, i * CC.WugongSize, CC.Wugong_S, k, v)
     end
   }
   setmetatable(JY.Wugong, meta_t)
end
JY.ShopNum = math.floor((idx[6] - idx[5]) / CC.ShopSize)
JY.Data_Shop = Byte.create(CC.ShopSize * JY.ShopNum)
Byte.loadfile(JY.Data_Shop, CC.R_GRPFilename[id], idx[5], CC.ShopSize *JY.ShopNum)
for i = 0, JY.ShopNum - 1 do
   JY.Shop = {}
   local meta_t = {
     __index = function(t, k)
       return GetDataFromStruct(JY.Data_Shop, i * CC.ShopSize, CC.Shop_S, k)
     end,
     __newindex = function(t, k, v)
       SetDataFromStruct(JY.Data_Shop, i * CC.ShopSize, CC.Shop_S, k, v)
     end
   }
   setmetatable(JY.Shop, meta_t)
end
loadglts(id)
lib.LoadSMap(CC.S_Filename[id], CC.TempS_Filename, JY.SceneNum,CC.SWidth, CC.SHeight, CC.D_Filename[id], CC.DNum, 11)
collectgarbage()
JubenBugFix()
lib.Debug(string.format("Loadrecord time=%d", lib.GetTime() -t1))
LoadLife()     --新增加的对生命最大值支持的代码
end
function SaveRecord(id)
SaveLife()      --新增加的对生命最大值支持的代码
         
local t1 = lib.GetTime()
local data = Byte.create(24)
Byte.loadfile(data, CC.R_IDXFilename[0], 0, 24)
local idx = {}
idx[0] = 0
for i = 1, 6 do
   idx = Byte.get32(data, 4 * (i - 1))
end
os.remove(CC.R_GRPFilename[id])
os.remove(CC.S_Filename[id])
os.remove(CC.D_Filename[id])
if JY.Status == GAME_SMAP then
   JY.Base["无用"] = JY.SubScene
else
   JY.Base["无用"] = -1
end
Byte.savefile(JY.Data_Base, CC.R_GRPFilename[id], idx[0], idx[1] -idx[0])
Byte.savefile(JY.Data_Person, CC.R_GRPFilename[id], idx[1],CC.PersonSize * JY.PersonNum)
Byte.savefile(JY.Data_Thing, CC.R_GRPFilename[id], idx[2], CC.ThingSize* JY.ThingNum)
Byte.savefile(JY.Data_Scene, CC.R_GRPFilename[id], idx[3], CC.SceneSize* JY.SceneNum)
Byte.savefile(JY.Data_Wugong, CC.R_GRPFilename[id], idx[4],CC.WugongSize * JY.WugongNum)
Byte.savefile(JY.Data_Shop, CC.R_GRPFilename[id], idx[5], CC.ShopSize *JY.ShopNum)
lib.SaveSMap(CC.S_Filename[id], CC.D_Filename[id])
saveglts(id)
lib.Debug(string.format("SaveRecord time=%d", lib.GetTime() -t1))
end
function filelength(filename)
local inp = io.open(filename, "rb")
local l = inp:seek("end")
inp:close()
return l
end
function GetS(id, x, y, level)
return lib.GetS(id, x, y, level)
end
function SetS(id, x, y, level, v)
lib.SetS(id, x, y, level, v)
end
function GetD(Sceneid, id, i)
return lib.GetD(Sceneid, id, i)
end
function SetD(Sceneid, id, i, v)
lib.SetD(Sceneid, id, i, v)
end
function GetDataFromStruct(data,offset, t_struct, key)
local t = t_struct[key]
local r
if t[2] == 0 then
   r = Byte.get16(data, t[1] + offset)
elseif t[2] == 1 then
   r = Byte.getu16(data, t[1] + offset)
  elseif t[2]==3then                    --新增加的对生命最大值支持的代码
          r=Byte.get32(data,t[1]+offset);    --新增加的对生命最大值支持的代码
         
         
elseif t[2] == 2 then
   if CC.SrcCharSet == 0 then
     r = lib.CharSet(Byte.getstr(data, t[1] + offset, t[3]), 0)
   else
     r = Byte.getstr(data, t[1] + offset, t[3])
   end
end
return r
end
function SetDataFromStruct(data,offset, t_struct, key, v)
local t = t_struct[key]
if t[2] == 0 then
   Byte.set16(data, t[1] + offset, v)
elseif t[2] == 1 then
   Byte.setu16(data, t[1] + offset, v)
  elseif t[2]==3then                    --新增加的对生命最大值支持的代码
          Byte.set32(data,t[1]+offset,v);         --新增加的对生命最大值支持的代码
         
elseif t[2] == 2 then
   local s
   if CC.SrcCharSet == 0 then
     s = lib.CharSet(v, 1)
   else
     s = v
   end
   Byte.setstr(data, t[1] + offset, t[3], s)
end
end
下面这个也要同步调整。  
function CCFZB()
CC.ZCOPEN = 0
CC.JS = 0
if CC.ExpCS > 2 or CC.ExpCS < 1 then
   CC.ExpCS = 1
end
CC.NUMBER = #CC.RUNSTR
for i = 0, 14 do
   for j = 0, 99 do
     if CC.GLTS[j] == nil then
       CC.GLTS[j] = 0
     end
   end
end
if CC.PersonAttribMax["经验"] > 999999999 then
   CC.PersonAttribMax["经验"] =999999999
end
if 32000 < CC.PersonAttribMax["物品修炼点数"] then
   CC.PersonAttribMax["物品修炼点数"] = 32000
end
if 30000 < CC.PersonAttribMax["修炼点数"] then
   CC.PersonAttribMax["修炼点数"] = 30000
end
if CC.PersonAttribMax["生命最大值"] > 999999999 then
   CC.PersonAttribMax["生命最大值"] = 999999999
end
if CC.PersonAttribMax["受伤程度"] > 100 then
   CC.PersonAttribMax["受伤程度"] = 100
end
if 100 < CC.PersonAttribMax["中毒程度"] then
   CC.PersonAttribMax["中毒程度"] = 100
end
if 999999999 <CC.PersonAttribMax["内力最大值"] then
   CC.PersonAttribMax["内力最大值"] = 999999999
end
if 100 < CC.PersonAttribMax["体力"] then
   CC.PersonAttribMax["体力"] = 100
end
if CC.PersonAttribMax["攻击力"] > 5000 then
   CC.PersonAttribMax["攻击力"] = 5000
end
if 5000 < CC.PersonAttribMax["防御力"] then
   CC.PersonAttribMax["防御力"] = 5000
end
if CC.PersonAttribMax["轻功"] > 1000 then
   CC.PersonAttribMax["轻功"] = 999
end
if 1000 < CC.PersonAttribMax["医疗能力"] then
   CC.PersonAttribMax["医疗能力"] = 999
end
if 1000 < CC.PersonAttribMax["用毒能力"] then
   CC.PersonAttribMax["用毒能力"] = 999
end
if 1000 < CC.PersonAttribMax["解毒能力"] then
   CC.PersonAttribMax["解毒能力"] = 999
end
if 1000 < CC.PersonAttribMax["抗毒能力"] then
   CC.PersonAttribMax["抗毒能力"] = 100
end
if CC.PersonAttribMax["拳掌功夫"] > 5000 then
   CC.PersonAttribMax["拳掌功夫"] = 5000
end
if 5000 < CC.PersonAttribMax["御剑能力"] then
   CC.PersonAttribMax["御剑能力"] = 5000
end
if 5000 < CC.PersonAttribMax["耍刀技巧"] then
   CC.PersonAttribMax["耍刀技巧"] = 5000
end
if 5000 < CC.PersonAttribMax["特殊兵器"] then
   CC.PersonAttribMax["特殊兵器"] = 5000
end
if 3000 < CC.PersonAttribMax["暗器技巧"] then
   CC.PersonAttribMax["暗器技巧"] = 5000
end
   if 800 < CC.PersonAttribMax["武学常识"] then
   CC.PersonAttribMax["武学常识"] = 800
          end
if 100 < CC.PersonAttribMax["品德"] then
   CC.PersonAttribMax["品德"] = 100
end
if 100 < CC.PersonAttribMax["资质"] then
   CC.PersonAttribMax["资质"] = 100
end
if 100 < CC.PersonAttribMax["攻击带毒"] then
   CC.PersonAttribMax["攻击带毒"] = 200
end
CC.MAXSX[1] = CC.PersonAttribMax["生命最大值"]
CC.MAXSX[2] = CC.PersonAttribMax["内力最大值"]
CC.MAXSX[3] = CC.PersonAttribMax["攻击力"]
CC.MAXSX[4] = CC.PersonAttribMax["防御力"]
CC.MAXSX[5] = CC.PersonAttribMax["拳掌功夫"]
CC.MAXSX[6] = CC.PersonAttribMax["御剑能力"]
CC.MAXSX[7] = CC.PersonAttribMax["耍刀技巧"]
CC.MAXSX[8] = CC.PersonAttribMax["特殊兵器"]
if CONFIG.Operation == 1 then
   VK_SPACE = VK_RETURN
end
CC.FK = 1
CC.FKUP = 1
CC.RB = 1
for i = 1, #CC.YXND do
   for k = 1, 4 do
     if CC.YXND[k] < 0.5 then
       CC.YXND[k] = 0.5
     elseif 2 < CC.YXND[k] then
       CC.YXND[k] = 2
     end
   end
end
if CC.TeamWarNum > 12 then
   CC.TeamWarNum = 12
elseif 6 > CC.TeamWarNum then
   CC.TeamWarNum = 6
end
for i = 1, 7 do
   if CC.ZZADD > 10 then
     CC.ZZADD = 10
   end
   if 10 < CC.QGADD then
     CC.QGADD = 10
   end
   if 10 < CC.TSZZADD then
     CC.TSZZADD = 10
   end
   if 10 < CC.TSQGADD then
     CC.TSQGADD = 10
   end
   if 20 < CC.UPADD then
     CC.UPADD = 20
   end
   if 20 < CC.TSUPADD then
     CC.TSUPADD = 20
   end
end
if CC.YXNDA == 0 then
elseif CC.YXNDA == 1 then
elseif CC.YXNDA == 2 then
end
if 10 > CC.SXYQ then
   CC.SXYQ = 10
end
if 10 > CC.YXBQZ then
   CC.YXBQZ = 10
end
if 10 < CC.DUDX then
   CC.DUDX = 10
end
CC.MSSX = 100
end
在yjconst里面或者newconst里面对生命、内力最大的设置同步调整。应该是newconst里面调整
                             --人物属性最大值,部份数值修改过大会报错,谨慎修改!
                               CC.PersonAttribMax["经验"]=99999999;
                               CC.PersonAttribMax["物品修炼点数"]=30000;
                               CC.PersonAttribMax["修炼点数"]=30000;
                               CC.PersonAttribMax["生命最大值"]=99999999;
                               CC.PersonAttribMax["受伤程度"]=100;
                               CC.PersonAttribMax["中毒程度"]=100;
                               CC.PersonAttribMax["内力最大值"]=99999999;
                               CC.PersonAttribMax["体力"]=100;
                               CC.PersonAttribMax["攻击力"]=3000;
                               CC.PersonAttribMax["防御力"]=3000;
                               CC.PersonAttribMax["轻功"]=999;
                               CC.PersonAttribMax["医疗能力"]=999;
                               CC.PersonAttribMax["用毒能力"]=400;
                               CC.PersonAttribMax["解毒能力"]=300;
                               CC.PersonAttribMax["抗毒能力"]=100;
                               CC.PersonAttribMax["拳掌功夫"]=3000;
                               CC.PersonAttribMax["御剑能力"]=3000;
                               CC.PersonAttribMax["耍刀技巧"]=3000;
                               CC.PersonAttribMax["特殊兵器"]=3000;
                               CC.PersonAttribMax["暗器技巧"]=2000;
                               CC.PersonAttribMax["武学常识"]=200;
                               CC.PersonAttribMax["品德"]=100;
                               CC.PersonAttribMax["资质"]=100;
                               CC.PersonAttribMax["攻击带毒"]=200;
                               CC.PersonAttribMax["生命丹药"]=3000;
                               CC.PersonAttribMax["内力丹药"]=3000;

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2026-7-8 12:38 | 显示全部楼层
2.找到1万多行的function X50ZL16(id1, id2, id3, id4, id5, id6, id7)和function X50ZL17(id1, id2,id3, id4, id5, id6, id7)这两个函数里面的代码,不知道是干什么玩意用的,看不懂,不过没有关系,按照之前jyconst.lua的人物数值设置和下面标红的那些数值对应上就行。记得两段都要改。
function X50ZL16(id1, id2, id3, id4, id5, id6, id7)
  id2 = id2 % 256
  id2 = id2 % 16
  id2 = id2 % 8
  local strbl, idbl1, idbl2, idbl3
    elseif idbl2 == 28 then
      strbl = "性别"
    elseif idbl2 == 30 then
      strbl = "等级"
    elseif idbl2 == 32 then
      strbl = "经验"
    elseif idbl2 == 36then
      strbl = "生命"
    elseif idbl2 == 40 then
      strbl = "生命最大值"
    elseif idbl2 == 44 then
      strbl = "受伤程度"
    elseif idbl2 == 46 then
      strbl = "中毒程度"
    elseif idbl2 == 48 then
      strbl = "体力"
    elseif idbl2 == 50 then
      strbl = "物品修炼点数"
    elseif idbl2 == 52 then
      strbl = "武器"
    elseif idbl2 == 54 then
      strbl = "防具"
    elseif idbl2 == 86 then
      strbl = "内力性质"
    elseif idbl2 == 88 then
      strbl = "内力"
    elseif idbl2 == 92 then
      strbl = "内力最大值"
    elseif idbl2 == 96 then
      strbl = "攻击力"
    elseif idbl2 == 98 then
      strbl = "轻功"
   elseif idbl2 == 100 then
      strbl = "防御力"
    elseif idbl2 == 102 then
      strbl = "医疗能力"
    elseif idbl2 == 104 then
      strbl = "用毒能力"
    elseif idbl2 == 106 then
      strbl = "解毒能力"
    elseif idbl2 == 108 then
      strbl = "抗毒能力"
    elseif idbl2 == 110 then
      strbl = "拳掌功夫"
    elseif idbl2 == 112 then
      strbl = "御剑能力"
    elseif idbl2 == 114 then
      strbl = "耍刀技巧"
    elseif idbl2 == 116 then
      strbl = "特殊兵器"
    elseif idbl2 == 118 then
      strbl = "暗器技巧"
    elseif idbl2 == 120 then
      strbl = "武学常识"
    elseif idbl2 == 122 then
      strbl = "品德"
    elseif idbl2 == 124 then
      strbl = "攻击带毒"
    elseif idbl2 == 126 then
      strbl = "左右互搏"
    elseif idbl2 == 128 then
      strbl = "声望"
    elseif idbl2 == 130 then
      strbl = "资质"
    elseif idbl2 == 132 then
      strbl = "修炼物品"
    elseif idbl2 == 134 then
      strbl = "修炼点数"
    elseif idbl2 == 136 then
      strbl = "武功1"
    elseif idbl2 == 138 then
      strbl = "武功2"
    elseif idbl2 == 140 then
      strbl = "武功3"
    elseif idbl2 == 142 then
      strbl = "武功4"
    elseif idbl2 == 144 then
      strbl = "武功5"
    elseif idbl2 == 146 then
      strbl = "武功6"
    elseif idbl2 == 148 then
      strbl = "武功7"
    elseif idbl2 == 150 then
      strbl = "武功8"
    elseif idbl2 == 152 then
      strbl = "武功9"
    elseif idbl2 == 154 then
      strbl = "武功10"
    elseif idbl2 == 156 then
      strbl = "武功等级1"
    elseif idbl2 == 158 then
      strbl = "武功等级2"
    elseif idbl2 == 160 then
      strbl = "武功等级3"
    elseif idbl2 == 162 then
      strbl = "武功等级4"
    elseif idbl2 == 164 then
      strbl = "武功等级5"
    elseif idbl2 == 166 then
      strbl = "武功等级6"
    elseif idbl2 == 168 then
      strbl = "武功等级7"
    elseif idbl2 == 170 then
      strbl = "武功等级8"
   elseif idbl2 == 172 then
      strbl = "武功等级9"
    elseif idbl2 == 174 then
      strbl = "武功等级10"
    elseif idbl2 == 176 then
      strbl = "携带物品1"
    elseif idbl2 == 178 then
      strbl = "携带物品2"
    elseif idbl2 == 180 then
      strbl = "携带物品3"
   elseif idbl2 == 182 then
      strbl = "携带物品4"
    elseif idbl2 == 184 then
      strbl = "携带物品数量1"
    elseif idbl2 == 186 then
      strbl = "携带物品数量2"
    elseif idbl2 == 188 then
      strbl = "携带物品数量3"
    elseif idbl2 == 190 then
      strbl = "携带物品数量4"
    elseif idbl2 == 192 then
      strbl = "特殊"        
    end
                  
  elseif id3 == 1 then
    if idbl2 == 0 then
      strbl = "代号"
    elseif idbl2 == 2 then
      strbl = "名称"
    elseif idbl2 == 22 then
      strbl = "名称2"
    elseif idbl2 == 42 then
      strbl = "物品说明"
    elseif idbl2 == 72 then
      strbl = "练出武功"
   
代码太长,中间是删除了
    JY.Wugong[idbl1][strbl] =idbl3
  end
end
function X50ZL17(id1, id2, id3, id4, id5, id6, id7)
  id2 = id2 % 256
  id2 = id2 % 16
  id2 = id2 % 8
  id2 = id2 % 4
  local strbl, idbl1, idbl2
  if id2 == 0 then
    idbl1 = id4
    idbl2 = id5
  elseif id2 == 1 then
    idbl1 = X50[id4]
    idbl2 = id5
  
    elseif idbl2 == 6 then
      strbl = "无用"
    elseif idbl2 == 8 then
      strbl = "姓名"
    elseif idbl2 == 18 then
      strbl = "外号"
    elseif idbl2 == 28 then
      strbl = "性别"
    elseif idbl2 == 30 then
      strbl = "等级"
    elseif idbl2 == 32then
      strbl = "经验"
    elseif idbl2 == 36 then
      strbl = "生命"
    elseif idbl2 == 40 then
      strbl = "生命最大值"
    elseif idbl2 == 44 then
      strbl = "受伤程度"
    elseif idbl2 == 46 then
      strbl = "中毒程度"
    elseif idbl2 == 48 then
      strbl = "体力"
    elseif idbl2 == 50 then
      strbl = "物品修炼点数"
    elseif idbl2 == 52 then
      strbl = "武器"
    elseif idbl2 == 54 then
      strbl = "防具"
    elseif idbl2 == 86 then
      strbl = "内力性质"
    elseif idbl2 == 88 then
      strbl = "内力"
    elseif idbl2 == 92 then
      strbl = "内力最大值"
    elseif idbl2 == 96 then
      strbl = "攻击力"
    elseif idbl2 == 98 then
      strbl = "轻功"
    elseif idbl2 == 100 then
      strbl = "防御力"
    elseif idbl2 == 102 then
      strbl = "医疗能力"
    elseif idbl2 == 104 then
      strbl = "用毒能力"
    elseif idbl2 == 106 then
      strbl = "解毒能力"
    elseif idbl2 == 108 then
      strbl = "抗毒能力"
    elseif idbl2 == 110 then
      strbl = "拳掌功夫"
    elseif idbl2 == 112 then
      strbl = "御剑能力"
    elseif idbl2 == 114 then
      strbl = "耍刀技巧"
    elseif idbl2 == 116 then
      strbl = "特殊兵器"
    elseif idbl2 == 118 then
      strbl = "暗器技巧"
    elseif idbl2 == 120 then
      strbl = "武学常识"
    elseif idbl2 == 122 then
      strbl = "品德"
    elseif idbl2 == 124 then
      strbl = "攻击带毒"
    elseif idbl2 == 126 then
      strbl = "左右互搏"
    elseif idbl2 == 128 then
      strbl = "声望"
    elseif idbl2 == 130 then
      strbl = "资质"
    elseif idbl2 == 132 then
      strbl = "修炼物品"
    elseif idbl2 == 134 then
      strbl = "修炼点数"
    elseif idbl2 == 136 then
      strbl = "武功1"
    elseif idbl2 == 138 then
      strbl = "武功2"
    elseif idbl2 == 140 then
      strbl = "武功3"
    elseif idbl2 == 142 then
      strbl = "武功4"
    elseif idbl2 == 144 then
      strbl = "武功5"
    elseif idbl2 == 146 then
      strbl = "武功6"
    elseif idbl2 == 148 then
      strbl = "武功7"
    elseif idbl2 == 150 then
      strbl = "武功8"
    elseif idbl2 == 152 then
      strbl = "武功9"
    elseif idbl2 == 154 then
      strbl = "武功10"
    elseif idbl2 == 156 then
      strbl = "武功等级1"
    elseif idbl2 == 158 then
      strbl = "武功等级2"
    elseif idbl2 == 160 then
      strbl = "武功等级3"
    elseif idbl2 == 162 then
      strbl = "武功等级4"
    elseif idbl2 == 164 then
      strbl = "武功等级5"
    elseif idbl2 == 166 then
      strbl = "武功等级6"
    elseif idbl2 == 168 then
      strbl = "武功等级7"
    elseif idbl2 == 170 then
      strbl = "武功等级8"
    elseif idbl2 == 172 then
      strbl = "武功等级9"
    elseif idbl2 == 174 then
      strbl = "武功等级10"
    elseif idbl2 == 176 then
      strbl = "携带物品1"
    elseif idbl2 == 178 then
      strbl = "携带物品2"
    elseif idbl2 == 180 then
      strbl = "携带物品3"
    elseif idbl2 == 182 then
      strbl = "携带物品4"
    elseif idbl2 == 184 then
      strbl = "携带物品数量1"
    elseif idbl2 == 186 then
      strbl = "携带物品数量2"
    elseif idbl2 == 188 then
      strbl = "携带物品数量3"
    elseif idbl2 == 190 then
      strbl = "携带物品数量4"
    elseif idbl2 == 192 then
      strbl = "特殊"        
    end
         
  elseif id3 == 1 then
    if idbl2 == 0 then
      strbl = "代号"
    elseif idbl2 == 2 then
      strbl = "名称"
   
    X50[id6] =JY.Scene[idbl1][strbl]
  elseif id3 == 3 then
    X50[id6] =JY.Wugong[idbl1][strbl]
  end
end
到这里就可以进入游戏运行了,生命和内力都可以顺利拓展的999999999了9个9.但是进入游戏开奖战斗动画会出错,不着急,打开upedit。找到事件修改,这里的开局事件是691。


【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2026-7-8 12:39 | 显示全部楼层
这里的赋值也要修改的和jyconst.lua中的人物定义一致才行,要不然也会出错。我用红色标出来。

事件:691

  [14]:场景从明亮渐变为暗淡

  [66]:播放音乐25

  [0]:空指令(清屏)

  [13]:场景重新显示

  [0]:空指令(清屏)

  [19]:主角移动至40-48

  [0]:空指令(清屏)

  [27]:显示主角动画(图1,图2,图3)

  [0]:空指令(清屏)

  [1]:[0徐小俠]:哎我了?去!什么情?啊?是?

  [0]:空指令(清屏)

  [27]:显示主角动画(图1,图2,图3)

  [0]:空指令(清屏)

  [1]:[0徐小俠]:?是哪儿啊?我?得我在改游???!?屁的越渴越吃?,每次都是要存?的?候死机!

  [0]:空指令(清屏)

  [30]:主角走动40-48--46-55

  [0]:空指令(清屏)

  [1]:[0徐小俠]:?次倒是?死机了?尼??是什么鬼地方啊?要是出不去可就完蛋了!

  [0]:空指令(清屏)

  [30]:主角走动46-55--40-48

  [0]:空指令(清屏)

  [1]:[0徐小俠]:救命啊~~~~有人?有啊~~~

  [0]:空指令(清屏)

  [40]:主角站立方向0

  [0]:空指令(清屏)

  [1]:[0徐小俠]:有喘气儿的?有啊?奶奶?腿儿的!有?有人好歹吱一?儿好不啦?

  [0]:空指令(清屏)

  [40]:主角站立方向3

  [0]:空指令(清屏)

  [1]:[60歐陽鋒]:吱~

  [0]:空指令(清屏)

  [1]:[0徐小俠]:?草?啊?是人是鬼?你妹的真TMD吱一?就?气儿了啊?死?了??

  [0]:空指令(清屏)

  [40]:主角站立方向1

  [0]:空指令(清屏)

  [1]:[60歐陽鋒]:小砸!敢?么和我西毒?????的已?很多年?遇??了!

  [0]:空指令(清屏)

  [1]:[62金輪法王]:峰兄,?小子怎么看?那么像?常?代??排我?的那??

  [0]:空指令(清屏)

  [1]:[67裘千仞]:??!就是?小子!

  [0]:空指令(清屏)

  [1]:[51慕容復]:哈哈哈哈,得?全不?工夫啊!

  [0]:空指令(清屏)

  [1]:[18成崑]:各位,今?不比往日,?小?落到我?的手里,我?可要?一?平日里所有的冤屈了!

  [0]:空指令(清屏)

  [40]:主角站立方向2

  [0]:空指令(清屏)

  [1]:[0徐小俠]:?~呵呵。。各位英雄,你?有何冤屈不妨与我??一番啊,大不了我以后?你???好?的?宿如何?冤冤相?何?了啊,不是么?

  [0]:空指令(清屏)

  [1]:[46丁春秋]:桀桀桀桀!小?,到?在?想逞那些口舌之便么?

  [0]:空指令(清屏)

  [1]:[27東方不敗]:自古?云出我?,一入江湖?月催,皇?霸??笑中,不胜人生一?醉,小子,我要你??弟?命!!

  [0]:空指令(清屏)

  [1]:[0徐小俠]:大家?心,?小?平日里作威作福,想必是有?人的本事!

  [0]:空指令(清屏)

  [1]:[97血刀老祖]:想?初?小?各种?排于我等,今天?不能??了他!

  [0]:空指令(清屏)

  [1]:[0徐小俠]:奶奶?熊!老虎不??你?我是病危啊?拼了!

  [0]:空指令(清屏)

  [50]:变量赋值[x101]=0

  [50]:变量赋值[x102]=0

  [50]:变量赋值[x103]=0

  [50]:变量赋值[x104]=0

  [50]:变量赋值[x105]=0

  [50]:变量赋值[x106]=0

  [50]:变量赋值[x107]=0

  [50]:变量赋值[x108]=0

  [50]:变量赋值[x109]=0

  [50]:变量赋值[x110]=0

  [50]:变量赋值[x111]=0

  [50]:变量赋值[x112]=0

  [50]:变量赋值[x113]=0

  [50]:变量赋值[x114]=0

  [50]:变量赋值[x115]=0

  [50]:变量赋值[x116]=0

  [50]:变量赋值[x117]=0

  [50]:变量赋值[x118]=0

  [50]:变量赋值[x119]=0

  [0]:空指令(清屏)

  [50]:读取属性人物[X201]=[0徐小俠]属性偏移40

   [50]:读取属性 人物[X202]=[0徐小俠属性偏移92
   [50]:读取属性 人物[X203]=[0徐小俠属性偏移96
   [50]:读取属性 人物[X204]=[0徐小俠属性偏移98
   [50]:读取属性 人物[X205]=[0徐小俠属性偏移100
   [50]:读取属性 人物[X206]=[0徐小俠属性偏移110
   [50]:读取属性 人物[X207]=[0徐小俠属性偏移112
   [50]:读取属性 人物[X208]=[0徐小俠属性偏移114
   [50]:读取属性 人物[X209]=[0徐小俠属性偏移116
   [50]:读取属性 人物[X210]=[0徐小俠属性偏移36
   [50]:读取属性 人物[X211]=[0徐小俠属性偏移44
   [50]:读取属性 人物[X212]=[0徐小俠属性偏移46
   [50]:读取属性 人物[X213]=[0徐小俠属性偏移88
   [50]:读取属性 人物[X214]=[0徐小俠属性偏移102
   [50]:读取属性 人物[X215]=[0徐小俠属性偏移104
   [50]:读取属性 人物[X216]=[0徐小俠属性偏移106
   [50]:读取属性 人物[X217]=[0徐小俠属性偏移118
   [50]:读取属性 人物[X218]=[0徐小俠属性偏移32
   [50]:读取属性 人物[X219]=[0徐小俠属性偏移30

  [0]:空指令(清屏)

  [50]:四则运算 [X101]=[X101]+[X201]

  [50]:四则运算 [X102]=[X102]+[X202]

  [50]:四则运算 [X103]=[X103]+[X203]

  [50]:四则运算 [X104]=[X104]+[X204]

  [50]:四则运算 [X105]=[X105]+[X205]

  [50]:四则运算 [X106]=[X106]+[X206]

  [50]:四则运算 [X107]=[X107]+[X207]

  [50]:四则运算 [X108]=[X108]+[X208]

  [50]:四则运算 [X109]=[X109]+[X209]

  [50]:四则运算 [X110]=[X110]+[X210]

  [50]:四则运算 [X111]=[X111]+[X211]

  [50]:四则运算 [X112]=[X112]+[X212]

  [50]:四则运算 [X113]=[X113]+[X213]

  [50]:四则运算 [X114]=[X114]+[X214]

  [50]:四则运算 [X115]=[X115]+[X215]

  [50]:四则运算 [X116]=[X116]+[X216]

  [50]:四则运算 [X117]=[X117]+[X217]

  [50]:四则运算 [X118]=[X118]+[X218]

  [50]:四则运算 [X119]=[X119]+[X219]

  [0]:空指令(清屏)

  [0]:空指令(清屏)

  [50]:保存属性人物[0徐小俠]属性偏移100=3000

   [50]:保存属性 人物[0徐小俠属性偏移120=200
   [50]:保存属性 人物[0徐小俠属性偏移110=3000
   [50]:保存属性 人物[0徐小俠属性偏移112=3000
   [50]:保存属性 人物[0徐小俠属性偏移114=3000
   [50]:保存属性 人物[0徐小俠属性偏移116=3000
   [50]:保存属性 人物[0徐小俠属性偏移102=999
   [0]:空指令(清屏)
   [50]:保存属性 人物[0徐小俠属性偏移136=174
   [50]:保存属性 人物[0徐小俠属性偏移156=900
   [50]:保存属性 人物[0徐小俠属性偏移126=1

  [0]:空指令(清屏)

  [45]:[0徐小俠]增加轻功900

  [0]:空指令(清屏)

  [46]:[0徐小俠]增加内力9999

  [0]:空指令(清屏)

  [47]:[0徐小俠]增加武功3000

  [0]:空指令(清屏)

  [48]:[0徐小俠]增加生命9999

  [0]:空指令(清屏)

  [6]:战斗[444開局] 胜则跳转Label0

;Label0

  [1]:[0徐小俠]:啊~~?特么不科?!

  [0]:空指令(清屏)

  [1]:[5張三豐]:奸人敢?!

  [0]:空指令(清屏)

  [1]:[748心魔]:?拳??四手,你?于耗??力,?力而陷入昏迷之中!

  [0]:空指令(清屏)

  [1]:[748心魔]:就在??,一?以武??三丰,少林玄慈?首的?士赶到,??昏迷的你?出了重?.....

  [0]:空指令(清屏)

  [1]:[748心魔]:?了避免你再次遭到??人毒手,大家商??你安?在武林之家,由南?、北丑?位前???照看你??,然而......

  [0]:空指令(清屏)

  [1]:[748心魔]:你由于???重,?一昏迷,就是一十六年,十六年后的一?早上你?于醒?了......

  [0]:空指令(清屏)

  [14]:场景从明亮渐变为暗淡

  [0]:空指令(清屏)

   [50]:保存属性人物[0徐小俠]属性偏移40=[X101]

   [50]:保存属性 人物[0徐小俠属性偏移92=[X102]
   [50]:保存属性 人物[0徐小俠属性偏移96=[X103]
   [50]:保存属性 人物[0徐小俠属性偏移98=[X104]
   [50]:保存属性 人物[0徐小俠属性偏移100=[X105]
   [50]:保存属性 人物[0徐小俠属性偏移110=[X106]
   [50]:保存属性 人物[0徐小俠属性偏移112=[X107]
   [50]:保存属性 人物[0徐小俠属性偏移114=[X108]
   [50]:保存属性 人物[0徐小俠属性偏移116=[X109]
   [50]:保存属性 人物[0徐小俠属性偏移36=[X110]
   [50]:保存属性 人物[0徐小俠属性偏移44=[X111]
   [50]:保存属性 人物[0徐小俠属性偏移46=[X112]
   [50]:保存属性 人物[0徐小俠属性偏移88=[X113]
   [50]:保存属性 人物[0徐小俠属性偏移102=[X114]
   [50]:保存属性 人物[0徐小俠属性偏移104=[X115]
   [50]:保存属性 人物[0徐小俠属性偏移106=[X116]
   [50]:保存属性 人物[0徐小俠属性偏移118=[X117]
   [50]:保存属性 人物[0徐小俠属性偏移32=[X118]
   [50]:保存属性 人物[0徐小俠属性偏移30=[X119]
   [0]:空指令(清屏)
   [50]:保存属性 人物[0徐小俠属性偏移120=0
   [50]:保存属性 人物[0徐小俠属性偏移136=0
   [50]:保存属性 人物[0徐小俠属性偏移156=0
   [50]:保存属性 人物[0徐小俠属性偏移126=0

  [0]:空指令(清屏)

  [66]:播放音乐2

  [3]:修改事件定义:当前场景场景事件编号[0]

  [19]:主角移动至16-31

  [40]:主角站立方向2

  [0]:空指令(清屏)

  [13]:场景重新显示

  [1]:[0徐小俠]:?好?,怎么一下子?到小村了??不是游?里的?景么?我?是昏迷了多久啊!赶快去看看南?在不在!

  [0]:空指令(清屏)

  [30]:主角走动16-31--9-31

  [1]:[255番僧]:年輕人,你來啦。

  [0]:空指令(清屏)

  [1]:[0徐小俠]:哈哈,果然是蒼龍逐日的世界,南賢出場就是這句臺詞!

  [0]:空指令(清屏)

  [1]:[255番僧]:年輕人不要大意,雖然這游戲表面還是蒼龍逐日,但是*作者也用了點心思,變化還是很大的

  [0]:空指令(清屏)

  [1]:[0徐小俠]:好吧,我說賢者啊,咱們接下來快點進入正題吧,這個*世界的主題是什么?

  [0]:空指令(清屏)

  [1]:[255番僧]:年輕人要好好學習,在我介紹這個世界之前,老規矩,*你先把北丑叫過來

  [0]:空指令(清屏)

  [30]:主角走动9-31--13-31

  [30]:主角走动13-31--13-21

  [30]:主角走动13-21--8-21

  [1]:[0徐小俠]:丑叔~

  [0]:空指令(清屏)

  [1]:[256番僧]:呼嚕……

  [0]:空指令(清屏)

  [1]:[0徐小俠]:不要裝睡了,我知道你醒著

  [0]:空指令(清屏)

  [1]:[256番僧]:呼嚕……

  [0]:空指令(清屏)

  [1]:[0徐小俠]:(提高音量)丑——————!!!!!

  [0]:空指令(清屏)

  [1]:[256番僧]:哇哇哇哇哇,叫什么叫你這死小子!

  [0]:空指令(清屏)

  [1]:[0徐小俠]:不對啊,你不是這句臺詞兒啊,丑叔快起來,到了咱們*開作戰會議的時候了

  [0]:空指令(清屏)

  [1]:[256番僧]:這一天終于來了……

  [0]:空指令(清屏)

  [1]:[0徐小俠]:怎么了?突然這么深沉?

  [0]:空指令(清屏)

  [1]:[256番僧]:走,去你房間。

  [0]:空指令(清屏)

  [14]:场景从明亮渐变为暗淡

  [3]:修改事件定义:当前场景场景事件编号[62]

  [3]:修改事件定义:当前场景场景事件编号[4]

  [19]:主角移动至9-31

  [40]:主角站立方向2

  [0]:空指令(清屏)

  [13]:场景重新显示

  [1]:[256番僧]:師兄,今天就讓他去嗎?

  [0]:空指令(清屏)

  [1]:[255番僧]:是的,他到這里剛好十六年了,今天就是命咧铡

  [0]:空指令(清屏)

  [1]:[0徐小俠]:拜托快進入正題,我在這個世界的主要任務是什么,怎*么樣我才能回到原來的世界?

  [0]:空指令(清屏)

  [1]:[255番僧]:年輕人,你好。

  [0]:空指令(清屏)

  [1]:[0徐小俠]:我要撞墻......

  [0]:空指令(清屏)

  [1]:[255番僧]:你知道這是哪里嗎?

  [0]:空指令(清屏)

  [1]:[0徐小俠]:廢話,蒼龍我都玩了十幾遍了!這不就是小村嘛!

  [0]:空指令(清屏)

  [1]:[256番僧]:錯了,這里叫做武林之家

  [0]:空指令(清屏)

  [1]:[0徐小俠]:哇靠,怎么改名了

  [0]:空指令(清屏)

  [1]:[255番僧]:這就是作者的用心之處了,為了這個名字,作者可是殫*精竭慮,茶飯不思,冥思苦想.....

  [0]:空指令(清屏)

  [1]:[0徐小俠]:最后起了這么個破名字還有臉說呢

  [0]:空指令(清屏)

  [1]:[255番僧]:咳咳,接下來咱們真的進入正題了,這個世界是以蒼龍逐*日為原版改造的,你的目的就是收齊十四部天書!

  [0]:空指令(清屏)

  [1]:[0徐小俠]:十四天書?每一個mod都要找十四天書,有沒有點新意啊魂淡.

  [0]:空指令(清屏)

  [1]:[256番僧]:你想現在就變成失蹤人口嗎大俠,得罪作者小心下一個*補丁把你打成廢人啊我說

  [0]:空指令(清屏)

  [1]:[0徐小俠]:好吧好吧,咱們繼續,找齊十四天書之后怎么辦呢

  [0]:空指令(清屏)

  [1]:[255番僧]:找齊十四天書后去華山論劍,然后坐船去海外.......

  [0]:空指令(清屏)

  [1]:[0徐小俠]:在釣魚臺打日本人是吧,猿飛佐助,上杉謙信,織田信*長木村拓哉什么的是吧

  [0]:空指令(清屏)

  [1]:[256番僧]:錯,大錯而特錯。

  [0]:空指令(清屏)

  [1]:[0徐小俠]:咦?那接下來該怎么辦

  [0]:空指令(清屏)

  [1]:[256番僧]:因為作者想做一個原汁原味得金庸群俠傳,所以不用再*打日本人了,你最后要去海外的武神無極殿,挑戰無上武道

  [0]:空指令(清屏)

  [1]:[0徐小俠]:好吧,聽起來還比較新鮮,下一個步驟,給我雙兒,給*我銀兩,給我介紹信

  [0]:空指令(清屏)

  [1]:[255番僧]:你真是個猴急的玩家啊,好吧,還要給你一樣拜師令,*用拜師令你可以拜入一個門派門下,目前只開放了一部*分門派,你去找傳功弟子就行了

  [0]:空指令(清屏)

  [1]:[0徐小俠]:哦,那我就去試試看

  [0]:空指令(清屏)

  [1]:[255番僧]:先給你美女

  [0]:空指令(清屏)

  [14]:场景从明亮渐变为暗淡

  [3]:修改事件定义:当前场景场景事件编号[2]

  [0]:空指令(清屏)

  [13]:场景重新显示

  [1]:[261星宿門人]:公子好,我叫雙兒。

  [0]:空指令(清屏)

  [1]:[0徐小俠]:呵呵……雙兒姑娘……你好……

  [0]:空指令(清屏)

  [1]:[261星宿門人]:今后就由我來照顧公子的起居。

  [0]:空指令(清屏)

  [1]:[255番僧]:剩下的一起給你

  [0]:空指令(清屏)

  [2]:得到物品[182羅盤]1个

  [0]:空指令(清屏)

  [2]:得到物品[174銀兩]400个

  [0]:空指令(清屏)

  [2]:得到物品[234介紹信]1个

  [0]:空指令(清屏)

  [2]:得到物品[465拜師禮]1个

  [0]:空指令(清屏)

  [1]:[255番僧]:少俠,快去尋找天書吧,找齊之后一起來解決武林浩劫啊~

  [0]:空指令(清屏)

  [1]:[0徐小俠]:解決你妹啊......這浩劫就是你們搞出來的吧

  [0]:空指令(清屏)

  [1]:[256番僧]:最后提醒你一句,?然你已?昏迷十六年了,但是?都不敢保?那些邪派高手是不是??得你,所以你要?慎行事,切?!切?!

  [0]:空指令(清屏)

  [14]:场景从明亮渐变为暗淡

  [3]:修改事件定义:当前场景场景事件编号[4]

  [3]:修改事件定义:当前场景场景事件编号[3]

  [3]:修改事件定义:当前场景场景事件编号[61]

  [3]:修改事件定义:当前场景场景事件编号[62]

  [0]:空指令(清屏)

  [13]:场景重新显示

  [-1]:事件结束



到这里,整个生命和内力突破就应该没有问题了,有问题我也没有办法,我也没有学过代码,全都是问AI才弄出来的,前后用了快一年时间,中间一度放弃,幸好给弄出来了。
下面进行经验数值突破的教学,因为经验关联的数据多,麻烦,但是有AI在,我用了两到三天也搞定了。为啥想把经验改大那,是我想把游戏人物的等级调到999级去,哈哈,直接开始。

首先定义经验表,一开始在jyconst里面定义了,但是不行,错误了好多次。最后定义到jymain.lua里面,直接上代码,红色的就是新增的,绿色的是由于不知道是哪里出错,问AI给的读取看游戏到底读的哪里的经验表,不用管它。



【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2026-7-9 01:06 | 显示全部楼层
一般来说将整型扩展到32位即可
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2026-7-9 01:54

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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