백괴게임>유한림 |
|
(사용자 2명의 중간 판 27개는 보이지 않습니다) |
1번째 줄: |
1번째 줄: |
| == {{틀|Linkget}}의 이용 ==
| | {{#babel:ko|en-2}} |
| 게임을 제작하다 보면 자신이 생각했던 것을 쉽게 구현하지 못하는 경우가 허다할 것입니다. 그래서 미디어위키에서 제공하는 여러 가지 {{주석|확장 기능|추가 기능}}들을 사용해서 게임을 꾸밀수도 있습니다.
| |
|
| |
|
| {{틀|Linkget}}은 매개변수를 사용할 수 있게 해 주는 틀입니다. 몇몇 게임을 플레이 하다보면 ?offset=숫자 같은것들이 주소에 붙어있는것을 확인할 수 있습니다. 이런 건 {{틀|CGI}}를 이용한 게임으로(참고로 구형입니다), 새로 만들어진 {{틀|Linkget}}의 기능은 이와 유사합니다.
| | 만든 게임 유지보수하는 것만으로도 빡시네. |
| * {{틀|Linkget}}의 이용방법
| |
| : <nowiki>{{#urlget:var}}</nowiki> 라고 바로 쓰게 되면 주소에 쓰여 있는 var= 뒤의 값을 바로 출력합니다. 주소에 그런 게 없다면, 아무 것도 출력하지 않습니다.
| |
| : <nowiki>{{Linkget|링크에 나타날 텍스트|get=var=값}}</nowiki> 라고 바로 쓰게 되면 현재 페이지에 var의 새로운 값을 넘겨줍니다.
| |
| : <nowiki>{{Linkget|넘길 페이지|링크에 나타날 텍스트|get=var={{#urlget:var}}}}</nowiki> 라고 바로 쓰게 되면 현재 var의 값을 다른 페이지로 넘겨줍니다.
| |
| : 지금까지 계속 변수 이름으로 var라는 것을 사용해 왔는데요, var 대신 다른 문자열을 택해도 좋습니다. 여러 변수값을 넘겨주려면 <code>get=변수1=값1&변수2=값2&...</code>과 같이 쓸 수 있습니다. (여기서 변수1, 변수2, ...는 아까 썼던 var와 같은 것입니다.)
| |
|
| |
|
| == 특수 함수 == | | == 유지보수 게임 == |
| === #ifanon, #ifblocked, #ifsysop === | | {{게임아이콘|돈벌기 게임|4|0|CGI|전체|제작자들=[[사용자:Ash|Ash]], [[사용자:유한림|유한림]]}} |
| 사용자의 여부와 관련된 특수 함수로 #ifanon은 익명 (IP 사용자)의 여부를 알려주며, #ifblocked는 차단 당했는지의 여부를, #ifsysop는 관리자의 여부를 알려줍이다. | | {{게임아이콘|인터넷전쟁|4|1|CGI|12|제작자=유한림}} <112.158.104.26 사용자의 게임을 이어받음> |
|
| |
|
| <pre><nowiki>{{#ifanon: 참 | 거짓}}</nowiki></pre>
| | == 안 쓰는 파일 분류 방지 == |
| 여기서 익명일 때에는 참을, 아닐 때에는 거짓을 출력합니다.
| | [[파일:집.jpg|1px]] |
| | | <!--파일:돈벌기 게임-집1.jpg|1px--> |
| 너가 익명인가? {{#ifanon:참|거짓}}
| | <!--파일:돈벌기 게임-집2.jpg|1px--> |
| | | {{사문동결}} |
| 이 때 #ifanon 뿐만 아니라 #ifblocked와 #ifsysop도 사용법은 같습니다.
| |
| | |
| === #ifingroup === | |
| <nowiki>#ifingroup</nowiki>은 소속된 사용자 권한 그룹의 여부를 알려줍니다.
| |
| | |
| <pre><nowiki>{{#ifingroup: 그룹 | 구성원일 경우 | 구성원이 아닐 경우}}</nowiki></pre>
| |
| | |
| 이 때 그룹에는 {{주석|autoconfirmed|자동 인증된 사용자}}, {{주석|sysop|관리자}}, {{주석|user|사용자}}, {{주석|rollback|롤백}}을 입력할 수 있습니다.
| |
| | |
| 아래는 예제입니다.
| |
| <pre>너가 자동으로 인증된 사용자인가? {{#ifingroup:autoconfirmed|참|거짓}}</pre>
| |
| 아래는 결과입니다.
| |
| 너가 자동으로 인증된 사용자인가? {{#ifingroup:autoconfirmed|참|거짓}}
| |
| | |
| === #time ===
| |
| | |
| <nowiki>{{</nowiki>{{#if: 형식| }}'''#time''':{{#if: 형식| <tt> 형식</tt>{{#if:{{{ml|}}}|| }}}}<nowiki>}}</nowiki>
| |
| <nowiki>{{</nowiki>{{#if: 형식 | 시간| }}'''#time''':{{#if: 형식 | 시간| <tt> 형식 | 시간</tt>{{#if:{{{ml|}}}|| }}}}<nowiki>}}</nowiki>
| |
| | |
| 시간을 출력합니다.
| |
| | |
| {| cellpadding="6px" border=1 style="border:1px solid #C0C0C0; border-collapse:collapse;"
| |
| ! 코드
| |
| ! 설명 | |
| ! 예시
| |
| ! 현재
| |
| |--------------
| |
| | Y
| |
| | 네 자리 연도
| |
| | 예: 2006
| |
| | {{#time:Y}}
| |
| |--------------
| |
| | y
| |
| | 두 자리 연도
| |
| | 00~99,<br />예: 06=2006.
| |
| | {{#time:y}} | |
| |--------------
| |
| | L
| |
| | 윤년일 경우
| |
| | 1이면 윤년, 0이면 평년
| |
| | {{#time:L}}
| |
| |--------------
| |
| | n
| |
| | 현재 달(앞에 0이 붙지 않음)
| |
| | 1~12
| |
| | {{#time:n}}
| |
| |--------------
| |
| | m
| |
| | 현재 달(앞에 0이 붙음)
| |
| | 01~12
| |
| | {{#time:m}}
| |
| |--------------
| |
| | M
| |
| | 줄인 달 이름
| |
| | 1~12
| |
| | {{#time:M}}
| |
| |--------------
| |
| | F
| |
| | 달 이름
| |
| | 1월~12월
| |
| | {{#time:F}}
| |
| |--------------
| |
| | t
| |
| | 각 달에 있는 날짜 수
| |
| | 28~31
| |
| | {{#time:t}}
| |
| |--------------
| |
| | j
| |
| | 현재 날(앞에 0이 붙지 않음)
| |
| | 1~31
| |
| | {{#time:j}}
| |
| |--------------
| |
| | d
| |
| | 현재 날(앞에 0이 붙음)
| |
| | 01~31
| |
| | {{#time:d}}
| |
| |--------------
| |
| | z
| |
| | 그 해부터 지난 날수(0부터 시작함)
| |
| | 0~364, 윤년일 경우 365까지
| |
| | {{#time:z}}
| |
| |--------------
| |
| | D
| |
| | 줄인 요일 이름
| |
| | 월~일
| |
| | {{#time:D}}
| |
| |--------------
| |
| | l
| |
| | 요일 이름
| |
| | 월요일~일요일
| |
| | {{#time:l}}
| |
| |--------------
| |
| | w
| |
| | 요일 숫자(미국식)
| |
| | 0(일요일)~6(토요일)
| |
| | {{#time:w}}
| |
| |--------------
| |
| | N
| |
| | 요일 숫자(ISO 8601 방식).
| |
| | 1(월요일)~7(일요일)
| |
| | {{#time:N}}
| |
| |--------------
| |
| | W
| |
| | ISO 8601 주 숫자(ISO 연도는 월요일부터 일요일까지 완전히 있어야 한 주로 치고, 첫 번째 주는 늘 1월 4일이나 역년 목요일을 포함한다.).
| |
| | 1 to 52 or 53 (depends on year)
| |
| | {{#time:W}}
| |
| |--------------
| |
| | a
| |
| | am(같은 날 01:00:00부터 12:59:59까지)이나 pm을 소문자로 나타낸다(시간 단위를 12시간제로 표시할 때 쓴다.).
| |
| | am이나 pm
| |
| | {{#time:a}}
| |
| |--------------
| |
| | A
| |
| | 위 <tt>a</tt>와 같지만, 대문자로 나타낸다.
| |
| | AM이나 PM
| |
| | {{#time:A}}
| |
| |--------------
| |
| | g
| |
| | 시간을 12시간 단위로 표기하되, 앞에 0을 붙이지 않음(1, 2자리이고 am/pm 또는 AM/PM과 같이 쓴다.).
| |
| | 1~12
| |
| | {{#time:g}}
| |
| |--------------
| |
| | h
| |
| | 시간을 12시간 단위로 표기하되, 앞에 0을 붙임(2자리이고 am/pm 또는 AM/PM과 같이 쓴다.).
| |
| | 01~12
| |
| | {{#time:h}}
| |
| |--------------
| |
| | G
| |
| | 시간을 24시간 단위로 표기하되, 앞에 0을 붙이지 않음(1자리 또는 2자리).
| |
| | 0~23
| |
| | {{#time:G}}
| |
| |--------------
| |
| | H
| |
| | 시간을 24시간 단위로 표기하되, 앞에 0을 붙임(2자리).
| |
| | 00~23
| |
| | {{#time:H}}
| |
| |--------------
| |
| | i
| |
| | 분(2자리).
| |
| | 00~59
| |
| | {{#time:i}}
| |
| |--------------
| |
| | s
| |
| | 초(2자리).
| |
| | 00~59
| |
| | {{#time:s}}
| |
| |--------------
| |
| | U
| |
| | 1970년 1월 1일 00:00:00 UTC부터 흐른 초 수.
| |
| | 0~2147483647
| |
| | {{#time:U}}
| |
| |--------------
| |
| | c
| |
| | ISO 8601 형식을 따른 날짜로, <nowiki>{{#time:Y-m-dTH:m:s{{#time:+H:m|+0 hours}}}}</nowiki>와 같다.
| |
| | fixed length string
| |
| | {{#time:c}}
| |
| |--------------
| |
| | r
| |
| | RFC 2822 형식을 따른 날짜로, <nowiki>{{#time:D, j M Y H:m:s {{#time:+H:m|+0 hours}}}}</nowiki>와 같다.
| |
| | variable length string
| |
| | {{#time:r}}
| |
| |}
| |
| | |
| ==== 예제 ====
| |
| *{{ft|#time|<nowiki>Y년 M월 j일 l | 20070304</nowiki>}} → "{{#time:Y년 M월 j일 l|20070304}}"
| |
| *{{ft|#time|<nowiki>Y년 M월 j일 l | 2007-3-4</nowiki>}} → "{{#time:Y년 M월 j일 l|2007-3-4}}"
| |
| *{{ft|#time|<nowiki>Y년 M월 j일 l | 4 March 2007</nowiki>}} → "{{#time:Y년 M월 j일 l|4 March 2007}}"
| |
| *{{ft|#time|<nowiki>Y년 M월 j일 l | -32 days</nowiki>}} → "{{#time:Y년 M월 j일 l|-32 days}}" (32일 전)
| |
| *{{ft|#time|<nowiki>H:i | +9 hours</nowiki>}} → "{{#time:H:i|+9 hours}}" (UTC보다 9시간 빠름)
| |
| *{{ft|#time|<nowiki>H:i | 8:15 +9 hours</nowiki>}} → "{{#time:H:i|8:15 +9 hours}}"
| |
| *{{ft|#time|<nowiki>Y/m | -17 months</nowiki>}} → "{{#time:Y/m|-17 months}}" (17개월 전)
| |
| *{{ft|#time|<nowiki>[[Y년]] [[M월 j일]] l | 4 March 2007</nowiki>}} → "{{#time:[[Y년]] [[M월 j일]] l | 4 March 2007}}"
| |
| | |
| === #var , #vardefine ===
| |
| <nowiki>#var 과 #vardefine</nowiki>은 변수를 지정하고 사용할 수 있는 함수로 다음과 같이 사용합니다.
| |
| <pre><nowiki>{{#vardefine: 변수이름 | 변수값 }}
| |
| {{#var: 변수이름 }}</nowiki></pre>
| |
| 이렇게 사용할 수 있습니다.
| |
| <pre>{{#vardefine:sky|blue}}
| |
| Sky is {{#var:sky}}</pre>
| |
| 아래는 결과값입니다.
| |
| {{#vardefine:sky|blue}}
| |
| Sky is {{#var:sky}}
| |
| | |
| === #len ===
| |
| <nowiki>#len</nowiki>는 문자열의 개수를 새어주는 함수로 다음과 같이 사용합니다.
| |
| <pre>{{#len: 문자열 }}</pre>
| |
| 아래는 예제입니다.
| |
| <pre>"Nu is babo"의 길이는 {{#len:Nu is babo}}입니다.</pre>
| |
| 아래는 결과값입니다.
| |
| "Nu is babo"의 길이는 {{#len:Nu is babo}}입니다.
| |
| | |
| === #pos ===
| |
| <nowiki>#pos</nowiki>는 문자열에 어떤 문자를 찾아서 맨처음으로 찾아진 문자가 어디에 위치해 있는지 확인해주는 함수로 다음과 같이 사용합니다.
| |
| <pre>{{#pos: 문자열 | 찾을 문자 }}</pre>
| |
| 아래는 예제입니다.
| |
| <pre>"Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다."에 "GNU"의 위치는 {{#pos:Nu와 GNU가 싸우면 GNU가 이긴다.|GNU}}입니다.</pre>
| |
| 아래는 결과값입니다.
| |
| "Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다."에 "GNU"의 위치는 {{#pos:Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다.|GNU}}입니다.
| |
| | |
| === #rpos ===
| |
| <nowiki>#rpos</nowiki>는 문자열에 어떤 문자를 찾아서 마지막으로 찾아진 문자가 어디에 위치해 있는지 확인해주는 함수로 다음과 같이 사용합니다.
| |
| <pre>{{#rpos: 문자열 | 찾을 문자 }}</pre>
| |
| 아래는 예제입니다.
| |
| <pre>"Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다."에 "GNU"의 위치는 {{#rpos:Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다.|GNU}}입니다.</pre>
| |
| 아래는 결과값입니다.
| |
| "Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다."에 "GNU"의 위치는 {{#rpos:Nu와 GNU가 싸우면 GNU가 이긴다. 왜냐하면 GNU가 이름이 제일 길기 때문이다.|GNU}}입니다.
| |
| | |
| === #replace ===
| |
| <nowiki>#replace</nowiki>는 문자열에서 특정 단어를 찾아서 다른 단어로 치환해주는 함수로 다음과 같이 사용합니다.
| |
| <pre>{{#replace:문자열|특정 단어|다른단어}}</pre>
| |
| 아래는 예제입니다.
| |
| <pre>"Nu는 바보다" 에서 Nu를 GNU로 바꾸면 "{{#replace:Nu는 바보다|Nu|GNU}}"입니다.</pre>
| |
| 아래는 결과값입니다.
| |
| "Nu는 바보다" 에서 Nu를 GNU로 바꾸면 "{{#replace:Nu는 바보다|Nu|GNU}}"입니다.
| |
| | |
| === #rand ===
| |
| 임의의 숫자를 출력해주는 기능을 갖고 있습니다. <nowiki>{{#rand:a|b}}</nowiki>로 입력하시면 a에서 b사이에 있는 임의의 정수를 출력합니다.
| |
| {|border=1 align="center"
| |
| !예제
| |
| |<nowiki>{{#rand:1|100}}</nowiki>
| |
| |-
| |
| !결과
| |
| |{{#rand:1|100}}
| |
| |}
| |
| | |
| === #titleparts ===
| |
| #titleparts는 페이지 제목을 조금 더 정교하게 자르기 위한 것입니다. [[mw:Help:Magic_words/ko|Magic Words]] 중 하나인 <nowiki>{{PAGENAME}}</nowiki>류와 함께 쓰면 더욱 효과적입니다.
| |
| | |
| <pre><nowiki>{{#titleparts: 페이지명 | 반환할 구역 수 | 반환할 첫번째 구역 }}</nowiki></pre>
| |
| | |
| 구역이라는 것은 상위/하위 문서 하나 단위를 의미합니다. 예제를 보겠습니다.
| |
| | |
| <pre><nowiki>{{#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다|2}}</nowiki></pre>
| |
| | |
| 이와 같이 하면 다음과 같이 출력됩니다. '''두번째 변수가 없으면 처음부터 앞에 쓴 숫자만큼 잘라버립니다'''.
| |
| | |
| {{#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다|2}}
| |
| | |
| 다른 예제를 보겠습니다.
| |
| | |
| :<div style="background-color:#ffe;border:1px solid #ccc;width:40em;padding:0.5em;"><nowiki>{{</nowiki>#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다|<span style="color:red;">'''3'''</span>|<span style="color:blue;">'''2'''</span><nowiki>}}</nowiki></div>
| |
| | |
| 이는 <span style="color:red;">'''3'''</span>개만큼 자르되 <span style="color:blue;">'''2'''</span>번째 칸부터 시작한다는 뜻입니다. 첫번째 변수(빨간 글씨)를 생략할 시는 기본값이 1로 지정됩니다. 따라서 결과는 다음과 같습니다.
| |
| | |
| {{#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다|3|2}}
| |
| | |
| <nowiki>#</nowiki>titleparts는 음수도 가능합니다.
| |
| | |
| <pre><nowiki>{{#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다|-1}}</nowiki></pre>
| |
| | |
| '''음수의 경우 뒤쪽부터 셉니다'''. 따라서 이렇게 입력하였을 때의 결과는 '''{{#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다|-1}}'''이 됩니다. 같은 원리로, 첫째 변수가 아닌 둘째 변수가 -1일 시에는 '''{{#titleparts: 백괴책:낚시학개론/둘째낚시/셋째낚시/넷째낚시방/마지막이다||-1}}'''가 나옵니다.
| |
| | |
| == 고급 내부 링크 ==
| |
| 바깥 링크를 거는 방법을 응용해서 고급 내부 링크를 걸 수 있습니다. 이때 fullurl과 urlencode를 사용하게 됩니다. fullurl은 현재 위키의 주소를 나타내며 urlencode는 문서 제목을 입력할 때 URL 주소에 맞게 글자를 변환(인코딩)을 해줍니다. 다만 <nowiki>{{urlencode:{{FULLPAGENAME}}}}</nowiki>와 같은 경우에는 <nowiki>{{FULLPAGENAMEE}}</nowiki> 처럼 ‘E’를 덧붙임으로서 문서를 URL 주소에 맞게 변환해줍니다.
| |
| === 문서를 보여줄 때 ===
| |
| 문서를 보여줄 때에는 다음과 같이 링크를 걸면 됩니다만 보여줄 내용을 태그로 글자를 꾸미지 않는 이상 쓸 필요는 없습니다.
| |
| [{{fullurl:{{urlencode:문서 제목}}|offset=오프셋}} 보여줄 내용]
| |
| * 문서 제목 : 링크할 문서 제목을 입력합니다.
| |
| * offset : 오프셋 숫자를 입력합니다. {{틀|CGI}} 또는 {{틀|Get}}에서 사용하는 변수로, 해당 숫자를 CGI 틀에 보여줄 수 있습니다.
| |
| * 보여줄 내용 : 링크에 보여줄 내용을 입력합니다.
| |
| * 오프셋을 사용하지 않을 때 보여줄 내용에 태그로 글자를 꾸미려면 다음과 같은 방법으로 걸 것을 권합니다.
| |
| ** <nowiki>[[문서 제목|보여줄 내용]]</nowiki>
| |
| * 보여줄 내용을 태그로 글자를 꾸미지 않고 그냥 넣을 때에는 고급 내부 링크를 거는 대신에 다음과 같은 방법으로 걸 것을 권합니다.
| |
| ** {{틀|CGI}}
| |
| ** {{틀|미궁}}
| |
| ** {{틀|CGI미궁}}
| |
| | |
| === 편집을 할 때 ===
| |
| 편집을 할 때에는 다음과 같이 링크를 걸면 됩니다.
| |
| [{{fullurl:{{urlencode:문서 제목}}|action=edit&editintro={{urlencode:편집 윗부분에 보여줄 문서 제목}}&summary={{urlencode:편집 요약}}&minor=사소한 편집&offset=오프셋}} 보여줄 내용]
| |
| 여기서 editintro, summary, minor, offset 변수는 생략할 수 있으며 나머지는 반드시 입력해야 올바른 링크가 됩니다.
| |
| * 문서 제목 : 링크할 문서 제목을 입력합니다.
| |
| * editintro : 편집 윗부분에 보여줄 문서 제목을 입력합니다.
| |
| * summary : 편집 요약을 입력할 수 있습니다.
| |
| * minor : 사소한 편집 여부를 체크합니다. 1일 때는 사소한 편집에 체크가 되며, 0일 때는 체크가 되지 않습니다.
| |
| * offset : 오프셋 숫자를 입력합니다. {{틀|CGI}} 또는 {{틀|Get}}에서 사용하는 변수로, 해당 숫자를 CGI 틀에 보여줄 수 있습니다.
| |
| * 보여줄 내용 : 링크에 보여줄 내용을 입력합니다.
| |