도움말:게임 만들기

백괴게임, 너를 즐기는 게임
이동: 둘러보기, 검색

게임 목록 길라잡이 게임 만들기 오락실


단축:
괴:만들기
백괴게임의 정책과 지침
대원칙
가이드라인
게임의 스타일
절차
사용자

백괴게임의 모든 정책과 지침 보기

게임을 만들기로 하셨습니까? 그렇다면 게임을 만들기 위한 위키 문법을 간단히 적은 길라잡이가 있습니다.

게임을 만들기 전에 한 번은 읽어보는 것이 좋을 것 같기도 합니다. 또한 다 읽어보았다면 아래의 내용을 읽어보는 것이 좋을 것 같습니다.

물론, 플래시 게임이 아닌 이상 돈슨의 게임과 같은 것은 만들 수 없습니다. 왜 그런지는 그것은 저희가 답변드릴 수 없는 부분입니다.

게임을 만들기 전에

백괴게임에서는 지켜야 할 것들이 몇 가지 있습니다.

  • 게임은 신중히 만드세요.
게임을 만들게 되면 이 게임을 완성시킬 수 있느냐 없느냐를 잘 따지세요. 완성시킬 수 있다면 다행입니다만, 이미 백괴게임에는 제작자가 사라져 버려 삭제를 앞두고 있는 많은 수의 게임이 있습니다. 이 게임들처럼 되지 않게 신중하게 게임을 만들어 주세요.
백괴사전과 마찬가지로 백괴게임은 한국인들이 사용하는 곳입니다. 그러니까 게임도 한국어로 이루어져 있어야 하며 한국인의 정서에 맞는 게임을 만드셔야 합니다. 그리고 게임이다 보니 문서는 "웃김"을 강조하지만 여기서는 "즐거움"을 강조합니다. 되도록 즐거움을 유도시킬 수 있는 게임을 제작해주세요. 또한 백괴게임은 상식을 존중하며 사악하지 않습니다. 혐오감이나 현행법에 위반되는 내용의 게임들은 만들어지는 즉시 삭제되며, 이러한 행위가 반복될 경우 해당 게임의 제작자는 차단될 수도 있습니다.
  • 게임의 제작자가 게임의 편집을 허가하지 않았을 때, 즉 {{편집가능}} 틀이 없을 경우에는 되도록 게임을 편집하지 말아 주세요.
토론을 통해서 허락을 맡지 않은 이상, 다른 사용자가 만들거나 만들고 있는 게임들을 건드리지 말아주세요. 역효과로 질 낮은 게임이 만들어지거나 처음 제작자가 의도했던 것과 다른 게임이 만들어질지도 모릅니다.

주제 정하기

일단 게임을 만들려고 했다면 주제가 필요할 것입니다. 당신이 게임을 제작하고자 마음을 먹었다면 이미 여러 가지 게임을 플레이해 보신 뒤겠지요. 그리고 백괴게임엔 여러 가지 종류의 게임이 있다는것을 인식하셨을겁니다. 그리고 그 게임의 종류를 나누자면 다음과 같은 것들이 있습니다.

  • 어드벤처 게임
    • 여러 개의 문서를 링크를 타면서 진행합니다. 가장 쉽게 만들 수 있는 게임일지도 모릅니다. 이야기의 전개도 편합니다. 그러나 Linkget을 이용하지 않는 이상 문서를 많이 만들어야 하는 단점이 있습니다. 그리고 이렇게 만들어지는 게임들은 이 부족해 만들다가 중도에 그만두는 경우가 허다합니다.
    • 대표적으로는 백괴민국산천대국이 있습니다. 만약 만드시려면 "미리내팀"과 같이 기업을 만들어 떼거지로 만드는 것이 현명합니다.
  • 슈팅 게임
    • 말 그대로 적을 쏘는 게임입니다.
    • 대표적으로는 픽셀 헌트가 있습니다.
  • 낚시 게임
    • 말 그대로 낚이지 않고 엔딩까지 가는 형식의 게임입니다. 하지만 위키 문법의 특성 등을 잘 활용해야 하므로 이를 모르면 제작하기 힘들다는 단점이 있습니다.
    • 대표적으로는 백괴낚시가 있습니다.
  • 지능형 게임
    • 이 게임을 플레이 하려면 상당한 지능이나 아니면 노가다가 필요한 게임입니다.
    • 백괴미궁이나 Uncyclomaze가 그 예입니다.
  • 시간 낭비형 게임
    • 이 게임은 지능형 게임과 비슷하나 머리 사용하는 부분은 없애고 순전한 노가다를 요구하는 게임입니다. 노가다를 잘 하면 이길지도 모르는 게임입니다.
    • 큐브가 이 분류에 속합니다.
  • 멀티플레이형 게임
    • 멀티플레이를 할 수 있는 게임입니다. 상당히 구현이 힘들다는 단점이 있지만 구현만 된다면 여러 사용자가 같이 즐길 수 있다는 장점이 있습니다.
    • 틱택토·다함께 가위바위보·투표 게임 등이 있습니다.
  • 랜덤형 게임
    • <choose>를 통해서 만들어지는 게임입니다. 은근히 재미가 있으며 구현도 상당히 쉽습니다.
    • 예를 들자면 슬롯 머신이 있습니다.
  • 음악 게임
    • 음이나 박자를 맞추는 게임입니다. 플래시 등을 사용해서 만드는 작업이 필요합니다.
  • 다국어 게임
    • 백괴게임은 오늘날까지도 대부분의 게임이 한국어만 지원하고 있습니다. 언어 실력이 있거나 번역기를 잘 다룬다면, 영어나 듕귁어 등 다른 언어도 함께 제공해 보십시오!
    • 글로벌 시대에 맞추어 다국어 게임도 발전시킵시다.

