KO CSharp IDE - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki

ะฃะบั€ะฐั—ะฝััŒะบะฐ ยท ะ ัƒััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซ”ไธญๆ–‡ ยท ๆ—ฅๆœฌ่ชž ยท ํ•œ๊ตญ์–ด

C# Scripts IDE

Monaco ํŽธ์ง‘๊ธฐ๋Š” Eclipse Theia ์…ธ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. Roslyn์€ ์ปดํŒŒ์ผ ๊ฒ€์‚ฌ, ํ˜„์žฌ ์กฐ๊ฐ ๋Œ€์ฒด ํžŒํŠธ, ํ˜ธ๋ฒ„ ์œ ํ˜• ์ •๋ณด, ์ •์˜๋กœ ์ด๋™, ํŒŒ์ผ ๊ตฌ์กฐ ๋ฐ ์˜ค๋ฒ„๋กœ๋“œ ์„œ๋ช…์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ƒ์„ฑ, ์—ด๊ธฐ ๋ฐ ์ €์žฅ

ํ˜•์‹ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•
.csx C#-ํ˜„์žฌ ๊ฒŒ์ž„ ์„ธ์…˜์˜ ์‹œ๋‚˜๋ฆฌ์˜ค. UO, Args, Cancellation, WaitAsync ๋ฐ Checkpoint๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
.cs ๋„ค์ž„์ŠคํŽ˜์ด์Šค์™€ ํด๋ž˜์Šค๊ฐ€ ํฌํ•จ๋œ ์ผ๋ฐ˜์ ์ธ ์™„์ „ํ•œ C# ํ”„๋กœ๊ทธ๋žจ: ICSharpScript, Main ๋˜๋Š” ์ตœ์ƒ์œ„ ์—ฐ์‚ฐ์ž.
.csproj NuGet, ProjectReference ๋ฐ ์ผ๋ฐ˜ ๋นŒ๋“œ/์‹คํ–‰์„ ์‚ฌ์šฉํ•˜์—ฌ SDK ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
.sln, .slnx ์ž‘์—… ๊ณต๊ฐ„ ํ…์ŠคํŠธ ํŒŒ์ผ: ์—ด๊ธฐ ๋ฐ ์ €์žฅ. ์‹คํ–‰ํ•  ๋…๋ฆฝํ˜• ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
.dll Reference/HintPath ํ”„๋กœ์ ํŠธ ๋˜๋Š” #r ์Šคํฌ๋ฆฝํŠธ ์ง€์‹œ๋ฌธ์„ ํ†ตํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ. DLL๋Š” ์Šคํฌ๋ฆฝํŠธ๋กœ ์‹คํ–‰๋˜์ง€ ์•Š์œผ๋ฉฐ C#-ํ…์ŠคํŠธ๋กœ ์ €์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๊ธฐํƒ€ ํ…์ŠคํŠธ ํ˜•์‹ .csx๋กœ ์ด๋ฆ„์„ ๋ฐ”๊พธ์ง€ ์•Š๊ณ ๋„ ์›๋ž˜ ํ™•์žฅ๋ช…์œผ๋กœ ๋งŒ๋“ค๊ณ  ์—ด๊ณ  ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
๋ฐ”์ด๋„ˆ๋ฆฌ ํ˜•์‹ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ณด๊ธฐ ๋˜๋Š” ๊ด€๋ จ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ž…๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ C#-ํ…์ŠคํŠธ๋กœ ๋””์ฝ”๋”ฉํ•˜๊ฑฐ๋‚˜ ์ €์žฅํ•˜์ง€ ๋งˆ์„ธ์š”.

์Šคํฌ๋ฆฝํŠธ ์ž‘์—…

  • ์„ ํƒํ•œ ํ˜•์‹์˜ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ธฐ์กด ํŒŒ์ผ์„ ์—ฝ๋‹ˆ๋‹ค.
  • Validate์—๋Š” ์ปดํŒŒ์ผ ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • Run๋Š” ํ˜„์žฌ ์„ธ์…˜์—์„œ ์ง€์›๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ ๋˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • Pause/Resume๋Š” ํ˜„์žฌ ์‹คํ–‰์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. Stop ์ทจ์†Œ๋ฅผ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค.
  • UO. ๋’ค์˜ ํˆดํŒ์€ ๊ฒŒ์ž„ ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ฃผ๊ณ , ๋ณ€์ˆ˜ ๋’ค๋Š” C# ์œ ํ˜•์˜ ๋ฉค๋ฒ„์ž…๋‹ˆ๋‹ค. ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๊ฐ€๋ฉด ์œ ํ˜• ๋ฐ ์„œ๋ช…์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ •์˜๋กœ ์ด๋™ํ•˜๋ฉด ํ•ด๋‹น ์ฝ”๋“œ ์œ„์น˜๊ฐ€ ์—ด๋ฆฝ๋‹ˆ๋‹ค.

์†Œ์Šค ์ฝ”๋“œ ์ค„๋กœ ๋””๋ฒ„๊น…

