亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? game.pas

?? 仙境傳說(RO)私人服務器端源代碼。第一次上傳。
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
unit Game;interfaceuses	Windows, MMSystem, Forms, Classes, Math, SysUtils, ScktComp,	Path, Script, Common;//==============================================================================// 娭悢掕媊		procedure sv3PacketProcess(Socket: TCustomWinSocket);  //edited by The Harbinger -- darkWeiss version//==============================================================================implementation//==============================================================================// 僎乕儉僒乕僶乕僷働僢僩張棟procedure sv3PacketProcess(Socket: TCustomWinSocket);var	i    :integer;  h    :integer;	j    :integer;	k    :integer;	ii   :integer;	cmd  :word;	w    :word;	w1   :word;	w2   :word;  w3   :word;{捛壛}	wjob:Int64;{捛壛僐僐傑偱}{傾僀僥儉惢憿捛壛}	m1     :word;//庡偵惢憿偝傟傞傾僀僥儉偺ID偲偟偰棙梡	m      :array[0..2] of word;//庡偵惢憿傾僀僥儉偵晄壜偝傟傞懏惈愇丄惎偺偐偗傜偺ID偲偟偰棙梡	e,e2   :word;//庡偵惢憿帪徚旓傾僀僥儉偺Inventory撪専嶕帪偵棙梡	anvil  :word;//嬥晘偵傛?zhèn)羵膹銈獋閻瑢鳁?/span>{傾僀僥儉惢憿捛壛僐僐傑偱}	id1,id2:cardinal;	l         :cardinal;	l2        :cardinal;	weight    :cardinal;  c         :cardinal;	b         :byte;	len       :integer;	str       :string;  str2      :string;	accountid :string;	charaid   :string;	npcid     :string;	tp  :TPlayer;	tc  :TChara;	tc1 :TChara;	tm  :TMap;	tn  :TNPC;	ts  :TMob;  ts1 :TMob;  tss :TSlaveDB;  ma  :TMArrowDB;  tid :TIDTbl;	ti  :TItem;	tk  :TSkill;  tkf :TKafra;  tbn :TBan;	tl  :TSkillDB;	td  :TItemDB;{傾僀僥儉惢憿捛壛}	tma :TMaterialDB;{傾僀僥儉惢憿捛壛僐僐傑偱}{僷乕僥傿乕婡擻捛壛}	tpa :TParty;{僷乕僥傿乕婡擻捛壛僐僐傑偱}{僠儍僢僩儖乕儉婡擻捛壛}	tcr :TChatRoom;{僠儍僢僩儖乕儉婡擻捛壛僐僐傑偱}{業(yè)揦僗僉儖捛壛}	tv  :TVender;{業(yè)揦僗僉儖捛壛僐僐傑偱}  {庢堷婡擻捛壛}	tdl :TDealings;{庢堷婡擻捛壛僐僐傑偱}{僉儏乕儁僢僩}        tpd             :TPetDB;        tmd             :TMobDB;{巵{敔捛壛}	tsmn	:TSummon;{巵{敔捛壛僐僐傑偱}        tpe             :TPet;        i1, j1, k1      :integer;{僉儏乕儁僢僩偙偙傑偱}{NPC僀儀儞僩捛壛}	mi  :MapTbl;{NPC僀儀儞僩捛壛僐僐傑偱}{僊儖僪婡擻捛壛}	tg    :TGuild;	tg1   :TGuild;	tgb   :TGBan;	tgl   :TGRel;	tp1   :TPlayer;{僊儖僪婡擻捛壛僐僐傑偱}	ta  :TMapList;	xy  :TPoint;  s   :string;	sl  :TStringList;	ww  :array of array of word;	tmpbuf:array of byte;  txt:TextFile;begin  j := 0;  tcr := nil;	while Socket.ReceiveLength >= 2 do begin		//len := Socket.ReceiveLength;		Socket.ReceiveBuf(buf[0], 2);		RFIFOW(0, cmd);		//if cmd = $00c8 then		//	DebugOut.Lines.Add('!');		tc := Socket.Data;		if (cmd > $200) then begin			//DebugOut.Lines.Add('晄柧側僷働僢僩' + IntToStr(Socket.ReceiveLength) + '僶僀僩傪攋婞偟傑偟偨');			SetLength(tmpbuf, Socket.ReceiveLength);			Socket.ReceiveBuf(tmpbuf[0], Socket.ReceiveLength);			continue;		end;		Assert((cmd > 0) and (cmd <= $200), 'Packet Type: index error ' + IntToStr(cmd));		if PacketLength[cmd] = -1 then begin			Socket.ReceiveBuf(buf[2], 2);			RFIFOW(2, w);			Socket.ReceiveBuf(buf[4], w - 4);			//DebugOut.Lines.Add(Format('3:%.8d CMD %.4x len:%d plen:%d', [tc.ID, cmd, w, len]));		end else begin			Socket.ReceiveBuf(buf[2], PacketLength[cmd] - 2);			//if cmd <> $0072 then begin			//	DebugOut.Lines.Add(Format('3:%.8d CMD %.4x', [tc.ID, cmd]));			//end;		end;    //DebugOut.Lines.Add('Command:' + IntToStr(cmd));		case cmd of		//--------------------------------------------------------------------------		$0072: //僎乕儉嶪愙懕梫媮			begin				RFIFOL( 2, l);				accountid := IntToStr(l);				//DebugOut.Lines.Add(Format('3:%.8d CMD %.4x', [l, cmd]));				//DebugOut.Lines.Add('		AccountID = ' + IntToHex(l, 4));				RFIFOL( 6, l2);				charaid := IntToStr(l2);				//DebugOut.Lines.Add('		CharaID = ' + IntToHex(l, 4));				RFIFOL(10, id1);				//DebugOut.Lines.Add('		LoginID1 = ' + IntToHex(id1, 4));				//RFIFOL(14, id2);				if (Player.IndexOf(l) <> -1) and (Chara.IndexOf(l2) <> -1) then begin					tp := Player.IndexOfObject(l) as TPlayer;					tc := Chara.IndexOfObject(l2) as TChara;					//if tc.IP = Socket.RemoteAddress then begin					if (tp.LoginID1 = id1) and (tp.LoginID1 <> 0) then begin						tc.ver2 := tp.ver2;						//tp.LoginID1 := 0;						tc.Login := 1;						//tc.ID := tp.ID;						//tc.Gender := tp.Gender;						tc.PData := tp;						if CharaPID.IndexOf(tc.ID) = -1 then CharaPID.AddObject(tc.ID, tc);						tc.Socket := Socket;						Socket.Data := tc;						WFIFOL(0, $00000000);						Socket.SendBuf(buf, 4);						WFIFOW(0, $0073);						WFIFOL(2, timeGetTime());						WFIFOM1(6, tc.Point);						WFIFOW(9, $0505);						Socket.SendBuf(buf, 11);						//慜夞儚乕僾偵幐攕偟偰棊偪偨偲偒偺暅媽張棟						if tc.tmpMap <> '' then begin							tc.Map := tc.tmpMap;							tc.tmpMap := '';						end;						//儅僢僾儘乕僪						if Map.IndexOf(tc.Map) = -1 then begin							MapLoad(tc.Map);						end;{僊儖僪婡擻捛壛}						j := GuildList.IndexOf(tc.GuildID);						if (j <> -1) then begin							tg := GuildList.Objects[j] as TGuild;							//儊儞僶乕偵捠抦							WFIFOW( 0, $016d);							WFIFOL( 2, tc.ID);							WFIFOL( 6, tc.CID);							WFIFOL(10, 1);							SendGuildMCmd(tc, 14, true);							//僊儖僪忣曬							SendGLoginInfo(tg, tc);						end;{僊儖僪婡擻捛壛僐僐傑偱}					end else begin						WFIFOW(0, $0074); //偁偭偰傞偐側丠						WFIFOB(2, 0);						Socket.SendBuf(buf, 3);					end;				end;			end;		//--------------------------------------------------------------------------		$007d: //MAP儘乕僪姰椆			begin				if tc.tmpMap <> '' then begin					tc.Map := tc.tmpMap;					tc.tmpMap := '';				end;				tm := Map.Objects[Map.IndexOf(tc.Map)] as TMap;				while tm.Mode < 2 do					Application.ProcessMessages;				tc.MData := tm;				if CharaPID.IndexOf(tc.ID) = -1 then CharaPID.AddObject(tc.ID, tc);        mi := MapInfo.Objects[MapInfo.IndexOf(tm.Name)] as MapTbl;				//儅僢僾偵帺暘偑嫃傞偙偲傪婰榐				tm.CList.AddObject(tc.ID, tc);				tm.Block[tc.Point.X div 8][tc.Point.Y div 8].CList.AddObject(tc.ID, tc);				//惗偒曉傝張棟				if tc.Sit = 1 then tc.Sit := 3;				if tc.HP = 0 then if tc.JID = 0 then tc.HP := tc.MAXHP div 2 else tc.HP := 1;{業(yè)揦僗僉儖捛壛}				tc.VenderID := 0;{業(yè)揦僗僉儖捛壛僐僐傑偱}{僠儍僢僩儖乕儉婡擻捛壛}				tc.ChatRoomID := 0;{僠儍僢僩儖乕儉婡擻捛壛僐僐傑偱}{庢堷婡擻捛壛}				tc.DealingID := 0;				tc.PreDealID := 0;{庢堷婡擻捛壛僐僐傑偱}				//僽儘僢僋張棟				for j := tc.Point.Y div 8 - 2 to tc.Point.Y div 8 + 2 do begin					for i := tc.Point.X div 8 - 2 to tc.Point.X div 8 + 2 do begin						//NPC儘乕僪						for k := 0 to tm.Block[i][j].NPC.Count - 1 do begin							tn := tm.Block[i][j].NPC.Objects[k] as TNPC;							if (abs(tc.Point.X - tn.Point.X) < 16) and (abs(tc.Point.Y - tn.Point.Y) < 16) then begin{NPC僀儀儞僩捛壛}                //SendNData(Socket, tn, tc.ver2);								if (tn.Enable = true) then begin									SendNData(Socket, tn,tc.ver2);									if (tn.ScriptInitS <> -1) and (tn.ScriptInitD = false) then begin										//OnInit儔儀儖傪幚峴										//DebugOut.Lines.Add(Format('OnInit Event(%d)', [tn.ID]));										tc1 := TChara.Create;										tc1.TalkNPCID := tn.ID;										tc1.ScriptStep := tn.ScriptInitS;										tc1.AMode := 3;										tc1.AData := tn;										tc1.Login := 0;										NPCScript(tc1,0,1);										tn.ScriptInitD := true;										tc1.Free;									end;									if (tn.ChatRoomID <> 0) then begin										//僠儍僢僩儖乕儉傪昞帵偡傞										ii := ChatRoomList.IndexOf(tn.ChatRoomID);										if (ii <> -1) then begin											tcr := ChatRoomList.Objects[ii] as TChatRoom;											if (tn.ID = tcr.MemberID[0]) then begin												w := Length(tcr.Title);												WFIFOW(0, $00d7);												WFIFOW(2, w + 17);												WFIFOL(4, tcr.MemberID[0]);												WFIFOL(8, tcr.ID);												WFIFOW(12, tcr.Limit);												WFIFOW(14, tcr.Users);												WFIFOB(16, tcr.Pub);												WFIFOS(17, tcr.Title, w);												if tc.Socket <> nil then begin													tc.Socket.SendBuf(buf, w + 17);												end;											end;										end;									end;								end;{NPC僀儀儞僩捛壛僐僐傑偱}							end;						end;						//廃傝偺恖偵捠抦&廃傝偵偄傞恖傪昞帵偝偣傞						for k := 0 to tm.Block[i][j].CList.Count - 1 do begin							tc1 := tm.Block[i][j].CList.Objects[k] as TChara;							if (tc <> tc1) and (abs(tc.Point.X - tc1.Point.X) < 16) and (abs(tc.Point.Y - tc1.Point.Y) < 16) then begin								SendCData(tc.Socket, tc1);								SendCData(tc1.Socket, tc, true);{僠儍僢僩儖乕儉婡擻捛壛}								//廃曈偺僠儍僢僩儖乕儉傪昞帵								ChatRoomDisp(tc.Socket, tc1);{僠儍僢僩儖乕儉婡擻捛壛僐僐傑偱}{業(yè)揦僗僉儖捛壛}								//廃曈偺業(yè)揦傪昞帵								VenderDisp(tc.Socket, tc1);{業(yè)揦僗僉儖捛壛僐僐傑偱}							end;						end;						//儌儞僗僞乕儘乕僪						for k := 0 to tm.Block[i][j].Mob.Count - 1 do begin							ts := tm.Block[i][j].Mob.Objects[k] as TMob;							if (abs(tc.Point.X - ts.Point.X) < 16) and (abs(tc.Point.Y - ts.Point.Y) < 16) then begin								SendMData(Socket, ts);							end;						end;					end;				end;				//僗僉儖憲怣				SendCSkillList(tc);				{				WFIFOW( 0, $010f);				j := 0;				for i := 1 to 157 do begin					if tc.Skill[i].Lv <> 0 then begin						WFIFOW( 0+37*j+4, i);						WFIFOW( 2+37*j+4, tc.Skill[i].Data.SType);						WFIFOW( 4+37*j+4, 0);						WFIFOW( 6+37*j+4, tc.Skill[i].Lv);						WFIFOW( 8+37*j+4, tc.Skill[i].Data.SP[tc.Skill[i].Lv]);						WFIFOW(10+37*j+4, tc.Skill[i].Data.Range);						WFIFOS(12+37*j+4, tc.Skill[i].Data.IDC, 24);						WFIFOB(36+37*j+4, 0);						Inc(j);					end;				end;				WFIFOW( 2, 4+37*j);				Socket.SendBuf(buf, 4+37*j);				}				//僷儔儊乕僞				CalcStat(tc);				SendCStat(tc);				//傾僀僥儉僨乕僞				WFIFOW(0, $00a3);				j := 0;				for i := 1 to 100 do begin					if (tc.Item[i].ID <> 0) and (not tc.Item[i].Data.IEquip) then begin						WFIFOW( 4 +j*10, i);						WFIFOW( 6 +j*10, tc.Item[i].Data.ID);						WFIFOB( 8 +j*10, tc.Item[i].Data.IType);						WFIFOB( 9 +j*10, tc.Item[i].Identify);						WFIFOW(10 +j*10, tc.Item[i].Amount);						if tc.Item[i].Data.IType = 10 then							WFIFOW(12 +j*10, 32768)						else							WFIFOW(12 +j*10, 0);						Inc(j);					end;				end;				WFIFOW(2, 4+j*10);				Socket.SendBuf(buf, 4+j*10);				//憰旛僨乕僞				WFIFOW(0, $00a4);				j := 0;				for i := 1 to 100 do begin					if (tc.Item[i].ID <> 0) and tc.Item[i].Data.IEquip then begin						WFIFOW( 4 +j*20, i);						WFIFOW( 6 +j*20, tc.Item[i].Data.ID);						WFIFOB( 8 +j*20, tc.Item[i].Data.IType);						WFIFOB( 9 +j*20, tc.Item[i].Identify);						with tc.Item[i].Data do begin							if (tc.JID = 12) and (IType = 4) and (Loc = 2) and								 ((View = 1) or (View = 2) or (View = 6)) then								WFIFOW(10 +j*20, 34)							else								WFIFOW(10 +j*20, Loc);						end;						WFIFOW(12 +j*20, tc.Item[i].Equip);						WFIFOB(14 +j*20, tc.Item[i].Attr);						WFIFOB(15 +j*20, tc.Item[i].Refine);						WFIFOW(16 +j*20, tc.Item[i].Card[0]);						WFIFOW(18 +j*20, tc.Item[i].Card[1]);						WFIFOW(20 +j*20, tc.Item[i].Card[2]);						WFIFOW(22 +j*20, tc.Item[i].Card[3]);						Inc(j);					end;				end;				WFIFOW(2, 4+j*20);				Socket.SendBuf(buf, 4+j*20);				//憰旛偟偰偄傞媩				j := 0;				for i := 1 to 100 do begin

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
爽好多水快深点欧美视频| 蜜桃一区二区三区在线| 国产成人免费视频网站| 久久久久久亚洲综合| 国产夫妻精品视频| 国产精品人妖ts系列视频| 粉嫩久久99精品久久久久久夜| 国产精品全国免费观看高清| 99久久99久久精品免费观看| 亚洲精品你懂的| 欧美精品久久99| 久久99精品国产| 91麻豆精品国产| 久久精品理论片| 国产亚洲精品资源在线26u| 丰满岳乱妇一区二区三区| 亚洲情趣在线观看| 3751色影院一区二区三区| 国产综合色产在线精品| 亚洲欧洲日产国码二区| 欧美亚洲国产一区在线观看网站| 日韩影院免费视频| 国产无遮挡一区二区三区毛片日本| 91影院在线观看| 美腿丝袜一区二区三区| 国产精品另类一区| 欧美精品久久一区| 国产盗摄视频一区二区三区| 综合久久久久久| 日韩欧美一区二区久久婷婷| youjizz国产精品| 免费一级欧美片在线观看| 国产精品乱码人人做人人爱 | 久久国产精品露脸对白| 久久精品亚洲乱码伦伦中文| 在线一区二区三区四区| 国内精品嫩模私拍在线| 亚洲综合久久久| 国产日产欧美一区二区三区| 欧美揉bbbbb揉bbbbb| 丰满少妇在线播放bd日韩电影| 亚洲高清久久久| 国产精品久久国产精麻豆99网站| 欧美一区二区大片| 91福利精品视频| 国产iv一区二区三区| 欧美96一区二区免费视频| 亚洲欧美日韩国产综合在线| 日韩欧美中文字幕一区| 亚洲品质自拍视频网站| 91精品在线免费| 99国内精品久久| 久久国产精品区| 亚洲国产欧美日韩另类综合| 国产欧美日韩在线看| 欧美一区二区三区喷汁尤物| 色综合久久天天| 成人午夜激情片| 国产米奇在线777精品观看| 美女一区二区三区| 亚洲国产精品久久艾草纯爱 | 色婷婷亚洲精品| 亚洲免费av在线| 精品va天堂亚洲国产| 欧美午夜寂寞影院| 99精品偷自拍| 成人综合在线视频| 国产精品夜夜嗨| 韩国欧美国产一区| 久久精品国产77777蜜臀| 午夜视频一区在线观看| 亚洲国产你懂的| 亚洲福中文字幕伊人影院| 高清视频一区二区| 国产一区二区三区免费看| 精品一区二区综合| 麻豆91在线观看| 久久www免费人成看片高清| 美日韩黄色大片| 国产在线精品免费av| 国产精品一卡二| 丰满亚洲少妇av| 99国产精品久久久| 色一情一乱一乱一91av| 91激情五月电影| 欧美日韩一区二区在线观看视频| 欧美日韩亚洲国产综合| 欧美精品欧美精品系列| 日韩欧美成人激情| 久久精品一区二区三区不卡牛牛| 国产欧美一区二区精品秋霞影院 | 欧美视频一二三区| 欧美日韩精品系列| 日韩一区二区三区在线视频| 精品久久久久久综合日本欧美| 欧美va亚洲va| 亚洲国产精品99久久久久久久久| 国产精品不卡视频| 亚洲国产aⅴ成人精品无吗| 午夜精品福利一区二区三区蜜桃| 免费成人性网站| 国产99一区视频免费| 99re成人精品视频| 欧美一区二区三区在| 精品成a人在线观看| 中文字幕中文字幕中文字幕亚洲无线| 一区二区三区在线免费| 五月婷婷色综合| 国产高清亚洲一区| 欧洲av一区二区嗯嗯嗯啊| 欧美一区二区三区免费在线看| 久久久久久久电影| 一区二区三区在线视频播放| 青青青爽久久午夜综合久久午夜| 国产99久久久久| 欧美日韩在线播| 国产欧美精品一区二区色综合| 国产成人超碰人人澡人人澡| 在线观看三级视频欧美| 精品免费国产二区三区| 国产精品美女一区二区三区 | 91麻豆精品国产自产在线| 久久精品亚洲乱码伦伦中文 | 爽好久久久欧美精品| 国产成人亚洲综合a∨婷婷| 91福利精品视频| 国产女人水真多18毛片18精品视频 | 精品亚洲欧美一区| 色综合久久综合网97色综合 | 欧美日韩国产不卡| 日本一区二区三区在线观看| 午夜伦理一区二区| 成人国产精品视频| 欧美大尺度电影在线| 亚洲三级久久久| 国产精品一区在线观看你懂的| 在线免费av一区| 国产精品日产欧美久久久久| 精久久久久久久久久久| 欧美日韩成人在线一区| 亚洲精品高清在线观看| 国产精品白丝av| 日韩亚洲国产中文字幕欧美| 亚洲六月丁香色婷婷综合久久| 久久精品国产澳门| 在线成人av网站| 亚洲一二三四在线| 91蝌蚪porny九色| 亚洲国产成人私人影院tom| 蜜臀精品久久久久久蜜臀| 欧美国产日本韩| 韩国精品在线观看| 欧美一区二区免费视频| 亚洲第一二三四区| 色爱区综合激月婷婷| 美脚の诱脚舐め脚责91| 天天色天天操综合| 97久久精品人人做人人爽50路| 久久亚洲二区三区| 久久国产精品一区二区| 欧美一级精品大片| 午夜欧美一区二区三区在线播放| 91一区二区三区在线播放| 国产精品色噜噜| 国产电影一区在线| 国产三级欧美三级日产三级99| 精品一区二区三区在线视频| 日韩视频免费观看高清完整版| 日韩av电影免费观看高清完整版在线观看| 欧美综合亚洲图片综合区| 一区二区三区日韩在线观看| 一本大道久久a久久综合婷婷| 亚洲三级在线观看| 色婷婷狠狠综合| 亚洲精品视频一区| 在线观看亚洲精品视频| 午夜视频在线观看一区二区| 777奇米成人网| 蜜桃av噜噜一区| 国产午夜一区二区三区| 国产福利一区在线| 国产精品免费视频观看| 91视视频在线直接观看在线看网页在线看 | 欧美精品色综合| 日本不卡一区二区三区| 欧美一区二区人人喊爽| 国产在线一区观看| 国产精品理论在线观看| 色综合天天综合给合国产| 亚洲综合久久av| 欧美本精品男人aⅴ天堂| 国产真实乱对白精彩久久| 中文av字幕一区| 91福利精品视频| 精品一区二区三区影院在线午夜| 国产亚洲短视频| 最新久久zyz资源站| 色哟哟国产精品免费观看| 日韩激情一二三区| 国产三级精品三级在线专区|