通用操作

996M21年前 (2023)发布 5喜导航
135 0 0

解析文本

parsetext

  • 可以直接替换传奇脚本里的标记符,可以获取对应的常量,如果say面板里有很多变量需要取,不想自己挨个取,可以直接调用此方法处理文本
参数 类型 默认 注释
text string 文本内容
object object 玩家对象

获取人物/怪物 相关信息

getbaseinfo

参数 类型 允许空 默认 注释
object object 玩家/怪物 对象
nID int 类型(详见说明)
param3 int 参数3(仅ID=2时,可用)
function main(self)        
    say(self, "您的名字是:"..getbaseinfo(self,1))
end
  • 说明
    nID对应值分别为:
    -1=是否玩家(true:玩家)
    0=是否死亡(true:死亡状态)
    1=角色名 (返回值字符型),当对象为怪物时,param3=0或缺省,返回怪物显示名(即去除了尾部的数字),param=1时返回怪物实际名(怪物表中配置的名字)
    2=角色唯一ID (返回值字符型)= userid
    3=角色当前地图ID (返回值字符型)
    4=角色X坐标
    5=角色Y坐标
    6=角色等级
    7=角色职业 (0-战 1-法 2-道)
    8=角色性别
    9=角色当前HP
    10=角色当前MAXHP
    11=角色当前MP
    12=角色当前MAXMP
    13=角色当前Exp
    14=角色当前MaxExp
    15=角色物防下限
    16=角色物防上限
    17=角色魔防下限
    18=角色魔防上限
    19=角色物攻下限
    20=角色物攻上限
    21=角色魔攻下限
    22=角色魔攻上限
    23=角色道攻下限
    24=角色道攻上限
    25=角色幸运值
    26=角色HP恢复
    27=角色MP恢复
    28=角色中毒恢复
    29=毒物躲避
    30=角色魔法躲避
    31=角色准确
    32=角色敏捷
    33=发型
    34=背包物品数量(仅人物)
    35=队伍成员数量(仅人物)
    36=行会名(仅人物)
    37=是否会长(仅人物)
    38=宠物数量
    39=转生等级(仅人物)
    40=杀怪经验倍数(仅人物)
    41=杀怪经验时间(仅人物)
    42=显示延时TIMERECALL还剩多少秒(仅人物)
    43=人物杀怪爆率倍数(仅人物)
    44=复活时间
    45=地图名MAPTITLE
    46=PK点
    47=是否新人(仅人物)
    48=是否安全区
    49=是否摆摊中(仅人物)
    50=是否交易中(仅人物)
    51=自定义扩展属性,需要提供 参数3:属性ID(cfg_att_score.xls设置:1-91,200~249)
    52=穿人/怪方式 0=恢复/1=穿人/2=穿怪/3=穿人穿怪
    53=登录状态,0:正常,1:断线重连(仅人物)
    54=主人UserId
    55=Idx
    56=颜色(0~255)
    57=最后杀死的怪物Index(仅人物)
    57=爆怪次数(等同之前 MonItems 功能)
    58=时装显示状态(仅人物)
    59=主人对象
    60=是否在工程区域(bool)
    61=是否为离线挂机状态(bool)
    62=获取怪物表自定义常量(25列)
    63=人物背包大小
    64=获取对象当前的身体颜色值
    65=获取对象的回城地图
    67=获取对象的攻击对象
    68=怪物归属对象

设置人物/怪物相关信息

setbaseinfo

参数 类型 默认 注释
object object 玩家/怪物 对象
nID int 类型(详见说明)
value int 属性值
  • 说明
    nID对应值分别为:
    6:设置等级
    7: 职业
    8: 性别
    9: 当前HP
    11: 当前MP
    15=物防下限
    16=物防上限
    17=魔防下限
    18=魔防上限
    19=物攻下限
    20=物攻上限
    21=魔攻下限
    22=魔攻上限
    23=道攻下限
    24=道攻上限
    25=幸运值
    26=HP恢复
    27=MP恢复
    28=中毒恢复
    29=毒物躲避
    30=魔法躲避
    31=准确
    32=敏捷
    33: 发型
    39:转生等级(仅人物)
    40:杀怪经验倍数(仅人物)
    41:杀怪经验时间(仅人物)
    43:人物杀怪爆率倍数(仅人物)
    46:人物PK点(仅人物)
    50=行为方式,只针对宠物,包含多个行为时,求和(1:禁止攻击玩家,2:不可被攻击,4:优先攻击 玩家攻击对象,8:优先攻击 玩家受击对象,16:不可被玩家攻击,允许被怪攻击 )
    51=叛变(仅怪物)
    52=穿人/怪方式 0=恢复/1=穿人/2=穿怪/3=穿人穿怪
    56=颜色(0~255)
    57=爆怪次数(等同之前 MonItems 功能)
    57=设置时装显示状态(仅人物)
    58=设置对象的身体颜色
    67=设置对象的攻击对象,参数3为对象,空,0,为清空目标 (object为玩家时无效)

改变 人/怪物 状态

makeposion

参数 类型 默认 注释
object object 玩家/怪物 对象
type int 类型(0=绿毒 1=红毒 5=麻痹 12=冰冻 13= 蛛网 其他无效)
time int 时间(秒)
value int 威力,只针对绿毒有用
function attackdamage(self, mon)
    makeposion(mon, 0, 10, 10)
end

调用游戏面板

openhyperlink

参数 类型 默认 注释
play object 玩家对象
nId int 面板ID
nState int 0=打开,1=打开面板重复点按钮不会关闭,除非主动点关闭按钮(一般做任务配合新手引导用到),2=关闭当前面板ID

打开仓库面板

openstorage

参数 类型 默认 注释
play object 玩家对象

新解锁仓库格子

changestorage

参数 类型 默认 注释
play object 玩家对象
nCount int 新解锁的格子数

开启自动挂机

startautoattack

参数 类型 默认 注释
play object 玩家对象

播放音乐声音

playsound

参数 类型 默认 注释
play object 玩家对象
index int 播放文件的索引
times int 循环播放次数
flag int 播放模式:
0.播放给自己
1.播放给全服
2.播放给同一地图
4.播放给同屏人物

停止执行

stop

参数 类型 默认 注释
play object 玩家对象
stop可以停止执行相应的操作:
canopenbox, stdmodefunc, updateguildnotice, getexp,triggerchat, magselffunc(合击技能)

案例:
function stdmodefunc10(actor, item)
    if gethumability(actor, 20) = 0 then
        stop(actor)
    else
        changemoney(actor, ConstCfg.money.yb, "+", 10000, "10000元宝", true)
    end

表格转换成字符串

tbl2json


    local js = {"a","b","c"}
    local cjs = tbl2json(js)

字符串转换成表格

json2tbl


    local ajs = json2tbl(cjs)
    for k, v in ipairs(ajs) do
        release_print(k,v)
    end

### cJson库
使用 tbl2json 与 json2tbl代替

 local cjson = require "cjson"
 local sampleJson = '{"age":333}';

function main(self)
    --解析json字符串
    release_print("sampleJson")
    release_print(type(cjson))
    local data = cjson.decode(sampleJson);
    --打印json字符串中的age字段
    release_print(data["age"]);
end

sqlite库

local driver = require('luasql.sqlite3')
function main(self)
    local env = driver.sqlite3()
    local db = env:connect('db.sqlite')
    db:execute[[
      CREATE TABLE generic(
        key varchar(50),
        value varchar(150)
      )
    ]]
    db:execute[[
      INSERT INTO generic VALUES('nome', 'coisa')
    ]]
    local results = db:execute[[
      SELECT * FROM generic
    ]]
    local key,value = results:fetch()
    while key do
      release_print(key ..': '.. value)
      key,value = results:fetch()
    end
    results:close()
    db:close()
    env:close()
end

拉取客户端充值接口

pullpay

参数 类型 默认 注释
player object 玩家对象
money int 金额
type int 充值方式:
1-支付宝,
2-花呗,
微信
flagid int 充值货币ID
比如:你后台配置的flagid为  1:10元宝,对应的ID为2,那么下面的拉起充值填写flagid 必须为2

执行GM命令

gmexecute

参数 类型 默认 注释
player object 玩家对象
GM string GM命令
parma1 string GM命令参数1
parma2 string GM命令参数2
parma3 string GM命令参数3
parma4 string GM命令参数4
parma5 string GM命令参数5
parma6 string GM命令参数6
parma7 string GM命令参数7
parma8 string GM命令参数8
parma9 string GM命令参数9
parma10 string GM命令参数10

播放屏幕特效

screffects

参数 类型 默认 注释
player object 玩家对象
id int 创建的特效编号
effectid int 特效ID
X int 在屏幕上的X坐标
Y int 在屏幕上的Y坐标
speed int 播放速度
times int 播放次数,0-持续播放
type int 播放模式
0-自己
1-所有人

关闭屏幕特效

deleffects

参数 类型 默认 注释
player object 玩家对象
id int 创建的特效编号
type int 播放模式
0-自己
1-所有人

获取常量

getconst

参数 类型 默认 注释
player object 玩家对象
varname int 常量名称,支持带尖括号和不带尖括号
<$Name>或$Name
result string 常量值

添加buff

addbuff

参数 类型 默认 注释
base object 玩家、怪物对象
buffid int buff id,10000以后
time int 时间,对应buff表里维护的单位
OverLap int 叠加层数,默认1
objOwner object 施放者
Abil table 属性表 {[1]=200, [4]=20},属性id=值
result bool 是否添加成功

删除buff

delbuff

参数 类型 默认 注释
base object 玩家、怪物对象
buffid int buff id

是否有buff

hasbuff

参数 类型 默认 注释
base object 玩家、怪物对象
buffid int buff id
result bool 是否有

获取buff信息

getbuffinfo

参数 类型 默认 注释
base object 玩家、怪物对象
buffid int buff id
type int 类型,1:叠加层数 2:剩余时间(单位跟配置一致)
result int 返回值
© 版权声明

暂无评论

暂无评论...