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

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

?? script.pas

?? 仙境傳說(shuō)(RO)私人服務(wù)器端源代碼。第一次上傳。
?? PAS
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
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

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美洲天堂一区二卡三卡四卡视频| 精品入口麻豆88视频| 欧美日本乱大交xxxxx| 精品日韩欧美在线| 成人免费小视频| 五月激情综合色| 国产一区 二区 三区一级| 91丨九色丨蝌蚪富婆spa| 欧美精品tushy高清| 久久久国产综合精品女国产盗摄| 亚洲美女屁股眼交3| 免费观看一级欧美片| 丁香激情综合国产| 欧美日韩电影一区| 久久精品亚洲精品国产欧美| 亚洲丰满少妇videoshd| 国产很黄免费观看久久| 91福利区一区二区三区| 精品福利一区二区三区 | 激情国产一区二区| 色综合 综合色| 精品国产一区二区国模嫣然| 亚洲少妇最新在线视频| 久久av资源网| 欧美亚洲免费在线一区| 国产欧美一区二区精品秋霞影院| 亚洲第四色夜色| a在线欧美一区| 亚洲精品在线网站| 天天操天天干天天综合网| 成人av集中营| 久久夜色精品一区| 欧美aaaaaa午夜精品| 色天天综合色天天久久| 久久久精品人体av艺术| 轻轻草成人在线| 在线这里只有精品| 国产精品久久久久久久久晋中| 极品尤物av久久免费看| 欧美精品粉嫩高潮一区二区| 亚洲精品亚洲人成人网在线播放| 高清日韩电视剧大全免费| 日韩欧美中文字幕一区| 亚洲成人动漫一区| 99久久精品免费看国产免费软件| 26uuu色噜噜精品一区二区| 日韩精品一区第一页| 欧美日韩中字一区| 亚洲综合色在线| 99精品黄色片免费大全| 中文字幕欧美日本乱码一线二线| 免费观看一级欧美片| 欧美精品第一页| 亚洲国产精品自拍| 欧洲精品一区二区三区在线观看| 中文字幕日韩一区| 国产馆精品极品| 国产日韩v精品一区二区| 精品中文字幕一区二区 | 国产精品一级黄| 精品免费一区二区三区| 日韩av网站免费在线| 欧美绝品在线观看成人午夜影视| 亚洲一级在线观看| 欧美日韩一卡二卡三卡| 亚洲高清中文字幕| 欧美老女人第四色| 青青草国产精品97视觉盛宴| 欧美日本韩国一区| 日韩精品五月天| 日韩欧美黄色影院| 看国产成人h片视频| 精品国偷自产国产一区| 精品一区二区久久| 久久久五月婷婷| 国产成人精品三级| 亚洲啪啪综合av一区二区三区| 91麻豆视频网站| 亚洲摸摸操操av| 在线观看亚洲一区| 五月激情六月综合| 日韩一级精品视频在线观看| 精品在线一区二区| 国产亚洲综合在线| 99视频一区二区| 一个色在线综合| 欧美人动与zoxxxx乱| 久久国产日韩欧美精品| 久久久久久久电影| 91在线一区二区| 亚洲电影在线播放| 日韩欧美一级片| 成人免费的视频| 一区二区三区高清| 日韩一级完整毛片| 成人永久aaa| 伊人色综合久久天天人手人婷| 欧美狂野另类xxxxoooo| 国产一区中文字幕| 亚洲视频精选在线| 91精品国产福利在线观看 | 国产日韩欧美激情| 色婷婷国产精品| 老色鬼精品视频在线观看播放| 26uuu成人网一区二区三区| 成人国产精品视频| 亚洲午夜久久久久久久久电影院| 日韩一卡二卡三卡| av中文字幕在线不卡| 午夜久久福利影院| 久久久久久久久久久久久久久99 | 亚洲色图都市小说| 欧美午夜精品一区| 国产精品资源在线观看| 亚洲免费av网站| 欧美大片顶级少妇| 色综合天天综合色综合av| 免费成人你懂的| 亚洲欧美一区二区三区孕妇| 欧美一三区三区四区免费在线看| 福利电影一区二区三区| 天天操天天干天天综合网| 亚洲国产精品成人综合色在线婷婷| 欧美日韩在线播放三区| 国产精品一区二区在线播放| 亚洲无人区一区| 国产香蕉久久精品综合网| 在线精品视频免费观看| 国产精品一区二区久激情瑜伽| 亚洲自拍偷拍网站| 国产欧美一区二区精品仙草咪| 欧美日本国产视频| zzijzzij亚洲日本少妇熟睡| 久久精品久久综合| 一区二区三区影院| 国产亚洲成年网址在线观看| 欧美日韩dvd在线观看| www.久久精品| 韩国三级中文字幕hd久久精品| 一区二区在线免费| 国产精品美女www爽爽爽| 91麻豆精品91久久久久久清纯| 99re成人在线| 国产一区二区久久| 奇米色一区二区三区四区| 亚洲精品第一国产综合野| 欧美激情综合五月色丁香小说| 欧美一区二区三区人| 欧美性猛片aaaaaaa做受| 波多野结衣中文一区| 国产在线精品国自产拍免费| 三级久久三级久久| 亚洲综合免费观看高清完整版| 国产精品区一区二区三| 久久午夜老司机| 欧美va日韩va| 91精品久久久久久久久99蜜臂| 欧美在线三级电影| 97久久精品人人澡人人爽| 丰满放荡岳乱妇91ww| 国产呦萝稀缺另类资源| 精品一区二区三区免费播放| 日韩中文字幕区一区有砖一区| 亚洲另类春色国产| 亚洲天堂久久久久久久| 中文字幕精品综合| 欧美激情综合网| 国产亚洲综合在线| 国产日韩欧美高清| 中文在线一区二区| 久久精品日产第一区二区三区高清版 | 欧美一区二区视频在线观看2022| 在线免费不卡电影| 色诱视频网站一区| 日本韩国精品在线| 色狠狠综合天天综合综合| 色老汉一区二区三区| 91麻豆产精品久久久久久 | 亚洲欧美另类小说视频| 中文字幕中文乱码欧美一区二区 | 在线视频你懂得一区| 色综合久久综合网欧美综合网 | 93久久精品日日躁夜夜躁欧美| 成人爱爱电影网址| 成人动漫在线一区| 成人免费高清视频| 97久久超碰国产精品电影| 91毛片在线观看| 欧美性猛交xxxx乱大交退制版| 欧美揉bbbbb揉bbbbb| 制服丝袜激情欧洲亚洲| 日韩一区二区视频| 精品国产乱码久久| 久久人人爽爽爽人久久久| 国产网站一区二区三区| 国产精品国产三级国产有无不卡| 亚洲欧洲精品成人久久奇米网| 亚洲男人的天堂一区二区 | 日韩欧美一级在线播放| 精品99999|