Geht denn mysql_log(LOG_ALL); oder wenn das nicht geht: mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG);
Beiträge von Kaliber
-
-
Mysql Log erstellt er nicht...
Doch, wenn du das gemacht hast, wie ich es erklärt habe erstellt er den.
Nach dem Server Log habe ich auch nicht gefragt und ja, der ist unauffällig

-
dass all nicht definiert ist
Ah okay, dann nutzt du nicht die Aktuellste MySQL Version

Wird denn ein mysql_log erstellt?

-
Wie gesagt, aktiviere den MySQL Log über mysql_log(ALL); unter OnGameModeInit uuund dann schau in den Ordner logs und poste diesen

-
Hast du mysql_log(ALL); unter OnGameModeInit?
Dann wird ein Ordner Namens logs erstellt (nicht in den scriptfiles, sondern eins drüber, beim server_log)
-
somit die Koordinaten auch nicht
Sehr gut, jetzt weißt du, dass der Fehler beim Laden liegt

Musst mal in den MySQL Log schauen

-
Musste mal n print setzen in der Schleife unter OnPlayerSpawn und schauen, was für Werte die einzelnen Sachen haben.
Sind denn die 3DTextLabel da?
-
Danke im Voraus
Mit dem Alpha Kanal.
Sagen wir du hast 0xFF0000FF das ist ein rot.
Denn der Code ist so aufgebaut:
RGBA = Red Green Blue Alpha
0x = Sagt nur aus, dass es eine Hex Zahl ist
FF = Der Rot wert, in diesem Fall volle Lotte
00 = Green wir haben kein Grün
00 = Blue kein Blau
FF = Der Alpha kanal, FF heißt volle lotte, also keine Transparenz. Schreibst du aber AA oder 88 also verringerst es, wird es transparenter
-
Was sagt denn der MySQL-Log?

-
Was sollen die viele Schleifen?!
Du musst dich immer fragen, wie kann ich Dinge ohne Schleifen nutzen

Nur im äußersten Notfall, ist es mal nötig, Aber generell sollte man darauf verzichten können

ich möchte nach dem Kauf eines Fahrzeuges
Schleifen nutzt man ja immer, um etwas zu suchen.
Aber hier, hast du doch schon das Fahrzeug gefunden.
Speichere doch die vehicleid zwischen und verwende sie einfach direkt für das Setzen des Tankes
-
ich hoffe ich finde hier einen der mir hilft , der mir per Teamspeak helfen kann etc...
Nah, TeamSpeak ist immer nur die Letzte Option.
Pack mal unter OnGameModeInit mysql_log(ALL);.
Dann wird ein Ordner erstellt Namens logs (nicht in den scriptfiles, sondern 1 drüber..wieso auch immer).
Und dort, kannst du dann genau verfolgen, was deine Datenbank macht, bzw zensiere dort das Passwort und poste mal den Log

-
Ja klar, wenn du die Funktion nur nutzt.
-
e_fuel = maxFuel - random(8)
Wieso machst du es nicht so?!

