Navigation

Workflow

문서별 정본, 로컬 작업, 근거, 스크립트 수정 순서, 게임 반영과 확인. 파일 이름과 스크립트 모양은 Conventions, 문법과 함정은 Razor.

00 한눈에

flowchart LR
  a("01<br>근거") --> b("02<br>고치기")
  b --> c("03<br>보고")
  c --> d("04<br>반영과 확인")
  d --> e("05<br>문서와 커밋")
절내용
01근거의 우선순위, 참고 사이트, 숫자 인용
02로컬 작업과 스크립트 수정 순서
03변경 보고에 넣을 것
04게임 반영. 리로드와 재시작, 캐시와 종료의 덮어쓰기
05문서와 커밋 규칙의 위치

이 문서에 걸린 질문은 Open items.

00.A 문서별 정본

문서별 정본은 이 표 한 곳. 같은 내용은 다시 쓰지 않고 해당 문서로 링크. 언제나 지킬 규칙과 커밋 규칙은 AGENTS.md.

문서정본인 내용
Workflow문서별 정본, 로컬 작업, 근거의 우선순위와 참고 사이트, 스크립트 수정 순서, 변경 보고, 게임 반영과 확인
Writing문서 작성. 새 문서, frontmatter, 짜임, 문장, Markdown, 언어와 번역본, 흐름도, 끝낼 때 확인
Conventions폴더와 파일 이름, 스크립트 모양과 배너, 변수 접두, serial, 타이머 관용구, 편집기 하이라이팅
RazorOutlands Razor 확장 문법, 확인된 함정, 되는 구문의 선례, 명령문 비용, PvP 명령 제약
Modules모듈 폴더, 레시피와 모듈 형식, 조립 규칙, base와 블록 사이 신호, 옮긴 기록
Overheads알림의 세 경로, [ 대상, 상태 ] 형식, 어휘, hue, 쿨다운 바, 프로필 오버헤드 표
PvP템플릿과 무관한 PvP 규칙과 숫자. Heat of Battle, 명중률, Hamstring, TK, 주문 싸움, 소환수
Combat방어구와 마나 재생, 근접 반격력, 붕대, 스탯 포션, Parrying, Resisting Spells, Tracking
PvP Loop공통 자기관리 루프 combat/pvp의 입력 규칙, 설정, 골격, 타이머, 무기 선택, 상태
Hotkeys키 배치, 주문 데미지 메모
Item list아이템 이름, graphic id, hue
Barding바드 세 스킬과 송의 쿨, 효과, 코덱스, Defensive Barding, 프로보 후보 입력
NecromancyVengeful Spirit 소환, 언데드, Unholy Symbol 경제
MageryMagery 프록과 시전 시간
Bard NecroBard Necro의 캐릭터, 코덱스 배분, 소환수 선택, PvP 판단
Bard Necro Enhancedbard-necro-enhanced 루프의 설계, 자원, 마나 예산, 설계 결정, 소환수 블록
Lumberjack PvP벌목과 PvP 템플릿의 스킬, 스탯, 도끼 선택, 마나 예산, 교전 분기, 구현 요구사항, 공통 pvp 설정
Lumberjack Enhancedlumberjack-enhanced 루프의 실행 흐름, 채집 근거, 기본값과 상태, 실행 준비
Archery아처리 무기와 사격 간격, 자세, 피니셔, 무기 능력, PvP에서 빠지는 것
Bard ArcherBard Archer의 스킬과 코덱스, 갑옷과 마나, 부활, bard 프로필
Bard Archer Enhancedbard-archer-enhanced 루프의 블록 순서, 여러 마리 판정, Virtuoso 유지
Open items사용자에게 물을 것. 뜨지 않는 바, 규칙과 어긋난 줄, 출처 없는 숫자, 인게임 확인 목록
근거

01 근거

01.A 우선순위

규칙이 다르면 앞의 것.

  1. 사용자 요청
  2. AGENTS.md와 content/의 규칙 문서
  3. 같은 폴더의 기존 스크립트
  4. 공식 위키