.csx ๋ฐ ์ผ๋ฐ˜ .cs์˜ ๊ฒฝ์šฐ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ฒซ ๋ฒˆ์งธ ๋ผ์ธ์—์„œ ์ค‘์ง€, ํ˜„์žฌ ํŒŒ์ผ ๋ฐ ๋ผ์ธ, ์ค‘๋‹จ์ , Pause/Continue, ๋‹ค์Œ ๋ผ์ธ์œผ๋กœ ์ด๋™(Step) ๋ฐ ์ทจ์†Œ(Stop)๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์ผ์‹œ ์ค‘์ง€ ๋ฐ ์ค‘์ง€๋Š” ์ œ์–ด๋œ ์‹คํ–‰ ์ง€์ ๊ณผ ์ƒํ˜ธ ์ž‘์šฉํ•ฉ๋‹ˆ๋‹ค. ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ž„์˜ ์ฐจ๋‹จ โ€‹โ€‹ํ˜ธ์ถœ์—๋Š” ๊ธฐ๋ณธ ์ทจ์†Œ ์ง€์›์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ž„์˜์˜ ํƒ€์‚ฌ ๋ฉ”์„œ๋“œ๋ฅผ ์ž…๋ ฅ ๋ฐ ์ข…๋ฃŒํ•˜๊ณ , ์ง€์—ญ ๋ณ€์ˆ˜๋ฅผ ๊ด€์ฐฐํ•˜๊ณ , ์ž„์˜์˜ ํ‘œํ˜„์‹์„ ํ‰๊ฐ€ํ•˜๋ ค๋ฉด ๋ณ„๋„์˜ CLR ๋””๋ฒ„๊ฑฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฐ€๋Šฅ์„ฑ์€ ์—ฌ๊ธฐ์„œ ๊ตฌํ˜„๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•œ ์ค„์”ฉ Step๋Š” ์™„์ „ํ•œ StepInto/StepOut๋กœ ๊ฐ„์ฃผ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘๊ธฐ ํŒŒ์ผ๊ณผ ์ž๋™ ์‹คํ–‰ ์„ธํŠธ๋Š” ๋ณ„๋„๋กœ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์— ๊ด€๋ฆฌ์ž ํ”„๋กœํ•„์„ ์‹œ์ž‘ํ•  ๋•Œ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ด ํ”„๋กœํ•„์˜ ์Šคํฌ๋ฆฝํŠธ ์„ธํŠธ์— ์ง€์›๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ €์žฅํ•˜์„ธ์š”.

ํ”„๋กœ๊ทธ๋žจ ๊ตฌ์กฐ ยท ์„ค๋ช…์„œ C# ยท ์™„์ „ ์ฐธ๊ณ  C# ยท ๊ฒŒ์ž„ ๋ช…๋ น์–ด

์ผ๋ฐ˜ .cs ๋˜๋Š” .csproj ์ฝ”๋“œ์—์„œ๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ์— ICSharpScript๊ฐ€ ์žˆ์–ด๋„ Main์ด๋‚˜ ์ตœ์ƒ์œ„ ๋ฌธ์ด ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ์ง„์ž…์ ์ด ์—†์œผ๋ฉด public์ด๊ณ  ์ถ”์ƒ ํ˜•์‹์ด ์•„๋‹ˆ๋ฉฐ public ๋งค๊ฐœ ๋ณ€์ˆ˜ ์—†๋Š” ์ƒ์„ฑ์ž๊ฐ€ ์žˆ๋Š” ICSharpScript ํด๋ž˜์Šค๋ฅผ ํ•˜๋‚˜ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ์ฝ”๋“œ๋Š” ์ „๋‹ฌ๋ฐ›์€ ์ปจํ…์ŠคํŠธ๋‚˜ CSharpScriptContext.Current๋ฅผ ํ†ตํ•ด ๊ฒŒ์ž„ API๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ ์„ ์–ธ๋˜์ง€ ์•Š์€ ์ „์—ญ UO ๋ณ€์ˆ˜๋ฅผ ์ž๋™์œผ๋กœ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Client์™€ Full_Client๋Š” C# ์Šคํฌ๋ฆฝํŠธ ๋ฐ AutoLoad๋ฅผ ์ง€์›ํ•˜๋ฉฐ Manager์™€ ๊ฐ™์€ ๊ฒŒ์ž„ ์„ธ์…˜์„ ๊ณต์œ ํ•ฉ๋‹ˆ๋‹ค. ๊ฒŒ์ž„ ์ฐฝ์„ ๋‹ซ์•˜๋‹ค๊ฐ€ ๋‹ค์‹œ ์—ด์–ด๋„ ์—ฐ๊ฒฐ๊ณผ ์‹คํ–‰ ์ค‘์ธ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋‚ด์žฅ C# Scripts IDE๋Š” Full_Client์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ Client์—์„œ๋Š” Manager์™€ Macros๋กœ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  Bad Newbie์—์„œ C# ๋ฐ AutoLoad๋ฅผ ์ผœ๊ฑฐ๋‚˜ ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Info / Hide / Mount / Global

๋ช…๋ น ๋ชจ๋“œ์™€ ์˜คํ”„๋ผ์ธ IDE

Manager์—์„œ ์บ๋ฆญํ„ฐ ํ‘œ ์•„๋ž˜์˜ ์Šคํฌ๋ฆฝํŠธ ํƒญ์„ ์—ด๋ฉด ๋””๋ฒ„๊น… ํ™”๋ฉด์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์‹คํ–‰๋œ ๋„ค์ดํ‹ฐ๋ธŒ UO ๋ช…๋ น, ์ธ์ˆ˜, ๊ฒฐ๊ณผ ๋ฐ ์˜ค๋ฅ˜๋ฅผ ๋ณด์—ฌ ์ฃผ๋ฉฐ ํ–‰์„ ์„ ํƒํ•˜๋ฉด ์ธ์ˆ˜๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํŒจ๋„์„ ์—ด๋ฉด ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜์ง€ ์•Š๊ณ  ๊ด€์ฐฐ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. UO.Wait ๋“ฑ C#์—์„œ ์ง์ ‘ ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…์€ ๋ชฉ๋ก์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ ์ถœ๋ ฅ์€ ๋ณ„๋„๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.