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

📄 actor.pas

📁 传奇源代码的delphi版本
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    ActStand:(Start:0;  frame:4;  skip:6;  ftime:200;  usetick:0);
    ActWalk:(Start:0;  frame:10;  skip:0;  ftime:200;  usetick:3);
    ActAttack:(Start:10;  frame:6;  skip:4;  ftime:120;  usetick:0);
    ActCritical:(Start:40;  frame:10;  skip:0;  ftime:120;  usetick:0);
    ActStruck:(Start:20;  frame:2;  skip:0;  ftime:100;  usetick:0);
    ActDie:(Start:30;  frame:10;  skip:0;  ftime:150;  usetick:0);
    ActDeath:(Start:0;  frame:10;  skip:0;  ftime:200;  usetick:3);
    );

  MA61: TMonsterAction = (//地狱怪物1
    ActStand:   (start: 0;   frame: 4;  skip: 6;  ftime: 200;  usetick: 0);
    ActWalk:    (start: 80;  frame: 6;  skip: 4;  ftime: 160;  usetick: 3);
    ActAttack:  (start: 160; frame: 6;  skip: 4;  ftime: 100;  usetick: 0);
    ActCritical:(start: 340; frame: 10;  skip: 0;  ftime: 160;  usetick: 0);
    ActStruck:  (start: 240; frame: 2;  skip: 0;  ftime: 100;  usetick: 0);
    ActDie:     (start: 260; frame: 10; skip: 0;  ftime: 140;  usetick: 0);
    ActDeath:   (start: 0; frame: 0; skip: 0;  ftime: 100;  usetick: 0);
    );

  MA62: TMonsterAction = (//地狱怪物2
    ActStand:   (start: 0;   frame: 4;  skip: 6;  ftime: 200;  usetick: 0);
    ActWalk:    (start: 80;  frame: 6;  skip: 4;  ftime: 160;  usetick: 3);
    ActAttack:  (start: 160; frame: 6;  skip: 4;  ftime: 100;  usetick: 0);
    ActCritical:(start: 340; frame: 6;  skip: 4;  ftime: 160;  usetick: 0);
    ActStruck:  (start: 240; frame: 2;  skip: 0;  ftime: 100;  usetick: 0);
    ActDie:     (start: 260; frame: 9; skip: 1;  ftime: 140;  usetick: 0);
    ActDeath:   (start: 0; frame: 0; skip: 0;  ftime: 100;  usetick: 0);
    );

  MA63: TMonsterAction = (//地狱怪物3
    ActStand:   (start: 0;   frame: 4;  skip: 6;  ftime: 200;  usetick: 0);
    ActWalk:    (start: 80;  frame: 6;  skip: 4;  ftime: 160;  usetick: 3);
    ActAttack:  (start: 160; frame: 6;  skip: 4;  ftime: 100;  usetick: 0);
    ActCritical:(start: 420; frame: 7;  skip: 3;  ftime: 160;  usetick: 0);
    ActStruck:  (start: 240; frame: 2;  skip: 0;  ftime: 100;  usetick: 0);
    ActDie:     (start: 260; frame: 8; skip: 2;  ftime: 140;  usetick: 0);
    ActDeath:   (start: 0; frame: 0; skip: 0;  ftime: 100;  usetick: 0);
    );
  MA64: TMonsterAction = (//变异新怪物教主
    ActStand:   (start: 0;   frame: 4;  skip: 6;  ftime: 200;  usetick: 0);
    ActWalk:    (start: 80;  frame: 6;  skip: 4;  ftime: 160;  usetick: 3);
    ActAttack:  (start: 160; frame: 6;  skip: 4;  ftime: 100;  usetick: 0);
    ActCritical:(start: 420; frame: 20; skip: 0;  ftime: 160;  usetick: 0);
    ActStruck:  (start: 240; frame: 2;  skip: 0;  ftime: 100;  usetick: 0);
    ActDie:     (start: 260; frame: 20; skip: 0;  ftime: 140;  usetick: 0);
    ActDeath:   (start: 0; frame: 0; skip: 0;  ftime: 100;  usetick: 0);
    );
   MA65: TMonsterAction = (
        ActStand:   (start: 0;    frame: 20; skip: 0;  ftime: 150;  usetick: 0);
        ActWalk:    (start: 0;    frame: 0; skip: 0;  ftime: 0;  usetick: 0);
        ActAttack:  (start: 0;    frame: 0; skip: 0;  ftime: 0;  usetick: 0);
        ActCritical:(start: 0;    frame: 0; skip: 0;  ftime: 0;  usetick: 0);
        ActStruck:  (start: 20;   frame: 10; skip: 0;  ftime: 100;  usetick: 0);
        ActDie:     (start: 400;  frame: 18; skip: 2;  ftime: 120;  usetick: 0);
        ActDeath:   (start: 400;  frame: 18; skip: 2;  ftime: 120;  usetick: 0);
      );
   MA67: TMonsterAction = (
        ActStand:   (start: 0;  frame: 4; skip: 6;  ftime: 200;  usetick: 0);
        ActWalk:    (start: 0;  frame: 0; skip: 0;  ftime: 200;  usetick: 0);
        ActAttack:  (start: 10; frame: 4; skip: 1;  ftime: 100;  usetick: 0);
        ActCritical:(start: 0;  frame: 0; skip: 0;  ftime: 150;  usetick: 0);
        ActStruck:  (start: 0;  frame: 4; skip: 6;  ftime: 100;  usetick: 0);
        ActDie:     (start: 0;  frame: 0; skip: 0;  ftime: 120;  usetick: 0);
        ActDeath:   (start: 0;  frame: 0; skip: 0;  ftime: 120;  usetick: 0);
      );
   WORDER: Array[0..1, 0..599] of byte = (
      (
      0,0,0,0,0,0,0,0,    1,1,1,1,1,1,1,1,    1,1,1,1,1,1,1,1,
      1,1,1,1,1,1,1,1,    0,0,0,0,0,0,0,0,    0,0,0,0,1,1,1,1,
      0,0,0,0,1,1,1,1,    0,0,0,0,1,1,1,1,

      0,0,0,0,0,0,0,0,    1,1,1,1,1,1,1,1,    1,1,1,1,1,1,1,1,
      1,1,1,1,1,1,1,1,    0,0,0,0,0,0,0,0,    0,0,0,0,0,0,0,1,
      0,0,0,0,0,0,0,1,    0,0,0,0,0,0,0,1,

      0,0,0,0,0,0,0,0,    1,1,1,1,1,1,1,1,    1,1,1,1,1,1,1,1,
      1,1,1,1,1,1,1,1,    0,0,1,1,1,1,1,1,    0,0,1,1,1,0,0,1,
      0,0,0,0,0,0,0,1,    0,0,0,0,0,0,0,1,

      0,1,1,1,0,0,0,0,

      1,1,1,0,0,0,1,1,    1,1,1,0,0,0,0,0,    1,1,1,0,0,0,0,0,
      1,1,1,1,1,1,1,1,    1,1,1,1,1,1,1,1,    1,1,1,0,0,0,0,0,
      0,0,0,0,0,0,0,0,    1,1,1,1,0,0,1,1,

      0,1,1,0,0,0,1,1,    0,1,1,0,0,0,1,1,    1,1,1,0,0,0,0,0,
      1,1,1,0,0,1,1,1,    1,1,1,1,1,1,1,1,    0,1,1,1,1,1,1,1,
      0,0,0,1,1,1,0,0,    0,1,1,1,1,0,1,1,

      1,1,0,1,0,0,0,0,    1,1,0,0,0,0,0,0,    1,1,1,1,1,0,0,0,
      1,1,0,0,1,0,0,0,    1,1,1,0,0,0,0,1,    0,1,1,0,0,0,0,0,
      0,0,0,0,1,1,1,0,    1,1,1,1,1,0,0,0,

      0,0,0,0,0,0,1,1,    0,0,0,0,0,0,1,1,    0,0,0,0,0,0,1,1,
      1,0,0,0,0,1,1,1,    1,1,1,1,1,1,1,1,    0,1,1,1,1,1,1,1,
      0,0,1,1,0,0,1,1,    0,0,0,1,0,0,1,1,

      0,0,1,0,1,1,1,1,    1,1,0,0,0,1,0,0,

      0,0,0,1,1,1,1,1,    1,1,1,1,1,1,1,1,    1,1,1,1,1,1,1,1,
      1,1,1,1,1,1,1,1,    0,0,0,1,1,1,1,1,    0,0,0,1,1,1,1,1,
      0,0,0,1,1,1,1,1,    0,0,0,1,1,1,1,1,

      0,0,1,1,1,1,1,1,    0,1,1,1,1,1,1,1,    1,1,1,1,1,1,1,1,
      1,1,1,1,1,1,1,1,    0,0,0,1,1,1,1,1,    0,0,0,1,1,1,1,1,
      0,0,0,1,1,1,1,1,    0,0,0,1,1,1,1,1
      ),

      (

      0,0,0,0,0,0,0,0,    1,1,1,1,1,1,1,1,    1,1,1,1,1,1,1,1,
      1,1,1,1,1,1,1,1,    0,0,0,0,0,0,0,0,    0,0,0,0,1,1,1,1,
      0,0,0,0,1,1,1,1,    0,0,0,0,1,1,1,1,

      0,0,0,0,0,0,0,0,    1,1,1,1,1,1,1,1,    1,1,1,1,1,1,1,1,
      1,1,1,1,1,1,1,1,    0,0,0,0,0,0,0,0,    0,0,0,0,0,0,0,1,
      0,0,0,0,0,0,0,1,    0,0,0,0,0,0,0,1,

      0,0,0,0,0,0,0,0,    1,1,1,1,1,1,1,1,    1,1,1,1,1,1,1,1,
      1,1,1,1,1,1,1,1,    0,0,1,1,1,1,1,1,    0,0,1,1,1,0,0,1,
      0,0,0,0,0,0,0,1,    0,0,0,0,0,0,0,1,

      1,1,1,1,0,0,0,0,

      1,1,1,0,0,0,1,1,    1,1,1,0,0,0,0,0,    1,1,1,0,0,0,0,0,
      1,1,1,1,1,1,1,1,    1,1,1,1,1,1,1,1,    1,1,1,0,0,0,0,0,
      0,0,0,0,0,0,0,0,    1,1,1,1,0,0,1,1,

      0,1,1,0,0,0,1,1,    0,1,1,0,0,0,1,1,    1,1,1,0,0,0,0,0,
      1,1,1,0,0,1,1,1,    1,1,1,1,1,1,1,1,    0,1,1,1,1,1,1,1,
      0,0,0,1,1,1,0,0,    0,1,1,1,1,0,1,1,

      1,1,0,1,0,0,0,0,    1,1,0,0,0,0,0,0,    1,1,1,1,1,0,0,0,
      1,1,0,0,1,0,0,0,    1,1,1,0,0,0,0,1,    0,1,1,0,0,0,0,0,
      0,0,0,0,1,1,1,0,    1,1,1,1,1,0,0,0,

      0,0,0,0,0,0,1,1,    0,0,0,0,0,0,1,1,    0,0,0,0,0,0,1,1,
      1,0,0,0,0,1,1,1,    1,1,1,1,1,1,1,1,    0,1,1,1,1,1,1,1,
      0,0,1,1,0,0,1,1,    0,0,0,1,0,0,1,1,

      0,0,1,0,1,1,1,1,    1,1,0,0,0,1,0,0,

      0,0,0,1,1,1,1,1,    1,1,1,1,1,1,1,1,    1,1,1,1,1,1,1,1,
      1,1,1,1,1,1,1,1,    0,0,0,1,1,1,1,1,    0,0,0,1,1,1,1,1,
      0,0,0,1,1,1,1,1,    0,0,0,1,1,1,1,1,

      0,0,1,1,1,1,1,1,    0,1,1,1,1,1,1,1,    1,1,1,1,1,1,1,1,
      1,1,1,1,1,1,1,1,    0,0,0,1,1,1,1,1,    0,0,0,1,1,1,1,1,
      0,0,0,1,1,1,1,1,    0,0,0,1,1,1,1,1
      )
   );

   EffDir : array[0..7] of byte = (0, 0, 1, 1, 1, 1, 1, 0);


