経験点チケット発行
GF別冊にオンラインセッションの経験点は掲示板の画像データでどう?みたいな記事がありました。確かに画像のが今っぽい?毎回PDF入力→出力は面倒だし。ならば定型フォーマットの経験点チケットに値を埋め込んで画像データを作成するツールもありかなというアイデアと試作。 https://t.co/owyN5LzwWR
— ꋫꀗ꒐ꌥꌇꀗ꒐ (@akiyuki3) 2020年10月7日
参考までにソースは公開するので、デザインとかフォントとか、そこらへんは誰かカッコイイやつを頼むw https://t.co/b15RMgDNUL
— ꋫꀗ꒐ꌥꌇꀗ꒐ (@akiyuki3) 2020年10月7日
ツール本体
使用イメージ
こんな感じのフォームを入力して、「作成」ボタンを押すと
こんな感じの画像データ(png)を出力します。
ソース
expTNM.html
<?php require_ons "expTNM.php"; ?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>TNM EXP</title> </head> <body> 『トーキョー・ナイトメア』プレイヤー経験点<br /> <form action="expTNM.php" method="post"> <br /> <table> <tr> <td>シナリオタイトル</td> <td><input type="text" name="s1" size="35" maxlength="35"></td> </tr> <tr> <td>ルーラー名</td> <td><input type="text" name="s2" size="35" maxlength="35"></td> </tr> <tr> <td>日付</td> <td><input type="date" name="d1"></td> </tr> <tr> <td>プレイヤー名</td> <td><input type="text" name="s3" size="35" maxlength="35"></td> </tr> <tr> <td>キャスト名</td> <td><input type="text" name="s4" size="35" maxlength="35"></td> </tr> </table> <br /> <table> <tr> <td>ルーラーの依頼を果たした</td> <td align="center" width="30"><input type="checkbox" name="c1" value="1"</td> <td align="right">1点<td> </tr> <tr> <td>会場の手配、連絡などを行なった</td> <td align="center" width="30"><input type="checkbox" name="c2" value="1"</td> <td align="right">1点<td> </tr> <tr> <td>アクトに最後まで参加した</td> <td align="center" width="30"><input type="checkbox" name="c3" value="5"</td> <td align="right">5点<td> </tr> <tr> <td>よいロールプレイを行なった</td> <td align="center" width="30"><input type="checkbox" name="c4" value="5"</td> <td align="right">5点<td> </tr> <tr> <td>PSを果たした</td> <td align="center" width="30"><input type="checkbox" name="c5" value="5"</td> <td align="right">5点<td> </tr> <tr> <td>SPSを果たした</td> <td align="center" width="30"><input type="number" name="c6" min="0" max="5"></td> <td align="right">最大5点<td> </tr> <tr> <td>他のプレイヤーを助ける言動を行なった</td> <td align="center" width="30"><input type="checkbox" name="c7" value="5"</td> <td align="right">5点<td> </tr> <tr> <td>アクトの進行を助けた</td> <td align="center" width="30"><input type="checkbox" name="c8" value="5"</td> <td align="right">5点<td> </tr> <tr> <td>うまく神業を使った</td> <td align="center" width="30"><input type="number" name="c9" min="0" max="9"></td> <td align="right">点<td> </tr> <tr> <td>シーンに登場した</td> <td align="center" width="30"><input type="number" name="c10" min="0" max="5"></td> <td align="right">最大5点<td> </tr> </table> <table> <tr> <td>ルーラーに経験点をあげる?</td> <td><input type="radio" name="r1" value="Yes">YES</td> <td><input type="radio" name="r1" value="No">NO</td> </tr> </table> <br /> <input type="submit" value="作成"> </form> </body> </html>
expTNM.php
<?php header("Content-type: text/html; charset=utf-8"); $inputImage="expTNM.png"; $outputImage="expTNMoutput.png"; $image=imagecreatefrompng($inputImage); $color=imagecolorallocate($image, 0, 0, 0); $font="ipaexg.ttf"; $expValue=intval($_POST["c1"] + intval($_POST["c2"]) + intval($_POST["c3"]) + intval($_POST["c4"]) + intval($_POST["c5"]) + intval($_POST["c6"]) + intval($_POST["c7"]) + intval($_POST["c8"]) + intval($_POST["c9"]) + intval($_POST["c10"])); imagettftext($image, 22, 0, 170, 65, $color, $font, $expValue); //経験点 imagettftext($image, 11, 0, 120, 105, $color, $font, $_POST["s1"]); //タイトル imagettftext($image, 11, 0, 120, 130, $color, $font, $_POST["s2"]); //ルーラー imagettftext($image, 11, 0, 120, 155, $color, $font, $_POST["d1"]); //日付 imagettftext($image, 11, 0, 120, 180, $color, $font, $_POST["s3"]); //プレイヤー名 imagettftext($image, 11, 0, 120, 205, $color, $font, $_POST["s4"]); //キャスト名 imagettftext($image, 11, 0, 250, 230, $color, $font, $_POST["r1"]); //ルーラー経験点 imagepng($image,"expTNMoutput.png"); echo "<img src=" . $outputImage . ">"; ?>