Wie lasse ich die Ränge z.b als Erster einzeigen:
Hatte da mal was geschrieben gehabt:
Verwende diese Include: https://raw.githubusercontent.…d-sort/master/md-sort.inc
Und dann so:
C
Alles anzeigenCMD:admins(playerid) { new string[18 + MAX_PLAYER_NAME]; new a_rang[][] = {"Communityhelfer", "Supporter", "Moderator", "Admin", "Head Admin", "Projektleiter"}; new sort[20][2],c; SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Teammitglieder online:"); for(new i=GetPlayerPoolSize(); i!=-1; i--) { if(!IsLoggedIn(i) || !PlayerInfo[i][pAdmin]) continue; sort[c][0] = PlayerInfo[i][pAdmin], sort[c++][1] = i; } if(c > 0) { SortDeepArray(sort, 0); for(new i=sizeof(sort)-1; i != -1; i--) { if(!sort[i][0]) continue; format(string,sizeof(string),"%s: %s",a_rang[sort[i][0]-1],PlayerInfo[sort[i][1]][pName]); //evtl [pName] anpassen SendClientMessage(playerid,Grau,string); } } else return SendClientMessage(playerid,Grau,"Zurzeit ist kein Teammitglied online."); return 1; } -
Hast du noch eine Idee?
Ja..das ist richtig.
Der prüft ja nur, ob du an einem stehst, deshalb iteriert er da durch, das ist alles richtig.
Kannst du auch wieder löschen. -
Kann man das theoretisch machen?
Nein, da ja nur eine Millisekunde vergeht bis zur vorherigen Abfrage.
Und dort hast du ja geprüft, ob er wirklich in dem Fahrzeug ist oder nicht.
Das hatte ich auch oben geschrieben xD
-
Alles anzeigen
for(new d; d < sizeof(PCar[]); d++)
{
if(PCar[playerid][d][P_MID] == 0)
{
//Prüfe, ob Fahrzeug existiert. Wenn nicht, nutze den Slot und lege das Fahrzeug an.
SetPVarInt(playerid,"_tmp_veh",d);
StartGenerateUniqueRandomNumber(playerid, handle, NUMBER_PLATE_POOL, 0);
break;
}
}Schau mal..so sieht meine Code aus..
...siehst du den Unterschied?
Bei dir ist keine if-Abfrage..nur ein break..was keinen Sinn macht...
//Edit:
Und sag mal willst du mich hier trollen oder so?!
PCar[playerid][d][P_MID] = GetPlayerVehicleID(playerid);
Ich sagte, du sollst es ersetzen..und nicht das GetVehicleModel drum herum löschen...
-
wie finde ich die Koordinaten dafür ?
Mit einem TextDraw-Editor.
https://forum.sa-mp.com/showthread.php?t=543002
https://forum.sa-mp.com/showthread.php?p=3927120
-
ich kann den Code nicht benutzen den du geschrieben hast weil i nicht definiert ist, deswegen die Schleife.
Lösche die Schleife!
Nutze dort einfach: GetPlayerVehicleID(playerid) anstatt Autohausauto1[i], du hast ja schon vorher gecheckt, ob er da wirklich drinnen sitzt.
-
öfters
benutzen kann.Das habe ich doch auch erklärt, du änderst einfach den Token:
StartGenerateUniqueRandomNumber(playerid, handle, NUMBER_PLATE_POOL, 1);
und dann kannst du im Callback:
C
Alles anzeigen//Im Callback OnRandomNumberGenerated public OnRandomNumberGenerated(playerid, const pool, const token, const status) { if(status == -1) return printf("Der Random Pool (%d), ist leer!",pool); switch(pool) { case SMALL_EXAMPLE_POOL: { switch(token) { case 0: ApplyNumberPlate(playerid, status); case 1: AnotherFunction(playerid, status); //<< wird dann nur aufgerufen bei token 1 } } } return 1; }//Edit:
irgendwie geht das nicht.
Was machst du da auch?! Wieso änderst du den Code?
Warum löschst du einfach ein break und die if-Abfrage in der Schleife?!
Wieso packst du in die andere Funktion eine Schleife mit i die vorher gar nicht da war?!?!
Nutze dort einfach: GetPlayerVehicleID(playerid) anstatt Autohausauto1[i], du hast ja schon vorher gecheckt, ob er da wirklich drinnen sitzt.So kann das natürlich nicht funktionieren...wenn da keine Code-Logik dahinter steht..
Nimm doch einfach den Code, wie ich ihn geschrieben hatte...
-
Schreibst das dann einfach so:
Cfor(new d; d < sizeof(PCar[]); d++) { if(PCar[playerid][d][P_MID] == 0) { //Prüfe, ob Fahrzeug existiert. Wenn nicht, nutze den Slot und lege das Fahrzeug an. SetPVarInt(playerid,"_tmp_veh",d); StartGenerateUniqueRandomNumber(playerid, handle, NUMBER_PLATE_POOL, 0); break; } }Und der ganze Rest, kommt dann in das Callback, z.B. so:
C
Alles anzeigen//Im Callback OnRandomNumberGenerated public OnRandomNumberGenerated(playerid, const pool, const token, const status) { if(status == -1) return printf("Der Random Pool (%d), ist leer!",pool); switch(pool) { case SMALL_EXAMPLE_POOL: { switch(token) { case 0: ApplyNumberPlate(playerid, status); } } } return 1; }Und dann packst das einfach alles in die Funktion:
C
Alles anzeigenstock ApplyNumberPlate(playerid, number) //number ist die eindeutig zufällige Zahl { new d = GetPVarInt(playerid,"_tmp_veh"), SP = random(sizeof(SAHSpawn)), FB = random(127); DeletePVar(playerid, "_tmp_veh"); PCar[playerid][d][P_KZ] = number; PCar[playerid][d][P_uID] = pInfo[playerid][db_id]; PCar[playerid][d][P_X] = SAHSpawn[SP][0]; PCar[playerid][d][P_Y] = SAHSpawn[SP][1]; PCar[playerid][d][P_Z] = SAHSpawn[SP][2]; PCar[playerid][d][P_R] = SAHSpawn[SP][3]; PCar[playerid][d][P_C1] = FB; PCar[playerid][d][P_C2] = FB; PCar[playerid][d][P_MID] = GetVehicleModel(Autohausauto1[i]); PCar[playerid][d][P_dbID] = pInfo[playerid][db_id]; PCar[playerid][d][P_VID] = CreateVehicle(PCar[playerid][d][P_MID],PCar[playerid][d][P_X] , PCar[playerid][d][P_Y], PCar[playerid][d][P_Z], PCar[playerid][d][P_R], PCar[playerid][d][P_C1], PCar[playerid][d][P_C2], -1); new query[256]; mysql_format(handle, query, sizeof(query), "INSERT INTO personalcars (P_X, P_Y, P_Z, P_R, P_C1, P_C2, P_MID, P_uID) VALUES ('%f','%f','%f','%f','%d','%d','%d','%d')",PCar[playerid][d][P_X],PCar[playerid][d][P_Y],PCar[playerid][d][P_Z],PCar[playerid][d][P_R],PCar[playerid][d][P_C1],PCar[playerid][d][P_C2],PCar[playerid][d][P_MID],PCar[playerid][d][P_uID]); mysql_pquery(handle,query); }