type
   TActor = class//Size 0x240
     m_nRecogId                :Integer;    //角色标识 0x4
     m_nCurrX                  :Integer;    //当前所在地图座标X 0x08
     m_nCurrY                  :Integer;    //当前所在地图座标Y 0x0A
     m_btDir                   :Byte;       //当前站立方向 0x0C
     m_btSex                   :Byte;       //性别 0x0D
     m_btRace                  :Byte;       //0x0E
     m_btHair                  :Byte;       //头发类型 0x0F
     m_btDress                 :Byte;       //衣服类型 0x10
     m_btHelmet                :Byte;       //头盔类型
     m_btWeapon                :Byte;       //武器类型
     m_btHorse                 :Byte;       //马类型
     m_btEffect                :Byte;       //天使类型
     m_btAttatckMode           :Byte;
     m_btJob                   :Byte;       //职业 0:武士  1:法师  2:道士
     m_wAppearance             :Word;       //0x14
     m_btDeathState            :Byte;
     m_nFeature                :Integer;    //0x18
     m_nFeatureEx              :Integer;    //0x18
     m_nState                  :Integer;    //0x1C
     m_boDeath                 :Boolean;    //0x20
     m_boSkeleton              :Boolean;    //0x21
     m_boDelActor              :Boolean;    //0x22
     m_boDelActionAfterFinished :Boolean;   //0x23
     m_sDescUserName           :String;     //人物名称,后缀
     m_sUserName               :String;     //0x28
     m_nNameColor              :Integer;    //0x2C
     m_Abil                    :TAbility;   //0x30
     m_nGold                   :Integer;    //金币数量0x58
     m_nBankGold               :Integer;    //银行金币数量
     m_nGameGold               :Integer;    //游戏币数量
     m_nGamePoint              :Integer;    //游戏点数量
     m_nHitSpeed               :ShortInt;   //攻击速度 0: 正常, (-)减速 (+)加速
     m_boVisible               :Boolean;    //0x5D
     m_boHoldPlace             :Boolean;    //0x5E

     m_SayingArr               :array[0..MAXSAY-1] of String;
     m_SayWidthsArr            :array[0..MAXSAY-1] of Integer;
     m_dwSayTime               :LongWord;
     m_nSayX                   :Integer;
     m_nSayY                   :Integer;
     m_nSayLineCount           :Integer;

     m_nShiftX                 :Integer;    //0x98
     m_nShiftY                 :Integer;    //0x9C

     m_nPx                     :Integer;  //0xA0
     m_nHpx                    :Integer;  //0xA4
     m_nHepx                   :Integer;
     m_nWpx                    :Integer;  //0xA8
     m_nSpx                    :Integer;  //0xAC

     m_nPy                     :Integer;
     m_nHpy                    :Integer;
     m_nHepy                   :Integer;
     m_nWpy                    :Integer;
     m_nSpy                    :Integer;  //0xB0 0xB4 0xB8 0xBC

     m_nRx                     :Integer;
     m_nRy                     :Integer;//0xC0 0xC4
     m_nDownDrawLevel          :Integer;    //0xC8
     m_nTargetX                :Integer;
     m_nTargetY                :Integer; //0xCC 0xD0
     m_nTargetRecog            :Integer;      //0xD4
     m_nHiterCode              :Integer;        //0xD8
     m_nMagicNum               :Integer;         //0xDC
     m_nCurrentEvent           :Integer;
     m_boDigFragment           :Boolean;
     m_boThrow                 :Boolean;

     m_nBodyOffset             :Integer;     //0x0E8   //0x0D0
     m_nHairOffset             :Integer;     //0x0EC
     m_nHumWinOffset           :Integer;   //0x0F0
     m_nWeaponOffset           :Integer;   //0x0F4
     m_nHelmetOffset           :Integer;
     m_boUseMagic              :Boolean;    //0x0F8   //0xE0
     m_boHitEffect             :Boolean;   //0x0F9    //0xE1
     m_boUseEffect             :Boolean;   //0x0FA    //0xE2
     m_nHitEffectNumber        :Integer;              //0xE4
     m_dwWaitMagicRequest      :LongWord;
     m_nWaitForRecogId         :Integer;
     m_nWaitForFeature         :Integer;
     m_nWaitForStatus          :Integer;


     m_nCurEffFrame            :Integer;       //0x110
     m_nSpellFrame             :Integer;        //0x114
     m_CurMagic                :TUseMagicInfo;    //0x118  //m_CurMagic.EffectNumber 0x110

     GlimmingMode: Boolean;
     CurGlimmer: integer;
     MaxGlimmer: integer;
     GlimmerTime: longword;

     m_nGenAniCount            :Integer;                   //0x124
     m_boOpenHealth            :Boolean;        //0x140
     m_noInstanceOpenHealth    :Boolean;//0x141
     m_dwOpenHealthStart       :LongWord;
     m_dwOpenHealthTime        :LongWord;//Integer;jacky

      //SRc: TRect;  //Screen Rect
     m_BodySurface             :TDirectDrawSurface;    //0x14C   //0x134

     m_boGrouped               :Boolean;    //0x150 是否组队
     m_nCurrentAction          :Integer;    //0x154         //0x13C
     m_boReverseFrame          :Boolean;    //0x158
     m_boWarMode               :Boolean;    //0x159
     m_dwWarModeTime           :LongWord;   //0x15C
     m_nChrLight               :Integer;    //0x160
     m_nMagLight               :Integer;    //0x164
     m_nRushDir                :Integer;  //0, 1  //0x168
     m_nXxI                    :Integer; //0x16C
     m_boLockEndFrame          :Boolean;     //0x170
     m_dwLastStruckTime        :LongWord;  //0x174
     m_dwSendQueryUserNameTime :LongWord;    //0x178
     m_dwDeleteTime            :LongWord;//0x17C

     m_nMagicStruckSound       :Integer;  //0x180 被魔法攻击弯腰发出的声音
     m_boRunSound              :Boolean;  //0x184 跑步发出的声音
     m_nFootStepSound          :Integer;  //CM_WALK, CM_RUN //0x188  走步声
     m_nStruckSound            :Integer;  //SM_STRUCK         //0x18C  弯腰声音
     m_nStruckWeaponSound      :Integer;                //0x190  被指定武器攻击弯腰声音

⌨️ 快捷键说明

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