?? 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 + -