📄 svclass.pas
字号:
unit svClass;
interface
uses
Windows, SysUtils, Classes, Usersdb, adeftype, Deftype, AnsUnit,
AnsImg2, AUtil32, uSendcls, uAnstick, uLevelexp, IniFiles, SubUtil,
AnsStringCls, uKeyClass;
const
AREA_NONE = 0;
AREA_CANMAKEGUILD = 1;
type
TSkillAddDamageData = record
rdamagebody: integer;
rdamagehead: integer;
rdamagearm: integer;
rdamageleg: integer;
end;
TRandomData = record
rItemName : String;
rObjName : String;
rIndex : Integer;
rCurIndex : Integer;
rCount : Integer;
end;
PTRandomData = ^TRandomData;
TRandomClass = class
private
DataList : TList;
public
constructor Create;
destructor Destroy; override;
procedure Clear;
procedure AddData (aItemName, aObjName : String; aCount : Integer);
function GetChance (aItemName, aObjName : String) : Boolean;
end;
// 2000.10.05 眠啊规绢仿 备炼眉 by Lee.S.G
TSkillAddArmorData = record
rarmorbody: integer;
rarmorhead: integer;
rarmorarm: integer;
rarmorleg: integer;
end;
TMagicClass = class
private
MagicDb : TUserStringDb;
MagicForGuildDb : TUserStringDb;
DataList : TList;
AnsIndexClass : TAnsIndexClass;
SkillAddDamageArr : array [0..10000] of TSkillAddDamageData;
SkillAddArmorArr : array [0..10000] of TSkillAddArmorData; // 眠啊规绢仿
procedure Clear;
function LoadMagicData (aMagicName: string; var MagicData: TMagicData; aDb: TUserStringDb): Boolean;
public
constructor Create;
destructor Destroy; override;
procedure ReLoadFromFile;
// procedure CompactGuildMagic;
function GetSkillDamageBody (askill: integer): integer;
function GetSkillDamageHead (askill: integer): integer;
function GetSkillDamageArm (askill: integer): integer;
function GetSkillDamageLeg (askill: integer): integer;
function GetSkillArmorBody (askill: integer): integer;
function GetSkillArmorHead (askill: integer): integer;
function GetSkillArmorArm (askill: integer): integer;
function GetSkillArmorLeg (askill: integer): integer;
procedure Calculate_cLifeData (pMagicData: PTMagicData);
function GetMagicData (aMagicName: string; var MagicData: TMagicData; aexp: integer): Boolean;
function GetHaveMagicData (astr: string; var MagicData: TMagicData): Boolean;
function GetHaveMagicString (var MagicData: TMagicData): string;
end;
TItemClass = class
private
ItemDb : TUserStringDb;
DataList : TList;
AnsIndexClass : TAnsIndexClass;
procedure Clear;
function LoadItemData (aItemName: string; var ItemData: TItemData): Boolean;
public
constructor Create;
destructor Destroy; override;
procedure ReLoadFromFile;
function GetItemData (aItemName: string; var ItemData: TItemData): Boolean;
function GetCheckItemData (aObjName : String; aCheckItem : TCheckItem; var ItemData: TItemData): Boolean;
function GetWearItemData (astr: string; var ItemData: TItemData): Boolean;
function GetChanceItemData (aStr, aObjName : string; var ItemData: TItemData): Boolean;
function GetWearItemString (var ItemData: TItemData): string;
end;
{
// 惑怕 函拳甫 爱绰 酒捞袍甸俊 措茄 努贰胶 空釜狼 巩, 惑磊 etc
TDynamicObjectClass = class
private
// DynamicItemDb : TUserStringDb;
DataList : TList;
AnsIndexClass : TAnsIndexClass;
procedure Clear;
public
constructor Create;
destructor Destroy; override;
procedure LoadFromFile (aName : String);
function GetDynamicObjectData (aObjectName: String; var aObjectData: TDynamicObjectData): Boolean;
end;
}
TItemDrugClass = class
private
ItemDrugDb : TUserStringDb;
DataList : TList;
AnsIndexClass : TAnsIndexClass;
procedure Clear;
function LoadItemDrugData (aItemDrugName: string; var ItemDrugData: TItemDrugData): Boolean;
public
constructor Create;
destructor Destroy; override;
procedure ReLoadFromFile;
function GetItemDrugData (aItemDrugName: string; var ItemDrugData: TItemDrugData): Boolean;
end;
TMonsterClass = class
private
MonsterDb : TUserStringDb;
DataList : TList;
AnsIndexClass : TAnsIndexClass;
procedure Clear;
function LoadMonsterData (aMonsterName: string; var MonsterData: TMonsterData): Boolean;
public
constructor Create;
destructor Destroy; override;
procedure ReLoadFromFile;
function GetMonsterData (aMonsterName: String; pMonsterData: PTMonsterData): Boolean;
function GetMonsterDataPointer (aMonsterName: String) : PTMonsterData;
end;
TNpcClass = class
private
DataList : TList;
KeyClass : TStringKeyClass;
public
constructor Create;
destructor Destroy; override;
procedure Clear;
procedure LoadFromFile (aFileName : String);
function GetNpcData (aNpcName: String; aNpcData: PTNpcData): Boolean;
function GetNpcDataPointer (aNpcName: String) : PTNpcData;
end;
TSysopClass = class
private
SysopDb : TUserStringDb;
public
constructor Create;
destructor Destroy; override;
procedure ReLoadFromFile;
function GetSysopScope (aName: string): integer;
end;
TPosByDieClass = class
private
DataList : TList;
procedure Clear;
public
constructor Create;
destructor Destroy; override;
procedure ReLoadFromFile;
procedure GetPosByDieData (aServerID : Integer; var aDestServerID : Integer; var aDestX, aDestY : Word);
end;
{
TQuestClass = class
private
function CheckQuest1 (aServerID : Integer; var aRetStr : String) : Boolean;
public
constructor Create;
destructor Destroy; override;
function GetQuestString (aQuest : Integer) : String;
function CheckQuestComplete (aQuest, aServerID : Integer; var aRetStr : String) : Boolean;
end;
}
TAreaClass = class
private
DataList : TList;
function GetCount: integer;
public
constructor Create;
destructor Destroy; override;
procedure Clear;
procedure LoadFromFile (aFileName : String);
function CanMakeGuild (aIndex : Byte) : Boolean;
function GetAreaName (aIndex : Byte) : String;
function GetAreaDesc (aIndex : Byte) : String;
property Count : integer read GetCount;
end;
{
TPrisonData = record
rUserName : String;
rPrisonTime : Integer;
rElaspedTime : Integer;
rPrisonType : String;
rReason : String;
end;
PTPrisonData = ^TPrisonData;
TPrisonClass = class
private
DataList : TList;
SaveTick : Integer;
function GetPrisonTime (aType : String) : Integer;
function GetPrisonData (aName : String) : PTPrisonData;
public
constructor Create;
destructor Destroy; override;
procedure Clear;
function LoadFromFile (aFileName : String) : Boolean;
function SaveToFile (aFileName : String) : Boolean;
function AddUser (aName, aType, aReason : String) : String;
function DelUser (aName : String) : String;
function UpdateUser (aName, aType, aReason : String) : String;
function PlusUser (aName, aType, aReason : String) : String;
function EditUser (aName, aTime, aReason : String) : String;
function GetUserStatus (aName : String) : String;
function IncreaseElaspedTime (aName : String; aTime : Integer) : Integer;
procedure Update (CurTick : Integer);
end;
}
TNpcFunction = class
private
DataList : TList;
public
constructor Create;
destructor Destroy; override;
procedure Clear;
procedure LoadFromFile (aFileName : String);
function GetFunction (aIndex : Integer) : PTNpcFunctionData;
end;
procedure LoadGameIni (aName: string);
function GetServerIdPointer (aServerId, atype: integer): Pointer;
procedure LoadCreateItem (aFileName: string; List : TList);
// procedure LoadCreateDynamicObject (aFileName : String; List : TList);
var
NameStringListForDeleteMagic : TStringList;
RandomClass : TRandomClass;
MagicClass : TMagicClass;
ItemClass : TItemClass;
// DynamicObjectClass : TDynamicObjectClass;
ItemDrugClass : TItemDrugClass;
MonsterClass : TMonsterClass;
NpcClass : TNpcClass;
UserData : TUserStringDb;
SysopClass : TSysopclass;
PosByDieClass : TPosByDieClass;
// QuestClass : TQuestClass;
AreaClass : TAreaClass;
// PrisonClass : TPrisonClass;
NpcFunction : TNpcFunction;
GrobalLightDark : TLightDark = gld_light;
NameOfLend : string = '';
GameStartDateStr : String;
GameStartYear : Word = 2000;
GameStartMonth : Word = 1;
GameStartDay : Word = 1;
GameCurrentDate : integer = 0;
Udp_MouseEvent_IpAddress : string = '';
Udp_MouseEvent_Port : integer = 6000;
Udp_Item_IpAddress : string = '';
Udp_Item_Port : integer = 6000;
Udp_Moniter_IpAddress : string = '';
Udp_Moniter_Port : integer = 6000;
Udp_Connect_IpAddress : string = '';
Udp_Connect_Port : integer = 6022;
Udp_UserData_Ipaddress : string = '';
Udp_UserData_Port : integer = 0;
Udp_UserData_LocalPort : integer = 0;
Udp_Notice_Ipaddress : string = '';
Udp_Notice_Port : integer = 0;
Udp_Notice_LocalPort : integer = 0;
ProcessListCount : integer = 40;
////////////////////////
// INI Variable
////////////////////////
INI_WHO : string = '/WHO';
INI_SERCHSKILL : string = '@SERCHSKILL';
INI_WHITEDRUG : string = 'WHITEDRUG';
INI_ROPE : string = 'ROPE';
INI_SEX_FIELD_MAN : string = 'MAN';
INI_SEX_FIELD_WOMAN : string = 'WOMAN';
INI_GUILD_STONE : string = 'GUILDSTONE';
INI_GUILD_NPC_NAME : string = 'NPC';
INI_GOLD : string = 'GOLD';
INI_Guild_MAN_SEX : string = 'MAN';
INI_Guild_MAN_CAP : string = '';
INI_Guild_MAN_HAIR : string = '';
INI_GUILD_MAN_UPUNDERWEAR : string = '';
INI_Guild_MAN_UPOVERWEAR : string = '';
INI_Guild_MAN_DOWNUNDERWEAR : string = '';
INI_Guild_MAN_GLOVES : string = '';
INI_Guild_MAN_SHOES : string = '';
INI_Guild_MAN_WEAPON : string = '';
INI_GUILD_MAN_SHAPE : integer = 27;
INI_GUILD_MAN_ANIMATE : integer = 11;
INI_Guild_WOMAN_SEX : string = 'WOMAN';
INI_Guild_WOMAN_CAP : string = '';
INI_Guild_WOMAN_HAIR : string = '';
INI_GUILD_WOMAN_UPUNDERWEAR : string = '';
INI_Guild_WOMAN_UPOVERWEAR : string = '';
INI_Guild_WOMAN_DOWNUNDERWEAR : string = '';
INI_Guild_WOMAN_GLOVES : string = '';
INI_Guild_WOMAN_SHOES : string = '';
INI_Guild_WOMAN_WEAPON : string = '';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -