Dankeschön...
Und jetzt einfach weiter machen also unter SpielerInfo[playerid][pLevel]
SpielerInfo[playerid][pLevel]
SpielerInfo[playerid][pCash]
oder ?
Dankeschön...
Und jetzt einfach weiter machen also unter SpielerInfo[playerid][pLevel]
SpielerInfo[playerid][pLevel]
SpielerInfo[playerid][pCash]
oder ?
-.- Klingt echt kompliziert wie du das beschreibst...
Könntest du mir ein Beispiel mit Möglichkeit 1 Machen ? Weil irgendwie raff ich es nicht ganz.
Könntest du mir das Beispiel so machen wie ich es ins Script schreiben müsste ?
Könntest du mir ein Beispiel geben mit dem Level ?
Guten Tag Community,
Ich habe jetzt meinen stock SpielerSpeichern in Mysql querys umgeschrieben da es ja Ressourcen Schonender ist so sieht es jetzt. Als Beispiel nur 1 Zeile :
new query[2048];
format(query, sizeof(query), "UPDATE `accounts` SET Level = '%d',AdminLevel = '%d',Supporter = '%d',DonateRank = '%d',UpgradePoints = '%d',ConnectedTime = '%d',Registered = '%d',Sex = '%d',Alter = '%d',Origin = '%d' WHERE `name` = '%s'",
PlayerInfo[playerid][pLevel],PlayerInfo[playerid][pAdmin],PlayerInfo[playerid][pSupporter],PlayerInfo[playerid][pDonateRank],PlayerInfo[playerid][gPupgrade],
PlayerInfo[playerid][pConnectTime],PlayerInfo[playerid][pReg],PlayerInfo[playerid][pSex],PlayerInfo[playerid][pAge],PlayerInfo[playerid][pOrigin],PlayerInfo[playerid][pName]);
mysql_query(query);
So jetzt zu meiner Frage
Wie soll ich das jetzt beim Spieler Laden machen ?
Da habe ich derzeit alles so gemacht :
PlayerInfo[playerid][pLevel] = mysql_GetInt("accounts","Level", "Name",PlayerInfo[playerid][pName]);
Passt das so oder sollte ich es auch anders machen ? (ca. 150 Variablen)
PlAyErBoSS
Versuch mal 8661
Setz doch einfach einen Neuen Boden ein.
V
Nunja, es kommt drauf an was du mit deinem Script machen willst, wenn du damit einen Server aufmachen willst, dann würde ich jetzt damit anfangen und nicht erst später wenn du das doppelte an Variablen hast die du zum Speichern hast
bt: Es könnte vielleicht sein das du zu viele Querys ausführt und er das dann nicht ausführt, hast du die Codes am Anfang oder am Ende der Speicher FUnktion?
Verschieden , cash und Bank ist am Anfang und Char und Model so mitte und Ende
Hast bock mir 150 variablen in querys umzuschreiben ?
Guten Abend Community,
Ich habe ein kleines Problem undzwar habe ich mein Godfather auf Mysql Umgeschrieben und nun wird das Geld auf der HAnd auf der Bank und der Skin nicht gespeichert.
Alles andere wird gespeichert...
So Lade ich den Spieler beim einloggen : (Habe alles ausser Skin und geld rausgenommen vom getint...)
stock OnPlayerLogin(playerid)
{
new tmp2[256];
new string2[128];
new playername2[MAX_PLAYER_NAME];
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
{
{
GetPlayerName(playerid, PlayerInfo[playerid][pName], MAX_PLAYER_NAME);
PlayerInfo[playerid][pCash] = mysql_GetInt("accounts","Geld", "Name",PlayerInfo[playerid][pName]); // Geld auf der HAnd
PlayerInfo[playerid][pAccount] = mysql_GetInt("accounts","Bank", "Name",PlayerInfo[playerid][pName]); //Geld auf der Bank
PlayerInfo[playerid][pChar] = mysql_GetInt("accounts","Char","Name",PlayerInfo[playerid][pName]); // Char
PlayerInfo[playerid][pModel] = mysql_GetInt("accounts","Model","Name",PlayerInfo[playerid][pName]); //Model
printf("Spielerdaten vom Spieler %s erfolgreich aus der Datenbank geladen",SpielerName(playerid));
}//end while
}
PlayerInfo[playerid][pAdjustable] = 0;
ResetPlayerMoney(playerid);
ConsumingMoney[playerid] = 1;
GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
CurrentMoney[playerid] = PlayerInfo[playerid][pCash];
if(PlayerInfo[playerid][pReg] == 0)
{
PlayerInfo[playerid][pLevel] = 1;
PlayerInfo[playerid][pSHealth] = 0.0;
PlayerInfo[playerid][pHealth] = 99.0;
PlayerInfo[playerid][pPos_x] = 2246.6;
PlayerInfo[playerid][pPos_y] = -1161.9;
PlayerInfo[playerid][pPos_z] = 1029.7;
PlayerInfo[playerid][pInt] = 15;
PlayerInfo[playerid][pLocal] = 255;
PlayerInfo[playerid][pTeam] = 3;
PlayerInfo[playerid][pModel] = 212;
PlayerInfo[playerid][pPhousekey] = 255;
PlayerInfo[playerid][pPbiskey] = 255;
PlayerInfo[playerid][pAccount] = 0;
PlayerInfo[playerid][pReg] = 1;
GivePlayerMoney(playerid, 10000);
}
if(PlayerInfo[playerid][pGesperrt] == 1)//PlayerInfo[playerid][pLevel] == -999) //autoban
{
format(string2,sizeof(string2)," %s versucht mit seinem gebannten Account online zu kommen und wurde gekickt!",playername2);
ABroadCast(COLOR_LIGHTRED,string2,1);
SendClientMessage(playerid,COLOR_RED," Du bist hier gebannt.. also mag dich hier keiner");
SendClientMessage(playerid,COLOR_RED," und du hast keine Freunde :D haha NOOB ");
Kick(playerid);
return 1;
}
else if(PlayerInfo[playerid][pCK] > 0)
{
Kick(playerid);
}
format(string2, sizeof(string2), "Erfolgreich eingeloggt, Willkommen %s",playername2);
SendClientMessage(playerid, COLOR_GREEN,string2);
printf("%s has logged in.",playername2);
if(PlayerInfo[playerid][pDonateRank] > 0)
{
SendClientMessage(playerid, COLOR_GREEN,"Du bist Premium Nutzer.");
}
if (PlayerInfo[playerid][pAdmin] > 0)
{
format(string2, sizeof(string2), "Willkommen Admin %d.",PlayerInfo[playerid][pAdmin]);
SendClientMessage(playerid, COLOR_GREEN,string2);
}
if(PlayerInfo[playerid][pSupporter] > 0)
{
format(string2, sizeof(string2), "Willkommen Supporter %d.",PlayerInfo[playerid][pSupporter]);
SendClientMessage(playerid, COLOR_GREEN,string2);
}
SetSpawnInfo(playerid, PlayerInfo[playerid][pTeam], PlayerInfo[playerid][pModel], PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z], 1.0, -1, -1, -1, -1, -1, -1);
if(gTeam[playerid] == 0)
{
gTeam[playerid] = 3;
}
else
{
gTeam[playerid] = PlayerInfo[playerid][pTeam];
}
gPlayerLogged[playerid] = 1;
SpawnPlayer(playerid);
format(tmp2, sizeof(tmp2), "~w~Willkommen ~n~~y~ %s", playername2);
DateProp(playerid);
GameTextForPlayer(playerid, tmp2, 5000, 1);
SendClientMessage(playerid, COLOR_YELLOW, motd);
}
if(OfflineFlucht[playerid] == 1 && WantedLevel[playerid] > 0)
{
SendClientMessage(playerid,COLOR_LIGHTRED, "* Du wurdest Eingesperrt weil du Offline-Flucht begangen hast!");
SendClientMessage(playerid,COLOR_LIGHTRED, "* Pro WantedLevel 5 Minuten + 30 Minuten Strafe!");
new sendername[MAX_PLAYER_NAME],string[100];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "*[Auto-Jail] %s wurde wegen Offline-Flucht eignesperrt.", sendername);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsADChatter(i))
{
SendClientMessage(i,COLOR_ALLDEPT,string);
}
}
OfflineFlucht[playerid] = 0;
ResetPlayerWeapons(playerid);
new wlevel = WantedLevel[playerid];
PlayerInfo[playerid][pJailed] = 1;
PlayerInfo[playerid][pJailTime] = (wlevel*300)+1800;
SetPlayerInterior(playerid, 3);
if(LSPDZellen == 0)//zelle1
{
SetPlayerPos(playerid,219.4217,110.5207,999.0156);
LSPDZellen += 1;
}
if(LSPDZellen == 1)//zelle2
{
SetPlayerPos(playerid,223.2922,110.6890,999.0156);
LSPDZellen += 1;
}
if(LSPDZellen == 2)//zelle3
{
SetPlayerPos(playerid,215.0419,110.2922,999.0156);
LSPDZellen = 0;
}
WantedPoints[playerid] = 0;
SetPlayerWantedLevel(playerid,0);
WantedLevel[playerid] = 0;
}
else if(OfflineFlucht[playerid] == 1 && WantedLevel[playerid] == 0)
{
SendClientMessage(playerid,COLOR_LIGHTRED, "* Du wurdest eingesperrt weil du Offline-Flucht begangen hast!");
new sendername[MAX_PLAYER_NAME],string[100];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "*[Auto-Jail] %s wurde wegen Offline-Flucht eingesperrt.", sendername);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsADChatter(i))
{
SendClientMessage(i,COLOR_ALLDEPT,string);
}
}
OfflineFlucht[playerid] = 0;
ResetPlayerWeapons(playerid);
PlayerInfo[playerid][pJailed] = 1;
PlayerInfo[playerid][pJailTime] = 300;
SetPlayerInterior(playerid, 3);
if(LSPDZellen == 0)//zelle1
{
SetPlayerPos(playerid,215.0419,110.2922,999.0156);
LSPDZellen += 1;
}
if(LSPDZellen == 1)//zelle2
{
SetPlayerPos(playerid,227.8457,110.7000,999.0156);
LSPDZellen += 1;
}
if(LSPDZellen == 2)//zelle3
{
SetPlayerPos(playerid,223.2922,110.6890,999.0156);
LSPDZellen = 0;
}
WantedPoints[playerid] = 0;
SetPlayerWantedLevel(playerid,0);
WantedLevel[playerid] = 0;
}
else if(OfflineFlucht[playerid] == 2 && WantedLevel[playerid] > 0)
{
SendClientMessage(playerid,COLOR_LIGHTRED, "* Du wurdest Eingesperrt weil du Gecuffed einen Crash hattest!");
SendClientMessage(playerid,COLOR_LIGHTRED, "* Pro WantedLevel 5 Minuten!");
new sendername[MAX_PLAYER_NAME],string[100];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "*[Auto-Jail] %s wurde wegen Exe-Crash eingesperrt.", sendername);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && IsADChatter(i))
{
SendClientMessage(i,COLOR_ALLDEPT,string);
}
}
OfflineFlucht[playerid] = 0;
ResetPlayerWeapons(playerid);
new wlevel = WantedLevel[playerid];
PlayerInfo[playerid][pJailed] = 1;
PlayerInfo[playerid][pJailTime] = wlevel*300;
SetPlayerInterior(playerid, 3);
if(LSPDZellen == 0)//zelle1
{
SetPlayerPos(playerid,223.2922,110.6890,999.0156);
LSPDZellen += 1;
}
if(LSPDZellen == 1)//zelle2
{
SetPlayerPos(playerid,227.8457,110.7000,999.0156);
LSPDZellen += 1;
}
if(LSPDZellen == 2)//zelle3
{
SetPlayerPos(playerid,215.0419,110.2922,999.0156);
LSPDZellen = 0;
}
WantedPoints[playerid] = 0;
SetPlayerWantedLevel(playerid,0);
WantedLevel[playerid] = 0;
}
new stern = WantedLevel[playerid];
SetPlayerWantedLevel(playerid,stern);
WantedPoints[playerid] = stern * 2;
if(PlayerInfo[playerid][pLevel] <= 3)
{
Noob[playerid] = Create3DTextLabel("{FFFFFF}*Neuling*",COLOR_WHITE,30.0,40.0,50.0,40.0,0);
Attach3DTextLabelToPlayer(Noob[playerid], playerid, 0.0, 0.0, 0.4);
Noobi[playerid] = 1;
}
KHSperre[playerid] = 1;
SetTimerEx("KHSP",60000,0,"i",playerid);
return 1;
}
So speichere ich alles :
if(gPlayerLogged[playerid] == 1)
{
{
mysql_SetInt("accounts","Geld",GetPlayerMoney(playerid),"Name",PlayerInfo[playerid][pName]);
mysql_SetInt("accounts","Bank",PlayerInfo[playerid][pAccount],"Name",PlayerInfo[playerid][pName]);
mysql_SetInt("accounts","Char",GetPlayerSkin(playerid),"Name",PlayerInfo[playerid][pName]);
mysql_SetInt("accounts","Model",GetPlayerSkin(playerid),"Name",PlayerInfo[playerid][pName]);
printf("Spielerdaten vom Spieler %s erfolgreich in der Datenbank gespeichert.",SpielerName(playerid));
}
}
return 1;
}
Die Stuktur der Tabellen bzw. der sachen die nicht gespeichert werden :
`Geld` int(11) NOT NULL DEFAULT '0',
`Bank` int(11) NOT NULL DEFAULT '0',
`Char` int(11) NOT NULL DEFAULT '0',
`Model` int(11) NOT NULL DEFAULT '0',
Hoffentlich könnt ihr mich helfen...
//edit
Struktur hinzugefügt
So habs mal eingeschoben... xD
Da war eine Klammer auch zuviel hier bitte für euch. Bin ich nicht nett ?
if(strcmp(cmdtext,"/help",true)==0 || strcmp(cmdtext,"/hilfe",true)==0)
{
SendClientMessage(playerid,Farbe_Hellblau,"[Account] /stats /buylevel /changepass /upgrade.");
SendClientMessage(playerid, Farbe_Leuchtrot,"[Allgemein] /pay /time /buy /showperso /id /showlicenses /clothes /members /navi.");
SendClientMessage(playerid, Farbe_Leuchtrot,"[Allgemein] /buygun /spawnchange /sup /eject /contract /fill /service /spawnchange.");
SendClientMessage(playerid, Farbe_Hellblau,"[Togbefehle] /togplayerinfo /toginfo /toggf /togphone /togsup");
SendClientMessage(playerid, Farbe_Grau,"[Chat] /sup /s /b /l /ad /me.");
SendClientMessage(playerid, Farbe_Grau,"[Bank] /atm /bankrob.");
SendClientMessage(playerid, Farbe_Grau,"[Online] /lehrer /medics /cops /leaders /anwaelte.");
SendClientMessage(playerid,Farbe_Weiß,"[Sonstiges] /donatorhelp /carhelp /househelp /jobhelp /fishelp /bizhelp /tankhelp.");
if(SpielerInfo[playerid][sFraktion])
{
if(SpielerInfo[playerid][sFraktion] == TEAM_POLIZEI)
{
SendClientMessage(playerid,Farbe_Weiß,"[LSPD] /sw /tazer /grab /ungrab /cuff /uncuff /arrest /duty /su(spect) /clear /wanteds /pdtor /ticket.");
}
else if(SpielerInfo[playerid][sFraktion] == TEAM_FBI)
{
SendClientMessage(playerid,Farbe_Weiß,"[FBI] /sw /tazer /grab /ungrab /cuff /uncuff /arrest /duty /su(spect) /clear /wanteds /pdtor /ticket.");
}
else if(SpielerInfo[playerid][sFraktion] == TEAM_SFPD)
{
SendClientMessage(playerid,Farbe_Weiß,"[SFPD] /sw /tazer /grab /ungrab /cuff /uncuff /arrest /duty /su(spect) /clear /wanteds /pdtor /ticket.");
}
else if(SpielerInfo[playerid][sFraktion] == TEAM_RETTUNGSDIENST)
{
SendClientMessage(playerid,Farbe_Weiß,"[RETTUNGSDIENST] /duty /heal /revive & /wiederbeleben.");
}
else if(SpielerInfo[playerid][sFraktion] == TEAM_ORDNUNGSAMT)
{
SendClientMessage(playerid,Farbe_Weiß,"[ORDNUNGSAMT] /oenter /opark /ticket /tor /gp /blitzer /findcar /ofpark.");
}
else if(SpielerInfo[playerid][sFraktion] == TEAM_HITMAN)
{
SendClientMessage(playerid,Farbe_Weiß,"[HITMEN] /contracts /getweapons.");
}
else if(SpielerInfo[playerid][sFraktion] == TEAM_WHEELMAN)
{ SendClientMessage(playerid,Farbe_Weiß,"[WHEELMAN] /freefromcar /uncuff.");
}
else if(SpielerInfo[playerid][sFraktion] == TEAM_NEWS)
{ SendClientMessage(playerid,Farbe_Weiß,"[SAN NEWS] /news /live.");
}
else if(SpielerInfo[playerid][sFraktion] == TEAM_FAHRSCHULE)
{
SendClientMessage(playerid,Farbe_Weiß,"[FAHRSCHULE] /givelicense /startlesson /stoplesson /fslift /fsrespawn.");
}
else if(IsAGangFaction(SpielerInfo[playerid][sFraktion]))
{
SendClientMessage(playerid,Farbe_Weiß,"[GANG] /fcarfree /ctf /invade /tie /untie /kidnap /safebox /fbank /toggf.");
}
else if(IsAMafiaFaction(SpielerInfo[playerid][sFraktion]))
{
SendClientMessage(playerid,Farbe_Weiß,"[MAFIA] /fcarfree /ctf /invade /tie /untie /kidnap /safebox /fbank /toggf.");
}
if(SpielerInfo[playerid][sBoss])
SendClientMessage(playerid,Farbe_Weiß,"** Leaderhilfe ** /invite /uninvite /giverank /fpark /ramfa"); return 1;
}
Ihr hattet ja auch einen web radio
Gefällt mir 9/10
//edit
Ist die auch gecodet ?
Würde sie gerne haben xD
Hast du die Zugangsdaten auch wirklich richtig eingetragen ?
Weil bei MYSQL_HOST muss die IP stehen wenn du den Server wo gehostet hast und du ihn nicht über local laufen hast.
Bei User musst du deinen Benutzernamen angeben denn du hast
Be Password das Passwort was du brauchst wenn du eins eingerichtet hast
DB ist die Datenbank wie die heißt
Den M_Bot mal rausnehmen ?
Unter OnPlayerText
Das Abfrage ob er Admin use. ist und dann einfach wie rynn schon gesagt hat.
Zahlungsmöglichkeiten ? (Wegen Sofortkauf... )
Guten Tag Community,
Bei mir wird das Geld irgendwie nicht abgespeichert..
So speichere ich es ab und lade es :
//Spieler wird gespeichert
mysql_SetInt("accounts","Geld",PlayerInfo[playerid][pCash],"Name",PlayerInfo[playerid][pName]);
//Spieler Laden :
PlayerInfo[playerid][pCash] = mysql_GetInt("accounts","Geld", "Name",PlayerInfo[playerid][pName]);
printf("Spielerdaten vom Spieler %s erfolgreich aus der Datenbank geladen",SpielerName(playerid));
}//end while
}
ConsumingMoney[playerid] = 1;
GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
CurrentMoney[playerid] = PlayerInfo[playerid][pCash];