📄 uuser.pas
字号:
Name := aName;
Result := true;
end;
procedure TUser.InitialByPosition (aName : String; aXpos, aYpos : Integer);
begin
inherited Initial (aName);
FillChar (ExchangeData, SizeOf (TExchangeData), 0);
InputStringState := InputStringState_None;
boTV := false;
boException := false;
boLetterCheck := true;
boCanSay := true;
boCanMove := true;
boCanAttack := true;
UseSkillKind := -1;
SkillUsedTick := 0;
SkillUsedMaxTick := 0;
LoadUserDataByPosition (aName, aXpos, aYpos);
FillChar (CM_MessageTick, sizeof(CM_MessageTick), 0);
SysopScope := Sysopclass.GetSysopScope (aName);
FillChar (SpecialWindowSt, SizeOf (TSpecialWindowSt), 0);
CopyHaveItem := nil;
// FillChar (ItemLogData, SizeOf (TItemLogRecord) * 4, 0);
if Manager.OwnerConnector <> nil then begin
WearItemClass.SetActionState (as_ice);
end;
end;
procedure TUser.Initial (aName: string);
begin
inherited Initial (aName);
FillChar (ExchangeData, SizeOf (TExchangeData), 0);
InputStringState := InputStringState_None;
boTV := false;
boException := false;
boLetterCheck := true;
boCanSay := true;
boCanMove := true;
boCanAttack := true;
UseSkillKind := -1;
SkillUsedTick := 0;
SkillUsedMaxTick := 0;
LoadUserData (aName);
FillChar (CM_MessageTick, sizeof(CM_MessageTick), 0);
SysopScope := Sysopclass.GetSysopScope (aName);
FillChar (SpecialWindowSt, SizeOf (TSpecialWindowSt), 0);
CopyHaveItem := nil;
// FillChar (ItemLogData, SizeOf (TItemLogRecord) * 4, 0);
end;
procedure TUser.StartProcessByDir (aDir : Integer);
var
SubData : TSubData;
boAlertFlag : Boolean;
begin
PosMoveX := -1;
PosMoveY := -1;
inherited StartProcessByDir (aDir);
boTv := FALSE;
boAlertFlag := FALSE;
Phone.RegisterUser (BasicData.id, FieldProc, BasicData.X, BasicData.Y);
Phone.SendMessage (NOTARGETPHONE, FM_CREATE, BasicData, SubData);
// LetterManager.CheckLetter (StrPas(@BasicData.Name), MailBox);
RefuseReceiver.Clear;
MailSender.Clear;
end;
procedure TUser.StartProcess;
var
SubData : TSubData;
boAlertFlag : Boolean;
// tmpGuildName : String;
// tmpManager : TBattleRoom;
// rStr : String;
// timestr, msgstr : String;
begin
PosMoveX := -1;
PosMoveY := -1;
inherited StartProcess;
boTv := FALSE;
boAlertFlag := FALSE;
{
if GuildName <> '' then begin
if GuildList.CheckGuildUser (GuildName, Name) = true then begin
GuildServerID := GuildList.GetGuildServerID (GuildName);
StrPCopy (@BasicData.Guild, GuildName);
GuildGrade := GuildList.GetUserGrade (GuildName, Name);
UserList.GuildSay (GuildName, format ('%s (%s)丛捞 立加沁嚼聪促.', [Name, GuildGrade]) );
end else begin
tmpGuildName := GuildName;
GuildName := '';
GuildGrade := '';
StrPCopy(@BasicData.Guild, '');
boAlertFlag := TRUE;
end;
end;
}
Phone.RegisterUser (BasicData.id, FieldProc, BasicData.X, BasicData.Y);
Phone.SendMessage (NOTARGETPHONE, FM_CREATE, BasicData, SubData);
{
if boAlertFlag = TRUE then begin
SendClass.SendChatMessage (tmpGuildName + ' 巩颇俊辑 呕硼登菌嚼聪促', SAY_COLOR_NORMAL);
end;
}
{
if Manager.boPrison = true then begin
rStr := PrisonClass.GetUserStatus (Name);
if rStr <> '' then begin
SendClass.SendChatMessage ('蜡硅瘤俊 荐皑登菌嚼聪促', SAY_COLOR_NORMAL);
SendClass.SendChatMessage ('@荐皑沥焊 疙飞栏肺 荐皑矫埃阑 犬牢且 荐 乐嚼聪促', SAY_COLOR_NORMAL);
SendClass.SendChatMessage (rStr, SAY_COLOR_NORMAL);
end;
end;
}
// LetterManager.CheckLetter (StrPas(@BasicData.Name), MailBox);
RefuseReceiver.Clear;
MailSender.Clear;
{
rStr := '救崇窍技夸. 玫斥涝聪促.' + #13;
rStr := rStr + '捞锅 滚傈狼 函版荤亲俊 包茄 傍瘤涝聪促' + #13;
rStr := rStr + '' + #13;
rStr := rStr + ' 1. 努腐,歹喉努腐栏肺 酒捞袍 裙垫捞 啊瓷钦聪促' + #13;
rStr := rStr + ' 2. 公傍函版矫 秦寸公扁啊 磊悼栏肺 馒侩邓聪促' + #13;
rStr := rStr + '' + #13;
rStr := rStr + '歹 磊技茄 郴侩篮 权其捞瘤甫 曼绊窍技夸' + #13;
rStr := rStr + '坷疵 窍风档 榴玫窍技夸' + #13;
SendClass.SendShowSpecialWindow (WINDOW_ALERT, '玫斥 傍瘤荤亲', rStr);
}
end;
procedure TUser.StartUser;
var
SubData : TSubData;
begin
Phone.RegisterUser (BasicData.id, FieldProc, BasicData.X, BasicData.Y);
Phone.SendMessage (NOTARGETPHONE, FM_CREATE, BasicData, SubData);
end;
procedure TUser.EndProcess;
var
SubData : TSubData;
begin
if FboRegisted = FALSE then exit;
Phone.SendMessage (NOTARGETPHONE, FM_DESTROY, BasicData, SubData);
Phone.UnRegisterUser (BasicData.id, BasicData.x, BasicData.y);
SaveUserData (Name);
inherited EndProcess;
end;
procedure TUser.EndUser;
var
SubData : TSubData;
begin
Phone.SendMessage (NOTARGETPHONE, FM_DESTROY, BasicData, SubData);
Phone.UnRegisterUser (BasicData.id, BasicData.x, BasicData.y);
end;
procedure TUser.FinalLayer;
begin
if UserObj <> nil then begin
TUser(UserObj).SysopObj := nil;
UserObj := nil;
end;
if SysopObj <> nil then begin
TUser(SysopObj).SendClass.SendChatMessage ('立加秦力', SAY_COLOR_SYSTEM);
TUser(SysopObj).UserObj := nil;
SysopObj := nil;
end;
if CopyHaveItem <> nil then begin
CopyHaveItem.Free;
CopyHaveItem := nil;
end;
end;
function TUserList.GetGuildUserInfo (aGuildName: string): string;
var
i, n : integer;
str : string;
TempUser: TUser;
begin
str := ''; n := 0;
for i := 0 to DataList.Count -1 do begin
TempUser := DataList.Items [i];
if TempUser.GuildName <> aGuildName then continue;
str := str + TempUser.Name + ' ';
if (n <> 0) and (n mod 8 = 0) then str := str + #13;
n := n + 1;
end;
Result := '泅犁荤侩磊 : ' + IntToStr(n) + #13 + str;
end;
procedure TUser.UserSay (astr: string);
var
i, xx, yy : integer;
TempUser : TUser;
Bo : TBasicObject;
ItemData : TItemData;
RetStr, Str : string;
strs : array [0..15] of string;
tmpBasicData : TBasicData;
SubData : TSubData;
LimitStr : String;
tmpConnector : TConnector;
begin
if astr = '' then exit;
LimitStr := Copy (aStr, 1, 88);
aStr := LimitStr;
str := astr;
for i := 0 to 15 do begin
str := GetValidStr3 (str, strs[i], ' ');
if str = '' then break;
end;
case astr[1] of
'/' :
begin
exit;
{
if Strs[0] = INI_WHO then begin
SetWordString (SubData.SayString, astr);
Phone.SendMessage (MANAGERPHONE, FM_CURRENTUSER, BasicData, SubData);
SendClass.SendChatMessage (GetWordString(SubData.SayString), SAY_COLOR_SYSTEM);
if GuildName <> '' then begin
GuildList.GetGuildInfo (GuildName, Self);
str := UserList.GetGuildUserInfo (GuildName);
SendClass.SendChatMessage (str, SAY_COLOR_NORMAL);
end;
end else if (UpperCase(strs[0]) = '/WHERE') or (UpperCase(strs[0]) = '/绢叼') then begin
nByte := Maper.GetAreaIndex (BasicData.X, BasicData.Y);
if nByte > 0 then begin
searchstr := AreaClass.GetAreaName (nByte);
if searchstr = '' then searchstr := Manager.Title;
end else begin
searchstr := Manager.Title;
end;
str := '咯扁绰 ' + searchstr + '涝聪促';
SendClass.SendChatMessage (str, SAY_COLOR_SYSTEM);
end;
}
end;
'#' :
begin
exit; //for test;
if Strs[0] = '#' then begin
if (SysopScope > 50) and (Length(astr) > 4) then begin
UserList.SendNoticeMessage ('<SYSTEM>: '+Copy (astr, 2, Length(astr)), SAY_COLOR_NOTICE);
exit;
end;
end;
end;
'@' :
begin
if SysopScope > 99 then begin
if UpperCase (strs[0]) = '@荤侩磊沥焊' then begin
if Strs[1] = '' then begin
UserList.SaveUserInfo ('.\LOG\USERINFO.SDB');
SendClass.SendChatMessage ('贸府肯丰', SAY_COLOR_SYSTEM);
end else begin
TempUser := UserList.GetUserPointer (Strs[1]);
if TempUser <> nil then begin
RetStr := TempUser.Name + ': IP(' + TempUser.Connector.IpAddr + ') Ver(' + IntToStr (TempUser.Connector.VerNo) + ') Pay(' + IntToStr (TempUser.Connector.PaidType) + ')';
SendClass.SendChatMessage (RetStr, SAY_COLOR_SYSTEM);
end else begin
SendClass.SendChatMessage (format ('%s丛篮 立加登绢 乐瘤 臼嚼聪促', [Strs[1]]), SAY_COLOR_SYSTEM);
end;
end;
exit;
end;
if UpperCase (strs[0]) = '@SHOWME' then begin
for i := 0 to ViewObjectList.Count - 1 do begin
Bo := ViewObjectList.Items [i];
SendClass.SendChatMessage (StrPas (@Bo.BasicData.Name) + '(' + IntToStr (Bo.BasicData.X) + ',' + IntToStr (Bo.BasicData.Y) + ')', SAY_COLOR_SYSTEM);
end;
SendClass.SendChatMessage (format ('%d俺狼 俺眉啊 乐嚼聪促', [ViewObjectList.Count]), SAY_COLOR_SYSTEM);
exit;
end;
{
if UpperCase (strs[0]) = '@焊包芒历厘' then begin
ItemLog.SaveToSDB ('.\ITEMLOG\ITEMLOG.SDB');
SendClass.SendChatMessage ('贸府肯丰', SAY_COLOR_SYSTEM);
exit;
end;
}
if UpperCase(strs[0]) = '@DAMAGE' then begin
boShowHitedValue := not boShowHitedValue;
exit;
end;
if UpperCase (strs[0]) = '@NOHIT' then begin
SysopScope := 101;
exit;
end;
if UpperCase (strs[0]) = '@HIT' then begin
SysopScope := 100;
exit;
end;
{
if UpperCase(strs[0]) = '@CALLGUILD' then begin
if GuildList.MoveStone (Strs[1], Manager.ServerID, BasicData.x, BasicData.y) = true then begin
SendClass.SendChatMessage ('巩颇檬籍阑 颗板嚼聪促', SAY_COLOR_SYSTEM);
end;
exit;
end;
if UpperCase(strs[0]) = '@CREATEGUILD' then begin
if GuildList.CreateStone (Strs[1], '', Manager.ServerID, BasicData.x, BasicData.y) = true then begin
SendClass.SendChatMessage ('巩颇檬籍阑 颗板嚼聪促', SAY_COLOR_SYSTEM);
end;
exit;
end;
}
{
if UpperCase(strs[0]) = '@READ' then begin
SysopClass.ReLoadFromFile;
ItemClass.ReLoadFromFile;
MonsterClass.ReLoadFromFile;
NpcClass.ReLoadFromFile;
ManagerList.ReLoadFromFile;
exit;
end;
}
// 泅犁 付阑狼 漂沥 谅钎肺 捞悼茄促
if UpperCase(strs[0]) = '@MOVE' then begin
xx := _StrToInt (Strs[1]);
yy := _StrToInt (Strs[2]);
if Maper.isMoveable (xx, yy) then begin
PosMoveX := xx;
PosMoveY := yy;
end;
exit;
end;
// 货肺款 付阑狼 漂沥 谅钎肺 捞悼茄促
if UpperCase(strs[0]) = '@MOVEEX' then begin
xx := _StrToInt (Strs[2]);
yy := _StrToInt (Strs[3]);
{
tmpManager := ManagerList.GetManagerByTitle (Strs[1]);
if tmpManager <> nil then begin
if tmpManager.ServerID <> ServerID then begin
boNewServer := TRUE;
ServerID := tmpManager.ServerID;
end;
PosMoveX := xx;
PosMoveY := yy;
end;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -