이 강의는 MPPC (미소녀 & PocketPC)Pure Ani에게 저작권이 있습니다.

게임마다 특정 명령어로 특별한 작업을 하는 게임들이 있습니다.

그런것들을 알아보겠습니다.

이 게임의 경우..


이러한 명령어들이 존재합니다.

[layer~ 의 경우 이미지 최 상단에 출력하는 명령어인데, 그냥 ld를 사용하여 구현하겠습니다.
(워차피 같은 위치라 캐릭터 이미지는 안보일테니까요.)

저것을 구현해보겠습니다.

  elsif ($line =~ /^\[layer storage=\"(\S*)\" visible=true pos=center\]$/)
# 만일 라인에 [layer storage="문자" ~일경우..
  {
   print OUT "ld c,\"image\\".$1."\.png\"\n\nprint 1\n";
# ld c,"image\문자.png" 줄바꿈 print 1 을 작성합니다.
# 아랫라인에서 다시 타치에 명령어가 나오니 여기서는 타치에변수는 건드리지 않도록 하겠습니다.
  }

위의 이미지에는 작업한 적이 없는 [fadeoutbgm time=3000] 라는것도 보이는데, 이것은 배경음악을 설정된 시간동안 페이드아웃해서 BGM을 종료하는 명령어입니다.

구현해보겠습니다.

  elsif ($line =~ /\[fadeoutbgm time=(\d*)\]/)
# 만일 라인에 [fadeoutbgm time=숫자] 가 존재할경우..
  {
   print OUT "bgmfadeout ".$1."\n";
# bgmfadeout 숫자 를 작성한다.
  }

그리고 [cross_m storage=문자 ~가 존재하는데, 이것은 화면에 달력을 표시하는 명령어입니다.

구현해보도록하겠습니다.

  elsif ($line =~ /^\[cross_m storage=(\S{5})/)
# 만일 라인에 [cross_m storage=문자 가 존재할경우..
  {
   $tm = 0;
   $tz = 0;
   $ts = 0;
# 타치에변수 전부 초기화.
   print OUT "cl a\nprint 1\n";
# 화면에 표시된 타치에는 전부 지웁니다.
   print OUT "bg \"image\\".$1."\.png\",2\n";
# bg "image\문자.png",2 를 작성합니다.
  }


이렇게 변환이 되게 됩니다.

달력을 표시하는 명령어에는 한가지가 더 있습니다.


이 명령어의 위편에는 웨이트가 존재하고 아래에는 이번에 추가할 명령어가 있습니다.

위편의 명령어에는 can~이 추가적으로 붙어있습니다.

기존에 작성했었던, elsif ($line =~ /\[wait time=(\d*)\]/)를 elsif ($line =~ /\[wait time=(\d*)/)로 수정합니다.

2번째 라인의 적용은 elsif ($line =~ /^\[cross_m storage=(\S{5})/)를 elsif ($line =~ /^\[cross_m(|2) storage=(\S{5})/)로 수정합니다.

그렇게 하면 두개의 라인이 적용이 됩니다.

그 다음에 빼먹은것이..


이것입니다.

앞의 문자는 캐릭터 뒤의 클리어는 클리어데이터를 작성하는 명령어입니다.

아래의 점프문장은 파일간의 점프를 의미합니다.

2가지를 코딩해보겠습니다.

  elsif ($line =~ /^\[(\S)_clear\]$/)
# 만일 라인에 [문자_clear]이 존재할경우..
  {
   if ($1 =~ /m/)
# 만일 변수$1에 m이 존재할 경우..
   {
    print OUT "mov %cm,1\n";
# mov %cm,1 을 작성한다.
# clear캐릭명의 약자로 cm을 사용할 예정입니다.
   }
   elsif ($1 =~ /z/)
   {
    print OUT "mov %cz,1\n";
   }
   elsif ($1 =~ /s/)
   {
    print OUT "mov %cs,1\n";
   }
  }
  elsif ($line =~ /^\[jump storage=(\S*).ks\]$/)
# 만일 라인에 [jump~가 존재할경우.
  {
   print OUT "goto \*L_".$1."\n";
# goto *L_파일명 을 작성합니다.
  }

그 다음에 이벤트 CG를 봤는지 안봤는지를 저장하는 부분을 코딩해보겠습니다.

이미지는 [cross storage=파일명]으로 불러왔었으니 이곳에 추가를 하겠습니다.

   print OUT "bg \"image\\".$bg[0]."\.png\",2\n";
   
   if ($bg[0] =~ /event/)
# 만일 $bg[0]에 event가 존재한다면..
   {
    print OUT "mov %".$bg[0].",1\n";
# mov %$bg[0],1 을 작성합니다.
# 변수를 파일명 그대로를 사용할겁니다.
   }

   for (my $i=1; $i < @bg; $i++)

이렇게 하나의 스크립트 파일이 종료되었습니다.

다음 강의에서부터는 오마케루트 파일의 코딩을 시작하려고 합니다.

이 게임이 본편과 오마케편이 명령어가 다르더군요.
(다음 강의는 내일로 예정되어있습니다. 일단 오늘은 여기까지만 하고 자로갈거기에..)

작성자 Pure Ani
출 처 MPPC (미소녀 & PocketPC)

Posted by Pure Ani

RE:D Cherish! -Eternity Blood- CRYSTALiA

放課後シンデレラ2 HOOKSOFT

花鐘カナデ*グラム NanaWind

フタマタ恋愛 ASa Project

スタディ§ステディ2 ま~まれぇど

リンパにATATA! ~メス牡蠣ミルクどぴゅらっしゅ~ Hending

創作彼女の恋愛公式 Aino+Links

流星ワールドアクター Heliodor

Secret Agent~騎士学園の忍びなるもの~ ensemble

天冥のコンキスタ エウシュリー

HaremKingdom -ハーレムキングダム- SMEE

ラズベリーキューブ まどそふと

ノラと皇女と野良猫ハート2 -Nora, Princess, and Crying Cat.- HARUKAZE

『ノラと皇女と野良猫ハート2』応援中♪

ピュアソングガーデン PULLTOP

はにデビ! Honey&Devil eufonie

姫繰三六五 HIMEKURI365

姫繰三六五 公式ウェブサイト

はるるみなもに! クロシェット

死に逝く君、館に芽吹く憎悪 バグシステム

Sanguinea-サングイネア- すにぃる

麗華の館 しすたーそふと

カスタムメイドオンライン KISS