スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

フィルタースクリプトの暫定的ロードスクリプト 見事失敗。

0.2Xになってからフィルターの個数制限が付きましたね。

その数16個だそうです。


結構多くてお悩みの方も多いみたいで、

こればっかりは統合せざるを得ないかと…

そう思ってたんですが、Aqua_Marineさんのコメントにて、

loadfsにて上限突破ができるのかと考え、

フィルタースクリプトの拡張スクリプトを作ってみました。


眠かったので、日本語がかなりおかしいです。

フィルター読み込み時に他のフィルターを読み込ませる物です。

フィルターに書き込んだ奴はサーバー起動時に呼び出される…ハズです。

ハズ、というのは現状9しかフィルターが無くて、試せなかった…。


実際他のサーバさんに協力を頂いて、16個の壁の限界突破を試したんですが、

16個目以降、ロードコマンドを打ち込んでも有効にならない様子…


スクリプトのソース。

util_expansion_filters.txt



/* フィルターのロード個数を増やす暫定処置 4:20 2008/11/23 作成 */
/*----------------------------------------------------------------------------*-
フィルターの拡張ロード スクリプト [ Util_expansion_filters.pwn ]

0.2Xになり、フィルターの初期ロード数が16になったため
暫定的にロード個数を上げるべく、チャレンジしたもの。

注意 : このスクリプトではロード数を増やせません。

0.3で、修正されたらいいのですが…。
-*----------------------------------------------------------------------------*/

#include <a_samp>

#define SCRIPT_NAME "util_expansion_filters.amx"

#define LOAD_TYPE "load"
#define UNLOAD_TYPE "Unload"

enum SCRLIST
{
Scrname[256]
}

new Scriptlist[][Scrname] =
{
/* 使っているスクリプトを列挙していってください。 "フィルタースクリプトの名前", */
"util_server",
"util_admin",
"util_vehicles",
"util_objects",
"util_teleport",
"util_state",
"adminspec",
"actions",
"olddance" // 最後はコンマ無し
};

public OnFilterScriptInit()
{
Loadscrlist();

new string[256];

format(string, sizeof(string), "Reload %s", SCRIPT_NAME);
SendClientMessageToAll(0x00EEADDF, string);
return 1;
}

public OnFilterScriptExit()
{
Unloadscrlist();

new string[256];

format(string, sizeof(string), "Unload %s", SCRIPT_NAME);
SendClientMessageToAll(0x00EEADDF, string);
return 1;
}

forward Loadscrlist();
public Loadscrlist()
{
for(new i = 0; i < Scriptlist[i][Scrname]; i++)
{
new tmp[256];
tmp = LOAD_TYPE;
strcat(tmp, "fs");
strcat(tmp, " ");
strcat(tmp, Scriptlist[i][Scrname]);

SendRconCommand(tmp);
}

return 1;
}

forward Unloadscrlist();
public Unloadscrlist()
{
for(new i = 0; i < Scriptlist[i][Scrname]; i++)
{
new tmp[256];
tmp = UNLOAD_TYPE;
strcat(tmp, "fs");
strcat(tmp, " ");
strcat(tmp, Scriptlist[i][Scrname]);

SendRconCommand(tmp);
}

return 1;
}



はい、これだけのソースです。

中身はいたってシンプル、列挙した奴を起動時に、

loadfs Filterscriptの名前 としてるだけです。


結局、samp-server.exe自体が16個以降認識しないみたい

多くてお困りの方は地道に減らすしか、方法は無いのでしょうか…。


うまく動いてくれれば0.2Xの壁が取り除かれると思ったんですが…。残念。

眠いのでコメントは明日返答しますです。。。

# new Scriptlist[][SCRLIST] = {} とすべき箇所を new Scriptlist[][Scrname] = {} としてた…。
# 本来の記述ならビルド後のサイズがおよそ3倍になる。(Scriptlist[][SCRLIST] ならば
# しかし、実際の動作を見る限り、間違って記述したほうと同じ結果に。
# なぜだ、実に興味深い。列挙体だけは未だによくわからない。



ではでは

ADIEU

さらばだ^^
TAG :
SA-MP
SCRIPT

コメントの投稿

Private :

NO TITLE

自分も試そうと思っていましたが無理だろうなと思いやってませんでしたが・・・検証お疲れ様でした><やっぱり0.3を待つしかなさそうですね;

NO TITLE

暗号乙
あと湾岸購入md-。
思ってた以上におもしろい!

Re:

mojiさん
やっぱり無理だった、という感じでした。
せっかく眠い目をこすりながら、わけのわからんスクリプトを作ってたのにな~w
でもやっててわかったのはバグ持ちだったことは確実です。
繰り返しリロードしてたら16個も読み込めなくなりますw
早いとこ修正版出て欲しいw

シルさん
まぁ、湾岸はね、日本語版がでるらしいので、そのときに考えますw
現状はファークライ2、L4D、Fable2をマークしてますw
もちろん全部360ねw
インフォメーション
- 新着 -

- カテゴリー -

- アーカイブ -

- RSSフィード -

- サイト内検索 -

当サイトはLink Freeなので、Linkは どちらでもどなたでも自由にどうぞ。 feel my soul
Utility
Xbox360/PS3 GamerTag

ALMEIDA216


Twitter

Counter

ユニークアクセス :
オンライン :
PVアクセス :
リンク
このページのトップへ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。