Ja, jetzt hast du den print nur bei deinem OnPlayerStateChange eingefügt.
Du hast auch noch einen Timer, bei dem der Tankwert aktualisiert wird. Suche mal nach "~r~Tank:" (ohne die Anführungszeichen), dann siehst du wo das überall verwendet wird. Da muss es noch einen Timer geben, der den Wert aktualisiert, denn die Berechnung ist korrekt.
Beiträge von Jeffry
-
-
Und jetzt sollen wir erraten was das Problem ist?

Wie sieht deine Tabelle aus, aus der du die Daten lädst?
Wie sieht der Code jetzt aus, mit dem du das lädst?
Was sagt der MySQL Log?
Wie sieht der Befehl aus? -
Nein.
Schau mal wie es hier gemacht wurde: [ FILTERSCRIPT ] Dynamisches Fraktion SystemWie gesagt, du brauchst ein kompletten Fraktionssystem, du hast momentan gar nichts.
Ich rate dir erst mal die Grundlagen von so einem System zu lernen und aufzubauen, bevor du dich gleich da dran setzt, da du offensichtlich die Funktionsweise von enums und allem was dazugehört noch nicht kennst.
-
Dann ändere
format(string2,sizeof(string2),"~r~Tank:%s %0.1f ", Tank, Gas[VID]);
zu:
format(string2,sizeof(string2),"~r~Tank:%s %0.1f ", Tank, Gas[VID]);
printf("string2: %s", string2);
printf("VID: %d, playerid: %d", VID, playerid);Was wird geprintet?
-
Dann hast du entweder die prints nicht eingefügt, oder der Fehler liegt nicht am /carsell Befehl, denn mindestens dieser print müsste kommen:
printf("carkey: %d", CarKey[playerid]);Welche Variable hast du denn mit [45] deklariert?
-
Geht doch, ich sehe da keine ewigen Zahlen mehr. Du?
Es geht von 99.5 auf 99.0, das passt doch. -
Dann poste doch bitte mal die prints die ich eingefügt habe, das habe ich ja nicht zum Spaß gemacht.

