?? myfun.pas
字號:
function leftclickshow1(w1:byte;w2:byte):string; //雙擊用 w1表示面板 w2面板里得位置
const click1:array[0..10]of byte=($17,$00,$13,$00,$00,$00,$00,$00,$0D,$00,$15); //點擊物品,人物,武功得頭部
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 movexy(face:byte;movex:integer;movey:integer):string; //人物移動
const move1:array[0..10]of byte=($15,$00,$00,$00,$00,$00,$00,$00,$0B,$00,$0B);
var i,j,wz :integer;
fbbf :array[0..40]of char;
outstr :array[0..40]of char;
zhanghao :string;
begin
wz:=0;
for i:=0 to 10 do
begin
fbbf[wz]:=chr(move1[i]);
wz:=wz+1;
end;
fbbf[wz]:=chr(face);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
//設定x的值
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(movex,4),3,2)));
wz:=wz+1;
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(movex,4),1,2)));
wz:=wz+1;
//設定y的值
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(movey,4),3,2)));
wz:=wz+1;
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(movey,4),1,2)));
wz:=wz+1;
//設定末尾4位值
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
//加密發送數據
encode(fbbf,wz,outstr); //加密
zhanghao:=copy(outstr,1,28);
zhanghao:='('+zhanghao+')';
result:=zhanghao;
// frmtest.idtelnetdemo.Write(zhanghao);
end;
//答題字符串加密發送部分
function sayanswer(str:string):string;
const namestr1:array[0..6]of byte=($00,$13,$00,$00,$00,$00,$00);
var
sayword:array[0..255]of char;
outstr:array[0..255]of char;
j,wz: integer;
renwu,zhanghao:string;
i : integer;
s : string;
begin
for j:=0 to 255 do
begin
sayword[j]:=chr(0);
outstr[j]:=chr(0);
end;
// frmtest.FlatMemo2.Lines.Add(str);
s := str; //讀取輸入欄得文字
sayword[0]:=chr(13+length(pchar(s))); //取得頭部長度
wz:=1;
for i:=0 to 6 do
begin
sayword[wz]:=chr(namestr1[i]);
wz:=wz+1;
end;
sayword[wz]:=chr(3+length(pchar(s))); //
wz:=wz+1;
sayword[wz]:=chr(0);
wz:=wz+1;
sayword[wz]:=chr(12); //標志位 此位應該是0c
wz:=wz+1;
sayword[wz]:=chr(length(pchar(s))); //文字數據長度
wz:=wz+1;
sayword[wz]:=chr(0);
wz:=wz+1;
for i:=0 to length(pchar(s)) do //分解字符串
begin
sayword[wz]:=pchar(s)[i];
wz:=wz+1;
end;
wz:=wz+1;
sayword[wz]:=chr(0);
encode(sayword,wz,outstr); //加密
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
// frmtest.idtelnetdemo.Write(zhanghao); //發送
end;
//定義人物名字發送封包 帳號密碼發送
function sendname(zhanghao1:string;mima:string):string;
const namestr1:array[0..10]of byte=($44,$00,$01,$00,$00,$00,$00,$00,$3A,$00,$03);
var zhanghaomima:array[0..68]of char;
outstr:array[0..300]of char;
j,wz: integer;
zhanghao:string;
begin
wz:=0;
for j:=0 to 10 do
begin
zhanghaomima[wz]:=chr(namestr1[j]);
wz:=wz+1;
end;
for j:=0 to (length(zhanghao1)) do
begin
zhanghaomima[wz]:=pchar(zhanghao1)[j];
wz:=wz+1;
end;
for j:=1 to (18-length(zhanghao1)) do
begin
zhanghaomima[wz]:=chr(0);
wz:=wz+1;
end;
for j:=0 to (length(mima)-1) do
begin
zhanghaomima[wz]:=pchar(mima)[j];
wz:=wz+1;
end;
for j:=1 to (38-length(mima))+1 do
begin
zhanghaomima[wz]:=chr(0);
wz:=wz+1;
end;
encode(zhanghaomima,wz,@outstr);
zhanghao:=copy(outstr,0,92);
zhanghao:='('+zhanghao+')';
result:=zhanghao;
// frmtest.idtelnetdemo.Write(zhanghao);
end;
//選人物
function xuanrenwu(renwu1:string;renwunum:string):string; //根據人物得位置 按需要發送
const namestr1:array[0..10]of byte=($26,$00,$02,$00,$00,$00,$00,$00,$1c,$00,$08);
const namestr2:array[0..10]of byte=($00,$00,$4b,$00,$00,$00,$74,$FD,$12,$00,$00);
var xuanzerenwu:array[0..38]of char;
outstr:array[0..300]of char;
j,wz: integer;
renwu,zhanghao:string;
ts:TStringList;
begin
ts := TStringList.Create ;
ts.Delimiter:= ',' ;
ts.DelimitedText:=renwu1;
renwu:=ts.Strings[strtoint(renwunum)-1];
if renwu<>'' then
begin
// end;
//填頭部
wz:=0;
for j:=0 to 10 do
begin
xuanzerenwu[wz]:=chr(namestr1[j]);
wz:=wz+1;
end;
//名字部分
for j:=0 to length(renwu) do
begin
xuanzerenwu[wz]:=pchar(renwu)[j];
wz:=wz+1;
end;
//補名字不足部分
for j:=1 to (17-length(renwu)) do
begin
xuanzerenwu[wz]:=chr(0);
wz:=wz+1;
end;
//填尾巴
for j:=0 to 10 do
begin
xuanzerenwu[wz]:=chr(namestr2[j]);
wz:=wz+1;
end;
encode(xuanzerenwu,wz,@outstr);
zhanghao:=copy(outstr,0,52);
zhanghao:='('+zhanghao+')';
result:=zhanghao;
// frmtest.idtelnetdemo.Write(zhanghao);
// frmtest.Timer1.Enabled:=true;
end;
// else
// frmtest.FlatMemo1.Lines.Add('你選擇了沒有人物得位置');
end;
function goodsmima(mima:string;key:integer):string; //設定或解除密碼
const click1:array[0..10]of byte=($15,$00,$13,$00,$00,$00,$00,$00,$0b,$00,$28); //點擊物品,人物,武功得頭部
var
fbbf :array[0..31]of char;
i,j,wz :integer;
outstr :array[0..31]of char;
zhanghao :string;
begin
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;
//定義密碼
for i:=0 to length(mima)-1 do
begin
fbbf[wz]:=pchar(mima)[i];
wz:=wz+1;
end;
for i:=0 to (8-length(mima)) do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
fbbf[wz]:=chr(key);
wz:=wz+1;
encode(fbbf,wz,outstr); //加密
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
end;
function trademenu(tradename:string;x,y:integer):string;
const click1:array[0..16]of byte=($21,$00,$00,$00,$00,$00,$00,$00,$17,$00,$16,$01,$03,$00,$00,$00,$00 ); //拖放到對方身上得頭部
var fbbf :array[0..40]of char;
outstr :array[0..60]of char;//出來的數據
where1 :array[0..4] of char;
i,wz :integer;
zhanghao :string;
begin
Fillchar(outstr,41,chr(0));
where1[0]:=chr(HexaToDecimal(copy(tradename,1,2)));
where1[1]:=chr(HexaToDecimal(copy(tradename,3,2)));
where1[2]:=chr(HexaToDecimal(copy(tradename,5,2)));
where1[3]:=chr(HexaToDecimal(copy(tradename,7,2)));
wz:=0;
//與人交易頭部
for i:=0 to 16 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
//設定交易者得代碼
for i:=0 to 3 do
begin
fbbf[wz]:=where1[i];
wz:=wz+1;
end;
for i:=0 to 3 do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
//設定x的值
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(x,4),3,2)));
wz:=wz+1;
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(x,4),1,2)));
wz:=wz+1;
//設定y的值
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(y,4),3,2)));
wz:=wz+1;
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(y,4),1,2)));
wz:=wz+1;
for i:=0 to 3 do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
wz:=wz+1;
encode(fbbf,wz,outstr);
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
end;
//交易物品拖放 w1代表數量
function tradedragnum(w1:integer;w2:integer):string;
const click1:array[0..11]of byte=($18,$00,$00,$00,$00,$00,$00,$00,$0e,$00,$1B,$01);
click2:array[0..6]of byte=($00,$00,$00,$0f,$00,$00,$00);
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 11 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
//物品欄物品位置
fbbf[wz]:=chr(w2);
wz:=wz+1;
for i:=0 to 6 do
begin
fbbf[wz]:=chr(click2[i]);
wz:=wz+1;
end;
//定義物品數量
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(w2,4),3,2)));
wz:=wz+1;
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(w2,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 flap(x,y,z:integer):string;
const click1:array[0..24]of byte=($21,$00,$00,$00,$00,$00,$00,$00,$17,$00,$16,$01,$03,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00 ); //拖放到對方身上得頭部
var fbbf :array[0..40]of char;
outstr :array[0..60]of char;//出來的數據
i,wz :integer;
zhanghao :string;
begin
Fillchar(outstr,41,chr(0));
wz:=0;
//扔東西頭部
for i:=0 to 24 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
//設定x的值
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(x,4),3,2)));
wz:=wz+1;
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(x,4),1,2)));
wz:=wz+1;
//設定y的值
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(y,4),3,2)));
wz:=wz+1;
fbbf[wz]:=chr(HexaToDecimal(copy(inttohex(y,4),1,2)));
wz:=wz+1;
fbbf[wz]:=chr(z);
wz:=wz+1;
for i:=0 to 3 do
begin
fbbf[wz]:=chr(0);
wz:=wz+1;
end;
wz:=wz+1;
encode(fbbf,wz,outstr);
zhanghao:=outstr;
zhanghao:='('+zhanghao+')';
result:=zhanghao;
end;
//技能物品拖放
function makeskilldrag(x1:integer;x2:integer;x3:integer;x4:integer;w1:integer;w2:integer;w3:integer;w4:integer):string;
const click1:array[0..10]of byte=($1b,$00,$00,$00,$00,$00,$00,$00,$11,$00,$37); //拖放到技能框頭部
var fbbf :array[0..40]of char;
outstr :array[0..60]of char;//出來的數據
i,wz :integer;
zhanghao :string;
begin
Fillchar(outstr,41,chr(0));
wz:=0;
for i:=0 to 10 do
begin
fbbf[wz]:=chr(click1[i]);
wz:=wz+1;
end;
fbbf[wz]:=chr(x1);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(x2);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(x3);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(x4);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(w1);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
fbbf[wz]:=chr(w2);
wz:=wz+1;
fbbf[wz]:=chr(0);
wz:=wz+1;
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;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -