qq11001 发表于 2025-12-12 22:28:04

天龙八部新源端纯64位 武道三(动态库函数)重载函数测试版 V1.5

本帖最后由 qq11001 于 2025-12-29 20:19 编辑

大家好,我是雪舞,很久很久没逛这个网站了,发个自己做的小动态库.

本动态库随缘更新
适用版本: 新源端《武道三背饰头饰》 64位服务端 64位的客户端 专用SO
内容说明:
本动态库主要用于便捷调试与开发测试。
包含功能:


[*]Hook时间到没拉闸之前(目前没找到拉闸点位,无法彻底根除拉闸,这只能临时办法)
[*]LuaFnRefreshScript(sceneId,selfId,002032):用于重载Lua脚本,实现Lua脚本内容的即时生效。
[*]LuaFnReloadDropTables(sceneId,selfId):用于重载爆率,掉落怪物表和掉落包裹表。
[*]LuaFnReloadShopTables(sceneId,selfId):用于重载元宝商店,ShopTable.txt和ShopSceneLimiti.txt。
[*]LuaFnGetAccountName(sceneId,selfId):用于获取角色账号。



插件下载:V0.1~V0.8
1.新增重载函数LuaFnRefreshScript
2.时间Hook为拉闸之前 Login World shm Server均已Hook
3.新增重载爆率表LuaFnReloadDropTables
4.新增重载元宝商店函数LuaFnReloadShopTables
5.新增LuaFnGetAccountName(sceneId,selfId)
6.近战打怪不会自动停止动作的问题
7.新增血量角色属性MDEX结算 测试版 有空再更新其他的属性MDEX结算8.防止卡Lgoin掉Login进程崩溃问题
MDEX全局变量:

--MDEX属性引擎读取位
SYS_MAX_HP            = 200   --血上限
设置方法,设置加角色50000血:SetMissionDataEx(sceneId, selfId, SYS_MAX_HP,50000 )
V0.9 2025-14-15 整合包(下载我即可,包含所有了!)1.修正缺少libmysqlclient.so.21的问题


V1.0 2025-14-171.新增存档服务修改时间V1.1 2025-12-190.单独更新此文件即可,其他文件用原来的
1.修复近战打怪不自动停止功能的问题(先锋稳定性测试)
2.修复血上限结算崩溃


##V1.2 MDEX属性结算 测试版(五程序完整版)1.新增:MDEX结算(血蓝上限/四属性攻击/抗性/减抗/下限)2.穿戴回调前回调/取下装备前回调 和 穿戴完成回调/取下完成回调3.新增函数:LuaFnRefreshEngine( sceneId, selfId ) 刷新引擎结算** 本引擎MDEX结算 + 穿戴卸下回调脚本务必看此教程,否则可能出现故障:**https://waylee.net/thread-3532-1-1.html
V1.5 2025-12-291.毒下限加成错误的问题2.天龙/天山/逍遥打怪没有怒气恢复的问题3.新增LuaFnSetMarkDirtyFlag函数,没有穿戴装备的情况下,强制单独刷新某个属性,而不是全属性结算刷新. 4.没穿戴带血上限的装备时(HP_PERSENT的MDEX加成)无法刷新血上限的问题
启动命令参考:

shm启动命令:

cd /home/tlbb/Server
./shm stop
cd /home/tlbb/Server
./shm start


World启动命令
cd /home/tlbb/Server/
unset LD_PRELOAD
export LD_PRELOAD="/home/tlbb/Server/libNewWorld.so"
./World


Login启动命令
cd /home/tlbb/Server/
unset LD_PRELOAD
export LD_PRELOAD="/home/tlbb/Server/libNewLogin.so"
./Login


Server启动命令
unset LD_PRELOAD
export LD_PRELOAD="/home/tlbb/Server/libNewServer.so"
export ASAN_OPTIONS=halt_on_error=0:abort_on_error=0:log_path='/home/tlbb/Server/assert_core.log'
cd /home/tlbb/Server/
./Server


存档服务启动命令:
cd /home/tlbb/Server
./CenterServershm 加载so的方法,需要修改文件:\home\tlbb\Server\shm:


#start or stop ShareMemory
#!/bin/sh
# Usage: shm start stop clear disp

userage()
    {
      echo "Usage: ./shm start|stop|clear|disp"
    }

    clrsm()
      {
            _sharemem=`ps -A | grep ShareMemory | awk '{print $4}'`
            if test "$_sharemem" == "ShareMemory"; then
                echo "ShareMemory already run, stop it first!"
            else
                ipcs > /tmp/tmp$$
                if test -e /tmp/tmp$$
                then
                  _runflag=0
                  while read _line
                  do
                        if test "$_line" == "" ; then
                            continue
                        fi

                        _run=`echo $_line | grep "Shared Memory Segments"`
                        if test "$_run" != "" ; then
                            _runflag=1
                            continue
                        fi

                        _run=`echo $_line | grep "Semaphore Arrays"`
                        if test "$_run" != "" ; then
                            break
                        fi

                        _tag=`echo $_line | grep "^0x" | awk '{print $5}'`
                        if test "$_tag" == "" ; then
                            continue
                        fi
                        if test "$_tag" == "404" ; then
                            continue
                        fi
                        _tag=`echo $_line | awk '{print $2}'`
                        ./smtool $_tag
                  done < /tmp/tmp$$
                  return 0
                else
                  echo "can't create /tmp/tmp$$, please retry!"
                fi
            fi
            return 1
      }

      start()
            {
                _sharemem=`ps -A | grep ShareMemory | awk '{print $4}'`
                if test "$_sharemem" == "ShareMemory"; then
                  echo "ShareMemory already run, start faild!"
                else
                  echo 1024000000 > /proc/sys/kernel/shmmax
                  unset LD_PRELOAD
                  export LD_PRELOAD="/home/tlbb/Server/libNewShareMemory.so"
                  ./ShareMemory&
                  unset LD_PRELOAD
                  return 0
                fi
                return 1
            }

            stop()
                {
                  _sharemem=`ps -A | grep ShareMemory | awk '{print $1}'`
                  if test "$_sharemem" == ""; then
                        echo "ShareMemory not run, stop ok!"
                        return 0
                  else
                        kill -9 $_sharemem
                        return 0
                  fi
                  return 1
                }

                disp()
                  {
                        _sharemem=`ps -A | grep ShareMemory | awk '{print $4}'`
                        if test "$_sharemem" == "ShareMemory"; then
                            echo "ShareMemory run ok!!"
                            echo ""
                            ipcs
                        else
                            echo "ShareMemory not run!"
                            return 1
                        fi
                        return 0
                  }

                  if test $# != 1
                  then
                        userage
                        exit 1
                  fi

                  case $1 in
                  start)
                        clrsm
                        start
                        if test $? == 0 ; then
                            echo "start ShareMemory ok! pls wait for it run in loop()..."
                        else
                            echo "some error occ when start ShareMemory, please retry!"
                        fi
                  ;;
                  stop)
                        stop
                        if test $? == 0 ; then
                            echo "stop shm ok!"
                        else
                            echo "some error occ when stop shm, please retry!"
                        fi
                  ;;
                  clear)
                        clrsm
                        if test $? == 0 ; then
                            echo "clear shm ok!"
                        else
                            echo "some error occ when clear shm, please retry!"
                        fi
                  ;;
                  disp)
                        disp
                  ;;
                  *)
                        userage
                        exit 1
                  ;;
                  esac


如有问题,请反馈留言在下方:


另外开了一个测试体验群服(随时可能删档 Qun 1075934537 ):

176034095 发表于 2025-12-13 00:04:22

谢谢分享

aa1101 发表于 2025-12-13 00:25:05

66666666膜拜大佬

qq982530549 发表于 2025-12-13 06:50:20

小白膜拜大佬

sundnf55 发表于 2025-12-13 08:45:38

:::

122333000 发表于 2025-12-13 10:15:17

看不懂但是大受震撼

ccsky 发表于 2025-12-13 10:16:06

小白膜拜大佬

176034095 发表于 2025-12-13 11:49:28

牛逼的大佬

liyicheng556 发表于 2025-12-13 11:59:29

多谢分享哦,不错不错

qq982530549 发表于 2025-12-13 14:13:35

大佬能不能分享个这个头饰背饰的源端单机出来玩玩,么么哒

qq11001 发表于 2025-12-14 17:11:35

更新了一个 Login崩溃的问题ky ti

AKA1 发表于 2025-12-14 22:01:15

感觉很厉害的样子,膜拜一下:

_____________嗝 发表于 2025-12-15 10:42:31

感谢大佬的无私奉献

qq11001 发表于 2025-12-15 11:51:52

回复:
为什么启动第一个 shm   提示 # ./ShareMemory: error while loading shared libraries: libmysqlclient.so.21: cannot open shared object file: No such file or directory

答: 以前研究mysql的函数的时候调用,后面取消了,现在V0.8已经取消这个文件支持.不会再报错了.

qq11001 发表于 2025-12-15 12:26:46

完整的run.sh启动命令

ulimit -n 65535
if ps aux | grep -i "./ShareMemory" | grep -v grep > /dev/null 2>&1;then
        echo " ShareMemoryis running !!!!!!"
else
        ###### start ShareMemory ######
        cd /home/tlbb/Server/
        ./shm clear > /dev/null 2>&1
        rm -rf exit.cmd quitserver.cmd
        ./shm start > /dev/null 2>&1
        echo " start ShareMemory ......"
        sleep 5
        echo " ShareMemory started completely !!!!!!"

        ###### start World ######
        cd /home/tlbb/Server/
        unset LD_PRELOAD
        export LD_PRELOAD="/home/tlbb/Server/libNewWorld.so"
        ./World > /dev/null 2>&1 &
        world_pid=$!# 保存进程ID
        unset LD_PRELOAD
        echo " start World ......"
        sleep 10
        if ps -p $world_pid >/dev/null; then
                echo " World started completely !!!!!! (PID: $world_pid)"
        else
                echo " World started fail !!!!!!"
        fi
       
        ###### start Server ######
        unset LD_PRELOAD
        export LD_PRELOAD="/home/tlbb/Server/libNewServer.so"
        ##内存异常捕获配置 -loadscriptonce
        export ASAN_OPTIONS=halt_on_error=0:abort_on_error=0:log_path='/home/tlbb/Server/assert_core.log'
        # 是否热更新 -loadscriptonce
        cd /home/tlbb/Server/
        ./Server -loadscriptonce > /dev/null 2>&1 &
        server_pid=$!
        echo " start Server ......"
        unset LD_PRELOAD
        sleep 15
        if ps -p $server_pid >/dev/null; then
                echo " Server started completely !!!!!! (PID: $server_pid)"
        else
                echo " Server started fail !!!!!!"
        fi

        ###### start Login ######
        unset LD_PRELOAD
        export LD_PRELOAD="/home/tlbb/Server/libNewLogin.so"
        ./Login > /dev/null 2>&1 &
        login_pid=$!
        unset LD_PRELOAD
        echo " start Login ......"
        sleep 1
        if ps -p $login_pid >/dev/null; then
                echo " Login started completely !!!!!! (PID: $login_pid)"
        else
                echo " Login started fail !!!!!!"
        fi

        exit
fi


你看这是啥 发表于 2025-12-15 16:12:38

感谢大佬

dj7930382 发表于 2025-12-15 18:26:08

这个可以下载了自己玩单机吗

6356001 发表于 2025-12-15 20:08:39

可以发一下服务端和客户端嘛

oming 发表于 2025-12-16 09:59:54

这里也能碰到舞老板

userado 发表于 2025-12-16 15:27:57

感谢雪舞大佬分享
页: [1] 2
查看完整版本: 天龙八部新源端纯64位 武道三(动态库函数)重载函数测试版 V1.5

本站内容如若侵犯到您的权益,请来电来函告知,我们会尽快处理!
联系QQ:1953150286,2251387361,123784736,免责申明