본문으로 이동

리버티게임:게임 만들기: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
백괴게임>BANIP
잔글편집 요약 없음
백괴게임>BANIP
잔글편집 요약 없음
4번째 줄: 4번째 줄:
게임을 만들기로 하셨습니까? 그렇다면 아래의 순서가 좋을 것 [[백괴:같기도|같습니다]].
게임을 만들기로 하셨습니까? 그렇다면 아래의 순서가 좋을 것 [[백괴:같기도|같습니다]].


물론, [[백괴:넥슨|돈슨]]의 게임과 같은 것은 만들 수 없습니다. 왜 그런지는 [[백괴:그것은 저희가 답변드릴 수 없는 부분입니다]].
물론, [[백괴:넥슨|돈슨]]의 게임과 같은 것은 만들 수 없습니다. 왜 그런지는 [[백괴:그것은 저희가 답변드릴 수 없는 부분입니다|그것은 저희가 답변드릴 수 없는 부분입니다]].


=기본적인 게임 제작=
=기본적인 게임 제작=

2010년 11월 22일 (월) 00:27 판

대문/머릿글 <ungamemain /> 게임을 만들기로 하셨습니까? 그렇다면 아래의 순서가 좋을 것 같습니다.

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

기본적인 게임 제작

시작하기 전에

백괴게임은 보통의 문서의 편집 지침을 따르지 않습니다. 하지만 지켜야 할것들이 몇 가지 있습니다.

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

주제 정하기

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

  • 텍스트 어드벤쳐형 게임
    • 여러 개의 문서를 링크를 타면서 진행합니다. 가장 쉽게 만들수 있는 게임일지도 모릅니다. 이야기의 전개도 편합니다. 하지만 문서를 많이 만들어야 하는 단점이 있습니다. 그리고 이렇게 만들어지는 게임들은 이 부족해 만들다가 중도에 그만두는 경우가 허다합니다.
  • 지능형 게임
    • 이 게임을 플레이 하려면 상당한 지능이나 아니면 노가다가 필요한 게임입니다. 백괴미궁이나 Uncyclomaze가 그 예입니다.
  • 시간낭비형 게임
    • 이 게임은 지능형 게임과 비슷하나 머리 사용하는 부분은 없애고 순전한 노가다를 요구하는 게임입니다. 노가다를 잘 하면 이길지도 모르는 게임입니다. 큐브가 이 분류에 속합니다.
  • 멀티플레이형 게임
    • 멀티플레이를 할 수 있는 게임입니다. 상당히 구현이 힘들다는 단점이 있지만 구현만 된다면 여러 사용자가 같이 즐길수 있다는 장점이 있습니다.
  • 랜덤형 게임
    • <choose>를 통해서 만들어지는 게임입니다. 은근히 재미가 있으며 구현도 상당히 쉽습니다. 예를 들자면 슬롯 머신이 있습니다.

게임 구상하기

전체적인 구조

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

디자인

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

  • 글꼴
글꼴을 선정하면 게임이 어떤 분위기인지 정할 수도 있습니다. 아래는 그 예입니다. 글꼴은 윈도우 위주로 쓰여졌기 때문에 다른 OS에선 다르게 보일수도 있습니다.
분위기 글씨체
무감각함 굴림
부드러움 맑은 고딕
딱딱함 Fixedsys
고전풍 궁서
편지체 휴먼편지체
매직체 휴먼매직체
백괴스러움 Wingdings
부드러운 영문 Brush Script Std
이상한 영문 Giddyup Std
  • 그림
그림을 오목조목 게임에 필요한 부분에 잘 넣으면 사용자들이 더 즐겁게 게임을 할 수 있게 됩니다. 필요하다면 업로드해서 사용해서도 됩니다.

페이지 제작


위에 있는 문서만들기를 이용하여 만드시면 됩니다. 물론 게임이름엔 자신이 생각했던 게임의 이름을 적어야겠지요.
백괴게임에도 위키문법이 통하기 때문에 위키문법을 적절히 사용해서 게임을 제작하시면 됩니다.
한가지, 잊지마세요. 게임을 만들게 되면 문서 최상단에 <ungamemain />를 추가하는 것을 잊지마세요. 백괴게임 로고의 기능을 강화시켜줍니다.
백괴게임은 일정한 분류가 있습니다. 분류는 게임의 메인페이지에만 달아두시면 됩니다.

제작중

