Der Code ist an diesen Zeilen nicht richtig eingerückt.
Hier ist gut erklärt, wie du das beheben kannst: http://forum.sa-mp.com/showthread.php?t=256961
Du kannst dir ganz einfach merken:
Pro { einen TAB mehr, pro } einen TAB weniger.
Der Code ist an diesen Zeilen nicht richtig eingerückt.
Hier ist gut erklärt, wie du das beheben kannst: http://forum.sa-mp.com/showthread.php?t=256961
Du kannst dir ganz einfach merken:
Pro { einen TAB mehr, pro } einen TAB weniger.
ich habe das jetzt so gemacht wie ich das verstanden habe. ist aber immernoch fail ![]()
woran liegt das, dass manche sachen nicht direkt laden sondern so das ich erstmal davor fahren muss:
von etwas weiter weg: http://fs1.directupload.net/images/150528/g9exyt6r.png
von nah: http://fs2.directupload.net/images/150528/zd6j6cey.png
die texturen laden nur wenn ich ganz nah stehe wieso ?
Drück mal F5 wenn du im Spiel bist. Was steht da bei den erstellten/angezeigten Objekten? Möglicherweise hast du das Limit fast erreicht. Dann darfst du (nicht wie im pastebin) die Objekte mit CreateObject erstellen, sondern musst diese auch mit dem Streamer erstellen.
error ich weiß aber nicht wo:
error: http://fs2.directupload.net/images/150528/s8davwer.png
script: http://pastebin.com/jRpt2V3F
format(string, sizeof(string), "Administrator %s(ID:%d) hat allen Spielern Level "%d\ gegeben"", pName(playerid), playerid, id);
zu:
format(string, sizeof(string), "Administrator %s(ID:%d) hat allen Spielern Level %d gegeben.", pName(playerid), playerid, id);
Jedes mal wenn jemand stirbt, kommt dieser Debug.
[16:30:10] [debug] Run time error 4: "Array index out of bounds"
[16:30:10] [debug] Accessing element at index 65535 past array upper bound 999
[16:30:10] [debug] AMX backtrace:
[16:30:10] [debug] #0 0003ca84 in public OnPlayerDeath (playerid=0, killerid=65535, reason=255) at D:\Server SVT\gamemodes\selfmade.pwn:2053
Zeile 2052: SendDeathMessage(killerid,playerid,reason);
Zeile 2053: killstreak[killerid]++;
Zeile 2054: killstreak[playerid] = 0;
killstreak[killerid]++;
zu:
if(killerid != INVALID_PLAYER_ID) killstreak[killerid]++;
string[0] = '\0';
Wird damit die Variable entfernt oder nur komplett leer geräumt?; Geht mir um Ressourcen.
mfg ![]()
Weder noch. Es wird nur das Endzeichen an erste Stelle gesetzt, sodass bei String-Ausgaben nichts mehr angezeigt wird. An sich völlig nutzlos.
new string[10];
string = "abcdefgh";
printf("%c | %s", string[3], string);
string[0] = '\0';
printf("%c | %s", string[3], string);
Zitat[28/05/2015 16:50:20] d | abcdefgh
[28/05/2015 16:50:20] d |
Hey,
hat einer eine Idee wie ich eine IP in der MySQL Datenbank speichern kann.
Also ich brauche nur das für die Tabelle , da bei INT nicht mehr als 3 Stellen angezeigt werden obwohl es 16 STellig ist.
Gruß
Also ich brauche nur das für die Tabelle , da bei INT nicht mehr als 3 Stellen angezeigt werden obwohl es 16 STellig ist.
...Eine Ip ist ein String, da du ja auch . drinnen hast ![]()
Das ist nicht nutzlos, das ist so als würdest du den String löschen (schnellere Alternative zu strdel) ![]()
new x[] = "Hallo";
x[0] = '\0';
strcat(x,"Noob");
print(x); //-> Noob
das ist so als würdest du den String löschen
Nur, weil du ein EOS da hinsetzt, ist der String nicht gelöscht.
Pawn liest nur nicht weiter und hält ihn deswegen für leer, das ist nicht so als würde man ihn löschen.
Man nutzt nur einen Fehler in der stringlibary,.
Die eigentliche Version, von PAWn die SA:MP nutzt kann eigentlich gar nicht mit strings arbeiten.
Das wurde nur von SA:MP Team eingepflegt.
new x[] = "Hallo";
x[0] = '\0';
print(x[1]); // -> allo
strcat(x,"Noob");
print(x); //-> Noob
Nur, weil du ein EOS da hinsetzt, ist der String nicht gelöscht.
Du...das ist mir auch klar und das hat doch schon Jeffry in seinem Post geschrieben.
Ich wollte damit nur sagen, dass man dadurch strcat nutzen kann oder auch alle anderen String-Funktionen und die behandeln das dann so, als ob der String "gelöscht" wurde...
als ob der String "gelöscht" wurde...
Naja, nicht wirklich.
new x[] = "BlaBlub";
x[0] = '\0';
strcat(x,"Noob");
print(x); //-> Noob
printf("%c", x[5]); //-> u
Wäre der String gelöscht, wäre das "u" nicht mehr da.
Wäre der String gelöscht, wäre das "u" nicht mehr da.
...zum 3.x ja ich denke jetzt hat es jeder verstanden, da aber das EOS verschoben wird, existiert das "u" zwar im Speicher, aber gehört nicht direkt mehr zu dem String ![]()
...es war nur eine Ergänzung, dass man so strings für die Funktionen quasi "leeren" kann...
...es war nur eine Ergänzung, dass man so strings für die Funktionen quasi "leeren" kann...
Die Variable ist auch nicht "quasi" leer, sie ist gar nicht leer. Man nutzt nur einen Fehler, wie BlackAce sagte. Jetzt stell dir mal vor (die Vorstellung ist bei SA-MP zwar etwas absurd, aber generell) du hast in der Variable sensible Daten, von mir aus eine Kontonummer. Du "leerst" nun die Variable nach deiner Methode, es folgt etwas Code und dann übergibst du den Wert der Variable (wohlgemerkt den neuen) an eine andere Variable und nehmen wir mal an das läuft über eine Schnittstelle in ein anderes System, vielleicht extern. Derjenige Programmierer bekommt dadurch dann möglicherweise Zugriff auf die Kontonummer, wenn du Pech hast, sie steht ja schließlich (wie das "u") noch in der Variable drin. Ich denke ich muss das nicht weiterführen, es ist klar auf was das hinauslaufen kann, wenn man sich solcher vermeintlich nützlichen Dinge betätigt.
Außerdem wäre eine direkte Zuweisung (x = "Noob";) wesentlich performanter und hat das gleiche Ergebnis (mal von obiger Hypothese abgesehen, da das Problem dort auch existiert).
Willst du das Problem wirklich umgehen und den Speicher wirksam leeren (sodass kein sinnvoller Zugriff mehr darauf besteht), musst du ihn entweder überschreiben oder memcpy verwenden (was übrigens gleich schnell ist aber nur eine Zeile Code benötigt).