KO UO Topic search - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
ํ ยท C# ยท IDE ยท UO API ยท AโZ ยท ์ ยท ์ธ์ด
๊ฒ์ ์์ญ ๋ฐ ํํฐ๋ฅผ ์ ํํ๊ณ ๊ฒฐ๊ณผ, ๋ฐ๊ฒฌ๋ ํญ๋ชฉ ๋ชฉ๋ก ๋ฐ ์์ธ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค. ๋ช ๋ น ์นด๋์์ "์ฐพ์ ์ ์์" ๊ฐ์ ํ์ธํ์ธ์: serial, ์๋ ๋ฐ ๋ชฉ๋ก - ๋ค๋ฅธ ๊ฒฐ๊ณผ.
UO.FindType ยท UO.FindTypeEx ยท UO.FindTypesArrayEx ยท UO.FindAnyType ยท UO.FindAtCoord ยท UO.FindItem ยท UO.FindCount ยท UO.FindQuantity ยท UO.FindFullQuantity ยท UO.Count ยท UO.CountEx ยท UO.CountGround ยท UO.GetWorldItems ยท UO.GetFoundItems ยท UO.GetFindedList
UO.FindMobile ยท UO.FindMan ยท UO.FindByNotoriety ยท UO.FindNotoriety
UO.FindDistance ยท UO.FindVertical
UO.AddFindList ยท UO.ClearFindList ยท UO.DeleteFindList ยท UO.FindList ยท UO.InfoFindList ยท UO.MFGI
UO.Ignore ยท UO.IgnoreOff ยท UO.IgnoreReset ยท UO.AddIgnoreList ยท UO.ClearIgnoreList ยท UO.DeleteIgnoreList ยท UO.SelectIgnoreList ยท UO.GetIgnoreList
UO.SetBadObject ยท UO.ClearBadObjectList
UO.SetBadLocation ยท UO.ClearBadLocationList
๊ฐ ๋ช ๋ น ์นด๋์๋ ์ง์ ์ฝ๋, ํจ์ ๋ฐ ํด๋์ค ๋ฑ ์ฌ๋ฌ ๊ฐ์ง ๋ ๋ฆฝ์ ์ธ ์๋๋ฆฌ์ค๊ฐ ์์ต๋๋ค. ๋ค์์ ์ ํ๋ ์งง์ ์๋๋ฆฌ์ค์ ๋๋ค. ์ ํ์ฌํญ๊ณผ ์ ์ฒด ๋ถ์์ด ์นด๋์ ํฌํจ๋์ด ์์ต๋๋ค.
๋งค๊ฐ๋ณ์, ๊ฒฐ๊ณผ ๋ฐ ๋ชจ๋ ์๋๋ฆฌ์ค
var gold = UO.FindType(0x0EED, -1, "backpack");
if (Truth(gold == ""))
{
UO.Print("Gold was not found in the loaded backpack");
}
else
{
UO.Print("Gold serial: " + gold);
UO.Info(gold);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์, ๊ฒฐ๊ณผ ๋ฐ ๋ชจ๋ ์๋๋ฆฌ์ค
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindFullQuantity();
UO.Print(Convert.ToString(value));ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
void UO.AddFindList(object? list, object? @type);
void UO.AddFindList(object? list, object? @type, object? color);UO.FindList์ ๋ช ๋ช ๋ ์งํฉ์ type/hue ๊ท์น์ ์ถ๊ฐํฉ๋๋ค. ์ด ์ธํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ๋ฌ ์ ํ์ ๊ฐ์ฒด ๋๋ ๋ชจ๋ฐ์ผ์ ๋ฐ๋ณต์ ์ผ๋ก ๊ฒ์ํ ์ ์์ผ๋ฉฐ ์ถ๊ฐ๋ ์์์ ๋ฐ๋ผ ์ ํ์ ์ฐ์ ์์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค.
-
listโ ๊ท์น ์ธํธ์ ์ด๋ฆ(์: "loot") | ์์ด ๋ฌธ์์ด์ ์ ๋ฌํฉ๋๋ค. ์ด ๋ฌธ์๋ ๋ ์ฝ๋ ๋ด์์ ๊ตฌ๋ถ ๊ธฐํธ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. ์ด๋ serial ์ปจํ ์ด๋๋ ๋ฐ๊ฒฌ๋ ํญ๋ชฉ์ ๋ฐฐ์ด์ด ์๋๋๋ค. -
type- ์์ดํ ์ ๊ทธ๋ํฝ/type ๋๋ body mobile(serial ์๋). ์ผ๋ฐ์ ์ผ๋ก int 0..65535(0x0EED ํฌํจ); -1 ๋๋ 0xFFFF๋ ๊ฒ์ ์ type๋ฅผ ์๋ฏธํฉ๋๋ค. ํญ๋ชฉ๋น ํ๋์ ๊ฐ์ ์ ๊ณตํ์ญ์์ค. ์ฌ๋ฌ ์ ํ์ด ๋ณ๋์ ํธ์ถ๋ก ์ถ๊ฐ๋ฉ๋๋ค. -
colorโ RGB์ด ์๋ ๋ฌผ์ฒด/๋ชธ์ฒด์ ์์์ ๋๋ค. int 0..65535; 0 - ์ผ๋ฐ hue 0, -1 ๋๋ 0xFFFF - ๋ชจ๋. AddFindList์์ ์์์ ๊ฑด๋๋ฐ๋ ๊ฒ์ ๊ฒ์ ์ hue๋ฅผ ์๋ฏธํฉ๋๋ค.
void: ๋ฐํ ๊ฐ์ด ์์ต๋๋ค. ํธ์ถ์ ๋ณ์์ ํ ๋นํ์ง ๋ง๊ณ true/1์์ ํ ์คํธํ์ง ๋ง์ธ์. ์ ์ ์ํ๋ UO.InfoFindList()๋ก ์ถ๋ ฅ๋ ์ ์์ต๋๋ค. ๊ฒ์ ์์ฒด๋ UO.FindList()์ ํตํด ๋ณ๋๋ก ์์๋ฉ๋๋ค.
- ์ ์๋ ์ง์ ๋ ์คํฌ๋ฆฝํธ ๋ฐํ์ ์ํ์ ์์ต๋๋ค. ๋ ๋ฆฝ์ ์ธ ๋ค๋ฅธ ๋ฐํ์์๋ ์์ฒด ์ธํธ๊ฐ ์์ต๋๋ค. IDE ์ฐฝ์ ๋ซ์๋ ์ด๋ฌํ ๊ท์น์ ์ง์์ง์ง ์์ต๋๋ค. ์ด๊ฒ์ ์ค์ ํ์ผ์ด๋ ์ ์ญ ๊ฒ์ ๊ฐ์ฒด ๋ชฉ๋ก์ด ์๋๋๋ค.
- AddFindList ํญ๋ชฉ์ ๋์ ์ถ๊ฐํฉ๋๋ค. ๋ฐ๋ณต์ ์ญ์ ๋์ง ์์ต๋๋ค. ํคํธ๋ฅผ ๋ค์ ํ๋ก๋น์ ๋ํ๋ ค๋ฉด ๋จผ์ ClearFindList("name")์ผ๋ก ์ ํํ์ธ์. ์ ์๋ฅผ ๋ณ๊ฒฝํด๋ ์ด๋ฏธ ์์ ๋ FindItem/FindCount/GetFoundItems๋ ์ง์์ง์ง ์์ต๋๋ค.
- ๋ ์ฝ๋๋ ํ ์คํธ ํ๋๋ฅผ ์ ์ฅํฉ๋๋ค. ์ซ์ ๋ฆฌํฐ๋ด 0x0EED์ "3821"๋ก ์ ์ฅ๋๊ณ , ๋ฌธ์์ด "0x0EED"์ "0x0EED"๋ก ์ ์ฅ๋ฉ๋๋ค. ๊ฒ์์ ๋ ์ต์ ์ ๋ชจ๋ ์ซ์๋ก ๋ณํํ๊ณ DeleteFindList๋ ์ ์ฅ๋ ํ ์คํธ๋ฅผ ๋น๊ตํฉ๋๋ค. ์ถ๊ฐ ๋ฐ ์ญ์ ์์๋ ๋์ผํ ์์์ ์ฌ์ฉํ์ธ์.
- FindList์ ์ ์ ์๋ ์ด๋ฆ์ ๋น ๋ฑ๋ก ์ธํธ๊ฐ ์๋๋๋ค. ์์ง์ ์ด๋ฅผ ์ซ์ ์ ํ ๋ชฉ๋ก์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์ซ์๊ฐ ์๋ ์ด๋ฆ์ ์ฌ์ฉํ๋ฉด ๋ณํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ง์ง๋ง ํญ๋ชฉ์ ์ญ์ ํ ํ ํด๋น ์ด๋ฆ์ ๊ฒ์ํ๊ธฐ ์ ์ ์ ์ธํธ๋ฅผ ๋ง๋์ญ์์ค.
- ์ธ์๋ ์ฆ์ ์ ์ฅ๋ฉ๋๋ค. ์ซ์ type/hue ํ์ธ์ FindList์์ ์ํ๋ฉ๋๋ค. AddFindList์ ๊ฒ์, ์์ดํ ์ด๋ฐ, serial๋ฅผ Ignore์ ์ถ๊ฐํ์ง ์์ต๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
๋ช ๋ น์ ๋ ๋ฆฝ๋ ๋ฌธ์ ๋๋ค. ์์ ๋ฉ์์ง๋ ํธ์ถ ์์์ ๋ํ๋ด๋ฉฐ ์๋ฒ ๋์์ ์๋ฃ๋ฅผ ํ์ธํ์ง ์์ต๋๋ค.
UO.Print("Calling UO.AddFindList");
UO.AddFindList("simple_loot", 0x0EED);๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- 0x0EED๋ ๊ณจ๋, 0x0F7A๋ ์ธํธ์ ๋ ๋ฒ์งธ graphic์ ๋๋ค. ๋ค๋ฅธ ์๋ฒ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ๊ทธ๋ํฝ์ ๊ต์ฒดํ์ธ์. ์ ์ฒด BuildLoot ์ ์ฐจ๋ ์์ ๋์ ์์ต๋๋ค.
- FindCount(item)์ ํน์ ์คํ์ ๋จ์ ์๋ฅผ ์ฝ์ต๋๋ค. GetFoundItems์๋ ๊ณ ์ ํ serial๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ์ด ์์์๋ ์ ์ก์ ์ํํ์ง ์์ต๋๋ค.
BuildLoot();
var first = UO.FindList("loot", "ground", 2, -1, false, 5, false);
if (Truth(first == ""))
{
UO.Print("No matching loot nearby");
return null;
}
var items = UO.GetFoundItems();
foreach (var item in items)
{
UO.Print(UO.GetName(item) + " | stack: " + Convert.ToString(UO.FindCount(item)));
}
void BuildLoot()
{
UO.ClearFindList("loot");
UO.AddFindList("loot", 0x0EED, -1);
UO.AddFindList("loot", 0x0F7A, -1);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- 0x0044 ํํฐ hue; ์ด๊ฑด serial๊ฐ ์๋๋๋ค. backpack ๋ฐฐ๋ญ์ ๋ด์ฉ๋ฌผ์ ์ง์ ๊ฒ์ํฉ๋๋ค. AddObject๋ ์ด ๋ฐํ์์์ ์ ํํ ๊ฐ์ฒด๋ฅผ ์ด๋ฆ์ผ๋ก ์ ์ฅํฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
UO.ClearFindList("colored");
UO.AddFindList("colored", 0x0EED, 0x0044);
var first = UO.FindList("colored", "backpack");
if (Truth(first != ""))
{
UO.AddObject("colored_item", first);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๊ฐ ํญ๋ชฉ์์ ๋๋ฝ๋ ์์์ hue์ ์๋ฏธํฉ๋๋ค. "5|6" ์ค์๋ ๋ ๊ฐ์ ์ ๋ช ์ฝ๋๊ฐ ํ์ฉ๋ฉ๋๋ค. ์ด ํํฐ๋ ์ผ๋ฐ ํ๋ชฉ์ ์ ์ธํฉ๋๋ค. ๊ฒ์์ ๊ณต๊ฒฉํ๊ฑฐ๋ ์คํํ์ง ์์ต๋๋ค Follow.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.ClearFindList("watch");
UO.AddFindList("watch", 0x0190);
UO.AddFindList("watch", 0x0191);
var nearby = UO.FindList("watch", "ground", 12, "5|6", true, 10);
if (Truth(nearby != ""))
{
UO.AddObject("watched_mobile", nearby);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: list (Any), type (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList(name). -
InjectionScript.Runtime.InjectionValue.ToString:value.ToString().
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "adddir":
case "addfindlist":
case "addgate":
case "addrecall":
case "addstep":
LegacyList(name).Add(string.Join("|", arguments.Select(value => value.ToString())));
break;๋งค๊ฐ๋ณ์: list (Any), type (Any), color (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList(name). -
InjectionScript.Runtime.InjectionValue.ToString:value.ToString().
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "adddir":
case "addfindlist":
case "addgate":
case "addrecall":
case "addstep":
LegacyList(name).Add(string.Join("|", arguments.Select(value => value.ToString())));
break;ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
void UO.AddIgnoreList(object? list, object? @type);
void UO.AddIgnoreList(object? list, object? @type, object? color);๊ฒ์ ์ ๊ฑด๋๋ฐ์ด์ผ ํ๋ ํญ๋ชฉ์ ๋ช ๋ช ๋ ์ธํธ๋ฅผ ์ค๋นํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๊ธ์์ ์ ํํ์ง ์๊ฑฐ๋ ํน์ ์์์ ํญ๋ชฉ์ ์ ํํ์ง ๋ง์ธ์. ๊ท์น์ type ๋ฐ hue๋ก ์ง์ ๋๋ฏ๋ก ๋์ค์ ๋ํ๋๋ ๊ฐ์ฒด๋ฅผ ํฌํจํ์ฌ ๋ชจ๋ ์ ํฉํ ๊ฐ์ฒด์ ์ ์ฉ๋ฉ๋๋ค. ์ค์ ํ SelectIgnoreList๋ฅผ ํตํด ๋ค์ด์ผ๋ง์ ํ์ฑํํ์ธ์.
-
listโ ๋น์ด ์์ง ์์ ์์์ ์ด๋ฆ(์: "loot_skip") ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. ์ด๋ ์์ดํ ์ ์ด๋ฆ๋, serial ์ปจํ ์ด๋์ ์ด๋ฆ๋, FindList์ ์ด๋ฆ๋ ์๋๋๋ค. -
type- ์์ดํ ์ ๊ทธ๋ํฝ/type ๋๋ body mobile. ์๋ฅผ ๋ค์ด 0x0EED๋ ๊ธ, 0x0191์ ์ฌ์ฑ ์ธ์ฒด์ ๋๋ค. ์ซ์ ๋๋ ์ซ์ ๋ฌธ์์ด("0x0EED", "3821"); -1/๊ธฐํ ๋ถ์ /0xFFFF - ๋ชจ๋ type. 65535๋ณด๋ค ํฐ ๊ฐ์ ํ์ฉ๋์ง ์์ต๋๋ค. ์ฌ๋ฌ type์ ๊ฒฝ์ฐ ์ฌ๋ฌ ๊ท์น์ ์ถ๊ฐํ์ธ์. -
color- ์์กฐ: 0 - ๋ฌด์๋ง, 0x0044 - ์ ํํ ์์์ ์; ๋ถ์ ๋๋ 0xFFFF - ๋ชจ๋. 65535๋ณด๋ค ํฐ ๊ฐ์ ํ์ฉ๋์ง ์์ต๋๋ค. ์ถ๊ฐ์์ ๊ธฐ๋ณธ๊ฐ์ 1์ ๋๋ค. ํ๋์ ๊ท์น ๋ด์์ ์ ํ๊ณผ hue์ AND ์กฐ๊ฑด์ผ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ค๋ฅธ ๊ท์น - ๋๋.
void - ๊ฐ์ด ์์ต๋๋ค. var ๊ฒฐ๊ณผ = ๋ฐ ํ์ธ =true ์์ด ๋ณ๋์ ์ค์ ์ฌ์ฉํ์ธ์. ์ด ๋ช ๋ น์ ๋ก์ปฌ ํํฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ํญ๋ชฉ ์๋ฅผ ๋ฐํํ์ง ์์ผ๋ฉฐ ์๋ฒ์ ์๋ฌด ๊ฒ๋ ๋ณด๋ด์ง ์์ต๋๋ค.
- ํ์ฌ ์ ํ๋ ๋ชฉ๋ก์ ๊ด๊ณ์์ด FIRST ์ธ์๋ก ์ง์ ๋ ๋ชฉ๋ก์ ์ถ๊ฐํฉ๋๋ค. ๋ฐ๋ณต๋๋ ์์น์ ์ผ๋ก ๋์ผํ ์์ ์ค๋ณต๋์ง ์์ต๋๋ค.
- ๋ช ๋ช ๋ ๋ชฉ๋ก์๋ graphic/type + hue ๊ท์น์ด ํฌํจ๋์ด ์๊ณ ์ผ๋ฐ Ignore์๋ ํน์ serial ๊ท์น์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด๋ค์ ์๋ก ๋ค๋ฅธ ํํฐ์ ๋๋ค. ๊ฒ์์ด ์ง์๋๋ฉด ๊ฒฐํฉ๋ฉ๋๋ค. ๊ฐ์ฒด๋ ๊ณ์ ํ์๋๊ณ ์ง์ UseObject/MoveItem์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด๋ Hide ๋๋ ํ์ ๊ธ์ง๊ฐ ์๋๋๋ค.
- ๋ชฉ๋ก ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. ๊ฐ์ฅ์๋ฆฌ ๊ณต๊ฐ์ด ์ ๊ฑฐ๋ฉ๋๋ค. ํ๋์ ๋ช ๋ช ๋ ๋ชฉ๋ก์ด ํ์ฑํ๋์ด ์์ผ๋ฉฐ ์ด๊ธฐ์๋ ๊ธฐ๋ณธ๊ฐ์ ๋๋ค. AddIgnoreList๋ ์๋์ผ๋ก ์ ํ๋์ง ์์ต๋๋ค. SelectIgnoreList("")์ ๋ช ๋ช ๋ ํํฐ๋ง ๋นํ์ฑํํฉ๋๋ค.
- ๊ท์น์ ์ถ๊ฐ๋ ํ์ ์ ๋ก๋๋ ํญ๋ชฉ์ ํฌํจํ์ฌ ์๋ก์ด ๊ฒ์์ ์ ์ฉ๋ฉ๋๋ค. ์ด๋ฏธ ์์ ๋ ๋ฐฐ์ด๊ณผ ์ด์ ๊ฒฐ๊ณผ FindCount๋ ์๋ก์ด ๊ฒ์์ด ์ด๋ฃจ์ด์ง ๋๊น์ง ๋ค์ ๊ณ์ฐ๋์ง ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ ์ ์ธํ๋ ค๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฉด -1,-1 ๊ท์น์ด ์๋ ๋ชฉ๋ก์ ์ ํํ์ง ๋ง์ธ์.
- ํํฐ๋ FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx ๋ฐ ํ์ฅ ์ ํ ํญ๋ชฉ GetMobiles, GetWorldItems, UseType์ ๊ณ ๋ คํฉ๋๋ค. WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true(์ ๊ณต๋ ๊ฒฝ์ฐ)๋ serial ๋ฐ type/hue๋ฅผ ๋ชจ๋ ์ฐํํฉ๋๋ค. ์ธ์๊ฐ ์๋ ์ ์ฒด ์ด๊ฑฐํ GetContent/GetEquipment, GetWorldItems() ๋ฐ ๋์ฌ FindMobile(human,near,...) ๋ ์ด๋ฌํ ๊ท์น์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
- GetIgnoreList๋ ๋ช ์์ ์ผ๋ก ์ถ๊ฐ๋ serial๋ง ๋ฐํํฉ๋๋ค. ๋ช ๋ช ๋ ๋ชฉ๋ก์ ํ์ ์ด ๋ฐฐ์ด์ ํฌํจ๋์ง ์์ต๋๋ค. IgnoreReset๋ ์ ์ฒด serial ํํฐ๋ฅผ ์ง์ฐ๊ณ , IgnoreOff(serial)๋ ํ๋์ serial-์์ธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ๋ช ๋ช ๋ ๊ท์น์ ์ ์ง๋ฉ๋๋ค. ์ธ์๊ฐ ์๋ ClearIgnoreList()๋ ๋ ๋ณด๊ธฐ๋ฅผ ๋ชจ๋ ์ง์๋๋ค.
- ์ํ๋ ํด๋ผ์ด์ธํธ ํ๋กํ ์คํฌ๋ฆฝํธ์ ์ผ๋ฐ ์ํ์ ์ํฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ์ด ์ํ์ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ค์ ์ ์ ์ฅ๋ ์ค๋ ์ท์ ํฌํจ๋ฉ๋๋ค. ๊ท์น์ ๋ณ๊ฒฝํ ํ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ๋ ์ด๋ฏธ ์ด์ ์ ์ฐ์ ์ค๋ ์ท์ผ๋ก ๊ฒ์์ ์ํํ ์ ์์ต๋๋ค. ๋ค์ ๊ฒ์์์๋ ์ ๋ฐ์ดํธ๊ฐ ํ์๋ฉ๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
๋ช ๋ น์ ๋ ๋ฆฝ๋ ๋ฌธ์ ๋๋ค. ์์ ๋ฉ์์ง๋ ํธ์ถ ์์์ ๋ํ๋ด๋ฉฐ ์๋ฒ ๋์์ ์๋ฃ๋ฅผ ํ์ธํ์ง ์์ต๋๋ค.
UO.Print("Calling UO.AddIgnoreList");
UO.AddIgnoreList("simple_skip", 0x0EED);๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- loot_skip โ ์ด๋ฆ์ ์ค์ ํฉ๋๋ค. ๋๋ฝ๋ ์์์ hue๋ฅผ ์๋ฏธํฉ๋๋ค. FindType๋ 16์ง์ ๋ฌธ์์ด ID ๋๋ ๋น ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. ์ฌ๊ธฐ์ ๊ฒฐ๊ณผ๋ next_loot์ ์ ์ฅ๋๊ณ ํญ๋ชฉ์ ์ด๋๋์ง ์์ต๋๋ค. ํ ์ง๋ฅผ ๊ฒ์ํ๋ฉด mobile๋ ์ฐพ์ ์ ์์ต๋๋ค.
UO.AddIgnoreList("loot_skip", 0x0EED);
UO.SelectIgnoreList("loot_skip");
var item = UO.FindType(-1, -1, "ground");
if (Truth(item == ""))
{
UO.Print("No unignored ground object found");
return null;
}
UO.AddObject("next_loot", item);
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- 0x1F03 - graphic ๋ก๋ธ; 0x0044๋ ๋ณดํธ๋ ์์์ ์์ ๋๋ค. ๋ ๋ค๋ฅธ hue์ Robu ๊ฒ์์ด ๊ฐ๋ฅํฉ๋๋ค. ์ด๋ ์๋ ค์ง ID์ ์ํ ์ง์ ์ ์ธ MoveItem๊ฐ ์๋ ํํฐ๋ง ๊ฒ์์ ํตํ ์ ํ์ผ๋ก๋ถํฐ ๋ณดํธ๋ฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
UO.AddIgnoreList("keep_colored", 0x1F03, 0x0044);
UO.SelectIgnoreList("keep_colored");
var robe = UO.FindType(0x1F03, -1, "backpack");
if (Truth(robe != ""))
{
UO.AddObject("candidate_robe", robe);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๊ท์น์ ๋ ๋ชฉ๋ก ๋ชจ๋์ ์ ์ฅ๋ฉ๋๋ค. ๊ธ๊ณผ ๋ก๋ธ๋ฅผ ๋์์ ์ ์ธํ๋ ค๋ฉด ๋์ผํ ๋ชฉ๋ก์ type๋ฅผ ๋ชจ๋ ์ถ๊ฐํ์ธ์.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.AddIgnoreList("skip_gold", 0x0EED);
UO.AddIgnoreList("skip_robes", 0x1F03);
UO.SelectIgnoreList("skip_gold");
UO.SelectIgnoreList("skip_robes");
return null;
}
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: list (Any), type (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Add:state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]), arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "addignorelist":
state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]),
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1);
break;๋งค๊ฐ๋ณ์: list (Any), type (Any), color (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Add:state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]), arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "addignorelist":
state.IgnoreTypeLists.Add(Text(0), ResolveType(arguments[1]),
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : -1);
break;ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
void UO.ClearBadLocationList();SetBadLocation์ ์ํด ์ ์ฅ๋ ๋ชจ๋ ์์ ์ญ์ ํฉ๋๋ค.
๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
void - ๋ฐํ ๊ฐ์ด ์์ต๋๋ค. ๋ณ๋์ ํ์ ์ผ๋ก ์ ํํ์ธ์. true/false ๋๋ ๊ฑธ์ ์๊ฐ ์๋๋๋ค.
- ์๋ฒ์ ์ง๋, ์บ๋ฆญํฐ, ์ฅ์ ๋ฌผ์ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ๋ฐํ์ ๋ชฉ๋ก๋ง ์ง์์ง๋๋ค.
- ์ด๋ฏธ ์์ ๋ ๊ฒฝ๋ก ๋ฐฐ์ด๊ณผ ์ดํ ๊ฒฝ๋ก ๊ธ์ง ์ค๋ ์ท์ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ์๋ก์ด ๊ฒฐ๊ณผ๋ฅผ ์ป์ผ๋ ค๋ฉด ๊ฒฝ๋ก ์์ฒญ์ ๋ฐ๋ณตํ๊ฑฐ๋ ์ด๋์ ๋ค์ ์์ํ์ธ์. ๋ชฉ๋ก SetBadObject์ ๋ณ๋๋ก ์ญ์ ๋ฉ๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
๋ช ๋ น์ ๋ ๋ฆฝ๋ ๋ฌธ์ ๋๋ค. ์์ ๋ฉ์์ง๋ ํธ์ถ ์์์ ๋ํ๋ด๋ฉฐ ์๋ฒ ๋์์ ์๋ฃ๋ฅผ ํ์ธํ์ง ์์ต๋๋ค.
UO.Print("Calling UO.ClearBadLocationList");
UO.ClearBadLocationList();๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
- ๋ฐํ ๊ฐ์ด ์์ต๋๋ค.
UO.ClearBadLocationList();๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๋จผ์ ์ด์ ์์ด ์ญ์ ๋ ๋ค์ ์ ์์ด ์ถ๊ฐ๋ฉ๋๋ค.
- ์ด๋ ๋ฌผ๋ฆฌ์ ์ฅ์ ๋ฌผ์ด๋ ํด๋ผ์ด์ธํธ ์นด๋ ๋ณ๊ฒฝ์ด ์๋๋๋ค.
return RunScenario();
object? RunScenario()
{
UO.ClearBadLocationList();
UO.SetBadLocation(1445, 1690);
return null;
}๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๋ชฉํ๋ ๋์ชฝ์ผ๋ก 4๊ฐ ์ , ์ต์ ํ=true, ์ ํ๋=0์ ๋๋ค.
- ์ญ์ ํ ๋น ๋ฐฐ์ด์ ์ผ๋ฐ์ ์ธ ์ฅ์ ๋ฌผ์ด๋ ๊ฒ์ ์ ํ์ผ๋ก ์ธํด ๋ฐ์ํ ์ ์์ต๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.ClearBadLocationList();
var path = UO.GetPathArray(UO.GetX() + 4, UO.GetY(), true, 0);
if (Truth(ArrayLength(path) == 0))
{
UO.Print("No complete path under current constraints");
}
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "clearbadlocationlist": state.BadLocations.Clear(); return InjectionValue.Unit;ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
void UO.ClearBadObjectList();ํ์ฌ ๋ฐํ์์์ SetBadObject์ ์ํด ์ถ๊ฐ๋ ๋ชจ๋ type/hue/radius ๊ท์น์ ์ ๊ฑฐํฉ๋๋ค.
๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
void - ๋ฐํ ๊ฐ์ด ์์ต๋๋ค. ๋ณ๋์ ํ์ ์ผ๋ก ์ ํํ์ธ์. true/false ๋๋ ๊ฑธ์ ์๊ฐ ์๋๋๋ค.
- ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค. ๋ชฉ๋ก์ด ๋น์ด ์์ ๋ ๋ค์ ์ ํํ๋ ๊ฒ์ด ์์ ํฉ๋๋ค.
- SetBadLocation๋ฅผ ์ ํํ๊ฑฐ๋ ์์ฐ์ ์ธ ์ฅ์ ๋ฌผ์ ์ ๊ฑฐํ์ง ์์ต๋๋ค. ์๋ก์ด ์ด๋์ด๋ ๊ฒฝ๋ก ์์ฒญ์ ์ง์์ง ๋ชฉ๋ก์ ์ฌ์ฉํฉ๋๋ค. ์ด์ ์ ์์๋ ๊ฒฝ๋ก๋ ์์ฒด ์ค๋ ์ท์ ์ ์ฅํฉ๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
๋ช ๋ น์ ๋ ๋ฆฝ๋ ๋ฌธ์ ๋๋ค. ์์ ๋ฉ์์ง๋ ํธ์ถ ์์์ ๋ํ๋ด๋ฉฐ ์๋ฒ ๋์์ ์๋ฃ๋ฅผ ํ์ธํ์ง ์์ต๋๋ค.
UO.Print("Calling UO.ClearBadObjectList");
UO.ClearBadObjectList();๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๋ ผ์์ด ์์ต๋๋ค. ํตํ๋ ๋ณ๋์ ํ์ ์ ๋ น์๋ฉ๋๋ค.
- ๊ฒฐ๊ณผ true/false๊ฐ ์๊ณ ์ญ์ ๋ ๊ท์น๋ ์์ต๋๋ค.
UO.ClearBadObjectList();๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ํด๋ฆฌ์ด ํ์๋ ๋ชจ๋ ์์์ type=0x398C๋ง ์ถ๊ฐ๋ฉ๋๋ค.
- Radius=2๋ ๋ค์ ๊ฒฝ๋ก์์ ์ ํฉํ ํญ๋ชฉ ์ฃผ๋ณ์ 5ร5 ์ฌ๊ฐํ์ ์ ์ธํฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
UO.ClearBadObjectList();
UO.SetBadObject(0x398C, -1, 2);
return null;
}3. ์์ฉ ํ๋ก๊ทธ๋จ ๊ธ์ง๋ฅผ ์์ ํ ์ฌ์ค์ ํ ํ ๊ฒฝ๋ก ๋ค์ ๊ณ์ฐ - ์คํฌ๋ฆฝํธ ํด๋์ค
๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๋ ๋ชฉ๋ก์ ๋ ๋ฆฝ์ ์ ๋๋ค. ๋ ๋ช ๋ น ๋ชจ๋ ๋ชจ๋ ์ฌ์ค์ ํ๊ธฐ ์ํด ํธ์ถ๋ฉ๋๋ค.
- ๋์ชฝ์ ์๋ ์ธ ๊ฐ์ ์ฌ๊ฐํ์ ํ์ ์ ์์ ๋๋ค. ์ง๋ ํตํ์ฑ, ๊ณ ๋ ๋ฐ ๊ฒ์ ์ ํ์ ์ ์ง๋ฉ๋๋ค. ๋น ๋ฐฐ์ด์ ์ฌ์ ํ โโ์ ํจํ ๊ฒฐ๊ณผ์ ๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.ClearBadObjectList();
UO.ClearBadLocationList();
var path = UO.GetPathArray(UO.GetX() + 3, UO.GetY(), true, 0);
UO.Print(Convert.ToString(ArrayLength(path)));
return null;
}
int ArrayLength(object? value) => value is System.Array array ? array.Length : 0;
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "clearbadobjectlist": state.BadObjects.Clear(); return InjectionValue.Unit;ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
void UO.ClearFindList();
void UO.ClearFindList(object? list);ํ์ฌ ๋ฐํ์์ ๋ช ๋ช ๋ ๊ฒ์ ์ธํธ ํ๋ ๋๋ ๋ชจ๋ ์ธํธ AddFindList์ ์ ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ๊ท์น์ด ์์ด๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํํฐ๋ฅผ ์ฌ๊ตฌ์ฑํ๊ธฐ ์ ์ ์ฌ์ฉ๋ฉ๋๋ค.
-
listโ ๊ท์น ์ธํธ์ ์ด๋ฆ(์: "loot") | ์์ด ๋ฌธ์์ด์ ์ ๋ฌํฉ๋๋ค. ์ด ๋ฌธ์๋ ๋ ์ฝ๋ ๋ด์์ ๊ตฌ๋ถ ๊ธฐํธ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. ์ด๋ serial ์ปจํ ์ด๋๋ ๋ฐ๊ฒฌ๋ ํญ๋ชฉ์ ๋ฐฐ์ด์ด ์๋๋๋ค. ์ธ์๊ฐ ๋๋ฝ๋๋ฉด ์ด ๋ฐํ์์์ AddFindList์ ๋ชจ๋ ์ ์๊ฐ ์ ๊ฑฐ๋ฉ๋๋ค.
void: ๋ฐํ ๊ฐ์ด ์์ต๋๋ค. ํธ์ถ์ ๋ณ์์ ํ ๋นํ์ง ๋ง๊ณ true/1์์ ํ ์คํธํ์ง ๋ง์ธ์. ์ ์ ์ํ๋ UO.InfoFindList()๋ก ์ถ๋ ฅ๋ ์ ์์ต๋๋ค. ๊ฒ์ ์์ฒด๋ UO.FindList()์ ํตํด ๋ณ๋๋ก ์์๋ฉ๋๋ค.
- ์ ์๋ ์ง์ ๋ ์คํฌ๋ฆฝํธ ๋ฐํ์ ์ํ์ ์์ต๋๋ค. ๋ ๋ฆฝ์ ์ธ ๋ค๋ฅธ ๋ฐํ์์๋ ์์ฒด ์ธํธ๊ฐ ์์ต๋๋ค. IDE ์ฐฝ์ ๋ซ์๋ ์ด๋ฌํ ๊ท์น์ ์ง์์ง์ง ์์ต๋๋ค. ์ด๊ฒ์ ์ค์ ํ์ผ์ด๋ ์ ์ญ ๊ฒ์ ๊ฐ์ฒด ๋ชฉ๋ก์ด ์๋๋๋ค.
- AddFindList ํญ๋ชฉ์ ๋์ ์ถ๊ฐํฉ๋๋ค. ๋ฐ๋ณต์ ์ญ์ ๋์ง ์์ต๋๋ค. ํคํธ๋ฅผ ๋ค์ ํ๋ก๋น์ ๋ํ๋ ค๋ฉด ๋จผ์ ClearFindList("name")์ผ๋ก ์ ํํ์ธ์. ์ ์๋ฅผ ๋ณ๊ฒฝํด๋ ์ด๋ฏธ ์์ ๋ FindItem/FindCount/GetFoundItems๋ ์ง์์ง์ง ์์ต๋๋ค.
- ๋ ์ฝ๋๋ ํ ์คํธ ํ๋๋ฅผ ์ ์ฅํฉ๋๋ค. ์ซ์ ๋ฆฌํฐ๋ด 0x0EED์ "3821"๋ก ์ ์ฅ๋๊ณ , ๋ฌธ์์ด "0x0EED"์ "0x0EED"๋ก ์ ์ฅ๋ฉ๋๋ค. ๊ฒ์์ ๋ ์ต์ ์ ๋ชจ๋ ์ซ์๋ก ๋ณํํ๊ณ DeleteFindList๋ ์ ์ฅ๋ ํ ์คํธ๋ฅผ ๋น๊ตํฉ๋๋ค. ์ถ๊ฐ ๋ฐ ์ญ์ ์์๋ ๋์ผํ ์์์ ์ฌ์ฉํ์ธ์.
- FindList์ ์ ์ ์๋ ์ด๋ฆ์ ๋น ๋ฑ๋ก ์ธํธ๊ฐ ์๋๋๋ค. ์์ง์ ์ด๋ฅผ ์ซ์ ์ ํ ๋ชฉ๋ก์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์ซ์๊ฐ ์๋ ์ด๋ฆ์ ์ฌ์ฉํ๋ฉด ๋ณํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ง์ง๋ง ํญ๋ชฉ์ ์ญ์ ํ ํ ํด๋น ์ด๋ฆ์ ๊ฒ์ํ๊ธฐ ์ ์ ์ ์ธํธ๋ฅผ ๋ง๋์ญ์์ค.
- ์กด์ฌํ์ง ์๋ ์ด๋ฆ์ ์์ ํฉ๋๋ค. ์๋ฌด๊ฒ๋ ์ญ์ ๋์ง ์์ต๋๋ค. ์ด ๋ช ๋ น์ ๊ฒ์ ์์ดํ ์ ์ ๊ฑฐํ๊ฑฐ๋ Ignore๋ฅผ ์ง์ฐ๊ฑฐ๋ ์ด๋์ ์ทจ์ํ์ง ์์ต๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
๋ช ๋ น์ ๋ ๋ฆฝ๋ ๋ฌธ์ ๋๋ค. ์์ ๋ฉ์์ง๋ ํธ์ถ ์์์ ๋ํ๋ด๋ฉฐ ์๋ฒ ๋์์ ์๋ฃ๋ฅผ ํ์ธํ์ง ์์ต๋๋ค.
UO.Print("Calling UO.ClearFindList");
UO.ClearFindList();๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- BuildLoot ๋ด๋ถ์์๋ ์ ๋ฆฌํ๋ง ์ญ์ ๋ฉ๋๋ค. ์ด ์คํฌ๋ฆฝํธ์ ๋ค๋ฅธ ๋ช ๋ช ๋ ์ธํธ๋ ๋ณด์กด๋ฉ๋๋ค.
BuildLoot();
BuildLoot();
UO.InfoFindList();
void BuildLoot()
{
UO.ClearFindList("loot");
UO.AddFindList("loot", 0x0EED, -1);
UO.AddFindList("loot", 0x0F7A, -1);
}๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- SEASON ๋ ์ง์คํฐ๋ ์ค์ํ์ง ์์ต๋๋ค. ์๋น ์์ก; ์์ฆ์๋ ์ด์ ์๋ก์ด type/hue๋ง ์์ต๋๋ค. ์ ๋ฆฌ ํ ๊ธฐ๋ก์ด ๋จผ์ ์ถ๊ฐ๋ ํ ์ด๋ฆ์ผ๋ก ๊ฒ์์ด ํ์ฉ๋ฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
UO.AddFindList("reserve", 0x0EED);
UO.AddFindList("season", 0x0F7A);
UO.ClearFindList("SEASON");
UO.AddFindList("season", 0x0EED, 0x0044);
UO.InfoFindList();
return null;
}๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ClearFindList()๋ ํ์ฌ ๋ฐํ์์ ๋ชจ๋ ์ ์์ ์ํฅ์ ๋ฏธ์น๋ฏ๋ก ์ผ๋ฐ์ ์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ๋ก์์ ์๋ ์์ฒด ์ด๋ฆ์ด ์ง์ ๋ ํ์์ด ๋ ์ข์ต๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.AddFindList("old_loot", 0x0EED);
UO.AddFindList("old_watch", 0x0190);
UO.AddFindList("old_watch", 0x0191);
UO.ClearFindList();
UO.AddFindList("current", 0x0F7A, -1);
var found = UO.FindList("current", "backpack");
if (Truth(found != ""))
{
UO.AddObject("current_supply", found);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "clearfindlist":
if (arguments.Length == 0) LegacyList("AddFindList").Clear();
else LegacyList("AddFindList").RemoveAll(value => value.Split('|')[0]
.Equals(Text(0), StringComparison.OrdinalIgnoreCase));
break;๋งค๊ฐ๋ณ์: list (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "clearfindlist":
if (arguments.Length == 0) LegacyList("AddFindList").Clear();
else LegacyList("AddFindList").RemoveAll(value => value.Split('|')[0]
.Equals(Text(0), StringComparison.OrdinalIgnoreCase));
break;ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
void UO.ClearIgnoreList();
void UO.ClearIgnoreList(object? list);๊ฒ์ ์์ธ๋ฅผ ์ฌ์ค์ ํฉ๋๋ค. ์ด๋ฆ ํฌํจ - ๋จ ํ๋์ ์ธํธ type/hue. ์ธ์ ์์ - ๋ชจ๋ ๋ช ๋ช ๋ ์งํฉ๊ณผ Ignore๋ฅผ ํตํด ์ถ๊ฐ๋ ๋ชจ๋ serial. ๊นจ๋ํ ๊ท์น์ผ๋ก ์๋ก์ด ์ ๋ ฌ์ ์์ํ๋ ๊ฒ์ด ์ ์ฉํฉ๋๋ค.
-
listโ ๋น์ด ์์ง ์์ ์์์ ์ด๋ฆ(์: "loot_skip") ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. ์ด๋ ์์ดํ ์ ์ด๋ฆ๋, serial ์ปจํ ์ด๋์ ์ด๋ฆ๋, FindList์ ์ด๋ฆ๋ ์๋๋๋ค. ์ ํ ๊ณผ๋ชฉ. ์ด ํญ๋ชฉ์ด ์๋ค๋ ๊ฒ์ ํ์ฑ ๋ชฉ๋ก๋ฟ๋ง ์๋๋ผ ์ผ๋ฐ์ ์ธ ์ฌ์ค์ ์ ์๋ฏธํฉ๋๋ค.
void - ๊ฐ์ด ์์ต๋๋ค. var ๊ฒฐ๊ณผ = ๋ฐ ํ์ธ =true ์์ด ๋ณ๋์ ์ค์ ์ฌ์ฉํ์ธ์. ์ด ๋ช ๋ น์ ๋ก์ปฌ ํํฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ํญ๋ชฉ ์๋ฅผ ๋ฐํํ์ง ์์ผ๋ฉฐ ์๋ฒ์ ์๋ฌด ๊ฒ๋ ๋ณด๋ด์ง ์์ต๋๋ค.
- ClearIgnoreList("์ด๋ฆ")์ ๊ฒฐ๊ณผ์ ์ผ๋ก DeleteIgnoreList("์ด๋ฆ")๊ณผ ๋์ผํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๋น ๋ฌธ์์ด์ด ํ์ฉ๋์ง ์์ต๋๋ค. ์ญ์ ํ์ง ์๊ณ ๋นํ์ฑํํ๋ ค๋ฉด SelectIgnoreList("")๋ฅผ ์ฌ์ฉํ์ธ์.
- ๋ช ๋ช ๋ ๋ชฉ๋ก์๋ graphic/type + hue ๊ท์น์ด ํฌํจ๋์ด ์๊ณ ์ผ๋ฐ Ignore์๋ ํน์ serial ๊ท์น์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด๋ค์ ์๋ก ๋ค๋ฅธ ํํฐ์ ๋๋ค. ๊ฒ์์ด ์ง์๋๋ฉด ๊ฒฐํฉ๋ฉ๋๋ค. ๊ฐ์ฒด๋ ๊ณ์ ํ์๋๊ณ ์ง์ UseObject/MoveItem์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด๋ Hide ๋๋ ํ์ ๊ธ์ง๊ฐ ์๋๋๋ค.
- ๋ชฉ๋ก ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. ๊ฐ์ฅ์๋ฆฌ ๊ณต๊ฐ์ด ์ ๊ฑฐ๋ฉ๋๋ค. ํ๋์ ๋ช ๋ช ๋ ๋ชฉ๋ก์ด ํ์ฑํ๋์ด ์์ผ๋ฉฐ ์ด๊ธฐ์๋ ๊ธฐ๋ณธ๊ฐ์ ๋๋ค. AddIgnoreList๋ ์๋์ผ๋ก ์ ํ๋์ง ์์ต๋๋ค. SelectIgnoreList("")์ ๋ช ๋ช ๋ ํํฐ๋ง ๋นํ์ฑํํฉ๋๋ค.
- ๊ท์น์ ์ถ๊ฐ๋ ํ์ ์ ๋ก๋๋ ํญ๋ชฉ์ ํฌํจํ์ฌ ์๋ก์ด ๊ฒ์์ ์ ์ฉ๋ฉ๋๋ค. ์ด๋ฏธ ์์ ๋ ๋ฐฐ์ด๊ณผ ์ด์ ๊ฒฐ๊ณผ FindCount๋ ์๋ก์ด ๊ฒ์์ด ์ด๋ฃจ์ด์ง ๋๊น์ง ๋ค์ ๊ณ์ฐ๋์ง ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ ์ ์ธํ๋ ค๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฉด -1,-1 ๊ท์น์ด ์๋ ๋ชฉ๋ก์ ์ ํํ์ง ๋ง์ธ์.
- ํํฐ๋ FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx ๋ฐ ํ์ฅ ์ ํ ํญ๋ชฉ GetMobiles, GetWorldItems, UseType์ ๊ณ ๋ คํฉ๋๋ค. WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true(์ ๊ณต๋ ๊ฒฝ์ฐ)๋ serial ๋ฐ type/hue๋ฅผ ๋ชจ๋ ์ฐํํฉ๋๋ค. ์ธ์๊ฐ ์๋ ์ ์ฒด ์ด๊ฑฐํ GetContent/GetEquipment, GetWorldItems() ๋ฐ ๋์ฌ FindMobile(human,near,...) ๋ ์ด๋ฌํ ๊ท์น์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
- GetIgnoreList๋ ๋ช ์์ ์ผ๋ก ์ถ๊ฐ๋ serial๋ง ๋ฐํํฉ๋๋ค. ๋ช ๋ช ๋ ๋ชฉ๋ก์ ํ์ ์ด ๋ฐฐ์ด์ ํฌํจ๋์ง ์์ต๋๋ค. IgnoreReset๋ ์ ์ฒด serial ํํฐ๋ฅผ ์ง์ฐ๊ณ , IgnoreOff(serial)๋ ํ๋์ serial-์์ธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ๋ช ๋ช ๋ ๊ท์น์ ์ ์ง๋ฉ๋๋ค. ์ธ์๊ฐ ์๋ ClearIgnoreList()๋ ๋ ๋ณด๊ธฐ๋ฅผ ๋ชจ๋ ์ง์๋๋ค.
- ์ํ๋ ํด๋ผ์ด์ธํธ ํ๋กํ ์คํฌ๋ฆฝํธ์ ์ผ๋ฐ ์ํ์ ์ํฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ์ด ์ํ์ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ค์ ์ ์ ์ฅ๋ ์ค๋ ์ท์ ํฌํจ๋ฉ๋๋ค. ๊ท์น์ ๋ณ๊ฒฝํ ํ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ๋ ์ด๋ฏธ ์ด์ ์ ์ฐ์ ์ค๋ ์ท์ผ๋ก ๊ฒ์์ ์ํํ ์ ์์ต๋๋ค. ๋ค์ ๊ฒ์์์๋ ์ ๋ฐ์ดํธ๊ฐ ํ์๋ฉ๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
๋ช ๋ น์ ๋ ๋ฆฝ๋ ๋ฌธ์ ๋๋ค. ์์ ๋ฉ์์ง๋ ํธ์ถ ์์์ ๋ํ๋ด๋ฉฐ ์๋ฒ ๋์์ ์๋ฃ๋ฅผ ํ์ธํ์ง ์์ต๋๋ค.
UO.Print("Calling UO.ClearIgnoreList");
UO.ClearIgnoreList();๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ์์๋ก ์ ๊ฑฐ๋์์ผ๋ฉฐ, ๋ก๋ธ๋ ๊ณ์ ์ ์ธ๋ฉ๋๋ค. ์ผ๋ฐ ๋ชฉ๋ก serial์ ์ง์์ง์ง ์์ต๋๋ค.
UO.AddIgnoreList("temporary", 0x0EED);
UO.AddIgnoreList("keep", 0x1F03);
UO.ClearIgnoreList("temporary");
UO.SelectIgnoreList("keep");๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ์ธ์๊ฐ ์์ผ๋ฉด ๋ ๊ฐ์ง ์ ํ์ ์์ธ๊ฐ ๋ชจ๋ ๋ฐ์ํฉ๋๋ค. ์ด์ ๋ณ์/๋ฐฐ์ด์ ์ง์์ง์ง ์์ต๋๋ค. ์๋ก์ด FindType๋ ๊ฒฐ๊ณผ๋ฅผ ์ฌ์์ฑํฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
UO.ClearIgnoreList();
var item = UO.FindType(0x0EED, -1, "ground");
if (Truth(item != ""))
{
UO.AddObject("fresh_gold", item);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ์๋ก์ด ์ ๋ ฌ ๊ท์น์ด ์ถ๊ฐ๋๊ธฐ ์ ์ ์ด์ ์ ๋ ฌ ๊ท์น์ด ์ ๊ฑฐ๋์์ต๋๋ค. ๋ชจ๋ ๊ธ์๊ณผ ๋ก๋ธ์ 0x0044 ์์๋ง ์ถ๊ฐ๋์์ต๋๋ค. ๋ณ๋์ ๋ช ๋ น ์ฌ์ด์์ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ๊ฐ ์ค๊ฐ ์ํ๋ฅผ ๋ณผ ์ ์์ต๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.ClearIgnoreList("sorting");
UO.AddIgnoreList("sorting", 0x0EED);
UO.AddIgnoreList("sorting", 0x1F03, 0x0044);
UO.SelectIgnoreList("sorting");
return null;
}
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.IgnoreReset:IgnoreReset(). -
InjectionScript.Runtime.State.NamedIgnoreLists.Clear:state.IgnoreTypeLists.Clear(). -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "clearignorelist":
if (arguments.Length == 0)
{
IgnoreReset();
state.IgnoreTypeLists.Clear();
}
else
state.IgnoreTypeLists.Remove(Text(0));
break;๋งค๊ฐ๋ณ์: list (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.IgnoreReset:IgnoreReset(). -
InjectionScript.Runtime.State.NamedIgnoreLists.Clear:state.IgnoreTypeLists.Clear(). -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "clearignorelist":
if (arguments.Length == 0)
{
IgnoreReset();
state.IgnoreTypeLists.Clear();
}
else
state.IgnoreTypeLists.Remove(Text(0));
break;ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
int UO.Count(object? @type);
int UO.Count(object? @type, object? color);
int UO.Count(object? @type, object? color, object? container);๊ฒ์์ ์ํํ๊ณ ์ฐพ์ ํญ๋ชฉ์ ๋จ์๋ฅผ ์์ฝํฉ๋๋ค.
-
type- ํญ๋ชฉ์ ๊ทธ๋ํฝ/type(์: 0x0EED), serial ์๋. -1 ๋๋ 0xFFFF - ๋ชจ๋ type. -
colorโ ํญ๋ชฉ์ ์์; -1 ๋๋ 0xFFFF - ๋ชจ๋ ์์. Count(type) ๋ฐ CountGround(type)์์ ๊ธฐ๋ณธ๊ฐ์ 1์ ๋๋ค. -
container- Count(type,color,container): my ๋๋ ์ซ์ -1 - ๋ฃจํธ ์์ ์๊ฐ self์ธ ๋ชจ๋ ํญ๋ชฉ(์ฅ๋น ๋ฐ ์ค์ฒฉ ๊ฐ๋ฐฉ ํฌํจ) backpack/serial โ ์ง์ ๋ ์ปจํ ์ด๋์ ์ฝํ ์ธ ๊ฐ ์ฌ๊ท์ ์ ๋๋ค. UO.Ground(), ๋ช ์์ 0/"0", ground ๋๋ 1 - ์ง์์ ์๋ ์์ดํ ๊ณผ ๋ชจ๋ฐ์ผ. CountEx์์ ์ซ์ -1 ๋ฐ 0xFFFFFFFF๋ ์ง๋ฉด์ ์๋ฏธํ์ง๋ง ์ฝํฌ๋ฆฌํธ serial๋ ์ง์ ์ ์ธ ๋ด์ฉ๋ง ์๋ฏธํฉ๋๋ค. CountEx๋ backpack์ ์ทจํ๊ณ ์ด๋ฆ์ AddObject๋ก ์ง์ ํฉ๋๋ค. ์ ์ ์๋ ์ด๋ฆ์ผ๋ก ์ธํด ์คํฌ๋ฆฝํธ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ํธ์ถํ๊ธฐ ์ ์ ๊ฒฐ๊ณผ serial๋ฅผ ํ์ธํ์ธ์. ๋ช ์์ ์ธ null์ ๋๋ฝ๋ ์ปจํ ์ด๋๊ฐ ์๋ ์ ์ง๋ฅผ ์ ํํฉ๋๋ค.
int โ ๋ฐ๊ฒฌ๋ ํญ๋ชฉ์ ์ต๋ ํฉ๊ณ(1, Amount); ๋ชจ๋ ๋ชจ๋ฐ์ผ์๋ 1๊ฐ ์ถ๊ฐ๋ฉ๋๋ค. 0 ์ผ์นํ๋ ํญ๋ชฉ์ด ์์ต๋๋ค. ์ด๋ ์คํ ์๊ฐ ์๋๋ผ ์ ๋ ์์ ๋๋ค. FindItem, FindCount, FindFullQuantity, GetFoundItems๊ฐ ๋์์ ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
- Count๋ ํ๋ ๋๋ ๋ ๊ฐ์ ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ๋น ๋ฐ ์ค์ฒฉ๋ ๊ฐ๋ฐฉ์ ํฌํจํ์ฌ self๊ฐ ์์ ํ ํญ๋ชฉ์ ๊ฒ์ํฉ๋๋ค. CountGround๋ ์ผ์นํ๋ ๋ชจ๋ฐ์ผ์ ํฌํจํ์ฌ ํญ์ ํ ์ง๋ฅผ ๊ฒ์ํ์ง๋ง self๋ ์ ์ธํฉ๋๋ค.
- Count(type,color,serial)๋ ์ค์ฒฉ๋ ๋ฐฑ์ ์ฐํํ๊ณ , CountEx(type,color,serial) - ์ง์ ์ฝํ ์ธ ๋ง ์ฌ์ฉํฉ๋๋ค. ์ ์ฝ ์กฐ๊ฑด FindDistance/FindVertical๋ ํ ์ง์ ์ ์ฉ๋ฉ๋๋ค. Ignore ๋ฐ๊ฒฌ๋ ๋ฌผ์ฒด์ ์ ์ฉ๋ฉ๋๋ค.
- ๊ฒฐ๊ณผ๋ ์ด๋ฏธ ๋ฐ์ ์ปจํ ์ด๋์ ๋ด์ฉ๋ฌผ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ ์ฒด ์ธ๋ฒคํ ๋ฆฌ์ ๋ํ ์๋ ์ด๊ธฐ ๋๋ ์๋ฒ ์์ฒญ์ ์์ต๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
ํ ๋ฒ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์ ๋์ ํ์ํฉ๋๋ค. ์ซ์๋ฅผ bool๋ก ๋ณํํ์ง ์์ผ๋ฉฐ, ๋ฐฐ์ด์ด๋ฉด ์์ ์๋ฅผ ํ์ํฉ๋๋ค.
var result = UO.Count(0x0EED, -1, "backpack");
UO.Print("Count: " + Convert.ToString(result));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- type=0x0EED, ์์=-1. ์ง์ญ - ๋ฐฐ๋ญ; ์ฌ๊ท์ฑ ์ฐจ์ด Count/CountEx๋ฅผ ๊ณ ๋ คํ์ธ์.
- 1000 dast ๋จ์=1000์์ ํ ๋ฐ, 1๊ฐ ์๋.
var units = UO.Count(0x0EED, -1, "backpack");
UO.Print("Units: " + Convert.ToString(units));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- FindCount๋ Count ์งํ, ๋ค๋ฅธ ๊ฒ์ ์ ์ ์ฝํ์ง๋๋ค.
- 50 ๋ ๊ฐ์ ์คํ์ 2 ์์ดํ ๊ณผ 100 ์ ๋์ ์์ฐํฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
var units = UO.Count(0x0EED, -1, "backpack");
var items = UO.FindCount();
UO.Print(Convert.ToString(items) + " items, " + Convert.ToString(units) + " units");
return null;
}๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- 100๋ ์ด ์์์ ๋จ์ ์๊ณ๊ฐ์ ๋๋ค.
- ์ด๋ ์ํ ์์ฝ์ด ์๋ ์ค๋ ์ท ํ์ธ์ ๋๋ค. ๊ฒํ ํ ์ ์ก ์ฌ์ด์ ์๋์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var units = UO.Count(0x0EED, -1, "backpack");
if (Truth(units >= 100))
{
UO.Print("Enough units known to the client");
}
else
{
UO.Print("Not enough known units");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: type (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.Count. -
InjectionScript.Runtime.InjectionApiUO.Count:Count(ResolveType(type), -1, -1). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
public int Count(InjectionValue type)
=> Count(ResolveType(type), -1, -1);๋งค๊ฐ๋ณ์: type (Any), color (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.Count. -
InjectionScript.Runtime.InjectionApiUO.Count:Count(ResolveType(type), NumberConversions.ToInt(color), 0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(color).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
public int Count(InjectionValue type, InjectionValue color)
=> Count(ResolveType(type), NumberConversions.ToInt(color), 0);๋งค๊ฐ๋ณ์: type (Any), color (Any), container (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.Count. -
InjectionScript.Runtime.InjectionApiUO.Count:Count(ResolveType(type), NumberConversions.ToInt(color), ConvertContainer(container)). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(color). -
InjectionScript.Runtime.InjectionApiUO.ConvertContainer:ConvertContainer(container).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
public int Count(InjectionValue type, InjectionValue color, InjectionValue container)
=> Count(ResolveType(type), NumberConversions.ToInt(color), ConvertContainer(container));ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
int UO.CountEx(object? objType, object? color, object? container);์ปจํ ์ด๋ ๋ฐ๋ก ์์ ์์ดํ ์๋์ ์ธ๋ฉฐ ์ค์ฒฉ ๊ฐ๋ฐฉ์ ๊ฒ์ํ์ง ์์ต๋๋ค. ์ง๋ฉด์์๋ ์ผ์นํ๋ ์บ๋ฆญํฐ/NPC๋ ๊ฐ๊ฐ 1๊ฐ๋ก ์ ๋๋ค. FindDistance, FindVertical, Ignore๋ ๊ณ์ ์ ์ฉ๋ฉ๋๋ค. FindItem, FindCount, FindFullQuantity, GetFoundItems๋ ๋ฐ๊พธ์ง ์์ต๋๋ค.
objType์ ๊ทธ๋ํฝ/type์ด๋ฉฐ ์๋ฆฌ์ผ์ด ์๋๋๋ค. color๋ ์์กฐ์ ๋๋ค. -1 ๋๋ 0xFFFF๋ ๋ชจ๋ type/์์กฐ์ ์ผ์นํฉ๋๋ค. container๋ ์ปจํ ์ด๋ ID์ด๋ฉฐ ๋ฐฐ๋ญ์ UO.Backpack(), ์ง๋ฉด์ UO.Ground()๋ฅผ ์ฌ์ฉํฉ๋๋ค. int๋ก max(1, Amount)์ ํฉ์ ๋ฐํํ๋ฉฐ 0์ ์ผ์น ํญ๋ชฉ ์์์ ๋๋ค. ์ด๋ฏธ ๋ฐ์ ๋ด์ฉ๋ง ์ธ๋ฉฐ ๊ฐ๋ฐฉ์ ์๋์ผ๋ก ์ด์ง ์์ต๋๋ค.
int goldUnits = UO.CountEx(0x0EED, -1, UO.Backpack());
UO.Print(goldUnits.ToString());UO.FindTypeEx(0x0EED, -1, UO.Backpack(), false);
int previousFoundItem = UO.FindItem();
int bandages = UO.CountEx(0x0E21, -1, UO.Backpack());
bool searchPreserved = UO.FindItem() == previousFoundItem;
UO.Print($"{bandages}; {searchPreserved}");int units = CountBackpackUnits(0x0EED);
UO.Print(units.ToString());
int CountBackpackUnits(int graphic)
{
return UO.CountEx(graphic, -1, UO.Backpack());
}var counter = new InventoryCounter(UO);
UO.Print(counter.CountGold().ToString());
class InventoryCounter(ClassicUO.CSharp.CSharpGameApi api)
{
public int CountGold() => api.CountEx(0x0EED, -1, api.Backpack());
}ClassicUOInjectionApiBridge.CountDirectItems โ MatchesFindIdentity / MatchesFindContainer / MatchesFindMobile.
ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
int UO.CountGround(object? @type);
int UO.CountGround(object? @type, object? color);๊ฒ์์ ์ํํ๊ณ ์ฐพ์ ํญ๋ชฉ์ ๋จ์๋ฅผ ์์ฝํฉ๋๋ค.
-
type- ํญ๋ชฉ์ ๊ทธ๋ํฝ/type(์: 0x0EED), serial ์๋. -1 ๋๋ 0xFFFF - ๋ชจ๋ type. -
colorโ ํญ๋ชฉ์ ์์; -1 ๋๋ 0xFFFF - ๋ชจ๋ ์์. Count(type) ๋ฐ CountGround(type)์์ ๊ธฐ๋ณธ๊ฐ์ 1์ ๋๋ค.
int โ ๋ฐ๊ฒฌ๋ ํญ๋ชฉ์ ์ต๋ ํฉ๊ณ(1, Amount); ๋ชจ๋ ๋ชจ๋ฐ์ผ์๋ 1๊ฐ ์ถ๊ฐ๋ฉ๋๋ค. 0 ์ผ์นํ๋ ํญ๋ชฉ์ด ์์ต๋๋ค. ์ด๋ ์คํ ์๊ฐ ์๋๋ผ ์ ๋ ์์ ๋๋ค. FindItem, FindCount, FindFullQuantity, GetFoundItems๊ฐ ๋์์ ์ ๋ฐ์ดํธ๋ฉ๋๋ค.
- Count๋ ํ๋ ๋๋ ๋ ๊ฐ์ ์ธ์๋ฅผ ์ฌ์ฉํ์ฌ ์ฅ๋น ๋ฐ ์ค์ฒฉ๋ ๊ฐ๋ฐฉ์ ํฌํจํ์ฌ self๊ฐ ์์ ํ ํญ๋ชฉ์ ๊ฒ์ํฉ๋๋ค. CountGround๋ ์ผ์นํ๋ ๋ชจ๋ฐ์ผ์ ํฌํจํ์ฌ ํญ์ ํ ์ง๋ฅผ ๊ฒ์ํ์ง๋ง self๋ ์ ์ธํฉ๋๋ค.
- Count(type,color,serial)๋ ์ค์ฒฉ๋ ๋ฐฑ์ ์ฐํํ๊ณ , CountEx(type,color,serial) - ์ง์ ์ฝํ ์ธ ๋ง ์ฌ์ฉํฉ๋๋ค. ์ ์ฝ ์กฐ๊ฑด FindDistance/FindVertical๋ ํ ์ง์ ์ ์ฉ๋ฉ๋๋ค. Ignore ๋ฐ๊ฒฌ๋ ๋ฌผ์ฒด์ ์ ์ฉ๋ฉ๋๋ค.
- ๊ฒฐ๊ณผ๋ ์ด๋ฏธ ๋ฐ์ ์ปจํ ์ด๋์ ๋ด์ฉ๋ฌผ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ ์ฒด ์ธ๋ฒคํ ๋ฆฌ์ ๋ํ ์๋ ์ด๊ธฐ ๋๋ ์๋ฒ ์์ฒญ์ ์์ต๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
ํ ๋ฒ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์ ๋์ ํ์ํฉ๋๋ค. ์ซ์๋ฅผ bool๋ก ๋ณํํ์ง ์์ผ๋ฉฐ, ๋ฐฐ์ด์ด๋ฉด ์์ ์๋ฅผ ํ์ํฉ๋๋ค.
var result = UO.CountGround(0x0EED, -1);
UO.Print("CountGround: " + Convert.ToString(result));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- type=0x0EED, ์์=-1. ์ง์ญ์ ์บ๋ฆญํฐ ์์ ํ ์ง์ ๋๋ค.
- 1000 dast ๋จ์=1000์์ ํ ๋ฐ, 1๊ฐ ์๋.
var units = UO.CountGround(0x0EED, -1);
UO.Print("Units: " + Convert.ToString(units));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- FindCount๋ Count ์งํ, ๋ค๋ฅธ ๊ฒ์ ์ ์ ์ฝํ์ง๋๋ค.
- 50 ๋ ๊ฐ์ ์คํ์ 2 ์์ดํ ๊ณผ 100 ์ ๋์ ์์ฐํฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
var units = UO.CountGround(0x0EED, -1);
var items = UO.FindCount();
UO.Print(Convert.ToString(items) + " items, " + Convert.ToString(units) + " units");
return null;
}๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- 100๋ ์ด ์์์ ๋จ์ ์๊ณ๊ฐ์ ๋๋ค.
- ์ด๋ ์ํ ์์ฝ์ด ์๋ ์ค๋ ์ท ํ์ธ์ ๋๋ค. ๊ฒํ ํ ์ ์ก ์ฌ์ด์ ์๋์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var units = UO.CountGround(0x0EED, -1);
if (Truth(units >= 100))
{
UO.Print("Enough units known to the client");
}
else
{
UO.Print("Not enough known units");
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: type (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.CountGround. -
InjectionScript.Runtime.InjectionApiUO.CountGround:CountGround(type, new InjectionValue(-1)).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
public int CountGround(InjectionValue type)
=> CountGround(type, new InjectionValue(-1));๋งค๊ฐ๋ณ์: type (Any), color (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.CountGround. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Count:bridge.Count(ResolveType(type), NumberConversions.ToInt(color), 1). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(type). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(color).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
public int CountGround(InjectionValue type, InjectionValue color)
=> bridge.Count(ResolveType(type), NumberConversions.ToInt(color), 1);ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
void UO.DeleteFindList(object? list);
void UO.DeleteFindList(object? list, object? @type);
void UO.DeleteFindList(object? list, object? @type, object? color);์ง์ ๋ ๋ชฉ๋ก, list/type ๋๋ list/type/color ์ ๋์ฌ์ ์ผ์นํ๋ ๋ชจ๋ ์ ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ์ค์ ๋ ๊ท์น์ ๋๋จธ์ง ๋ถ๋ถ์ ์ ์งํ๋ฉด์ ํ ๊ฐ์ง ์ ํ์ ํญ๋ชฉ ๋๋ ํน์ hue๋ฅผ ์ ๊ฑฐํ ์ ์์ต๋๋ค.
-
listโ ๊ท์น ์ธํธ์ ์ด๋ฆ(์: "loot") | ์์ด ๋ฌธ์์ด์ ์ ๋ฌํฉ๋๋ค. ์ด ๋ฌธ์๋ ๋ ์ฝ๋ ๋ด์์ ๊ตฌ๋ถ ๊ธฐํธ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. ์ด๋ serial ์ปจํ ์ด๋๋ ๋ฐ๊ฒฌ๋ ํญ๋ชฉ์ ๋ฐฐ์ด์ด ์๋๋๋ค. -
type- ์์ดํ ์ ๊ทธ๋ํฝ/type ๋๋ body mobile(serial ์๋). ์ผ๋ฐ์ ์ผ๋ก int 0..65535(0x0EED ํฌํจ); -1 ๋๋ 0xFFFF๋ ๊ฒ์ ์ type๋ฅผ ์๋ฏธํฉ๋๋ค. ํญ๋ชฉ๋น ํ๋์ ๊ฐ์ ์ ๊ณตํ์ญ์์ค. ์ฌ๋ฌ ์ ํ์ด ๋ณ๋์ ํธ์ถ๋ก ์ถ๊ฐ๋ฉ๋๋ค. ์ญ์ ํ๋ ค๋ฉด ํ๋ ํ ์คํธ๋ฅผ ๋น๊ตํฉ๋๋ค. ๊ฑด๋๋ฐ๋ฉด ๋ชจ๋ ์ด๋ฆ ํญ๋ชฉ์ด ์ญ์ ๋ฉ๋๋ค. -
colorโ RGB์ด ์๋ ๋ฌผ์ฒด/๋ชธ์ฒด์ ์์์ ๋๋ค. int 0..65535; 0 - ์ผ๋ฐ hue 0, -1 ๋๋ 0xFFFF - ๋ชจ๋. AddFindList์์ ์์์ ๊ฑด๋๋ฐ๋ ๊ฒ์ ๊ฒ์ ์ hue๋ฅผ ์๋ฏธํฉ๋๋ค. ์ญ์ ์ ๊ฒฝ์ฐ ์์ผ๋์นด๋๊ฐ ์๋ ๋ฆฌํฐ๋ด ํ๋์ ๋๋ค. -1๋ -1๊ฐ ๋ช ์์ ์ผ๋ก ์ ์ฅ๋ ํญ๋ชฉ๋ง ์ญ์ ํฉ๋๋ค. ์์์ ์๋ตํ๋ฉด hue์ ๊ด๊ณ์์ด ๋ชจ๋ ๋ชฉ๋ก/type ํญ๋ชฉ์ด ์ ๊ฑฐ๋ฉ๋๋ค.
void: ๋ฐํ ๊ฐ์ด ์์ต๋๋ค. ํธ์ถ์ ๋ณ์์ ํ ๋นํ์ง ๋ง๊ณ true/1์์ ํ ์คํธํ์ง ๋ง์ธ์. ์ ์ ์ํ๋ UO.InfoFindList()๋ก ์ถ๋ ฅ๋ ์ ์์ต๋๋ค. ๊ฒ์ ์์ฒด๋ UO.FindList()์ ํตํด ๋ณ๋๋ก ์์๋ฉ๋๋ค.
- ์ ์๋ ์ง์ ๋ ์คํฌ๋ฆฝํธ ๋ฐํ์ ์ํ์ ์์ต๋๋ค. ๋ ๋ฆฝ์ ์ธ ๋ค๋ฅธ ๋ฐํ์์๋ ์์ฒด ์ธํธ๊ฐ ์์ต๋๋ค. IDE ์ฐฝ์ ๋ซ์๋ ์ด๋ฌํ ๊ท์น์ ์ง์์ง์ง ์์ต๋๋ค. ์ด๊ฒ์ ์ค์ ํ์ผ์ด๋ ์ ์ญ ๊ฒ์ ๊ฐ์ฒด ๋ชฉ๋ก์ด ์๋๋๋ค.
- AddFindList ํญ๋ชฉ์ ๋์ ์ถ๊ฐํฉ๋๋ค. ๋ฐ๋ณต์ ์ญ์ ๋์ง ์์ต๋๋ค. ํคํธ๋ฅผ ๋ค์ ํ๋ก๋น์ ๋ํ๋ ค๋ฉด ๋จผ์ ClearFindList("name")์ผ๋ก ์ ํํ์ธ์. ์ ์๋ฅผ ๋ณ๊ฒฝํด๋ ์ด๋ฏธ ์์ ๋ FindItem/FindCount/GetFoundItems๋ ์ง์์ง์ง ์์ต๋๋ค.
- ๋ ์ฝ๋๋ ํ ์คํธ ํ๋๋ฅผ ์ ์ฅํฉ๋๋ค. ์ซ์ ๋ฆฌํฐ๋ด 0x0EED์ "3821"๋ก ์ ์ฅ๋๊ณ , ๋ฌธ์์ด "0x0EED"์ "0x0EED"๋ก ์ ์ฅ๋ฉ๋๋ค. ๊ฒ์์ ๋ ์ต์ ์ ๋ชจ๋ ์ซ์๋ก ๋ณํํ๊ณ DeleteFindList๋ ์ ์ฅ๋ ํ ์คํธ๋ฅผ ๋น๊ตํฉ๋๋ค. ์ถ๊ฐ ๋ฐ ์ญ์ ์์๋ ๋์ผํ ์์์ ์ฌ์ฉํ์ธ์.
- FindList์ ์ ์ ์๋ ์ด๋ฆ์ ๋น ๋ฑ๋ก ์ธํธ๊ฐ ์๋๋๋ค. ์์ง์ ์ด๋ฅผ ์ซ์ ์ ํ ๋ชฉ๋ก์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์ซ์๊ฐ ์๋ ์ด๋ฆ์ ์ฌ์ฉํ๋ฉด ๋ณํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ง์ง๋ง ํญ๋ชฉ์ ์ญ์ ํ ํ ํด๋น ์ด๋ฆ์ ๊ฒ์ํ๊ธฐ ์ ์ ์ ์ธํธ๋ฅผ ๋ง๋์ญ์์ค.
- DeleteFindList(list,type,-1)๋ 2๊ฐ ๋งค๊ฐ๋ณ์ ๋ ์ฝ๋๋ฅผ ์ญ์ ํ์ง ์์ต๋๋ค. AddFindList(list,type): ์ธ ๋ฒ์งธ ํ๋๊ฐ ์์ต๋๋ค. ์ผ์นํ๋ ์ค๋ณต ํญ๋ชฉ์ ๋ชจ๋ ์ญ์ ๋ฉ๋๋ค. ์กด์ฌํ์ง ์๋ ์ผ์น๋ ์๋ฌด๊ฒ๋ ๋ณ๊ฒฝํ์ง ์์ต๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
๋ช ๋ น์ ๋ ๋ฆฝ๋ ๋ฌธ์ ๋๋ค. ์์ ๋ฉ์์ง๋ ํธ์ถ ์์์ ๋ํ๋ด๋ฉฐ ์๋ฒ ๋์์ ์๋ฃ๋ฅผ ํ์ธํ์ง ์์ต๋๋ค.
UO.AddFindList("simple_loot", 0x0EED);
UO.Print("Calling UO.DeleteFindList");
UO.DeleteFindList("simple_loot");๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๋ ๊ฐ์ ์ธ์๋ ๋ ๊ฐ์ ๊ณจ๋ ํญ๋ชฉ(๋ชจ๋ hue ๋ฐ hue 0x0044)์ ๋ชจ๋ ์ ๊ฑฐํฉ๋๋ค.
UO.ClearFindList("loot");
UO.AddFindList("loot", 0x0EED, -1);
UO.AddFindList("loot", 0x0EED, 0x0044);
UO.AddFindList("loot", 0x0F7A);
UO.DeleteFindList("loot", 0x0EED);
var found = UO.FindList("loot", "backpack");
if (Truth(found != ""))
{
UO.AddObject("remaining_supply", found);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ์ธ ๊ฐ์ง ์ธ์: ์์, graphic ๊ธ์, ํน์ hue. ๋จ์ ๊ฒ์ hue 0๋ฟ์ ๋๋ค. ๋ค๋ฅธ ์ธํธ์์๋ ์ด graphic๊ฐ ์ ๊ฑฐ๋์ง ์์ต๋๋ค.
return RunScenario();
object? RunScenario()
{
UO.ClearFindList("colors");
UO.AddFindList("colors", 0x0EED, 0);
UO.AddFindList("colors", 0x0EED, 0x0044);
UO.DeleteFindList("colors", 0x0EED, 0x0044);
UO.InfoFindList();
return null;
}๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ํ๋์ ์ธ์๋ ๋ชจ๋ ์ด์ ํญ๋ชฉ์ ์ ๊ฑฐํฉ๋๋ค. ๊ท์น์ด "0x0190" ์ค๋ก ์ง์ ๋ ๊ฒฝ์ฐ ๋์ผํ ์ค๋ก ์ญ์ ํ๊ฑฐ๋ ์ด๋ฆ๋ณ๋ก ์ธํธ๋ฅผ ์ญ์ ํ์ธ์.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.AddFindList("old", 0x0190);
UO.AddFindList("old", 0x0191);
UO.DeleteFindList("OLD");
UO.AddFindList("new_watch", 0x0190, -1);
UO.AddFindList("new_watch", 0x0191, -1);
UO.InfoFindList();
return null;
}
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: list (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "deletefindlist":
LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,
arguments));
break;๋งค๊ฐ๋ณ์: list (Any), type (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "deletefindlist":
LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,
arguments));
break;๋งค๊ฐ๋ณ์: list (Any), type (Any), color (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::LegacyList:LegacyList("AddFindList"). -
InjectionScript.Runtime.InjectionApiUO.LegacyListEntryMatches:LegacyListEntryMatches(value, arguments).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "deletefindlist":
LegacyList("AddFindList").RemoveAll(value => LegacyListEntryMatches(value,
arguments));
break;ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
void UO.DeleteIgnoreList(object? list);
void UO.DeleteIgnoreList(object? list, object? @type);
void UO.DeleteIgnoreList(object? list, object? @type, object? color);์ ์ฒด ๋ช ๋ช ๋ ํํฐ ๋๋ ๊ทธ ์์ ์๋ ์ ํ๋ ๊ท์น์ ์ ๊ฑฐํฉ๋๋ค. ๋ค๋ฅธ ์์ธ๋ ์ ์งํ๋ฉด์ ํน์ type ๋๋ hue๋ฅผ ๊ฒ์์ ๋ค์ ํ์ฉํด์ผ ํ ๋ ์ฌ์ฉํ์ธ์.
-
listโ ๋น์ด ์์ง ์์ ์์์ ์ด๋ฆ(์: "loot_skip") ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. ์ด๋ ์์ดํ ์ ์ด๋ฆ๋, serial ์ปจํ ์ด๋์ ์ด๋ฆ๋, FindList์ ์ด๋ฆ๋ ์๋๋๋ค. -
type- ์์ดํ ์ ๊ทธ๋ํฝ/type ๋๋ body mobile. ์๋ฅผ ๋ค์ด 0x0EED์ ๊ธ, 0x0191์ ์ฌ์ฑ ์ธ์ฒด์ ๋๋ค. ์ซ์ ๋๋ ์ซ์ ๋ฌธ์์ด("0x0EED", "3821"); -1/๊ธฐํ ๋ถ์ /0xFFFF - ๋ชจ๋ type. 65535๋ณด๋ค ํฐ ๊ฐ์ ํ์ฉ๋์ง ์์ต๋๋ค. ์ฌ๋ฌ type์ ๊ฒฝ์ฐ ์ฌ๋ฌ ๊ท์น์ ์ถ๊ฐํ์ธ์. ์ ์ก๋์ง ์์ ๊ฒฝ์ฐ ์ ์ฒด ๋ชฉ๋ก์ ์ญ์ ํ์ญ์์ค. ์์ ์์ด ์ ๋ฌ๋๋ ๊ฒฝ์ฐ ๋ชจ๋ ๊ท์น์ ์ ํํ ์ด type์ ๋๋ค. -
color- ์์กฐ: 0 - ๋ฌด์๋ง, 0x0044 - ์ ํํ ์์์ ์; ๋ถ์ ๋๋ 0xFFFF - ๋ชจ๋. 65535๋ณด๋ค ํฐ ๊ฐ์ ํ์ฉ๋์ง ์์ต๋๋ค. ์ถ๊ฐ์์ ๊ธฐ๋ณธ๊ฐ์ 1์ ๋๋ค. ํ๋์ ๊ท์น ๋ด์์ ์ ํ๊ณผ hue์ AND ์กฐ๊ฑด์ผ๋ก ์ฐ๊ฒฐ๋ฉ๋๋ค. ๋ค๋ฅธ ๊ท์น - ๋๋. ์ญ์ ์ ์ ํํ ๊ท์น ๋ง์คํฌ๋ฅผ ์ค์ ํฉ๋๋ค. -1๋ ๋ชจ๋ ๊ฐ๋ณ ์์์ด ์๋ "๋ชจ๋ ์์" ๊ท์น์ ์ ๊ฑฐํฉ๋๋ค.
void - ๊ฐ์ด ์์ต๋๋ค. var ๊ฒฐ๊ณผ = ๋ฐ ํ์ธ =true ์์ด ๋ณ๋์ ์ค์ ์ฌ์ฉํ์ธ์. ์ด ๋ช ๋ น์ ๋ก์ปฌ ํํฐ๋ฅผ ๋ณ๊ฒฝํฉ๋๋ค. ํญ๋ชฉ ์๋ฅผ ๋ฐํํ์ง ์์ผ๋ฉฐ ์๋ฒ์ ์๋ฌด ๊ฒ๋ ๋ณด๋ด์ง ์์ต๋๋ค.
- ์ซ์ 3821์ ๋ฌธ์์ด "0x0EED"๋ ํ๋์ type์ ๋ํ๋ ๋๋ค. ์กด์ฌํ์ง ์๋ ๊ท์น์ ์ญ์ ํด๋ ์๋ฌด ๊ฒ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ๋ชฉ๋ก ์์ฒด๋ฅผ ์ญ์ ํ๋๋ผ๋ ์ ํํ ๋ชฉ๋ก์ ์ด๋ฆ์ ์ ์ง๋ฉ๋๋ค. ํ ๋น๊ฒ ๋ฉ๋๋ค.
- ๋ช ๋ช ๋ ๋ชฉ๋ก์๋ graphic/type + hue ๊ท์น์ด ํฌํจ๋์ด ์๊ณ ์ผ๋ฐ Ignore์๋ ํน์ serial ๊ท์น์ด ํฌํจ๋์ด ์์ต๋๋ค. ์ด๋ค์ ์๋ก ๋ค๋ฅธ ํํฐ์ ๋๋ค. ๊ฒ์์ด ์ง์๋๋ฉด ๊ฒฐํฉ๋ฉ๋๋ค. ๊ฐ์ฒด๋ ๊ณ์ ํ์๋๊ณ ์ง์ UseObject/MoveItem์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ด๋ Hide ๋๋ ํ์ ๊ธ์ง๊ฐ ์๋๋๋ค.
- ๋ชฉ๋ก ์ด๋ฆ์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค. ๊ฐ์ฅ์๋ฆฌ ๊ณต๊ฐ์ด ์ ๊ฑฐ๋ฉ๋๋ค. ํ๋์ ๋ช ๋ช ๋ ๋ชฉ๋ก์ด ํ์ฑํ๋์ด ์์ผ๋ฉฐ ์ด๊ธฐ์๋ ๊ธฐ๋ณธ๊ฐ์ ๋๋ค. AddIgnoreList๋ ์๋์ผ๋ก ์ ํ๋์ง ์์ต๋๋ค. SelectIgnoreList("")์ ๋ช ๋ช ๋ ํํฐ๋ง ๋นํ์ฑํํฉ๋๋ค.
- ๊ท์น์ ์ถ๊ฐ๋ ํ์ ์ ๋ก๋๋ ํญ๋ชฉ์ ํฌํจํ์ฌ ์๋ก์ด ๊ฒ์์ ์ ์ฉ๋ฉ๋๋ค. ์ด๋ฏธ ์์ ๋ ๋ฐฐ์ด๊ณผ ์ด์ ๊ฒฐ๊ณผ FindCount๋ ์๋ก์ด ๊ฒ์์ด ์ด๋ฃจ์ด์ง ๋๊น์ง ๋ค์ ๊ณ์ฐ๋์ง ์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ ์ ์ธํ๋ ค๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ฉด -1,-1 ๊ท์น์ด ์๋ ๋ชฉ๋ก์ ์ ํํ์ง ๋ง์ธ์.
- ํํฐ๋ FindType/FindTypeEx/FindTypesArrayEx, FindList, FindAtCoord, FindNotoriety, Count/CountEx ๋ฐ ํ์ฅ ์ ํ ํญ๋ชฉ GetMobiles, GetWorldItems, UseType์ ๊ณ ๋ คํฉ๋๋ค. WaitTarget, Attack/AttackNearest/FindMan. includeIgnored=true(์ ๊ณต๋ ๊ฒฝ์ฐ)๋ serial ๋ฐ type/hue๋ฅผ ๋ชจ๋ ์ฐํํฉ๋๋ค. ์ธ์๊ฐ ์๋ ์ ์ฒด ์ด๊ฑฐํ GetContent/GetEquipment, GetWorldItems() ๋ฐ ๋์ฌ FindMobile(human,near,...) ๋ ์ด๋ฌํ ๊ท์น์ ์ฌ์ฉํ์ง ์์ต๋๋ค.
- GetIgnoreList๋ ๋ช ์์ ์ผ๋ก ์ถ๊ฐ๋ serial๋ง ๋ฐํํฉ๋๋ค. ๋ช ๋ช ๋ ๋ชฉ๋ก์ ํ์ ์ด ๋ฐฐ์ด์ ํฌํจ๋์ง ์์ต๋๋ค. IgnoreReset๋ ์ ์ฒด serial ํํฐ๋ฅผ ์ง์ฐ๊ณ , IgnoreOff(serial)๋ ํ๋์ serial-์์ธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ๋ช ๋ช ๋ ๊ท์น์ ์ ์ง๋ฉ๋๋ค. ์ธ์๊ฐ ์๋ ClearIgnoreList()๋ ๋ ๋ณด๊ธฐ๋ฅผ ๋ชจ๋ ์ง์๋๋ค.
- ์ํ๋ ํด๋ผ์ด์ธํธ ํ๋กํ ์คํฌ๋ฆฝํธ์ ์ผ๋ฐ ์ํ์ ์ํฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ์ด ์ํ์ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ์ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ค์ ์ ์ ์ฅ๋ ์ค๋ ์ท์ ํฌํจ๋ฉ๋๋ค. ๊ท์น์ ๋ณ๊ฒฝํ ํ ๋ค๋ฅธ ์คํฌ๋ฆฝํธ๋ ์ด๋ฏธ ์ด์ ์ ์ฐ์ ์ค๋ ์ท์ผ๋ก ๊ฒ์์ ์ํํ ์ ์์ต๋๋ค. ๋ค์ ๊ฒ์์์๋ ์ ๋ฐ์ดํธ๊ฐ ํ์๋ฉ๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
๋ช ๋ น์ ๋ ๋ฆฝ๋ ๋ฌธ์ ๋๋ค. ์์ ๋ฉ์์ง๋ ํธ์ถ ์์์ ๋ํ๋ด๋ฉฐ ์๋ฒ ๋์์ ์๋ฃ๋ฅผ ํ์ธํ์ง ์์ต๋๋ค.
UO.AddIgnoreList("simple_skip", 0x0EED);
UO.Print("Calling UO.DeleteIgnoreList");
UO.DeleteIgnoreList("simple_skip");๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ์์๋ง ์ญ์ ๋ฉ๋๋ค. ๋ค๋ฅธ ๋ชฉ๋ก๊ณผ Ignore(serial)๋ ์ ์ง๋ฉ๋๋ค.
UO.AddIgnoreList("temporary", 0x0EED);
UO.SelectIgnoreList("temporary");
UO.DeleteIgnoreList("temporary");
var gold = UO.FindType(0x0EED, -1, "ground");๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๋ ๋ก๋ธ ๊ท์น์ด ๋ชจ๋ ์ ๊ฑฐ๋์์ง๋ง ํฉ๊ธ ๊ท์น์ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค. ์ผ๋ฐ ๊ท์น -1,type-๋ค๋ฅธ ์ ํ์ด ์ถ๊ฐ๋๋๋ผ๋ ์์ฒด์ ์ผ๋ก ์ ๊ฑฐ๋์ง๋ ์์ต๋๋ค.
return RunScenario();
object? RunScenario()
{
UO.AddIgnoreList("sort", 0x1F03, 0);
UO.AddIgnoreList("sort", 0x1F03, 0x0044);
UO.AddIgnoreList("sort", 0x0EED);
UO.DeleteIgnoreList("sort", 0x1F03);
UO.SelectIgnoreList("sort");
return null;
}๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- 68 = 0x0044: ์ซ์ ํํ๋ ๋์ผํฉ๋๋ค. ์ผ์๋์ง ์์ ๋ก๋ธ๋ ์ ์ธ๋ฉ๋๋ค. hue=-1์ ํจ๊ป type์ ๋ํ ๊ท์น๋ ์๋ ๊ฒฝ์ฐ ์์ 68๋ ๊ณ์ ์ ์ธ๋ฉ๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
UO.AddIgnoreList("robes", 0x1F03, 0);
UO.AddIgnoreList("robes", 0x1F03, 0x0044);
UO.DeleteIgnoreList("robes", "0x1F03", 68);
UO.SelectIgnoreList("robes");
var robe = UO.FindType(0x1F03, 0x0044, "backpack");
return null;
}
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: list (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null, arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "deleteignorelist":
state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null,
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null);
break;๋งค๊ฐ๋ณ์: list (Any), type (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null, arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "deleteignorelist":
state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null,
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null);
break;๋งค๊ฐ๋ณ์: list (Any), type (Any), color (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias. -
InjectionScript.Runtime.State.NamedIgnoreLists.Remove:state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null, arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null). -
InjectionScript.Runtime.InjectionApiUO.ExecuteLegacyManualAlias::Text:Text(0). -
InjectionScript.Runtime.InjectionApiUO.ResolveType:ResolveType(arguments[1]). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(arguments[2]).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "deleteignorelist":
state.IgnoreTypeLists.Remove(Text(0), arguments.Length > 1 ? ResolveType(arguments[1]) : (int?)null,
arguments.Length > 2 ? NumberConversions.ToInt(arguments[2]) : (int?)null);
break;ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
int UO.FindAnyType(object? distance, object? @type);
int UO.FindAnyType(object? distance, object? @type, object? type2);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27, object? type28);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27, object? type28, object? type29);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27, object? type28, object? type29, object? type30);
int UO.FindAnyType(object? distance, object? @type, object? type2, object? type3, object? type4, object? type5, object? type6, object? type7, object? type8, object? type9, object? type10, object? type11, object? type12, object? type13, object? type14, object? type15, object? type16, object? type17, object? type18, object? type19, object? type20, object? type21, object? type22, object? type23, object? type24, object? type25, object? type26, object? type27, object? type28, object? type29, object? type30, object? type31);์ฃผ์ด์ง graphic ๋ชธ์ฒด ์ค ํ๋์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ก๋๋ mobile๋ฅผ ์ฐพ์ต๋๋ค. ํน์ ์ ํ์ ์๋ฌผ์ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ํ์ ์์๋ ๋ ์ ์๋ ์์ดํ ์ ์ฐพ์ง ์์ต๋๋ค. FindType/FindList๊ฐ ํ์ํฉ๋๋ค.
-
distanceโ ์ ์ ํฌํจํ ์ํ ๋ฐ๊ฒฝ: 5๋ ๊ฑฐ๋ฆฌ 0..5๋ฅผ ํ์ฉํฉ๋๋ค. ๊ฑฐ๋ฆฌ๋ max(abs(dx),abs(dy))์ด๋ฏ๋ก ์ธ์ ํ ๋๊ฐ์ ๋ 1์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ซ์๊ฐ ์์์ธ ๊ฒฝ์ฐ์๋ ๋ฌด์ ํ ๊ฒ์์ด ์๋ UO.FindDistance()์ ์ ํํฉ๋๋ค. 0๋ ๋์ผํ X/Y ์ ์ ๋จ๊น๋๋ค. ๊ฒฝ๋ก์ ๊ธธ์ด๊ฐ ์๋๋๋ค. ์ฅ์ ๋ฌผ๊ณผ ๋ฐ๋ฅ์ ์ด ๋งค๊ฐ๋ณ์๋ก ํ์ธ๋์ง ์์ต๋๋ค. -
typeโ serial ๋ฐ graphic ๊ฐ์ฒด๊ฐ ์๋ mobile ๋ณธ์ฒด์ ๊ทธ๋ํฝ์ ๋๋ค. ์ซ์ 0..65534 ๋๋ 16์ง์ ๋ฌธ์์ด(์: 0x003B). ์ฌ๋ฌ ๊ฐ์ OR(์ซ์ 5, ๋ฌธ์์ด "5|6") ๋๋ ์ซ์/์ซ์ ๋ฌธ์์ด์ ๋จ์ ๋ฐฐ์ด๋ก ๊ฒฐํฉ๋ฉ๋๋ค. ํ๋ฉด ๋ฐฐ์ด๊ณผ ๊ฐ๋ณ ์ธ์๋ฅผ ํผํฉํ ์ ์์ต๋๋ค. ๊ฐ์ ์์๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. ์ซ์๊ฐ ์๋ ํ ํฐ์ ์ ์ธ๋ฉ๋๋ค. ์์ ํ ์๋ชป๋ ๋ง์คํฌ๋ ์๋ฌด๊ฒ๋ ์ฐพ์ง ๋ชปํฉ๋๋ค. ์ค์ฒฉ ๋ฐฐ์ด์ ์ซ์๊ฐ ์๋๋ฉฐ ์๋ชป๋ ์์๋ก ๋ฌด์๋ฉ๋๋ค. ๋ค์ฐจ์ ๋ง์คํฌ๋ ์ง์๋์ง ์์ต๋๋ค. -
type2โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type3โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type4โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type5โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type6โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type7โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type8โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type9โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type10โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type11โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type12โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type13โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type14โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type15โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type16โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type17โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type18โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type19โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type20โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type21โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type22โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type23โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type24โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type25โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type26โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type27โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type28โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type29โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type30โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
type31โ ์ ํ์ ์ธ ์ถ๊ฐ ๋ง์คํฌ type; type์ ๊ฐ์ ๋ชจ์. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค.
int - ์ ํํ mobile์ serial ๋๋ ์ ํฉํ ํญ๋ชฉ์ด ์๋ ๊ฒฝ์ฐ 0. ์ด๋ graphic/type, ๋ฐ๊ฒฌ๋ ๊ฐ์ฒด ์ ๋๋ true/false๊ฐ ์๋ ID์ ๋๋ค. if (found != 0) { ... }, notfound == true๋ฅผ ์ฌ์ฉํ์ธ์. ๋ฐ๊ฒฌ๋ ID๋ UO.AddObject, UO.Attack ๋๋ UO.Follow๋ก ์ ๋ฌ๋ ์ ์์ง๋ง ๊ฐ ๊ฒ์ ์์ ์ ๋ณ๋๋ก ํธ์ถ๋ฉ๋๋ค.
- ๊ฒ์์์๋ ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ฏธ ๋ค์ด๋ก๋ํ ๋ชจ๋ฐ์ผ๋ง ์ฝ์ต๋๋ค. ํ๊ธฐ๋ ๊ธฐ๋ก๊ณผ Ignore๋ ์ ์ธ๋ฉ๋๋ค. ํธ์ถ ์์ฒด๋ ๋์์ ์ด์ง ์๊ณ , ๊ณต๊ฒฉํ์ง ์์ผ๋ฉฐ, ๋์์ผ๋ก ์ด๋ํ์ง ์์ผ๋ฉฐ, ์๋ฒ์ ์๊ฒฉ ๊ฐ์ฒด๋ฅผ ์์ฒญํ์ง ์์ต๋๋ค.
- ๊ฑฐ๋ฆฌ๋ ๊ฒฝ๋ก ๊ธธ์ด๊ฐ ์๋ ๊ธฐํํ์ max(abs(dx),abs(dy))์ ๋๋ค. ๊ทผ์ ์ฑ์ด ์๋ค๊ณ ํด์ ๋ฒฝ์ด ์๊ฑฐ๋ ๋ค๋ฅธ ์ธต์ ๋ํ ์ ๊ทผ์ฑ์ด ๋ณด์ฅ๋๋ ๊ฒ์ ์๋๋๋ค. ๋ฐํ ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
- ์๋ช , ์คํ ์ค, ์์ผ๋ ์๋์ผ๋ก ํ์ธ๋์ง ์์ต๋๋ค. ์ค์ํ๋ค๋ฉด GetMobiles๋ฅผ aliveOnly/visibleOnly์ ํจ๊ป ์ฌ์ฉํ๊ฑฐ๋ ์ง์ ํ์ธํ์ธ์. ์ ์ํ์ ์๋ฒ๊ฐ ์๋ค๊ณ ํด์ NPC๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์๋๋๋ค.
- FindItem, FindCount ๋๋ GetFoundItems๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ์ด ํ๋์๋ ์ด์ ๋ค๋ฅธ ๋ช ๋ น์ ๊ฒฐ๊ณผ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค. ๋ฐํ๋ ID๋ฅผ ์ง์ ์ฌ์ฉํ์ธ์.
- 2์์ 32 ์ธ์: ๊ฑฐ๋ฆฌ์ 31 ๋ง์คํฌ type๊น์ง. ํ๋ฉด ๋ฐฐ์ด์ ์ฌ์ฉํ๋ฉด ๋ ๋ง์ ๊ฐ์ ์ ๋ฌํ ์ ์์ต๋๋ค. type ์ดํ์ ๊ฐ ๊ฐ์ ์ฌ์ ํ โโbody/type์ด๋ฉฐ hue ๋๋ ์ ๋ช ์ด ๋์ต๋๋ค.
- ์ด ๋ช ๋ น์๋ Z, ์ ๋ช , ํ๋ ์ด์ด ์ธ์ข ๋๋ ์๋ฅ ํด๋์ค ํํฐ๊ฐ ์์ต๋๋ค. Self์ ์ ์ธ๋์ง ์์ต๋๋ค. ์์ ์ graphic๊ฐ ๋ง์คํฌ์ ํฌํจ๋์ด ์๊ณ self๊ฐ Ignore์ ์์ผ๋ฉด 0 ๊ฑฐ๋ฆฌ์์ serial๋ฅผ ์ป์ ์ ์์ต๋๋ค.
- ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ ์ ํํฉ๋๋ค. ๋ ์์ serial๋ก ๋์ผํ ๊ฑฐ๋ฆฌ๊ฐ ํ์ฉ๋ฉ๋๋ค. -1/any/0xFFFF/๊ตฌ์ฒด์ ์ธ ์ ํ์ด ์๋ ๋น ๋ง์คํฌ๋ 0๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ๋ช ๋ น์๋ ๋ช ์์ ์ธ type์ด ํ๋ ์ด์ ํ์ํฉ๋๋ค. ๊ฑฐ์ ํน์ type ์์ผ๋์นด๋๋ ๋ฌด์๋ฉ๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
ํ ๋ฒ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์ ๋์ ํ์ํฉ๋๋ค. ์ซ์๋ฅผ bool๋ก ๋ณํํ์ง ์์ผ๋ฉฐ, ๋ฐฐ์ด์ด๋ฉด ์์ ์๋ฅผ ํ์ํฉ๋๋ค.
var result = UO.FindAnyType(10, 0x003B);
UO.Print("FindAnyType: " + Convert.ToString(result));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- 0x003B - body, ID ์๋. ๋ฐํ ์๋ฌผ - ๋ฐ๊ฒฌ๋ ํน์ mobile์ ID. ํ์ Z, ๊ฑด๊ฐ ๋๋ ๊ณต๊ฒฉ์ฑ์ ํ์ธํ์ง ์์ต๋๋ค.
var creature = UO.FindAnyType(10, 0x003B);
if (Truth(creature != 0))
{
UO.AddObject("creature", creature);
UO.Print("Distance: " + Convert.ToString(UO.GetDistance(creature)));
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๋ณธ์ฒด์ ๋ณ๋์ 0x000C๊ฐ ๊ฒฐํฉ๋ฉ๋๋ค. self์ด ๋ฐ๊ฒฌ๋๋ฉด ์ด ์์์๋ ํด๋น ์์ ์ ๊ฑด๋๋๋๋ค. ๊ทธ๋ ๋ค์ ํ๋ณด์๋ฅผ ์ฐพ๊ณ ์์ง ์์ต๋๋ค. ์ฟผ๋ฆฌ ์์ฒด์์ self๋ฅผ ์ ์ธํ๋ ค๋ฉด ํด๋น ํํฐ GetMobiles๋ฅผ ์ฌ์ฉํ์ธ์.
return RunScenario();
object? RunScenario()
{
dynamic[] bodies = new dynamic[checked((int)(0) + 1)];
bodies[0] = 0x003B;
var creature = UO.FindAnyType(18, bodies, 0x000C);
if (Truth(creature != 0) && Truth(creature != Asc(UO.GetSerial("self"), 0)))
{
UO.AddObject("observed_creature", creature);
}
return null;
}
int Asc(object? value, int fallback = 0)
{
string text = Convert.ToString(value) ?? "";
if (text.StartsWith("0x", StringComparison.OrdinalIgnoreCase))
return int.TryParse(text[2..], System.Globalization.NumberStyles.HexNumber, System.Globalization.CultureInfo.InvariantCulture, out int hex) ? hex : fallback;
return int.TryParse(text, out int number) ? number : fallback;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- body - graphic, ๋ฐ๊ฒฝ - ๊ฒ์ ์ ํ X/Y. ๋์ฐ๋ฏธ๋ ๊ฑฐ๋ฆฌ ๋๋ ์์ฒด ์ฝ๋ -1๋ฅผ ๋ฐํํฉ๋๋ค. UO.FindAnyType ์์ฒด๋ serial ๋๋ 0๋ฅผ ๋ฐํํฉ๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var distance = DistanceToBody(0x003B, 8);
if (Truth(distance >= 0) && Truth(distance <= 3))
{
UO.Print("Creature is within three cells");
}
return null;
}
dynamic DistanceToBody(dynamic body, dynamic radius)
{
var found = UO.FindAnyType(radius, body);
if (Truth(found == 0))
{
return -1;
}
return UO.GetDistance(found);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: distance (Any), type (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27, type28) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any), type28 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27, type28, type29) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any), type28 (Any), type29 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27, type28, type29, type30) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any), type28 (Any), type29 (Any), type30 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))
UO.FindAnyType(distance, type, type2, type3, type4, type5, type6, type7, type8, type9, type10, type11, type12, type13, type14, type15, type16, type17, type18, type19, type20, type21, type22, type23, type24, type25, type26, type27, type28, type29, type30, type31) โ UO.FindAnyType(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), type (Any), type2 (Any), type3 (Any), type4 (Any), type5 (Any), type6 (Any), type7 (Any), type8 (Any), type9 (Any), type10 (Any), type11 (Any), type12 (Any), type13 (Any), type14 (Any), type15 (Any), type16 (Any), type17 (Any), type18 (Any), type19 (Any), type20 (Any), type21 (Any), type22 (Any), type23 (Any), type24 (Any), type25 (Any), type26 (Any), type27 (Any), type28 (Any), type29 (Any), type30 (Any), type31 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindAnyType]. -
InjectionScript.Runtime.InjectionApiUO.FindAnyType:FindAnyType(values[0], CombineMask(values, 1)). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindAnyType(values[0], CombineMask(values, 1)))ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
int UO.FindAtCoord(object? x, object? y);ํ์ฌ ์ง๋์ ์ ํํ X/Y ํ์ผ ํ๋์์ ๋ก๋๋ ์ธ๊ณ ๊ฐ์ฒด๋ฅผ ๊ฒ์ํฉ๋๋ค.
-
xโ ์ํ ์ธ๊ณ ์ขํ, int 0..65535. ํ์์ ์ธ; ์ด๋ ์ปจํ ์ด๋ ์ฐฝ ํฝ์ ์ด ์๋๋๋ค. -
y๋ ์์ง ์ธ๊ณ ์ขํ, int 0..65535์ ๋๋ค. ํ์์. Z, ์ง๋, type ๋๋ ๋ฐ๊ฒฝ์ ๋ํ ์ถ๊ฐ ์ต์ ์ ์์ต๋๋ค.
int - serial ํด๋น ํด๋ผ์ด์ธํธ์ ๊ฒฐ๊ณผ ๋ชฉ๋ก์์ ์ฒซ ๋ฒ์งธ๋ก ์ผ์นํ๋ ํญ๋ชฉ์ ๋๋ค. 0: ์ผ์น ํญ๋ชฉ ์์, ๋ฌธ์ ๋๋ฝ/์ญ์ ๋๋ 0..65535 ์ธ๋ถ ์ขํ. ์ด๋ type, ์๋ ๋๋ bool๊ฐ ์๋ ๊ฐ์ฒด์ ID์ ๋๋ค. ๋ชจ๋ 32 ๋นํธ๊ฐ ์ ์ฅ๋ฉ๋๋ค. != 0๋ฅผ ํ์ธํ์ธ์. == true์ด ์๋๊ณ > 0์ด ์๋๋๋ค. ๋์ผํ ID์ด FindItem()์ ๊ธฐ๋ก๋ฉ๋๋ค.
- ์ด ์ ์ ์๋ ์บ๋ฆญํฐ ์์ ์ ํฌํจํ์ฌ ์ง์๊ณผ ๋ชจ๋ฐ์ผ์ ์๋ ์ญ์ ๋์ง ์์ ์์ดํ ์ ํ์ธํฉ๋๋ค. ์ปจํ ์ด๋ ๋ฐ ์ฐฉ์ฉ ์์ดํ ์ ๋ด์ฉ๋ฌผ์ ์ ์ธ๋ฉ๋๋ค. ํด๋น ์์ดํ ์ X/Y๋ ์ธ๊ณ ์ขํ๋ก ๊ฐ์ฃผ๋ ์ ์์ต๋๋ค. ์ผ๋ จ๋ฒํธ๋ ๋ชฉ๋ก Ignore์์ ์ ์ธ๋ฉ๋๋ค.
- ์ฃผ์ด์ง X/Y์ ๋ชจ๋ ๋์ด Z๊ฐ ์ ํฉํฉ๋๋ค. FindDistance ๋ฐ FindVertical๋ ์ด ๊ฒ์์ ์ ํํ ์ ๋ก ์ ํํ์ง ์์ต๋๋ค. ํ์ฌ ์ธ๊ณ์ ๋ก๋๋ ๊ฐ์ฒด๋ง ํ์๋ฉ๋๋ค. ํ๊ฒฝ, ์ ์ ๋ฐ ๊ธฐํ ์ง๋๋ ๋ก๋๋์ง ์์ต๋๋ค. ํจํท์ด ์ ์ก๋์ง ์๊ณ , ๋์์ด ์ด๋ฆฌ์ง ์์ผ๋ฉฐ, ํญ๋ชฉ์ด ์ด๋๋์ง ์์ต๋๋ค.
- ๊ฐ ํธ์ถ์ ๋จผ์ ์ด์ ๊ฒ์์ ์ง์๋๋ค. FindCount()๋ ๊ฐ์ฒด ์๋ฅผ ๊ณ์ฐํ๊ณ , FindFullQuantity()๋ ์คํ์ ๋จ์๋ฅผ ํฉ์ฐํ๊ณ (๋ชจ๋ฐ์ผ์ 1๊ฐ ์ถ๊ฐ), GetFoundItems()๋ ์ฐพ์ ํญ๋ชฉ์ ๋ฐํํฉ๋๋ค serial. ํญ๋ชฉ์ด ๋จผ์ ๊ฒ์๋ ๋ค์ ๋ชจ๋ฐ์ผ์ด ๊ฒ์๋ฉ๋๋ค. ์ปฌ๋ ์ ๋ด์์๋ ํ์ฌ ์ด๊ฑฐ ์์๊ฐ ์ ์ฉ๋ฉ๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ๋์ฒดํ๋ ๋ค์ ๊ฒ์์ ์ํด ๋ชฉ๋ก์ ์ ์ฅํฉ๋๋ค.
- ์์ ์ ํ ์์์ ํํฐ๋ ์ด ํด๋ผ์ด์ธํธ์ ๊ตฌํ์ ์ค๋ช ํฉ๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
ํ ๋ฒ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์ ๋์ ํ์ํฉ๋๋ค. ์ซ์๋ฅผ bool๋ก ๋ณํํ์ง ์์ผ๋ฉฐ, ๋ฐฐ์ด์ด๋ฉด ์์ ์๋ฅผ ํ์ํฉ๋๋ค.
var result = UO.FindAtCoord(1445, 1690);
UO.Print("FindAtCoord: " + Convert.ToString(result));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- 1445 ๋ฐ 1690๋ ์ ์ธ๊ณ X/Y์ ์์ ๋๋ค. ์ด๋ฅผ ์ ๋ก ๊ต์ฒดํ์ธ์. ID๋ ํ๋๋ฅผ ์ ์ฅํฉ๋๋ค serial; HEX๋ 16์ง์๋ก ์ถ๋ ฅํฉ๋๋ค. != 0 ์๋์ด ์๋ ๊ฒฐ๊ณผ๊ฐ ์๋์ง ํ์ธํฉ๋๋ค.
var id = UO.FindAtCoord(1445, 1690);
if (Truth(id != 0))
{
UO.Print(Hex(id));
}
else
{
UO.Print("No loaded object");
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- x/y๋ ๋ฌธ์์์ ์ฝํ์ง๋๋ค. ids๋ ํ์ฌ ๊ฒ์ ๋ชฉ๋ก์ ์ ์ฅํฉ๋๋ค. ๊ฐ ID๋ ์ ์ฒด ์คํ์ ํฌํจํ์ฌ ํ๋์ ๊ฐ์ฒด๋ฅผ ๋ํ๋ ๋๋ค. GetType(id)๋ graphic/body๋ฅผ ์ฝ์ต๋๋ค. ํญ๋ชฉ์ด ์ ํ๋๊ฑฐ๋ ์ฌ์ฉ๋์ง ์์ต๋๋ค.
return RunScenario();
object? RunScenario()
{
var x = UO.GetX("self");
var y = UO.GetY("self");
UO.FindAtCoord(x, y);
var ids = UO.GetFoundItems();
foreach (var id in ids)
{
UO.Print(Hex(id) + " type=" + Hex(UO.GetType(id)));
}
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- CountGraphicAt(x, y, graphic)๋ ์ ์ ํ ๋ฒ ๊ฒ์ํ๊ณ ์ ์ฅ๋ ID๋ฅผ ๋ฐ๋ณตํ๋ฉฐ ์ํ๋ ๊ทธ๋ํฝ์ด ํฌํจ๋ ๊ฐ์ฒด์ ์๋ฅผ ์ ๋๋ค. graphic=0x0EED โ ๊ธ. true/false๊ฐ ์๋ ๊ฐ์ฒด/์คํ์ ๊ฐ์๊ฐ ๋ฐํ๋ฉ๋๋ค. ๊ฐ์ฒด/์คํ์ ๊ฐ์๊ฐ ๋ฐํ๋์ง ์์ต๋๋ค. ํ๋์ ์คํ์ด ํ๋๋ฅผ ๋ง๋ญ๋๋ค. ์ด ๊ธฐ๋ฅ์ Main ๋ค์์ ์์ ํ ์ ์๋ฉ๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var count = CountGraphicAt(1445, 1690, 0x0EED);
UO.Print("Objects/stacks: " + Convert.ToString(count));
return null;
}
dynamic CountGraphicAt(dynamic x, dynamic y, dynamic graphic)
{
UO.FindAtCoord(x, y);
var ids = UO.GetFoundItems();
var count = 0;
foreach (var id in ids)
{
if (Truth(UO.GetType(id) == graphic))
{
count += 1;
}
}
return count;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: x (Any), y (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindAtCoord:bridge.FindAtCoord(Arg(0), Arg(1)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "findatcoord": return new InjectionValue(bridge.FindAtCoord(Arg(0), Arg(1)));ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
int UO.FindByNotoriety(object? distance, object? notoriety);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27, object? notoriety28);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27, object? notoriety28, object? notoriety29);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27, object? notoriety28, object? notoriety29, object? notoriety30);
int UO.FindByNotoriety(object? distance, object? notoriety, object? notoriety2, object? notoriety3, object? notoriety4, object? notoriety5, object? notoriety6, object? notoriety7, object? notoriety8, object? notoriety9, object? notoriety10, object? notoriety11, object? notoriety12, object? notoriety13, object? notoriety14, object? notoriety15, object? notoriety16, object? notoriety17, object? notoriety18, object? notoriety19, object? notoriety20, object? notoriety21, object? notoriety22, object? notoriety23, object? notoriety24, object? notoriety25, object? notoriety26, object? notoriety27, object? notoriety28, object? notoriety29, object? notoriety30, object? notoriety31);์ง์ ๋ ์ ๋ช ์ํ ์ค ํ๋์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ค๋ฅธ ๋ฌธ์/NPC๋ฅผ ์ฐพ์ต๋๋ค. ๋จผ์ ์ , ์๊ตฐ ๋๋ ๊ด์ฐฐ๋ ๋์์ ์ ํํ ๋ค์ ๊ณต๊ฒฉํ ์ง ์๋๋ฉด ๋ฐ๋ผ๊ฐ์ง ๋ณ๋๋ก ๊ฒฐ์ ํด์ผ ํ ๋ ์ ์ฉํฉ๋๋ค.
-
distanceโ ์ ์ ํฌํจํ ์ํ ๋ฐ๊ฒฝ: 5๋ ๊ฑฐ๋ฆฌ 0..5๋ฅผ ํ์ฉํฉ๋๋ค. ๊ฑฐ๋ฆฌ๋ max(abs(dx),abs(dy))์ด๋ฏ๋ก ์ธ์ ํ ๋๊ฐ์ ๋ 1์ ๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์ซ์๊ฐ ์์์ธ ๊ฒฝ์ฐ์๋ ๋ฌด์ ํ ๊ฒ์์ด ์๋ UO.FindDistance()์ ์ ํํฉ๋๋ค. 0๋ ๋์ผํ X/Y ์ ์ ๋จ๊น๋๋ค. ๊ฒฝ๋ก์ ๊ธธ์ด๊ฐ ์๋๋๋ค. ์ฅ์ ๋ฌผ๊ณผ ๋ฐ๋ฅ์ ์ด ๋งค๊ฐ๋ณ์๋ก ํ์ธ๋์ง ์์ต๋๋ค. -
notorietyโ ์๋ฒ์์ ๋ฐ์ ์บ๋ฆญํฐ์์ ๊ด๊ณ ์ํ: 0 โ ์ ์ ์์, 1 โ ๋ฌด์ฃ, 2 โ ๋๋งน, 3 โ ํ์, 4 โ ๋ฒ์ฃ, 5 โ ์ , 6 โ ์ด์ธ์, 7 - ๋ฌด์ ์ ๋๋ค. ์ซ์๋ ํ๋์ ์ํ๋ฅผ ์๋ฏธํฉ๋๋ค. "5|6" ๋๋ ์ซ์ ๋ฐฐ์ด - ์ ํญ๋ชฉ ์ค ํ๋. ์ท์ ์๊น์ด๋ ์์ ์ ์๊น์ด ์๋๋๋ค. ์์(๋ณดํต -1), 0xFFFF, "any", ๋น ๋ฌธ์์ด ๋๋ ๋น ๋ฐฐ์ด์ ์ด ํํฐ๋ฅผ ๋ณ๋๋ก ๋นํ์ฑํํฉ๋๋ค. ์ ํจํ ์ซ์๊ฐ ์๋ ์๋ชป๋ ๋ฌธ์์ด์ ๋๊ตฌ๋ ์ฐพ์ ์ ์์ต๋๋ค. ์ํ ์์์ ๋ฐ๋ผ ์ฐ์ ์์๊ฐ ์ค์ ๋์ง ์์ต๋๋ค. 5 ํํฐ๋ NPC/๋ชฌ์คํฐ๋ฅผ ์๋์ผ๋ก ์ ํํ๋ ๋์ ์ ์ ์ ํํฉ๋๋ค. ์ค์ ๊ฐ์ ์๋ฒ์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ฌ๋ฌ ๊ฐ์ OR(์ซ์ 5, ๋ฌธ์์ด "5|6" ๋๋ ์ซ์/์ซ์ ๋ฌธ์์ด์ ๋จ์ ๋ฐฐ์ด)๋ก ๊ฒฐํฉ๋ฉ๋๋ค. ํ๋ฉด ๋ฐฐ์ด๊ณผ ๊ฐ๋ณ ์ธ์๋ฅผ ํผํฉํ ์ ์์ต๋๋ค. ๊ฐ์ ์์๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. ์ซ์๊ฐ ์๋ ํ ํฐ์ ์ ์ธ๋ฉ๋๋ค. ์์ ํ ์๋ชป๋ ๋ง์คํฌ๋ ์๋ฌด๊ฒ๋ ์ฐพ์ง ๋ชปํฉ๋๋ค. ์ค์ฒฉ ๋ฐฐ์ด์ ์ซ์๊ฐ ์๋๋ฉฐ ์๋ชป๋ ์์๋ก ๋ฌด์๋ฉ๋๋ค. ๋ค์ฐจ์ ๋ง์คํฌ๋ ์ง์๋์ง ์์ต๋๋ค. -
notoriety2- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety3- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety4- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety5- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety6- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety7- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety8- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety9- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety10- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety11- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety12- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety13- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety14- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety15- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety16- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety17- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety18- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety19- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety20- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety21- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety22- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety23- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety24- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety25- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety26- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety27- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety28- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety29- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety30- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค. -
notoriety31- ์ ํ์ ์ธ ์ถ๊ฐ ์ ๋ช ๋ง์คํฌ; ์ ๋ช ๊ณผ ๊ฐ์ ํํ. OR์ ํตํด ์ด์ ๊ฒ๋ค๊ณผ ๊ฒฐํฉ๋๋ฉฐ ๋ณ๋์ ๋ฐ๊ฒฝ, hue, Z ๋๋ ์ฐ์ ์์๋ฅผ ์ค์ ํ์ง ์์ต๋๋ค.
int - ์ ํํ mobile์ serial ๋๋ ์ ํฉํ ํญ๋ชฉ์ด ์๋ ๊ฒฝ์ฐ 0. ์ด๋ graphic/type, ๋ฐ๊ฒฌ๋ ๊ฐ์ฒด ์ ๋๋ true/false๊ฐ ์๋ ID์ ๋๋ค. if (found != 0) { ... }, notfound == true๋ฅผ ์ฌ์ฉํ์ธ์. ๋ฐ๊ฒฌ๋ ID๋ UO.AddObject, UO.Attack ๋๋ UO.Follow๋ก ์ ๋ฌ๋ ์ ์์ง๋ง ๊ฐ ๊ฒ์ ์์ ์ ๋ณ๋๋ก ํธ์ถ๋ฉ๋๋ค.
- ๊ฒ์์์๋ ํด๋ผ์ด์ธํธ๊ฐ ์ด๋ฏธ ๋ค์ด๋ก๋ํ ๋ชจ๋ฐ์ผ๋ง ์ฝ์ต๋๋ค. ํ๊ธฐ๋ ๊ธฐ๋ก๊ณผ Ignore๋ ์ ์ธ๋ฉ๋๋ค. ํธ์ถ ์์ฒด๋ ๋์์ ์ด์ง ์๊ณ , ๊ณต๊ฒฉํ์ง ์์ผ๋ฉฐ, ๋์์ผ๋ก ์ด๋ํ์ง ์์ผ๋ฉฐ, ์๋ฒ์ ์๊ฒฉ ๊ฐ์ฒด๋ฅผ ์์ฒญํ์ง ์์ต๋๋ค.
- ๊ฑฐ๋ฆฌ๋ ๊ฒฝ๋ก ๊ธธ์ด๊ฐ ์๋ ๊ธฐํํ์ max(abs(dx),abs(dy))์ ๋๋ค. ๊ทผ์ ์ฑ์ด ์๋ค๊ณ ํด์ ๋ฒฝ์ด ์๊ฑฐ๋ ๋ค๋ฅธ ์ธต์ ๋ํ ์ ๊ทผ์ฑ์ด ๋ณด์ฅ๋๋ ๊ฒ์ ์๋๋๋ค. ๋ฐํ ์ ์ํ๊ฐ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
- ์๋ช , ์คํ ์ค, ์์ผ๋ ์๋์ผ๋ก ํ์ธ๋์ง ์์ต๋๋ค. ์ค์ํ๋ค๋ฉด GetMobiles๋ฅผ aliveOnly/visibleOnly์ ํจ๊ป ์ฌ์ฉํ๊ฑฐ๋ ์ง์ ํ์ธํ์ธ์. ์ ์ํ์ ์๋ฒ๊ฐ ์๋ค๊ณ ํด์ NPC๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ ์๋๋๋ค.
- FindItem, FindCount ๋๋ GetFoundItems๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ์ด ํ๋์๋ ์ด์ ๋ค๋ฅธ ๋ช ๋ น์ ๊ฒฐ๊ณผ๊ฐ ํฌํจ๋ ์ ์์ต๋๋ค. ๋ฐํ๋ ID๋ฅผ ์ง์ ์ฌ์ฉํ์ธ์.
- ์ต์ํ ๋ ๊ฐ์ง ์ฃผ์ฅ: ๊ฑฐ๋ฆฌ, ์ ๋ช . ์ต๋ 32: ๋ฐ๊ฒฝ ๋ฐ ์ต๋ 31 ๋ง์คํฌ. ๋ ๋ง์ ๊ฐ์ ์ป์ผ๋ ค๋ฉด ํ๋ฉด ๋ฐฐ์ด์ ํ๋์ ์ธ์๋ก ์ ๋ฌํ์ธ์. ํํฐ ์ ๊ฑฐ: -1/any/0xFFFF/๋น ๋ฌธ์์ด ๋๋ ๋น ๋ฐฐ์ด์ ๋ณ๋๋ก ์ญ์ ํฉ๋๋ค. ํน์ ์ฝ๋๊ฐ ๋๋ํ ๋์ด๋์ด ์์ผ๋ฉด ์ ํ ์ฌํญ์ด ์ ์ง๋ฉ๋๋ค.
- self๋ ์ ์ธ๋ฉ๋๋ค. ์ฐจ์ด Z์ ํ๊ณ๋ก UO.FindVertical()๋ฅผ ์ค์ํฉ๋๋ค. ์ด ๋ช ๋ น์๋ ๋งค๊ฐ๋ณ์ maxZ๊ฐ ์์ต๋๋ค. ๋์ผํ ๊ฒฝ์ฐ ํญ์ ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ์ ์ ํํฉ๋๋ค(๋ ์์ ๊ฒ serial). ์ ๋ช ์ดํ์ ๋ ผ์์ ์ฌ์ ํ โโ์ ๋ช ์ด๋ฉฐ ๊ฐ์ฅ ๊ฐ๊น์ง๋ ์๊ณ body๋ ์๋๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
ํ ๋ฒ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์ ๋์ ํ์ํฉ๋๋ค. ์ซ์๋ฅผ bool๋ก ๋ณํํ์ง ์์ผ๋ฉฐ, ๋ฐฐ์ด์ด๋ฉด ์์ ์๋ฅผ ํ์ํฉ๋๋ค.
var result = UO.FindByNotoriety(12, "5|6");
UO.Print("FindByNotoriety: " + Convert.ToString(result));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ์ ์ฅ๋ ์๋๋ ๋์ค์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด ์๋ ๊ณต๊ฒฉํ์ง ์์ต๋๋ค. ํ์ฌ FindVertical๋ ํ๊ฒ์ด X/Y ๋ฐฉํฅ์ผ๋ก ๊ฐ๊น์ด ์์ด๋ ์ ์ฉ๋ฉ๋๋ค.
var found = UO.FindByNotoriety(12, "5|6");
if (Truth(found != 0))
{
UO.AddObject("opponent", found);
UO.Print("Selected: " + UO.GetName(found));
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ํ์ฉ๋๋ ์ ์๋ ๋ณ๋์ 6๊ฐ ์ด์ธ์๋ฅผ ์ถ๊ฐํฉ๋๋ค. ์ํ๋ ์ฐ์ ์์๋ณ๋ก ์ ๋ ฌ๋์ง ์๊ณ ๊ฒฐํฉ๋ฉ๋๋ค. ์ด ์์์๋ ์ด์์๋ ์ฑ๋ก ๋ฐ๊ฒฌ๋ ์ฌ๋์ ๋ํ ๊ณต๊ฒฉ์ ์์ฒญํฉ๋๋ค mobile; ์๋ฒ ๊ท์น์ ํ์ฉ๋๋ ์ฌํญ์ ๊ฒฐ์ ํฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
dynamic[] allowed = new dynamic[checked((int)(0) + 1)];
allowed[0] = 5;
var found = UO.FindByNotoriety(8, allowed, 6);
if (Truth(found != 0) && !(Truth(UO.IsDead(found))))
{
UO.Attack(found);
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๋ฐ๊ฒฝ โ ์ ์ ๋ฐ๊ฒฝ X/Y. FindVertical(0)์๋ ๋์ผํ Z๊ฐ ํ์ํฉ๋๋ค. ์ด๊ฒ์ ๋ฐ๋ฅ์ด๋ ๋ฒฝ ๊ฒ์ฌ๊ฐ ์๋๋๋ค. ์ด ํจ์๋ ID/0๋ฅผ ๋ฐํํ๊ณ ๋ง์ง๋ง์ผ๋ก ์คํฌ๋ฆฝํธ์ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ํ ์ค์ ์ ์ ์ฅํฉ๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var found = FindOpponentAtSameLevel(10);
if (Truth(found != 0))
{
UO.AddObject("same_level", found);
}
return null;
}
dynamic FindOpponentAtSameLevel(dynamic radius)
{
var previous = UO.FindVertical();
try
{
UO.FindVertical(0);
return UO.FindByNotoriety(radius, "5|6");
}
finally
{
UO.FindVertical(previous);
}
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3) โ UO.FindByNotoriety(Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4) โ UO.FindByNotoriety(Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27, notoriety28) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any), notoriety28 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27, notoriety28, notoriety29) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any), notoriety28 (Any), notoriety29 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27, notoriety28, notoriety29, notoriety30) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any), notoriety28 (Any), notoriety29 (Any), notoriety30 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))
UO.FindByNotoriety(distance, notoriety, notoriety2, notoriety3, notoriety4, notoriety5, notoriety6, notoriety7, notoriety8, notoriety9, notoriety10, notoriety11, notoriety12, notoriety13, notoriety14, notoriety15, notoriety16, notoriety17, notoriety18, notoriety19, notoriety20, notoriety21, notoriety22, notoriety23, notoriety24, notoriety25, notoriety26, notoriety27, notoriety28, notoriety29, notoriety30, notoriety31) โ UO.FindByNotoriety(Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: distance (Any), notoriety (Any), notoriety2 (Any), notoriety3 (Any), notoriety4 (Any), notoriety5 (Any), notoriety6 (Any), notoriety7 (Any), notoriety8 (Any), notoriety9 (Any), notoriety10 (Any), notoriety11 (Any), notoriety12 (Any), notoriety13 (Any), notoriety14 (Any), notoriety15 (Any), notoriety16 (Any), notoriety17 (Any), notoriety18 (Any), notoriety19 (Any), notoriety20 (Any), notoriety21 (Any), notoriety22 (Any), notoriety23 (Any), notoriety24 (Any), notoriety25 (Any), notoriety26 (Any), notoriety27 (Any), notoriety28 (Any), notoriety29 (Any), notoriety30 (Any), notoriety31 (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.RegisterCompactSearchApi [FindByNotoriety]. -
InjectionScript.Runtime.InjectionApiUO.FindFilteredMobileSerial:FindFilteredMobileSerial(-1, CombineMask(values, 1), NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false). -
InjectionScript.Runtime.InjectionApiUO.CombineMask:CombineMask(values, 1). -
InjectionScript.Runtime.NumberConversions.ToInt:NumberConversions.ToInt(values[0]). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindVertical:bridge.GetFindVertical().
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(FindFilteredMobileSerial(-1, CombineMask(values, 1),
NumberConversions.ToInt(values[0]), true, bridge.GetFindVertical(), -1, false))ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
int UO.FindCount();
int UO.FindCount(object? id);ID๊ฐ ์ ๋ฌ๋๋ฉด ์ง์ ๋ ์คํ์ ์๋ 1์ ๊ฐ์๋ฅผ ์ฝ์ต๋๋ค. ์ธ์๊ฐ ์๋ ํ์์ ๋ง์ง๋ง ๊ฒ์์ ๊ฐ์ฒด ์๋ผ๋ ๋ณ๋์ ์๋ฏธ๋ฅผ ์ ์งํฉ๋๋ค.
-
idโ ํน์ ๊ฐ์ฒด์ ์ผ๋ จ๋ฒํธ/ID: int, 10์ง์/16์ง์ ๋ฌธ์์ด ๋๋ ๋ณ์นญ ์ค์ self, backpack, lasttarget, lastobject ๋๋ ์ด๋ฆ AddObject. ์ด๊ฒ์ graphic/type์ด ์๋๋๋ค. ์ ํ์ ์ธ์. ID๊ฐ ์ ๋ฌ๋๋ฉด ์ด ํน์ ํญ๋ชฉ์ ํ์ฌ ๊ธ์ก์ ์ฝ์ต๋๋ค. finditem ๋ณ์นญ์ ์ฒซ ๋ฒ์งธ ๊ฒ์ ๊ฒฐ๊ณผ๋ฅผ ๋ช ์์ ์ผ๋ก ์ ํํฉ๋๋ค. ์ธ์๊ฐ ์์ผ๋ฉด ๋ฐ๊ฒฌ๋ ๊ฐ์ฒด ์๊ฐ ๋ฐํ๋ฉ๋๋ค.
int: FindCount(id) โ ์ง์ ๋ ์คํ์ ์๋ ๋จ์ ์(Amount); ์ผ๋ฐ์ ์ธ ๋จ์ผ ํญ๋ชฉ์ 1์ ์ ๊ณตํ๊ณ , ์ ์ ์๊ฑฐ๋ ์ ๊ฑฐ๋ ํญ๋ชฉ, ์๋ชป๋ ๋ณ์นญ ๋๋ ๋ชจ๋ฐ์ผ์ 0์ ์ ๊ณตํฉ๋๋ค. ID๊ฐ ์๋ FindCount()๋ ๋ง์ง๋ง ๊ฒ์์ ๊ฐ์ฒด ์์ ๋๋ค. ํ๋์ ์คํ์ ์์ ๊ด๊ณ์์ด ํ๋์ ๊ฐ์ฒด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, 20, 50 ๋ฐ 100์ 3๊ฐ ์คํ: FindCount()=3, FindCount(๋ ๋ฒ์งธ ์คํ์ ID)=50, FindFullQuantity()=170.
- FindCount(id)๋ GetQuantity(id)๋ฅผ ์ฝ๋ ๊ฒ๊ณผ ๋์ผํ๋ฉฐ ๊ฒ์์ ์คํํ์ง ์์ผ๋ฉฐ FindItem/FindCount()/FindFullQuantity/GetFoundItems๋ฅผ ์์ ํ์ง ์์ต๋๋ค.
- ID๋ type๊ฐ ์๋ ํน์ ํญ๋ชฉ์ serial๋ฅผ ์๋ฏธํฉ๋๋ค. ๋ณ๊ฒฝ๋ ์๋์ ๋ค์ FindCount(id) ํธ์ถ ์ ๋ฐ์๋ฉ๋๋ค. ์ ๊ฑฐ๋ ํ๋ชฉ์ ์๋์ 0์ ๋๋ค. ๋ค๋ฅธ ์คํ์ ์๋์ผ๋ก ๊ฒ์ํ์ง ์์ต๋๋ค.
- ์ธ์๊ฐ ์๋ ์๋ ํธํ์ฑ์ ์ ์ง๋ฉ๋๋ค. FindCount()๋ ๊ฐ์ฒด ์๋ฅผ ๊ณ์ฐํฉ๋๋ค. FindQuantity()๋ ๋ฐ๊ฒฌ๋ ์คํ ํ๋๋ฅผ ์ฝ๊ณ , FindFullQuantity()๋ ๋ง์ง๋ง ๊ฒ์์์ ๋จ์๋ฅผ ํฉ์ฐํฉ๋๋ค.
- ๋ฐ์ดํฐ๋ ์ด ์คํฌ๋ฆฝํธ์ ๋ง์ง๋ง ์ผ๋ฐ ๊ฒ์์ ์ํฉ๋๋ค. FindType๋ 1โ5 ์ธ์, FindTypeEx, Count/CountEx/CountGround๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ฟ๋๋ค. ์ด ์ค๋ ์ท์ ๋ณ๊ฒฝํ๋ ๋ฐ๋ ๊ณ ๊ธ ํํฐ๋ง๋ ๋ฌธ์ ๋ช ๋ น์ด ํ์ํ์ง ์์ต๋๋ค.
- ์ผ์นํ๋ ํญ๋ชฉ์ด ์๋ ์ ๊ฒ์์์๋ FindItem, FindCount ๋ฐ FindFullQuantity๊ฐ ์ง์์ง๊ณ GetFoundItems๊ฐ ์ง์์ง๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ์ฝ๋ ๊ฒ๋ง์ผ๋ก๋ ์๋ก์ด ๊ฒ์์ด ์คํ๋์ง ์์ต๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
ํ ๋ฒ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์ ๋์ ํ์ํฉ๋๋ค. ์ซ์๋ฅผ bool๋ก ๋ณํํ์ง ์์ผ๋ฉฐ, ๋ฐฐ์ด์ด๋ฉด ์์ ์๋ฅผ ํ์ํฉ๋๋ค.
UO.FindType(0x0EED, -1, "backpack");
var result = UO.FindCount();
UO.Print("FindCount: " + Convert.ToString(result));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- id=0x40001234๋ serial ์คํ์ ์์ ๋๋ค. ํญ๋ชฉ์ ID๋ฅผ ๊ทํ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
- 50 ๋จ์ ์คํ์ 50๋ฅผ ๋ฐํํฉ๋๋ค. ๋จ์ผ ํญ๋ชฉ - 1; ์ ์ ์์ ID - 0.
var amount = UO.FindCount("0x40001234");
UO.Print("Units: " + Convert.ToString(amount));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- FindType๋ type ๊ณจ๋ 0x0EED, ๋ชจ๋ hue=-1, ์ง์ญ backpack์ ๋ฐ๊ณ serial๋ฅผ ๋ฐํํฉ๋๋ค.
- ๋ฐํ๋ serial ํญ๋ชฉ์ FindCount๋ก ์ ๋ฌ๋ฉ๋๋ค. type 0x0EED ์์ฒด๋ ์ฌ๊ธฐ๋ก ์ ์กํ ์ ์์ต๋๋ค.
return RunScenario();
object? RunScenario()
{
var item = UO.FindType(0x0EED, -1, "backpack");
if (Truth(item != ""))
{
var units = UO.FindCount(item);
UO.Print(Convert.ToString(units));
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- lasttarget ์ฃผ์ ๋ฅผ ๊ฐ๋ฆฌ์ผ์ผ ํฉ๋๋ค. AddObject ์ด๊ฒ์ ์ ์ฅํฉ๋๋ค serial selected_stack์ด๋ผ๋ ์ด๋ฆ์ผ๋ก.
- FindCount๋ ์ด๋ฆ์ ID๋ก ํ์ธํ๊ณ ๊ธ์ก์ ์ฝ์ต๋๋ค. ๋ฌธ์ ๋์์ ์ ํํ๋ฉด 0๊ฐ ๋ฐํ๋ฉ๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var item = UO.GetSerial("lasttarget");
if (Truth(UO.Exists(item)))
{
UO.AddObject("selected_stack", item);
UO.Print(Convert.ToString(UO.FindCount("selected_stack")));
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- type=0x0EED โ ๊ธ; color=-1 โ ๋ชจ๋ hue; backpack - ์ด ํ์์๋ ๋ฐฐ๋ญ์ ์ง์ ์ ์ธ ๋ด์ฉ๋ง FindType๋ก ํ์๋ฉ๋๋ค.
- int โ ๋ฐ๊ฒฌ๋ ํญ๋ชฉ/๋ฌธ์ ์, 0 ์ผ์น ํญ๋ชฉ ์์. 1000 ์ ๋ 1๊ฐ ์คํ์ ํ๋์ ๊ฐ์ฒด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์ด๋ ๋จ์์ ํฉ์ด ์๋๋๋ค. FindFullQuantity๊ฐ ํ์ํฉ๋๋ค.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindCount();
UO.Print(Convert.ToString(value));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- 4๊ฐ์ ์ฝ๊ธฐ๋ ๋ชจ๋ ๋ค๋ฅธ ๊ฒ์์ด ํธ์ถ๋ ๋๊น์ง ํ๋์ ๊ฒ์์ ์ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, 50 ๋ ๊ฐ์ ์คํ: Items=2, ์ฒซ ๋ฒ์งธ ์คํ=50, ๋ชจ๋ ์ ๋=100; ์ฒซ ๋ฒ์งธ ID์๋ ํ ์คํ์ ๊ณ ์ ํ ID์ด ํฌํจ๋ฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
var found = UO.FindType(0x0EED, -1, "backpack");
UO.Print("Items: " + Convert.ToString(UO.FindCount()));
UO.Print("First stack: " + Convert.ToString(UO.FindQuantity()));
UO.Print("All units: " + Convert.ToString(UO.FindFullQuantity()));
UO.Print("First ID: 0x" + Hex(UO.FindItem()));
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ์ฒซ ๋ฒ์งธ type๋ ๊ธ์ด๊ณ , ๋ ๋ฒ์งธ 0x0F7A๋ ๋ณ๋์ ์์ฝ์ ๋๋ค. ์๋ก์ด ํ์ ์ ์ฒด์ ์ธ ์ท์ ๋ฐ๊พผ๋ค.
- ์ ์ฅ๋ ๋ฒํธ๋ ์ฒซ ๋ฒ์งธ ๊ฒ์์ ๋ฒํธ๋ก ์ ์ง๋ฉ๋๋ค. ๋ ๋ฒ์งธ ํ๋ ๊ฐ์ ์ผ์นํ๋ ๊ฒ์ด ์๋๋ผ๋ ์์ฝ์ ์ ์ฉ๋ฉ๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var found = UO.FindType(0x0EED, -1, "backpack");
var saved = UO.FindCount();
found = UO.FindType(0x0F7A, -1, "backpack");
UO.Print("Saved: " + Convert.ToString(saved));
UO.Print("Current: " + Convert.ToString(UO.FindCount()));
return null;
}
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.FindCount. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindCount:bridge.FindCount().
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
public int FindCount() => bridge.FindCount();๋งค๊ฐ๋ณ์: id (Any)
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.FindCount. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetQuantity:bridge.GetQuantity(GetObject(id)). -
InjectionScript.Runtime.InjectionApiUO.GetObject:GetObject(id).
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
public int FindCount(InjectionValue id) => bridge.GetQuantity(GetObject(id));ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
int UO.FindDistance();
void UO.FindDistance(object? value);๊ธฐ๋ณธ ์ํ ๊ฒ์ ๋ฐ๊ฒฝ์ ์ฝ๊ฑฐ๋ ์์ ํฉ๋๋ค.
-
value- ์ ํ์ฌํญ int. ๋ ผ์ ์์ด - ์ฝ๊ธฐ; ๊ฐ - ์ค์ . ๊ฐ์ 0..255 ๋ฒ์๋ก ์ ํ๋ฉ๋๋ค. ์์๋ ๋ฌด์ ํ์ด ์๋ 0๊ฐ ๋ฉ๋๋ค. ์ ๋ฐํ์: 18; ๋ณต์๋ ์ํ์๋ ๋ค๋ฅธ ๊ฐ์ด ํฌํจ๋ ์ ์์ต๋๋ค. ๋ถ์๋ 0์ผ๋ก ์๋ฆฝ๋๋ค. ์ซ์ ๋ฌธ์์ด double/0x๋ ํ์ฉ๋ฉ๋๋ค. ์์์ ๋ณํ์ ํผํ๋ ค๋ฉด int๋ฅผ ์ฌ์ฉํ์ธ์.
์ธ์ ์์: int๋ ํ์ฌ ์ ํ(์ ์ ๊ฑฐ๋ฆฌ)์ด๋ฉฐ ์ฐพ์ ์ ์์ ID, ๊ฐ์ฒด ์ ๋๋ bool์ ๋๋ค. 0๋ ์คํจ๊ฐ ์๋ ์ ๋ก ํ๊ณ๋ฅผ ์๋ฏธํฉ๋๋ค. ๊ฐ ํฌํจ: void - ๊ฐ ์์; ์ด๊ฒ์ true/false ๋๋ ์ด์ ์ค์ ์ด ์๋๋๋ค. ์ค์น๊ฐ ์๋ฃ๋๋ฉด FindDistance()์ ์ฝ์ด ์ ์ฅ๋ ๊ฐ์ ์์๋ณด์ธ์.
- ๊ฑฐ๋ฆฌ: ํด๋ผ์ด์ธํธ ๋ฒ์์ ํ์ฌ ๊ธฐ์ค์ ์ผ๋ก๋ถํฐ max(abs(dx), abs(dy)); ๋๊ฐ์ ์ ์ฌ๊ฐํ์ 1๋ก ๊ณ์ฐ๋ฉ๋๋ค. ํ ๋๋ฆฌ๊ฐ ์ผ์ ธ ์์ต๋๋ค. 0์ ๊ฒฝ์ฐ ๋์ผํ X/Y์ ์๋ ๊ฐ์ฒด๋ง ์ ํฉํฉ๋๋ค. ๋ชจ๋ฐ์ผ ์ด๋์ ๊ฒฝ์ฐ ๊ฑฐ๋ฆฌ๋ ๊ณ๋จ ๋๊ธฐ์ด์ ์ต์ข ์์น๋ฅผ ๊ณ ๋ คํฉ๋๋ค.
- ์ค์ ์ ํ์ฌ ์คํฌ๋ฆฝํธ์ ๋ฐํ์์ ์ ์ฅ๋ฉ๋๋ค. ํด๋น ํ๋ก์์ ๋ ๋จ์ผ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค. ๋ ๋ฆฝ ๋ฐํ์์๋ ๋ณ๋์ ์ค์ ์ด ์์ต๋๋ค. ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ๋ ๊ฒ์์ ํธ๋ฆฌ๊ฑฐํ์ง ์์ผ๋ฉฐ, FindItem/FindCount/GetFoundItems๋ฅผ ์ง์ฐ๊ณ , ํจํท์ ๋ณด๋ด๊ณ , ๋ฌธ์๋ฅผ ์ด๋ํ๊ฑฐ๋, ๋ฉ๋ฆฌ ์๋ ๊ฐ์ฒด๋ฅผ ๋ก๋ํ์ง ์์ต๋๋ค.
- FindTypeEx ๋ฐ FindTypesArrayEx ์ง์์์ ๊ฒ์ํ ๋๋ ์ด๋ฌํ ์ ํ์ ์ฌ์ฉํ์ง๋ง ์ปจํ ์ด๋ ๋ด๋ถ์์๋ ๊ฒ์ํ์ง ์์ต๋๋ค. ๋๋จธ์ง ํํฐ๋ type, hue, Ignore ๋ฐ ๋ก๋๋ ๊ฐ์ฒด์ ์กด์ฌ ์ฌ๋ถ์ ๋๋ค. FindAtCoord๋ ๋ ๊ฐ์ง ์ ํ์ ๋ชจ๋ ๋ฌด์ํฉ๋๋ค. ํ์ฅ ๋ช ๋ น์์๋ ๋ช ์์ ์ธ ๊ฑฐ๋ฆฌ/maxZ๊ฐ ์ค์ ์ ์ฌ์ ์ํ ์ ์์ต๋๋ค. -1 ์ด๋ฌํ ๋งค๊ฐ๋ณ์์์๋ ์ค์ ์์ฒด๋ฅผ -1๋ก ์ค์ ํ๋ ๊ฒ์ด ์๋๋ผ ์ค์ ์ ์ฌ์ฉํ๋ค๋ ์๋ฏธ์ ๋๋ค. FindList๋ ์ปจํ ์ด๋๋ฅผ ๊ฒ์ํ ๋ Z๋ ํํฐ๋งํฉ๋๋ค. ์ง์ ๋ ์ปจํ ์ด๋ ์์ธ๊ฐ ์ ์ฉ๋์ง ์์ต๋๋ค.
- ์์๋ก ๊ฒ์ํ๊ธฐ ์ ์ ํด๋น ๊ฐ์ ์ ์ฅํ๊ณ finally๋ก ๋ณต์ํด ๋ณด์ธ์. ์ค์น๊ฐ ์๋์ผ๋ก ์ทจ์๋์ง ์์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ ์์ ์ธ ์๋ฃ ๋ฐ ์กํ ์คํฌ๋ฆฝํธ ์ค๋ฅ์ ๋ํด ์๋ํฉ๋๋ค. ๋น์ ์ ์ง๋ ์ฒญ์ ์ฅ์น๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
ํ ๋ฒ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์ ๋์ ํ์ํฉ๋๋ค. ์ซ์๋ฅผ bool๋ก ๋ณํํ์ง ์์ผ๋ฉฐ, ๋ฐฐ์ด์ด๋ฉด ์์ ์๋ฅผ ํ์ํฉ๋๋ค.
var result = UO.FindDistance();
UO.Print("FindDistance: " + Convert.ToString(result));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ์ด์ ์ค์ ์ค์ ์ ์ ์ฅํฉ๋๋ค. value:=5๋ ์ ์ ํ๊ณ๋ฅผ ์ค์ ํฉ๋๋ค. 1000๋ 255๊น์ง์ ํ๊ณ๋ฅผ ๋ํ๋ ๋๋ค. Print๋ ์ธ์ ์์ด ๋ณ๋์ ํธ์ถ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ฝ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ์ด์ ์ ๋ณต์ํฉ๋๋ค.
var previous = UO.FindDistance();
try
{
UO.FindDistance(5);
UO.Print(Convert.ToString(UO.FindDistance()));
UO.FindDistance(1000);
UO.Print(Convert.ToString(UO.FindDistance()));
}
finally
{
UO.FindDistance(previous);
}๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ์ด์ ํธ์ถ ์ฝ๋์ ์ค์ ์ ์ ์ฅํฉ๋๋ค. 5๋ FindDistance๋ง ๋ณ๊ฒฝ๋ฉ๋๋ค. ๋ ๋ฒ์งธ ํ๋๋ ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค. 0x0EED - ๊ณจ๋ ๊ทธ๋ํฝ, -1 - ๋ชจ๋ hue, Container=-1 - ์๋, false - ์ปจํ ์ด๋ ์ฌ๊ท ์์. id - ํ๋ serial; != 0 ๊ฐ์ฉ์ฑ์ ํ์ธํฉ๋๋ค. FindCount ์ ์ฒด ๊ฐ์ฒด/์คํ ์๋ฅผ ๊ณ์ฐํฉ๋๋ค. ์ต์ข ์ ์ผ๋ก ๊ฒฐ๊ณผ ๋ชฉ๋ก์ด ์๋ ์ค์ ์ ๋ณต์ํฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
var previous = UO.FindDistance();
try
{
UO.FindDistance(5);
var id = UO.FindTypeEx(0x0EED, -1, -1, false);
if (Truth(id != 0))
{
UO.Print(Hex(id) + ":" + Convert.ToString(UO.FindCount()));
}
else
{
UO.Print("0");
}
}
finally
{
UO.FindDistance(previous);
}
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- CountGroundInRange(graphic, radius, height)๋ ๋ ์ ํ์ ๋ชจ๋ ์ ์ฅํ๊ณ , radius=5 ๋ฐ height=10๋ฅผ ์ค์ ํ๊ณ , graphic=0x0EED๋ฅผ ์ฐพ์ FindCount()๋ฅผ ๋ฐํํฉ๋๋ค. ์คํ์ ํ๋์ ๊ฐ์ฒด๋ก ๊ฐ์ฃผ๋ฉ๋๋ค. ์ ์ฒด ๊ธฐ๋ฅ์ Main ๋ค์์ ์ ๊ณต๋ฉ๋๋ค. ๋ง์ง๋ง์ผ๋ก ๋ฆฌํด์ ํตํด ์ข ๋ฃํ๋ ๊ฒฝ์ฐ์๋ ๋ ์ ํ์ ๋ชจ๋ ๋ณต์ํฉ๋๋ค. ๊ฒ์ ๊ฒฐ๊ณผ๋ ๊ณ์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var count = CountGroundInRange(0x0EED, 5, 10);
UO.Print(Convert.ToString(count));
return null;
}
dynamic CountGroundInRange(dynamic graphic, dynamic radius, dynamic height)
{
var oldDistance = UO.FindDistance();
var oldVertical = UO.FindVertical();
try
{
UO.FindDistance(radius);
UO.FindVertical(height);
UO.FindTypeEx(graphic, -1, -1, false);
return UO.FindCount();
}
finally
{
UO.FindDistance(oldDistance);
UO.FindVertical(oldVertical);
}
}
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetFindDistance:bridge.SetFindDistance(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindDistance:bridge.GetFindDistance().
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "finddistance":
if (arguments.Length > 0) { bridge.SetFindDistance(Arg(0)); return InjectionValue.Unit; }
return new InjectionValue(bridge.GetFindDistance());๋งค๊ฐ๋ณ์: value (Any)
๊ฒฐ๊ณผ: void / Unit.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.SetFindDistance:bridge.SetFindDistance(Arg(0)). -
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility::Arg:Arg(0). -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.GetFindDistance:bridge.GetFindDistance().
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "finddistance":
if (arguments.Length > 0) { bridge.SetFindDistance(Arg(0)); return InjectionValue.Unit; }
return new InjectionValue(bridge.GetFindDistance());ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
dynamic UO.FindFullQuantity();๋ง์ง๋ง ๊ฒ์ ์ค๋ ์ท์ ์ด ๋จ์ ์๋ฅผ ์ฝ์ต๋๋ค.
๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
int โ ๋ฐ๊ฒฌ๋ ํญ๋ชฉ์ ์ต๋ ํฉ๊ณ(1, Amount); ๋ฐ๊ฒฌ๋ ๊ฐ ๋ฌธ์๋ 1๋ฅผ ์ถ๊ฐํฉ๋๋ค. 0 ์ผ์นํ๋ ํญ๋ชฉ์ด ์์ต๋๋ค. 50 ๋ ๋ฌถ์์ 100๋ฅผ ์ฐ์ถํ๊ณ , FindCount๋ 2์ ์ฐ์ถํฉ๋๋ค. ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ๊ธ์ก์ด ์๋ ๊ฒ์ ๋น์์ ์ค๋ ์ท์ ๋๋ค.
- ๋ฐ์ดํฐ๋ ์ด ์คํฌ๋ฆฝํธ์ ๋ง์ง๋ง ์ผ๋ฐ ๊ฒ์์ ์ํฉ๋๋ค. FindType๋ 1โ5 ์ธ์, FindTypeEx, Count/CountEx/CountGround๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ฟ๋๋ค. ์ด ์ค๋ ์ท์ ๋ณ๊ฒฝํ๋ ๋ฐ๋ ๊ณ ๊ธ ํํฐ๋ง๋ ๋ฌธ์ ๋ช ๋ น์ด ํ์ํ์ง ์์ต๋๋ค.
- ์ผ์นํ๋ ํญ๋ชฉ์ด ์๋ ์ ๊ฒ์์์๋ FindItem, FindCount ๋ฐ FindFullQuantity๊ฐ ์ง์์ง๊ณ GetFoundItems๊ฐ ์ง์์ง๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ์ฝ๋ ๊ฒ๋ง์ผ๋ก๋ ์๋ก์ด ๊ฒ์์ด ์คํ๋์ง ์์ต๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
ํ ๋ฒ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์ ๋์ ํ์ํฉ๋๋ค. ์ซ์๋ฅผ bool๋ก ๋ณํํ์ง ์์ผ๋ฉฐ, ๋ฐฐ์ด์ด๋ฉด ์์ ์๋ฅผ ํ์ํฉ๋๋ค.
UO.FindType(0x0EED, -1, "backpack");
object? result = UO.FindFullQuantity();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- type=0x0EED โ ๊ธ; color=-1 โ ๋ชจ๋ hue; backpack - ์ด ํ์์๋ ๋ฐฐ๋ญ์ ์ง์ ์ ์ธ ๋ด์ฉ๋ง FindType๋ก ํ์๋ฉ๋๋ค.
- int โ ๋ฐ๊ฒฌ๋ ํญ๋ชฉ์ ์ต๋ ํฉ๊ณ(1, Amount); ๋ฐ๊ฒฌ๋ ๊ฐ ๋ฌธ์๋ 1๋ฅผ ์ถ๊ฐํฉ๋๋ค. 0 ์ผ์นํ๋ ํญ๋ชฉ์ด ์์ต๋๋ค. 50 ๋ ๋ฌถ์์ 100๋ฅผ ์ฐ์ถํ๊ณ , FindCount๋ 2์ ์ฐ์ถํฉ๋๋ค. ์ง์์ ์ผ๋ก ์ ๋ฐ์ดํธ๋๋ ๊ธ์ก์ด ์๋ ๊ฒ์ ๋น์์ ์ค๋ ์ท์ ๋๋ค.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindFullQuantity();
UO.Print(Convert.ToString(value));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- 4๊ฐ์ ์ฝ๊ธฐ๋ ๋ชจ๋ ๋ค๋ฅธ ๊ฒ์์ด ํธ์ถ๋ ๋๊น์ง ํ๋์ ๊ฒ์์ ์ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, 50 ๋ ๊ฐ์ ์คํ: Items=2, ์ฒซ ๋ฒ์งธ ์คํ=50, ๋ชจ๋ ์ ๋=100; ์ฒซ ๋ฒ์งธ ID์๋ ํ ์คํ์ ๊ณ ์ ํ ID์ด ํฌํจ๋ฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
var found = UO.FindType(0x0EED, -1, "backpack");
UO.Print("Items: " + Convert.ToString(UO.FindCount()));
UO.Print("First stack: " + Convert.ToString(UO.FindQuantity()));
UO.Print("All units: " + Convert.ToString(UO.FindFullQuantity()));
UO.Print("First ID: 0x" + Hex(UO.FindItem()));
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ์ฒซ ๋ฒ์งธ type๋ ๊ธ์ด๊ณ , ๋ ๋ฒ์งธ 0x0F7A๋ ๋ณ๋์ ์์ฝ์ ๋๋ค. ์๋ก์ด ํ์ ์ ์ฒด์ ์ธ ์ท์ ๋ฐ๊พผ๋ค.
- ์ ์ฅ๋ ๋ฒํธ๋ ์ฒซ ๋ฒ์งธ ๊ฒ์์ ๋ฒํธ๋ก ์ ์ง๋ฉ๋๋ค. ๋ ๋ฒ์งธ ํ๋ ๊ฐ์ ์ผ์นํ๋ ๊ฒ์ด ์๋๋ผ๋ ์์ฝ์ ์ ์ฉ๋ฉ๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var found = UO.FindType(0x0EED, -1, "backpack");
var saved = UO.FindFullQuantity();
found = UO.FindType(0x0F7A, -1, "backpack");
UO.Print("Saved: " + Convert.ToString(saved));
UO.Print("Current: " + Convert.ToString(UO.FindFullQuantity()));
return null;
}
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
๊ฒฐ๊ณผ: dynamic / Any.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindFullQuantity:bridge.FindFullQuantity().
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "findfullquantity": return new InjectionValue(bridge.FindFullQuantity());ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
dynamic UO.FindItem();๋ง์ง๋ง ์ ๊ท ๊ฒ์์ ์ฒซ ๋ฒ์งธ ๊ฒฐ๊ณผ์ serial๋ฅผ ์ฝ์ต๋๋ค.
๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
int - ์ฒ์ ๋ฐ๊ฒฌํ ๊ฐ์ฒด์ serial/ID, ๊ฒฐ๊ณผ๊ฐ ์์ผ๋ฉด 0. ์ด๋ ์ซ์ serial์ธ ๋ฐ๋ฉด, FindType๋ 16์ง์ ๋ฌธ์์ด ๋๋ ๋น ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. type๋ฅผ ๋ฐํํ์ง ์์ต๋๋ค.
- ๋ฐ์ดํฐ๋ ์ด ์คํฌ๋ฆฝํธ์ ๋ง์ง๋ง ์ผ๋ฐ ๊ฒ์์ ์ํฉ๋๋ค. FindType๋ 1โ5 ์ธ์, FindTypeEx, Count/CountEx/CountGround๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊ฟ๋๋ค. ์ด ์ค๋ ์ท์ ๋ณ๊ฒฝํ๋ ๋ฐ๋ ๊ณ ๊ธ ํํฐ๋ง๋ ๋ฌธ์ ๋ช ๋ น์ด ํ์ํ์ง ์์ต๋๋ค.
- ์ผ์นํ๋ ํญ๋ชฉ์ด ์๋ ์ ๊ฒ์์์๋ FindItem, FindCount ๋ฐ FindFullQuantity๊ฐ ์ง์์ง๊ณ GetFoundItems๊ฐ ์ง์์ง๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ์ฝ๋ ๊ฒ๋ง์ผ๋ก๋ ์๋ก์ด ๊ฒ์์ด ์คํ๋์ง ์์ต๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
ํ ๋ฒ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์ ๋์ ํ์ํฉ๋๋ค. ์ซ์๋ฅผ bool๋ก ๋ณํํ์ง ์์ผ๋ฉฐ, ๋ฐฐ์ด์ด๋ฉด ์์ ์๋ฅผ ํ์ํฉ๋๋ค.
UO.FindType(0x0EED, -1, "backpack");
object? result = UO.FindItem();
UO.Print(result is Array values ? "Count: " + values.Length : Convert.ToString(result));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- type=0x0EED โ ๊ธ; color=-1 โ ๋ชจ๋ hue; backpack - ์ด ํ์์๋ ๋ฐฐ๋ญ์ ์ง์ ์ ์ธ ๋ด์ฉ๋ง FindType๋ก ํ์๋ฉ๋๋ค.
- int - ์ฒ์ ๋ฐ๊ฒฌํ ๊ฐ์ฒด์ serial/ID, ๊ฒฐ๊ณผ๊ฐ ์์ผ๋ฉด 0. ์ด๋ ์ซ์ serial์ธ ๋ฐ๋ฉด, FindType๋ 16์ง์ ๋ฌธ์์ด ๋๋ ๋น ๋ฌธ์์ด์ ๋ฐํํฉ๋๋ค. type๋ฅผ ๋ฐํํ์ง ์์ต๋๋ค.
var found = UO.FindType(0x0EED, -1, "backpack");
var value = UO.FindItem();
UO.Print(Convert.ToString(value));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- 4๊ฐ์ ์ฝ๊ธฐ๋ ๋ชจ๋ ๋ค๋ฅธ ๊ฒ์์ด ํธ์ถ๋ ๋๊น์ง ํ๋์ ๊ฒ์์ ์ํฉ๋๋ค.
- ์๋ฅผ ๋ค์ด, 50 ๋ ๊ฐ์ ์คํ: Items=2, ์ฒซ ๋ฒ์งธ ์คํ=50, ๋ชจ๋ ์ ๋=100; ์ฒซ ๋ฒ์งธ ID์๋ ํ ์คํ์ ๊ณ ์ ํ ID์ด ํฌํจ๋ฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
var found = UO.FindType(0x0EED, -1, "backpack");
UO.Print("Items: " + Convert.ToString(UO.FindCount()));
UO.Print("First stack: " + Convert.ToString(UO.FindQuantity()));
UO.Print("All units: " + Convert.ToString(UO.FindFullQuantity()));
UO.Print("First ID: 0x" + Hex(UO.FindItem()));
return null;
}
string Hex(object? value) => Convert.ToInt64(value).ToString("X");๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ์ฒซ ๋ฒ์งธ type๋ ๊ธ์ด๊ณ , ๋ ๋ฒ์งธ 0x0F7A๋ ๋ณ๋์ ์์ฝ์ ๋๋ค. ์๋ก์ด ํ์ ์ ์ฒด์ ์ธ ์ท์ ๋ฐ๊พผ๋ค.
- ์ ์ฅ๋ ๋ฒํธ๋ ์ฒซ ๋ฒ์งธ ๊ฒ์์ ๋ฒํธ๋ก ์ ์ง๋ฉ๋๋ค. ๋ ๋ฒ์งธ ํ๋ ๊ฐ์ ์ผ์นํ๋ ๊ฒ์ด ์๋๋ผ๋ ์์ฝ์ ์ ์ฉ๋ฉ๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
var found = UO.FindType(0x0EED, -1, "backpack");
var saved = UO.FindItem();
found = UO.FindType(0x0F7A, -1, "backpack");
UO.Print("Saved: " + Convert.ToString(saved));
UO.Print("Current: " + Convert.ToString(UO.FindItem()));
return null;
}
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
๊ฒฐ๊ณผ: dynamic / Any.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.FindItem:bridge.FindItem.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "finditem": return new InjectionValue(bridge.FindItem);ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
string UO.FindList(object? list);
string UO.FindList(object? list, object? container);
string UO.FindList(object? list, object? container, object? distance);
string UO.FindList(object? list, object? container, object? distance, object? notoriety);
string UO.FindList(object? list, object? container, object? distance, object? notoriety, object? nearest);
string UO.FindList(object? list, object? container, object? distance, object? notoriety, object? nearest, object? maxZ);
string UO.FindList(object? list, object? container, object? distance, object? notoriety, object? nearest, object? maxZ, object? includeIgnored);์ฌ๋ฌ type/hue์์ ๋ค์ด๋ก๋ํ ํญ๋ชฉ์ด๋ ๋ชจ๋ฐ์ผ์ ๊ฒ์ํฉ๋๋ค. ์ฒซ ๋ฒ์งธ serial๋ฅผ ๋ฌธ์์ด๋ก ๋ฐํํ๊ณ FindItem, FindCount ๋ฐ GetFoundItems์ ๋ํด ์ ๋ ฌ๋ ์ ์ฒด ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํฉ๋๋ค.
-
listโ ๋น์ด ์์ง ์์ ์งํฉ์ ์ด๋ฆ AddFindList; ๋๋ ์ซ์๋ก ๊ตฌ์ฑ๋ ํ๋ฉด ๋ฐฐ์ด type; ๋๋ "0x0EED|0x0F7A"์ ๊ฐ์ด |, ์ผํ, ์ธ๋ฏธ์ฝ๋ก ๋๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ ์ ํ์ ๋ฌธ์์ด์ ๋๋ค. ๋ฐฐ์ด/๋ฌธ์์ด ์ ํ์ hue๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ฐฐ์ด ๋ด์ [type,hue] ์์ ์ง์๋์ง ์์ต๋๋ค. hue์ ๊ฒฝ์ฐ ๋ช ๋ช ๋ ์ธํธ๋ฅผ ๋ง๋ญ๋๋ค. ํญ๋ชฉ์ ์์์ ๋ฐ๋ผ ์ฐ์ ์์๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค. ํญ๋ชฉ์ ๊ทธ๋ํฝ/type์ serial์ด ์๋ body mobile์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก int 0..65535(0x0EED ํฌํจ); -1 ๋๋ 0xFFFF๋ ๊ฒ์ ์ type๋ฅผ ์๋ฏธํฉ๋๋ค. ํญ๋ชฉ๋น ํ๋์ ๊ฐ์ ์ ๊ณตํ์ญ์์ค. ์ฌ๋ฌ ์ ํ์ด ๋ณ๋์ ํธ์ถ๋ก ์ถ๊ฐ๋ฉ๋๋ค. -
containerโ ๊ธฐ๋ณธ๊ฐ -1: ๋ฃจํธ ์ปจํ ์ด๋๊ฐ ๋ฌธ์์ธ ์์ดํ (์ค์ฒฉ๋ ๊ฐ๋ฐฉ ๋ฐ ์ฅ๋น ํฌํจ) "my" = -1. ground, "ground", UO.Ground(), ์ซ์ 0 ๋๋ 1 ์ธ๊ณ ์ ํ: self๋ฅผ ์ ์ธํ ์ง์ ๋ฐ ๋ชจ๋ฐ์ผ ์์ดํ . ์ปจํ ์ด๋์ "backpack" ๋๋ serial >1 ์ฌ๊ท ์์ด ์ง์ ์ฝํ ์ธ ๋ง ๊ฒ์ํฉ๋๋ค. ๊ฐ์ฒด ๋ณ์นญ์ serial๋ก ํ์ธ๋ฉ๋๋ค. ์๋ชป๋ ๋ณ์นญ์ 0๋ฅผ ์ ๊ณตํ ์ ์์ผ๋ฏ๋ก ๋ฏธ๋ฆฌ GetSerial๋ก ํ์ธํ์ธ์. -
distanceโ max(abs(dx),abs(dy))์ ๋ฐ๋ฅธ ์์๊ฐ ์๋ ์ ๋ฐ๊ฒฝ; ๋๊ฐ์ - ํ๋์ ์ . ๊ฒ์์ ์ ํจํจ ground; ์ปจํ ์ด๋์ ์ง์ ์ ์ธ ๋ด์ฉ๋ฌผ์ ๊ฑฐ๋ฆฌ์ ์ํด ์ ํ๋์ง ์์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ์ธ์๋ฅผ ์ฌ์ฉํ๋ฉด UO.FindDistance()๊ฐ ์ฌ์ฉ๋ฉ๋๋ค. 0 - ๋์ผ X/Y. -
notorietyโ ๊ธฐ๋ณธ๊ฐ - 1, ๋ชจ๋ ์ฝ๋. ๋จ์ผ ์ซ์, ๋ฌธ์์ด "5|6" ๋๋ ๋จ์ ์ซ์ ๋ฐฐ์ด์ ํ์ฉ๋๋ ํด๋ํฐ ์ฝ๋๋ฅผ ์ง์ ํฉ๋๋ค. ์ด ํํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ํญ๋ชฉ์ด ์ ์ธ๋ฉ๋๋ค. ์ฝ๋: 0 ์ ์ ์์, 1 ๊ฒฐ๋ฐฑ, 2 ๋๋งน, 3 ํ์, 4 ๋ฒ์ฃ์, 5 ์ , 6 ์ด์ธ์, 7 ๋ฌด์ ; ๊ด๊ณ์ ์๋ฏธ๋ ์๋ฒ์ ์ํด ๊ฒฐ์ ๋ฉ๋๋ค. ํน์ ์ฝ๋๊ฐ ์๋ ๋น ๋ง์คํฌ /any/-1๋ ์ ํ์ ์ด์ง ์์ต๋๋ค. ์์ผ๋์นด๋์ ์ฝ๋๋ฅผ ํผํฉํ๋ ๊ฒฝ์ฐ ํน์ ์ฝ๋์๋ ์ ํ์ด ๋ฐ๋ฆ ๋๋ค. ์ซ์๊ฐ ์๋ ํ ํฐ์ ์ ํจํ ํ ํฐ ์์ ๋ฌด์๋ฉ๋๋ค. ์๋ชป๋ ํ ํฐ์ผ๋ก๋ง ๊ตฌ์ฑ๋ ๋ง์คํฌ๋ ์๋ฌด๊ฒ๋ ์ฐพ์ง ๋ชปํฉ๋๋ค. -
nearestโ ๊ธฐ๋ณธ๊ฐ false. false/0: ํญ๋ชฉ ์ฐ์ ์์๋ฅผ ๋จผ์ ๋์ดํ ๋ค์ ์ฐ์ ์์๋ฅผ ๋ฎ์ถฅ๋๋ค serial. true/1: ๊ฑฐ๋ฆฌ ์ฐ์ , ๋ นํ ์ฐ์ ์์, serial ์์ ๋๋ค. ์ถ๊ฐ ํํฐ๊ฐ ์๋ ์ฃผ๋ฌธ์ ๋๋ค. -
maxZโ Z์ ๋ฌธ์ ์ฌ์ด์ ํ์ฉ๋๋ ์ ๋ ์ฐจ์ด๊ฐ ์์ต๋๋ค. ๊ธฐ๋ณธ ๋๋ ์์ ์ธ์๋ UO.FindVertical()์ ๋๋ค. 0๋ ๋์ผํ Z๋ง ํ์ฉํฉ๋๋ค. ๋ช ์์ ์ธ serial ์ปจํ ์ด๋ >1์ ๊ฒฝ์ฐ ๋ก๋๋ ์ปจํ ์ด๋์ Z๋ฅผ ๊ฐ์ ธ์ต๋๋ค(์๋ฌด๊ฒ๋ ์์ผ๋ฉด Z ํญ๋ชฉ). ๋ค๋ฅธ ๋ชจ๋์ ๊ฒฝ์ฐ - Z ํ๋ณด. Gump์ ์๋ ์ฌ๋ฌผ์ ์ขํ๋ ์ธ๊ณ์ ๋์ด๊ฐ ์๋๋๋ค. -
includeIgnoredโ ๊ธฐ๋ณธ์ ์ผ๋ก false: ์ด ๋ฐํ์์ Ignore์์ serial๊ฐ ์ ์ธ๋ฉ๋๋ค. true/1๋ ์ด ๊ฒ์์๋ง ํฌํจ๋๋ฉฐ Ignore๋ ์ญ์ ๋์ง ์์ต๋๋ค.
string: ์ฒซ ๋ฒ์งธ ๊ฒฐ๊ณผ์ 16์ง์-serial(์: "0x40000011") ๋๋ ์ผ์นํ๋ ํญ๋ชฉ์ด ์๋ ๊ฒฝ์ฐ ๋น ๋ฌธ์์ด ""์ ๋๋ค. ์ด๊ฒ์ type์ด ์๋ ID, bool์ด ์๋ ์๋์ ๋๋ค. ๊ฒฐ๊ณผ๋ฅผ ํ์ธํ์ธ์ != "", ๊ฒฐ๊ณผ == true๊ฐ ์๋๋๋ค. ๋น์ด ์์ง ์์ ์ผ๋ฐ์ ์ธ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ FindItem๋ ๋์ผํ ID ์ซ์, FindCount() - ๊ฐ๋ณ ๊ฐ์ฒด์ ์, GetFoundItems() - ์ซ์ ๋ฐฐ์ด serial์ ์ ์ฅํฉ๋๋ค.
- 1 ~ 7 ์์น ์ธ์; ๊ผฌ๋ฆฌ๋ง ๊ฑด๋๋ธ ์ ์์ต๋๋ค. maxZ๋ฅผ ์ง์ ํ๋ ค๋ฉด ์์ ์ธ์๋ฅผ ๋ช ์์ ์ผ๋ก ์ ๋ฌํ์ธ์. ๊ฒ์์ ๋ก์ปฌ๋ก ๋ก๋๋ ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋๊ธฐ์์ผ๋ก ์ด๋ฃจ์ด์ง๋๋ค. ์ฆ, ์ปจํ ์ด๋๋ฅผ ์ด์ง ์๊ณ , ์ฝํ ์ธ ๋ฅผ ๋ก๋ํ์ง ์๊ณ , ์์ /๊ฐ์ฉ์ฑ์ ํ์ธํ์ง ์๊ณ , ๊ณต๊ฒฉํ์ง ์์ต๋๋ค.
- ์ฌ๋ฌ ๊ท์น๊ณผ ์ผ์นํ๋๋ผ๋ ๊ฐ ๊ฐ์ฒด๋ ํ ๋ฒ๋ง ํฌํจ๋ฉ๋๋ค. ์ฐ์ ์์๋ ์ผ์นํ๋ ์ฒซ ๋ฒ์งธ ํญ๋ชฉ์ ๋๋ค. ์ ์ ์๋ ์ด๋ฆ์ ์ ํ ๋ฌธ์์ด๋ก ๊ตฌ๋ฌธ ๋ถ์์ ์๋ํฉ๋๋ค. ์ฝ์ ์ ์๋ type/hue๋ก ์ธํด ๋ณํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
- ๋น์ด ์์ง ์์ ์ฟผ๋ฆฌ๋ ์ ํ ์ ์ด์ FindItem/FindCount/GetFoundItems๋ฅผ ์ง์๋๋ค. ์ผ์นํ๋ ํญ๋ชฉ์ด ์์ผ๋ฉด ๋น ๊ฒฐ๊ณผ๊ฐ ๋จ์ต๋๋ค. ์์ธ: ๋น ๋ฐฐ์ด ๋๋ ๋น ๋ฌธ์์ด ๋ชฉ๋ก์ ๊ฒ์ํ๊ธฐ ์ ์ ""๋ฅผ ๋ฐํํ๊ณ ์ด์ ๊ฒฐ๊ณผ๋ฅผ ์ ์งํฉ๋๋ค. ์ด๋ฌํ ํธ์ถ ํ์๋ FindCount๋ฅผ ์๋ก์ด ๊ฒฐ๊ณผ๋ก ๊ฐ์ฃผํ์ง ๋ง์ธ์.
- AddFindList/ClearFindList/DeleteFindList ์ ์๋ฅผ ๋ณ๊ฒฝํด๋ ์ด๋ฏธ ๋ฐ๊ฒฌ๋ ์ธํธ๋ ๋ณ๊ฒฝ๋์ง ์์ต๋๋ค. ์ด ๋ฐํ์์ ๋ค๋ฅธ ๊ฒ์์ FindItem ๋ฐ ์ ์ฒด ๋ฐฐ์ด์ ๋์ฒดํ๋ฏ๋ก ์ค์ฒฉ ๊ฒ์ ์์ GetFoundItems๋ฅผ ์ ์ฅํ์ธ์.
- ์ ์๋ ์ง์ ๋ ์คํฌ๋ฆฝํธ ๋ฐํ์ ์ํ์ ์์ต๋๋ค. ๋ ๋ฆฝ์ ์ธ ๋ค๋ฅธ ๋ฐํ์์๋ ์์ฒด ์ธํธ๊ฐ ์์ต๋๋ค. IDE ์ฐฝ์ ๋ซ์๋ ์ด๋ฌํ ๊ท์น์ ์ง์์ง์ง ์์ต๋๋ค. ์ด๊ฒ์ ์ค์ ํ์ผ์ด๋ ์ ์ญ ๊ฒ์ ๊ฐ์ฒด ๋ชฉ๋ก์ด ์๋๋๋ค.
- AddFindList ํญ๋ชฉ์ ๋์ ์ถ๊ฐํฉ๋๋ค. ๋ฐ๋ณต์ ์ญ์ ๋์ง ์์ต๋๋ค. ํคํธ๋ฅผ ๋ค์ ํ๋ก๋น์ ๋ํ๋ ค๋ฉด ๋จผ์ ClearFindList("name")์ผ๋ก ์ ํํ์ธ์. ์ ์๋ฅผ ๋ณ๊ฒฝํด๋ ์ด๋ฏธ ์์ ๋ FindItem/FindCount/GetFoundItems๋ ์ง์์ง์ง ์์ต๋๋ค.
- ๋ ์ฝ๋๋ ํ ์คํธ ํ๋๋ฅผ ์ ์ฅํฉ๋๋ค. ์ซ์ ๋ฆฌํฐ๋ด 0x0EED์ "3821"๋ก ์ ์ฅ๋๊ณ , ๋ฌธ์์ด "0x0EED"์ "0x0EED"๋ก ์ ์ฅ๋ฉ๋๋ค. ๊ฒ์์ ๋ ์ต์ ์ ๋ชจ๋ ์ซ์๋ก ๋ณํํ๊ณ DeleteFindList๋ ์ ์ฅ๋ ํ ์คํธ๋ฅผ ๋น๊ตํฉ๋๋ค. ์ถ๊ฐ ๋ฐ ์ญ์ ์์๋ ๋์ผํ ์์์ ์ฌ์ฉํ์ธ์.
- FindList์ ์ ์ ์๋ ์ด๋ฆ์ ๋น ๋ฑ๋ก ์ธํธ๊ฐ ์๋๋๋ค. ์์ง์ ์ด๋ฅผ ์ซ์ ์ ํ ๋ชฉ๋ก์ผ๋ก ๊ตฌ๋ฌธ ๋ถ์ํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์ซ์๊ฐ ์๋ ์ด๋ฆ์ ์ฌ์ฉํ๋ฉด ๋ณํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค. ๋ง์ง๋ง ํญ๋ชฉ์ ์ญ์ ํ ํ ํด๋น ์ด๋ฆ์ ๊ฒ์ํ๊ธฐ ์ ์ ์ ์ธํธ๋ฅผ ๋ง๋์ญ์์ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
ํ ๋ฒ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์ ๋์ ํ์ํฉ๋๋ค. ์ซ์๋ฅผ bool๋ก ๋ณํํ์ง ์์ผ๋ฉฐ, ๋ฐฐ์ด์ด๋ฉด ์์ ์๋ฅผ ํ์ํฉ๋๋ค.
var result = UO.FindList(new[] { 0x0EED }, "backpack");
UO.Print("FindList: " + Convert.ToString(result));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- false์์๋ ๋ ๋จผ ๊ฑฐ๋ฆฌ์์๋ ๊ธ์ด ๋ ๋ฒ์งธ type๋ณด๋ค ์ฐ์ ํฉ๋๋ค. ๋ฐ๊ฒฝ 2 ๋ฐ maxZ=5๋ ํ๋ณด๋ฅผ ์ ํํฉ๋๋ค. ๊ทธ๋ค์ ๋ฌผ๊ฑด์ ์ง์ ๊ถ๋ฆฌ๋ฅผ ๋ณด์ฅํ์ง ์์ต๋๋ค.
- ์ด๊ฒ์ ์ค์ ๊ฒ์ ๋์์ ๋๋ค. ๋ฐ๊ฒฌ๋ ์ฒซ ๋ฒ์งธ ๊ฐ์ฒด๋ง ์ ์ก๋ฉ๋๋ค. ๊ฒฐ๊ณผ MoveItem๋ ์๋ฒ๊ฐ ์ ์ฒด ์ด๋์ ํ์ธํ๋ค๋ ์๋ฏธ๋ ์๋๋๋ค.
BuildLoot();
var item = UO.FindList("loot", "ground", 2, -1, false, 5);
if (Truth(item == ""))
{
return null;
}
var accepted = UO.MoveItem(item, 0, "backpack");
if (Truth(accepted == 0))
{
UO.Print("Move was not accepted");
}
void BuildLoot()
{
UO.ClearFindList("loot");
UO.AddFindList("loot", 0x0EED, -1);
UO.AddFindList("loot", 0x0F7A, -1);
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- 7๊ฐ์ ๋งค๊ฐ๋ณ์: 2๊ฐ์ body, ์ธ๊ณ, ๋ฐ๊ฒฝ 12, ์ฝ๋ 5 ๋๋ 6, ๊ฐ์ฅ ๊ฐ๊น์ด ๊ฒ๋ถํฐ, ์ฐจ์ด Z 10 ์ดํ, ๋ฌด์ ์ ์ธ. ์ ํ๊ณผ ์ ์ฅ๋ง ์์ต๋๋ค. ๊ณต๊ฒฉ ์คํฌ๋ฆฝํธ๋ ์ ์ ํ ์กฐ๊ฑด์ ๋ณ๋๋ก ํ์ธํด์ผ ํฉ๋๋ค.
return RunScenario();
object? RunScenario()
{
var target = UO.FindList("0x0190|0x0191", "ground", 12, "5|6", true, 10, false);
if (Truth(target != ""))
{
UO.AddObject("candidate", target);
UO.Print("Candidate: " + UO.GetName(target));
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๋ณ์ ์ ํ[1]์ ์ ์ธํ๋ฉด ์ด ์์ง์์ ์ธ๋ฑ์ค 0 ๋ฐ 1๊ฐ ์์ฑ๋ฉ๋๋ค. ์คํ ์๊ฐ ์๋ ๋ ์ ํ์ ๋จ์๋ฅผ ํฉ์ฐํฉ๋๋ค. backpack ์ง์ ์ฝํ ์ธ ๋ก ์ ํ๋ฉ๋๋ค. ์ฝ์ ๋ ๊ฐ๋ฐฉ์ ์ฌ๊ธฐ์ ํฌํจ๋์ง ์์ต๋๋ค.
return new ScriptScenario(UO, WaitAsync, Args, Cancellation, Checkpoint).RunScenario();
class ScriptScenario
{
private readonly global::ClassicUO.CSharp.CSharpGameApi UO;
private readonly Func<int, Task> WaitAsync;
private readonly string[] Args;
private readonly CancellationToken Cancellation;
private readonly Action Checkpoint;
public ScriptScenario(global::ClassicUO.CSharp.CSharpGameApi api, Func<int, Task> wait, string[] args, CancellationToken cancellation, Action checkpoint)
{
UO = api;
WaitAsync = wait;
Args = args;
Cancellation = cancellation;
Checkpoint = checkpoint;
}
public object? RunScenario()
{
dynamic[] types = new dynamic[checked((int)(1) + 1)];
types[0] = 0x0EED;
types[1] = 0x0F7A;
var first = UO.FindList(types, "backpack");
var total = 0;
if (Truth(first != ""))
{
var items = UO.GetFoundItems();
foreach (var item in items)
{
total += UO.FindCount(item);
}
}
if (Truth(total < 100))
{
UO.Print("Stock below limit: " + Convert.ToString(total));
}
return null;
}
bool Truth(object? value) => value is bool flag ? flag : value is string text ? !string.IsNullOrEmpty(text) : value != null && Convert.ToDouble(value) != 0;
}C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค. ์ ํํ UO ์ด๋ฆ์ ์ฌ์ฉํ์ธ์. ์ซ์ ํ๋๊ทธ๋ 0๊ณผ ๋น๊ตํ๊ณ ๋ฐํ ํ์์ด bool์ผ ๋๋ง bool์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: list (Any)
๊ฒฐ๊ณผ: string / String.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(CompactFindList(values))๋งค๊ฐ๋ณ์: list (Any), container (Any)
๊ฒฐ๊ณผ: string / String.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(CompactFindList(values))๋งค๊ฐ๋ณ์: list (Any), container (Any), distance (Any)
๊ฒฐ๊ณผ: string / String.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(CompactFindList(values))๋งค๊ฐ๋ณ์: list (Any), container (Any), distance (Any), notoriety (Any)
๊ฒฐ๊ณผ: string / String.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(CompactFindList(values))๋งค๊ฐ๋ณ์: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any)
๊ฒฐ๊ณผ: string / String.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(CompactFindList(values))
UO.FindList(list, container, distance, notoriety, nearest, maxZ) โ UO.FindList(Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any), maxZ (Any)
๊ฒฐ๊ณผ: string / String.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(CompactFindList(values))
UO.FindList(list, container, distance, notoriety, nearest, maxZ, includeIgnored) โ UO.FindList(Any,Any,Any,Any,Any,Any,Any)
๋งค๊ฐ๋ณ์: list (Any), container (Any), distance (Any), notoriety (Any), nearest (Any), maxZ (Any), includeIgnored (Any)
๊ฒฐ๊ณผ: string / String.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.Register [FindList]. -
InjectionScript.Runtime.InjectionApiUO.CompactFindList:CompactFindList(values).
ํธ์ถ ์ ์ ์ฅ๋ ์ฒ๋ฆฌ๊ธฐ delegate๋ฅผ ์คํํฉ๋๋ค. ๋ฑ๋ก ๋ฉ์๋๋ API๋ฅผ ๊ตฌ์ฑํ ๋ ์ด delegate๋ฅผ ๋ง๋ญ๋๋ค.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
values => new InjectionValue(CompactFindList(values))