📄 myfun.pas
字号:
unit myfun;
interface
uses
SysUtils,Classes,Windows,gamecode;
function flapgoodsnum(w2:integer;w3:integer):string;//扔东西数量
function flap(x,y,z:integer):string; //扔东西拖放步骤
function tradedragnum(w1:integer;w2:integer):string;//与他人交易物品拖放
function trademenu(tradename:string;x,y:integer):string;//与他人交易
function clickmenu(buyname:string):string; //老板娘类
function clicknpcmenu(buyname:string):string; //技能类
function dragset(w1:integer;w2:integer;w3:integer;w4:integer):string; //拖放设定 w1是自己这里的 如01物品栏 w2是其他位置 w3是自己这里坐标 w3是w2的坐标
function draggoodsnum(w1:integer;w2:integer;w3:integer):string; //直接拖放物品数据
function draggoodsnum1(w1:integer;w2:integer;w3:integer):string; //技能用
function draggoodsnum2(w1:integer;w2:integer;w3:integer):string; //卖技能物品
function clickmonster(w1:string):string; //点击NPC
function leftclickshow2(w1:byte;w2:byte):string; //单击击用 w1表示面板 w2面板里得位置
function leftclickshow1(w1:byte;w2:byte):string; //双击用 w1表示面板 w2面板里得位置
function xuanrenwu(renwu1:string;renwunum:string):string; //选择人物时用
function sendname(zhanghao1:string;mima:string):string;//发送人物帐号密码
function sayanswer(str:string):string; //发言加密
function movexy(face:byte;movex:integer;movey:integer):string; //人物移动
function goodsmima(mima:string;key:integer):string; //设定或解除密码
function makeskilldrag(x1:integer;x2:integer;x3:integer;x4:integer;w1:integer;w2:integer;w3:integer;w4:integer):string;
implementation
//点击NPC菜单
function clickmenu(buyname:string):string;
const click1:array[0..12]of byte=($10,$00,$00,$00,$00,$00,$00,$00,$06,$00,$2b,$03,$00); //单击点击物品,人物,武功得头部
var fbbf :array[0..34]of char;
outstr :array[0..34]of char;//出来的数据
// buyname1:string;
i,wz :integer;
zhanghao :string;
begin
Fillchar(outstr,35,chr(0));
wz:=0;
// buyname1:=chartoascii(pchar(buyname),length(pchar(buyname)));
for i:=0 to 12 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
fbbf[8]:=chr(length(buyname)+3);
for i:=0 to length(pchar(buyname)) do
begin
fbbf[wz]:=pchar(buyname)[i]; //??
wz:=wz+1;
end;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
encode(fbbf,wz,outstr);
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
end;
function clicknpcmenu(buyname:string):string;
const click1:array[0..12]of byte=($14,$00,$13,$00,$00,$00,$00,$00,$06,$00,$29,$03,$00); //单击点击物品,人物,武功得头部
var fbbf :array[0..34]of char;
outstr :array[0..34]of char;//出来的数据
// buyname1:string;
i,wz :integer;
zhanghao :string;
begin
Fillchar(outstr,35,chr(0));
wz:=0;
for i:=0 to 12 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
fbbf[8]:=chr(length(buyname)+3);
fbbf[11]:=chr(length(buyname));
for i:=0 to length(pchar(buyname)) do
begin
fbbf[wz]:=pchar(buyname)[i]; //??
wz:=wz+1;
end;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
encode(fbbf,wz,outstr);
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
end;
//拖放物品
function dragset(w1:integer;w2:integer;w3:integer;w4:integer):string;
const click1:array[0..10]of byte=($21,$00,$13,$00,$00,$00,$00,$00,$17,$00,$16); //单击点击物品,人物,武功得头部
var fbbf :array[0..34]of char;
outstr :array[0..80]of char;//出来的数据
i,wz :integer;
zhanghao :string;
begin
Fillchar(outstr,80,chr(0));
fillchar(fbbf,35,chr(0));
wz:=0;
//定义头部
for i:=0 to 10 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
fbbf[wz]:=chr(w1);//源面板
wz:=wz+1;
fbbf[wz]:=chr(w2); //目标面板
wz:=wz+1;
for i:=0 to 15 do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
fbbf[wz]:=chr(w3); //源位置
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(w4); //目标位置
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
encode(fbbf,wz,outstr);
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
end;
//拖放的物品数量
function draggoodsnum(w1:integer;w2:integer;w3:integer):string;
const click1:array[0..10]of byte=($18,$00,$13,$00,$00,$00,$00,$00,$0e,$00,$1B);
var fbbf :array[0..34]of char;
outstr :array[0..80]of char;//出来的数据
i,wz :integer;
zhanghao :string;
begin
Fillchar(outstr,80,chr(0));
fillchar(fbbf,35,chr(0));
wz:=0;
//定义头部
for i:=0 to 10 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
if w3<255 then fbbf[wz]:=chr(1) //(length(pchar(w3)));//b位 数量位数位
else fbbf[wz]:=chr(2);
wz:=wz+1;
fbbf[wz]:=chr(w1);//源面板的位置
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(w2); //目标面板位置
wz:=wz+1;
//此处不知道方法 暂定此2位为 00 12
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(18);
wz:=wz+1;
//置0位 11-13
for i:=0 to 2 do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
//数量位 chr(HexaToDecimal(copy(w1,1,2)))
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(w3,4),3,2))); //数量后面的位置
wz:=wz+1;
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(w3,4),1,2))); //数量前面的位置
wz:=wz+1;
//最后2位0
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
encode(fbbf,wz,outstr);
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
end;
//技能物品拖放
function draggoodsnum1(w1:integer;w2:integer;w3:integer):string;
const click1:array[0..10]of byte=($18,$00,$13,$00,$00,$00,$00,$00,$0e,$00,$1B);
var fbbf :array[0..34]of char;
outstr :array[0..80]of char;//出来的数据
i,wz :integer;
zhanghao :string;
begin
Fillchar(outstr,80,chr(0));
fillchar(fbbf,35,chr(0));
wz:=0;
//定义头部
for i:=0 to 10 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
if w3<255 then fbbf[wz]:=chr(1) //(length(pchar(w3)));//b位 数量位数位
else fbbf[wz]:=chr(2);
wz:=wz+1;
fbbf[wz]:=chr(w1);//源面板的位置
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(w2); //目标面板位置
wz:=wz+1;
//此处不知道方法 暂定此2位为 00 14
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(20);
wz:=wz+1;
//置0位 11-13
for i:=0 to 2 do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
//数量位 chr(HexaToDecimal(copy(w1,1,2)))
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(w3,4),3,2))); //数量后面的位置
wz:=wz+1;
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(w3,4),1,2))); //数量前面的位置
wz:=wz+1;
//最后2位0
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
encode(fbbf,wz,outstr);
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
end;
//卖技能物品
function draggoodsnum2(w1:integer;w2:integer;w3:integer):string;
const click1:array[0..10]of byte=($18,$00,$00,$00,$00,$00,$00,$00,$0e,$00,$1B);
var fbbf :array[0..34]of char;
outstr :array[0..80]of char;//出来的数据
i,wz :integer;
zhanghao :string;
begin
Fillchar(outstr,80,chr(0));
fillchar(fbbf,35,chr(0));
wz:=0;
//定义头部
for i:=0 to 10 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
if w3<255 then fbbf[wz]:=chr(1) //(length(pchar(w3)));//b位 数量位数位
else fbbf[wz]:=chr(2);
wz:=wz+1;
fbbf[wz]:=chr(w1);//源面板的位置
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(w2); //目标面板位置
wz:=wz+1;
//此处不知道方法 暂定此2位为 00 14
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(22);
wz:=wz+1;
//置0位 11-13
for i:=0 to 2 do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
//数量位 chr(HexaToDecimal(copy(w1,1,2)))
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(w3,4),3,2))); //数量后面的位置
wz:=wz+1;
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(w3,4),1,2))); //数量前面的位置
wz:=wz+1;
//最后2位0
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
encode(fbbf,wz,outstr);
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
end;
//扔东西数量
function flapgoodsnum(w2:integer;w3:integer):string;
const click1:array[0..10]of byte=($18,$00,$00,$00,$00,$00,$00,$00,$0e,$00,$1B);
var fbbf :array[0..34]of char;
outstr :array[0..80]of char;//出来的数据
i,wz :integer;
zhanghao :string;
begin
Fillchar(outstr,80,chr(0));
fillchar(fbbf,35,chr(0));
wz:=0;
//定义头部
for i:=0 to 10 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
if w3<255 then fbbf[wz]:=chr(1) //(length(pchar(w3)));//b位 数量位数位
else fbbf[wz]:=chr(2);
wz:=wz+1;
fbbf[wz]:=chr(w2);//源面板的位置
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(00); //目标面板位置
wz:=wz+1;
//此处不知道方法 暂定此2位为 02
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(2);
wz:=wz+1;
//置0位 11-13
for i:=0 to 2 do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
//数量位 chr(HexaToDecimal(copy(w1,1,2)))
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(w3,4),3,2))); //数量后面的位置
wz:=wz+1;
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(w3,4),1,2))); //数量前面的位置
wz:=wz+1;
//最后2位0
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
encode(fbbf,wz,outstr);
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
end;
//单击
function leftclickshow2(w1:byte;w2:byte):string; //单击击用 w1表示面板 w2面板里得位置
const click1:array[0..10]of byte=($17,$00,$13,$00,$00,$00,$00,$00,$0D,$00,$14); //点击物品,人物,武功得头部
var
fbbf :array[0..31]of char;
where1 :array[0..1] of char; //代表是那个面板 如 物品,一层武功 等
where2 :array[0..1] of char; //物品栏里得位置 或其他
i,j,wz :integer;
outstr :array[0..31]of char;
zhanghao :string;
begin
where1[0]:=chr(w1);
where1[1]:=chr(0);
where2[0]:=chr(w2);
where2[1]:=chr(0);
wz:=0;
//清空fbbf
for j:=0 to 31 do
begin
fbbf[j]:=chr(0);
outstr[j]:=chr(0);
end;
//定义头部
for i:=0 to 10 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
//定义面板 或人物
fbbf[wz]:=where1[0];
wz:=wz+1;
fbbf[wz]:=where1[1];
wz:=wz+1;
//此处暂不知道方式 先定义为0
for i:=0 to 3 do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
//定义某面板得位置 或方向
fbbf[wz]:=where2[0];
wz:=wz+1;
fbbf[wz]:=where2[1];
wz:=wz+1;
//后面部分可以定义为坐标 目前先置0
for i:=0 to 4 do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
encode(fbbf,wz,outstr); //加密
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
// frmtest.idtelnetdemo.Write(zhanghao);
end;
function clickmonster(w1:string):string; //攻击NPC
const click1:array[0..10]of byte=($17,$00,$13,$00,$00,$00,$00,$00,$0D,$00,$14); //单击点击物品,人物,武功得头部
var
fbbf :array[0..31]of char;
where1 :array[0..4] of char; //代表是那个面板 如 物品,一层武功 等
// where2 :array[0..1] of char; //物品栏里得位置 或其他
i,j,wz :integer;
outstr :array[0..31]of char;
zhanghao :string;
begin
where1[0]:=chr(HexaToDecimal(copy(w1,1,2)));
where1[1]:=chr(HexaToDecimal(copy(w1,3,2)));
where1[2]:=chr(HexaToDecimal(copy(w1,5,2)));
where1[3]:=chr(HexaToDecimal(copy(w1,7,2)));
//where2[0]:=chr(w2);
//where2[1]:=chr(0);
wz:=0;
//清空fbbf
for j:=0 to 31 do
begin
fbbf[j]:=chr(0);
outstr[j]:=chr(0);
end;
//定义头部
for i:=0 to 10 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
//攻击的标志设定 从b为开始
fbbf[wz]:=chr(3);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
//被攻击的monster代码
fbbf[wz]:=where1[0];
wz:=wz+1;
fbbf[wz]:=where1[1];
wz:=wz+1;
fbbf[wz]:=where1[2];
wz:=wz+1;
fbbf[wz]:=where1[3];
wz:=wz+1;
//定义方向
fbbf[wz]:=chr(5);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
{ //此处暂不知道方式 先定义为0
for i:=0 to 3 do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
//定义某面板得位置 或方向
fbbf[wz]:=where2[0];
wz:=wz+1;
fbbf[wz]:=where2[1];
wz:=wz+1;
} //后面部分可以定义为坐标 目前先置0
for i:=0 to 4 do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
fbbf[wz]:=chr(0);
wz:=wz+1;
encode(fbbf,wz,outstr); //加密
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
// frmtest.idtelnetdemo.Write(zhanghao);
end;
//点击物品
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -