예제 #1
0
파일: init.php 프로젝트: larakit/lk-html
Larakit\Boot::register_alias('HtmlTableRow', Larakit\Html\Facades\TableRow::class);
Larakit\Boot::register_alias('HtmlTableRowCell', Larakit\Html\Facades\TableRowCell::class);
Larakit\Boot::register_alias('HtmlLi', Larakit\Html\Facades\Li::class);
Larakit\Boot::register_alias('HtmlLink', Larakit\Html\Facades\Link::class);
Larakit\Boot::register_alias('HtmlUl', Larakit\Html\Facades\Ul::class);
Larakit\Boot::register_alias('HtmlOl', Larakit\Html\Facades\Ol::class);
Larakit\Boot::register_alias('HtmlVideo', Larakit\Html\Facades\Video::class);
Larakit\Boot::register_alias('HtmlBase', Larakit\Html\Facades\Base::class);
//######################################################################
// регистрируем функции
//######################################################################
Larakit\Twig::register_function('html_progress', function () {
    return HtmlProgress::setContent('');
});
Larakit\Twig::register_function('html_map', function ($name, $id = null) {
    return \HtmlMap::setName($name)->setId($id ? $id : $name);
});
Larakit\Twig::register_function('html_progress_bar', function () {
    return HtmlProgressBar::setContent('');
});
Larakit\Twig::register_function('html_a', function ($url) {
    return HtmlA::setHref($url)->setContent($url);
});
Larakit\Twig::register_function('html_audio', function ($src) {
    return HtmlAudio::setSrc($src);
});
Larakit\Twig::register_function('html_abbr', function ($abbr, $fulltext) {
    return HtmlAbbr::setContent($abbr)->setTitle($fulltext);
});
Larakit\Twig::register_function('html_blockquote', function ($content, $author = null) {
    return HtmlBlockquote::setContent($content)->setAuthor($author);
예제 #2
0
    function editMap($hako, $data)
    {
        global $init;
        // パスワード
        if (!Util::checkPassword("", $data['PASSWORD'])) {
            // password間違い
            HakoError::wrongPassword();
            return;
        }
        $html = new HtmlMap();
        $id = $data['ISLANDID'];
        $number = $hako->idToNumber[$id];
        $island = $hako->islands[$number];
        // 地形リストを生成
        $landList = array("{$init->landSea}", "{$init->landSeaSide}", "{$init->landWaste}", "{$init->landPoll}", "{$init->landPlains}", "{$init->landForest}", "{$init->landTown}", "{$init->landProcity}", "{$init->landNewtown}", "{$init->landBigtown}", "{$init->landSeaCity}", "{$init->landFroCity}", "{$init->landPort}", "{$init->landShip}", "{$init->landRail}", "{$init->landStat}", "{$init->landTrain}", "{$init->landFusya}", "{$init->landSyoubou}", "{$init->landSsyoubou}", "{$init->landFarm}", "{$init->landSfarm}", "{$init->landNursery}", "{$init->landFactory}", "{$init->landCommerce}", "{$init->landMountain}", "{$init->landHatuden}", "{$init->landBase}", "{$init->landHaribote}", "{$init->landDefence}", "{$init->landSbase}", "{$init->landSdefence}", "{$init->landMyhome}", "{$init->landSoukoM}", "{$init->landSoukoF}", "{$init->landMonument}", "{$init->landSoccer}", "{$init->landPark}", "{$init->landSeaResort}", "{$init->landOil}", "{$init->landBank}", "{$init->landMonster}", "{$init->landSleeper}", "{$init->landZorasu}");
        // 地形リスト名称を生成
        $landName = array("海、浅瀬", "砂浜", "荒地", "汚染土壌", "平地", "森", "村、町、都市", "防災都市", "ニュータウン", "現代都市", "海底都市", "海上都市", "港", "船舶", "線路", "駅", "電車", "風車", "消防署", "海底消防署", "農場", "海底農場", "養殖場", "工場", "商業ビル", "山、採掘場", "発電所", "ミサイル基地", "ハリボテ", "防衛施設", "海底基地", "海底防衛施設", "マイホーム", "金庫", "食料庫", "記念碑", "スタジアム", "遊園地", "海の家", "海底油田", "銀行", "怪獣", "怪獣(睡眠中)", "ぞらす");
        echo <<<END
<script type="text/javascript">
function ps(x, y, ld, lv) {
\tdocument.InputPlan.POINTX.options[x].selected = true;
\tdocument.InputPlan.POINTY.options[y].selected = true;
\tdocument.InputPlan.LAND.options[ld].selected = true;

\tif(ld == {$init->landMonster} || ld == {$init->landSleeper}) {
\t\tmn = Math.floor(lv / 10);
\t\tlv = lv - mn * 10;
\t\tdocument.InputPlan.MONSTER.options[mn].selected = true;
\t\tdocument.InputPlan.LEVEL.options[lv].selected = true;
\t} else {
\t\tdocument.InputPlan.LEVEL.options[lv].selected = true;
\t}
\treturn true;
}
</script>

<div class="text-center">
\t{$init->tagBig_}{$init->tagName_}{$island['name']}{$init->nameSuffix}{$init->_tagName} マップ・エディタ{$init->_tagBig}<br>
</div>

<form name="TOP" action="{$GLOBALS['THIS_FILE']}" method="post">
\t<input type="hidden" name="PASSWORD" value="{$data['PASSWORD']}">
\t<input type="hidden" name="mode" value="list">
</form>
END;
        // 島の情報を表示
        $html->islandInfo($island, $number, 1);
        // 説明文を表示
        echo <<<END
<div class="text-center">
<table class="table table-bordered">
<tr valign="top">
<td {$init->bgCommandCell}>
\t<b>レベルについて</b>
\t<ul>
\t\t<li><b>海、浅瀬</b><br>レベル 0 のとき海<br>1 のとき浅瀬<br>それ以外 のとき財宝
\t\t<li><b>荒地</b><br>レベル 1 のとき着弾点
\t\t<li><b>村、町、都市</b><br>レベル 30 未満が村<br>レベル 100 未満が町<br>レベル 200 未満が都市
\t\t<li><b>ミサイル基地</b><br>経験値
\t\t<li><b>山、採掘場</b><br>レベル 1 以上のとき採掘場
\t\t<li><b>怪獣</b><br>各怪獣の最大レベルを超える<br>設定はできません
\t\t<li><b>海底基地</b><br>経験値
\t</ul>
</td>
<td {$init->bgMapCell}>
END;
        // 地形出力
        $html->islandMap($hako, $island, 1);
        // エディタ領域の表示
        echo <<<END
</td>
<td {$init->bgInputCell}>
<div class="text-center">
\t<form action="{$GLOBALS['THIS_FILE']}" method="post" name="InputPlan">
\t\t<input type="hidden" name="mode" value="regist">
\t\t<input type="hidden" name="ISLANDID" value="{$island['id']}">
\t\t<input type="hidden" name="PASSWORD" value="{$data['PASSWORD']}">

\t\t<strong>マップ・エディタ</strong><br>
\t\t<hr>
\t\t<strong>座標(</strong>
\t\t<select name="POINTX">
END;
        for ($i = 0; $i < $init->islandSize; $i++) {
            if ($i == $data['defaultX']) {
                echo "<option value=\"{$i}\" selected>{$i}</option>\n";
            } else {
                echo "<option value=\"{$i}\">{$i}</option>\n";
            }
        }
        echo "</select>, <select name=\"POINTY\">";
        for ($i = 0; $i < $init->islandSize; $i++) {
            if ($i == $data['defaultY']) {
                echo "<option value=\"{$i}\" selected>{$i}</option>\n";
            } else {
                echo "<option value=\"{$i}\">{$i}</option>\n";
            }
        }
        echo <<<END
\t\t</select><strong>)</strong>
\t\t<hr>
\t\t<strong>地形</strong>
\t\t<select name="LAND">
END;
        for ($i = 0; $i < count($landList); $i++) {
            if ($landList[$i] == $data['defaultLAND']) {
                echo "<option value=\"{$landList[$i]}\" selected>{$landName[$i]}</option>\n";
            } else {
                echo "<option value=\"{$landList[$i]}\">{$landName[$i]}</option>\n";
            }
        }
        echo <<<END
\t\t</select>
\t\t<hr>
\t\t<strong>怪獣の種類</strong>
\t\t<select name="MONSTER">
END;
        for ($i = 0; $i < $init->monsterNumber; $i++) {
            if ($i == $data['defaultMONSTER']) {
                echo "<option value=\"{$i}\" selected>{$init->monsterName[$i]}</option>\n";
            } else {
                echo "<option value=\"{$i}\">{$init->monsterName[$i]}</option>\n";
            }
        }
        echo <<<END
\t\t</select>
\t\t<hr>
\t\t<strong>船舶の種類</strong>
\t\t<select name="SHIP">
END;
        for ($i = 0; $i < 15; $i++) {
            if ($init->shipName[$i] != "") {
                if ($i == $data['defaultSHIP']) {
                    echo "<option value=\"{$i}\" selected>{$init->shipName[$i]}</option>\n";
                } else {
                    echo "<option value=\"{$i}\">{$init->shipName[$i]}</option>\n";
                }
            }
        }
        echo <<<END
\t\t</select>
\t\t<hr>
\t\t<strong>レベル</strong>
\t\t<input type="number" min="0" max="1048575" size="8" maxlength="7" name="LEVEL" value="{$data['defaultLEVEL']}">
\t\t<hr>
\t\t<input type="submit" value="登録">
\t</form>
</div>

<ul>
\t<li>登録するときは十分注意願います。
\t<li>データを破壊する場合があります。
\t<li>バックアップを行ってから<br>行う様にしましょう。
\t<li>地形データを変更するのみで、<br>他のデータは変更されません。<br>
\tターン更新で他のデータへ反映されます。
</ul>

</td>
</tr>
</table>
</div>
END;
    }
예제 #3
0
 function commandMain($hako, $data)
 {
     global $init;
     $id = $data['ISLANDID'];
     $num = $hako->idToNumber[$id];
     $island = $hako->islands[$num];
     $name = $island['name'];
     // パスワード
     if (!Util::checkPassword($island['password'], $data['PASSWORD'])) {
         // password間違い
         HakoError::wrongPassword();
         return;
     }
     // モードで分岐
     $command = $island['command'];
     if (strcmp($data['COMMANDMODE'], 'delete') == 0) {
         Util::slideFront($command, $data['NUMBER']);
         Success::commandDelete();
     } else {
         if ($data['COMMAND'] == $init->comAutoPrepare || $data['COMMAND'] == $init->comAutoPrepare2) {
             // フル整地、フル地ならし
             // 座標配列を作る
             $r = Util::makeRandomPointArray();
             $rpx = $r[0];
             $rpy = $r[1];
             $land = $island['land'];
             // コマンドの種類決定
             switch ($data['COMMAND']) {
                 case $init->comAutoPrepare:
                     $kind = $init->comPrepare;
                     break;
                 case $init->comAutoPrepare2:
                     $kind = $init->comPrepare2;
                     break;
             }
             //			$kind = $init->comPrepare;
             //			if($data['COMMAND'] == $init->comAutoPrepare2) {
             //				$kind = $init->comPrepare2;
             //			}
             $i = $data['NUMBER'];
             $j = 0;
             while ($j < $init->pointNumber && $i < $init->commandMax) {
                 $x = $rpx[$j];
                 $y = $rpy[$j];
                 if ($land[$x][$y] == $init->landWaste) {
                     Util::slideBack($command, $i);
                     $command[$i] = array('kind' => $kind, 'target' => 0, 'x' => $x, 'y' => $y, 'arg' => 0);
                     $i++;
                 }
                 $j++;
             }
             Success::commandAdd();
         } else {
             if ($data['COMMAND'] == $init->comAutoReclaim) {
                 $r = Util::makeRandomPointArray();
                 $rpx = $r[0];
                 $rpy = $r[1];
                 $land = $island['land'];
                 $landValue = $island['landValue'];
                 $i = $data['NUMBER'];
                 $j = 0;
                 while ($j < $init->pointNumber && $i < $init->commandMax) {
                     $x = $rpx[$j];
                     $y = $rpy[$j];
                     $kind = $land[$x][$y];
                     $lv = $landValue[$x][$y];
                     if ($kind == $init->landSea && $lv == 1) {
                         Util::slideBack($command, $i);
                         $command[$i] = array('kind' => $init->comReclaim, 'target' => 0, 'x' => $x, 'y' => $y, 'arg' => 0);
                         $i++;
                     }
                     $j++;
                 }
                 /*
                    } elsif($HcommandKind == $HcomAutoDestroy) {
                        # 浅瀬掘削
                        makeRandomPointArray();
                        my($land) = $island->{'land'};
                        my($landValue) = $island->{'landValue'};
                 
                        my($x, $y, $kind, $lv, $i, $n);
                        $n = 0;
                        for ($i = 0; ($i < $HpointNumber) && ($n < $HcommandMax); $i++) {
                            $x = $Hrpx[$i];
                            $y = $Hrpy[$i];
                            $kind = $land->[$x][$y];
                            $lv = $landValue->[$x][$y];
                 
                            if (($kind == $HlandSea) && ($lv == 1)) {
                                # 浅瀬
                                slideBack($command, $HcommandPlanNumber);
                                $command->[$HcommandPlanNumber] = {
                                    'kind' => $HcomDestroy, # 掘削
                                    'target' => 0,
                                    'x' => $x,
                                    'y' => $y,
                                    'arg' => 0
                                    };
                                $n++;
                            }
                        }
                        tempCommandAdd();
                    } elsif($HcommandKind == $HcomAutoSellTree) {
                        # 伐採
                        # (数量×200本より多い森だけが対象)
                        makeRandomPointArray();
                        my($land) = $island->{'land'};
                        my($landValue) = $island->{'landValue'};
                 
                        my($x, $y, $kind, $lv, $i, $n);
                        $n = 0;
                        for ($i = 0; ($i < $HpointNumber) && ($n < $HcommandMax - 1); $i++) {
                            $x = $Hrpx[$i];
                            $y = $Hrpy[$i];
                            $kind = $land->[$x][$y];
                            $lv = $landValue->[$x][$y];
                 
                            if (($kind == $HlandForest) && ($lv > $HcommandArg * 2)) {
                                # 森
                                slideBack($command, $HcommandPlanNumber);
                                $command->[$HcommandPlanNumber] = {
                                    'kind' => $HcomSellTree, # 伐採
                                    'target' => 0,
                                    'x' => $x,
                                    'y' => $y,
                                    'arg' => 0
                                    };
                                $n += 2;
                            }
                        }
                        tempCommandAdd();
                    } elsif($HcommandKind == $HcomAutoForestry) {
                        # 伐採と植林
                        # (数量×200本より多い森だけが対象)
                        makeRandomPointArray();
                        my($land) = $island->{'land'};
                        my($landValue) = $island->{'landValue'};
                 
                        my($x, $y, $kind, $lv, $i, $n);
                        $n = 0;
                        for ($i = 0; ($i < $HpointNumber) && ($n < $HcommandMax - 1); $i++) {
                            $x = $Hrpx[$i];
                            $y = $Hrpy[$i];
                            $kind = $land->[$x][$y];
                            $lv = $landValue->[$x][$y];
                 
                            if (($kind == $HlandForest) && ($lv > $HcommandArg * 2)) {
                                # 森
                                slideBack($command, $HcommandPlanNumber);
                                $command->[$HcommandPlanNumber] = {
                                    'kind' => $HcomPlant, # 植林
                                    'target' => 0,
                                    'x' => $x,
                                    'y' => $y,
                                    'arg' => 0
                                    };
                                slideBack($command, $HcommandPlanNumber);
                                $command->[$HcommandPlanNumber] = {
                                    'kind' => $HcomSellTree, # 伐採
                                    'target' => 0,
                                    'x' => $x,
                                    'y' => $y,
                                    'arg' => 0
                                    };
                                $n += 2;
                            }
                        }
                        tempCommandAdd();
                 */
             } else {
                 if ($data['COMMAND'] == $init->comAutoDelete) {
                     // 全消し
                     for ($i = 0; $i < $init->commandMax; $i++) {
                         Util::slideFront($command, 0);
                     }
                     Success::commandDelete();
                 } else {
                     if (strcmp($data['COMMANDMODE'], 'insert') == 0) {
                         Util::slideBack($command, $data['NUMBER']);
                     }
                     Success::commandAdd();
                     // コマンドを登録
                     $command[$data['NUMBER']] = array('kind' => $data['COMMAND'], 'target' => $data['TARGETID'], 'x' => $data['POINTX'], 'y' => $data['POINTY'], 'arg' => $data['AMOUNT']);
                 }
             }
         }
     }
     // データの書き出し
     $island['command'] = $command;
     $hako->islands[$num] = $island;
     $hako->writeIslandsFile($island['id']);
     // owner modeへ
     $html = new HtmlMap();
     $html->owner($hako, $data);
 }