01.B 참고 사이트

용도링크
Outlands Razor 문법. 확장 명령 포함, 가장 먼저https://wiki.uooutlands.com/Razor_Scripting
게임 메커니즘, 아이템, 몹https://wiki.uooutlands.com/
Razor CE 기본 문법. Outlands Razor의 포크 원본https://www.razorce.com/guide/
공개 스크립트 모음. Jaseowns 스크립트 포함https://outlands.uorazorscripts.com/
Storage Shelf 로드아웃 스크립트 생성기https://www.outlandsbutler.com/
공식 포럼https://forums.uooutlands.com/

문법이 애매하면 추측 대신 위키. Outlands Razor에는 Razor CE에 없는 명령이 많음(Razor).

01.C 숫자는 인용

공식, 쿨다운, 확률 같은 게임 숫자는 추측 금지. 먼저 아래 문서에서 찾음.

숫자위치
바드, 네크로, 소환수Bard Necro
PvP 규칙PvP
아이템 graphic id, hueItem list. 상점 가격은 script/loot/stock-vendor.razor 맨 위가 정본
주문 데미지 메모Hotkeys 06절

문서에 없으면 위키를 읽고 해당 문서에 추가.

스크립트

02 스크립트 고치기

02.A 로컬 작업

설치 요건과 문서 사이트 실행은 Writing 01절.

명령역할
pnpm build모듈과 레시피로 스크립트 조립. 형식과 조립 규칙은 Modules 07절
pnpm check스크립트, 조립 결과, 설정 타입과 문서 링크 검사
pnpm testutil/의 PvP 시뮬레이터와 문서 검사 테스트 실행

02.B 수정 순서

  1. 대상 스크립트를 끝까지 읽음. 메인 루프 하나에 타이머, 타겟 캐시, 후속 시전이 얽힘 → 한 분기만 고치면 다른 분기가 깨짐
  2. Razor 03절 확인된 함정 표. 새 패턴은 같은 문서 04절 선례부터
  3. 요청 범위만. 저장소에 근거 없는 패턴 금지
  4. util/check.sh <파일>: if와 endif, while과 endwhile, for와 endfor 짝, 값 없이 쓴 접두 변수 검사
  5. 새 전투 루프는 script/README.md 전투 루프 표에 추가

03 변경 보고

보고에 꼭 넣을 것.

04 게임에 반영하고 확인하기

04.A 스크립트 캐시와 리로드

Razor는 스크립트 본문을 메모리에 캐시. 반영 방법은 수정 위치와 실행 방법에 따라 다름.

flowchart LR
  file{"외부 편집기로<br>파일을 고쳤나"} -- 예 --> hotkey{"핫키로 돌리나"} -- 예 --> restart("클라이언트를 껐다 켠다<br>리로드로는 안 된다")
  file -- 아니요 --> owned("Razor 편집기에 붙여넣었다<br>핫키도 새 본문을 쓴다")
  hotkey -- 아니요 --> reload("Reload all scripts 뒤<br>Play 버튼으로 돌린다")

리로드마다 Hotkeys 목록에 Play Script: ... (not assigned) 한 줄씩 추가. 메모리에만, 파일에는 안 남음.

파일을 고쳤는데 오류가 같은 줄 번호를 계속 가리키면 캐시 의심. 줄을 지웠다면 아래 줄 번호도 당겨져야 정상. Reload all scripts로 안 풀리면 클라이언트 완전 재시작.

04.B 캐시가 파일을 되돌림

04.C config는 종료 시 덮어씀

config/는 게임 종료 상태에서만 수정. 종료 시 클라이언트가 설정 파일을 통째로 덮어씀. Razor 프로필 xml, ClassicUO의 cooldowns.xml, macros.xml 모두 해당. 켜 둔 채 고치면 종료 때 조용히 사라짐(실제로 한 번 날아감).

문서와 커밋

05 문서와 커밋