Hallo, ich habe mir ein Script heruntergeladen was ich nun gerne weiter bearbeiten möchte. Leider musste ich feststellen das es keine möglichkeit gab den Chat nutzen zu können. Könnt Ihr mir da weiter helfen woran es liegen könnte ?
/*
Copyright by fair, MySQL Tutorial by Maddin.
Dieser Kopfbereich darf nicht editiert werden das Werk steht unter eine CC Lizenz von FairNet-Works.
Changelog:
- Arbeit weitgehend mit Dialogen
- MySQL
- in den Settings alles editierbar
Weitere Versionen folgen.... (c) by Deuce
*/
/*Includes*/
#include <a_samp>
#include <a_mysql>
#include <ocmd>
#include <sscanf2>
/*Settings*/
#define SQL_HOST "localhost"
#define SQL_USER "root"
#define SQL_PASS ""
#define SQL_DATA "samp_db"
/*Settings für /hilfe*/
#define NORMALEBEFEHLE "Fraktionsbefehle\n-\t/f - {FF0000}Fraktionschat"
#define ADMINBEFEHLE "Adminbefehle\n\n{FF0000}-\t{FAFAFA}/makeleader - {FF0000}Leader\n-\t{FAFAFA}/makeadmin - {FF0000}Adminrang\n-\t{FAFAFA}/kick - {FF0000}Spieler kicken\n-\t{FAFAFA}/ban - {FF0000}Spieler bannen\n-\t{FAFAFA}/a - {FF0000}Adminchat\n\n{FAFAFA}Fraktionsbefehle\n\n-\t{FAFAFA}/f - {FF0000}Fraktionschat"
/*Dialoge*/
#define DIALOG_REGISTER (0)
#define DIALOG_LOGIN (1)
#define DIALOG_PROFIL (2)
/*Farben*/
#define Rot 0xEB0000FF
#define Grun 0x23FF00FF
#define Weiss 0xF0FFFFFF
/*Define*/
#define gmname "Blank v0.1"
#define mapname "mapname San Andreas"
#define url "url sa-mp.net"
/*Global Definitionen*/
new Handschellen;
new Text:Copy;
new GetNamee[MAX_PLAYER_NAME];
enum SpielerDaten
{
pName[MAX_PLAYER_NAME],
pLevel,
pGeld,
pKills,
pTode,
Float:pHealth,
pRang,
pMember,
pLeader,
bank_geld,
filmgehabt
}
new SpielerInfo[MAX_PLAYERS][SpielerDaten];
/*Consoleoutput*/
main()
{
print("\n----------------------------------");
print(" Blank Gamemode by fair");
print("----------------------------------\n");
}
/*Callback GI*/
public OnGameModeInit()
{
/*Textdraws*/
Copy = TextDrawCreate(14.000000,431.000000,"Basis by fair");
TextDrawUseBox(Copy,1);
TextDrawBoxColor(Copy,0xffffff33);
TextDrawTextSize(Copy,210.000000,14.000000);
TextDrawAlignment(Copy,0);
TextDrawBackgroundColor(Copy,0x00000033);
TextDrawFont(Copy,2);
TextDrawLetterSize(Copy,0.499999,0.800000);
TextDrawColor(Copy,0xffffff66);
TextDrawSetOutline(Copy,1);
TextDrawSetProportional(Copy,1);
TextDrawSetShadow(Copy,2);
/*Weitere Settings*/
SetGameModeText(gmname);
SendRconCommand(mapname);
SendRconCommand(url);
Connect_To_Database();
mysql_debug(1);
SetGameModeText("Blank v1.0 | fair");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
return 1;
}
/*Callback GE*/
public OnGameModeExit()
{
return 1;
}
/*Callback RC*/
public OnPlayerRequestClass(playerid, classid)
{
if(GetPVarInt(playerid,"Eingeloggt") == 0) //Als erstes fragen wir ab ob der Spieler schon eingeloggt ist oder nicht, damit wir nicht bei jeder Skin Auswahl uns neu Einloggen müssen.
{
if(mysql_CheckAccount(playerid) == 0)//Wir überprüfen ob der Account Existiert, falls nicht Zeigen wir den Dialog zum Registrieren.
{
SendClientMessage(playerid, 0xFFFFFFFF,"________-> [NAME] heißt dich Willkommen <-________");
SendClientMessage(playerid, 0xFFFFFFFF,"Die Datenbank vermiss dich, registriere dich bitte!");
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Registrierung","Dein Passwort soll lauten?:","Registrieren","Verlassen");
}
else if(mysql_CheckAccount(playerid) == 1)//Falls doch zeigen wir den Dialog zum Einloggen.
{
SendClientMessage(playerid, 0xFFFFFFFF,"________-> [NAME] heißt dich Willkommen <-________");
SendClientMessage(playerid, 0xFFFFFFFF,"Schön dich wieder zu sehen, melde dich nun wieder an!");
ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Anmeldung","Bitte gib dein Passwort ein:","Anmelden","Verlassen");
}
}
return 1;
}
/*Callback CO*/
public OnPlayerConnect(playerid)
{
TextDrawShowForPlayer(playerid, Copy);
return 1;
}
/*Callback DCO*/
public OnPlayerDisconnect(playerid, reason)
{
SavePlayer(playerid);
DeletePVar(playerid,"Eingeloggt");
return 1;
}
/*Callback SP*/
public OnPlayerSpawn(playerid)
{
return 1;
}
/*Callback DT*/
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
/*Callback VSP*/
public OnVehicleSpawn(vehicleid)
{
return 1;
}
/*Callback VDT*/
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
/*Callback PT*/
public OnPlayerText(playerid, text[])
{
return 0;
}
/*Callback CMD*/
public OnPlayerCommandText(playerid, cmdtext[])
{
return 0;
}
/*Callback EV*/
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
return 1;
}
/*Callback EV*/
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
/*Callback SC*/
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
/*Callback EC*/
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
/*Callback LC*/
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
/*Callback ERC*/
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
/*Callback LRC*/
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
/*Callback RCON*/
public OnRconCommand(cmd[])
{
return 1;
}
/*Callback RSP*/
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
/*Callback OBM*/
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;
}
/*Callback DR*/
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_INPUT,"Registrierung","Dein Passwort ist zu Kurz..\nBitte gib ein neues Passwort ein:","Registrieren","Verlassen");
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_INPUT,"Anmeldung","Das angegebene Passwort ist Falsch..\nBitte wiederhole den Vorgang erneut:","Anmelden","Verlassen");
return 1;
}
else
{
new SpielerName[MAX_PLAYER_NAME];
GetPlayerName(playerid, SpielerName, MAX_PLAYER_NAME);
if(!strcmp(inputtext, mysql_ReturnPasswort(SpielerName), 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_INPUT,"Anmeldung","Falsches Passwort.\nBitte melde dich jetzt mit dem richtigen Passwort an:","Anmelden","Verlassen");
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;
}
//===== OCMD =====
/*Admincommands*/
ocmd:veh(playerid,params[])
{
new ModelID, color[2],Float:VehPos[4], vehicleid;
if(GetPlayerState(playerid)!=PLAYER_STATE_ONFOOT) return SendClientMessage(playerid,0xB0AFB0FF,"Du bist nicht zu Fuss");
if(sscanf(params, "ddd",ModelID,color[0],color[1])) return SendClientMessage(playerid,0xB0AFB0FF, "/veh [vehicleid] [color1] [color2]");
if(ModelID < 400 || ModelID > 611) return SendClientMessage(playerid,0xB0AFB0FF, "Die Fahrzeug Id muss von 400 bis 611 sein");
if(color[0] < 0 || color[0] > 126 || color[1] < 0 || color[1] > 200) return SendClientMessage(playerid,0xB0AFB0FF, "Falsche Farben 0 - 126");
if(IstAdmin(playerid))
{
GetPlayerPos(playerid, VehPos[0],VehPos[1],VehPos[2]);
GetPlayerFacingAngle(playerid, VehPos[3]);
vehicleid = CreateVehicle(ModelID,VehPos[0],VehPos[1],VehPos[2],VehPos[3],color[0],color[1],-1);
LinkVehicleToInterior(vehicleid,GetPlayerInterior(playerid));
SetVehicleVirtualWorld(vehicleid,GetPlayerVirtualWorld(playerid));
PutPlayerInVehicle(playerid, vehicleid, 0);
}
else return SendClientMessage(playerid, 0xB0AFB0FF, "Du bist ein Noob Admin");
return 1;
}
ocmd:hilfe(playerid, params[])
{
if(IstAdmin(playerid)) {
ShowPlayerDialog(playerid,1000,DIALOG_STYLE_MSGBOX,"Befehle",ADMINBEFEHLE,"Close","");}
else if(!IstAdmin(playerid)) {
ShowPlayerDialog(playerid,1001,DIALOG_STYLE_MSGBOX,"Befehle",NORMALEBEFEHLE,"Close","");}
return 1;
}
ocmd:makeleader(playerid, params[])
{
if(IstAdmin(playerid)){
new pID, Frak, Fraktion[100], Rang, string[60];
if(sscanf(params, "dddd", pID, Frak, Rang)) return SendClientMessage(playerid, Rot, "Benutze: /makeleader [Playerid] [Fraktion] [Rang]");
switch(Frak)
{
case 1: Fraktion = "Polizei";
case 2: Fraktion = "KriPo";
case 3: Fraktion = "Medic";
case 4: Fraktion = "O-Amt";
case 5: Fraktion = "Yakuza";
case 6: Fraktion = "La Cosa Nostra";
case 7: Fraktion = "Russische Mafia";
case 8: Fraktion = "CripZ";
case 9: Fraktion = "BloodZ";
case 10: Fraktion = "Vagos";
}
format(string, sizeof(string), " %s {4D8CE3}wurde zum Leiter der {FF0000}%s {4D8CE3}ernannt, Rang: {FF0000}%d", getName(pID), Fraktion, Rang);
SendAdminMessageRang(Rot,1338,string);
SpielerInfo[playerid][pMember] = Frak;
SpielerInfo[playerid][pLeader] = Frak;
SpielerInfo[playerid][pRang] = Rang;}
return 1;
}
ocmd:makeadmin(playerid, params[])
{
if(IstAdmin(playerid)){
new pID, Level, string[60];
if(sscanf(params, "dd", pID, Level)) return SendClientMessage(playerid, Rot, "Benutze: /makeadmin [Playerid] [Level]");
format(string, sizeof(string), " %s {4D8CE3}wurde zum Admin ernannt, Level: {FF0000}%d", getName(pID), Level);
SendAdminMessageRang(Rot,1338,string);
SpielerInfo[playerid][pLevel] = Level;}
return 1;
}
ocmd:kick(playerid, params[])
{
if(IstAdmin(playerid)){
new pID, Grund[50], string[60], stringa[60];
if(sscanf(params, "ds", pID, Grund)) return SendClientMessage(playerid, Rot, "Benutze: /kick [Playerid] [Grund]");
format(stringa, sizeof(stringa), "ADM: %s {FAFAFA}wurde gebannt, Grund: {FF0000}%s", getName(pID), Grund);
format(string, sizeof(string), " %s {FAFAFA}wurde gebannt, Grund: {FF0000}%s", getName(pID), Grund);
SendAdminMessageRang(Rot,1338,stringa);
SendClientMessageToAll(Rot, string);
Kick(pID);}
return 1;
}
ocmd:ban(playerid, params[])
{
if(IstAdmin(playerid)){
new pID, Grund[50], string[60], stringa[60];
if(sscanf(params, "ds", pID, Grund)) return SendClientMessage(playerid, Rot, "Benutze: /ban [Playerid] [Grund]");
format(stringa, sizeof(stringa), "ADM: %s {FAFAFA}wurde gebannt, Grund: {FF0000}%s", getName(pID), Grund);
format(string, sizeof(string), " %s {FAFAFA}wurde gebannt, Grund: {FF0000}%s", getName(pID), Grund);
SendAdminMessageRang(Rot,1338,stringa);
SendClientMessageToAll(Rot, string);
Ban(pID);}
return 1;
}
ocmd:a(playerid, params[])
{
new text[128],Rang[54];
if(sscanf(params, "s", text))
return SendClientMessage(playerid, Rot, "Benutzung: /a [Text]");
if(IstAdmin(playerid))
{
switch(SpielerInfo[playerid][pLevel])
{
case 1: Rang = "Supporter";
case 2: Rang = "Moderator";
case 3: Rang = "Supermoderator";
case 4: Rang = "Administrator";
case 5: Rang = "Kon-Administrator";
case 6: Rang = "Techniker";
case 7: Rang = "Servermanager";
case 8: Rang = "Kon-Serverleiter";
case 9: Rang = "Serverleiter";
case 1338: Rang = "Scripter";
}
}
format(text, sizeof text, "((%s %s: {FAFAFA}%s ))", Rang, getName(playerid), text);
SendAdminMessageRang(Grun,1338,text);
return 1;
}
/*Jobcommands*/
ocmd:cuff(playerid, params[])
{
if(SpielerInfo[playerid][pMember] == 1 || SpielerInfo[playerid][pMember] == 2)
{
new pID, bool:handschellen[MAX_PLAYERS], Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
if(sscanf(params, "d", pID)) return SendClientMessage(playerid, Rot, "Verwende: /cuff [PlayerID] (Muss in der nähe sein)");
if(IsPlayerInRangeOfPoint(pID, 2.0, x,y,z)){
if(handschellen[pID] == true)
{
handschellen[pID] = false;
SetPlayerSpecialAction(pID,24);
Handschellen = SetPlayerAttachedObject(pID, 0, 19418, 6, -0.011000, 0.028000, -0.022000, -15.600012, -33.699977, -81.700035, 0.891999, 1.000000, 1.168000);
}
else if(handschellen[pID] == false)
{
handschellen[pID] = true;
RemovePlayerAttachedObject(pID, Handschellen);
}
}}
return 1;
}
ocmd:f(playerid, params[])
{
if(SpielerInfo[playerid][pMember] > 0)
{
new text[128],Rang[54];
if(sscanf(params, "s", text))
return SendClientMessage(playerid, Rot, "Benutzung: /f [Text]");
if(SpielerInfo[playerid][pMember] == 1)
{
switch(SpielerInfo[playerid][pRang])
{
case 1: Rang = "1";
case 2: Rang = "2";
case 3: Rang = "3";
case 4: Rang = "4";
case 5: Rang = "5";
case 6: Rang = "6";
case 7: Rang = "7";
case 8: Rang = "8";
case 9: Rang = "9";
case 10: Rang = "10";
}
}
format(text, sizeof text, "((%s %s: %s ))", Rang, getName(playerid), text);
for(new i; i < GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i))
if(InFrak(i, SpielerInfo[playerid][pMember]))//Nur die Frak, wo man drinnen ist
SendClientMessage(i,Grun, text);
}
}
return 1;
}
/*Normale Befehle*/
ocmd:verhandlung(playerid, params[])
{
if(SpielerInfo[playerid][filmgehabt] == 1)
{
Film(playerid);
}
else if(SpielerInfo[playerid][filmgehabt] == 0)
{
Filmende(playerid);
}
return 1;
}
ocmd:ausweis(playerid,params)
{
profile(playerid);
return 1;
}
stock profile(playerid){
new Name[MAX_PLAYER_NAME], Bankgeld = SpielerInfo[playerid][bank_geld], Geld = GetPlayerMoney(playerid), Score = GetPlayerScore(playerid),
string1[156],string2[156],string3[156],string4[156],string5[156],string6[56],string7[56],string8[56],string9[56],string10[56],string11[56],string12[56],string13[56],string14[56],rest[200];
GetPlayerName(playerid,Name,sizeof Name);
format(string2, sizeof string2, "[Allgemeines]");
format(string3, sizeof(string3), "{FAFAFA}Name: \t%s\nLevel: \t%d\nGeld: \t{E63576}%d {24AD40}${FAFAFA}", Name,Score,Geld);
format(string4, sizeof(string4), "Bankgeld: \t{E63576}%d {24AD40}${FAFAFA}\nBeruf: \t%s\nRang: \t%s",Bankgeld,GetTeamStr(SpielerInfo[playerid][pMember]),GetRang(SpielerInfo[playerid][pRang]));
format(rest, sizeof rest, "%s\n\n\n%s\n%s\n%s\n%s\n\n%s\n%s\n%s\n\n%s\n%s\n\n%s\n%s\n%s\n%s", string1,string2,string3,string4,string5,string6,string7,string8,string9,string10,string11,string12,string13,string14);
ShowPlayerDialog(playerid,DIALOG_PROFIL, DIALOG_STYLE_MSGBOX, "{F22C7E}Statistik{FFFFFF}", rest, "Weiter", "Weiter");
return 1;
}
stock GetRang(sRang)
{
new teamstr[20];
switch(sRang)
{
case 0:teamstr = "Neuling";
case 1:teamstr = "Anfaenger";
case 2:teamstr = "Fortgeschrittener";
case 3:teamstr = "Ausbilder";
case 4:teamstr = "Stellv. Leiter";
case 5:teamstr = "Leitung";
case 6:teamstr = "Godfather";
}
return teamstr;
}
stock GetTeamStr(Teamid)
{
new tstr[25];
switch(Teamid)
{
case 0:tstr = "Zivilist";
case 1: tstr = "Polizei";
case 2: tstr = "KriPo";
case 3: tstr = "Medic";
case 4: tstr = "O-Amt";
case 5: tstr = "Yakuza";
case 6: tstr = "La Cosa Nostra";
case 7: tstr = "Russische Mafia";
case 8: tstr = "CripZ";
case 9: tstr = "BloodZ";
case 10: tstr = "Vagos";
}
return tstr;
}
stock Film(playerid)
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid, x, y, z);
InterpolateCameraPos(playerid, x, y, z, x+5, y+20, z+5, 5000, CAMERA_CUT);
SpielerInfo[playerid][filmgehabt] = 0;
return 1;
}
stock Filmende(playerid)
{
SpielerInfo[playerid][filmgehabt] = 1;
SetCameraBehindPlayer(playerid);
return 1;
}
stock Connect_To_Database()
{
mysql_connect(SQL_HOST, SQL_USER, SQL_DATA, SQL_PASS); //Wir versuchen mit den Angaben die wir oben im Script gemacht haben uns mit dem MySQL Server zu verbinden.
if(mysql_ping() == 1) //Es wird überprüft ob die Verbindung steht.
{
//Falls ja wird das in die Console geschrieben und die Funktion wird beendet.
print("<-| [MYSQL] Verbindung zur Datenbank wurde erfolgreich hergestellt!");
return true;
}
else
{
//Falls nicht wird erneut versucht eine Verbindung aufzubauen.
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
{
//Falls das auch nicht Funktioniert wird der Server zur Sicherheit wieder heruntergefahren.
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];
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();
return mysql_num_rows();
}
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]
SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Level" eingetragen ist und Speichern ihn in unserer Variable.
SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Geld" eingetragen ist und Speichern ihn in unserer Variable.
SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Kills" eingetragen ist und Speichern ihn in unserer Variable.
SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]); //Wir holen uns den wert der unter "Tode" eingetragen ist und Speichern ihn in unserer Variable.
SpielerInfo[playerid][pRang] = mysql_GetInt("accounts", "Rang", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pMember] = mysql_GetInt("accounts", "Member", "Name", SpielerInfo[playerid][pName]);
SpielerInfo[playerid][pLeader] = mysql_GetInt("accounts", "Leader", "Name", SpielerInfo[playerid][pName]);
}
return 1;
}
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 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) //Und hier ob er noch eingeloggt ist.
{
//Nun speichern wir die Daten in der Datenbank.
mysql_SetInt("accounts", "Level", SpielerInfo[playerid][pLevel], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Geld", SpielerInfo[playerid][pGeld], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Kills", SpielerInfo[playerid][pKills], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Tode", SpielerInfo[playerid][pTode], "Name", SpielerInfo[playerid][pName]);
mysql_SetFloat("accounts", "Health", SpielerInfo[playerid][pHealth], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Rang", SpielerInfo[playerid][pRang], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Member", SpielerInfo[playerid][pMember], "Name", SpielerInfo[playerid][pName]);
mysql_SetInt("accounts", "Leader", SpielerInfo[playerid][pLeader], "Name", SpielerInfo[playerid][pName]);
}
}
return 1;
}
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_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 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 = '%.1f' WHERE %s = '%s'", Table, Field, To, Where, Where2);
mysql_query(query);
return true;
}
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 GetNearHausID(playerid)
{
new Float:x,
Float:y,
Float:z,
WhichID;
GetPlayerPos(playerid, x, y, z); // "gette" x, y, z - Koordinate an denen der Spieler sich befindet
for(new hWhich; hWhich < MaxHaus; hWhich++) //Durchlaufe alle Häuser
if(IsPlayerInRangeOfPoint(playerid, 3.0, Haus[hWhich][hX], Haus[hWhich][hY], Haus[hWhich][hZ])) //bis du ein Haus findest was im Radius von 3.0 steht
WhichID = hWhich;
return WhichID; //und returne dann das gefundene Haus
}
stock SendAdminMessageRang(farbe,level,const string[]) { // Müsste klar sein, ist die Vorgehensweise (definiert)
level = 1338;
for(new i = 0; i < MAX_PLAYERS; i++) { //eine Schleife zum Abfragen der Spieler :D
if (SpielerInfo[i][pLevel] >= level) {//Die meisten Selfmades Variablen, sendet Nachricht an den angegebenen Rang..
SendClientMessage(i, farbe, string); // Sendet String...
} }
return 1; }
stock InFrak(pid, frak)
{
if(SpielerInfo[pid][pMember] == frak || SpielerInfo[pid][pMember] == frak) return SendClientMessage(pid, Rot, "");
return 1;
}
stock IstAdmin(pid)
{
if(SpielerInfo[pid][pLevel] >= 1338 || !IsPlayerAdmin(pid)) return SendClientMessage(pid, Rot, "");
return 0;
}
stock getName(playerid)
{
GetPlayerName(playerid,GetNamee,sizeof(GetNamee));
return GetNamee;
}
stock GivePlayerHealth(playerid,Float:Health)
{
new Float:health;
GetPlayerHealth(playerid,health);
SetPlayerHealth(playerid,health+Health);
return 1;
}
stock GivePlayerArmour(playerid,Float:Armour)
{
new Float:armour;
GetPlayerArmour(playerid,armour);
SetPlayerArmour(playerid,armour+Armour);
return 1;
}
GetPlayerID(playername[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i) || !strcmp(GetPlayerNameEx(i),playername,false)) continue;
return i;
}
return -1;
}
Alles anzeigen