KO API UO Str - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
ํ ยท C# ยท IDE ยท UO API ยท AโZ ยท ์ ยท ์ธ์ด
int UO.Str();์บ๋ฆญํฐ์ ํ์ฌ ํ(Strength)์ ์ฝ์ต๋๋ค.
๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
int โ ํด๋ผ์ด์ธํธ ๋ชจ๋ธ์ ํ์ฌ ํต๊ณ ํฌ์ธํธ, 0..65535; ๋ฐฑ๋ถ์จ, ID, ์คํฌ, ์ ๊ธ ๋ชจ๋ ๋๋ bool๊ฐ ์๋๋๋ค. 0๋ ๋๋ฝ/์ญ์ ๋ ๋ฌธ์ ๋๋ ์ ๊ทผํ ์ ์๋ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๊ธฐ๋ ํฉ๋๋ค. == true๊ฐ ์๋ ์์น ์๊ตฌ ์ฌํญ๊ณผ ๋น๊ตํ์ญ์์ค. ์ด๋ ์คํ ํ๋๋ ์์ ์์ด ๋ณด์ฅ๋ ๊ธฐ๋ณธ ๊ฐ์ด ์๋๋๋ค.
- ์ด ๋ช ๋ น์ ์ธ์๋ฅผ ์ฌ์ฉํ์ง ์์ต๋๋ค. ์์ ์ ํํ ์๋ช ์ ์ฌ์ฉํ์ธ์.
- Player๋ฅผ ์ฝ์ต๋๋ค.Strength Player๊ฐ ์กด์ฌํ๊ณ ํ๊ดด๋์ง ์์ ๊ฒฝ์ฐ; ๊ทธ๋ ์ง ์์ผ๋ฉด 0. ์กด์ฌํ๋ ์ฃฝ์ ์บ๋ฆญํฐ๋ ์ ๊ฑฐ๋ ๊ฐ์ฒด๊ฐ ์๋๋๋ค. ์คํ ์ HP, ๋ง๋, ์ฒด๋ ฅ์ผ๋ก ๊ณ์ฐ๋์ง ์์ต๋๋ค.
- GetStr/GetInt/GetDex ObjID๋ฅผ ์๋ฝํฉ๋๋ค. PlayerMobile ๋ฐ์ดํฐ๋ self์์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ค๋ฅธ serial - 0์ ๊ฒฝ์ฐ, ๋ก๋๋ mobile์ ๊ฒฝ์ฐ์๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค. ๋ค๋ฅธ ์ฌ๋์ ํน์ฑ์ ๋์ฒด๋๊ฑฐ๋ ์ถ์ธก๋์ง ์์ต๋๋ค.
- Invoke๋ ์คํฌ๋ฆฝํธ๋ก ๋๊ธฐ๋ฅผ ์ทจ์ํ๋ ๊ธฐ๋ฅ์ ํตํด ๊ฒ์ ์คํธ๋ฆผ์์ ์ฝ๊ธฐ๋ฅผ ์ํํฉ๋๋ค. ์ํ๋ฅผ ์ฟผ๋ฆฌํ์ง ์์ผ๋ฉฐ, ๋์์ ์ด์ง ์์ผ๋ฉฐ, ํจํท์ ๋ณด๋ด์ง ์์ผ๋ฉฐ, ํน์ฑ์ ๋ณ๊ฒฝํ์ง ์์ผ๋ฉฐ ์ง์ฐ์ ์ถ๊ฐํ์ง ์์ต๋๋ค.
- ํธ์ถํ ๋๋ง๋ค ๋ก์ปฌ ๋ฐ์ดํฐ๋ฅผ ์๋ก ์ฝ์ต๋๋ค. ๋ณ์๋ ์ค๋ ์ท์ ์ ์ฅํฉ๋๋ค. ๊ฐ๋ณ ์ฝ๊ธฐ๋ ๋ค๋ฅธ ์๋ฒ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ ์ ์์ต๋๋ค. 0์ด ์๋ ๊ฒฐ๊ณผ๋ ์ฐ๊ฒฐ์ ํ ์คํธํ์ง ์์ต๋๋ค. 0์ ๊ฐ์ผ ์๋ ์๊ณ ๋ฐ์ดํฐ๊ฐ ์์ ์๋ ์์ต๋๋ค.
- ์ ํํ C# ์ด๋ฆ์ ์ฌ์ฉํ์ธ์:
UO.Str(),UO.Strength(),UO.GetStr()๋๋UO.GetStrength(). C#์ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถํฉ๋๋ค.
๊ฐ ์์ ๋ ๋ณ๋์ ํ์ผ .csx๋ก ์ ์ฅํ๊ณ IDE์์ ์คํํ ์ ์์ต๋๋ค. UO ๊ฐ์ฒด์ ๋๊ธฐ ๊ธฐ๋ฅ์ ํ์ฌ ๊ฒ์ ์ธ์
์ ํธ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ฐ๋ชจ serial ์ด๋ฆ, ์ขํ, ์ฃผ์๋ฅผ ์์ ์ ๊ฒ์ผ๋ก ๋ฐ๊พธ์ธ์.
์ด ์ฝ๋๋ฅผ ๋ณ๋์ .csx ํ์ผ๋ก ์คํํ์ธ์. ์ธ์๋ ํธ์ถ์ ์ง์ ํ์๋ฉ๋๋ค. ์์ ์ ์ด๋ฆ, serial, ์ฃผ์๋ฅผ ์์ ์ ๊ฐ์ผ๋ก ๋ฐ๊พธ์ธ์.
ํ ๋ฒ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์ ๋์ ํ์ํฉ๋๋ค. ์ซ์๋ฅผ bool๋ก ๋ณํํ์ง ์์ผ๋ฉฐ, ๋ฐฐ์ด์ด๋ฉด ์์ ์๋ฅผ ํ์ํฉ๋๋ค.
var result = UO.Str();
UO.Print("Str: " + Convert.ToString(result));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- value๋ ์ซ์ ๊ฒฐ๊ณผ๋ฅผ ์ ์ฅํฉ๋๋ค. ๋ณํํฉ๋๋ค.ToString ์ก์ง์ฉ์ผ๋ก ํฌ๋งทํฉ๋๋ค. ๋ ผ์์ด๋ ์บ๋ฆญํฐ ํ๋์ด ์์ต๋๋ค.
var value = UO.Str();
UO.Print("Strength: " + Convert.ToString(value));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ๋ณ๋์ 1000 ms ์ ํ; UO.Wait ์์์ ์ถ๊ฐ๋์์ต๋๋ค. Change=after-before๋ ์์, 0 ๋๋ ์์์ผ ์ ์์ต๋๋ค. ๊ทธ ์์ฒด๋ก๋ ๋ชจ๋ ์ค๊ฐ ์ ๋ฐ์ดํธ์ ์๋ ์ข ๋ฃ๋ฅผ ๊ตฌ๋ถํ์ง ์์ต๋๋ค.
return await RunScenarioAsync();
async Task<object?> RunScenarioAsync()
{
var before = UO.Str();
await Delay(1000);
var after = UO.Str();
var change = after - before;
UO.Print("Change: " + Convert.ToString(change));
return null;
}
Task Delay(object? milliseconds) => WaitAsync(checked((int)Convert.ToDouble(milliseconds)));๋งค๊ฐ๋ณ์์ ์คํ ํ๋ฆ:
- ์ต์=80๋ ํด๋ผ์ด์ธํธ ์ ํ์ด ์๋ ์๊ตฌ ์ฌํญ์ ์์ ๋๋ค. AttributeAtLeast(์ต์)๋ ๋๋ฝ๋ ๋ฌธ์๋ฅผ ๊ฑฐ๋ถํ๊ณ ํน์ฑ์ ํ ๋ฒ ์ฝ๊ณ bool๋ฅผ ๋ฐํํฉ๋๋ค: true ๋๋ >= ์ต์์ธ ๊ฒฝ์ฐ false. ๋ ผ๋ฆฌ์ ์๋ฏธ๋ ํน์ฑ ์์ฒด๊ฐ ์๋ ๋น๊ต์ ์ํด ๋ถ์ฌ๋ฉ๋๋ค.
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()
{
if (Truth(Truth(AttributeAtLeast(80)) == true))
{
UO.Print("Requirement met");
}
else
{
UO.Print("Requirement not met or no player");
}
return null;
}
dynamic AttributeAtLeast(dynamic minimum)
{
if (Truth(UO.Self() == 0))
{
return false;
}
var value = UO.Str();
return value >= minimum;
}
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์ ์ฌ์ฉํ์ธ์.
๋งค๊ฐ๋ณ์: ๋งค๊ฐ๋ณ์๊ฐ ์์ต๋๋ค.
๊ฒฐ๊ณผ: int / Integer.
ํธ์ถ ์:
-
InjectionScript.Runtime.InjectionApiUO.ExecuteClientApiCompatibility. -
ClassicUO.Game.Managers.ClassicUOInjectionApiBridge.Strength:bridge.Strength.
๋ด๋ถ ๊ตฌํ ์ฝ๋์ด๋ฉฐ ๋ ๋ฆฝ ์คํฌ๋ฆฝํธ๋ก ์คํํ ์ ์์ต๋๋ค.
case "str": return new InjectionValue(bridge.Strength);