Was für Errors?
Hast du den gesamten Befehl ersetzt? Wenn ja, dann ist es klar, da ja unten eine Klammer fehlt. Ich habe diese mit Absicht weg gelassen, da ich nicht weiß ob da noch etwas folgt.
Falls nicht, so:
ocmd:autoparken(playerid, params[])
{
for (new i = 0; i < sizeof(AutoInfo); i++)
{
if(!strcmp(AutoInfo[i][Besitzer], SpielerName(playerid)))
{
//Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
new vID = GetPlayerVehicleID(playerid);
if(vID == AutoInfo[i] [Fahrzeugid])
{
new query[128];
GetVehiclePos(vID, AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
GetVehicleZAngle(vID,AutoInfo[i][c_r]);
format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
printf("query: %s", query);
mysql_function_query(dbhandle,query,false," "," ");
SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");
return 1;
}
return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
}
}
return 1;
}
Beiträge von Jeffry
-
-
Versuche es so:
stock SpielerSpeichern(playerid)
{
new mainQuery[2048];
if(SpielerInfo[playerid][pEingeloggt] == 0)return 1;
SpielerInfo[playerid][pEingeloggt] = 0;//Query 1
format(mainQuery, sizeof(mainQuery), "UPDATE `"SERVER_TAG"_accounts` SET `InternetProtocol` = '%s', `Eingeloggt`='%d', `Admin`='%d', `Tutorial`='%d', `Level`='%d', `Payday`='%d', `Respekt`='%d', `MaxRespekt`='%d', `Geld`='%d',",
SpielerIP(playerid), SpielerInfo[playerid][pEingeloggt], SpielerInfo[playerid][pAdmin], SpielerInfo[playerid][pTutorial],SpielerInfo[playerid][pLevel],SpielerInfo[playerid][pPayday],
SpielerInfo[playerid][pRespekt],SpielerInfo[playerid][pMaxRespekt],SpielerInfo[playerid][pGeld]);
format(mainQuery, sizeof(mainQuery), "%s`Bank`='%d', `Festgeld`='%d', `Lohn`='%d', `Skin`='%d', `Spawnchange`='%d', `Fraktion`='%d', `FrakRank`='%d', `FrakSkin`='%d', `Verheiratet`='%d',",
mainQuery,SpielerInfo[playerid][pBank],SpielerInfo[playerid][pFestgeld],SpielerInfo[playerid][pLohn],SpielerInfo[playerid][pSkin],SpielerInfo[playerid][pSpawnchange],SpielerInfo[playerid][pFraktion],
SpielerInfo[playerid][pFrakRank],SpielerInfo[playerid][pFrakSkin],SpielerInfo[playerid][pVerheiratet]);
format(mainQuery, sizeof(mainQuery), "%s`Job`='%d', `Geschlecht`='%d' WHERE Name = '%s'",
mainQuery,SpielerInfo[playerid][pJob],SpielerInfo[playerid][pGeschlecht],Spielername(playerid));
mysql_function_query(Handle, mainQuery, false, "", "");
//Query 2
format(mainQuery, sizeof(mainQuery), "UPDATE `"SERVER_TAG"_scheine` SET `Autoschein` = '%d', `AutoscheinPunkte` = '%d', `Flugschein` = '%d', `Waffenschein` = '%d', `Fischschein` = '%d', `Zollschein` = '%d', `Personalausweis` = '%d' WHERE `Name` = '%s'",
SpielerInfo[playerid][pAutoschein],SpielerInfo[playerid][pAutoscheinPunkte],SpielerInfo[playerid][pFlugschein],SpielerInfo[playerid][pWaffenschein],SpielerInfo[playerid][pFischschein],SpielerInfo[playerid][pZollschein],SpielerInfo[playerid][pPersonalausweis],Spielername(playerid));
mysql_function_query(Handle, mainQuery, false, "", "");
return 1;
}Falls es nicht geht, was sagt der Log?
-
Problem 1:
Versuche es so:
new query[128];
format(query,sizeof(query),"UPDATE accounts SET Knast='%d', JailTime='%d' WHERE id='%i'",PlayerInfo[playerid][pJailed], PlayerInfo[playerid][pJailTime], PlayerInfo[playerid][db_id]);Problem 2:
forward savePlayer();
public savePlayer()
{
printf("savePlayer aufgerufen");
for(new playerid = 0; playerid < MAX_PLAYERS; playerid++)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
new query[256];
format(query,sizeof(query),"UPDATE accounts SET PayDay='%d', PayDayHead='%d', Paycheck='%d', Respect='%d' WHERE id='%i'",
PlayerInfo[playerid][pPayDay],PlayerInfo[playerid][pPayDayHad],PlayerInfo[playerid][pPayCheck],PlayerInfo[playerid][pExp],PlayerInfo[playerid][db_id]);
mysql_function_query(dbhandle,query,false,"",""); //Hat gefehlt.
printf("SAVE: %s Account hat gespeichert!",pName);
}
}
return 1;
} -
ocmd:autoparken(playerid, params[])
{
for (new i = 0; i < sizeof(AutoInfo); i++)
{
if(!strcmp(AutoInfo[i][Besitzer], SpielerName(playerid)))
{
//Er sucht ab, ob der spieler ein auto besitzt, wenn ja:
if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid, dunkelgrün, "Du bist in kein Auto!");
new vID = GetPlayerVehicleID(playerid);
if(vID == AutoInfo[i] [Fahrzeugid])
{
new query[128];
GetVehiclePos(vID, AutoInfo[i][c_x],AutoInfo[i][c_y],AutoInfo[i][c_z]);
GetVehicleZAngle(vID,AutoInfo[i][c_r]);
format(query, sizeof(query), "UPDATE Autos SET x='%f',y='%f',z='%f',r='%f' WHERE id='%i' ",AutoInfo[i] [c_x],AutoInfo[i] [c_y],AutoInfo[i] [c_z],AutoInfo[i] [c_r],AutoInfo[i] [db_id]);
printf("query: %s", query);
mysql_function_query(dbhandle,query,false," "," ");
SendClientMessage(playerid, dunkelgrün, "Du hast dein Auto geparkt.");
return 1;
}
return SendClientMessage(playerid, dunkelgrün, "Du sitzt nicht in deinem Auto!");
}
}Falls es nicht klappt, poste was im Server Log steht wenn du den Befehl ausgeführt hast.
-
Das machst du doch hier schon:
stock GiveMoney(playerid, value)
{
if(!IsPlayerConnected(playerid))return 0;
sInfo[playerid][sMoney] += value;
ResetPlayerMoney(playerid);
GivePlayerMoney(playerid, sInfo[playerid][sMoney]);
return 1;
}Deshalb hatte es es ja zuvor doppelt (+1000) geladen.
-
Was hast denn du gemacht? Das Level passt ja jetzt auch nicht mehr.
stock SpielerLaden(playerid)
{
new Spielerdatei[128];
format(Spielerdatei,sizeof(Spielerdatei),"/User/%s.ini",SpielerName(playerid));
sInfo[playerid][sLevel] = SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
sInfo[playerid][sMoney] = 0;
GiveMoney(playerid,dini_Int(Spielerdatei,"Geld"));
sInfo[playerid][sBankKonto] = dini_Int(Spielerdatei,"BankKonto");
sInfo[playerid][sBankMoney] = dini_Int(Spielerdatei,"BankKontoGeld");
sInfo[playerid][sALevel] = dini_Int(Spielerdatei,"Adminlevel");
sInfo[playerid][sFraktion] = dini_Int(Spielerdatei,"Fraktion");
sInfo[playerid][sFRang] = dini_Int(Spielerdatei,"FraktionRang");
return 1;
}So.
-
Was wird dir so geprintet?
ocmd:vehiclelock(playerid,params[])
{
new veh = GetOwnVehicle(playerid);
if(veh == INVALID_VEHICLE_ID) return SendClientMessage(playerid,COLOR_RED,!"Es befindet sich keines deiner Fahrzeuge in der Nähe.");
new engine,lights,alarm,bonnet,boot,objective;
GetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
GameTextForPlayer(playerid, (vehdoor)?("~w~Fahrzeug ~g~aufgeschlossen"):("~w~Fahrzeug ~g~abgeschlossen"), 3000, 5);
PlaySoundForPlayer(playerid,1147);
SetTimerEx("PlaySoundForPlayer",500,0,"id",playerid,1147);
printf("vehdoor war: %d", vehdoor);
if(vehdoor!=0) vehdoor = 1;
else vehdoor = 0;
printf("vehdoor ist: %d (veh: %d)", vehdoor, veh);
SetVehicleParamsEx(veh,engine,lights,alarm,vehdoor,bonnet,boot,objective);
return 1;
} -
Wie sieht deine SpielerLaden Funktion jetzt aus?
-
Wenn du den nativechecker drin lässt, dann darfst du keine zweite "plugins" Zeile in der server.cfg anlegen, sondern dann muss es dazu.
plugins sscanf nativechecker
bzw. mit .so eben.EDIT: (Post unten)
IsoStar123: Alles klar! Da dein Problem behoben ist, wäre es gut, wenn du den Thread auf erledigt setzt. Danke! -
In der SpielerLaden-Funktion die Zeile
sInfo[playerid][sMoney] = GiveMoney(playerid,dini_Int(Spielerdatei,"Geld"));
damit ersetzen. -
Hier die neuste sscanf Version herunterladen:
http://forum.sa-mp.com/showthread.php?t=570927Dann einen Ordner "plugins" im Server Ordner anlegen und das Plugin da rein packen (dll -> Windows / so -> Linux).
Und in der server.cfg diese Zeile hinzufügen:
plugins sscanf
bzw.
plugins sscanf.so
wenn es auf Linux läuft. -
Oh, du zählst das in der Funktion auch hoch.
Dann so:
sInfo[playerid][sMoney] = 0;
GiveMoney(playerid,dini_Int(Spielerdatei,"Geld")); -
Hier hast du ein Tutorial:
[ SCRIPTING ] [jTuT] Fraktions-Fahrzeug-System mit MySQL R39-2Funktioniert mit SQLite prinzipiell genau gleich, nur die Funktionen sind zum Teil etwas anders, aber das wirst du dann ja wissen.
Die Tunings eines Fahrzeugs findest du hiermit heraus:
http://wiki.sa-mp.com/wiki/GetVehicleComponentInSlot -
sInfo[playerid][sMoney] = GiveMoney(playerid,dini_Int(Spielerdatei,"Geld"));
zu:
sInfo[playerid][sMoney] = dini_Int(Spielerdatei,"Geld");
GiveMoney(playerid,sInfo[playerid][sMoney]); -
-
Hast du auch einen Code zu den Errors?
-
Lade dir das nativechecker Plugin herunter, füge es in deinen Server ein und poste dann was im Log steht, wenn du den Server startest.
Download -
Du könntest das hier verwenden, wenn man den Text nicht lesen können darf:
http://forum.sa-mp.de/gta-mult…eschnipsel-60#post2053972EDIT: (Post unten)
IsoStar123: Da dein Problem behoben ist, wäre es gut, wenn du den Thread auf erledigt setzt. Danke! -
new text[144],string[145],string1[145];
Mehr geht nicht anzuzeigen.
Außerdem solltest du etwas sparsamer mit deinen Variablen umgehen, string1 ist nicht notwendig, du kannst das erneut in string schreiben. -
Lies dir bitte diesen Thread zu aller erst durch:
Der Pawn BB Code - Die richtige AnwendungZu deinem Problem:
Hier ein Tutorial was so ziemlich genau das erklärt was du haben willst:
http://forum.sa-mp.com/showthread.php?t=552766Wenn du Fragen dazu hast, poste bitte den Code und beschreibe dein Problem. Achte aber darauf, nicht alles in einer Zeile zu posten, sondern den Quellcode Reiter anstatt den Editor Reiter beim posten zu verwenden.