Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- MySQL R5 basic Gamemode by Items4Landwirt aka. Music4You™
- Dieses Script soll als Kleines einführungs Script in das MySQL scripting geben.
- Es ist nichts Besonderes^^
- Bei intresse schaut doch mal auf meinem YT Kanal vorbei: http://www.youtube.com/user/Music4You43 würde mich über ein Abo freuen :)
- Hier noch der Link zum Tutorial von Maddin für das R5 Plugin
- https://forum.sa-mp.de/san-andreas-multiplayer/tutorials/61587-mysql-installation-zugriff-einstellungen-login-register-beispiel/
- */
- //=============== Includes ===============//
- #include <a_samp>
- #include <ocmd>
- #include <banfix>
- //=============== Defines ===============//
- #include <a_mysql>
- #define SQL_HOST "127.0.0.1"
- #define SQL_USER "root"
- #define SQL_PASS "johndeere"
- #define SQL_DATA "samp"
- #define grau 0xB4B4B4FF
- #define rot 0xFF0023FF
- #define blau 0x0023FFFF
- #define orange 0xFFAA00FF
- #define gruen 0x4BB400FF
- #define SCM SendClientMessage
- //=============== Enum´s ===============//
- enum
- {
- DIALOG_REGISTER,
- DIALOG_LOGIN,
- DIALOG_KICK,
- DIALOG_BAN,
- DIALOG_STATS
- };
- enum SpielerDaten
- {
- pName[MAX_PLAYER_NAME],
- Level,
- Geld,
- Adminlevel,
- ban,
- pAutoschein,
- pMotorradschein,
- pFlugschein,
- pBootschein
- }
- new SpielerInfo[MAX_PLAYERS][SpielerDaten];
- main()
- {
- print("\n======================================================");
- print(" MySQL R5 Basic Script by Items4Landwirt aka. Music4You");
- print("======================================================\n");
- }
- public OnGameModeInit()
- {
- SetGameModeText("German Reallife");
- Connect_To_Database();
- createtable();
- AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
- return 1;
- }
- public OnGameModeExit()
- {
- return 1;
- }
- public OnPlayerRequestClass(playerid, classid)
- {
- if(GetPVarInt(playerid,"Eingeloggt") == 0)
- {
- if(mysql_CheckAccount(playerid) == 0)
- {
- ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Register","Herzlich Wilkommen auf Name\nGebe nun dein Gewünschtes Passwort ein um einen Account zu erstellt","Weiter","Exit");
- }
- else if(mysql_CheckAccount(playerid) == 1)
- {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Herzlich Wilkommen auf Name\nBitte gib dein Passwort ein:","Login","Abbrechen");
- }
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SavePlayer(playerid);
- DeletePVar(playerid,"Eingeloggt");
- return 1;
- }
- public OnPlayerSpawn(playerid)
- {
- return 1;
- }
- public OnPlayerDeath(playerid, killerid, reason)
- {
- return 1;
- }
- public OnVehicleSpawn(vehicleid)
- {
- return 1;
- }
- public OnVehicleDeath(vehicleid, killerid)
- {
- return 1;
- }
- public OnPlayerText(playerid, text[])
- {
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if (strcmp("/mycommand", cmdtext, true, 10) == 0)
- {
- // Do something here
- return 1;
- }
- return 1;
- }
- ocmd:makeadmin(playerid, params[])
- {
- new pid,level,string[128],string1[128];
- if(!IstSpielerAdmin(playerid,5)) return SCM(playerid,rot,"Nicht befugt!");
- if(sscanf(params,"ud", pid, level)) return SendClientMessage(playerid, grau,"Verwendung : /makeadmin [ID] [Level]");
- if(IstSpielerAdmin(pid,level) == level) return SendClientMessage(playerid, orange,"Der Spieler hat schon das angegebene Adminlevel!");
- SpielerInfo[pid][Adminlevel] = level;
- SavePlayer(pid);
- format(string,sizeof(string),"[%s] %s hat dir das Adminlevel %d gegeben ",adminrang(playerid),SpielerName(playerid),level);
- format(string1,sizeof(string1),"Du hast %s das Adminlevel %d gegeben ",SpielerName(pid),level);
- SCM(playerid,gruen,string1);
- SCM(pid,gruen,string);
- return 1;
- }
- ocmd:kick(playerid,params[])
- {
- new pID,reason[128],string[128],msg[128];
- if(!IstSpielerAdmin(playerid,1)) return SCM(playerid,rot,"Nicht befugt!");
- if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid, grau, "Verwendung: /kick [ID] [Grund]");
- format(string,sizeof(string),"[%s] %s hat dich vom Server gekickt, Grund: %s.\n\nAchte das nächste mal darauf, sonst werden härtere Sanktionen Kommen!",adminrang(playerid),SpielerName(playerid),reason);
- format(msg,sizeof(msg),"[%s] %s hat den Spieler %s vom Server gekickt, Grund: %s",adminrang(playerid),SpielerName(playerid),SpielerName(pID),reason);
- ShowPlayerDialog(pID,DIALOG_KICK,DIALOG_STYLE_MSGBOX,"Kick",string,"Verlassen","");
- SendClientMessageToAll(rot,msg);
- Kick(pID);
- return 1;
- }
- ocmd:ban(playerid,params[])
- {
- new pID,string[128],msg[128],reason[128],query[150];
- if(!IstSpielerAdmin(playerid,4)) return SCM(playerid,rot,"Nicht Befugt");
- if(sscanf(params,"us",pID,reason)) return SendClientMessage(playerid, grau, "Verwendung: /ban [ID] [Grund]");
- format(string,sizeof(string),"[%s] %s hat dich Permanent vom Server gebannt, Grund: %s.\n\nFalls du zu unrecht gebannt wurdest mache einen Screen davon und schreib es im Forum",adminrang(playerid),SpielerName(playerid),SpielerName(pID),reason);
- format(msg,sizeof(string),"[%s] %s hat den Spieler %s vom Server Gebannt, Grund %s.",adminrang(playerid),SpielerName(playerid),SpielerName(pID),reason);
- ShowPlayerDialog(pID,DIALOG_BAN,DIALOG_STYLE_MSGBOX,"Ban",string,"Verlassen","");
- SendClientMessageToAll(rot,msg);
- format(query, sizeof(query), "UPDATE accounts SET banngrund = '%s' WHERE Name = '%s'", reason, SpielerName(pID));
- mysql_query(query);
- SpielerInfo[playerid][ban]=1;
- Kick(pID);
- return 1;
- }
- ocmd:a(playerid, params[])
- {
- if(SpielerInfo[playerid][Adminlevel] > 0)
- {
- new text[128];
- if(sscanf(params, "s", text))
- return SendClientMessage(playerid, grau, "Benutzung: /a [Text]");
- format(text, sizeof text, "[Adminchat] [%s] {FAFAFA}%s: %s", adminrang(playerid), SpielerName(playerid), text);
- for(new i; i < GetMaxPlayers(); i++)
- {
- if(IsPlayerConnected(i))
- SendAdminMessage(blau, text);
- }
- }
- return 1;
- }
- ocmd:mute(playerid,params[])
- {
- if(!IstSpielerAdmin(playerid,2)) return SCM(playerid,rot,"Nicht Befugt");
- new pID,string[128];
- if(sscanf(params,"u",pID))return SendClientMessage(playerid,grau,"/mute [Spielername/ID]");
- if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Der Spieler ist nicht online");
- SetPVarInt(pID,"Mute",1);
- format(string,sizeof(string),"AdmCmd: Du wurdest von Admin %s gemutet",SpielerName(playerid));
- SendClientMessage(pID,rot,string);
- format(string,sizeof(string),"AdmCmd: Du hast erfolgreich User %s gemutet",SpielerName(pID));
- SendClientMessage(playerid,rot,string);
- return 1;
- }
- ocmd:unmute(playerid,params[])
- {
- if(!IstSpielerAdmin(playerid,2)) return SCM(playerid,rot,"Nicht Befugt");
- new pID,string[128];
- if(sscanf(params,"u",pID))return SendClientMessage(playerid,grau,"/unmute [Spielername/ID]");
- if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Der Spieler ist nicht online");
- SetPVarInt(pID,"Mute",0);
- format(string,sizeof(string),"AdmCmd: Du wurdest von Admin %s entmutet",SpielerName(playerid));
- SendClientMessage(pID,gruen,string);
- format(string,sizeof(string),"AdmCmd: Du hast erfolgreich User %s entmutet",SpielerName(pID));
- SendClientMessage(playerid,gruen,string);
- return 1;
- }
- ocmd:goto(playerid,params[])
- {
- if(!IstSpielerAdmin(playerid,1)) return SCM(playerid,rot,"Nicht Befugt");
- new pID,string[128],string2[128];
- if(sscanf(params,"u",pID))return SendClientMessage(playerid,grau,"FEHLER: /go [ID/Name]");
- new Float:x, Float:y, Float:z;
- new car = GetPlayerVehicleID(playerid);
- GetPlayerPos(pID,x,y,z);
- SetPlayerInterior(playerid,GetPlayerInterior(pID));
- SetPlayerPos(playerid,x+2,y+2,z+2);
- if(IsPlayerInAnyVehicle(playerid))
- {
- SetVehiclePos(GetPlayerVehicleID(playerid), x+2, y+2, z+2);
- PutPlayerInVehicle(playerid,car,0);
- }
- else
- {
- format(string,128,"Du hast dich zu %s teleportiert.",SpielerName(pID));
- format(string2,128,"%s hat sich zu dir teleportiert.",SpielerName(playerid));
- SendClientMessage(pID,orange,string2);
- SendClientMessage(playerid,orange,string);
- }
- return 1;
- }
- ocmd:gethere(playerid,params[])
- {
- if(!IstSpielerAdmin(playerid,1)) return SCM(playerid,rot,"Nicht Befugt!");
- new string[128],player;
- if(sscanf(params,"u",player))return SendClientMessage(playerid,grau,"FEHLER: /gethere [ID/Name]");
- {
- new sendername[MAX_PLAYER_NAME],playername[MAX_PLAYER_NAME];
- GetPlayerName(player,sendername,sizeof sendername);
- GetPlayerName(playerid,playername,sizeof playername);
- format(string,sizeof string,"Admin %s hat dich zu sich geportet.",playername);
- SendClientMessage(player,orange,string);
- format(string,sizeof string,"Du hast %s zu dir geportet.",sendername);
- SendClientMessage(playerid,orange,string);
- new Float:X,Float:Y,Float:Z;
- GetPlayerPos(playerid,X,Y,Z);
- if(IsPlayerInAnyVehicle(player))
- {
- new autoid = GetPlayerVehicleID(player);
- SetVehiclePos(autoid, X, Y+4, Z);
- }
- else
- {
- SetPlayerPos(player,X,Y+2,Z);
- }
- }
- return 1;
- }
- ocmd:tv(playerid,params[])
- {
- new pID,string[128];
- if(!IstSpielerAdmin(playerid,1)) return SCM(playerid,rot,"Nicht Befugt");
- if(sscanf(params, "u", pID)) return SendClientMessage(playerid,grau,"/tv [Spielername/ID]");
- if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Der Spieler ist nicht Online");
- {
- format(string,sizeof(string),"AdmCmd: Du beobachtest nun %s",SpielerName(pID));
- SendClientMessage(playerid,orange,string);
- TogglePlayerSpectating(playerid, 1);
- PlayerSpectatePlayer(playerid, pID);
- }
- return 1;
- }
- ocmd:specoff(playerid,params[])
- {
- if(!IstSpielerAdmin(playerid,1)) return SCM(playerid,rot,"Nicht Befugt");
- {
- TogglePlayerSpectating(playerid, 0);
- }
- return 1;
- }
- ocmd:sethp(playerid,params[])
- {
- new pID;
- new Health;
- if(!IstSpielerAdmin(playerid,2)) return SCM(playerid,rot,"Nicht Befugt");
- if(sscanf(params, "ud", pID, Health))return SendClientMessage(playerid,grau,"/sethp [Spielername/ID] [Leben]");
- if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Der Spieler ist nicht Online!");
- SetPlayerHealth(pID, Health);
- new string[128];
- format(string, sizeof(string), "AdmCmd: Dein Leben wurden von %s auf %d gesetzt.", SpielerName(playerid), Health);
- SendClientMessage(pID, gruen, string);
- format(string, sizeof(string), "AdmCmd: Du hast das Leben von %s auf %d gesetzt.", SpielerName(pID), Health);
- SendClientMessage(playerid, gruen, string);
- SavePlayer(pID);
- return 1;
- }
- ocmd:setarmour(playerid,params[])
- {
- new pID;
- new Armour;
- if(!IstSpielerAdmin(playerid,2)) return SCM(playerid,rot,"Nicht Befugt");
- if(sscanf(params, "ud", pID, Armour))return SendClientMessage(playerid,grau,"Benutzung: /setarmour [Spielername/ID] [Armour]");
- if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,rot,"Der Spieler ist nicht Online!");
- SetPlayerArmour(pID, Armour);
- new string[256];
- format(string, sizeof(string), "AdmCmd: Deine Weste wurden von %s auf %d gesetzt.", SpielerName(playerid), Armour);
- SendClientMessage(pID, gruen, string);
- format(string, sizeof(string), "AdmCmd: Du hast die Weste von %s auf %d gesetzt.", SpielerName(pID),Armour);
- SendClientMessage(playerid, gruen, string);
- SavePlayer(pID);
- return 1;
- }
- ocmd:stats(playerid,params[])
- {
- new string[600];
- format(string,sizeof(string),"Statistik von %s\n\nGeld\t\t%s\nLevel\t\t%s\nAdminlevel\t%s",SpielerName(playerid),GetPlayerMoney(playerid),GetPlayerScore(playerid),adminrang(playerid));
- ShowPlayerDialog(playerid,DIALOG_STATS,DIALOG_STYLE_LIST,"Statistik",string,"Ok","");
- return 1;
- }
- public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
- {
- return 1;
- }
- public OnPlayerExitVehicle(playerid, vehicleid)
- {
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- new modelid = GetVehicleModel(GetPlayerVehicleID(playerid));
- if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
- {
- if(modelid == 472 || modelid == 473 || modelid == 493 || modelid == 595 || modelid == 484 || modelid == 430 || modelid == 453 || modelid == 452 || modelid == 446 || modelid == 454 )
- {
- if(SpielerInfo[playerid][pBootschein] == 0)
- {
- SendClientMessage(playerid, rot, " Du hast keine Bootschein");
- RemovePlayerFromVehicle(playerid);
- }
- else
- {
- }
- }
- else if(modelid == 592 || modelid == 577 || modelid == 511 || modelid == 512 || modelid == 593 || modelid == 520 || modelid == 553 || modelid == 476 || modelid == 519 || modelid == 460 || modelid == 513 || modelid == 548 || modelid == 425 || modelid == 417 || modelid == 487 || modelid == 488 || modelid == 497 || modelid == 563 || modelid == 447 || modelid == 469 )
- {
- if(SpielerInfo[playerid][pFlugschein] == 0)
- {
- SendClientMessage(playerid, rot, "Du hast keinen Flugschein !");
- RemovePlayerFromVehicle(playerid);
- }
- else
- {
- }
- }
- else if(modelid == 448 || modelid == 521 || modelid == 522 || modelid == 523 || modelid == 581 || modelid == 586)
- {
- if(SpielerInfo[playerid][pMotorradschein] == 0)
- {
- SendClientMessage(playerid, rot, "Du hast keinen Motorradschein !");
- RemovePlayerFromVehicle(playerid);
- }
- else
- {
- }
- }
- else if(modelid == 509 || modelid == 510 || modelid == 481)
- {
- }
- else
- {
- if(SpielerInfo[playerid][pAutoschein] == 0)
- {
- SCM(playerid,rot,"Du hast keinen Autoschein");
- RemovePlayerFromVehicle(playerid);
- }
- else
- {
- }
- }
- }
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerEnterRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnPlayerLeaveRaceCheckpoint(playerid)
- {
- return 1;
- }
- public OnRconCommand(cmd[])
- {
- return 1;
- }
- public OnPlayerRequestSpawn(playerid)
- {
- return 1;
- }
- public OnObjectMoved(objectid)
- {
- return 1;
- }
- public OnPlayerObjectMoved(playerid, objectid)
- {
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- return 1;
- }
- public OnVehicleMod(playerid, vehicleid, componentid)
- {
- return 1;
- }
- public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
- {
- return 1;
- }
- public OnVehicleRespray(playerid, vehicleid, color1, color2)
- {
- return 1;
- }
- public OnPlayerSelectedMenuRow(playerid, row)
- {
- return 1;
- }
- public OnPlayerExitedMenu(playerid)
- {
- return 1;
- }
- public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
- {
- return 1;
- }
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- return 1;
- }
- public OnRconLoginAttempt(ip[], password[], success)
- {
- return 1;
- }
- public OnPlayerUpdate(playerid)
- {
- return 1;
- }
- public OnPlayerStreamIn(playerid, forplayerid)
- {
- return 1;
- }
- public OnPlayerStreamOut(playerid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamIn(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnVehicleStreamOut(vehicleid, forplayerid)
- {
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- switch(dialogid)
- {
- case DIALOG_REGISTER:
- {
- if(response)
- {
- if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
- {
- ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"Register","Das angegebene Passwort war zu Kurz...\nBitte Registrier dich jetzt mit einem Passwort:","Register","Abbrechen");
- return 1;
- }
- else
- {
- CreateAccount(playerid, inputtext); //Account wird erstellt
- SetPVarInt(playerid,"Eingeloggt",1); //Die variable wird auf 1 gesetzt, damit wir nun die Skin Auswahl benutzen können ohne wieder nach unserem Passwort gefragt zu werden.
- SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
- return 1;
- }
- }
- else
- {
- Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
- }
- }
- case DIALOG_LOGIN:
- {
- if(response)
- {
- if(strlen(inputtext) == 0) // Wenn kein Passwort angegebene wurde
- {
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Das Angegebene Passwort war Falsch.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
- return 1;
- }
- else
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, MAX_PLAYER_NAME);
- if(!strcmp(inputtext, mysql_ReturnPasswort(name), true)) // Wir holen uns das Passwort aus der MySQL Datenbank und überprüfen es mit dem angegebenen passwort.
- {
- SetPVarInt(playerid,"Eingeloggt",1); //Falls beide passwörter übereinstimmen wird die Variable auf 1 gesetzt damit wir die Skin auswahl benutzen können.
- LoadPlayer(playerid); //Der Spieler wird "geladen", speich es werden seine Daten aus der Datenbank geholt und in variablen gespeichert um diese im Skript zu verwenden.
- SpawnPlayer(playerid); //Wir lassen den Spieler Spawnen
- return 1;
- }
- else
- {
- //Wenn das Passwort falsch war, lassen wir erneut das Login fenster erscheinen damit der Spieler das Richtige Passwort eingibt.
- ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Das war das Falsche Passwort.\nBitte log dich jetzt mit dem richtigen Passwort ein:","Login","Abbrechen");
- return 1;
- }
- }
- }
- else
- {
- Kick(playerid); //Wenn auf Abbrechen geklickt wurde, wird der Spieler gekickt damit man ohne Account nicht Spielen kann.
- }
- }
- }
- return 1;
- }
- public OnPlayerClickPlayer(playerid, clickedplayerid, source)
- {
- return 1;
- }
- //================ Stocks ================//
- stock Connect_To_Database()
- {
- mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
- if(mysql_ping() == 1)
- {
- print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
- return true;
- }
- else
- {
- print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
- print("<-| [MYSQL] Es wird erneut versucht eine Verbindung zur Datenbank herzustellen!");
- mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS);
- if(mysql_ping() == 1)
- {
- print("<-| [MYSQL] Es konnte im 2 Versuch eine Verbindung hergestellt werden!");
- return true;
- }
- else
- {
- print("<-| [MYSQL] Es konnte keine Verbindung zur Datenbank hergestellt werden!");
- print("<-| [MYSQL] Der Server wird nun beendet!");
- SendRconCommand("exit");
- return true;
- }
- }
- }
- stock mysql_CheckAccount(playerid)
- {
- new Query[128],Name[MAX_PLAYER_NAME],count;
- GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
- mysql_real_escape_string(Name, Name);
- format(Query, sizeof(Query), "SELECT * FROM `accounts` WHERE `Name` = '%s'", Name);
- mysql_query(Query);
- mysql_store_result();
- count = mysql_num_rows();
- mysql_free_result();
- return count;
- }
- stock CreateAccount(playerid, pass[])
- {
- new query[256],Name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
- mysql_real_escape_string(Name,Name);
- mysql_real_escape_string(pass,pass);
- format(query, sizeof(query), "INSERT INTO `accounts` (`Name`, `Passwort`) VALUES ('%s', '%s')", Name, pass);
- mysql_query(query);
- return true;
- }
- stock mysql_ReturnPasswort(Name[])
- {
- new query[130], Get[130];
- mysql_real_escape_string(Name, Name);
- format(query, 128, "SELECT `passwort` FROM `accounts` WHERE `Name` = '%s'", Name);
- mysql_query(query);
- mysql_store_result();
- mysql_fetch_row(Get);
- mysql_free_result();
- return Get;
- }
- stock LoadPlayer(playerid)
- {
- if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))//Wir fragen ab ob der angegebene Spieler auch Online ist, und kein NPC ist (nur zur sicherhheit)
- {
- GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME); //Wir Speichern den Namen des Spielers in der Variable [i]SpielerInfo[playerid][pName][/i]
- SetPlayerScore(playerid,mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName])); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
- GivePlayerMoney(playerid,mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]));
- SpielerInfo[playerid][Adminlevel] = mysql_GetInt("accounts", "Adminlevel", "Name", SpielerInfo[playerid][pName]);
- SpielerInfo[playerid][ban] = mysql_GetInt("accounts", "ban", "Name", SpielerInfo[playerid][pName]);
- SpielerInfo[playerid][pAutoschein] = mysql_GetInt("accounts", "Autoschein", "Name", SpielerInfo[playerid][pName]);
- SpielerInfo[playerid][pMotorradschein] = mysql_GetInt("accounts","Motorradschein", "Name", SpielerInfo[playerid][pName]);
- SpielerInfo[playerid][pBootschein] = mysql_GetInt("accounts", "Bootschein", "Name", SpielerInfo[playerid][pName]);
- SpielerInfo[playerid][pFlugschein] = mysql_GetInt("accounts", "Flugschein", "Name", SpielerInfo[playerid][pName]);
- }
- new querys[128];
- format(querys, sizeof(querys), "UPDATE accounts SET IP = '%s' WHERE Name = '%s'", SpielerIP(playerid), SpielerName(playerid));
- mysql_query(querys);
- if(SpielerInfo[playerid][ban]==1)
- {
- Kick(playerid);
- }
- return 1;
- }
- stock SavePlayer(playerid)
- {
- if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid)) //wir überprüfen ob der Spieler überhaupt noch Connected ist und ob er nicht ein NPC ist.
- {
- if(GetPVarInt(playerid,"Eingeloggt") == 1)
- {
- mysql_SetInt("accounts", "Level", GetPlayerScore(playerid), "Name", SpielerInfo[playerid][pName]);
- mysql_SetInt("accounts", "Geld", GetPlayerMoney(playerid), "Name", SpielerInfo[playerid][pName]);
- mysql_SetInt("accounts", "Adminlevel", SpielerInfo[playerid][Adminlevel], "Name", SpielerInfo[playerid][pName]);
- mysql_SetInt("accounts", "ban", SpielerInfo[playerid][ban], "Name", SpielerInfo[playerid][pName]);
- mysql_SetInt("accounts", "Autoschein", SpielerInfo[playerid][pAutoschein], "Name", SpielerInfo[playerid][pName]);
- mysql_SetInt("accounts", "Motorradschein", SpielerInfo[playerid][pMotorradschein], "Name", SpielerInfo[playerid][pName]);
- mysql_SetInt("accounts", "Flugschein", SpielerInfo[playerid][pFlugschein], "Name", SpielerInfo[playerid][pName]);
- mysql_SetInt("accounts", "Bootschein", SpielerInfo[playerid][pBootschein], "Name", SpielerInfo[playerid][pName]);
- }
- }
- new querys[128];
- format(querys, sizeof(querys), "UPDATE accounts SET IP = '%s' WHERE Name = '%s'", SpielerIP(playerid), SpielerName(playerid));
- mysql_query(querys);
- return 1;
- }
- stock mysql_GetString(Table[], Field[], Where[], Is[])
- {
- new query[128], Get[128];
- mysql_real_escape_string(Table, Table);
- mysql_real_escape_string(Field, Field);
- mysql_real_escape_string(Where, Where);
- mysql_real_escape_string(Is, Is);
- format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
- mysql_query(query);
- mysql_store_result();
- mysql_fetch_row(Get);
- mysql_free_result();
- return Get;
- }
- stock Float:mysql_GetFloat(Table[], Field[], Where[], Is[])
- {
- new query[128], Float:sqlfloat;
- mysql_real_escape_string(Table, Table);
- mysql_real_escape_string(Field, Field);
- mysql_real_escape_string(Where, Where);
- mysql_real_escape_string(Is, Is);
- format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
- mysql_query(query);
- mysql_store_result();
- mysql_fetch_float(sqlfloat);
- mysql_free_result();
- return sqlfloat;
- }
- stock mysql_SetInt(Table[], Field[], To, Where[], Where2[])
- {
- new query[128];
- mysql_real_escape_string(Table, Table);
- mysql_real_escape_string(Field, Field);
- mysql_real_escape_string(Where, Where);
- mysql_real_escape_string(Where2, Where2);
- format(query, 128, "UPDATE `%s` SET `%s` = '%d' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
- mysql_query(query);
- return true;
- }
- stock mysql_SetString(Table[], Field[], To[], Where[], Where2[])
- {
- new query[128];
- mysql_real_escape_string(Table, Table);
- mysql_real_escape_string(Field, Field);
- mysql_real_escape_string(To, To);
- mysql_real_escape_string(Where, Where);
- mysql_real_escape_string(Where2, Where2);
- format(query, 128, "UPDATE `%s` SET `%s` = '%s' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
- mysql_query(query);
- return true;
- }
- stock mysql_SetFloat(Table[], Field[], Float:To, Where[], Where2[])
- {
- new query[128];
- mysql_real_escape_string(Table, Table);
- mysql_real_escape_string(Field, Field);
- mysql_real_escape_string(Where, Where);
- mysql_real_escape_string(Where2, Where2);
- format(query, 128, "UPDATE `%s` SET `%s` = '%f' WHERE `%s` = '%s'", Table, Field, To, Where, Where2);
- mysql_query(query);
- return true;
- }
- stock mysql_GetInt(Table[], Field[], Where[], Is[])
- {
- new query[128];
- mysql_real_escape_string(Table, Table);
- mysql_real_escape_string(Field, Field);
- mysql_real_escape_string(Where, Where);
- mysql_real_escape_string(Is, Is);
- format(query, 128, "SELECT `%s` FROM `%s` WHERE `%s` = '%s'", Field, Table, Where, Is);
- mysql_query(query);
- mysql_store_result();
- new sqlint = mysql_fetch_int();
- mysql_free_result();
- return sqlint;
- }
- stock createtable()
- {
- mysql_query("CREATE TABLE IF NOT EXISTS `accounts` (`id` int(11) AUTO_INCREMENT, PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=latin1;");
- mysql_query("ALTER TABLE `accounts` ADD `Name` varchar(64)");
- mysql_query("ALTER TABLE `accounts` ADD `Passwort` varchar(128) NOT NULL");
- mysql_query("ALTER TABLE `accounts` ADD `IP` varchar(128) NOT NULL");
- mysql_query("ALTER TABLE `accounts` ADD `Level` int(11) NOT NULL DEFAULT '0'");
- mysql_query("ALTER TABLE `accounts` ADD `Geld` int(11) NOT NULL DEFAULT '0'");
- mysql_query("ALTER TABLE `accounts` ADD `Adminlevel` int(11) NOT NULL DEFAULT '0'");
- mysql_query("ALTER TABLE `accounts` ADD `ban` varchar(128) NOT NULL");
- mysql_query("ALTER TABLE `accounts` ADD `banngrund` varchar(128) NOT NULL");
- mysql_query("ALTER TABLE `accounts` ADD `Autoschein` int(11) NOT NULL DEFAULT '0'");
- mysql_query("ALTER TABLE `accounts` ADD `Motorradschein` int(11) NOT NULL DEFAULT '0'");
- mysql_query("ALTER TABLE `accounts` ADD `Flugschein` int(11) NOT NULL DEFAULT '0'");
- mysql_query("ALTER TABLE `accounts` ADD `Bootschein` int(11) NOT NULL DEFAULT '0'");
- }
- stock SpielerName(playerid)
- {
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,sizeof(name));
- return name;
- }
- stock IstSpielerAdmin(playerid,level)
- {
- if(SpielerInfo[playerid][Adminlevel] >= level) return 1;
- return 0;
- }
- stock adminrang(playerid)
- {
- new adminr[50];
- if (SpielerInfo[playerid][Adminlevel] == 0) adminr = ("Zivilist");
- if (SpielerInfo[playerid][Adminlevel] == 1) adminr = ("Probe Supporter");
- if (SpielerInfo[playerid][Adminlevel] == 2) adminr = ("Supporter");
- if (SpielerInfo[playerid][Adminlevel] == 3) adminr = ("Admin");
- if (SpielerInfo[playerid][Adminlevel] == 4) adminr = ("High Admin");
- if (SpielerInfo[playerid][Adminlevel] == 5) adminr = ("Server Manager");
- if (SpielerInfo[playerid][Adminlevel] == 6) adminr = ("Server Leitung");
- return adminr;
- }
- stock SpielerIP(playerid)
- {
- new getip[16];
- GetPlayerIp(playerid,getip,sizeof(getip));
- return getip;
- }
- stock SendAdminMessage(farbe,string[])
- {
- for(new i = 0; i < MAX_PLAYERS; i++)
- {
- if (SpielerInfo[i][Adminlevel] >= 1)
- {
- SendClientMessage(i, farbe, string);
- }
- }
- }
- //Sscanf
- stock sscanf(string[], format[], {Float,_}:...)
- {
- #if defined isnull
- if (isnull(string))
- #else
- if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
- #endif
- {
- return format[0];
- }
- #pragma tabsize 4
- new
- formatPos = 0,
- stringPos = 0,
- paramPos = 2,
- paramCount = numargs(),
- delim = ' ';
- while (string[stringPos] && string[stringPos] <= ' ')
- {
- stringPos++;
- }
- while (paramPos < paramCount && string[stringPos])
- {
- switch (format[formatPos++])
- {
- case '\0':
- {
- return 0;
- }
- case 'i', 'd':
- {
- new
- neg = 1,
- num = 0,
- ch = string[stringPos];
- if (ch == '-')
- {
- neg = -1;
- ch = string[++stringPos];
- }
- do
- {
- stringPos++;
- if ('0' <= ch <= '9')
- {
- num = (num * 10) + (ch - '0');
- }
- else
- {
- return -1;
- }
- }
- while ((ch = string[stringPos]) > ' ' && ch != delim);
- setarg(paramPos, 0, num * neg);
- }
- case 'h', 'x':
- {
- new
- num = 0,
- ch = string[stringPos];
- do
- {
- stringPos++;
- switch (ch)
- {
- case 'x', 'X':
- {
- num = 0;
- continue;
- }
- case '0' .. '9':
- {
- num = (num << 4) | (ch - '0');
- }
- case 'a' .. 'f':
- {
- num = (num << 4) | (ch - ('a' - 10));
- }
- case 'A' .. 'F':
- {
- num = (num << 4) | (ch - ('A' - 10));
- }
- default:
- {
- return -1;
- }
- }
- }
- while ((ch = string[stringPos]) > ' ' && ch != delim);
- setarg(paramPos, 0, num);
- }
- case 'c':
- {
- setarg(paramPos, 0, string[stringPos++]);
- }
- case 'f':
- {
- new changestr[16], changepos = 0, strpos = stringPos;
- while(changepos < 16 && string[strpos] && string[strpos] != delim)
- {
- changestr[changepos++] = string[strpos++];
- }
- changestr[changepos] = '\0';
- setarg(paramPos,0,_:floatstr(changestr));
- }
- case 'p':
- {
- delim = format[formatPos++];
- continue;
- }
- case '\'':
- {
- new
- end = formatPos - 1,
- ch;
- while ((ch = format[++end]) && ch != '\'') {}
- if (!ch)
- {
- return -1;
- }
- format[end] = '\0';
- if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
- {
- if (format[end + 1])
- {
- return -1;
- }
- return 0;
- }
- format[end] = '\'';
- stringPos = ch + (end - formatPos);
- formatPos = end + 1;
- }
- case 'u':
- {
- new
- end = stringPos - 1,
- id = 0,
- bool:num = true,
- ch;
- while ((ch = string[++end]) && ch != delim)
- {
- if (num)
- {
- if ('0' <= ch <= '9')
- {
- id = (id * 10) + (ch - '0');
- }
- else
- {
- num = false;
- }
- }
- }
- if (num && IsPlayerConnected(id))
- {
- setarg(paramPos, 0, id);
- }
- else
- {
- #if !defined foreach
- #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
- #define __SSCANF_FOREACH__
- #endif
- string[end] = '\0';
- num = false;
- new
- name[MAX_PLAYER_NAME];
- id = end - stringPos;
- foreach (Player, playerid)
- {
- GetPlayerName(playerid, name, sizeof (name));
- if (!strcmp(name, string[stringPos], true, id))
- {
- setarg(paramPos, 0, playerid);
- num = true;
- break;
- }
- }
- if (!num)
- {
- setarg(paramPos, 0, INVALID_PLAYER_ID);
- }
- string[end] = ch;
- #if defined __SSCANF_FOREACH__
- #undef foreach
- #undef __SSCANF_FOREACH__
- #endif
- }
- stringPos = end;
- }
- case 's', 'z':
- {
- new
- i = 0,
- ch;
- if (format[formatPos])
- {
- while ((ch = string[stringPos++]) && ch != delim)
- {
- setarg(paramPos, i++, ch);
- }
- if (!i)
- {
- return -1;
- }
- }
- else
- {
- while ((ch = string[stringPos++]))
- {
- setarg(paramPos, i++, ch);
- }
- }
- stringPos--;
- setarg(paramPos, i, '\0');
- }
- default:
- {
- continue;
- }
- }
- while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
- {
- stringPos++;
- }
- while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
- {
- stringPos++;
- }
- paramPos++;
- }
- do
- {
- if ((delim = format[formatPos++]) > ' ')
- {
- if (delim == '\'')
- {
- while ((delim = format[formatPos++]) && delim != '\'') {}
- }
- else if (delim != 'z')
- {
- return delim;
- }
- }
- }
- while (delim > ' ');
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement