SAMPでMYSQL
MYSQL導入の説明は省きます。
まずインクルードは忘れないようにしておきます。
#include <a_sampmysql>
MYSQLプラグインは
SAMP公式フォーラムのプラグイン開発のスレッドに
リンクがあり入手できると思います。
実例のソースを以下に貼ります。
これはDBに登録済みのプレイヤー情報を
ログイン名とパスを使ってロードする関数です。
LoadPlayerData(playerid,password[]){
new pname[MAX_PLAYER_NAME];
new query[256];
new field[128];
new resultline[1024];
new column=0;
connect_db(); //MYSQLのDBに接続します
GetPlayerName(playerid, pname, sizeof(pname));
//MYSQLに投げるクエリ文字列を作成
format(query, sizeof(query), "SELECT * FROM samp1 WHERE name='%s' and password='%s' LIMIT 1", pname,password);
//クエリを投げます
samp_mysql_query(query);
//結果を受け取ります
samp_mysql_store_result();
//結果を1行ずつ展開します
while(samp_mysql_fetch_row(resultline)==1)
{
//デリミタで結果を区切ります。これは決まり文句。
samp_mysql_strtok(field, "|", resultline); //first call of strtok MUST contain resultline
// 同上
while(samp_mysql_strtok(field, "|", "")==1) //From 2nd call to the end you MUST call strtok without resultline
{
//カラムごとに値を配列に格納していきます。
column++;
switch(column){
case 3:{
db_money[playerid]=strval(field);
}
case 4:{
db_login[playerid]=strval(field)+1;
}
case 5:{
db_kill[playerid]=strval(field);
}
case 6:{
db_death[playerid]=strval(field);
}
case 7:{
db_killw[playerid]=strval(field);
}
case 8:{
db_deathw[playerid]=strval(field);
}
default:{
}
}
}
//接続の状態が返る関数です
switch(samp_mysql_ping()){ 。
case 0:{
// printf("Connection is good !");
}
case 1:{
// printf("MySQL server is not contactable !");
}
case 2:{
// printf("MySQL server unknown error !");
}
default:{
// printf("It's impossible to get this message !");
}
}
}
samp_mysql_close();//MYSQLとの接続を切断します。
if(column==0){
return 0;
} else {
return 1;
}
}
まずインクルードは忘れないようにしておきます。
#include <a_sampmysql>
MYSQLプラグインは
SAMP公式フォーラムのプラグイン開発のスレッドに
リンクがあり入手できると思います。
実例のソースを以下に貼ります。
これはDBに登録済みのプレイヤー情報を
ログイン名とパスを使ってロードする関数です。
LoadPlayerData(playerid,password[]){
new pname[MAX_PLAYER_NAME];
new query[256];
new field[128];
new resultline[1024];
new column=0;
connect_db(); //MYSQLのDBに接続します
GetPlayerName(playerid, pname, sizeof(pname));
//MYSQLに投げるクエリ文字列を作成
format(query, sizeof(query), "SELECT * FROM samp1 WHERE name='%s' and password='%s' LIMIT 1", pname,password);
//クエリを投げます
samp_mysql_query(query);
//結果を受け取ります
samp_mysql_store_result();
//結果を1行ずつ展開します
while(samp_mysql_fetch_row(resultline)==1)
{
//デリミタで結果を区切ります。これは決まり文句。
samp_mysql_strtok(field, "|", resultline); //first call of strtok MUST contain resultline
// 同上
while(samp_mysql_strtok(field, "|", "")==1) //From 2nd call to the end you MUST call strtok without resultline
{
//カラムごとに値を配列に格納していきます。
column++;
switch(column){
case 3:{
db_money[playerid]=strval(field);
}
case 4:{
db_login[playerid]=strval(field)+1;
}
case 5:{
db_kill[playerid]=strval(field);
}
case 6:{
db_death[playerid]=strval(field);
}
case 7:{
db_killw[playerid]=strval(field);
}
case 8:{
db_deathw[playerid]=strval(field);
}
default:{
}
}
}
//接続の状態が返る関数です
switch(samp_mysql_ping()){ 。
case 0:{
// printf("Connection is good !");
}
case 1:{
// printf("MySQL server is not contactable !");
}
case 2:{
// printf("MySQL server unknown error !");
}
default:{
// printf("It's impossible to get this message !");
}
}
}
samp_mysql_close();//MYSQLとの接続を切断します。
if(column==0){
return 0;
} else {
return 1;
}
}
YSF 0.2
Y_Lessさんが Windows 0.2.2, 0.2.2r2 and 0.2x と Linux 0.2x. のサーバFIXプラグインを出しています。
ダウンロードはこちらより↓
http://forum.sa-mp.com/index.php?topic=83109.0
色々機能が追加されていますが、
個人的に気になったのは重力がプレイヤー別に設定できる
関数が使える点です。
こんな感じで使います。
SetPlayerGravity(playerid,gravity);
キー操作で自由に重力を変えられる
テストスクリプトを試してみましたが、
なかなか楽しかったです。
スクリプトいじれる方は、試してみるのもいいかもしれません。
ダウンロードはこちらより↓
http://forum.sa-mp.com/index.php?topic=83109.0
色々機能が追加されていますが、
個人的に気になったのは重力がプレイヤー別に設定できる
関数が使える点です。
こんな感じで使います。
SetPlayerGravity(playerid,gravity);
キー操作で自由に重力を変えられる
テストスクリプトを試してみましたが、
なかなか楽しかったです。
スクリプトいじれる方は、試してみるのもいいかもしれません。