%05 bringt mir was? Wenn bei Vorwahl 276 steht, ich will das vor 276 eine 0 steht..?
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!
Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
-
-
Entweder, du nutzt Goldkillers Vorschlag/Funktion um die Null vornedran zu bekommen, oder wandelst den Integer in einen String um und speicherst die Handynummer dann auch als String.
Goldkiller: Hö :-O
Hab meinen Post editiert ;).
Speicher fehler (PSC 30€ TG)edit: Aahh Goldkiller Wegen deiner Bearbeitung ist MEIN edit weg^^ Yo, hab dich falsch verstanden, dachte du meintest mich damit auch ;D
@BlackAce: Fass' dir doch mal bitte an deinen eigenen Kopf, bevor du andere verurteilst, weil sie wegen 30€ angeblich falsche Antworten geben. Der Vorschlag den du gebracht hast, ist exakt das selbe, was anfangs das Problem von B3ar war. -
%05d bewirkt das zu 100% eine 5 stellige Zahl oder größer ausgegeben wird,
wenn die Zahl kürzer ist werden 0en hinzugefügt -
Also du kannst es entweder so machen:
Dann würdest du das jetzt also so machen?
if(strcmp("/handy",cmdtext,true) == 0)
{
new nummer[8],stringh[35],vorwahl = 276;
format(nummer, sizeof nummer,"%05d%d%d%d%d",vorwahl,random(9),random(9),random(9),random(9));
SpielerInfo[playerid][pHandynummer] = strval(nummer);
format(stringh, 256, "Deine neue Handynummer: %09d",strval(nummer));
SendClientMessage(playerid,rot,stringh);
return 1;
}Wieder was dazu gelernt.
Danke Goldkiller ;]//EDIT
UPS ne Null vergessen :[
Gruss: Sonic
Oder so: Musst aber das Abspeichern und Auslesen anpassen:
Ok, dann so:
if(strcmp("/handy",cmdtext,true) == 0)
{
new nummer[10],stringh[36],vorwahl[6] = "00276";
format(nummer, sizeof nummer,"%s%d%d%d%d",vorwahl,random(9),random(9),random(9),random(9));
SpielerInfo[playerid][pHandynummer] = nummer;
format(stringh, 256, "Deine neue Handynummer: %s",nummer);
SendClientMessage(playerid,rot,stringh);
return 1;
}Nun muss aber beim Abspeichern die Var in einen String umgeschrieben werden.
//EDIT
Was nun in deinem Fall auch klappen würde ist das:
if(strcmp("/handy",cmdtext,true) == 0)
{
new nummer[10],stringh[36];
format(nummer, sizeof nummer,"00276%d%d%d%d",random(9),random(9),random(9),random(9));
SpielerInfo[playerid][pHandynummer] = nummer;
format(stringh, 256, "Deine neue Handynummer: %s",nummer);
SendClientMessage(playerid,rot,stringh);
return 1;
}Gruss: Sonic
Und BlackAce:
Hallo,
mein Handy Nummern speichern geht nicht richtig.
Code:
format(nummer, sizeof nummer,"0276%d%d%d%d",random(2),random(2),random(1),random(1));
SpielerInfo[playerid][pHandynummer] = strval(nummer);
format(string, 256, "Deine neue Handynummer: 0%d",strval(nummer));Es wird NACH dem 0276 gespeichert.. warum?
Laden: SpielerInfo[playerid][pHandynummer] = dini_Int(data,"Handynummer");
Speichern: dini_IntSet(data, "Handynummer", SpielerInfo[playerid][pHandynummer]);Bitte helft mir.
//EDIT Der jenige der den Bug findet bzw. fixed kriegt 30psc
"HUST HUST"
Gruss: Sonic
-
Was möchtest du mir damit sagen?
Versteh ich nicht -.- -
Du kannst es auch so machen
format(nummer, sizeof nummer,"00276d%d%d%d%d",random(9),random(9),random(9),random(9));
vergleiche ;]
übrigens: du hast ein %d zuviel drin.
Gruss: Sonic
-
@BlackAce: Fass' dir doch mal bitte an deinen eigenen Kopf, bevor du andere verurteilst, weil sie wegen 30€ angeblich falsche Antworten geben. Der Vorschlag den du gebracht hast, ist exakt das selbe, was anfangs das Problem von B3ar war.
Das möchte er dir damit sagen. Und ich auch Will dich damit nicht angreifen, ich glaube du weißt, was ich damit sagen will
-
Tut mir leid wenn ich wieder einen Scritt schneller war als ihr -.-
Ich dachte es wäre logisch das man das in Verbindung mit diesem Code machen sollte
format(stringh, 256, "Deine neue Handynummer: %09d",strval(nummer));
Also mal selber überlegen bevor man wieder irgendjemanden anschuldigt ja?sonic
Das ist nur ein d zuviel^^ -
Leute chillt mal
Das kein Spam Thread
Ich werde das von Goldkiller mal nehmen. Melde mich dann.
/EDIT:
Ich seh grad, das kapier ich nicht, was er meint. Kann mir das wer schnell machen, so das davor die 0 steht..?
-
Tut mir leid wenn ich wieder einen Scritt schneller war als ihr -.-Ich dachte es wäre logisch das man das in Verbindung mit diesem Code machen sollte
format(stringh, 256, "Deine neue Handynummer: %09d",strval(nummer));
Also mal selber überlegen bevor man wieder irgendjemanden anschuldigt ja?sonic
Das ist nur ein d zuvielIch muss dich enttäuschen, denn dies entspricht nicht seinen Vorstellungen.
//EDIT
Andere Frage: Bist du sicher das das geht?|GXR|B3ar liest du überhaupt was ich poste?
Gruss: Sonic
-
Dann drück' dich das nächste mal bitte verständlicher aus, damit es nicht zu solchen Missverständnissen kommt. Ich könnte hier jetzt einen kurzen Text schreiben, wieso das wohl missverstanden wurde, aber im Interesse aller lass' ich das einfach und melde mich mal von dem Thema vorerst ab, bevor das in Spam ausartet. Und glücklicherweise muss ich mich vor niemandem rechtfertigen, was meine Meinung angeht. Erstmal gucken wie B3ar sich entscheidet/wessen Vorschlag er nutzt, dann kann man weitersehen.
Aber als kleine Bemerkung, was mir wieder einfällt: Die Nachricht wurde ja korrekt ausgegeben, es ging lediglich um die Speicherung der Handynummer, da diese nicht mit den Nullen stattfand.
Mit freundl. Grüßen
Padarom -
Natürlich,
wenn man beides kombiniert spart man sich eine Variable -.-Wir vergleichen
ich lass mal die deklaration von nummer und strigh weg...
//deine Vorstllung
new vorwahl = 276;
format(nummer, sizeof nummer,"%05d%d%d%d%d",vorwahl,random(9),random(9),random(9),random(9));
format(stringh, 256, "Deine neue Handynummer: %09d",strval(nummer));
//meine Vorstellung
format(nummer, sizeof nummer,"00276%d%d%d%d",random(9),random(9),random(9),random(9));
format(stringh, 256, "Deine neue Handynummer: %09d",strval(nummer));
Ist irgendwie sehr ähnlich und funktioniert beidesBTW:
Lass einfach mal die Komplettzitierung
besonders wenn die so scheiße aussieht. -
Genau wie Padarom es sagt. Es wurden von Anfang an die 0 nicht gespeichert, was ich später erst bemerkt habe, sondern die Zahlen *danach, das von Sonic, ist ja das selbe was ich vorher hatte oder nicht?
format(nummer, sizeof nummer,"0276%d%d%d%d",random(2),random(2),random(1),random(1));
SpielerInfo[playerid][pHandynummer] = strval(nummer);Sonics
format(nummer, sizeof nummer,"00276%d%d%d%d",random(9),random(9),random(9),random(9)); -
Im Prinzip ja,
nur wird deine Handynummer speicherung nicht funktionieren.
Das müsstest du über format oder strmid speichern, solange deine Variable Handynummer auch ein String ist -
so nun also:
if(strcmp("/handy",cmdtext,true) == 0)
{
new nummer[10],stringh[36];
format(nummer, sizeof nummer,"00276%d%d%d%d",random(9),random(9),random(9),random(9));
SpielerInfo[playerid][pHandynummer] = nummer;
format(stringh, 256, "Deine neue Handynummer: %s",nummer);
SendClientMessage(playerid,rot,stringh);
return 1;
}
Vorteil:
So wird es in einem String gespeichert und benötigst das von Goldkiller nicht.Nachteil:
Das Speichern, Laden und die Textausgabe muss angepasst werden.Oder du machst es so:
if(strcmp("/handy",cmdtext,true) == 0)
{
new nummer[8],stringh[35],vorwahl = 276;
format(nummer, sizeof nummer,"%05d%d%d%d%d",vorwahl,random(9),random(9),random(9),random(9));
SpielerInfo[playerid][pHandynummer] = strval(nummer);
format(stringh, 256, "Deine neue Handynummer: %09d",strval(nummer));
SendClientMessage(playerid,rot,stringh);
return 1;
}Vorteil:
Die Nullen werden durch den Tipp von Goldkiller hinzugefügt.Nachteil:
Die Nullen werden nicht in der ini gesaved.
Jede Textausgabe muss Angepasst werden.So nun entscheidest du.
Gruss: Sonic
-
Okay, Sonic langsam versteh ich dich.
Mit deinem Code, steht vor 276 eine 0 ?
-
-
Speichere/Lade es als String anstatt als Integer, dann sollte es eigentlich klappen.
Ich denke, dass das genau das ist, was du willst. Die Variable, in der deine Handynummer gespeichert wird zum String umdeklarieren und in der ini als String, statt als Integer speichern.
Ansonsten aber BlackAce's Beitrag berücksichtigen und die Handynummer nicht mit SpielerInfo[playerid][HandyNummer] = ... zuweisen, sondern mit format(SpielerInfo[playerid][HandyNummer], sizeof ..., ...)Mit freundl. Grüßen
Padaromedit: Mir fällt gerade auf, dass mein Vorschlag von anfang an eigentlich richtig war (wenn er denn richtig ist?), aber wir alle um den heißen Brei geredet haben
-
Da kommen wir der sache schon näher Padarom
Also wie jetzt mit format(.. ?
Padarom, nein da hat er die 0 nicht genommen.
-
Wie gesagt, die Variable nicht als Integer, sondern als String deklarieren und auch als String abspeichern/laden.
Zuweisen dann wie folgt:
format(SpielerInfo[playerid][HandyNummer], sizeof SpielerInfo[playerid][HandyNummer], nummer);