1. 제로보드XE 채팅 위젯
  2. 제로4,그누4 보드 소스 예제
  3. 오피 연동 방법
  4. 테크노트 소스 예제
  5. 드루팔 소스 예제
  6. 웹게임 연동 예제



아래는 웹 게임 연동에 대한 여러 예제입니다.
Perl: 베네치아, 배틀로얄, EBS, 건담 택틱스
PHP: HOF

해당하는 웹게임 소스 코드는 모두 http://www.gagax.com 자료실에서 무료로 제공중입니다.

가가라이브 보안 채팅방(무료) 이용한 프레임 방식(http://www.gagax.com 방식) 펄 웹 게임 연동 소스 예제입니다.
이 예제는 베네치아 소스를 예제로 삼았고 다른 소스 코드에 적용하려면
########## 아래 펄 소스에 맞게 수정 시작 ###################
부분 아래의 변수를 게임 아이디와 게임 닉네임으로 알맞게 수정하면 됩니다.
(베네치아는 아이디가 $mid, 겜 이름이 $mname 입니다.)

채팅방이 들어갈 프레임에 (원하는 방이름이 여러개 있으니까 다 변경하시길 바랍니다)

<script src="http://www.gagalive.kr/Scripts/AC_RunActiveContent.js" type="text/javascript"></script>
<script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0','width','90%','height','150','title','가가라이브 채팅','src','http://www.gagalive.kr/livechat1?chatroom=원하는방이름','quality','high','pluginspage','http://www.macromedia.com/go/getflashplayer','movie','http://www.gagalive.kr/livechat1?chatroom=원하는방이름' ); //end AC code
</script><noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0"
width="90%" height="150" title="가가라이브 채팅">
<param name="movie" value="http://www.gagalive.kr/livechat1.swf?chatroom=원하는방이름
">
<param name="quality" value="high">
<embed src="http://www.gagalive.kr/livechat1.swf?chatroom=원하는방이름
" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="90%" height="150"></embed>
</object></noscript>

입력하시고 (만약 세로형 쓰고 싶다면 chatroom=원하는방이름 을 전부 chatroom=원하는방이름&position=2 로 변경하시길 바랍니다)

베네치아 top.cgi 의 거의 맨 마지막 줄에 있는 &footer 앞에

use Digest::MD5 'md5_hex';
#만약 Digest::MD5 가 펄 모듈로 설치 안되어 있다면, 위에 Digest::MD5 앞에 # 로 코맨트 추가하고 아래 use Digest::Perl::MD5 앞에 # 코맨트를 삭제하시길 바랍니다. 그리고
http://search.cpan.org/src/DELTA/Digest-Perl-MD5-1.8/lib/Digest/Perl/ 에 있는 MD5.pm 을 다운 받아서 대화방 사용하는 펄 소스가 있는 디렉토리 밑에 Digest\Perl 폴더를 만들어서 넣으시길 바랍니다.
#use Digest::Perl::MD5 'md5_hex';

use Encode;

sub userKey  {
 my ($user, $roomKey) = @_;
  return md5_hex(md5_hex($user . $roomKey) . $roomKey);
}

my $chatroom = '여기에 보안 채팅방 이름 입력';
my $roomkey = '여기에 채팅방 보안 키 입력';
#채팅방 option 주고 싶으면 아래 코맨트 제거 (예로 글씨 크게, 대화방 세로형)
#$chatroom = $chatroom . "&fontlarge=true&position=2";
my $gagaadmin =  "여기에 채팅방 관리자 아이디 입력. 여러명인 경우 , 로 구분.";
$gagaadmin =~ s/\s*,\s*/,/;
my @gagaadmins = split(/,/, $gagaadmin);
########## 아래 펄 소스에 맞게 수정 시작 ###################
my $userz = $mid;
#$usernickz= 유저 별명/닉네임 변수; 없으면 그냥 my $usernickz = $userz; 해보세요.
my $usernickz = $mname;
$usernickz=Encode::encode("utf-8", Encode::decode("euc-kr",$usernickz));
########## 아래 펄 소스에 맞게 수정 끝 ###################
$userkey = userKey($usernickz, $roomkey);
foreach(@gagaadmins)  {
  if($userz eq $_)  {
    $userkey = userKey(userKey($usernickz, $roomkey),$roomkey);
  }
}
$usernickz =~ s/([^A-Za-z0-9])/sprintf("%%%02X", ord($1))/seg;

print '<embed  height="0" width="0" src="http://www.gagalive.kr/livechat1_login.swf?chatroom='.$chatroom.'&user='.$usernickz.'&encrypt='.$userkey.'"></embed>';

를 추가하시길 바랍니다.



배틀로얄 연동:
########## 아래 펄 소스에 맞게 수정 시작 ###################
my $userz = $id2;
#$usernickz= 유저 별명/닉네임 변수; 없으면 그냥 my $usernickz = $userz; 해보세요.
my $usernickz = $l_name;
$usernickz=Encode::encode("utf-8", Encode::decode("euc-kr",$usernickz));
########## 아래 펄 소스에 맞게 수정 끝 ###################





EBS 연동(ebs_sub3.cgi 수정, timerID = setTimeout(\"HERepair()\",5000); } </script> 부분 아래에 전 삽입):
########## 아래 펄 소스에 맞게 수정 시작 ###################
my $userz = $FORM{'pname'};
#$usernickz= 유저 별명/닉네임 변수; 없으면 그냥 my $usernickz = $userz; 해보세요.
my $usernickz = $PL_VALUES[3];
$usernickz=Encode::encode("utf-8", Encode::decode("euc-kr",$usernickz));
########## 아래 펄 소스에 맞게 수정 끝 ###################





건담 택틱스(sysmenu.cgi 수정, 맨 뒤 </body> 앞에 삽입):
########## 아래 펄 소스에 맞게 수정 시작 ###################
my $userz = $in{'id'};
my $chatnick = $kname;
$chatnick=Encode::encode("utf-8", Encode::decode("euc-kr",$chatnick));
########## 아래 펄 소스에 맞게 수정 끝 ###################




위에 CGI 예제에서 frame은 똑같이 생성한 뒤에
HOF(class\class.main.php 수정):
<?
global $user;
if($GLOBALS['userKeyDefined'] != 1)  {
 $GLOBALS['userKeyDefined'] = 1;
  function userKey($user, $roomKey)  {
    return md5(md5($user . $roomKey) . $roomKey);
  }
}

$chatroom = "여기에 보안 채팅방 이름 입력";
$roomkey = "여기에 채팅방 보안 키 입력";
$gagaadmin =  "여기에 채팅방 관리자 아이디 입력. 여러명인 경우 , 로 구분.";
$gagaadmin = preg_replace('/\s*,\s*/', ',', $gagaadmin);
$gagaadmins = split(',', $gagaadmin);
$userz = $this->id;
$usernickz= $this->name;
$usernickz = iconv("EUC-KR", "UTF-8", $usernickz);
$usernickz= $userz;
$userkey = userKey($usernickz, $roomkey);
foreach($gagaadmins as $value)  {
  if($userz == $value)  {
    $userkey = userKey(userKey($usernickz, $roomkey), $roomkey);
  }
}
$usernickz = urlencode($usernickz);
?>
<embed  height="0" width="0" src="http://www.gagalive.kr/livechat1_login.swf?chatroom=<?echo $chatroom ?>&user=<?echo $usernickz?>&encrypt=<?echo $userkey?>"></embed>