aber ich will das wissen
Was willst du denn überhaupt wissen? -Ich kann nur Fragen beantworten
und der nächste steigt ein
Wie er steigt ein?
Tut mir leid, aber ich werde aus diesem Post nicht schlau... ![]()
Edit: Uiii.... jetzt habe ich 3 blaue Sterne ![]()
aber ich will das wissen
Was willst du denn überhaupt wissen? -Ich kann nur Fragen beantworten
und der nächste steigt ein
Wie er steigt ein?
Tut mir leid, aber ich werde aus diesem Post nicht schlau... ![]()
Edit: Uiii.... jetzt habe ich 3 blaue Sterne ![]()
Alles anzeigenHallo, ich bin grad dabei ein handy sys zu machen, nur ich hab ein problem!
Wenn ich mir die simkarte kaufe und der server/script mir die nummer zuweiß schreibt er 1, aber ich habe die nummer 0 bekommen
bitte um hilfe
ich hab das in dialog gemacht
new HatHandy[MAX_PLAYERS];
new HatSimkarte[MAX_PLAYERS];
new handynummer[MAX_PLAYERS];
new hn;
if(dialogid == Handy_Shop_Simkarte)
{
if(response)
{
if(listitem == 0)
{
if(HatHandy[playerid] == 1)
{
if(HatSimkarte[playerid] == 0)
{
new string[512];
new name[128];
hn++;
new save[128];
GetPlayerName(playerid,name,sizeof(name));
format(save,sizeof(save),"/Acc/%s.ini",name);
handynummer[playerid]=hn;
HatSimkarte[playerid] = 1;
format(string, sizeof(string), "Du hast erfolgreich eine Simkarte gekauft! Deine Handynummer: %i", hn);
SendClientMessage(playerid, COLOR_WHITE, string);
dini_IntSet(save, "Handynummer", handynummer[playerid]);
}
else{SendClientMessage(playerid, COLOR_WHITE, "Du hast schon einen Simkarte!");}
}
else{SendClientMessage(playerid, COLOR_WHITE, "Du hast kein Handy!");}
}
if(listitem == 1)
{
if(HatHandy[playerid] == 1)
{
if(HatSimkarte[playerid] == 0)
{
new string[512];
new name[128];
hn++;
new save[128];
GetPlayerName(playerid,name,sizeof(name));
format(save,sizeof(save),"/Acc/%s.ini",name);
handynummer[playerid]=hn;
HatSimkarte[playerid] = 1;
format(string, sizeof(string), "Du hast erfolgreich eine Simkarte gekauft! Deine Handynummer: %i", hn);
SendClientMessage(playerid, COLOR_WHITE, string);
dini_IntSet(save, "Handynummer", handynummer[playerid]);
}
else{SendClientMessage(playerid, COLOR_WHITE, "Du hast schon einen Simkarte!");}
}
else{SendClientMessage(playerid, COLOR_WHITE, "Du hast kein Handy!");}
}
}
}
Bitte wenn einer was weiß bann hilfe
Einfach nur ein Stück höher.
Als Überprüfung
for(new i=0;i<MAX_PLAYERS;i++)
{
if(handynummer[i] != hn)
{
handynummer[playerid]=hn;
}
}
Das hätte nur leider den Nachteil, dass es nur mit Spielern geht, die online sind.
Daran hatte ich garnicht gedacht.
Dann solltest du das lieber speichern, oder eine Nummer per Zufall generieren.
Es wäre besser, wenn du hn++ nach ganz oben machst.
Dann gibt es keine 0 .
Wenn du new hn; ganz oben im Script hast, und bei jedem Ausführen einmal weitergezählt wird, ist es schon richtig.
Aber was machst du, wenn der Server mal restartet wird?
Du könntest ja überprüfen, ob es die Zahl schon gibt. Dafür wäre eine Schleife sinnvoll.
erst erhöhen, dann zu weisen
hn++; // Zahl wird erhöht
handynummer[playerid]=hn; // Nummer wird zugewiesen
format(string, sizeof(string), "Du hast erfolgreich eine Simkarte gekauft! Deine Handynummer: %i", hn); // Die um 1 erhöhte Zahl reinbringen
Ja, und da liegt ja auch der Fehler ![]()
Hast du da vielleicht eine falsche Reihenfolge ? ![]()
handynummer[playerid]=hn; // Nummer wird zugewiesen
hn++; // Zahl wird erhöht
format(string, sizeof(string), "Du hast erfolgreich eine Simkarte gekauft! Deine Handynummer: %i", hn); // Die um 1 erhöhte Zahl reinbringen
Gruß Hauke
Warum nennst du das Taschenrechner? ![]()
Alles anzeigenWozu brauch man überhaupt ein Array / String, um die X-Koordinate eines Spielers zu speichern?
Falls du einen guten Grund hast,
format(SpielerStats[playerid][PositionX],256,"%f",X); // sizeof() funktioniert soweit Ich weiss nicht bei Mutli-Dimension Arrays
Sonst kannst du aber auch
enum e_Blabla {
Float:PositionX,
Float:PositionY,
...
new
Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
SpielerStats[playerid][PositionX] = X;
Jap, das habe ich auch herausgefunden ![]()
Ich möchte den Float gerne als String speichern, weil mir das einiges in meinem UCP erleichern würde.
Zumindest erstmal in der Testphase.
Kann mir einer sagen, was hierdrann falsch sein soll?
Vielleicht ist es ja offentsichtlich, und ich bin dumm, aber ich sehe da keinen
Vielleicht ist es ja zu verschachtelt mit den Arrays, aber ich denke nicht, dass das ein Problem bringen sollte.
format(SpielerStats[playerid][PositionX],sizeof(SpielerStats[playerid][PositionX]),"%f",X);
Diesen ganzen Haufen von Errors bekomme ich:
warning 213: tag mismatch
error 001: expected token: "]", but found "-identifier-"
warning 215: expression has no effect
error 001: expected token: ";", but found "]"
error 029: invalid expression, assumed zero
fatal error 107: too many error messages on one line
Die Fehler beziehen sich alle auf diese Zeile.
Und natürlich habe ich alle Zeilen davor / dahinter überprüft. Es kann nur dadrann liegen.
Ich hoffe mir kann jemand sagen, was daran nicht geht.
Gruß Hauke ![]()
Edit:
Ups... ja ich bin wirklich dumm
Ich glaube ich habe den Fehler ![]()
Danke an alle Tester, und für alle nützlichen Vorschläge.
Ich werde den Zugriff nachher sperren, weil ab dann meine Statusanzeige den richtigen Wert anzeigen soll ![]()
Mach {} mit rein ![]()
Ich würde dir empfehlen in ein PHP Forum zu gehen, statt hier jeden Schritt zu erfragen, um ein CP zu machen ![]()
Das gibt es.
Im Adminbereich kann man es bearbeiten ![]()
Die Idee mit dem Datum finde ich auch ganz gut.
Ich werde das bei Gelegenheit mal übernehmen ![]()
Joa, klar.
Du musst nur fragen ![]()
Wäre ganz gut, wenn du uns sagst, was du genau damit vor hast.
Dann können wir dir sagen, was besser dazu ist ![]()
Wenn du allerdings alle Autos heilen möchtest, kannst du meine Variante nehmen.
Versuch´s mal, wenn du ganz oben in´s Script new timer; machst.
Und das new bei SetTimer weglassen.
Achsooo...
Ich dachte es geht darum alle zu reparieren ![]()
Edit: Aber wozu soll das denn unter OnPlayerConnect?
Dann ist es doch das selbe wie meins. Außer, wenn er keine Fraktionsautos (oder was auch immer) heilen will...
Ok:
Das kannst du oben in´s Script machen:
forward Autohealer();
Das kommt unter OnGameModeInit:
SetTimer("Autohealer",2000,1);
Wenn du im Script schon einen ähnlichen Timer hast, solltest du das bei dem einfügen ![]()
Dann kommt das hier nach ganz unten in´s Script
public Autohealer()
{
for(new i = 0; i < MAX_VEHICLES; i++)
{
new Float:carhealth;
GetVehicleHealth(i,carhealth);
if(carhealth<250)
{
SetVehicleHealth(i,1000);
}
}
}
Das sollte so gehen ![]()
Gruß Hauke
Ich würde sagen, dass du die Editierungsregel nun noch einmal missachtet hast!
Versuch mal die ID´s der Dialoge zu ändern ![]()
Gruß Hauke