Nein, das ist die einzigste Möglichkeit.
Beiträge von Jeffry
-
-
Wenn du CreateDynamicObject nutzt, dann musst du auch SetDynamicObjectMaterialText nutzen.
-
Nein, das geht leider nicht, außer du setzt den Spieler mit einem Timer immer wieder zurück, wenn er sich bewegt.
-
Zu:
Wenn das nichts ändert, dann poste bitte was im Server Log steht, wenn du die Abfrage so machst:C
Alles anzeigennew isfound=false; for(new p;p<MAX_PLAYERS;p++) { if(MyActor[p] == -1) continue; new Float:pX, Float:pY, Float:pZ; GetActorPos(MyActor[p], pX, pY, pZ); printf("p: %d / MyActor: %d / %f / %f / %f / Range: %d", p, MyActor[p], pX, pY, pZ, IsPlayerInRangeOfPoint(playerid, 3.0, pX, pY, pZ)); if(IsPlayerInRangeOfPoint(playerid, 3.0, pX, pY, pZ)) { printf("Geld bekommen"); SendClientMessage(playerid, ROT, "Geld bekommen"); isfound=true; break; } } if(!isfound) { printf("Niemand da"); SendClientMessage(playerid, ROT, "Niemand da"); } -
Nein, sorry.
Ich schätze das ist hier der falsche Bereich, das hat ja nicht wirklich was mit SA-MP zu tun. -
Kannst du bitte den Code posten, mit dem du die Actors erstellst?
-
stock Scode(playerid,key)
Zu
stock Scode(playerid,key[]) -
Den Fehler hast du aber gut versteckt

ATMInfo[i][aY] = X;
Zu
ATMInfo[i][aY] = Y; -
Was meinst du mit zugreifen?
Beim Erstellen fehlt, sehe ich grade, noch die Zuweisung des Objektes
ATMInfo[i][atmobject]=... -
-
Ja, das liegt dann daran, dass du da kein else hattest.
Versuche es mit dem Code den ich dir gegeben habe. -
Eigentlich nicht.
Versuche es so:Cocmd:atm(playerid, params[]) { if(sInfo[playerid][sKonto] != 1)return SendClientMessage(playerid, FARBE_WEISS, "[{FF0000}FEHLER{FFFFFF}]: Du besitzt kein Bankkonto!"); if(IsATM(playerid) != -1) { ShowPlayerDialog(playerid, DIALOG_PINEINGABE, DIALOG_STYLE_INPUT, "{FFFFFF}ATM - Pineingabe", "{FFFFFF}Gebe bitte deinen vier stelligen Pin ein:", "Bestätigen", "Abbrechen"); } else SendClientMessage(playerid, FARBE_WEISS, "[{FF0000}FEHLER{FFFFFF}]: Es ist kein Bankautomat in deiner Nähe!"); return 1; } -
Entweder über ein Array mit Schleife, oder:
Cif(!strcmp(SpielerName(playerid), "Jeffry") || !strcmp(SpielerName(playerid), "Bob")) { //Mach was } else return SendClientMessage(playerid, 0xFF0000FF, "Error: Du bist nicht eingetragen.");Bzw eben mit einem stock, damit du es nur einmal im Code hast:
C
Alles anzeigenstock CheckAdminName(playerid) { if(!strcmp(SpielerName(playerid), "Jeffry") || !strcmp(SpielerName(playerid), "Bob")) return 1; return 0; } //Und dann: if(CheckAdminName(playerid)) { //Mach was } else return SendClientMessage(playerid, 0xFF0000FF, "Error: Du bist nicht eingetragen."); -
Mir ist noch etwas aufgefallen, was ziemlich merkwürdig bzw. schade falls so gewollt ist:
Signaturen sind nicht mehr in der Größe begrenzt, ich kann eine Signatur über eine ganze Bildschirmseite groß machen, das ist erlaubt, aber Bilder werden auf eine Höhe von 150 Pixel reduziert, was extrem wenig ist.
Wenn die Signaturgröße unbegrenzt ist, dann würde ich mir wünschen, wenigstens die Bildergröße auf erlaubte 250-300 Pixel zu erhöhen.
Ansonsten allgemein die Signatur auf 250-300 Pixel beschränken, und ebenfalls die Bilder auf diese Größe limitieren. -
Nutze anstatt DestroyObject: DestroyDynamicObject
Außerdem beim Erstellen:
ATMInfo[i][erstellt] = true;Beim entfernen kannst du das hier weg lassen:
format(query, sizeof(query), "SELECT * FROM `ATM` WHERE ID = '%d'", id); -
-
C
for(new w = 0; w < 3; w++) { if(Private[i+100][pGun][w] != 0) { GetWeaponName(Private[i+100][pGun][w],weap,sizeof(weap)); if(strlen(wstr)) format(wstr, sizeof(wstr),"%s, %s", wstr,weap); else format(wstr, sizeof(wstr), weap); } } if(!strlen(wstr)) else format(wstr, sizeof(wstr), "Keine");
@Black_Air
Erstelle bitte einen Thread, das sind keine kleinen Fragen mehr und viel zu lange Codes für diesen Thread. -
format(query, sizeof(query), "INSERT INTO `ATM` (`ID`, `X`, `Y`, `Z`, `A`) VALUES (`%i`, `%f`, `%f`, `%f`, `%f`,)", i, X, Y, Z, A);
zu:
format(query, sizeof(query), "INSERT INTO `ATM` (`ID`, `X`, `Y`, `Z`, `A`) VALUES (`%i`, `%f`, `%f`, `%f`, `%f`)", i, X, Y, Z, A);Außerdem solltest du "erstellt" dann auf true setzen.
-
Das was die fehlerhafte Schleife (erster Post?) im Server Log ausgibt (print).
Und das ganze Callback bzw. die ganze Funktion in der dieser Code steht. -
Was wird dir im Server Log ausgegeben, wenn du es so schreibst?
C
Alles anzeigennew nr[8]; mysql_format(dbhandle, nr, sizeof(nr), "SELECT KDNR FROM user WHERE KDNR>=0 "); mysql_query(dbhandle, nr); for(new a=0; a<zaehler; a++) { new newkdnr = cache_get_field_content_int(a, "KDNR", dbhandle); printf("newkdnr: %d | a: %d", newkdnr, a); if(newkdnr != a) { Spieler[playerid][p_KDNR] = a; break; } }