「LFS プログラミング」の版間の差分
Skylinekakkoii (トーク | 投稿記録) M (→LFSWorld stats) |
Skylinekakkoii (トーク | 投稿記録) M (→LFSの文字とエスケープコード: 一部翻訳 "キリル語"には違和感がありますが、Microsoftがそう翻訳しているので...) |
||
92 行 | 92 行 | ||
LFS handles strings in its own way, it uses Windows codepages sepearared by special escape characters. | LFS handles strings in its own way, it uses Windows codepages sepearared by special escape characters. | ||
---- | ---- | ||
− | + | 以下の表にあるコードは、それぞれのコードページを参照させるエスケープコードです。この表は、実際には100%正確ではありませんが、ほとんどの目的に対しては期待される結果が得られるでしょう。 | |
{| border="0" style="border: 1px solid #000000; background-color: #FAFAFA;" width="600" | {| border="0" style="border: 1px solid #000000; background-color: #FAFAFA;" width="600" | ||
− | ! colspan="3" style="background-color: #0066CC; color:#FFFFFF;" |''' | + | ! colspan="3" style="background-color: #0066CC; color:#FFFFFF;" |'''コードページ''' |
|- style="background-color: #DFDFDF;" | |- style="background-color: #DFDFDF;" | ||
− | ! style="border: 1px solid #000000;" | | + | ! style="border: 1px solid #000000;" | コード |
− | ! style="border: 1px solid #000000;" | | + | ! style="border: 1px solid #000000;" | 名前 |
− | ! style="border: 1px solid #000000;" | | + | ! style="border: 1px solid #000000;" | コードページ |
|- | |- | ||
| ^L | | ^L | ||
− | | Latin 1 | + | | ラテン語 (Latin 1) |
| CP1252 | | CP1252 | ||
|- | |- | ||
| ^G | | ^G | ||
− | | Greek | + | | ギリシア語 (Greek) |
| CP1253 | | CP1253 | ||
|- | |- | ||
| ^C | | ^C | ||
− | | Cyrillic | + | | キリル語 (Cyrillic) |
| CP1251 | | CP1251 | ||
|- | |- | ||
| ^J | | ^J | ||
− | | Japanese | + | | 日本語 (Japanese) |
| CP932 | | CP932 | ||
|- | |- | ||
| ^E | | ^E | ||
− | | Central Europe | + | | 中央ヨーロッパ (Central Europe) |
| CP1250 | | CP1250 | ||
|- | |- | ||
| ^T | | ^T | ||
− | | Turkish | + | | トルコ語 (Turkish) |
| CP1254 | | CP1254 | ||
|- | |- | ||
| ^B | | ^B | ||
− | | Baltic | + | | バルト語 (Baltic) |
| CP1257 | | CP1257 | ||
|- | |- | ||
| ^H | | ^H | ||
− | | Traditional Chinese | + | | 繁体字 中国語 (Traditional Chinese) |
| CP950 | | CP950 | ||
|- | |- | ||
| ^S | | ^S | ||
− | | Simplified Chinese | + | | 簡体字 中国語 (Simplified Chinese) |
| CP936 | | CP936 | ||
|- | |- | ||
| ^K | | ^K | ||
− | | Korean | + | | 韓国語 (Korean) |
| CP949 | | CP949 | ||
|} | |} | ||
− | + | 他にも、特殊文字を表記するエスケープコードがいくつかあります。 | |
{| border="0" style="border: 1px solid #000000; background-color: #FAFAFA;" width="600" | {| border="0" style="border: 1px solid #000000; background-color: #FAFAFA;" width="600" | ||
− | ! colspan="2" style="background-color: #0066CC; color:#FFFFFF;" |''' | + | ! colspan="2" style="background-color: #0066CC; color:#FFFFFF;" |'''エスケープコード''' |
|- style="background-color: #DFDFDF;" | |- style="background-color: #DFDFDF;" | ||
− | ! style="border: 1px solid #000000;" | | + | ! style="border: 1px solid #000000;" | コード |
− | ! style="border: 1px solid #000000;" | | + | ! style="border: 1px solid #000000;" | 文字 |
|- | |- | ||
| ^v | | ^v | ||
184 行 | 184 行 | ||
|} | |} | ||
− | + | そして最後に、文字色も以下の表のエスケープコードを使用して表記されています。 | |
{| border="0" style="border: 1px solid #000000; background-color: #FAFAFA;" width="600" | {| border="0" style="border: 1px solid #000000; background-color: #FAFAFA;" width="600" | ||
− | ! colspan="2" style="background-color: #0066CC; color:#FFFFFF;" |''' | + | ! colspan="2" style="background-color: #0066CC; color:#FFFFFF;" |'''文字色''' |
|- style="background-color: #DFDFDF;" | |- style="background-color: #DFDFDF;" | ||
− | ! style="border: 1px solid #000000;" | | + | ! style="border: 1px solid #000000;" | コード |
− | ! style="border: 1px solid #000000;" | | + | ! style="border: 1px solid #000000;" | 色 |
|- | |- | ||
| ^0 | | ^0 | ||
− | | | + | | 黒 |
|- | |- | ||
| ^1 | | ^1 | ||
− | | | + | | 赤 |
|- | |- | ||
| ^2 | | ^2 | ||
− | | | + | | 黄緑 |
|- | |- | ||
| ^3 | | ^3 | ||
− | | | + | | 黄 |
|- | |- | ||
| ^4 | | ^4 | ||
− | | | + | | 青 |
|- | |- | ||
| ^5 | | ^5 | ||
− | | | + | | 紫 |
|- | |- | ||
| ^6 | | ^6 | ||
− | | | + | | 薄青 |
|- | |- | ||
| ^7 | | ^7 | ||
− | | | + | | 白 |
|- | |- | ||
| ^8 | | ^8 | ||
− | | | + | | 濃緑 (デフォルト) |
|- | |- | ||
| ^9 | | ^9 | ||
− | | | + | | オリジナルの文字色とコードページ |
|} | |} | ||
<!-- 他言語へのリンク --> | <!-- 他言語へのリンク --> | ||
[[en:LFS Programming]] | [[en:LFS Programming]] |
2017年3月24日 (金) 13:14時点における最新版
はじめに
By its nature LFS is a very programmer friendly game and, while customisation of the game engine itself is frowned upon, there are many other avenues available for budding addon writers to explore. Whether it's parsing some esoteric file format, writing your own server system, or just grabbing your friend's hotlaps from LFSWorld, LFS has something to keep even the most adventurous hackers busy!
The following category attempts to explain and document the many various programmer topics related to LFS, in hopefully a clear and useful way. Our job of course is not to teach you how to program, there are many, many books about that, but to show you the myriad possibilities for customising LFS which are right at your fingertips.
プログラミングカテゴリ
InSim
InSim は、外部プログラムとLive for Speedの通信を可能にするプロトコルです。これを使用すると、LFSとソケット通信を行い、パケットデータの送受信を行うことができます。The InSim protocol describes how each of these packets is formatted, and any programming language which can create a network connection and send and receive strings of binary data can interface with it.
InSim Relay
With InSim Relay you can connect to any subscribed host and share a subset of InSim packets. This is mainly used in the creation of spectator style apps, such as LFSRemote.
OutSim / OutGauge
OutSim と OutGauge も外部プログラムとソケット通信を可能にするものです。InSimと似ていますが、こちらはモーションシミュレーターや外部ダッシュボード(メーターなど)に向けて作られたものです。
LFSWorld ステータス
LFSWorld ステータス では、ホストに関する全ての情報(プレイ中のレーサーの情報など)を取得するクエリを使用することができます。
ファイルフォーマット
LFS独自のたくさんの ファイルフォーマット は、開発チーム(公式)や、HEXエディタを使った熱狂的なハッカーたち(非公式)によってドキュメント化されています。
共通のプログラミング情報
データ型
LFSのゲームクライアントはC++によって書かれており、ほとんどのデータ型はC++の言語仕様に準拠しています。The following table represents a breakdown of what each data-type means and what sort of value it holds.
データ型 | |||
---|---|---|---|
LFS | データ型 | PHP パック型 | 説明 |
char | 1 byte signed integer | a or C | An alphanumeric character (or a number between -128 to 127) |
byte | 1 byte unsigned integer | C | A number between 0 and 255 |
word | 2 byte unsigned integer | v | A number between 0 and 65,535 |
short | 2 byte signed integer | s | A number between -32,768 and +32,767 |
unsigned | 4 byte unsigned integer | V | A number between 0 and +4,294,967,295 |
int | 4 byte signed integer | l | A number between -2,147,483,648 and +2,147,483,647 |
float | 4 byte floating point number | f | A number with a decimal point |
In C strings are not first-class data-types, merely arrays of characters, so you will often see strings denoted using the following syntax.
char[16] <variable>
This indicates that the variable is a string of 16 characters in length, but in reality as the last character in a C-style string is always NULL, it would only be able to hold a value of 15 characters. For php in this case, you would use the 'a' as the pack format code, with a 16 following after it's declaration.
For example:
pack('a16', $variable);
LFSの文字とエスケープコード
Strings in LFS are C-style strings, meaning that they end with a NULL character, or are often padded with NULL characters. Most other high-level languages have done away with this limitation, so it's important to strip any NULL characters from the end of a string before using it.
LFS handles strings in its own way, it uses Windows codepages sepearared by special escape characters.
以下の表にあるコードは、それぞれのコードページを参照させるエスケープコードです。この表は、実際には100%正確ではありませんが、ほとんどの目的に対しては期待される結果が得られるでしょう。
コードページ | ||
---|---|---|
コード | 名前 | コードページ |
^L | ラテン語 (Latin 1) | CP1252 |
^G | ギリシア語 (Greek) | CP1253 |
^C | キリル語 (Cyrillic) | CP1251 |
^J | 日本語 (Japanese) | CP932 |
^E | 中央ヨーロッパ (Central Europe) | CP1250 |
^T | トルコ語 (Turkish) | CP1254 |
^B | バルト語 (Baltic) | CP1257 |
^H | 繁体字 中国語 (Traditional Chinese) | CP950 |
^S | 簡体字 中国語 (Simplified Chinese) | CP936 |
^K | 韓国語 (Korean) | CP949 |
他にも、特殊文字を表記するエスケープコードがいくつかあります。
エスケープコード | |
---|---|
コード | 文字 |
^v | | |
^a | * |
^c | : |
^d | \ |
^s | / |
^q | ? |
^t | " |
^l | < |
^r | > |
^h | # |
^^ | ^ |
そして最後に、文字色も以下の表のエスケープコードを使用して表記されています。
文字色 | |
---|---|
コード | 色 |
^0 | 黒 |
^1 | 赤 |
^2 | 黄緑 |
^3 | 黄 |
^4 | 青 |
^5 | 紫 |
^6 | 薄青 |
^7 | 白 |
^8 | 濃緑 (デフォルト) |
^9 | オリジナルの文字色とコードページ |