-
Prinzipiell so, aber das kann je nach Tabellenstruktur auch anders aussehen:
stock updaterang()
{
new str[512],id=0;
mysql_query("SELECT * FROM `aranks`");
mysql_store_result();
if(mysql_retrieve_row())
{
mysql_fetch_field_row(arang1[id],"arang1");
mysql_fetch_field_row(arang2[id],"arang2");
mysql_fetch_field_row(arang3[id],"arang3");
mysql_fetch_field_row(arang4[id],"arang4");
}
mysql_free_result();
return 1;
} -
Den Fraktionsnamen. Du musst dir erst mal die Variablen erstellen, mit dem enum.
-
Welche MySQL Plugin Version verwendest du?
-
Nächstes mal bitte auch die prints von mir dazu posten, dann erspare ich mir die Sucherei.
new preis = (Kaufliste[Carlist[playerid][CarKey[playerid]][Typ]][Preis]/5)*4;
zu:
new preis = (Kaufliste[Carlist[playerid][CarKey[playerid]][Typ]-400][Preis]/5)*4; -
-
Ganz unten im Gamemode einfügen:
stock SpielerName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
} -
Naja, dann so:
ocmd:leaderliste(playerid,params[])
{
if(PlayerInfo[playerid][pEingeloggt] < 1 ) return SendClientMessage(playerid,Rot,"Du kannst diesen Befehl nicht nutzen, weil du nicht eingeloggt bist.");
new string[1024];
for(new i=0; i<MAX_PLAYERS; i++)
{
if(!IsPlayerConnected(i)) continue;
if(PlayerInfo[playerid][pLeader] == 0) continue;
format(string, sizeof(string), "%s%s: Leader: %s\n", string, LeaderRank(i), SpielerName(i));
}
ShowPlayerDialog(playerid,DIALOG_LEADERS,DIALOG_STYLE_MSGBOX,"Leader Liste",string,"Schliesen","");
return 1;
} -
Also so wie das aussieht weist du der Gas Variable doch irgendwo noch einen Integer zu.
Denn bei dem anderen Fahrzeug geht es ja, oder warum kommt der print 2x?Ändere den print mal zu:
printf("Gas: %0.1f | playerid: %d | veh: %d", Gas[veh],playerid,veh);Dann prüfe mal, ob du nicht irgendwo der Gas Variable doch noch einen Integer zuweist.
Wenn du das gemacht hast, und die Änderungen hast, poste den Log nochmal, außer es geht dann. -
Mit der Variante ist es aber nur möglich die Leader die gerade online sind herauszufinden.
Außerdem kann man so den Name der Fraktion nicht ausgeben, wo wird denn der gespeichert? -
Schreibe es mal so, was steht im Log?
Spoiler anzeigen if(strcmp("/carsell", cmd, true) == 0)
{
printf("carkey: %d", CarKey[playerid]);
if(Carlist[playerid][CarKey[playerid]][Typ] != -1)
{
if(Carlist[playerid][CarKey[playerid]][Carid] != -1)
{
printf("typ: %d", Carlist[playerid][CarKey[playerid]][Typ]);
new preis = (Kaufliste[Carlist[playerid][CarKey[playerid]][Typ]][Preis]/5)*4;
GivePlayerMoneys(playerid, preis);
printf("preis: %d", preis);
DestroyVehicleSelfmade(Carlist[playerid][CarKey[playerid]][Carid]);
Carlist[playerid][CarKey[playerid]][Typ]=-1;
Carlist[playerid][CarKey[playerid]][pos_x]=0.0;
Carlist[playerid][CarKey[playerid]][pos_y]=0.0;
Carlist[playerid][CarKey[playerid]][pos_z]=0.0;
Carlist[playerid][CarKey[playerid]][z_angle]=0.0;
Carlist[playerid][CarKey[playerid]][Status]=0;
Carlist[playerid][CarKey[playerid]][Lock]=0;
Carlist[playerid][CarKey[playerid]][Carid]=-1;
Carlist[playerid][CarKey[playerid]][Farbe1]=-1;
Carlist[playerid][CarKey[playerid]][Farbe2]=-1;
Carlist[playerid][CarKey[playerid]][mod1]=-1;
Carlist[playerid][CarKey[playerid]][mod2]=-1;
Carlist[playerid][CarKey[playerid]][mod3]=-1;
Carlist[playerid][CarKey[playerid]][mod4]=-1;
Carlist[playerid][CarKey[playerid]][mod5]=-1;
Carlist[playerid][CarKey[playerid]][mod6]=-1;
Carlist[playerid][CarKey[playerid]][mod7]=-1;
Carlist[playerid][CarKey[playerid]][mod8]=-1;
Carlist[playerid][CarKey[playerid]][mod9]=-1;
Carlist[playerid][CarKey[playerid]][mod10]=-1;
Carlist[playerid][CarKey[playerid]][mod11]=-1;
Carlist[playerid][CarKey[playerid]][mod12]=-1;
Carlist[playerid][CarKey[playerid]][mod13]=-1;
Carlist[playerid][CarKey[playerid]][mod14]=-1;
Carlist[playerid][CarKey[playerid]][mod15]=-1;
Carlist[playerid][CarKey[playerid]][mod16]=-1;
Carlist[playerid][CarKey[playerid]][mod17]=-1;
Carlist[playerid][CarKey[playerid]][Paintjob]=-1;
Carlist[playerid][CarKey[playerid]][OwnerID] = playerid;
Carlist[playerid][CarKey[playerid]][SpawnSaveX]=0.0;
Carlist[playerid][CarKey[playerid]][SpawnSaveY]=0.0;
Carlist[playerid][CarKey[playerid]][SpawnSaveZ]=0.0;
Carlist[playerid][CarKey[playerid]][SpawnSaveRot]=0.0;
Carlist[playerid][CarKey[playerid]][TankVolumen]=0;
Carlist[playerid][CarKey[playerid]][StandTime] = 0;
Carlist[playerid][CarKey[playerid]][Neon]=0;
Carlist[playerid][CarKey[playerid]][NeonType]=1;
format(string, sizeof(string), "Du hast erfolgreich dein Auto für %s$ verkauft!",GetPoint(preis));
SendClientMessage(playerid, COLOR_RED, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s hat sein Auto verkauft!",sendername,preis);
printf(string);
}
else
{
SendClientMessage(playerid, COLOR_ERRORTEXT, " Du besitzt zur Zeit kein Auto auf dem ausgewählten Schlüssel !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_ERRORTEXT, " Du besitzt kein Auto auf dem ausgewählten Schlüssel !");
return 1;
}
return 1;
}
-
Nein, das gibt keinen Sinn.
In welchem Pfad sind denn deine Fraktionen gespeichert, und in welchem Dateiformat?Und wie heißt die Variable (enum etc) für die Fraktionen?
-
Kannst du die Fehlerzeilen bitte entsprechend markieren?
-
Das ist die Deklaration, nicht die Wertzuweisung.
Außerdem hast du meine Frage nicht beantwortet:ZitatSoll das Auto, in dem du bist, verkauft werden, oder wie kann ich den Befehl verstehen?