在传奇中,如果想要记录机器码以避免重复领取,可以使用以下脚本实现:
首先,需要在数据库中创建一个表,用于记录每个账号的机器码和已领取的状态。表结构可以如下:
CREATE TABLE MachineCode (
Account VARCHAR(50) NOT NULL,
Code VARCHAR(50) NOT NULL,
IsReceived BOOLEAN NOT NULL,
PRIMARY KEY (Account, Code)
);
Copy
在NPC脚本中,添加以下代码:
— 获取机器码
local MachineCode = GetMachineCode()
— 检查是否已领取
local IsReceived = false
local Account = GetAccountName()
— 查询数据库,检查机器码是否已领取
local stmt = DBQuery(“SELECT IsReceived FROM MachineCode WHERE Account = ? AND Code = ?”, Account, MachineCode)
if stmt ~= false then
local row = DBResultRow(stmt)
if row ~= false then
IsReceived = row.IsReceived
end
DBFree(stmt)
end
— 如果未领取,则进行领取处理
if not IsReceived then
— 执行领取处理
— …
— 更新数据库,记录已领取状态
DBQuery(“UPDATE MachineCode SET IsReceived = 1 WHERE Account = ? AND Code = ?”, Account, MachineCode)
end
Copy
在数据库中,创建一个名为MachineCode的表,并添加以下数据:
INSERT INTO MachineCode (Account, Code, IsReceived) VALUES (‘test’, ‘1234567890123456’, 0)
Copy
在NPC脚本中,将机器码与对应的NPC或任务关联起来,例如:
if MachineCode == “1234567890123456” then
— 执行领取处理
— …
end
Copy
在NPC脚本中,添加以下代码,以在每次登录时更新机器码:
— 更新机器码
SetMachineCode(math.random(1000000000000000, 9999999999999999))
Copy
注意:在使用上述脚本时,需要根据实际情况进行修改,例如修改表名和字段名,以及添加具体的领取处理。