사용자:유한림

리버티게임, 모두가 만들어가는 자유로운 게임
백괴게임>유한림님의 2017년 12월 3일 (일) 12:38 판

한림국 세계관 구성

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.




{{Linkget}}의 이용

게임을 제작하다 보면 자신이 생각했던 것을 쉽게 구현하지 못하는 경우가 허다할 것입니다. 그래서 미디어위키에서 제공하는 여러 가지 확장 기능추가 기능들을 사용해서 게임을 꾸밀수도 있습니다.

{{Linkget}}은 매개변수를 사용할 수 있게 해 주는 틀입니다. 몇몇 게임을 플레이 하다보면 ?offset=숫자 같은것들이 주소에 붙어있는것을 확인할 수 있습니다. 이런 건 {{CGI}}를 이용한 게임으로(참고로 구형입니다), 새로 만들어진 {{Linkget}}의 기능은 이와 유사합니다.

{{#urlget:var}} 라고 바로 쓰게 되면 주소에 쓰여 있는 var= 뒤의 값을 바로 출력합니다. 주소에 그런 게 없다면, 아무 것도 출력하지 않습니다.
{{Linkget|링크에 나타날 텍스트|get=var=값}} 라고 바로 쓰게 되면 현재 페이지에 var의 새로운 값을 넘겨줍니다.
{{Linkget|넘길 페이지|링크에 나타날 텍스트|get=var={{#urlget:var}}}} 라고 바로 쓰게 되면 현재 var의 값을 다른 페이지로 넘겨줍니다.
지금까지 계속 변수 이름으로 var라는 것을 사용해 왔는데요, var 대신 다른 문자열을 택해도 좋습니다. 여러 변수값을 넘겨주려면 get=변수1=값1&변수2=값2&...과 같이 쓸 수 있습니다. (여기서 변수1, 변수2, ...는 아까 썼던 var와 같은 것입니다.)

특수 함수

#ifanon, #ifblocked, #ifsysop

사용자의 여부와 관련된 특수 함수로 #ifanon은 익명 (IP 사용자)의 여부를 알려주며, #ifblocked는 차단 당했는지의 여부를, #ifsysop는 관리자의 여부를 알려줍이다.

{{#ifanon: 참 | 거짓}}

여기서 익명일 때에는 참을, 아닐 때에는 거짓을 출력합니다.

너가 익명인가? 참

이 때 #ifanon 뿐만 아니라 #ifblocked와 #ifsysop도 사용법은 같습니다.

#ifingroup

#ifingroup은 소속된 사용자 권한 그룹의 여부를 알려줍니다.

{{#ifingroup: 그룹 | 구성원일 경우 | 구성원이 아닐 경우}}

이 때 그룹에는 autoconfirmed자동 인증된 사용자, sysop관리자, user사용자, rollback롤백을 입력할 수 있습니다.

아래는 예제입니다.

너가 자동으로 인증된 사용자인가? {{#ifingroup:autoconfirmed|참|거짓}}

아래는 결과입니다.

너가 자동으로 인증된 사용자인가?  거짓

#time

{{ #time:  형식 }}
{{ #time:  형식 | 시간 }}

시간을 출력합니다.

코드 설명 예시 현재
Y 네 자리 연도 예: 2006 2024
y 두 자리 연도 00~99,
예: 06=2006.
24
L 윤년일 경우 1이면 윤년, 0이면 평년 1
n 현재 달(앞에 0이 붙지 않음) 1~12 12
m 현재 달(앞에 0이 붙음) 01~12 12
M 줄인 달 이름 1~12 12
F 달 이름 1월~12월 12월
t 각 달에 있는 날짜 수 28~31 31
j 현재 날(앞에 0이 붙지 않음) 1~31 4
d 현재 날(앞에 0이 붙음) 01~31 04
z 그 해부터 지난 날수(0부터 시작함) 0~364, 윤년일 경우 365까지 338
D 줄인 요일 이름 월~일
l 요일 이름 월요일~일요일 수요일
w 요일 숫자(미국식) 0(일요일)~6(토요일) 3
N 요일 숫자(ISO 8601 방식). 1(월요일)~7(일요일) 3
W ISO 8601 주 숫자(ISO 연도는 월요일부터 일요일까지 완전히 있어야 한 주로 치고, 첫 번째 주는 늘 1월 4일이나 역년 목요일을 포함한다.). 1 to 52 or 53 (depends on year) 49
a am(같은 날 01:00:00부터 12:59:59까지)이나 pm을 소문자로 나타낸다(시간 단위를 12시간제로 표시할 때 쓴다.). am이나 pm pm
A a와 같지만, 대문자로 나타낸다. AM이나 PM PM
g 시간을 12시간 단위로 표기하되, 앞에 0을 붙이지 않음(1, 2자리이고 am/pm 또는 AM/PM과 같이 쓴다.). 1~12 7
h 시간을 12시간 단위로 표기하되, 앞에 0을 붙임(2자리이고 am/pm 또는 AM/PM과 같이 쓴다.). 01~12 07
G 시간을 24시간 단위로 표기하되, 앞에 0을 붙이지 않음(1자리 또는 2자리). 0~23 19
H 시간을 24시간 단위로 표기하되, 앞에 0을 붙임(2자리). 00~23 19
i 분(2자리). 00~59 11
s 초(2자리). 00~59 46
U 1970년 1월 1일 00:00:00 UTC부터 흐른 초 수. 0~2147483647 1733339506
c ISO 8601 형식을 따른 날짜로, {{#time:Y-m-dTH:m:s{{#time:+H:m|+0 hours}}}}와 같다. fixed length string 2024-12-04T19:11:46+00:00
r RFC 2822 형식을 따른 날짜로, {{#time:D, j M Y H:m:s {{#time:+H:m|+0 hours}}}}와 같다. variable length string Wed, 04 Dec 2024 19:11:46 +0000

예제

  • {{ #time: Y년 M월 j일 l | 20070304 }} → "2007년 3월 4일 일요일"
  • {{ #time: Y년 M월 j일 l | 2007-3-4 }} → "2007년 3월 4일 일요일"
  • {{ #time: Y년 M월 j일 l | 4 March 2007 }} → "2007년 3월 4일 일요일"
  • {{ #time: Y년 M월 j일 l | -32 days }} → "2024년 11월 2일 토요일" (32일 전)
  • {{ #time: H:i | +9 hours }} → "04:11" (UTC보다 9시간 빠름)
  • {{ #time: H:i | 8:15 +9 hours }} → "17:15"
  • {{ #time: Y/m | -17 months }} → "2023/07" (17개월 전)
  • {{ #time: [[Y년]] [[M월 j일]] l | 4 March 2007 }} → "2007년 3월 4일 일요일"

#var , #vardefine

#var 과 #vardefine은 변수를 지정하고 사용할 수 있는 함수로 다음과 같이 사용합니다.

{{#vardefine: 변수이름 | 변수값 }}
{{#var: 변수이름 }}

이렇게 사용할 수 있습니다.

{{#vardefine:sky|blue}}
Sky is {{#var:sky}}

아래는 결과값입니다.

Sky is blue

#len

#len는 문자열의 개수를 새어주는 함수로 다음과 같이 사용합니다.

{{#len: 문자열 }}

아래는 예제입니다.

"Nu is babo"의 길이는 {{#len:Nu is babo}}입니다.

아래는 결과값입니다.

"Nu is babo"의 길이는 10입니다.

#pos

#pos는 문자열에 어떤 문자를 찾아서 맨처음으로 찾아진 문자가 어디에 위치해 있는지 확인해주는 함수로 다음과 같이 사용합니다.

{{#pos: 문자열 | 찾을 문자 }}

아래는 예제입니다.

"Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다."에 "GNU"의 위치는 {{#pos:Nu와 GNU가 싸우면 GNU가 이긴다.|GNU}}입니다.

아래는 결과값입니다.

"Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다."에 "GNU"의 위치는 4입니다.

#rpos

#rpos는 문자열에 어떤 문자를 찾아서 마지막으로 찾아진 문자가 어디에 위치해 있는지 확인해주는 함수로 다음과 같이 사용합니다.

{{#rpos: 문자열 | 찾을 문자 }}

아래는 예제입니다.

"Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다."에 "GNU"의 위치는 {{#rpos:Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다.|GNU}}입니다.

아래는 결과값입니다.

"Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다."에 "GNU"의 위치는 28입니다.

#replace

#replace는 문자열에서 특정 단어를 찾아서 다른 단어로 치환해주는 함수로 다음과 같이 사용합니다.

{{#replace:문자열|특정 단어|다른단어}}

아래는 예제입니다.

"Nu는 바보다" 에서 Nu를 GNU로 바꾸면 "{{#replace:Nu는 바보다|Nu|GNU}}"입니다.

아래는 결과값입니다.

"Nu는 바보다" 에서 Nu를 GNU로 바꾸면 "GNU는 바보다"입니다.

#rand

임의의 숫자를 출력해주는 기능을 갖고 있습니다. {{#rand:a|b}}로 입력하시면 a에서 b사이에 있는 임의의 정수를 출력합니다.

예제 {{#rand:1|100}}
결과 100}}

#titleparts

  1. titleparts는 페이지 제목을 조금 더 정교하게 자르기 위한 것입니다. Magic Words 중 하나인 {{PAGENAME}}류와 함께 쓰면 더욱 효과적입니다.
{{#titleparts: 페이지명 | 반환할 구역 수 | 반환할 첫번째 구역 }}

구역이라는 것은 상위/하위 문서 하나 단위를 의미합니다. 예제를 보겠습니다.

{{#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다|2}}

이와 같이 하면 다음과 같이 출력됩니다. 두번째 변수가 없으면 처음부터 앞에 쓴 숫자만큼 잘라버립니다.

백괴책:낚시학개론/둘째낚시

다른 예제를 보겠습니다.

{{#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다|3|2}}

이는 3개만큼 자르되 2번째 칸부터 시작한다는 뜻입니다. 첫번째 변수(빨간 글씨)를 생략할 시는 기본값이 1로 지정됩니다. 따라서 결과는 다음과 같습니다.

둘째낚시/셋째낚시/넷째낚시방

#titleparts는 음수도 가능합니다.

{{#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다|-1}}

음수의 경우 뒤쪽부터 셉니다. 따라서 이렇게 입력하였을 때의 결과는 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방이 됩니다. 같은 원리로, 첫째 변수가 아닌 둘째 변수가 -1일 시에는 마지막이다가 나옵니다.

고급 내부 링크

바깥 링크를 거는 방법을 응용해서 고급 내부 링크를 걸 수 있습니다. 이때 fullurl과 urlencode를 사용하게 됩니다. fullurl은 현재 위키의 주소를 나타내며 urlencode는 문서 제목을 입력할 때 URL 주소에 맞게 글자를 변환(인코딩)을 해줍니다. 다만 {{urlencode:{{FULLPAGENAME}}}}와 같은 경우에는 {{FULLPAGENAMEE}} 처럼 ‘E’를 덧붙임으로서 문서를 URL 주소에 맞게 변환해줍니다.

문서를 보여줄 때

문서를 보여줄 때에는 다음과 같이 링크를 걸면 됩니다만 보여줄 내용을 태그로 글자를 꾸미지 않는 이상 쓸 필요는 없습니다.

[{{fullurl:{{urlencode:문서 제목}}|offset=오프셋}} 보여줄 내용]
  • 문서 제목 : 링크할 문서 제목을 입력합니다.
  • offset : 오프셋 숫자를 입력합니다. {{CGI}} 또는 {{Get}}에서 사용하는 변수로, 해당 숫자를 CGI 틀에 보여줄 수 있습니다.
  • 보여줄 내용 : 링크에 보여줄 내용을 입력합니다.
  • 오프셋을 사용하지 않을 때 보여줄 내용에 태그로 글자를 꾸미려면 다음과 같은 방법으로 걸 것을 권합니다.
    • [[문서 제목|보여줄 내용]]
  • 보여줄 내용을 태그로 글자를 꾸미지 않고 그냥 넣을 때에는 고급 내부 링크를 거는 대신에 다음과 같은 방법으로 걸 것을 권합니다.

편집을 할 때

편집을 할 때에는 다음과 같이 링크를 걸면 됩니다.

[{{fullurl:{{urlencode:문서 제목}}|action=edit&editintro={{urlencode:편집 윗부분에 보여줄 문서 제목}}&summary={{urlencode:편집 요약}}&minor=사소한 편집&offset=오프셋}} 보여줄 내용]

여기서 editintro, summary, minor, offset 변수는 생략할 수 있으며 나머지는 반드시 입력해야 올바른 링크가 됩니다.

  • 문서 제목 : 링크할 문서 제목을 입력합니다.
  • editintro : 편집 윗부분에 보여줄 문서 제목을 입력합니다.
  • summary : 편집 요약을 입력할 수 있습니다.
  • minor : 사소한 편집 여부를 체크합니다. 1일 때는 사소한 편집에 체크가 되며, 0일 때는 체크가 되지 않습니다.
  • offset : 오프셋 숫자를 입력합니다. {{CGI}} 또는 {{Get}}에서 사용하는 변수로, 해당 숫자를 CGI 틀에 보여줄 수 있습니다.
  • 보여줄 내용 : 링크에 보여줄 내용을 입력합니다.