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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? script.pas

?? 仙境傳說(RO)私人服務(wù)器端源代碼.rar
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
unit Script;interfaceuses	Windows, Types, SysUtils, Common, MMSystem;//==============================================================================// 娭悢掕媊		procedure NPCScript(tc:TChara; value:cardinal = 0; mode:byte = 0); //edited by The Harbinger -- darkWeiss version//==============================================================================implementation//==============================================================================procedure NPCScript(tc:TChara; value:cardinal = 0; mode:byte = 0);var	i,j,k,l :integer;  m       :integer;	cnt     :integer;	str     :string;	p       :pointer;	len     :cardinal;	flag    :boolean;	tn      :TNPC;	td      :TItemDB;{NPC僀儀儞僩捛壛}	ts      :TMob;	ts1     :TMob;	tm      :TMap;	tm1     :TMap;	tn1     :TNPC;	tc1     :TChara;  tg      :TGuild;  tgc     :TCastle;	w       :word;	Tick    :cardinal;	tr      :NTimer;	tcr     :TChatRoom;	mi      :MapTbl;{NPC僀儀儞僩捛壛僐僐傑偱}begin	flag := false;  	if (tc.AMode <> 3) then exit;	tn := tc.AData;	//with tn do begin		//嫍棧僠僃僢僋{NPC僀儀儞僩捛壛}		if (mode = 0) then begin			if (tc.Map <> tn.Map) or (abs(tc.Point.X - tn.Point.X) > 15) or (abs(tc.Point.Y - tn.Point.Y) > 15) then begin				tc.AMode := 0;				exit;			end;		end;		tm := Map.Objects[Map.IndexOf(tn.Map)] as TMap;		Tick := timeGetTime();{NPC僀儀儞僩捛壛僐僐傑偱}		cnt := 0;		while (tc.ScriptStep < tn.ScriptCnt) and (cnt < 100) do begin			case tn.Script[tc.ScriptStep].ID of			0: //(nop)				begin					Inc(tc.ScriptStep);				end;			1: //mes				begin					str := tn.Script[tc.ScriptStep].Data1[0];					i := AnsiPos('$[', str);					while i <> 0 do begin						j := AnsiPos(']', Copy(str, i + 2, 256));						if j <= 1 then break;{NPC僀儀儞僩捛壛}						if (Copy(str, i + 2, 1) = '$') then begin							str := Copy(str, 1, i - 1) + tc.Flag.Values[Copy(str, i + 2, j - 1)]  + Copy(str, i + j + 2, 256);						end else if (Copy(str, i + 2, 2) = '\$') then begin							str := Copy(str, 1, i - 1) + ServerFlag.Values[Copy(str, i + 2, j - 1)]  + Copy(str, i + j + 2, 256);						end else begin							k := ConvFlagValue(tc, Copy(str, i + 2, j - 1), true);							if k <> -1 then begin								str := Copy(str, 1, i - 1) + IntToStr(k) + Copy(str, i + j + 2, 256);							end else begin								str := Copy(str, 1, i - 1) + Copy(str, i + j + 2, 256);							end;						end;{NPC僀儀儞僩捛壛僐僐傑偱}						i := AnsiPos('$[', str);					end;					str := StringReplace(str, '$codeversion', CodeVersion, [rfReplaceAll]);					str := StringReplace(str, '$charaname', tc.Name, [rfReplaceAll]);          str := StringReplace(str, '$guildname', GetGuildName(tn), [rfReplaceAll]);          str := StringReplace(str, '$guildmaster', GetGuildMName(tn), [rfReplaceAll]);          str := StringReplace(str, '$edegree', IntToStr(GetGuildEDegree(tn)), [rfReplaceAll]);          str := StringReplace(str, '$etrigger', IntToStr(GetGuildETrigger(tn)), [rfReplaceAll]);          str := StringReplace(str, '$ddegree', IntToStr(GetGuildDDegree(tn)), [rfReplaceAll]);          str := StringReplace(str, '$dtrigger', IntToStr(GetGuildDTrigger(tn)), [rfReplaceAll]);					str := StringReplace(str, '$$', '$', [rfReplaceAll]);					i := Length(str);					WFIFOW(0, $00b4);					WFIFOW(2, i + 8);					WFIFOL(4, tn.ID);					WFIFOS(8, str, i);					tc.Socket.SendBuf(buf[0], i + 8);					Inc(tc.ScriptStep);				end;			2: //next				begin					WFIFOW(0, $00b5);					WFIFOL(2, tn.ID);					tc.Socket.SendBuf(buf[0], 6);					Inc(tc.ScriptStep);					break;				end;			3: //close				begin					WFIFOW(0, $00b6);					WFIFOL(2, tn.ID);					tc.Socket.SendBuf(buf[0], 6);					tc.ScriptStep := $FFFF;					break;				end;			4: //menu				begin					if value = 0 then begin						for i := 0 to tn.Script[tc.ScriptStep].DataCnt - 1 do begin							if i = 0 then								str := tn.Script[tc.ScriptStep].Data1[i]							else								str := str + ':' + tn.Script[tc.ScriptStep].Data1[i];						end;						i := Length(str);						WFIFOW(0, $00b7);						WFIFOW(2, i + 8);						WFIFOL(4, tn.ID);						WFIFOS(8, str, i);						tc.Socket.SendBuf(buf[0], i + 8);						break;					end else begin						if value = $FF then begin{惛楤NPC婡擻捛壛}              //EqLock夝彍							if tc.EqLock = true then tc.EqLock := false;{惛楤NPC婡擻捛壛僐僐傑偱}							tc.ScriptStep := $FFFF;							break;						end;						Dec(value);						if tn.Script[tc.ScriptStep].DataCnt <= value then begin							tc.ScriptStep := $FFFF;							break;						end;						tc.ScriptStep := tn.Script[tc.ScriptStep].Data3[value];						value := 0;					end;				end;			5: //goto				begin					tc.ScriptStep := tn.Script[tc.ScriptStep].Data3[0];				end;			6: //cutin				begin					WFIFOW(0, $0145);					WFIFOS(2, tn.Script[tc.ScriptStep].Data1[0], 16);					WFIFOB(18, tn.Script[tc.ScriptStep].Data3[0]);					tc.Socket.SendBuf(buf[0], 19);					Inc(tc.ScriptStep);				end;			7: //store				begin					tc.AMode := 4;					SendCStoreList(tc);					Inc(tc.ScriptStep);				end;			8: //warp				begin					SendCLeave(tc, 2);					tc.tmpMap := tn.Script[tc.ScriptStep].Data1[0];					tc.Point := Point(tn.Script[tc.ScriptStep].Data3[0],tn.Script[tc.ScriptStep].Data3[1]);					MapMove(tc.Socket, tc.tmpMap, tc.Point);					exit;				end;			9: //save				begin{NPC僀儀儞僩捛壛}					i := MapInfo.IndexOf(tm.Name);					if (i <> -1) then begin						mi := MapInfo.Objects[i] as MapTbl;						if (mi.noSave <> true) then begin							tc.SaveMap := tn.Script[tc.ScriptStep].Data1[0];							tc.SavePoint := Point(tn.Script[tc.ScriptStep].Data3[0],tn.Script[tc.ScriptStep].Data3[1]);						end;					end;{NPC僀儀儞僩捛壛僐僐傑偱}					Inc(tc.ScriptStep);				end;			10: //heal				begin					Inc(tc.HP, tn.Script[tc.ScriptStep].Data3[0]);					if tc.HP > tc.MAXHP then tc.HP := tc.MAXHP;					Inc(tc.SP, tn.Script[tc.ScriptStep].Data3[1]);					if tc.SP > tc.MAXSP then tc.SP := tc.MAXSP;					//僷働憲怣					WFIFOW( 0, $011a);					WFIFOW( 2, 28);					WFIFOW( 4, tn.Script[tc.ScriptStep].Data3[0]);					WFIFOL( 6, tc.ID);					WFIFOL(10, tn.ID);					WFIFOB(14, 1);					SendBCmd(tc.MData, tn.Point, 15);					{					WFIFOW( 0, $013d);					WFIFOW( 2, $0007);					WFIFOW( 4, tn.Script[tc.ScriptStep].Data3[1]);					tc.Socket.SendBuf(buf, 6);					}					WFIFOW( 0, $00b0);					WFIFOW( 2, $0005);					WFIFOL( 4, tc.HP);					tc.Socket.SendBuf(buf, 8);					WFIFOW( 0, $00b0);					WFIFOW( 2, $0007);					WFIFOL( 4, tc.SP);					tc.Socket.SendBuf(buf, 8);					Inc(tc.ScriptStep);				end;			11: //set				begin					str := tn.Script[tc.ScriptStep].Data1[0];					p := nil;					len := 0;							 if str = 'zeny'        then begin p := @tc.Zeny;        len := 4; end					else if str = 'job'         then begin p := @tc.JID;         len := 2; end					else if str = 'baselevel'   then begin p := @tc.BaseLV;      len := 2; end					else if str = 'joblevel'    then begin p := @tc.JobLV;       len := 2; end					else if str = 'statuspoint' then begin p := @tc.StatusPoint; len := 2; end					else if str = 'skillpoint'  then begin p := @tc.SkillPoint;  len := 2; end					else if str = 'option'      then begin p := @tc.Option;      len := 4; end					else if str = 'speed'       then begin p := @tc.Speed;       len := 2; end;					if len <> 0 then begin						//嵍曈偼僷儔儊乕僞{NPC僀儀儞僩捛壛}						j := ConvFlagValue(tc, tn.Script[tc.ScriptStep].Data1[1]);{NPC僀儀儞僩捛壛僐僐傑偱}						i := 0;						if tn.Script[tc.ScriptStep].Data3[0] <> 0 then CopyMemory(@i, p, len);						case tn.Script[tc.ScriptStep].Data3[0] of						0,1:	i := i + j;						2:		i := i - j;						3:		i := i * j;						4:		i := i div j;						end;						if i < 0 then i := 0;						if (tn.Script[tc.ScriptStep].Data3[1] <> 0) and								(i > tn.Script[tc.ScriptStep].Data3[1]) then i := tn.Script[tc.ScriptStep].Data3[1];						CopyMemory(p, @i, len);						SendCStat(tc);					end else begin						//嵍曈偼僼儔僌{NPC僀儀儞僩捛壛}						j := ConvFlagValue(tc, tn.Script[tc.ScriptStep].Data1[1]);						if (tn.Script[tc.ScriptStep].Data3[0] = 0) then begin							i := 0;						end else begin							i := ConvFlagValue(tc, str);						end;{NPC僀儀儞僩捛壛僐僐傑偱}						case tn.Script[tc.ScriptStep].Data3[0] of						0,1:  i := i + j;						2:    i := i - j;						3:    i := i * j;						4:    i := i div j;						end;						if i < 0 then i := 0;						if (tn.Script[tc.ScriptStep].Data3[1] <> 0) and							 (i > tn.Script[tc.ScriptStep].Data3[1]) then i := tn.Script[tc.ScriptStep].Data3[1];{NPC僀儀儞僩捛壛}						if (Copy(str, 1, 1) <> '\') then begin							tc.Flag.Values[str] := IntToStr(i);						end else begin							ServerFlag.Values[str] := IntToStr(i);						end;{NPC僀儀儞僩捛壛僐僐傑偱}					end;					Inc(tc.ScriptStep);				end;			12: //additem				begin{NPC僀儀儞僩捛壛}					i := ConvFlagValue(tc, tn.Script[tc.ScriptStep].Data1[0]);					j := ConvFlagValue(tc, tn.Script[tc.ScriptStep].Data1[1]);{NPC僀儀儞僩捛壛僐僐傑偱}					td := ItemDB.IndexOfObject(i) as TItemDB;					if tc.MaxWeight >= tc.Weight + cardinal(td.Weight) * cardinal(j) then begin						k := SearchCInventory(tc, i, td.IEquip);						if k <> 0 then begin							if tc.Item[k].Amount + j > 30000 then j := 30000 - tc.Item[k].Amount;							if td.IEquip then j := 1;							//傾僀僥儉捛壛							tc.Item[k].ID := i;							tc.Item[k].Amount := tc.Item[k].Amount + j;							tc.Item[k].Equip := 0;							tc.Item[k].Identify := 1;							tc.Item[k].Refine := 0;							tc.Item[k].Attr := 0;							tc.Item[k].Card[0] := 0;							tc.Item[k].Card[1] := 0;							tc.Item[k].Card[2] := 0;							tc.Item[k].Card[3] := 0;							tc.Item[k].Data := td;							//廳検捛壛							tc.Weight := tc.Weight + cardinal(td.Weight) * cardinal(j);							WFIFOW( 0, $00b0);							WFIFOW( 2, $0018);							WFIFOL( 4, tc.Weight);							tc.Socket.SendBuf(buf, 8);							//傾僀僥儉僎僢僩捠抦							SendCGetItem(tc, k, j);						end;					end else begin						//廳検僆乕僶乕						WFIFOW( 0, $00a0);						WFIFOB(22, 2);						tc.Socket.SendBuf(buf, 23);					end;					Inc(tc.ScriptStep);				end;			13: //delitem				begin{NPC僀儀儞僩捛壛}					i := ConvFlagValue(tc, tn.Script[tc.ScriptStep].Data1[0]);					j := ConvFlagValue(tc, tn.Script[tc.ScriptStep].Data1[1]);{NPC僀儀儞僩捛壛僐僐傑偱}					k := SearchCInventory(tc, i, false);					if k <> 0 then begin						if j > tc.Item[k].Amount then j := tc.Item[k].Amount;						//憰旛拞側(cè)傜憰旛夝彍						if tc.Item[k].Equip <> 0 then begin							WFIFOW(0, $00ac);							WFIFOW(2, k);							WFIFOW(4, tc.Item[k].Equip);							tc.Item[k].Equip := 0;							WFIFOB(6, 1);							tc.Socket.SendBuf(buf, 7);							CalcStat(tc);							SendCStat(tc);						end;						//傾僀僥儉悢尭彮						Dec(tc.Item[k].Amount, j);						if tc.Item[k].Amount = 0 then tc.Item[k].ID := 0;						WFIFOW( 0, $00af);						WFIFOW( 2, k);						WFIFOW( 4, j);						tc.Socket.SendBuf(buf, 6);						//廳検曄峏						tc.Weight := tc.Weight - tc.Item[k].Data.Weight * cardinal(j);						WFIFOW( 0, $00b0);						WFIFOW( 2, $0018);						WFIFOL( 4, tc.Weight);						tc.Socket.SendBuf(buf, 8);					end;					Inc(tc.ScriptStep);				end;			14: //checkitem				begin{NPC僀儀儞僩捛壛}					i := ConvFlagValue(tc, tn.Script[tc.ScriptStep].Data1[0]);					j := ConvFlagValue(tc, tn.Script[tc.ScriptStep].Data1[1]);{NPC僀儀儞僩捛壛僐僐傑偱}					k := SearchCInventory(tc, i, false);					if (k <> 0) and (tc.Item[k].Amount >= j) then begin						DebugOut.Lines.Add(Format('s-checkitem: %d %d = 1', [i, j]));						tc.ScriptStep := tn.Script[tc.ScriptStep].Data3[0];					end else begin						DebugOut.Lines.Add(Format('s-checkitem: %d %d = 0', [i, j]));						tc.ScriptStep := tn.Script[tc.ScriptStep].Data3[1];					end;				end;			15: //check				begin					str := tn.Script[tc.ScriptStep].Data1[0];               if str = 'zeny'        then begin i := tc.Zeny;        end					else if str = 'job'         then begin i := tc.JID;         end					else if str = 'baselevel'   then begin i := tc.BaseLV;      end					else if str = 'joblevel'    then begin i := tc.JobLV;       end					else if str = 'statuspoint' then begin i := tc.StatusPoint; end					else if str = 'skillpoint'  then begin i := tc.SkillPoint;  end					else if str = 'option'      then begin i := tc.Option;      end					else if str = 'speed'       then begin i := tc.Speed;       end					else if str = 'gender'      then begin i := tc.Gender;      end{敮怓曄峏捛壛}					else if str = 'hcolor'      then begin i := tc.HairColor;   end          else if str = 'guildid'     then begin i := GetGuildID(tn);   end          else if str = 'guildkafra'  then begin i := GetGuildKafra(tn);   end          else if str = 'ismyguild'   then begin i := CheckGuildID(tn, tc);   end          else if str = 'ismymaster'   then begin i := CheckGuildMaster(tn, tc);   end          else if str = 'etrigger'   then begin i := GetGuildETrigger(tn);   end          else if str = 'dtrigger'   then begin i := GetGuildDTrigger(tn);   end{敮怓曄峏捛壛僐僐傑偱}					else begin

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
丰满放荡岳乱妇91ww| 亚洲一级二级在线| 亚洲欧洲精品一区二区三区| 国产精品高清亚洲| 丝袜美腿亚洲色图| 国产不卡在线视频| 欧美网站大全在线观看| 日韩欧美的一区二区| 国产精品不卡在线| 秋霞影院一区二区| av一区二区不卡| 7777精品伊人久久久大香线蕉的| 精品处破学生在线二十三| 最新国产精品久久精品| 日韩国产在线观看| 成人高清在线视频| 欧美一区二区三区视频在线| 国产精品视频免费| 日韩精品福利网| 丁香婷婷综合五月| 欧美日韩五月天| 日韩一级完整毛片| 国产精品免费视频观看| 亚洲v精品v日韩v欧美v专区 | 国产成人精品一区二区三区四区| 风间由美中文字幕在线看视频国产欧美 | 亚洲人亚洲人成电影网站色| 亚洲免费在线观看| 天堂av在线一区| 精品无人码麻豆乱码1区2区 | 国产欧美日本一区二区三区| 综合自拍亚洲综合图不卡区| 婷婷六月综合网| 国产老女人精品毛片久久| 99精品国产视频| 欧美一级一区二区| 亚洲欧洲日本在线| 日韩av成人高清| 99久免费精品视频在线观看 | 亚洲成av人影院| 国产成人午夜99999| 在线观看国产91| 国产亚洲一区二区三区在线观看| 亚洲品质自拍视频| 国产一区视频导航| 欧洲精品视频在线观看| 欧美一级黄色录像| 国产精品久久福利| 六月丁香综合在线视频| 91在线一区二区三区| 日韩精品一区二区三区在线观看 | 亚洲综合色视频| 国产精品亚洲а∨天堂免在线| 色av综合在线| 国产欧美精品一区aⅴ影院| 日韩av网站在线观看| 色噜噜夜夜夜综合网| 国产午夜亚洲精品理论片色戒 | 精品福利一区二区三区 | 欧美丝袜第三区| 国产蜜臀97一区二区三区| 视频一区二区国产| 91久久久免费一区二区| 久久久久久久综合色一本| 婷婷一区二区三区| 一本大道久久a久久精二百| 精品91自产拍在线观看一区| 香蕉久久一区二区不卡无毒影院| 国产中文字幕一区| 欧美一级黄色录像| 亚洲国产日韩a在线播放| 91丨porny丨蝌蚪视频| 久久久久久久久岛国免费| 蜜桃视频在线一区| 91麻豆精品国产无毒不卡在线观看| 一区二区在线观看不卡| 成人av动漫在线| 国产欧美一区二区三区网站 | 91精品国产麻豆| 亚洲综合色丁香婷婷六月图片| 99精品视频在线观看| 国产欧美精品日韩区二区麻豆天美| 狠狠色综合日日| 日韩欧美国产三级电影视频| 亚洲成av人片在线观看| 欧美日韩一区二区三区视频| 亚洲视频一区二区免费在线观看| 成人免费av在线| 国产精品久久毛片a| 懂色一区二区三区免费观看| 久久亚洲春色中文字幕久久久| 久久er精品视频| 日韩精品一区二区三区在线 | 成人av综合在线| 亚洲精品在线电影| 麻豆国产欧美一区二区三区| 欧美高清性hdvideosex| 午夜私人影院久久久久| 51午夜精品国产| 天天色图综合网| 色av一区二区| 亚洲国产日产av| 91精品久久久久久久91蜜桃| 日韩国产欧美三级| 欧美日韩一区二区在线观看| 婷婷久久综合九色综合伊人色| 欧美精品精品一区| 男女男精品视频网| 精品国产成人在线影院| 国产91精品精华液一区二区三区| 久久久不卡网国产精品二区| 国内精品第一页| 国产女同互慰高潮91漫画| 高清shemale亚洲人妖| 一区二区欧美国产| 欧美夫妻性生活| 精品一区二区日韩| 日本一区二区免费在线| 97国产一区二区| 天堂资源在线中文精品| 日韩欧美在线影院| 国产成人综合在线观看| 亚洲欧美一区二区三区久本道91 | 久久综合视频网| 成人午夜电影小说| 亚洲精品日韩专区silk| 91精品婷婷国产综合久久| 国产乱国产乱300精品| 亚洲欧美日韩国产一区二区三区| 欧美日韩一二三| 国模无码大尺度一区二区三区| 国产精品久久久久久久久搜平片 | 国产情人综合久久777777| 成人av手机在线观看| 亚洲福中文字幕伊人影院| 欧美tk—视频vk| 91啪在线观看| 奇米一区二区三区| 久久先锋影音av鲁色资源| 色欧美片视频在线观看| 九九国产精品视频| 亚洲黄色小视频| 精品区一区二区| 91久久香蕉国产日韩欧美9色| 奇米影视一区二区三区小说| 国产精品第五页| 欧美一区二区视频在线观看| 粉嫩一区二区三区在线看| 五月天网站亚洲| 日本一区二区三区国色天香 | 亚洲成人av一区二区三区| 精品伦理精品一区| 色综合色狠狠天天综合色| 免播放器亚洲一区| 久久久噜噜噜久噜久久综合| 欧美在线三级电影| 国产一区999| 午夜精品一区二区三区电影天堂 | 国产精品毛片无遮挡高清| 欧美区视频在线观看| 国产成a人无v码亚洲福利| 丝袜美腿高跟呻吟高潮一区| 国产精品久久久久毛片软件| 欧美成人性福生活免费看| 欧美mv和日韩mv的网站| 91日韩精品一区| 国产精品18久久久久| 视频精品一区二区| 亚洲欧洲日本在线| 久久久精品日韩欧美| 欧美欧美欧美欧美| 91麻豆免费看片| 国产剧情av麻豆香蕉精品| 日本中文一区二区三区| 一区二区理论电影在线观看| 国产精品婷婷午夜在线观看| 日韩欧美激情四射| 欧美理论在线播放| 色94色欧美sute亚洲线路一ni | 欧美一区二区精美| 欧美午夜理伦三级在线观看| 国产呦萝稀缺另类资源| 日本一区中文字幕| 亚洲成人av在线电影| 亚洲激情欧美激情| 亚洲日本在线a| 中文字幕不卡一区| 欧美xxxxx裸体时装秀| 欧美无砖砖区免费| 91老师片黄在线观看| 国产精品一二三四区| 一区二区三区日韩欧美精品| 中文字幕中文字幕中文字幕亚洲无线| 欧美不卡一区二区| 欧美一级淫片007| 91精品国产91热久久久做人人| 欧美三级日韩三级| 99久久精品99国产精品| 成人av在线一区二区| 国产成人综合在线|