|
Global_Reg.RegInit("Pay_Init");
Global_Reg.RegTalkEvent("DiyPayTalkEvent");
--------------------------------------------设置-----------------------------------
-- 【【【基础NPC设置】】】
------------------------------------------------------------------------------
local NpcName = "代金卡提取" --Npc名称(同时也是脚本名称)
local NpcMapPos = {0, 1000, 244, 92} --Npc地图坐标
local NpcImage = 14205 --Npc图档104561
local NpcDir = 6 --Npc方向(0为左上,顺时针转)
-- 【【【其他设置】】】
local PayItemID = 661011; --给予物品的ID'物品最好设置可叠加,对比率是1:1
--------------------是否允许聊天窗口输入特定字符呼出对话框
local IsDiy = {"1","MakeLove"};--0为关闭该功能--1为开启,内容为喊话时候的特定语句
--------------------是否充值到商城
local Shop_On = 0 --0为给道具,1为充值到商城点数
-----------------------充值返利
local _isRate = 1;--充值返利开关,若设置成0,即无返利
local _jkRate = {
{2000,0.2},
{1000,0.15},
{500,0.1},
{100,0.05}
}
--返利格式:默认按满100以上返5%,满500以上返10%,满1000以上返15%,满2000以上返20%
--修改格式,比如上面的{100,0.05},意思就是满100元返0.05,即5%,可以无限制添加,必须从大到小排列
--------------------------------------------结束--------------------------------------
local liushuinpc;
function DiyPayTalkEvent( _PlayerIndex, _msg, _color, _range, _size)
if(IsDiy[1] =="1" and _msg == "P|"..IsDiy[2])then
PayChangerTalked(liushuinpc,_PlayerIndex);
return -1;
end
end
function DBinit()
return true;
end
function Pay_Init()
liushuinpc = NL.CreateNpc(nil, "DBinit");
Char.SetData(liushuinpc,%对象_形象%,tonumber(NpcImage));
Char.SetData(liushuinpc,%对象_原形%,tonumber(NpcImage));
Char.SetData(liushuinpc,%对象_X%,tonumber(NpcMapPos[3]));--22
Char.SetData(liushuinpc,%对象_Y%,tonumber(NpcMapPos[4]));--4
Char.SetData(liushuinpc,%对象_地图%,tonumber(NpcMapPos[2]));--1548
Char.SetData(liushuinpc,%对象_地图类型%,tonumber(NpcMapPos[1]));--1548
Char.SetData(liushuinpc,%对象_方向%,tonumber(NpcDir));
Char.SetData(liushuinpc,%对象_原名%,NpcName);
NLG.UpChar(liushuinpc);
InstallNpc("liushuinpc",liushuinpc);
Char.SetWindowTalkedEvent(nil,"PayChangerWTalked",liushuinpc);
Char.SetTalkedEvent(nil,"PayChangerTalked", liushuinpc);
end
function PayChangerTalked(_MeIndex,_PlayerIndex)
local str_caller = "5\n ◆领取点券◆" ..
"\n\n 您好,欢迎使用支付宝充值领取系统,请选择需要的服务!" ..
"\n" ..
"\n" ..
"\n 领取点数" ..
"\n 查询累积充值" ..
"\n";
NLG.ShowWindowTalked(_PlayerIndex,%窗口_选择框%,%按钮_关闭%,1,str_caller,_MeIndex);
--
return;
end
function PayChangerWTalked(_MeIndex,_PlayerIndex,_seqno,_select,_data)
if(_select == 2)then
return;
end
if(_data == "" or _data == nil)then
NLG.ShowWindowTalked(_PlayerIndex,%窗口_信息框%,%按钮_确定%,0,"\\n\\n您的流水号并未输入",-1);
return;
end
local Cdkey = Char.GetData(_PlayerIndex, %对象_账号%);
if(_seqno == 1 and _select ==0 and tonumber(_data) == 2)then
NLG.ShowWindowTalked(_PlayerIndex,%窗口_输入框%,3,100,"\\n\\n您好,欢迎使用支付宝领取系统,请输入您支付宝流水号的后6位数字或者全部流水号!",_MeIndex);
end
if(_seqno == 1 and _select ==0 and tonumber(_data) == 3)then
local query = "SELECT sum(`count`) FROM `tbl_alipay` WHERE `cdkey`='"..Cdkey.."'";
local mysql = SQL.Run(query);
local NumMax = 0;
local LjGold = mysql["0_0"] or 0
NLG.ShowWindowTalked(_PlayerIndex,%窗口_信息框%,%按钮_确定%,0,"\\n\\n您好,您的充值累积为:"..LjGold,-1);
end
if(_seqno == 100 and _select ==1)then
if(Char.ItemSlot(_PlayerIndex) == 20)then
NLG.ShowWindowTalked(_PlayerIndex,%窗口_信息框%,%按钮_确定%,0,"为了避免您领取失败,请先空出道具栏一个位置以上的空格。",-1);
return;
end
-- or
if(tonumber(_data) == nil or tonumber(_data) <= 0)then
NLG.ShowWindowTalked(_PlayerIndex,%窗口_信息框%,%按钮_确定%,0,"您输入的流水号错误!",-1);
return;
end
local query;
local Type = -1;
if(string.len(_data) == 6)then
Type = 0;
query = "SELECT count,ischange FROM `tbl_alipay` WHERE `autoid2`='".._data.."'"
else
Type = 1;
query = "SELECT count,ischange FROM `tbl_alipay` WHERE `autoid`='".._data.."'"
end
if(Type == -1)then
return;
end
local mysql = SQL.Run(query);
if(type(mysql)~="table")then
NLG.ShowWindowTalked(_PlayerIndex,%窗口_信息框%,%按钮_确定%,0,"\\n\\n流水号不存在",-1);
return;
end
local Gold = tonumber(mysql["0_0"]);
local ischange = tonumber(mysql["0_1"]);
if(tonumber(Gold) <= 0)then
NLG.ShowWindowTalked(_PlayerIndex,%窗口_信息框%,%按钮_确定%,0,"\\n\\n流水号不存在",-1);
return;
end
if(tonumber(ischange)~=0)then
NLG.ShowWindowTalked(_PlayerIndex,%窗口_信息框%,%按钮_确定%,0,"\\n\\n此流水号已经被领取",-1);
return;
end
local query2;
if(Type == 0)then
query2 = "UPDATE `tbl_alipay` SET ischange= '1',cdkey = '"..Cdkey.."' WHERE `autoid2`='".._data.."'";
else
query2 = "UPDATE `tbl_alipay` SET ischange= '1',cdkey = '"..Cdkey.."' WHERE `autoid`='".._data.."'";
end
local _money = Gold;
if _isRate == 1 then
_money = math.floor(Gold);
local _isCheck = 0;
for i=1,#_jkRate do
local _rate = _jkRate;
if _money >= tonumber(_rate[1]) and _isCheck == 0 then
_money = _money + math.floor(_money*_rate[2]);
_isCheck = 1;
end
end
end
Gold = _money;
if(SQL.Run(query2)==0)then
if Shop_On == 0 then
NLG.GiveItem(_PlayerIndex,PayItemID,Gold);
end
if Shop_On == 1 then
local p1 = SqlCard(_PlayerIndex) or -1
if p1==-1 then
p1 = 0
end
UpSqlCard(_PlayerIndex,tonumber(p1+Gold),0)
end
NLG.SystemMessage(_PlayerIndex,"[成功]您充值数量为["..Gold.."]已经到账!");
end
end
end
|
|