Du hast dort nur das PlayerTextDrawHide drin, hast du vielleicht vergessen, das Textdraw dem Spieler beim Einsteigen in das Fahrzeug anzeigen zu lassen?
Beiträge von Jeffry
-
-
Nimm den root Benutzer ohne Passwort:
#define db_host "127.0.0.1"
#define db_user "root"
#define db_pass ""
#define db_db "samp"Das ist in 99% aller Fälle standardmäßig so eingestellt.
Dein user "samp" wird nicht die richtigen Berechtigungen haben, das ist auf localhost (dein Rechner) so eingestellt, standardmäßig zumindest.
Deshalb benutze, wie ich oben geschrieben habe, den root - User ohne Passwort, der hat ALLE Berechtigungen. Dem kannst du später auch, je nach Client, ein Passwort geben.
-
for(new i=0, j=strlen(text); i<j; i++) text[i] = toupper(text[i]);
-
Schreibe in die Konsole "gmx" oder "exit".
-
Das liegt daran, dass OnGameModeExit nicht aufgerufen wird, wenn du die Konsole schließt.
-
Das sieht auch gut soweit aus.
Poste bitte mal den Code von OnDialogResponse, der PlayerCarConnect aufruft. -
Was gibt dir denn der print in der Speicher-Funktion aus?
-
Wieso wird mir mein String im Textdraw und im Chat angezeigt?
Diese Zeile:
format(str, sizeof(str), "Ticketnumber: %d", zahl);
muss unter die PlayerPlaySound Zeile, da du das andere format + SendClientMessage verschoben hast. -
Nein, das darfst du nicht unter den Includes einfügen, das musst du im Befehl vor dem format einfügen.
new ergebnis = strval(inputtext)*2;
format(str, sizeof(str), "You have bought a ticket for %i$ and won %i $ !", strval(inputtext), ergebnis);Oder:
format(str, sizeof(str), "You have bought a ticket for %i$ and won %i $ !", strval(inputtext), strval(inputtext)*2);Beides kommt auf das Gleiche raus.
-
Wie und wo hast du das eingefügt?
-
Das dürfte am gleichen Fehler liegen, und zwar habe ich gesehen, dass du die id gar nicht lädst.
Füge das hier beim Laden hinzu:
DrugInfo[i][d_ID] = cache_get_field_content_int(i, "id", handle);Der Befehl kann außerdem so aussehen, damit nicht einfach nichts passiert, wenn dir die Pflanze nicht gehört:
ocmd:abernten(playerid, params[])
{
for(new i=0; i < sizeof(DrugInfo); i++)
{
if(IsPlayerInRangeOfPoint(playerid, 1.5, DrugInfo[i][d_PosX], DrugInfo[i][d_PosY], DrugInfo[i][d_PosZ]))
{
if(DrugInfo[i][d_Besitzer] != PlayerInfo[playerid][p_ID]) return SendClientMessage(playerid, COLOR_GREY, "Die Pflanze gehört dir nicht.");
if(DrugInfo[i][d_Prozent] < 90) return SendClientMessage(playerid, COLOR_GREY, "Die Pflanze ist noch nicht ausgereift.");
DrugInfo[i][d_PosX] = 0;
DrugInfo[i][d_PosY] = 0;
DrugInfo[i][d_PosZ] = 0;
DrugInfo[i][d_Wasser] = 0;
DrugInfo[i][d_Zustand] = 0;
DrugInfo[i][d_Prozent] = 0;
DestroyObject(DrugInfo[i][d_Objekt]);
Delete3DTextLabel(DrugInfo[i][d_Label]);
new query[256];
format(query, sizeof(query), "DELETE FROM drugs WHERE id='%d'", DrugInfo[i][d_ID]);
mysql_function_query(handle, query, false, "", "");
return 1;
}
}
return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Nähe einer Pflanze.");
}Darf ich Fragen wie du den PAWN-Quellcode benutzt?
Ich nutze den BBCode Modus (erster Button in der Post-Forum).
-
new ergebnis = strval(inputtext) * 10;
-
Versuche es mit dieser All In One Package:
http://www.chip.de/downloads/A…ne-Runtimes_37449838.html -
Die Zeile ist zu lang, du musst sie teilen:
format(string,sizeof(string),"{DCDCDC}/stats {00AFFF}» {FFA000}zeigt Stats an\n{DCDCDC}/enter {00AFFF}» {FFA000}betritt ein Gebäude\n{DCDCDC}/exit {00AFFF}» {FFA000}verlässt ein Gebäude\n{DCDCDC}/pay {00AFFF}» {FFA000}übergebe jemanden Geld\n{DCDCDC}");
format(string, sizeof(string),"%s/licenses {00AFFF}» {FFA000}zeigt dir deine Lizenzen\n{DCDCDC}/showperso {00AFFF}» {FFA000}zeige anderen deinen Personalausweis\n{DCDCDC}/showlicenses {00AFFF}» {FFA000}zeige anderen deine Lizenzen\n{DCDCDC}/support {00AFFF}» {FFA000}schreibt ein Supportticket", string); -
Das Problem liegt hier eben beim Lag, dass SetPlayerHealth noch nicht ausgeführt ist, wenn GetPlayerHealth ein paar Zeilen drunter aufgerufen wird. Das einzige was du noch machen kannst, damit das nicht vorkommt ist, dass du immer den direkten Wert von SetPlayerHealth auch in die StatusBar schreibst (gegebenenfalls indem du SetPlayerHealth hookst), dann sollte es auch gehen, da der Lag so ja nicht in Frage kommt.
Mit dem Timer umgehst du das Problem dahingehend, dass eben immer eine kleine Verzögerung drin ist, die größer als die Latenz ist.
-
Wäre dann, falls das so ist, aber nur für maximal eine Sekunde, oder nicht? Wenn du den Timer gegebenenfalls 4 mal pro Sekunde aufrufst, dann wären es maximal 250ms Differenz.
Einen globalen Timer, der alle X Millisekunden aufgerufen wird und eine Schleife durch alle Spieler macht, und jeweils deren StatusBar aktualisiert. Versuche es mal damit, ob das klappt.
-
printf("Label ID: %i",_:EditedHouse[playerid][eh_label]);
Das _: heißt einfach: Kein Tag (Tag = Float, bool, Text3D, ...)
-
Das ist mir dann nicht zu erklären, am Code scheint das nicht zu liegen.
Gegenfrage: Warum aktualisierst du die Status Bar nicht einfach per Timer, der jede Sekunde aufgerufen wird? Dann sparst du es dir, das überall hinzuschreiben. -
Was davon willst du printen? Die ID?
Dann so:
printf("ID. %d", _:label); -
Schreibe das so:
stock UpdateDrugLabel(id)
{
new label[145];
format(label, sizeof(label), "[ Zustand: %d ]\n[ Wasser: %d ]\n[ Prozent: %d ]", DrugInfo[id][d_Zustand], DrugInfo[id][d_Wasser], DrugInfo[id][d_Prozent]);
Update3DTextLabelText(DrugInfo[id][d_Label], 0xFFFFFFFF, label);
return 1;
}Und ändere beim Erstellen das
Create3DTextLabel(str, COLOR_WHITE, DrugInfo[i][d_PosX], DrugInfo[i][d_PosY], DrugInfo[i][d_PosZ], 10.0, 0, 0);
zu:
DrugInfo[i][d_Label] = Create3DTextLabel(str, COLOR_WHITE, DrugInfo[i][d_PosX], DrugInfo[i][d_PosY], DrugInfo[i][d_PosZ], 10.0, 0, 0);