0

PHP と Ajax を使用して、ターン ベースのマルチプレイヤー ゲームに取り組んでいます。この機能により、プレーヤーはユーザー情報を使用してゲームにログインし、AI または対戦相手と対戦できるゲーム モードを選択できます。各ユーザーはリストからキャラクターを選択することができ、この機能はすでに完成しています。チェスのように、プレーヤーが別のプレーヤーを検索して戦うことができるように、検索機能を作成したいと思います。ただし、現時点では、検索を行うためにプレーヤーに別のユーザーのユーザー名を入力してもらいたいと考えています。検索関数を作成する方法を見つけるためにオープン ソースを検索しましたが、見つけた現在の関数によってコードが壊れてしまいます。これが私の現在のモードコードです:

// Define Mode
if (isset($_GET['mode'])) {
    $mode = $secure->clean($_GET['mode']);
} else {
    $mode = '';
}
if ($mode == 'selection') {

    $page_title .=' > Character Selection';
    $page_titles .= ' Character Selection - Power Bond';

}
else if ($mode == 'search') {


if (isset($_GET['type'])) {
    $type = $secure->clean($_GET['type']);
} else {
    $type = '';
}

    if ($type == 'private') { 
        if (isset($_POST['pbsubmit']))  {
             $name = $secure->clean($_POST['name']);


        }
    }


} 

ここに私のajaxがあります。私が見つけた関数は、ユーザー名を見つけるために一致をチェックするためのものでした。その機能は私のゲームを壊します。

//Check the match.
if (isset($_POST['f']) && $_POST['f'] == 'checkMatch')  {
$checkMatch = $db->query("SELECT * FROM accounts WHERE `id` = '".$account['id']."'");
    while ($info = mysql_fetch_array($checkMatch)) {
        $status = $info['status'];
        $gameid = $info['gameid'];
    }

$getGame = $db->fetch("SELECT * FROM Games WHERE `gameid` = '$gameid'");

        $status = $info['status'];
        $gameid = $info['gameid'];

if(!$getGame = 'NULL') {
    $data = 'testaeta';
} else {
    $data = '<h1> Who do you want to battle against? </h1>
<br />
<form action="" method="post" id="form-pb" name="pb" target="_self">
USERNAME:<input name="name" type="text" size="40" maxlength="40" />

<input name="pbsubmit" type="submit" value="Search"/>
</form>
<a class="goback" href="#">Cancel</a>';
}

echo $data;

}`

これが私のJavascriptです:

`var match = null;
function popUp(what){
if(!what) errorMessage('Error: params', 'params', 'none');
switch(what){
    case 'search':
        preLoad('Loading please wait . . .');
        $('#main_container').prepend('<div id="popup"><div class="opacity"></div><div class="search"></div></div>');
        $('.search').load('./?page=game&mode=search&type=private', function(){
            $('#preloader').fadeOut('slow',function(){
                $('#preloader').remove();
            });         
        });
    break;
    case 'match':
        $.ajax({
            url : _path + "/core/ajax.php",
            type : 'POST',
            data : { f: 'checkMatch'},
            dataType : 'text',
            success :  function(data) {
                if(data){
                    $('#main_container').prepend(data);
                    match = setInterval(function(){
                        if(!$('.search').length){
                            $('#main_container').prepend('<div id="popup"><div class="opacity"></div><div class="search"></div></div>');
                        }
                        $('.search').load('./?page=game&mode=search&type=private', function(){

                            var meta = $('#stopMe').attr('content');
                            if(meta){
                                meta = meta.split("URL="), meta = meta[1];
                                window.location = meta;                                             
                            }

                        });                                     
                    },1000);
                }
            }
        });
    break;
    case 'submit':
        $.post('./?page=game&mode=search&type=private', $("#form-pb").serialize(), function(data){
            var $response=$(data);
            var error = $response.filter('h3').text();
            $('.search').html(data);                
            if(!error){
                match = setInterval(function(){
                if(!$('.search').length){
                    $('#main_container').prepend('<div id="popup"><div class="opacity"></div><div class="search"></div></div>');
                }
                $('.search').load('./?page=game&mode=search&type=private', function(){
                    var meta = $('#stopMe').attr('content');                                var meta = $('#stopMe').attr('content');
                    if(meta){
                        meta = meta.split("URL="), meta = meta[1];
                        window.location = meta;                                         
                    }                           
                });                             
                },1000);                    
            }
        });         
    break;
}
}

` mysql は別として、これが機能するようにするための私の主な焦点です。この問題を解決する方法について誰かが解決策を持っていますか? また、可能であればオープンソースの例が欲しいです。

4

2 に答える 2