게임 구상하기

전체적인 구조

전체적인 구조에 대해서 구상을 합니다. "내가 만들 게임은 낚시 게임이다"라고 생각하셨다면 어떤 링크를 누르면 낚이고 낚이지 않고 게임을 끝낼 수 있을지 구상을 할 수도 있겠죠.

제작 중

게임이 만약 제작 중이라면 {{게임 공사중‎}}을 사용해주세요. {{게임 공사중|기간={{#time:Y-M-D}} 이렇게 사용하시면 됩니다. 기간은 게임이 완성될 것 같은 날로 정하며, 이 기간은 언제든지 바꿀 수 있습니다. 만일 지정하지 않는다면 해당 틀이 붙은 문서가 마지막으로 편집된 지 15일 뒤로 설정됩니다.

디자인

게임에서 디자인은 매우 중요한 역할을 합니다. 태그와 틀을 이용해서 적당하게 게임을 꾸며 주시면 됩니다.

  • 글꼴
글꼴을 선정하면 게임이 어떤 분위기인지 정할 수도 있습니다. 아래는 그 예입니다. 글꼴은 윈도리눅스 위주로 쓰여졌기 때문에 다른 OS에선 다르게 보일 수도 있습니다.

글꼴의 예

마이크로소프트 윈도
분위기 글씨체
무감각함 돋움, 굴림, 맑은 고딕
부드러움 나눔고딕
명조 나눔명조
손글씨 나눔손글씨 펜, 나눔손글씨 붓
딱딱함 Fixedsys
진지함 궁서
편지체 휴먼편지체
매직체 휴먼매직체
백괴스러움 Wingdings
부드러운 영문 Brush Script Std
이상한 영문 Giddyup Std
리눅스
분위기 글씨체
무감각함 은 돋움
부드러움 나눔고딕
명조 나눔명조
손글씨 나눔손글씨 펜, 나눔손글씨 붓
고전풍 은 궁서
  • 그림
그림을 오목조목 게임에 필요한 부분에 잘 넣으면 사용자들이 더 즐겁게 게임을 할 수 있게 됩니다. 필요하다면 업로드해서 사용해서도 됩니다. 다만 파일 올리기는 자동 인증된 사용자?만이 사용 가능하며, 저작권에 유의해서 올려야 합니다.

편집 지침

이 부분의 본문은 도움말:편집 지침입니다.

특별히 게임에 규칙이 없을 때는 편집 지침을 따라야 합니다.

요약하자면, 백괴게임에서는 한 게임을 만들 때 게임의 하위 문서를 만들 때는 '게임 이름/게임 내용'과 같이 만들어야 하고 링크를 걸 때 링크 앞에 *를 붙이는 것을 원칙으로 하며 *과 링크 사이에 한 칸을 띄워야 합니다.

링크는 [[한게임/시작|시작하기]] 처럼 걸면 됩니다. 이 때 [[시작하기]] 처럼 걸면 안 됩니다. '시작하기' 문서로 게임이 이어지면 해당 문서가 어느 게임의 하위 문서인지 알 수 없고, 게임 제목 내용이 뒤섞입니다.

올바른 편집의 예

다음은 일반적인 백괴게임의 편집 지침에서의 올바른 편집의 예입니다. 네모 칸 안이 편집창이라고 가정합시다. (밑줄 친 부분에 마우스를 대면 설명을 볼 수 있습니다)

너는 지금 (장소 이름)에 있다.?
어디로 갈까??
* [[(게임 이름)/(너가 위치한 장소)/(너가 갈 곳 또는 너가 할 일)|(선택지)로 가기]]?
* {{미궁|(게임 이름)/(너가 위치한 장소)/(너가 갈 곳 또는 너가 할 일)|(선택지)로 가기}}

게임을 만든 뒤

게임을 만든 뒤에는 반드시 백괴게임의 게임 목록에 자신이 만든 게임을 넣어야 합니다. (테스팅 등의 목적으로 완성 이전에 넣어도 괜찮습니다.) 백괴게임:게임 목록에 {{게임아이콘}}에 있는 설명에 맞게 편집하시면 됩니다. 이 때 게임아이콘이 들어갈 곳은 해당 게임이 들어갈 문단에 특별히 어떻게 정렬하라고 나오지 않는 이상 가나다순으로 배치합니다. 자신이 만든 게임이라고 알리고 싶을 때에는 자신의 사용자 문서에 알리면 됩니다.

이제까지 게임을 만들 때 꼭 알아야 할 사항들을 설명하였습니다. 이제 직접 게임을 만들어 봅시다.

페이지 만들기


위에 있는 문서 만들기를 이용하여 만드시면 됩니다. 물론 게임 이름엔 자신이 생각했던 게임의 이름을 적어야겠지요.
백괴게임에도 위키문 법이 통하기 때문에 위키문법을 적절히 사용해서 게임을 만드시면 됩니다.
한편 하위 문서는 슬래시 (/)로 구분합니다. 링크를 걸 때와 하위 문서를 만들 때는 '게임 이름/게임 내용' 처럼 게임 이름 다음에 슬래시가 들어 있는지 확인해야 합니다.
백괴게임의 모든 게임은 백괴게임 분류에 속해야 합니다. 따라서 [[분류:백괴게임]]을 메인페이지에 넣는걸 잊지 말아주시기 바랍니다. 또한 해당 분류는 메인 페이지에만 달아 두면 됩니다.

아래부터는 게임을 만드는 데 참고하고 사용법을 익히면 좋을 기능들을 설명할 것입니다.

{{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와 같은 것입니다.)
다만, 사용한다면 영 좋지 않게 될 변수가 몇 가지 있습니다. (index.php의 변수 (미디어위키 위키))
  • title, curid, oldid, action, diff, search 등등...

특수 함수

Uncycloversity-prison-logo-ko-copy.png
백괴대학교의 강의를 들어 특수 함수에 대하여 더 자세히 알 수 있습니다.
백괴대학:본관/특수함수 응용

미디어위키에 기본으로 설치되어 있거나 미디어위키에서 제공되는 확장 기능을 통해 더 복잡하고 자세한 것을 구현할 수 있습니다. 대개 '특수 함수'라 하면 초보 사용자들은 어려움을 느끼기 마련인데, 일단 배우면 사용하기 쉬울 것입니다.

#expr

#expr은 간단한 계산을 할 수 있는 기능으로, 다음과 같이 사용합니다.

{{#expr:계산식}}
연산자 기능 예제
- {{#expr:1234567890}} = 1234567890
{{#expr:0.1}} = 0.1
{{#expr:123456789012345}} = 1.2345678901234E+14?
( ) 괄호 {{#expr:(30+7)*7}} = 259
+ 양수 부호 {{#expr:+30*+7}} = 210
- 음수 부호 {{#expr:-30*-7}} = 210
not 부정문 {{#expr: not 0 * 7}} = 7
{{#expr: not 30+7}} = 7
* 곱셈 {{#expr: 30 * 7}} = 210
/ 나눗셈 {{#expr: 30 / 7}} = 4.2857142857143
div 나눗셈. /과 같음 {{#expr: 30 div 7}} = 4.2857142857143
{{#expr: 5 div 2 * 2 + 5 mod 2}} = 6
mod 정수 나눗셈을 한 나머지를 구합니다.

주의: 다른 프로그래밍 언어와 작동 방식이 다릅니다.

{{#expr: 30 mod 7}} = 2
{{#expr: -8 mod -3}} = -2
{{#expr: -8 mod +3}} = -2
{{#expr: 8 mod 2.7}} = 0
{{#expr: 8 mod 3.2}} = 2
{{#expr: 8.9 mod 3}} = 2
+ 덧셈 {{#expr: 30 + 7}} = 37
- 뺄셈 {{#expr: 30 - 7}} = 23
round 반올림 계산을 합니다. {{#expr: 30 / 7 round 3}} = 4.286
{{#expr: 30 / 7 round 0}} = 4
{{#expr: 3456 round -2}} = 3500
= 등호 {{#expr: 30 = 7}} = 0
<> 부등호. 다를 경우에 true=1, 같을 경우에 false=0이 나옵니다. {{#expr: 30 <> 7}} = 1
 != 부등호. <>와 같습니다. {{#expr: 1 != 0}} = 1
< 작다 {{#expr: 30 < 7}} = 0
> 크다 {{#expr: 30 > 7}} = 1
<= 작거나 같다 {{#expr: 30 <= 7}} = 0
>= 크거나 같다 {{#expr: 30 >= 7}} = 1
and Logical AND {{#expr: 4<5 and 4 mod 2}} = 0
or Logical OR {{#expr: 4<5 or 4 mod 2}} = 1

입력할 때에 0이 false, 나머지의 값이 true로 처리됩니다. 계산 결과로는 false가 0, true가 1로 나옵니다.

#if

#if는 조건문의 하나로, 다음과 같이 사용합니다.

{{#if: 조건 | 조건이 참이면 나올 문장 | 조건이 거짓이면 나올 문장}}

이때 조건 문자열이 비어 있지 않을 때 참, 비어 있을 때 거짓을 반환합니다. 거짓일때 나올 문장은 생략할 수 있습니다.

예를 들면 다음과 같은 조건문이 있을 때:

{{#if: {{{parameter|}}} | parameter는 {{{parameter}}}입니다. | parameter가 없습니다.}}

{{틀|parameter=aaa}}의 결과는 다음과 같습니다.

parameter는 aaa입니다.

{{틀}}의 결과는 다음과 같습니다.

parameter가 없습니다.

{{틀|parameter=}}의 결과는 다음과 같습니다.

parameter가 없습니다.

주의해야 할 점은, 이것은 기존의 {{{parameter|}}} 동작과 다릅니다. 다음의 두 작동을 비교해 보세요.

{{{parameter|없음}}} {{#if: {{{parameter|}}} | {{{parameter}}} | 없음}}
{{틀|parameter=a}} a a
{{틀}} 없음 없음
{{틀|parameter=}} 없음

또한, 조건이 참/거짓일 때 나오는 문장에는 자동으로 앞뒤로 빈 문자열이 삭제됩니다.

#ifeq

{{#ifeq: 문자열 1 | 문자열 2 | 같을 경우 | 다를 경우}}
  • {{#ifeq: aa | aa | same | different}} -> same

문자열 부분에 숫자가 들어오면 숫자 값으로 검사합니다.

  • {{ #ifeq: +07 | 007 | 1 | 0 }} -> 1
  • {{ #ifeq: "+07" | "007" | 1 | 0 }} -> 0

매개변수가 정의되었는지를 #if로는 검사할 수 없습니다. 이를 검사하려면 #ifeq문을 사용해야 합니다.

  • {{ #if: {{{x| }}}|not blank|blank}} = blank
  • {{ #ifeq: {{{x| }}}| |blank|not blank}} = blank
  • {{ #ifeq: {{{x| }}}|{{{x|u}}}|defined|undefined}} = undefined

#ifexist

{{#ifexist: 문서 이름 | 문서가 있을 경우 | 문서가 없을 경우}}

만약 문서 이름에 인터위키?를 넣으면 결과는 항상 문서가 없는 경우로 나옵니다.

#ifexpr

{{#ifexpr: 계산식 | true일 경우 | false일 경우}}

계산식이 빈 문자열일 때도 false가 나옵니다.

  • {{#ifexpr: {{ns:0}}|Toast|'''or else'''}} = or else

true, false 두 문장을 쓰지 않으면 아무 것도 출력되지 않습니다. 단, 오류가 있을 경우에는 오류 메시지가 출력됩니다. 이를 이용해서 수식에 오류가 있는지 없는지 확인하는 것도 가능합니다.

  • {{#ifexpr: 1/0}} -> 0으로 나눴습니다.
  • {{#if: {{#ifexpr: 1/0}} | 오류 있음 | 오류 없음}} -> 오류 있음

#ifanon, #ifblocked, #ifsysop

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

{{#ifanon: 참 | 거짓}}

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

너가 익명인가? 참

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

#ifingroup

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

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

이 때 그룹에는 autoconfirmed?, sysop?, user?, rollback?을 입력할 수 있습니다.

아래는 예제입니다.

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

아래는 결과입니다.

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

#switch

다른 프로그래밍 언어의 switch문과 비슷한 구조를 가지고 있습니다.

{{ #switch: 비교할 값
| <value1> = <result1>
| <value2> = <result2>
| ...
| <valuen> = <resultn>
| <default result>
}}

마지막 default값은 모든 비교가 실패했을 때의 값으로, 항상 있어야 합니다.? 만약 default 값에 등호가 들어간다면, #default = <값>를 사용할 수 있습니다.

#time

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

시간을 출력합니다.

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

범위

1970년 1월 1일 00:00:01 (UTC) 이후, 2038년 1월 19일 03:14:07 이전의 날짜만 표시할 수 있습니다. (2038년 문제 참고)

인수로서 1901년과 1970년 사이의 날짜가 주어지면 잘못된 날짜를 출력하며, 그 이전의 날짜가 주어지면 오류 메시지가 나옵니다.

2월 29일

  • {{ #time: j|February 29 2006 }} → 1
  • {{ #time: j|February 29 2008 }} → 29

#rel2abs

상대 주소를 절대 주소로 바꿔줍니다.

  • “도움말:가나/다라”에서 {{ #rel2abs: ../마바 }}를 호출한 경우, 결과는 도움말:가나/마바가 됩니다.
  • “도움말:가나”에서 {{ #rel2abs: ../마바 }}를 호출한 경우, 결과는 마바가 됩니다.
  • “도움말:가나”에서 {{ #rel2abs: ../../마바 }}를 호출한 경우, 아래와 같은 오류 메시지가 출력됩니다.
    • 오류: 경로 구조가 잘못되었습니다: "도움말:가나/../../마바" (루트 노드 위의 노드에 접속을 시도했습니다)
  • {{ #rel2abs: ../마바 | 도움말:가나/다라 }}를 호출한 경우, 결과는 도움말:가나/마바가 됩니다.
  • {{ #rel2abs: 도움말:가나/다라/../마바 }}를 호출한 경우, 결과는 도움말:가나/마바가 됩니다.

#language

해당 언어 코드에 맞는 언어명을 출력합니다.

  • {{ #language: ko }} → 한국어
  • {{ #language: vi }} → Tiếng Việt
  • {{ #language: zh-min-nan }} → Bân-lâm-gú

#var , #vardefine

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

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

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

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

아래는 결과값입니다.

Sky is blue

#sub

#sub는 문자열을 한글과 영어,일본어 상관없이 자를수 있는 함수로 다음과 같이 사용합니다.

{{#sub: 자를문자열 | 숫자1 | 숫자2 }}

자를문자열의 숫자1번째부터 시작해서 숫자2만큼 잘라서 뽑아와줍니다. 아래는 예제입니다.

{{#sub:sky dum dummy dummss|0|3}} is blue

아래는 결과값입니다.

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}}
결과 24

#titleparts

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

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

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

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

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

다른 예제를 보겠습니다.

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

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

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

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

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

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

응용

{{CGI}}와 기타 여러 함수를 엮어서 사용하면 여러 가지 이벤트, 조건을 만들수가 있습니다. 아래의 예제들을 보도록하죠.

값이 일정하게 증가

{{CGI|{{#expr:{{CGI}}+1}}|여기를 누르세요. 지금 값은 "{{CGI}}"입니다.}}

여기를 누르세요. 지금 값은 "0"입니다.
값이 1씩 증가하는 예제입니다.

값이 일정하게 감소

{{CGI|{{#expr:{{CGI}}-1}}|여기를 누르세요. 지금 값은 "{{CGI}}"입니다.}}

여기를 누르세요. 지금 값은 "0"입니다.
값이 1씩 감소하는 예제입니다.

값이 일정하게 증가하다가 조건이 되면 실행

{{CGI|{{#expr:{{CGI}}+1}}|여기를 누르세요. 지금 값은 "{{CGI}}"입니다.}}{{#ifexpr:{{CGI}} > 5|"{{CGI}}" 값이 5보다 큽니다.}}

여기를 누르세요. 지금 값은 "0"입니다.
값이 1씩 증가하다 값이 5보다 크면 실행되는 예제입니다.

고급 내부 링크

바깥 링크를 거는 방법을 응용해서 고급 내부 링크를 걸 수 있습니다. 이때 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 틀에 보여줄 수 있습니다.
  • 보여줄 내용 : 링크에 보여줄 내용을 입력합니다.

플래시 게임 만들기

이 부분의 본문은 도움말:플래시 게임 만들기입니다.

도보시오