SPSOS ログインサーバー 詳細設定
全体的なサーバー設置や設定方法の流れは
[ DAT版 ]か[ SQL版 ]のページを参照してください。
ここに記載されている事は運営上必須ではないので読まなくても平気です。
知ってると役に立つかもしれない設定や調整です。
[DAT版][SQL版] アイテム取得制限
クエストクリア後のアイテム報酬に制限をかけます。
ゲームサーバー側で独自に実装したクエストでのアイテム報酬を制御できます。
この取得制限に引っかかると即座に回線が切断されます。
nProが解除されてるため、プレイヤー側で簡単にアイテムが生成できる環境にあります。
シップゲートでクリア報酬に制限をかけてもあまり効果はないかもしれません。
questitem.txtに取得許可する[ アイテムコード ]を入れてください。
[DAT版][SQL版] ウェルカムメッセージ
パッチサーバー接続時に表示されるメッセージ
welcome.txtに文字入力するだけですが、文字に色をつけることもできます。
$C0 Black
$C1 Blue
$C2 Green
$C3 Cyan
$C4 Red
$C5 Purple
$C6 Yellow
$C7 White
$C8 Pink
$C9 Violet
$CG V2 color cycle
[DAT版][SQL版] パッチサーバー転送速度設定
patch.iniに転送速度を指定します。
ディフォルトでは50KB/sに設定されています。
大きい値にするとパッチファイルの転送に回線を占有されてしまい
ゲームプレイ中の人にラグなどとして影響が出る可能性があります。
小さい値だと、パッチ終了までの時間が長くなります。
お使いの回線速度と相談してください。
[DAT版][SQL版] キャラクタ文字色設定
tethealla.iniにてキャラクタの文字色を設定します。
色の指定方法がわからない時は「 カラーコード 」で検索してください。
# Global GM name color
1D94F7
# Local GM name color
B0CEDE
# Normal name color
FFFFFF
[SQL版] ゲームアカウントの追加方法
SQL版のみ対応。
アカウントの自動登録スクリプトです。
WEBサーバーを立ててそこに設置します。
まずはアカウント登録用のスクリプトを入手
PHP signup code
http://www.pioneer2.net/forum/viewtopic.php?t=112
赤文字の部分を自分の環境に合わせて変更してください。
<?php
$submit = $_POST["submit"];
if (!$submit) {
?>
<html>
<title>
SPSOS "Tethealla" Test Server Signup</title>
<body>
<center>
<table width="650">
<tr>
<td><center><img src="
Jack283.JPG"><font face="Tahoma"><br>
<b><h3>
SPSOS "Tethealla"</h3>Test Server Signup</center><br>
<form method="POST" action="signup.php">
Desired account ID: <input name="username"><br>
Password: <input name="password1" type=password><br>
Password (confirm): <input name="password2" type=password><br>
E-mail (used for account recovery): <input name="aabf1"><br>
E-mail (confirm): <input name="aabf2"><br></font>
<span style="display:none;visibility:hidden;">
<label for="email">
Ignore this text box. You've been warned! : )
</label>
<input type="text" name="email" size="1"
value="" />
</span><br><input type="submit" name="submit"
value="Signup!">
</td></tr></table>
</body>
</html>
<?php
}
else
{
$fake = addslashes ($_POST["email"]);
if ($fake) die;
if ((strlen ($_POST["username"]) > 16) || (strlen ($_POST["password1"])
> 16))
die ("Username or password is too long. (16 char max)");
$username = addslashes ($_POST["username"]);
$pw = $_POST["password1"];
$password1 = $_POST["password1"];
$password2 = $_POST["password2"];
$username = strtolower ($username);
$password1 = strtolower ($password1);
$password2 = strtolower ($password2);
$email1 = addslashes ($_POST["aabf1"]);
$email2 = addslashes ($_POST["aabf2"]);
if (!$username) die ("No desired account ID specified.");
if (!$password1) die ("No password specified.");
if ($password1 != $password2) die ("Input passwords do not match.");
if ($email1 != $email2) die ("Input emails do not match.");
$reg_seconds = round(time() / 3600);
$password1 .= "_" . $reg_seconds . "_salt";
$password1 = addslashes($password1);
if (!$db = @mysql_connect ("localhost", "
SQLユーザー名", "
パスワード") )
die ("Can't connect to MySQL.");
if (
[email protected]_select_db ("
データベース名", $db))
die ("Can't select PSO database.");
$sql = "SELECT * from account_data WHERE username='" . $username
. "'";
$result = mysql_query ($sql, $db);
if (!$result) die ("Unable to query database.");
if ($myrow = mysql_fetch_array($result))
die ("Account name is already taken.");
$password1 = md5 ($password1);
$sql = "INSERT into account_data (username,password,email,regtime,isgm,isactive)
"
. "VALUES ('". $username . "', '" . $password1 . "',
'" . $email1 . "', '" . $reg_seconds . "', '0', '1')";
$result = mysql_query ($sql, $db);
if (!$result) die ("Unable to add account into database.");
$gcnum = mysql_insert_id();
echo "Account " . $username ." was successfully created!<br><br>\r\nYour
new guild card # is " . $gcnum;
}
?>
ディフォルト設定でのXAMPPの場合
インストール場所であるC:\xampp\htdocsがhttp://localhost/のルートページになります。
htdocsの中にsignup.txtの拡張子を変えて「 signup.php 」として置きます。
ApacheとMyslqは起動させておいてください。
http://localhost/signup.phpへアクセスしてアカウントの登録ができれば成功です。
外部公開する時はこのlocalhost部分にドメインやグローバルなIPアドレスが入ることになります。
[SQL版] パスワードの変更
SQLのデータベースに登録されたパスワードを変更する時に使います。
上記のゲームアカウントの追加と同様、phpが実行できる環境が必要です。
また、パスワードの生成はできますが、
パスワードの変更作業は手動です。
Question regarding Database
http://www.pioneer2.net/forum/viewtopic.php?t=348
<?
/*
*-
* Filename: recalcpassword.php
* Copyright (c) 2009 Pol C.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of copyright holders nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL COPYRIGHT HOLDERS OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
THE
* POSSIBILITY OF SUCH DAMAGE.
*/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-type" content="text/html; charset=UTF-8"
/>
<title>Password calculator</title>
</head>
<body>
<?php
// Generates the MD5 String from the user password,
regSecs is preset to server time, but you can put the DBone to recalc an
existing account pass.
function calcPassword ( $inputPassword, $regSecs = "") {
//Faster way? return md5($addslashes(strtolower($inputpassword)."_".$regSecs."_salt")
if (!$regSecs) {
$regSecs = round(time() / 3600);
}
$outputPassword = strtolower($inputPassword);
$outputPassword .= "_".$regSecs."_salt";
$outputPassword = addslashes($outputPassword);
$outputPassword = md5($outputPassword);
return $outputPassword;
}
if (isset($_POST['password'])) {
if (isset($_POST['regSecs'])) {
$pass = calcPassword($_POST['password'], $_POST['regSecs']);
} else {
$pass = calcPassword($_POST['password']);
}
?>
<p>The salted md5 password is <? echo "$pass"; ?></p>
<p> Want to generate another password?</p>
<?
}
?>
<form method="post" action="recalcpassword.php">
<p>
<label for="password">Password</label>
<input id="password" type="password" name="password" /> <br/>
<label for="regSecs">Regtime</label>
<input id="regSecs" type="text" name="regSecs"
/> <br/>
<input type="submit" value="make me the password"
/>
</p>
</form>
<p>
<a href="http://validator.w3.org/check?uri=referer">
<img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid
XHTML 1.0 Strict" height="31" width="88" /></a>
</p>
</body>
</html>
赤文字の「 type="password" 」を「 type="text" 」に変更すると
パスワードの入力部分が隠されずそのまま表示されるようになります。
管理者が生パスワードを知りたくない場合
利用者側で暗号化パスワードを生成してもらい
暗号化パスとregtimeを管理者に伝えることで
管理者が生パスワードを知ることなく変更できます。
phpを使う方法以外にも
特に何も用意せずともパスワードを変更する方法があります。
1 : BBアカウントを新規作成 ( 登録時のパスワードを忘れずに )
2 : データベースのpasswordの項目を見る
3 : 暗号化済みの新規登録したIDのパスワードを控える
4 : 新規登録したIDのregtimeの値を控える
5 : 変更したいIDにその暗号化passwordとregtimeを入力
これで新規登録時のパスワードでアクセスできるようになります。
[SQL版] グローバルGMの追加削除
*** 重要 ***
他者にグローバルGMの権限を与えることは非常に危険です。
ゲーム内の管理運営の代行は、ローカルGMの権限を与えてください。
PSOBBのデータベースへアクセスし、「 account_data 」を選択してください。
アカウント情報が表示され、username,password,emailとカテゴリが並んでいます。
その中に「 isgm 」というのがあります。
これがGMフラグです。( 1 : GM / 0 : 一般 )
1を0にすれば一般になりますし、0を1にすればGMになります。
データの編集は鉛筆マークをクリックしてください。
[DAT版] グローバルGMの追加削除
*** 重要 ***
他者にグローバルGMの権限を与えることは非常に危険です。
ゲーム内の管理運営の代行は、ローカルGMの権限を与えてください。
使用するツールにより2通りの方法があります。
方法1 : 「 account.dat 」をバイナリエディタを使って追加
DE 80 02の後に続く01がフラグです。
SQL版と同様に1ならGM、0なら一般です。
方法2 : 「 account.dat 」を専用ツールを使って追加
http://www.pioneer2.net/forum/viewtopic.php?t=511&start=10
ウイルスチェック等は各自で行い、リスクを承知の上で実行してください。
▲ top