📄 uconnector.pas
字号:
uid, upass, uname, unativenumber, umasterkey : String;
uEmail, uPhone, uParentName, uParentNativeNumber : String;
ucharname, uvillage, uservername : String;
pd : PTVillageData;
begin
Result := true;
msg := @aComData^.Data;
case msg^ of
CM_VERSION :
begin
if FGameStatus <> gs_none then exit;
pcVer := @aComData^.Data;
if (pcVer^.rNation <> NATION_VERSION) or (pcVer^.rVer < PROGRAM_VERSION) then begin
sKey.rmsg := SM_CLOSE;
sKey.rkey := 1;
AddSendData (@sKey, SizeOf(skey));
end else begin
VerNo := pcVer^.rVer;
FClientWindow := cw_login;
SendStatusMessage (MESSAGE_LOGIN, '楷搬登菌嚼聪促');
end;
end;
CM_CHANGEPASSWORD :
begin
if (FGameStatus <> gs_none) or (FGameStatus = gs_changepass) then exit;
Case PaidType of
pt_none : begin
SendStatusMessage (MESSAGE_SELCHAR, '蜡历沥焊甫 掘绊 乐嚼聪促. 泪矫 扁促妨 林技夸');
exit;
end;
pt_invalidate : begin
SendStatusMessage (MESSAGE_SELCHAR, '公丰 荤侩磊绰 官曹 荐 绝嚼聪促');
exit;
end;
end;
FGameStatus := gs_changepass;
pcChangePassword := @aComData^.Data;
pcChangePassword^.rNewPass [NAME_SIZE - 1] := 0;
upass := Trim (StrPas (@pcChangePassword^.rNewPass));
if (upass = '') or (Pos (',', upass) > 0) or (Length (upass) > 10) then begin
FGameStatus := gs_none;
SendStatusMessage (MESSAGE_SELCHAR, '货厚剐锅龋啊 肋给 涝仿登菌嚼聪促');
exit;
end;
Move (LoginData, LGRecord, SizeOf (TLGRecord));
LGRecord.Password := uPass;
// StrPCopy (@LGRecord.Password, upass);
if LoginSender <> nil then begin
LoginSender.PutPacket (ConnectID, LG_UPDATE, 0, @LGRecord, SizeOf (TLGRecord));
end;
end;
CM_CREATEIDPASS :
begin
exit;
{
if (FGameStatus <> gs_none) or (FGameStatus = gs_createlogin) then exit;
FGameStatus := gs_createlogin;
}
end;
CM_CREATEIDPASS2 :
begin
exit;
{
if (FGameStatus <> gs_none) or (FGameStatus = gs_createlogin) then exit;
pcCreateIdPass2 := @aComData^.Data;
pcCreateIdPass2^.rID [NAME_SIZE - 1] := 0;
pcCreateIdPass2^.rPass [NAME_SIZE - 1] := 0;
pcCreateIdPass2^.rName [NAME_SIZE - 1] := 0;
pcCreateIdPass2^.rNativeNumber [NAME_SIZE - 1] := 0;
pcCreateIdPass2^.rMasterKey [NAME_SIZE - 1] := 0;
uid := Trim (StrPas (@pcCreateIdPass2.rID));
upass := Trim (StrPas (@pcCreateIdPass2.rPass));
uname := Trim (StrPas (@pcCreateIdPass2.rName));
unativenumber := Trim (StrPas (@pcCreateIdPass2.rNativeNumber));
umasterkey := Trim (StrPas (@pcCreateIdPass2.rMasterKey));
if (uid = '') or (Pos (',', uid) > 0) or (not isFullHangul (uid)) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '立加捞抚捞 肋给 涝仿登菌嚼聪促');
exit;
end;
if (upass = '') or (Pos (',', upass) > 0) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '厚剐锅龋啊 肋给涝仿登菌嚼聪促');
exit;
end;
if (uname = '') or (Pos (',', uname) > 0) or (not isFullHangul (uname)) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '夯牢捞抚捞 肋给涝仿登菌嚼聪促');
exit;
end;
if (uNativeNumber = '') or (Pos (',', uNativeNumber) > 0) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '积斥岿老捞 肋给涝仿登菌嚼聪促');
exit;
end;
if (uMasterKey = '') or (Pos (',', uMasterKey) > 0) or (not isFullHangul (uMasterKey)) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '傈拳锅龋啊 肋给涝仿登菌嚼聪促');
exit;
end;
FGameStatus := gs_createlogin;
FillChar (LGRecord, SizeOf (TLGRecord), 0);
StrPCopy (@LGRecord.PrimaryKey, uid);
StrPCopy (@LGRecord.Password, upass);
StrPCopy (@LGRecord.UserName, uname);
StrPCopy (@LGRecord.IpAddr, IpAddr);
StrPCopy (@LGRecord.MakeDate, DateToStr (Date));
StrPCopy (@LGRecord.NativeNumber, unativenumber);
StrPCopy (@LGRecord.MasterKey, umasterkey);
if LoginSender <> nil then begin
LoginSender.PutPacket (ConnectID, LG_INSERT, 0, @LGRecord, SizeOf (TLGRecord));
end;
}
end;
CM_CREATEIDPASS3 :
begin
if (FGameStatus <> gs_none) or (FGameStatus = gs_createlogin) then exit;
pcCreateIdPass3 := @aComData^.Data;
uId := Trim (pcCreateIdPass3^.rID);
uPass := Trim (pcCreateIdPass3^.rPass);
uName := Trim (pcCreateIdPass3^.rName);
uNativeNumber := Trim (pcCreateIdPass3^.rNativeNumber);
uMasterKey := Trim (pcCreateIdPass3^.rMasterKey);
uEmail := Trim (pcCreateIdPass3^.rEmail);
uPhone := Trim (pcCreateIdPass3^.rPhone);
uParentName := Trim (pcCreateIdPass3^.rParentName);
uParentNativeNumber := Trim (pcCreateIdPass3^.rParentNativeNumber);
if (uId = '') or (Pos (',', uId) > 0) or (not isFullHangul (uId)) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '立加捞抚捞 肋给 涝仿登菌嚼聪促');
exit;
end;
if (uPass = '') or (Pos (',', uPass) > 0) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '厚剐锅龋啊 肋给涝仿登菌嚼聪促');
exit;
end;
if (uName = '') or (Pos (',', uName) > 0) or (not isFullHangul (uName)) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '夯牢捞抚捞 肋给涝仿登菌嚼聪促');
exit;
end;
if (uNativeNumber = '') or (Pos (',', uNativeNumber) > 0) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '积斥岿老捞 肋给涝仿登菌嚼聪促');
exit;
end;
if (uMasterKey = '') or (Pos (',', uMasterKey) > 0) or (not isFullHangul (uMasterKey)) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '凯艰窜绢啊 肋给涝仿登菌嚼聪促');
exit;
end;
if (uEmail = '') or (Pos (',', uEmail) > 0) or (not isFullHangul (uEmail)) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, 'e-mail捞 肋给涝仿登菌嚼聪促');
exit;
end;
if (uPhone = '') or (Pos (',', uPhone) > 0) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '傈拳锅龋啊 肋给涝仿登菌嚼聪促');
exit;
end;
if uParentNativeNumber <> '-' then begin
if (uParentName = '') or (Pos (',', uParentName) > 0) or (not isFullHangul (uParentName)) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '何葛丛捞抚捞 肋给涝仿登菌嚼聪促');
exit;
end;
if (uParentNativeNumber = '') or (Pos (',', uParentNativeNumber) > 0) then begin
SendStatusMessage (MESSAGE_CREATELOGIN, '何葛丛 林刮殿废锅龋啊 肋给涝仿登菌嚼聪促');
exit;
end;
end;
FGameStatus := gs_createlogin;
FillChar (LGRecord, SizeOf (TLGRecord), 0);
LGRecord.PrimaryKey := uId;
LGRecord.PassWord := uPass;
LGRecord.UserName := uName;
LGRecord.NativeNumber := uNativeNumber;
LGRecord.MasterKey := uMasterKey;
LGRecord.Email := uEmail;
LGRecord.Phone := uPhone;
LGRecord.ParentName := uParentName;
LGRecord.ParentNativeNumber := uParentNativeNumber;
LGRecord.IpAddr := IpAddr;
LGRecord.MakeDate := DateToStr (Date);
if LoginSender <> nil then begin
LoginSender.PutPacket (ConnectID, LG_INSERT, 0, @LGRecord, SizeOf (TLGRecord));
end;
end;
CM_IDPASS :
begin
if (FGameStatus <> gs_none) or (FGameStatus = gs_login) then exit;
if frmMain.sckLoginConnect.Socket.Connected = false then begin
SendStatusMessage (MESSAGE_LOGIN, '了价钦聪促. 泪矫饶 促矫 楷搬秦 林技夸');
exit;
end;
FGameStatus := gs_login;
if boCheckPaidInfo = false then begin
PaidType := pt_validate;
Code := 0;
end;
pcIdPass := @aComData^.data;
pcIdPass^.rID [NAME_SIZE - 1] := 0;
pcIdPass^.rPass [NAME_SIZE - 1] := 0;
LoginID := Trim (StrPas (@pcIdPass^.rID));
LoginPW := Trim (StrPas (@pcIdPass^.rPass));
if (LoginID = '') or (LoginPW = '') then begin
LoginID := '';
LoginPW := '';
FGameStatus := gs_none;
SendStatusMessage (MESSAGE_LOGIN, '沥犬洒 涝仿秦 林技夸');
exit;
end;
if (LimitUserCount > 0) and (LimitUserCount <= ConnectorList.PlayingUserCount) then begin
if IpAddr <> '203.227.29.65' then begin
if (LoginID <> 'ypinetree') and (LoginID <> 'pinetree') then begin
FGameStatus := gs_none;
LoginID := '';
LoginPW := '';
SendStatusMessage (MESSAGE_LOGIN, '立加牢盔捞 檬苞登菌嚼聪促');
exit;
end;
end;
end;
FillChar (LGRecord, SizeOf (TLGRecord), 0);
// StrPCopy (@LGRecord.PrimaryKey, LoginID);
LGRecord.PrimaryKey := LoginID;
if LoginSender <> nil then begin
LoginSender.PutPacket (ConnectID, LG_SELECT, 0, @LGRecord.PrimaryKey, SizeOf (LGRecord.PrimaryKey));
end;
end;
CM_IDPASSAZACOM :
begin
if (FGameStatus <> gs_none) or (FGameStatus = gs_login) then exit;
if frmMain.sckLoginConnect.Socket.Connected = false then begin
SendStatusMessage (MESSAGE_LOGIN, '了价钦聪促. 泪矫饶 促矫 楷搬秦 林技夸');
exit;
end;
FGameStatus := gs_login;
PaidType := pt_timepay;
pcIdPass := @aComData^.data;
pcIdPass^.rID [NAME_SIZE - 1] := 0;
pcIdPass^.rPass [NAME_SIZE - 1] := 0;
LoginID := Trim (StrPas (@pcIdPass^.rID));
LoginPW := Trim (StrPas (@pcIdPass^.rPass));
FillChar (LGRecord, SizeOf (TLGRecord), 0);
// StrPCopy (@LGRecord.PrimaryKey, LoginID);
LGRecord.PrimaryKey := LoginID;
if LoginSender <> nil then begin
LoginSender.PutPacket (ConnectID, LG_SELECT, 0, @LGRecord.PrimaryKey, SizeOf (LGRecord.PrimaryKey));
end;
end;
CM_CREATECHAR :
begin
if (FGameStatus <> gs_none) or (FGameStatus = gs_createchar) then exit;
{
if (LimitUserCount > 0) and (ServerName = '角氰') then begin
SendStatusMessage (MESSAGE_SELCHAR, '角氰辑滚俊 歹 捞惑 某腐磐甫 父甸 荐 绝嚼聪促');
exit;
end;
}
Case PaidType of
pt_none : begin
SendStatusMessage (MESSAGE_SELCHAR, '蜡历沥焊甫 掘绊 乐嚼聪促. 泪矫 扁促妨 林技夸');
exit;
end;
pt_invalidate : begin
SendStatusMessage (MESSAGE_SELCHAR, '公丰 荤侩磊绰 父甸 荐 绝嚼聪促.');
exit;
end;
end;
FGameStatus := gs_createchar;
boFlag := false;
for i := 0 to 5 - 1 do begin
// if LoginData.CharInfo[i].CharName[0] = 0 then begin
if LoginData.CharInfo[i].CharName = '' then begin
boFlag := true;
break;
end;
end;
if boflag = false then begin
FGameStatus := gs_none;
SendStatusMessage (MESSAGE_SELCHAR, '歹捞惑 某腐磐甫 父甸 荐 绝嚼聪促');
exit;
end;
pcCreateChar := @aComData^.data;
pcCreateChar^.rChar [NAME_SIZE - 1] := 0;
pcCreateChar^.rVillage [NAME_SIZE - 1] := 0;
pcCreateChar^.rServer [NAME_SIZE - 1] := 0;
ucharname := Trim (StrPas (@pcCreateChar^.rChar));
uvillage := Trim (StrPas (@pcCreateChar^.rVillage));
uservername := Trim (StrPas (@pcCreateChar^.rServer));
for i := 0 to RejectCharName.Count - 1 do begin
if Pos (RejectCharName.Strings[i], ucharname) > 0 then begin
FGameStatus := gs_none;
SendStatusMessage (MESSAGE_SELCHAR, '某腐磐疙栏肺 荤侩且 荐 绝嚼聪促');
exit;
end;
end;
if Length (ucharname) > 12 then begin
FGameStatus := gs_none;
SendStatusMessage (MESSAGE_SELCHAR, '某腐磐疙狼 弥措辨捞绰 茄臂 6臂磊涝聪促');
exit;
end;
if (ucharname [1] >= '0') and (ucharname [1] <= '9') then begin
FGameStatus := gs_none;
SendStatusMessage (MESSAGE_SELCHAR, '某腐磐疙狼 贸澜俊 箭磊甫 荤侩且 荐 绝嚼聪促');
exit;
end;
if (ucharname [Length (ucharname)] >= '0') and (ucharname [Length (ucharname)] <= '9') then begin
FGameStatus := gs_none;
SendStatusMessage (MESSAGE_SELCHAR, '某腐磐疙狼 场俊 箭磊甫 荤侩且 荐 绝嚼聪促');
exit;
end;
if (ucharname = '') or (Pos (',', ucharname) > 0) then begin
FGameStatus := gs_none;
SendStatusMessage (MESSAGE_SELCHAR, '某腐磐疙栏肺 荤侩且 荐 绝嚼聪促');
exit;
end;
if (not isFullHangul (ucharname)) or (not isGrammarID(ucharname)) then begin
FGameStatus := gs_none;
SendStatusMessage (MESSAGE_SELCHAR, '漂荐巩磊 酒捞叼绰 父甸 荐 绝嚼聪促');
exit;
end;
FillChar (DBRecord, SizeOf (TDBRecord), 0);
DecodeDate (Date, nYear, nMonth, nDay);
with DBRecord do begin
StrPCopy (@PrimaryKey, ucharname);
StrPCopy (@MasterName, LoginData.PrimaryKey);
// Guild : array [0..20 - 1] of byte;
StrPCopy (@LastDate, format ('%d-%d-%d', [nYear, nMonth, nDay]));
StrPCopy (@CreateDate, format ('%d-%d-%d', [nYear, nMonth, nDay]));
if pcCreateChar^.rSex = 0 then StrPCopy (@Sex, '巢')
else StrPCopy (@Sex, '咯');
ServerID := 0;
X := 534;
Y := 574;
for i := 0 to VillageList.Count - 1 do begin
pd := VillageList.Items [i];
if pd^.Name = uvillage then begin
ServerID := pd^.ServerID;
X := pd^.X;
Y := pd^.Y;
break;
end;
end;
{
Light : Integer;
Dark : Integer;
Energy : Integer;
InPower : Integer;
OutPower : Integer;
Magic : Integer;
Life : Integer;
Talent : integer;
GoodChar : integer;
BadChar : integer;
Adaptive : integer;
Revival : integer;
Immunity : integer;
Virtue : integer;
}
CurHeadSeek := 2200;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -