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

📄 common.pas

📁 仙境传说(RO)私人服务器端源代码。第一次上传。
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit Common; interfaceuses//Windows, Forms, Classes, SysUtils, ScktComp;	Windows, StdCtrls, MMSystem, Classes, SysUtils, ScktComp, List32,tlhelp32;//==============================================================================// word宆嵗昗峔憿懱(TPoint偼cardinal宆嵗昗)type rPoint = record	X :word;	Y :word;end;//------------------------------------------------------------------------------// 僸乕僾峔憿懱(宱楬扵嶕梡)type rHeap = record	cost1   :word;	cost2   :word;	x       :word;	y       :word;	mx      :word;	my      :word;	dir     :byte;	path    :array[0..255] of byte;	pcnt    :byte;end;//------------------------------------------------------------------------------// 宱楬扵嶕梡儅僢僾僨乕僞type rSearchMap = record	cost    :word;	path    :array[0..255] of byte;	pcnt    :byte;	addr    :byte;end;//------------------------------------------------------------------------------// 傾僀僥儉僨乕僞儀乕僗type TItemDB = class	ID        :word;	Name      :string;	JName     :string;	IType     :byte;	IEquip    :boolean;	Price     :cardinal;	Sell      :cardinal;	Weight    :word;	ATK       :word;	MATK      :word;	DEF       :word;	MDEF      :word;	Range     :byte;	Slot      :byte;	Param     :array[0..5] of shortint;	HIT       :smallint;	FLEE      :smallint;	Crit      :byte;	Avoid     :byte;	Cast      :cardinal;	Job       :Int64;	Gender    :byte;	Loc       :word;	wLV       :byte;	eLV       :byte;	View      :byte;	Element   :byte;	Effect    :byte;	HP1       :word;	HP2       :word;	SP1       :word;	SP2       :word;	//Rare      :boolean;	//Box       :byte;{曄峏}	DamageFixR :array[0..9] of Word; //庬懓	DamageFixE :array[0..9] of Word; //懏惈	DamageFixS :array[0..2] of Word; //僒僀僘	SFixPer1   :array[0..5] of Word; //忬懺侾	SFixPer2   :array[0..4] of Word; //忬懺俀	DrainFix   :array[0..1] of Word; //媧廂検	DrainPer   :array[0..1] of Word; //媧廂妋棪	AddSkill   :array[0..330] of Word; //僗僉儖捛壛	SplashAttack  :boolean;          //僗僾儔僢僔儏	NoJamstone    :boolean;{曄峏僐僐傑偱}end;//------------------------------------------------------------------------------// 傾僀僥儉僨乕僞type TItem = class	ID        :word;	Amount    :word;	Equip     :word;	Identify  :byte;	Refine    :byte;	Attr      :byte;	Card      :array[0..3] of word;	Data      :TItemDB;end;//------------------------------------------------------------------------------{捛壛}type TItemList = class	Zeny      :Cardinal;	Item      :Array[0..100] of TItem;	Weight    :Cardinal;	MaxWeight :Cardinal;	Count     :Word;	constructor Create;	destructor Destroy; override;end;{捛壛僐僐傑偱}//------------------------------------------------------------------------------{傾僀僥儉惢憿捛壛}// 惢憿僨乕僞type TMaterialDB = class	ID              :word;//惢憿傾僀僥儉偺ID	ItemLV          :word;//惢憿偵昁梫側僗僉儖儗儀儖(嬥捚偲偺懳墳丄儕僗僩昞帵偍傛傃惉岟棪寁嶼偱巊梡)	RequireSkill    :word;//惢憿偵昁梫偲偝傟傞僗僉儖(嬥捚偲偺懳墳丄儕僗僩昞帵偍傛傃惉岟棪寁嶼偱巊梡)	MaterialID      :array[0..2] of word;//惢憿偵昁梫側慺嵽偺ID	MaterialAmount  :array[0..2] of word;//惢憿偵昁梫側慺嵽偺屄悢end;{傾僀僥儉惢憿捛壛僐僐傑偱}//------------------------------------------------------------------------------// 儌儞僗僞乕僪儘僢僾傾僀僥儉峔憿懱type rDropItem = record	ID    :word;	Per   :cardinal;	Data  :TItemDB;  Stolen:cardinal;end;//------------------------------------------------------------------------------// 儌儞僗僞乕僨乕僞儀乕僗//ID,Name,JName,LV,HP,EXP,JEXP,Range,ATK1,ATK2,DEF1,DEF2,MDEF1,MDEF2,HIT,FLEE,//Scale,Race,Ele,Mode,Speed,ADelay,aMotion,dMotion,Drop1id,Drop1per,Drop2id,//Drop2per,Drop3id,Drop3per,Drop4id,Drop4per,Drop5id,Drop5per,Drop6id,Drop6per,//Drop7id,Drop7per,Drop8id,Drop8per,MEXP,MVP1id,MVP1per,MVP2id,MVP2per,MVP3id,MVP3pertype TMobDB = class //edited by The Harbinger -- darkWeiss version	ID          :word;	Name        :string;	JName       :string;	LV          :byte;	HP          :cardinal;	SP          :cardinal; //New	EXP         :cardinal;	JEXP        :cardinal;	Range1      :byte;	ATK1        :word;	ATK2        :word;	DEF         :byte; //New	MDEF        :byte; //New        LUK            :byte; //僋儕曗惓梡LUK	HIT         :integer;	FLEE        :integer;	Param       :array[0..5] of byte; //New	Range2      :byte; //峌寕奐巒帇奅	Range3      :byte; //捛旜帇奅	Scale       :byte;	Race        :byte;	Element     :byte;	Mode        :byte;	Speed       :word;	ADelay      :word;	aMotion     :word;	dMotion     :word;	Drop        :array[0..7] of rDropItem;	Item1       :word; //New	Item2       :word; //New	MEXP        :cardinal;	MEXPPer     :word;	MVPItem     :array[0..2] of rDropItem;	isDontMove  :boolean; //Mode &  1 : 堏摦	isActive    :boolean; //Mode &  4 : 傾僋僥傿僽{捛壛}	isLoot      :boolean; //Mode &  2 : 儖乕僩	isLink      :boolean; //Mode &  8 : 儕儞僋{捛壛僐僐傑偱}end;//------------------------------------------------------------------------------// MNAME,SLAVE_1,SLAVE_2,SLAVE_3,SLAVE_4,SLAVE_5,TOTALNUMSLAVEStype TSlaveDB = class //added by The Harbinger -- darkWeiss version  Name        :string;  Slaves      :array[0..4] of integer;  TotalSlaves :integer;end;//------------------------------------------------------------------------------// ID,ITEMLISTtype TKafra = class //added by The Harbinger -- darkWeiss version    PID           :Cardinal;  	Kafra         :TItemList;  constructor Create;	destructor  Destroy; override;end;//------------------------------------------------------------------------------// BIPtype TBan = class //added by The Harbinger -- darkWeiss version    BIP           :string;end;//------------------------------------------------------------------------------// ID,BROADCAST,ITEMSUMMON,MONSTERSUMMON,CHANGESTATSKILL,CHANGEOPTION,SAVERETURN,CHANGELEVEL,WARP,WHOIS,GOTOSUMMONBANISH,KILLDIEALIVE,CHANGEJOB,CHANGECOLORSTYLE,AUTORAWUNIT,REFINEtype TIDTbl = class    //added by The Harbinger -- darkWeiss version  ID               :integer;  BroadCast        :integer;  ItemSummon       :integer;  MonsterSummon    :integer;  ChangeStatSkill  :integer;  ChangeOption     :integer;  SaveReturn       :integer;  ChangeLevel      :integer;  Warp             :integer;  Whois            :integer;  GotoSummonBanish :integer;  KillDieAlive     :integer;  ChangeJob        :integer;  ChangeColorStyle :integer;  AutoRawUnit      :integer;  Refine           :integer;end;//------------------------------------------------------------------------------// ID,Create ID,Number Createdtype TMArrowDB = class  //added by The Harbinger -- darkWeiss version  ID        :integer;  CID       :array[0..2] of integer;  CNum      :array[0..2] of integer;end;//------------------------------------------------------------------------------// 宱尡抣攝暘梡僇僂儞僞type rEXPDist = record	CData       :Pointer;	Dmg         :integer;end;//------------------------------------------------------------------------------// 儌儞僗僞乕僨乕僞type TMob = class //edited by The Harbinger -- darkWeiss version	ID          :cardinal;	Name        :string;	JID         :word;	Map         :string;	Point       :TPoint;	tgtPoint    :TPoint;  NextPoint   :TPoint;	Dir         :byte;	Point1      :TPoint;	Point2      :TPoint;	Speed       :word;	Stat1       :Byte; //忬懺侾	Stat2       :Byte; //忬懺俀  nStat       :Cardinal;	BodyTick    :Cardinal;   //曄壔Tick1	HealthTick  :Array[0..4] of Cardinal;  //曄壔Tick2	EffectTick  :Array[0..11] of Cardinal; //旐僗僉儖Tick	isLooting   :boolean;	Item        :array[1..10] of TItem;	HP          :integer;	SpawnDelay1 :cardinal;	SpawnDelay2 :cardinal;	SpawnTick   :cardinal;	SpawnType   :cardinal;	ATick       :cardinal;  NextFlag      :boolean;	MoveTick    :cardinal;	MoveWait    :cardinal;	DmgTick     :cardinal; //僲僢僋僶僢僋	ppos        :integer;	pcnt        :integer;	path        :array[0..999] of byte; //僉儍儔偺宱楬(岦偒偱婰榐偝傟偰傑偡)  AMode       :byte;	ATarget     :cardinal;	AData       :Pointer;	ARangeFlag  :boolean;  MMode       :byte;	ATKPer      :word; //僾儘儃僢僋側偳偵傛傞峌寕椡曗惓	DEFPer      :word; //僾儘儃僢僋側偳偵傛傞杊屼椡曗惓	EXPDist     :array[0..31] of rEXPDist; //宱尡抣攝暘梡僇僂儞僞	MVPDist     :array[0..31] of rEXPDist; //MVP敾掕梡僇僂儞僞  Slaves      :Array[1..12] of Cardinal;	Data        :TMobDB;{捛壛}	Element     :Byte;	DEF1        :Byte;	DEF2        :Byte;	MDEF1       :Byte;	MDEF2       :Byte;  SlaveCount  :Byte;  Stolen      :Cardinal;	isSummon    :Boolean;  isLeader    :boolean;  isEmperium  :boolean;  isGuardian  :Cardinal;  isSlave     :boolean;	isActive    :boolean; //Mode &  4 : 傾僋僥傿僽	LeaderID    :Cardinal;  EmperiumID  :Cardinal;  GID         :Cardinal;  NPCID       :Cardinal; //庢傝姫偒梡{NPC僀儀儞僩捛壛}	Event       :cardinal;{NPC僀儀儞僩捛壛僐僐傑偱}	constructor Create;	destructor Destroy; override;{捛壛僐僐傑偱}end;//------------------------------------------------------------------------------{僉儏乕儁僢僩}// 儁僢僩僨乕僞儀乕僗type TPetDB = class	MobID           :word; // 儁僢僩儌儞僗僞乕偺ID	ItemID          :word; // 曔妉傾僀僥儉偺ID	EggID           :word; // 棏偺傾僀僥儉ID	AcceID          :word; // 傾僋僙僒儕偺傾僀僥儉ID	FoodID          :word; // 僄僒偺傾僀僥儉ID	Fullness        :word; // 塧傗傝偵傛傞枮暊搙忋徃	HungryDelay     :word; // 枮暊搙尭彮帪娫(msec/-1)	Hungry          :word; // 嬻暊帪塧傗傝偵傛傞恊枾搙忋徃	Full            :word; // 枮暊帪塧傗傝偵傛傞恊枾搙尭彮	Reserved        :word; // ??? 帪偺恊枾搙忋徃	Die             :word; // 巰朣帪恊枾搙尭彮	Capture         :word; // 婎杮曔妉棪(0.1%扨埵)end;// 儁僢僩僨乕僞type TPet = class        PlayerID        :cardinal;        CharaID         :cardinal;        Cart            :byte;        Index           :word;        Incubated       :byte;        PetID           :cardinal;        JID             :word;        Name            :string;        Renamed         :byte;        LV              :word;				Relation        :integer;        Fullness        :integer;        Accessory       :word;        Data            :TPetDB;end;{僉儏乕儁僢僩偙偙傑偱}//------------------------------------------------------------------------------// 僗僉儖僨乕僞儀乕僗//N,ID,JName,Type,MLV,SP1,2,3,4,5,6,7,8,9,10,HP,Cast,Lv+,AR,Ele,//Dat1,2,3,4,5,6,7,8,9,10,Dat2,2,3,4,5,6,7,8,9,10,Req1,LV,Req2,LV,Req3,LVtype TSkillDB = class	ID         :word;	IDC        :string;	Name       :string;	SType      :byte;	MasterLV   :byte;	SP         :array[1..10] of word;	HP         :word;	UseItem    :word; //徚旓傾僀僥儉 715=僣僨儘乕,716=儗僢僪,717=僽儖乕,懠ItemID偺捠傝	CastTime1  :integer; //Base	CastTime2  :integer; //Lv偛偲偺+	CastTime3  :integer; //CastTime壓尷抣	Range      :byte;	Element    :byte;	Data1      :array[1..10] of integer;	Data2      :array[1..10] of integer;	Range2     :byte;	Icon       :word;	Job        :array[0..23] of boolean;	ReqSkill1   :array[0..9] of word;	ReqLV1      :array[0..9] of word;  ReqSkill2   :array[0..9] of word;	ReqLV2      :array[0..9] of word;

⌨️ 快捷键说明

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