夜游神 发表于 2023-7-21 03:59:46

传奇3SQL处理脚本教程

传奇3SQL处理脚本教程


基础知识: A0-A9 为字符型变量,可保存数字但不能直接用于inc dec运算

       %A0-%A9 为变量的值
       D0-D9 为数字型变量,可直接用于inc dec运算
       %D0-%D9 为变量的值
      字符型变量还有 B0-B9
      数字型变量还有 P0-P9 N0-N9 S0-S9
      %USERID为当前执行脚本的角色ID
      %USERNAME为当前执行脚本的角色名

   FormatStr "FLD_USERID='%s'" %USERID
   ;这里相当于把%USERID送进字符串,结果是字符串,保存在A9
   ReadValueSql "TBL_RELATPOINT" %A9 "FLD_USERID,FLD_POINT,FLD_OK" [@段]
   ;%A9 指的是上面的Formatstr语句执行结果 这里 %A9 为SQL执行语句的条件
   ;上面用MSSQL解释为:SELECT FLD_USERID,FLD_POINT,FLD_OK WHERE FLD_USERID='%USERID'

   FormatStr "FLD_USERID='%s'" %USERID
   ;这里相当于把%USERID送进字符串,结果是字符串,保存在A9
   mov    A0  %A9
   ;把上面赋值的字符串%A9赋值进A0
   UpdateValueSql "TBL_RELATPOINT" %A0 "FLD_OK=0"
            ;表名    条件 改变语句
   ;上面用MSSQL解释为: UPDATE TBL_RELATPOINT SET FLD_OK=0 WHERE FLD_USERID='%USERID'

   FormatStr "FLD_USERID='%s'" %USERID
   ;这里相当于把%USERID送进字符串,结果是字符串,保存在A9
   mov  A6    %A9
   ;把上面赋值的字符串%A9赋值进A6
   mov  D8    0
   :D8赋值为0
   FormatStr "FLD_POINT='%s'" %D8    ---------------------------(程序A)
   ;这里相当于把%D8送进字符串,结果是字符串,保存在A9
   UpdateValueSql "TBL_RELATPOINT" %A6 %A9
            ;表名    条件 改变语句
   ;这里的%A9为 "FLD_POINT=0" 即(程序A)运行所保存的结果A9    --改变语句
   ;这里的%A6为 "FLD_USERID='%USERID'"              --条件

   mov A1  %USERNAME
   ;取当前执行脚本的角色名,保存在A1  ,假设A1='张三'
   mov D0  1
   ;相当D0=1
   FormatStr "FLD_CHARACTER='%s' AND FLD_TYPE='%s'" %A1 %D0
   ;运行后字符串为  FLD_CHARACTER='张三' AND FLD_TYPE='1'
   ;不用说他的功能了吧,当然可以把条件改成两个AND,三个AND,的多重条件

Chinese.Doll 发表于 2024-1-13 12:08:18

积分任务
页: [1]
查看完整版本: 传奇3SQL处理脚本教程