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

📄 gamepacket.pas

📁 这是千年外挂的源代码
💻 PAS
字号:
unit gamepacket;

interface

uses
  Windows, Sysutils, Classes,        
   Dialogs, datamanage, gamecode;

procedure gamePacketsend (buf:pchar; len:integer);
procedure gamePacketrecv (buf:pchar; len:integer);
procedure newsendnum;  //更新封包序列号
procedure mysend (buf:pchar; len:integer);
var
  stratnum : bool = false ;                     //初始化封包序号标志
  sendcount : array [0..1] of byte ;            //游戏发送封包序号 2字节. 无符号型
  newsendcount :pchar;                          //游戏发送封包序号 2字节. char型
  
implementation

procedure mysend (buf:pchar; len:integer);
var
  i,onelen :integer;
  packet_Header :pchar;
begin
  i      := 0;
  onelen := 0;
  packet_header := buf;
  while i < len do
    begin
      if buf[i] = '(' then
        begin
        onelen := 1;
        packet_header := @buf[i] ;
        end;

      if buf[i] = ')' then
        begin
        gamepacketsend (packet_header,onelen);
        end;
                
      inc (onelen);
      inc (i);    
    end;
end;

procedure newsendnum;                           //更新封包序列号
begin
  if byte(newsendcount[0]) <> $FF then
    begin
    sendcount[0] := byte(newsendcount[0]);
    inc (sendcount[0]);
    sendcount[1] := byte(newsendcount[1]);
    newsendcount := @sendcount;
    end else                                    //如果第一位是FF 第二位加上 1
    begin
    sendcount[0] := $00;
    sendcount[1] := byte(newsendcount[1]);
    inc (sendcount[1]);
    newsendcount := @sendcount;
    end;
end;

procedure gamePacketsend (buf:pchar; len:integer);
var
  outchar,recvbuf : array [0..4096] of char ;
begin
  copychar ( buf, recvbuf, len );
  Decode ( @recvbuf[1], len-1, outchar);

  if stratnum = false then                      //初始化封包序列号 (只执行一次)
    begin
    sendcount[0] := byte(outchar[2]);
    sendcount[1] := byte(outchar[3]);
    newsendcount := @sendcount;
    stratnum := true;
    end;
end;


procedure gamePacketrecv (buf:pchar; len:integer);
var
 // i:integer;
  outchar : array [0..20000] of char ;
  recvbuf : array [0..5000] of char ;
begin
  Fillchar(outchar,20001,chr(0));
  Fillchar(recvbuf,5001,chr(0));
  {for i:=0 to 5000 do
  begin
    outchar[i]:=chr(0);
    recvbuf[i]:=chr(0);
  end;
            }
  copychar ( buf, recvbuf, len );
  Decode ( @recvbuf[1], len-1, outchar);

  case ord(outchar[10]) of
  $02 :queren(outchar);
  $03 :zhanghaocon(outchar);
  $04 :speak(outchar);
  $05 :eatmedication(@outchar[11]);//人物状态(年龄/元气/内.外.武.功.元气)
  $06 :gaingoods(outchar);         //往物品栏增加或减少物品
  $07 :addwugong(outchar);       //一层武功
  $08 :equip(outchar); //人物装备
  $09 :changemap(outchar);
  $10 :selfmovexy(outchar);//遇到障碍弹回
  $0A :showmop(outchar);          //显示地图名字
  $0b :npcdie(outchar);
  $0C :say(outchar);               //喊话
  $0f :selfxy(outchar); //人物战斗走动坐标
  $12 :manstate(outchar);        //人物状态
  $16 :attack(outchar);
  $17 :tackattrib(outchar); //人物其他附加属性 如 真气 浩然 等
  $1b :monsterlife(outchar);
  $1C :showdropgoods(outchar);  //显示掉落物品
  $1E : disgoods(outchar);  //消失得物品  
  $20 : usegongfu(outchar);
  $22 : basicskill(outchar);  //无名类武功
  $2F : balk(outchar);           //障碍显示
  $30 : balkdis(outchar);      //障碍消失
  $32 : gonggaolan(outchar);  
  $36 : happly(outchar);
  $3A : happly(outchar);
  $3D : twogest(outchar);  //二层武功
  $3E : gestglass(outchar);//人物镜子
  $43 : trademenu(outchar);  //交易菜单
  $44 : makeskill(outchar);
  $46 : techgoods(outchar); //技能
  $4C : palmwind(outchar); //掌风栏
  $53 : zhitiao(outchar);   //纸条
  $54 : useitem(outchar);   //使用物品
  $56 : threegest(outchar);  //三层武功
  $57 : realgas(outchar);     //真气
  $FD : ipreset(outchar);
  end;
end;

end.


⌨️ 快捷键说明

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