公式ブログ:minor update (誤訳あるかも)
リリースに向かっての作業中、私たちはバグ修正を行うとともに、まだ活発に開発が続いている、より小さな部分の改変の重要な部分を完了させようとしています。これらは大きなことではありません。MODに本当に変革をもたらすが、全体としては大きな差異はありません(特にmodeの質において)そしてそれらはリリースに関係ありません。
もしそれらが完了しなかったなら、予定している休止のときにそれらは含まれなくなるでしょう。それでも心配することはありません、ほとんどのこれらの小さな機能は、うまくいけばmodeを大きく変化させるであろうPAWNの小さなアディションだからです。
Gang zones
もしそれらが完了しなかったなら、予定している休止のときにそれらは含まれなくなるでしょう。それでも心配することはありません、ほとんどのこれらの小さな機能は、うまくいけばmodeを大きく変化させるであろうPAWNの小さなアディションだからです。
Gang zones
AKINA Beta3 のインストール(手動)
GTA San Andreas/data/gta.dat
の以下の部分を以下のように書き換えます
そして、hillrace をディレクトリごと
GTA San Andreas/data/maps
に入れてください。
念のためファイル名を拡張子まで確認することが重要です。
#
# Load IDEs first, then the models and after that the IPLs
#
IMG DATA\MAPS\hillrace\hillrace.IMG
IMG DATA\MAPS\hillrace\hillrace2.IMG
#
# Object types
#
IDE DATA\MAPS\hillrace\hillrace.IDE
#
# Scene information
#
SPLASH loadsc2
IPL DATA\MAPS\hillrace\hillrace.IPL
の以下の部分を以下のように書き換えます
そして、hillrace をディレクトリごと
GTA San Andreas/data/maps
に入れてください。
念のためファイル名を拡張子まで確認することが重要です。
#
# Load IDEs first, then the models and after that the IPLs
#
IMG DATA\MAPS\hillrace\hillrace.IMG
IMG DATA\MAPS\hillrace\hillrace2.IMG
#
# Object types
#
IDE DATA\MAPS\hillrace\hillrace.IDE
#
# Scene information
#
SPLASH loadsc2
IPL DATA\MAPS\hillrace\hillrace.IPL
/freeze /unfreeze
/freeze [playerid]
/unfreeze [playerid]
で指定プレイヤーの行動を束縛・解除できます
strokとかはたぶん、lvdmodの中とかにあると思います。
なければ、公式forumにもソースがあります。
/unfreeze [playerid]
で指定プレイヤーの行動を束縛・解除できます
strokとかはたぶん、lvdmodの中とかにあると思います。
なければ、公式forumにもソースがあります。
if(strcmp(cmd, "/freeze", true) == 0) {
if(IsPlayerAdmin(playerid)){
new pid;
cmd = strtok(cmdtext, idx);
pid = strval(cmd);
TogglePlayerControllable(pid,0);
return 1;
} else {
return 0;
}
}
if(strcmp(cmd, "/unfreeze", true) == 0) {
if(IsPlayerAdmin(playerid)){
new pid;
cmd = strtok(cmdtext, idx);
pid = strval(cmd);
TogglePlayerControllable(pid,1);
return 1;
} else {
return 0;
}
}
追加機能
autosave,autoload機能追加
/view at-400内にて客室に移動するfakepass機能追加
燃料システム(給油はGSか、各Airportにて)追加
atm機能のバグ修正
サーバに来てくれてる方、
ここを読んでくれているのか、
少々不安な今日この頃です。
/view at-400内にて客室に移動するfakepass機能追加
燃料システム(給油はGSか、各Airportにて)追加
atm機能のバグ修正
サーバに来てくれてる方、
ここを読んでくれているのか、
少々不安な今日この頃です。
公式のブログを訳してみました。
2007 5/13 posted by kyeman
先週、我々は0.2の二度目の公開ベータテストを行いました。
SA:MPの制限は最大200人のプレイヤー、最大700台の乗り物を予定しています。
先の公開ベータの間、我々は一度に174人のプレイヤーを処理した。だが、ゲーム自身は安定していました。我々はローカルフレームレートと通信帯域の取り扱いに関連している問題を抱えている。そして我々は現在これらの問題に取り組んでいる。
幾らかの人は気づいているだろう。キャラクターが歩いたり、走ったりするアニメーションがどのキャラクターを選んだかによって異なっていることを。
また、SA:MP 0.2のオフィシャルリリースの日付は決まっていない。
最終リリースの前に少なくとも2つ以上のベータテストがあるだろう。
これはベータテストでLVの海賊船で撮ったものです。
http://www.sa-mp.com/images/beta02.jpg
[MOB]intox氏、スクリーンショットありがとうございます。
先週、我々は0.2の二度目の公開ベータテストを行いました。
SA:MPの制限は最大200人のプレイヤー、最大700台の乗り物を予定しています。
先の公開ベータの間、我々は一度に174人のプレイヤーを処理した。だが、ゲーム自身は安定していました。我々はローカルフレームレートと通信帯域の取り扱いに関連している問題を抱えている。そして我々は現在これらの問題に取り組んでいる。
幾らかの人は気づいているだろう。キャラクターが歩いたり、走ったりするアニメーションがどのキャラクターを選んだかによって異なっていることを。
また、SA:MP 0.2のオフィシャルリリースの日付は決まっていない。
最終リリースの前に少なくとも2つ以上のベータテストがあるだろう。
これはベータテストでLVの海賊船で撮ったものです。
http://www.sa-mp.com/images/beta02.jpg
[MOB]intox氏、スクリーンショットありがとうございます。
再起動
SA:MP serverだけでなく
サーバ機全体を再起動しました
ディストリビューションをアップグレードしてから
不具合が不安で再起動してなかったんですが、
38日ぶりに再起動。
ひょっとしたら軽くなっているかも・・・・??
とりあえず、
DDNSクライアントのDiCEが動かなくなりましたorz
サーバ機全体を再起動しました
ディストリビューションをアップグレードしてから
不具合が不安で再起動してなかったんですが、
38日ぶりに再起動。
ひょっとしたら軽くなっているかも・・・・??
とりあえず、
DDNSクライアントのDiCEが動かなくなりましたorz
おまけcommand1
自分の座標を表示して、
ファイルにTEXTとして書き込むコマンドです。
(※今は追記でませんが追記できるように改善する予定)
#define POS_FILE_NAME "posfile.txt"
if (strcmp(cmdtext, "/mypos", true)==0) {
new tmp[256];
new Float:x, Float:y, Float:z ,Float:ang;
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid,ang);
format(tmp, sizeof(tmp)," 座標 x,y,z,ang : %f,%f,%f,%f",x,y,z,ang);
SendClientMessage(playerid, COLOR_YELLOW,tmp);
printf("[%s]:%s",playername,tmp);
new File:posfile = fopen(POS_FILE_NAME);
format(tmp,sizeof(tmp),"%s:%s",playername,tmp);
fwrite(posfile,tmp);
fwrite(posfile, "¥r¥n");
fclose(posfile);
return 1;
}
※¥を半角に変えて使ってください
ファイルにTEXTとして書き込むコマンドです。
(※今は追記でませんが追記できるように改善する予定)
#define POS_FILE_NAME "posfile.txt"
if (strcmp(cmdtext, "/mypos", true)==0) {
new tmp[256];
new Float:x, Float:y, Float:z ,Float:ang;
new playername[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername, MAX_PLAYER_NAME);
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid,ang);
format(tmp, sizeof(tmp)," 座標 x,y,z,ang : %f,%f,%f,%f",x,y,z,ang);
SendClientMessage(playerid, COLOR_YELLOW,tmp);
printf("[%s]:%s",playername,tmp);
new File:posfile = fopen(POS_FILE_NAME);
format(tmp,sizeof(tmp),"%s:%s",playername,tmp);
fwrite(posfile,tmp);
fwrite(posfile, "¥r¥n");
fclose(posfile);
return 1;
}
※¥を半角に変えて使ってください
public関数と戻り値
1 OnGameModeInit()
ゲームモードの初期化時に行う処理を書きます
2 OnGameModeExit()
ゲームモードの終了時に行う処理を書きます
3 OnFilterScriptInit()
フィルタースクリプトの初期化時に行う処理を書きます
4 OnFilterScriptExit()
フィルタースクリプト終了時に行う処理を書きます
5 OnPlayerConnect(playerid)
プレイヤー接続時に行う処理を書きます
playeridには接続したプレイヤーのIDが格納されています
6 OnPlayerDisconnect(playerid)
プレイヤー切断時に行う処理を書きます
playeridには接続したプレイヤーのIDが格納されています
7 OnPlayerSpawn(playerid)
プレイヤー出現時に行う処理を書きます
playeridには出現したプレイヤーのIDが格納されています
8 OnPlayerDeath(playerid, killer, reason)
プレイヤー死亡時に行う処理を書きます
playeridには死亡したプレイヤー、killeidには殺したプレイヤー
reasonには死亡理由のIDが格納されています
9 OnVehicleSpawn(vehicleid)
動きません
10 OnVehicleDeath(vehicleid, killerid)
動きません
11 OnPlayerText(playerid, text[])
プレイヤーがチャットを入力したときの処理を書きます
playeridには発言したプレイヤーのID
text[]には発言した文字列が格納されています
12 OnPlayerCommandText(playerid, cmdtext[])
プレイヤーがコマンドを入力したときの処理を書きます
playeridにはコマンドを入力したプレイヤーのID
cmdtext[]には入力されたコマンドが格納されています
13 OnPlayerRequestClass(playerid, classid)
キャラ選択時の処理を書きます
playeridにはキャラ選択中のプレイヤーID
classidにはプレイヤークラスIDが格納されています
14 OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
プレイヤーが乗り物に乗車する動作をしたときの処理を書きます
playeridには動作をしたプレイヤーのID
vehicleidには動作対象の乗り物のID
ispassengerには乗客であるか(0,1)が格納されています
15 OnPlayerExitVehicle(playerid, vehicleid)
プレイヤーが乗り物から降車する動作をしたときの処理を書きます
playeridには動作をしたプレイヤーのID
vehicleidには動作対象の乗り物のID
16 OnPlayerStateChange(playerid, newstate, oldstate)
プレイヤーの状態が変更された時の処理を書きます
playeridには状態が変更されたプレイヤーのID
newstateには新しい状態、oldstateには以前の状態
が格納されています
17 OnPlayerEnterCheckpoint(playerid)
プレイヤーがチェックポイントに入ったときの処理を書きます
playeridにはチェックポイントに入ったプレイヤーのIDが
格納されています
18 OnPlayerLeaveCheckpoint(playerid)
プレイヤーがチェックポイントから出た時の処理を書きます
playeridにはチェックポイントから出たプレイヤーのIDが
格納されています
ゲームモードの初期化時に行う処理を書きます
2 OnGameModeExit()
ゲームモードの終了時に行う処理を書きます
3 OnFilterScriptInit()
フィルタースクリプトの初期化時に行う処理を書きます
4 OnFilterScriptExit()
フィルタースクリプト終了時に行う処理を書きます
5 OnPlayerConnect(playerid)
プレイヤー接続時に行う処理を書きます
playeridには接続したプレイヤーのIDが格納されています
6 OnPlayerDisconnect(playerid)
プレイヤー切断時に行う処理を書きます
playeridには接続したプレイヤーのIDが格納されています
7 OnPlayerSpawn(playerid)
プレイヤー出現時に行う処理を書きます
playeridには出現したプレイヤーのIDが格納されています
8 OnPlayerDeath(playerid, killer, reason)
プレイヤー死亡時に行う処理を書きます
playeridには死亡したプレイヤー、killeidには殺したプレイヤー
reasonには死亡理由のIDが格納されています
9 OnVehicleSpawn(vehicleid)
動きません
10 OnVehicleDeath(vehicleid, killerid)
動きません
11 OnPlayerText(playerid, text[])
プレイヤーがチャットを入力したときの処理を書きます
playeridには発言したプレイヤーのID
text[]には発言した文字列が格納されています
12 OnPlayerCommandText(playerid, cmdtext[])
プレイヤーがコマンドを入力したときの処理を書きます
playeridにはコマンドを入力したプレイヤーのID
cmdtext[]には入力されたコマンドが格納されています
13 OnPlayerRequestClass(playerid, classid)
キャラ選択時の処理を書きます
playeridにはキャラ選択中のプレイヤーID
classidにはプレイヤークラスIDが格納されています
14 OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
プレイヤーが乗り物に乗車する動作をしたときの処理を書きます
playeridには動作をしたプレイヤーのID
vehicleidには動作対象の乗り物のID
ispassengerには乗客であるか(0,1)が格納されています
15 OnPlayerExitVehicle(playerid, vehicleid)
プレイヤーが乗り物から降車する動作をしたときの処理を書きます
playeridには動作をしたプレイヤーのID
vehicleidには動作対象の乗り物のID
16 OnPlayerStateChange(playerid, newstate, oldstate)
プレイヤーの状態が変更された時の処理を書きます
playeridには状態が変更されたプレイヤーのID
newstateには新しい状態、oldstateには以前の状態
が格納されています
17 OnPlayerEnterCheckpoint(playerid)
プレイヤーがチェックポイントに入ったときの処理を書きます
playeridにはチェックポイントに入ったプレイヤーのIDが
格納されています
18 OnPlayerLeaveCheckpoint(playerid)
プレイヤーがチェックポイントから出た時の処理を書きます
playeridにはチェックポイントから出たプレイヤーのIDが
格納されています
SA:MPのクラッシュ
今までスクリプトのせいかと思ってたんですが、
SA:MPがクラッシュしたときに以下のようなエラーのときは
SA:MP0.1の既知のバグみたいです。
0.2では改善されるような旨がforumの投稿にあったので、
修正されると思います。
Exception At Address: 0x0156CD9C
Last SCM Opcode: 0x581
SA:MPがクラッシュしたときに以下のようなエラーのときは
SA:MP0.1の既知のバグみたいです。
0.2では改善されるような旨がforumの投稿にあったので、
修正されると思います。
Exception At Address: 0x0156CD9C
Last SCM Opcode: 0x581
ミニゲームの実装
ミニゲームを作ったりするときのポイントを紹介します。
1.ミニゲーム開始条件。
プレイヤーがコマンドを入力したとき。
プレイヤーがチェックポイントに入ったとき。
プレイヤーが特定の車に乗ったとき。
などです。
2.ミニゲームの参加フラグ
各プレイヤーがそのミニゲームに参加しているかどうかのフラグを
用意しておく必要があります。これは、予め配列変数を用意します。
3.ミニゲームを行う場所
特定の場所で行われるゲームなら
プレイヤーを移動させる必要があります。
DMでしたら、ランダム配置も必要だと思います。
またその場所の座標を調べておかなくてはなりません。
4.ミニゲーム終了の条件
プレイヤーが死んだとき。
チェックポイントに入ったとき。
プレイヤーが車を降りたとき。
一定の得点を得たとき。
などです。
簡単なDMだと、
開始処理:
コマンドが入力される
参加フラグON
DM場所へ移動させる(ランダム配置)
境界線を設定する
武器を与える
終了処理:
コマンド入力もしくは死亡
境界線を再設定
参加フラグOFF
プレイヤーを再出現
大まかにはこういう流れです。
質問等がありましたら掲示板へどうぞ。
1.ミニゲーム開始条件。
プレイヤーがコマンドを入力したとき。
プレイヤーがチェックポイントに入ったとき。
プレイヤーが特定の車に乗ったとき。
などです。
2.ミニゲームの参加フラグ
各プレイヤーがそのミニゲームに参加しているかどうかのフラグを
用意しておく必要があります。これは、予め配列変数を用意します。
3.ミニゲームを行う場所
特定の場所で行われるゲームなら
プレイヤーを移動させる必要があります。
DMでしたら、ランダム配置も必要だと思います。
またその場所の座標を調べておかなくてはなりません。
4.ミニゲーム終了の条件
プレイヤーが死んだとき。
チェックポイントに入ったとき。
プレイヤーが車を降りたとき。
一定の得点を得たとき。
などです。
簡単なDMだと、
開始処理:
コマンドが入力される
参加フラグON
DM場所へ移動させる(ランダム配置)
境界線を設定する
武器を与える
終了処理:
コマンド入力もしくは死亡
境界線を再設定
参加フラグOFF
プレイヤーを再出現
大まかにはこういう流れです。
質問等がありましたら掲示板へどうぞ。





