²ò·è¤·¤¿¸å¤Ç¤Ê¤ó¤Ç¤¹¤¬¡¢°ÊÁ°²Ë¤Ä¤Ö¤·¤Çºî¤Ã¤¿¤â¤Î¤òȯ¸«¤·¤¿¤Î¤ÇÅê²¼¡£
ÍѸìÅù²ø¤·¤¤¤È¤³¤í¤¬¤¢¤ë¤«¤â¤·¤ì¤Þ¤»¤ó¤¬¸«Æ¨¤·¤Æ¤¯¤À¤µ¤¤¤Þ¤»¡£
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;°Ê²¼¤Î¥¿¥°¤òÆɤ߽Ф·¤â¤È¤Îʸ»úÎó¡ÊÊÑ¿ôbuf¡Ë¤Ë½ñ¤¹þ¤à¤È
;³Æ¡¹¤Î¸ú²Ì¤òȯ´ø¤¹¤ë¡£
;°ø¤ß¤Ë²þ¹Ô¤ÏÄ̾ï¤ÈƱ¤¸¤¯\n¤Ç¹Ô¤¦¡£
; $ss¡Ä¤³¤ì°Ê¹ß$se½Ð¸½¤Þ¤Ç¼«Æ°¥¹¥¯¥í¡¼¥ë
; $se¡Ä¥¹¥¯¥í¡¼¥ë¥¨¥ó¥É
; $cl¡Ä¤³¤ìľ¸å¤Î¿ôÃÍ¡Ê2·å¤Î16¿Ê¿ôRGBÃ͡ˤ理Ëʸ»ú¿§¤òÊѤ¨¤ë
; 000000: ¹õ :RÃÍ¡ÊÀÖ¡Ë 0¡¢GÃÍ¡ÊÎÐ¡Ë 0¡¢BÃÍ¡ÊÀÄ¡Ë 0
; FFFFFF: Çò :RÃÍ¡ÊÀÖ¡Ë255¡¢GÃÍ¡ÊÎСË255¡¢BÃÍ¡ÊÀÄ¡Ë255
; FF0000: ÀÖ :RÃÍ¡ÊÀÖ¡Ë255¡¢GÃÍ¡ÊÎÐ¡Ë 0¡¢BÃÍ¡ÊÀÄ¡Ë 0
; FFFF00: ²« :RÃÍ¡ÊÀÖ¡Ë255¡¢GÃÍ¡ÊÎСË255¡¢BÃÍ¡ÊÀÄ¡Ë 0
; 00FF00: ÎÐ :RÃÍ¡ÊÀÖ¡Ë 0¡¢GÃÍ¡ÊÎСË255¡¢BÃÍ¡ÊÀÄ¡Ë 0
; 00FFFF:¿å¿§:RÃÍ¡ÊÀÖ¡Ë 0¡¢GÃÍ¡ÊÎСË255¡¢BÃÍ¡ÊÀÄ¡Ë255
; 0000FF: ÀÄ :RÃÍ¡ÊÀÖ¡Ë 0¡¢GÃÍ¡ÊÎÐ¡Ë 0¡¢BÃÍ¡ÊÀÄ¡Ë255
; FF00FF: »ç :RÃÍ¡ÊÀÖ¡Ë255¡¢GÃÍ¡ÊÎÐ¡Ë 0¡¢BÃÍ¡ÊÀÄ¡Ë255
; $os¡Ä¤³¤ì°Ê¹ß$oe½Ð¸½¤Þ¤Ç¥¦¥§¥¤¥È¤Ê¤·¤Ç¤¤¤Ã¤Ú¤ó¤Ëɽ¼¨
; $oe¡Ä¥¦¥§¥¤¥È¤Ê¤·É½¼¨¥¨¥ó¥É
; $mw¡Ä¤³¤ìľ¸å¤Î<>¤Ç³ç¤Ã¤¿¥Õ¥ì¡¼¥à¿ô¡Ê10¿Ê¿ô¡Ë¤Ë¥á¥Ã¥»¡¼¥¸¥Õ¥ì¡¼¥à¿ôÊѹ¹
; $sw¡Ä¤³¤ìľ¸å¤Î<>¤Ç³ç¤Ã¤¿¥Õ¥ì¡¼¥à¿ô¡Ê10¿Ê¿ô¡Ë¤Ë¥¹¥¯¥í¡¼¥ë¥Õ¥ì¡¼¥à¿ôÊѹ¹
; $wt¡Ä¤³¤ìľ¸å¤Î<>¤Ç³ç¤Ã¤¿¥Õ¥ì¡¼¥à¿ô¡Ê10¿Ê¿ô¡Ë¤À¤±¥¦¥§¥¤¥È¤òÆþ¤ì¤ë
; ¢¨1¥Õ¥ì¡¼¥à¤Ï16¥ß¥êÉÃ(await 16)¤È¤·¤Æ¤¤¤ë
; $fn¡Ä¤³¤ìľ¸å¤Î<>¤Ç³ç¤Ã¤¿¥Õ¥©¥ó¥È̾¤Ë¥Õ¥©¥ó¥È¤òÊѹ¹
; $fs¡Ä¤³¤ìľ¸å¤Î<>¤Ç³ç¤Ã¤¿ÃÍ¡Ê0¡Á31¡Ë¤Ë¥Õ¥©¥ó¥È¤Î¥¹¥¿¥¤¥ë¤òÊѹ¹
; $$¡ÄȾ³Ñ¤Î$¤òɽ¼¨¤µ¤»¤¿¤¤»þ¤Ï¤³¤Î¤è¤¦¤Ëɽµ
; ¢¨$¤Ç¤âɽ¼¨¤µ¤ì¤ë¤³¤È¤¬¤¢¤ë¤¬¤³¤ÎÍͤËɽµ¤·¤¿Êý¤¬¥Ð¥°¤Ï²óÈò¤Ç¤¤ë¤«¤È
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;°Ê²¼»ÈÍѤ·¤¿ÊÑ¿ô¤ÎÀâÌÀ¡£
; buf:Æɤ߽Ф·¤â¤È¤Îʸ»úÎó
; slen:ʸ»úÎó¥µ¥¤¥º
; fsz:¥Õ¥©¥ó¥È¤Î¥µ¥¤¥º¡£fsz/vscl¤¬³ä¤êÀÚ¤ì¤ëÊý¤¬¤¤¤¤¤È»×¤ï¤ì¤ë¡£
; fnm:¥Õ¥©¥ó¥È̾¡£
; fst:¥Õ¥©¥ó¥È¤Î¥¹¥¿¥¤¥ë¡£
; lnmx:1¹Ô¤ËÆþ¤ëºÇÂç¤Îʸ¾Ï¤ÎÉý¡£Ã±°Ì¥É¥Ã¥È¡£
; idx:º£¤ÎÆɤ߽Ф·¸µ¥¤¥ó¥Ç¥Ã¥¯¥¹
; mwt:¥¦¥§¥¤¥È(¡ß16ms)
; tmp1,2:Æɤ߽Ф·¤Ë»ÈÍÑ
; mesg:ÂåÆþÍÑʸ»úÎó
; mgch:ɽ¼¨¤¹¤ëxºÂɸ¡Ê²£¡Ë
; mgln:²¿¹ÔÌܤËɽ¼¨¤¹¤ë¤Î¤«¡Ê½Ä¡Ë
; vscl:¥¹¥¯¥í¡¼¥ë®ÅÙ(¥É¥Ã¥Èñ°Ì)
; swt:¥¹¥¯¥í¡¼¥ë¤ÎºÝ¤Î¥¦¥§¥¤¥È(¡ß16ms)
;
; clrr:ÀÖ
; clrg:ÎÐ
; clrb:ÀÄ
; ascflg:¼«Æ°¥¹¥¯¥í¡¼¥ë¥Õ¥é¥°
; oncflg:¥¦¥§¥¤¥È¤Ê¤·É½¼¨¥Õ¥é¥°
;Ãí¼á
;ÊÑ¿ô=int( "$"+ʸ»úÎó )
; 16¿Ê¿ô¤ò10¿Ê¿ô¤ËÊÑ´¹¤¹¤ë¡£
; HSP¤ÏËÁƬ¤Ë$¤ÎÉÕ¤¤¤¿¿ôÃͤÏ16¿Ê¿ô¤È¤·¤Æ½èÍý¤¹¤ë¤¿¤á¡¢
; ʸ»úÎó¤ÎÀèƬ¤Ë$¤ò¤Ä¤±¤Æint¤Ç¿ô»ú¤Ëľ¤¹¤È16¿Ê¿ô¢ª10¿Ê¿ô¤¬²Äǽ¡£
#module;»úÉý¼èÆÀ´Ø¿ôstrwidthÄêµÁ¡£»úÉý¥É¥Ã¥È¿ô=strwidth(ÊÑ¿ô̾)
#uselib "gdi32.dll"
#func GetTextExtentPoint32 "GetTextExtentPoint32A" int,int,int,int
#defcfunc strwidth var s_tBuf
txtLen=strlen(s_tBuf)
dim s_tSize,2
GetTextExtentPoint32 hdc,varptr(s_tBuf),txtLen,varptr(s_tSize)
return s_tSize(0)
#global
*start
screen 0,400,150,,0,0;²èÌ̽é´ü²½
screen 1,,,,0,200;ËÜÍè¤Ïbuffer 1¡£¸«¤¿Ìܤˤ狼¤ê¤ä¤¹¤¯¤¹¤ë¤¿¤áscreen¤ò»ÈÍÑ¡£
buf="$ss$fs<1>$os$clFF0000HSP3.1$cl000000$oe$fs<0>¤Ç¤Ï¡¢$wt<20>HSP3.0¤Þ¤Ç¤Î»ñ»º¤ò·Ñ¾µ¤·¤Ê¤¬¤é¡¢$wt<20>$fn<£Í£Ó ÌÀÄ«>¤è¤ê¹¤¤ÈϰϤdzèÍѤ¹¤ë¤³¤È¤¬¤Ç¤¤ë¤è¤¦¡¢$wt<20>¿¤¯¤Îµ¡Ç½¤òÄɲᦽ¤Àµ¤·¤Æ¤¤¤Þ¤¹¡£$se\n$wt<40>$ss$fn<£Í£Ó £Ð¥´¥·¥Ã¥¯>$mw<6>¤³¤³¤Ç¤Ï¡¢$wt<20>$fs<1>$os$clFF0000HSP3.1$cl000000$oe$fs<0>¤Ç²¿¤¬ÊѤï¤ë¤Î¤«¡£$wt<40>²¿¤¬¿·¤·¤¯¤Ê¤ë¤Î¤«¤ò¾Ò²ð¤·¤Æ¤¤¤Þ¤¹¡£$se$sw<6>\n"
slen=strlen(buf)
fsz=12
fnm="£Í£Ó ¥´¥·¥Ã¥¯";¥Õ¥©¥ó¥È̾¡£¥×¥í¥Ý¡¼¥·¥ç¥Ê¥ë¥Õ¥©¥ó¥È¤â²Ä¡£
fst=0
lnmx=30*fsz/2
mwt=3
swt=2
vscl=2
clrr=0
clrg=0
clrb=0
mgch=0
mgln=0
;¥Õ¥é¥°½é´ü²½
ascflg=0
oncflg=0
;¥Õ¥©¥ó¥ÈÀßÄê
font fnm,fsz,fst
*main
if (idx>=slen) : goto*last
tmp1=peek(buf,idx);1byteÌÜÆɤ߽Ф·
tmp2=peek(buf,idx+1);2byteÌÜÆɤ߽Ф·
if tmp1=36{;ʸ»úÎóÆâ¤ËȾ³Ñ¤Î$¤¬½Ð¸½¤·¤¿¾ì¹ç¤Î½èÍý
if tmp2=36{;$$¤ÏȾ³Ñ$¤Ø¤ÈÊÑ´¹
mesg=strmid(buf,idx,1);¡Ö$¡×¤òɽ¼¨ÍÑʸ»úÎó¤Ø
if mgch+strwidth(mesg)>lnmx {;ʸ»ú¿ô¥ª¡¼¥Ð¡¼¤Î¾ì¹ç
mgch=0;1ʸ»úÌܤòÆɤ߽Ф·Àè¤Ë
mgln+=1;¼¡¤Î1¹Ô¤òÆɤ߽Ф·Àè¤Ë
if mgln=3{;3¹ÔÌܺǸå¤Þ¤Ç¹Ô¤Ã¤Æ¤¤¤¿¤é¥¹¥¯¥í¡¼¥ë
gosub*scrl
mgln=2;3¹ÔÌܤòÆɤ߽Ф·Àè¤Ë
}
}
idx+=2;¡Ö$$¡×¤òÆɤó¤À¤Î¤Ç¥¤¥ó¥Ç¥Ã¥¯¥¹¤ò2¥Ð¥¤¥ÈÀè¤Ø
gosub*disp;ʸ»úɽ¼¨¥é¥Ù¥ë¤Ø
mgch+=strwidth(mesg)
goto*main
}else{
switch strmid(buf,idx+1,2)
case "cl";ʸ»ú¿§Êѹ¹
;°Ê²¼¤Ç16¿Ê¿ô¤Î¥Ç¡¼¥¿¤ò10¿Ê¿ô¤ØÊѹ¹
clrr = int( "$"+strmid(buf,idx+1+2,2) );rÃÍ
clrg = int( "$"+strmid(buf,idx+1+4,2) );gÃÍ
clrb = int( "$"+strmid(buf,idx+1+6,2) );bÃÍ
idx+=9
goto*main
swbreak
case "ss";¼«Æ°¥¹¥¯¥í¡¼¥ë³«»Ï
ascflg=1;¥Õ¥é¥°¤òΩ¤Æ¤ë
idx+=3
goto*main
swbreak
case "se";¼«Æ°¥¹¥¯¥í¡¼¥ë½ªÎ»
ascflg=0;¥Õ¥é¥°¤ò¥ª¥Õ¤Ë¤¹¤ë
idx+=3
goto*main
swbreak
case "os";¥¦¥§¥¤¥È¤Ê¤·É½¼¨³«»Ï
oncflg=1;¥Õ¥é¥°¤òΩ¤Æ¤ë
idx+=3
goto*main
swbreak
case "oe";¥¦¥§¥¤¥È¤Ê¤·É½¼¨½ªÎ»
oncflg=0;¥Õ¥é¥°¤ò¥ª¥Õ¤Ë¤¹¤ë
idx+=3
goto*main
swbreak
case "mw";¥á¥Ã¥»¡¼¥¸¥Õ¥ì¡¼¥à¿ôÊѹ¹
repeat;¡Ö>¡×¤òõ¤¹
if peek(buf,idx+1+2+1+cnt)=62{
mwt = int( strmid(buf,idx+1+2+1,cnt) )
idx+=5+strlen( strmid(buf,idx+1+2+1,cnt) )
break
}
loop
goto*main
swbreak
case "sw";¥¹¥¯¥í¡¼¥ë¥Õ¥ì¡¼¥à¿ôÊѹ¹
repeat;¡Ö>¡×¤òõ¤¹
if peek(buf,idx+1+2+1+cnt)=62{
swt = int( strmid(buf,idx+1+2+1,cnt) )
idx+=5+strlen( strmid(buf,idx+1+2+1,cnt) )
break
}
loop
goto*main
swbreak
case "wt";¥¦¥§¥¤¥È¤òÆþ¤ì¤ë
repeat;¡Ö>¡×¤òõ¤¹
if peek(buf,idx+1+2+1+cnt)=62{
await 16*int( strmid(buf,idx+1+2+1,cnt) )
idx+=5+strlen( strmid(buf,idx+1+2+1,cnt) )
break
}
loop
goto*main
swbreak
case "fs";¥Õ¥©¥ó¥È¥¹¥¿¥¤¥ëÊѹ¹
repeat;¡Ö>¡×¤òõ¤¹
if peek(buf,idx+1+2+1+cnt)=62{
fst = int( strmid(buf,idx+1+2+1,cnt) )
idx+=5+strlen( strmid(buf,idx+1+2+1,cnt) )
break
}
loop
font fnm,fsz,fst;¥Õ¥©¥ó¥ÈÄêµÁ
goto*main
swbreak
case "fn";¥Õ¥©¥ó¥È̾Êѹ¹
repeat;¡Ö>¡×¤òõ¤¹
if peek(buf,idx+1+2+1+cnt)=62{
fnm = strmid(buf,idx+1+2+1,cnt)
break
}
loop
idx+=5+strlen(fnm)
font fnm,fsz,fst;¥Õ¥©¥ó¥ÈÄêµÁ
goto*main
swbreak
swend
}
}
if (tmp1 >= 129)&(tmp1 <= 159)|(tmp1 >= 224)&(tmp1 <= 252){
;¥³¡¼¥É¤¬Á´³Ñʸ»ú¤ÎƬ¤Ê¤éÁ´³Ñʸ»ú¤òɽ¼¨
mesg=strmid(buf,idx,2);Á´³Ñʸ»ú¤Ê¤Î¤Ç2¥Ð¥¤¥ÈÆɤ߽Ф·
if mgch+strwidth(mesg)>lnmx {;ʸ»ú¿ô¥ª¡¼¥Ð¡¼¤Î¾ì¹ç
mgch=0;1ʸ»úÌܤòÆɤ߽Ф·Àè¤Ë
mgln+=1;¼¡¤Î1¹Ô¤òÆɤ߽Ф·Àè¤Ë
if mgln=3{;3¹ÔÌܺǸå¤Þ¤Ç¹Ô¤Ã¤Æ¤¤¤¿¤é¥¹¥¯¥í¡¼¥ë
gosub*scrl
mgln=2;3¹ÔÌܤòÆɤ߽Ф·Àè¤Ë
}
}
idx+=2
gosub*disp
mgch+=strwidth(mesg)
goto*main
}else{
if (tmp1 == 13)&(tmp2 == 10){;²þ¹Ô¥³¡¼¥É
mgch=0;1ʸ»úÌܤòÆɤ߽Ф·Àè¤Ë
mgln+=1;¼¡¤Î1¹Ô¤òÆɤ߽Ф·Àè¤Ë
if mgln=3{;3¹ÔÌܺǸå¤Þ¤Ç¹Ô¤Ã¤Æ¤¤¤¿¤é¥¹¥¯¥í¡¼¥ë
gosub*scrl
mgln=2;3¹ÔÌܤòÆɤ߽Ф·Àè¤Ë
}
mesg="";²þ¹Ô¤Î¾ì¹ç¤Ïʸ»úɽ¼¨¤ÎɬÍפ¬¤Ê¤¤¤Î¤Ç¶õÇò
idx+=2
gosub*disp
goto*main
}else{;Ⱦ³Ñʸ»ú
mesg=strmid(buf,idx,1)
if mgch+strwidth(mesg)>lnmx {
mgch=0;1ʸ»úÌܤòÆɤ߽Ф·Àè¤Ë
mgln+=1;¼¡¤Î1¹Ô¤òÆɤ߽Ф·Àè
if mgln=3{
gosub*scrl
mgln=2;3¹ÔÌܤòÆɤ߽Ф·Àè¤Ë
}
}
idx+=1
gosub*disp
mgch+=strwidth(mesg)
goto*main
}
}
*disp
gsel 1;²¾ÁÛ²èÌ̤Ëʸ»ú¤ò½ÐÎϤ¹¤ë
color clrr,clrg,clrb
pos mgch,fsz*mgln
mes mesg
gsel 0;²¾ÁÛ²èÌ̤ÎÆâÍƤò¼ÂºÝ¤Î²èÌ̤˥³¥Ô¡¼
redraw 0;ÉÁ²è¤¬½ª¤ï¤ë¤Þ¤ÇºÆÉÁ²è¥ª¥Õ
color 0,0,255
boxf 0,fsz*5-(fsz/2),lnmx-1,fsz*(5+3)+(fsz/2)-1
pos 0,fsz*5
gcopy 1,0,0,lnmx,fsz*3
if oncflg==0 {;¥¦¥§¥¤¥È¤Ê¤·É½¼¨¤¬¥ª¥Õ¤Î¾ì¹ç
redraw 1
await mwt*16
}
gsel 1;returnľ¸å¤Îstrwidth¤Ç¥¦¥£¥ó¥É¥¦ID1¤Î¥Õ¥©¥ó¥È¥µ¥¤¥º¤òÊÖ¤¹¤¿¤á¤Ëgsel
return
*scrl;¥¹¥¯¥í¡¼¥ë
gsel 0
if ascflg==0{;¼«Æ°¥¹¥¯¥í¡¼¥ë(ascflg==1)¤Î¾ì¹ç¤Ï¥¯¥ê¥Ã¥¯¤òÂÔ¤¿¤Ê¤¤
redraw 0;¢¦¥Þ¡¼¥¯ÉÁ²è¡£¤ä¤ä¤³¤·¤¯¸«¤¨¤ë¤¬Ã±¤Ë»°³Ñ½ñ¤¤¤Æ¤ë¤À¤±¡£
color 255,255,255
line lnmx-1-8,fsz*(5+3)+(fsz/2)-1-4,lnmx-4,fsz*(5+3)+(fsz/2)-1-4
line lnmx-1-8+1,fsz*(5+3)+(fsz/2)-1-4+1,lnmx-4-1,fsz*(5+3)+(fsz/2)-1-4+1
line lnmx-1-8+2,fsz*(5+3)+(fsz/2)-1-4+2,lnmx-4-2,fsz*(5+3)+(fsz/2)-1-4+2
redraw 1
repeat;¥¯¥ê¥Ã¥¯¤·¤¿¤é¥¹¥¯¥í¡¼¥ë
getkey key,1
if key&1 : break
await 16
loop
}
repeat fsz/vscl,;¥¹¥¯¥í¡¼¥ë
redraw 0
;ÀĤ¤ÉôʬÉÁ²è
color 0,0,255
boxf 0,fsz*5-(fsz/2),lnmx-1,fsz*(5+3)+(fsz/2)-1
;²¾ÁÛ²èÌ̤«¤é¥³¥Ô¡¼
pos 0,fsz*5
gcopy 1,0,cnt*vscl,lnmx,fsz*3
redraw 1
await swt*16
loop
gsel 1;²¾ÁÛ²èÌ̽ñ¤´¹¤¨
pos 0,0
gcopy 1,0,fsz,lnmx,fsz*2
color 255,255,255
boxf 0,fsz*2,lnmx-1,fsz*3-1
return
*last;ñ¤ËºÇ¸å¤Þ¤Çɽ¼¨¤·¤¿¤³¤È¤ò³Îǧ¤¹¤ë¤¿¤á¤Î¥é¥Ù¥ë
gsel 0
pos 0,fsz*10
mes "END"
stop