⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svclass.pas

📁 千年源代码,只缺少控件,可以做二次开发用,好不容易得来的
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit svClass;

interface

uses
  Windows, SysUtils, Classes, Usersdb, adeftype, Deftype, AnsUnit,
  AnsImg2, AUtil32, uSendcls, uAnstick, uLevelexp, IniFiles, SubUtil,
  AnsStringCls, uKeyClass, uGramerID;

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;

     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;

     function CheckMagicData (var MagicData: TMagicData; var aRetStr : String) : Boolean;

     procedure CompactGuildMagic;
     function AddGuildMagic (var aMagicData : TMagicData; aGuildName : String) : Boolean;
   end;

   TMagicParamClass = class
   private
     DataList : TList;
     KeyClass : TStringKeyClass;

     procedure Clear;
   public
     constructor Create;
     destructor Destroy; override;

     function LoadFromFile (aFileName : String) : Boolean;
     function GetMagicParamData (aObjectName, aMagicName : String; var aMagicParamData: TMagicParamData): Boolean;
   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; var pMonsterData: PTMonsterData): Boolean;
   end;

   TNpcClass = class
   private
     NpcDb : TUserStringDb;
     DataList : TList;
     AnsIndexClass : TAnsIndexClass;
     procedure Clear;
     function  LoadNpcData (aNpcName: string; var NpcData: TNpcData): Boolean;
   public
     constructor Create;
     destructor Destroy; override;
     procedure ReLoadFromFile;
     function GetNpcData (aNpcName: string; var pNpcData: PTNpcData): Boolean;
   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 LoadCreateMonster (aFileName: string; List : TList);
   procedure LoadCreateNpc (aFileName: string; List : TList);
   procedure LoadCreateDynamicObject (aFileName : String; List : TList);

var
   NameStringListForDeleteMagic : TStringList;
   RejectNameList : TStringList;
   RandomClass : TRandomClass;
   MagicClass : TMagicClass;
   MagicParamClass : TMagicParamClass;
   ItemClass : TItemClass;
   DynamicObjectClass : TDynamicObjectClass;
   ItemDrugClass : TItemDrugClass;
   MonsterClass : TMonsterClass;
   NpcClass : TNpcClass;
   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;
}

   NoticeServerIpAddress : String = '';
   NoticeServerPort : 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_NPCMAN_NAME : string = 'NPCMAN';
   INI_GUILD_NPCWOMAN_NAME : string = 'NPCWOMAN';
   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 = '';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -