Sziasztok!
Találtam a hiv. fórumon egy kis hasznos szkriptet, aminek a segítségével le lehet menteni fegyvereket egyszerűen, parancs nélkül.
A hivatalos fórumon lévő
szkript, amely angol nyelven íródott.
A szkriptről pár adat,
Sorok száma: 120.
MySQL plugin/függvénykönyvtár verzió száma: R39.2
Készítette: Amirab.
UI.: Rövidítettem a szkriptet, és egy kicsikét átláthatóbbá tettem.
A kód:
#include <a_samp>
#include <a_mysql>
#define SQL_HOST \"127.0.0.1\"
#define SQL_DB \"samp\"
#define SQL_USER \"root\"
#define SQL_PASS \"\"
new g_MySQL;
forward SQL_DB_CONNECT();
public SQL_DB_CONNECT() {
mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG);
g_MySQL = mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
if(mysql_errno() != 0) {
printf(\"Nem sikerült csatlakozni a következő adatbázishoz: %s --- SZERVER LEÁLLT ~~~\", SQL_USER);
} else {
printf(\" Sikerült csatlakozni a következő adatbázishoz: \'%s\' Felhasználó: \'%s\'\", SQL_DB, SQL_USER);
} return 1; }
new gPlayerWeapons[MAX_PLAYERS][13][2];
enum PlayerData {
LoggedIn,
UserID
};
new PlayerInfo[MAX_PLAYERS][PlayerData];
public OnFilterScriptInit() {
print(\"\\n*** Fegyver mentő rendszer - MySQL R39-2. ***\\n\");
print(\"*** Készítette: Amirab ***\");
print(\"--- Fordította: Fajardos ---\");
SQL_DB_CONNECT();
return 1; }
public OnFilterScriptExit() {
print(\"\\n*** Fegyver mentő rendszer leállt. ***\\n\");
mysql_close(g_MySQL);
return 1; }
public OnPlayerConnect(playerid) {
new query[512];
mysql_format(g_MySQL, query, sizeof(query),\"SELECT `UserID` FROM `playerweaps` WHERE `Username` = \'%e\'\", GetName(playerid));
mysql_tquery(g_MySQL, query, \"WeapOnAccountCheck\", \"i\", playerid);
return 1; }
public OnPlayerDisconnect(playerid, reason) {
new
tmpPlayerWeapons[13][2],
tmpString[64],
query[100];
for(new i = 0; i <= 12; i++) {
GetPlayerWeaponData(playerid, i, tmpPlayerWeapons[0], tmpPlayerWeapons[1]);
}
for(new i = 0; i <= 12; i++) {
format(tmpString, sizeof(tmpString), \"Weap%d\", i);
mysql_format(g_MySQL, query, sizeof(query), \"UPDATE `playerweaps` SET `%s`=%d WHERE `UserID`=%d\" , tmpString , tmpPlayerWeapons[0] , PlayerInfo[playerid][userID]);
mysql_tquery(g_MySQL, query, \"\", \"\");
format(tmpString, sizeof(tmpString), \"AWeap%d\", i);
mysql_format(g_MySQL, query, sizeof(query), \"UPDATE `playerweaps` SET `%s`=%d WHERE `UserID`=%d\" , tmpString , tmpPlayerWeapons[1] , PlayerInfo[playerid][userID]);
mysql_tquery(g_MySQL, query, \"\", \"\");
}
return 1; }
public OnPlayerSpawn(playerid) {
ResetPlayerWeapons(playerid);
for(new i = 0; i <= 12; i++) {
GivePlayerWeapon(playerid, gPlayerWeapons[playerid][0], gPlayerWeapons[playerid][1]);
} return 1; }
forward WeapOnAccountCheck(playerid);
public WeapOnAccountCheck(playerid) {
new rows, fields;
new query[200];
cache_get_data(rows, fields, g_MySQL);
if(rows) {
PlayerInfo[playerid][userID] = cache_get_field_content_int(0, \"UserID\");
mysql_format(g_MySQL, query, sizeof(query), \"SELECT * FROM `playerweaps` WHERE `Username` = \'%e\' LIMIT 1\", GetName(playerid));
mysql_tquery(g_MySQL, query, \"WeapOnAccountLoad\", \"i\", playerid);
} else {
mysql_format(g_MySQL, query, sizeof(query), \"INSERT INTO `playerweaps` (`Username`,`Weap0`,`AWeap0`,`Weap1`,`AWeap1`,`Weap2`,`AWeap2`,`Weap3`,`AWeap3`,`Weap4`,`AWeap4`,`Weap5`,`AWeap5`,`Weap6`,`AWeap6`,`Weap7`,`AWeap7`,`Weap8`,`AWeap8`,`Weap9`,`AWeap9`,`Weap10`,`AWeap10`,`Weap11`,`AWeap11`,`Weap12`,`AWeap12`) VALUES (\'%e\',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)\", GetName(playerid));
mysql_tquery(g_MySQL, query, \"WeapOnAccountRegister\", \"i\", playerid);
} return 1; }
forward WeapOnAccountRegister(playerid);
public WeapOnAccountRegister(playerid) {
PlayerInfo[playerid][userID] = cache_insert_id();
printf(\"Új fegyver elmentve. ID: %d\", PlayerInfo[playerid][userID]);
return 1; }
forward WeapOnAccountLoad(playerid);
public WeapOnAccountLoad(playerid) {
PlayerInfo[playerid][LoggedIn] = 1;
new szTmp[64];
for(new i = 0; i <= 12; i++) {
format(szTmp, sizeof(szTmp), \"Weap%d\", i);
gPlayerWeapons[playerid][0] = cache_get_field_content_int(0 , szTmp);
format(szTmp, sizeof(szTmp), \"AWeap%d\", i);
gPlayerWeapons[playerid][1] = cache_get_field_content_int(0 , szTmp);
}
return 1; }
stock GetName(playerid) {
new playerName[MAX_PLAYER_NAME+1];
GetPlayerName(playerid, playerName, sizeof(playerName));
return playerName;
}
Köszönöm, hogy meg tekintetted a témát!