와이틴을 만지면서 제가 배운것을 토대로 기본적인 명령어와 사용법을 정리해 봅니다.
----------------------------------------------------------------------------------
#session {세션명} {접속주소 포트번호}세션이라고 명명하는 가상의 창에 접속시킵니다. 세션은 여러개 가능합니다.
포트번호에 0을 주면 더미세션을 생성 합니다.줄여서 #sess로 실행 가능합니다.
ex) #session F1 27.102.207.232 4000 : 드림서버에 접속 합니다.
#session F2 A 0 : F2라는 가상의 세션을 생성합니다.
**세션간 전환은 #세션명 으로 전환 합니다. ex) #F1
----------------------------------------------------------------------------------
#read {파일명}
{파일명}을 불러 옵니다. 확장자의 종료는 상관 없습니다.
ex) #read connect.txt
----------------------------------------------------------------------------------
일반적으로 와이틴은 문서파일에 명령어를 작성후 #read 명령으로 읽어서 처리 합니다.
문서가 수정되었거나 다시 읽을필요가 있을경우는 반드시 #killall 명령으로 상주된 모든 명령어를 삭제 후 다시 읽어야 합니다.
#killall
#read connect.txt
------------------------------------------------------------------------------------
#{숫자} 실행명
숫자만큼 반복 실행 합니다.
ex) #5 아가씨 딸기 구입 //딸기를 5번 삽니다.
------------------------------------------------------------------------------------
#action {반응할문자} {실행할문자} {우선순위}
자동반응을 처리할때 사용 합니다. 약자로 #act 로 쓰기도 합니다.
우선순위는 생략시 기본 5로 입력됩니다. 0이 가장높음 9가 가장 낮음
ex) #action {%1가 당신을 발견하자 공격을 해옵니다.} {%%1 공격} {1}
------------------------------------------------------------------------------------
#alias {명령어} {실행문} {우선순위}
와이팅 명령창에서 입력했을때 실행되는 명령 입니다. 약자로 #ali 로 쓰기도 합니다.
줄임말 기능과 비슷 합니다.
우선순위는 생략시 기본 5로 입력됩니다. 0이 가장높음 9가 가장 낮음
ex) #alias{샛1} {샛 축복진 대;샛 발광 대;샛 수호진 대;샛 부양술 대;샛 방열진 대;샛 보마진 대;샛 선악감지 대;샛 방한진 대}
** 구문사이에 ; 는 여러가지 명령을 동시 처리할때 사용 합니다.
------------------------------------------------------------------------------------
#var {변수명} {변수값}
변수를 설정 합니다. 와이틴의 버그인지 TinTin에서는 변수명에 { }가 없어도 동작한다는데, Ytin은 간혹 오류를 띄웁니다.
ex) #var {NaMe} {호랭이}
#act {당신의 이름은?} {$NaMe}
=> 변수를 사용할때는 변수명 앞에 '$'를 붙여서 사용해 줍니다.
-----------------------------------------------------------------------------------
#if {조건} {실행문1} else {실행문2}일반적인 조건 비교문 입니다. 조건이 맞으면 실행문1, 아니면 실행문2를 실행 합니다. (elseif는 없습니다.)
else는 생략 가능 합니다.
#math 대입변수명 {연산식}
변수를 연산할때 사용 합니다. #var 명령어로 초기화가 안된 변수는 간혹 오류를 일으킵니다. 사용전에 초기화를 해주세요.
math 명령에서 사용하는 대입변수는 $를 붙이지 않습니다. (연산식에서는 $를 붙여야 합니다.)
ex) #var {ErrCnt} {0}
#act {여기서 그쪽으로 가는길은 나있지 않습니다.} {#if {Errcnt<5} #math ErrCnt {$ErrCnt+1} else {math ErrCnt {0};귀환}
** 구문사이에 ; 는 여러가지 명령을 동시 처리할때 사용 합니다.
------------------------------------------------------------------------------------
#ticksize {초}
#tickset
#tickon
#tickoff
Ytin은 tick 명령을 이용해서 주어진 시간마다 반복적으로 TICK!!! 를 화면에 띄웁니다.
시간카운터가 필요하거나, 일정시간 대기해야하는 경우에 TICK!!!을 #action 문자로 받아서 처리 합니다.
ex) #var DeadWait {0}
#act {저승사자가 당신을 보며} {#ticksize 10;#tickset;#tickon}
#act {TICK!!!} {#if {$DeadWait>3} {#tickoff;부활 가} else {math DeadWait{$DeadWait+1}}}
------------------------------------------------------------------------------------
#show 표시글
사용자의 화면에 글자를 띄워 줍니다.
띄워주는 글자는 다른사람에 보여주거나, 실행하지 않습니다.
------------------------------------------------------------------------------------
구문 작성 팁
기본적으로 C의 문법처럼 사용이 가능합니다.
예제로 올라와있는 한줄 구문이 읽고 해독하기 어렵다고 판단되면,
#ali{'스텝이동} {#if {$Start_Run==1} {#math BeforIndex {$index-1};#show {<ZONE_$Zone:$index>};#var {LogMode} {[Zone_$index] [출발지]};#var {LogItem} {$BeforIndex};'전투로그;#if {$FirtAtt==1} {'몹체크} else {#nop}} else {#nop}}
#ali{'스텝이동} {
#if {$Start_Run==1} {
#math BeforIndex {$index-1};
#show
{<ZONE_$Zone:$index>};
#var {LogMode} {[Zone_$index]
[출발지]};
#var {LogItem} {$BeforIndex};
'전투로그;
#if {$FirtAtt==1} {
'몹체크
} else
{
#nop
}
} else {
#nop
}
}
이렇게 풀어서 보시는게 편합니다.
----------------------------------------------------------------------------------
글자 치환 명령어나, 맵 추적 명령어들 다양한 명령어가 있으나, 대략 이정도만 해도 왠만한 자반은 만들어질것 같습니다.
제가 만든 자반은 아직 버그가 많아서 좀더 다듬은 후에 올려보도록 하겠습니다.
(사실...TinTin++ 이 원조격이라 명령어도 다양하고 UI처리도 되서, 이쪽을 더 배우고 싶은 마음이....)
아래는 테스트중인 현재시간 계산 스크립트 입니다.
#sess Dummy A 0 로 더미세션 만든후
메인 세션 (아래예제는 F1) 에서 "시간" 명령으로 현재시간 불러오면 시간계산이 시작 됩니다.
Dummy 세션에서 1초마다 올라오는 TICK!!!을 읽어서 시간계산 하는 스크립트니 명령어 사용에 참조 하세요.
원래 TinTIn++에는 #tcl이라는 시스템 시간 불러오는 명령어가 있는데, Ytin이 구버전 기준으로 만들어지다 보니 #tcl 명령어가 없네요.
*스크립트에 오류가 있어서 수정후 다시 올립니다.
#Dummy #act {#TICK!!!} {#F1 #math T_Sec_Cnt {$T_Sec_Cnt+1};#F1 #if {$T_Sec_Cnt>60} {#F1 #math T_Min_Cnt {$T_Min_Cnt+1};#F1 #math T_Sec_Cnt {$T_Sec_Cnt-60}};#F1 #if {$T_Min_Cnt>60} {#F1 #math T_Hour_Cnt {$T_Hour_Cnt+1};#F1 #math T_Min_Cnt {$T_Min_Cnt-60}}}
#ali {'틱초기화} {#Dummy #ticksize 1;#Dummy #tickset;#Dummy #tickon;#math T_Sec_Cnt {$T_Sec_Cnt-1} {0};#var {T_Min_Cnt} {0};#var {T_Hour_Cnt} {0};#var {T_Date_Cnt} {0}}
#ali {'시간계산} {#math Sec {$Sec+$T_Sec_Cnt};#if {$Sec>60} {#math T_Min_Cnt {$T_Min_Cnt+1};#math Sec {$Sec-60}};#math Min {$Min+$T_Min_Cnt};#if {$Min>60} {#math T_Hour_Cnt {$T_Hour_Cnt+1};#math Min {$Min-60};};#math Hour {$Hour+$T_Hour_Cnt};#if {$Hour>24} {#math Day {$Day+1};#math Hour {$Hour-24}};'틱초기화}
#act {현실세계시간: %1년 %2월 %3일 %4시 %5분 %6초} {#var {Month} {%%2};#var {Day} {%%3};#var {Hour} {%%4};#var {Min} {%%5};#var {Sec} {%%6};'틱초기화;;#sleep;'시간표시}
#act {접속이 끊어졌습니다. [%1:%2:%3]} {#var {Hour} {%%1};#var {Min} {%%2};#var {Sec} {%%3};'틱초기화;#sleep;'시간표시}
#act {님이 들어오셨습니다. [%1:%2:%3]} {#var {Hour} {%%1};#var {Min} {%%2};#var {Sec} {%%3};'틱초기화;#sleep;'시간표시}
#ali {'시간표시} {'시간계산;#cr;#show {[$Month월 $Day일] [$Hour시 $Min분 $Sec초]}
첫댓글 아이고 머리야~ ㅋㅋ
감사합니다. 소중한거 올려주셔서 자유게시판에 있는글 나만의팁으로 옮겼습니다.
이런글은 나팁에 와야 맞습니다 ㅎㅎ
머리는 아파도 열공해 보겠습니다
멋찌네요 짱짱!!
제가 잠깐 해본 기억으로는 버튼을 못만드는게 아쉬웠던거 같아요
그것만 되면 바꿔볼 의향도 있는데 ^^
와이틴은 틴틴 초기버전이라 기능이 많지는 않습니다.
이번에 틴틴 2.0대 버전으로 옮겨타려고 공부중 입니다 ㅎㅎ
@호랭이 2.0 마스터 하시면 기대해 보겠습니다 ^^