제작중이라면 {{게임 공사중‎}}을 사용해주세요. {{게임 공사중|기간=2010-9-20}} 이렇게 사용하시면 됩니다. 기간은 대략 문서 공사가 끝날거 같은 날이며 게임 제작자가 계속 게임을 만들고 기간을 늘리고 싶다면 기간을 늘리셔도 상관이 없습니다. 제작중에도 분류:백괴게임을 메인페이지에 넣는걸 잊지 말아주세요. 만약 테스팅을 해보고 싶다면 백괴게임 메인화면에 제작중에 자기 게임을 넣는것도 나쁘지 않습니다. 대문/진열대를 편집하시면 됩니다.

완성

게임이 완성되면 메인화면에 제작중에 있는 자신의 게임을 제외시키고 분류에 맞게 게임을 다시 배열시켜주세요. 마찬가지로 대문/진열대를 편집하시면 됩니다. 그리고 나중에 버그나 기타 의견들을 받아 들이면서 게임을 유지시켜 주시면 됩니다.

고급적인 게임 제작

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

{{CGI}}의 이용

{{CGI}}는 틀의 설명 그대로 CGI의 기본 기능을 구현할 수 있는 틀입니다. 다른 게임을 플레이 하다보면 ?offset=숫자 같은것들이 주소에 붙어있는것을 확인할 수 있습니다. 이게 바로 {{CGI}}를 이용한 게임들입니다.

  • {{CGI}}의 이용방법
{{CGI}} 라고 바로 쓰게 되면 offset의 값을 바로 출력합니다.
{{CGI|숫자|링크에 나타날 텍스트}} 라고 바로 쓰게 되면 자기 자신의 문서에 숫자의 offset을 넘겨줍니다.
{{CGI|{{CGI}}|링크에 나타날 텍스트|page=넘길 페이지}} 라고 바로 쓰게 되면 지금의 offset을 그대로 넘길 페이지로 넘겨줍니다.

여러 함수의 이용

mediawiki에서 제공하는 여러 가지 함수를 구현할 수 있는 extension(추가기능)이 백괴에 추가되어 있습니다.

이 부분의 본문은 괴:함#함수입니다.

#expr

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

{{#expr: 계산식 }}
연산자 기능 예제
- {{#expr: 123456789012345}} = 1.2345678901234E+14
{{#expr: 0.000001}} = 1.0E-6
( ) 괄호 {{#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}} | 오류 있음 | 오류 없음}} -> 오류 있음

#switch

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

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

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


#time

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

시간을 출력합니다.

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

아래는 예제입니다.

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

아래는 결과값입니다.

"Luftschloss is babo"의 길이는 19입니다.

#pos

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

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

아래는 예제입니다.

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

아래는 결과값입니다.

"사유리와 peremen이 싸우면 Luftschloss가 이긴다. 왜냐하면 Luftschloss가 이름이 제일 길기 때문이다."에 "Luftschloss"의 위치는 18입니다.

#rpos

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

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

아래는 예제입니다.

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

아래는 결과값입니다.

"사유리와 peremen이 싸우면 Luftschloss가 이긴다. 왜냐하면 Luftschloss가 이름이 제일 길기 때문이다."에 "Luftscholoss"의 위치는 41입니다.

#pad

#pad는 문자열길이에 맞춰서 필요한 문자를 위치에 채워주는 함수로 다음과 같이 사용합니다.

{{#pad:문자열|맞춰질 문자열 길이|채울 문자|위치}}
위치 의미
left 왼쪽에 채워줍니다.
right 오른쪽에 채워줍니다.
center 양옆으로 채워줍니다.

아래는 예제입니다.

숫자 46을 6자리로 맞추면 {{#pad:46|6|0|left}}입니다.

아래는 결과값입니다.

숫자 46을 6자리로 맞추면 {{#pad:46|6|0|left}}입니다.

#replace

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

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

아래는 예제입니다.

"사유리는 바보다" 에서 사유리를 Luftschloss로 바꾸면 "{{#replace:사유리는 바보다|사유리|Luftschloss}}"입니다.

아래는 결과값입니다.

"사유리는 바보다" 에서 사유리를 Luftschloss로 바꾸면 "Luftschloss는 바보다"입니다.

#explode

#explode는 문자열에서 특정 단어로 잘라서 n번째로 위치하는 문자를 뽑아주는 함수로 다음과 같이 사용합니다.

{{#explode:문자열|특정 단어|n}}

아래는 예제입니다.

"사유리는 바보다" 에서 " "로 잘라서 1번째로 위치하는 것은 "{{#explode:사유리는 바보다| |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 이상이 되면 실행되는 예제입니다.