SendCode(CharIndex,OutTime,OutTimeCallModuleBack,CodeCallModuleBack)
注意 请在gp_config.cf里面Captcha改成2才可以使用此函数,此函数应用data目录下的Revise.txt
函数功能:
给指定对象发送验证码进行验证
操作参数:
参数名 | 是否必须 | 类型 | 说明 |
---|---|---|---|
CharIndex | 是 | int | 角色对象索引 |
OutTime | 是 | int | 超时时间设定(秒的计算方式) |
OutTimeCallModuleBack | 是 | Module | 超时调用的函数(注意只触发一次) |
CodeCallModuleBack | 是 | Module | 接收到的验证码(注意只触发一次)超时将不会进入此函数 |
返回值:
返回值类型 | 成功 | 失败 |
---|---|---|
int | 1 | 0 |
- 超时调用流程 OutTimeCallModuleBack->CodeCallModuleBack
- 错误、正确、未超时 直接调用CodeCallModuleBack
OutTimeCallModuleBack函数
参数名 | 是否必须 | 类型 | 说明 |
---|---|---|---|
CharIndex | 是 | int | 角色对象索引 |
OutTime | 是 | int | 超时时间 |
CodeCallModuleBack函数
参数名 | 是否必须 | 类型 | 说明 |
---|---|---|---|
CharIndex | 是 | int | 角色对象索引 |
IICorrect | 是 | bool | 是否正确 |
简单说明下,此功能已经完全封装好的,人物注销或者掉线,都会自动清空。所以如需登录后继续验证,请自行用处理
操作实例:
local CharValidationState = {};
--如果超时了会先调用OutTimeCallModuleBack->CodeCallModuleBack
function OutTimeCallModuleBack(CharIndex,OutTime)
CharValidationState[CharIndex] = OutTime;
--[[ 立即发送超时消息(避免延迟)
local msg = string.format("[验证码] 回答超时,请在指定的%d秒内回答", OutTime)
NLG.SystemMessage(CharIndex, msg)
这里根据需求自己定义,但是如若超时,验证码窗口是不会关闭的。因为在弹出窗口的时候鼠标只能移动无法点击--]]
return;
end
--如果没超时默认CodeCallModuleBack
function CodeCallModuleBack(CharIndex,IICorrect)
if CharValidationState[CharIndex] ~= nil then
local CommadString = string.format("[验证码] 回答超时,请在指定的%d秒内回答",CharValidationState[CharIndex]);
NLG.SystemMessage( CharIndex, CommadString);
return;
end
if IICorrect then
NLG.SystemMessage( CharIndex, "回答正确");
else
NLG.SystemMessage( CharIndex, "回答错误");
end
CharValidationState[CharIndex] = nil;--释放掉
end
Char.SendCode(CharIndex,10,"OutTimeCallModuleBack","CodeCallModuleBack");
备注:
- 更多返回错误代码请看首页的错误代码描述
文档更新时间: 2025-08-07 18:27 作者:105493660