Yoa abend,
ich habe da ein Probelm undzwar.
Es wird nur das angezeigt was da ist wenn man nicht in der nähe von einem Haus ist.
Es kommen keine Errors oder sowas.
Hier der Code:
public HelpdeskUp(playerid)
{
new hour,minute,second;
gettime(hour,minute,second);
new day,month,year;
getdate(year,month,day);
new plname[MAX_PLAYER_NAME],astring[50];
GetPlayerName(playerid, plname, sizeof(plname));
if(pInfo[playerid][admin] == 0){ format(astring,80,"Normal"); }
if(pInfo[playerid][admin] == 1) { format(astring,80,"Supporter"); }
else if(pInfo[playerid][admin] == 2) { format(astring,80,"Moderator"); }
else if(pInfo[playerid][admin] == 3) { format(astring,80,"Suprt Moderator"); }
else if(pInfo[playerid][admin] == 4) { format(astring,80,"Administrator"); }
else if(pInfo[playerid][admin] == 5) { format(astring,80,"Serverletiung"); }
for(new haus=1;haus<MAX_HAUS;haus++)
{
if(!IsPlayerInRangeOfPoint(playerid,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
{
format(hdesk,sizeof(hdesk)," ~w~.::Hilfeleiste::.~n~~n~~w~Rang:~r~%s~n~~w~Uhrzeit: ~g~%d:%d %d ~n~~w~Datum: ~g~%d.%d.%d~n~~w~Dein Nickname: ~g~%s~n~~w~Dein ID:%d~n~~w~Kontostand: ~y~%d$ ~n~~w~Hunger/Durst: ~g~%d~n~~w~Energie: ~g~%d~n~~w~Harndrang: ~g~%d",astring,hour,minute,second,day,month,year,plname,playerid,pInfo[playerid][pBank],pInfo[playerid][hunger],pInfo[playerid][energie],pInfo[playerid][harndrang]);
TextDrawSetString(Helpdesk, hdesk);
}
else if(IsPlayerInRangeOfPoint(playerid,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
{
format(hdesk,sizeof(hdesk)," ~w~.::Hilfeleiste::.~n~~n~~w~Rang:~r~%s~n~~w~Uhrzeit: ~g~%d:%d %d ~n~~w~Datum: ~g~%d.%d.%d~n~~w~Dein Nickname: ~g~%s~n~~w~Dein ID:%d~n~~w~Kontostand: ~y~%d$ ~n~~w~Hunger/Durst: ~g~%d~n~~w~Energie: ~g~%d~n~~w~Harndrang: ~g~%d~n~~n~~w~.::Hausinfo::..~n~~n~~w~Besitzer: %s ~n~Preis: %d$~n~Miete: %d$~n~Mieter 1: %s~n~Mieter 2: %s~n~Mieter 3: %s~n~Mieter 4: %s~n~Mieter 5: %s",
astring,hour,minute,second,day,month,year,plname,playerid,pInfo[playerid][pBank],pInfo[playerid][hunger],pInfo[playerid][energie],pInfo[playerid][harndrang],HausInfo[haus][haus_besitzer],HausInfo[haus][haus_preis],HausInfo[haus][Mieter1],HausInfo[haus][Mieter2],HausInfo[haus][Mieter3],HausInfo[haus][Mieter4],HausInfo[haus][Mieter5]);
TextDrawSetString(Helpdesk, hdesk);
}
}
SetWorldTime(hour);
return 1;
}
mfg
//edit Überschrift
//Edit2 erneut Überschrift
//Edit 3 Überschrift von: "Pickup einsammeln=Report Crash In der Abfrage break;" nach: "For-Schleife abbrechen geht nicht(Report-Crash)" geändert
//Edit 4 Überschrift
Wo gehört break; hin (For-Schleife abbrechen)?
- lollipop
- Geschlossen
- Erledigt
-
-
TextDrawShowForPlayer muss meines Wissens nach nem Update aufgerufen werden
-
Der Timer Updated es alle 1 sec normal solte es doch gehn oder nicht?
Naja ich probier es mal aus melde mich dann nochma aber schonma danke.
mfg
//Edit Grade getestet ne geht nicht Geupdated wurde es ja bevor ich das mim Haus eingefügt habe.
Ich weis net woran das jetzt liegt naja egal hier der neue Code:
public HelpdeskUp(playerid)
{
new hour,minute,second;
gettime(hour,minute,second);
new day,month,year;
getdate(year,month,day);
new plname[MAX_PLAYER_NAME],astring[50];
GetPlayerName(playerid, plname, sizeof(plname));
if(pInfo[playerid][admin] == 0){ format(astring,80,"Normal"); }
if(pInfo[playerid][admin] == 1) { format(astring,80,"Supporter"); }
else if(pInfo[playerid][admin] == 2) { format(astring,80,"Moderator"); }
else if(pInfo[playerid][admin] == 3) { format(astring,80,"Suprt Moderator"); }
else if(pInfo[playerid][admin] == 4) { format(astring,80,"Administrator"); }
else if(pInfo[playerid][admin] == 5) { format(astring,80,"Serverletiung"); }
for(new haus=1;haus<MAX_HAUS;haus++)
{
if(!IsPlayerInRangeOfPoint(playerid,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
{
format(hdesk,sizeof(hdesk)," ~w~.::Hilfeleiste::.~n~~n~~w~Rang:~r~%s~n~~w~Uhrzeit: ~g~%d:%d %d ~n~~w~Datum: ~g~%d.%d.%d~n~~w~Dein Nickname: ~g~%s~n~~w~Dein ID:%d~n~~w~Kontostand: ~y~%d$ ~n~~w~Hunger/Durst: ~g~%d~n~~w~Energie: ~g~%d~n~~w~Harndrang: ~g~%d",astring,hour,minute,second,day,month,year,plname,playerid,pInfo[playerid][pBank],pInfo[playerid][hunger],pInfo[playerid][energie],pInfo[playerid][harndrang]);
TextDrawSetString(Helpdesk, hdesk);
TextDrawShowForPlayer(playerid,Helpdesk);
}
else if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
{
format(hdesk,sizeof(hdesk)," ~w~.::Hilfeleiste::.~n~~n~~w~Rang:~r~%s~n~~w~Uhrzeit: ~g~%d:%d %d ~n~~w~Datum: ~g~%d.%d.%d~n~~w~Dein Nickname: ~g~%s~n~~w~Dein ID:%d~n~~w~Kontostand: ~y~%d$ ~n~~w~Hunger/Durst: ~g~%d~n~~w~Energie: ~g~%d~n~~w~Harndrang: ~g~%d~n~~n~~w~.::Hausinfo::..~n~~n~~w~Besitzer: %s ~n~Preis: %d$~n~Miete: %d$~n~Mieter 1: %s~n~Mieter 2: %s~n~Mieter 3: %s~n~Mieter 4: %s~n~Mieter 5: %s",
astring,hour,minute,second,day,month,year,plname,playerid,pInfo[playerid][pBank],pInfo[playerid][hunger],pInfo[playerid][energie],pInfo[playerid][harndrang],HausInfo[haus][haus_besitzer],HausInfo[haus][haus_preis],HausInfo[haus][Mieter1],HausInfo[haus][Mieter2],HausInfo[haus][Mieter3],HausInfo[haus][Mieter4],HausInfo[haus][Mieter5]);
TextDrawSetString(Helpdesk, hdesk);
TextDrawShowForPlayer(playerid,Helpdesk);
}
}
SetWorldTime(hour);
return 1;
}
Im Grunde braucht man das TextDrawShowForPlayer nicht im public.
mfg -
Ach, jetzt seh ichs etwas besser,
meine Diagnose bezog sich eher auf den TitelDa du alle Häuser durchgehst,
wird optisch immer nur das letzte Haus in der Tabelle berechnet -
stehst du also vor einem Haus (bspw ID 6/100), findet er das zwar,
geht aber die schleife weiter durch und pberschreibt den wert.Also unter das Haus-gefunden ein break;
-
Soweit versteh ich es mit der Schleife aber wohin genau den Break was meinste damit?
Kannste mir bitte mal die Zeile makieren?
mfg -
Würdest du es verstehen, wüsstest du die Zeile...
In dem else if, wo du die Hausinformationen ins Textdraw packst,
muss am ende ein break; , damit die Schleife abgebrochen
und der Wert nicht überschrieben wird -
So habs jetzt mit continue so:
public HelpdeskUp(playerid)
{
new hour,minute,second;
gettime(hour,minute,second);
new day,month,year;
getdate(year,month,day);
new plname[MAX_PLAYER_NAME],astring[50];
GetPlayerName(playerid, plname, sizeof(plname));
if(pInfo[playerid][admin] == 0){ format(astring,80,"Normal"); }
if(pInfo[playerid][admin] == 1) { format(astring,80,"Supporter"); }
else if(pInfo[playerid][admin] == 2) { format(astring,80,"Moderator"); }
else if(pInfo[playerid][admin] == 3) { format(astring,80,"Suprt Moderator"); }
else if(pInfo[playerid][admin] == 4) { format(astring,80,"Administrator"); }
else if(pInfo[playerid][admin] == 5) { format(astring,80,"Serverletiung"); }
for(new haus=1;haus<MAX_HAUS;haus++)
{
if(!IsPlayerInRangeOfPoint(playerid,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
{
format(hdesk,sizeof(hdesk)," ~w~.::Hilfeleiste::.~n~~n~~w~Rang:~r~%s~n~~w~Uhrzeit: ~g~%d:%d %d ~n~~w~Datum: ~g~%d.%d.%d~n~~w~Dein Nickname: ~g~%s~n~~w~Dein ID:%d~n~~w~Kontostand: ~y~%d$ ~n~~w~Hunger/Durst: ~g~%d~n~~w~Energie: ~g~%d~n~~w~Harndrang: ~g~%d",astring,hour,minute,second,day,month,year,plname,playerid,pInfo[playerid][pBank],pInfo[playerid][hunger],pInfo[playerid][energie],pInfo[playerid][harndrang]);
TextDrawSetString(Helpdesk, hdesk);
TextDrawShowForPlayer(playerid,Helpdesk);
}
else if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z])) continue;
{
format(hdesk,sizeof(hdesk)," ~w~.::Hilfeleiste::.~n~~n~~w~Rang:~r~%s~n~~w~Uhrzeit: ~g~%d:%d %d ~n~~w~Datum: ~g~%d.%d.%d~n~~w~Dein Nickname: ~g~%s~n~~w~Dein ID:%d~n~~w~Kontostand: ~y~%d$ ~n~~w~Hunger/Durst: ~g~%d~n~~w~Energie: ~g~%d~n~~w~Harndrang: ~g~%d~n~~n~~w~.::Hausinfo::..~n~~n~~w~Besitzer: %s ~n~Preis: %d$~n~Miete: %d$~n~Mieter 1: %s~n~Mieter 2: %s~n~Mieter 3: %s~n~Mieter 4: %s~n~Mieter 5: %s",
astring,hour,minute,second,day,month,year,plname,playerid,pInfo[playerid][pBank],pInfo[playerid][hunger],pInfo[playerid][energie],pInfo[playerid][harndrang],HausInfo[haus][haus_besitzer],HausInfo[haus][haus_preis],HausInfo[haus][Mieter1],HausInfo[haus][Mieter2],HausInfo[haus][Mieter3],HausInfo[haus][Mieter4],HausInfo[haus][Mieter5]);
TextDrawSetString(Helpdesk, hdesk);
TextDrawShowForPlayer(playerid,Helpdesk);
}
}
SetWorldTime(hour);
return 1;
}
Jetzt stürtzt das Game ab sobald ich auf den Server Connecte und mich eingeloggt habe.
mfg
//edit Er stürtzt nicht direkt ab man kriegt ne Crashwarnung der Server belibt aber on.
mfg -
Ich sehe kein continue,
aber ich sehe, dass du rein garnichts von dem verstehst,
was ich dir versucht habe zu erklären.Bei deinem ersten Beispiel verschieb Zeile 27 eins nach unten und pack dann in 26 ein break;
-
Was soll das bringen?
Dann ist da eine Zeile nur mit einem Break;
Dann bekomme ich en Error mit emty statement.
mfg -
Ich geb's auf.
Frag Gott, nen Hellseher, oder nen andren,
ob der dir die Lösung besser erklären kann.Ich kann es offensichtlich nicht.
-
-
Kannste mir des in den Code einfügen?
Dann erklären dann versteh ich es villeicht auch.
Ich habe keine Ahnung wie es gehen soll.
Ich weis nicht wie du jetzt meinst ich soll die Schleife stoppen.
mfg
//edit
Habs jetzt so dann bekomme ich nen Report Crash:
public HelpdeskUp(playerid)
{
new hour,minute,second;
gettime(hour,minute,second);
new day,month,year;
getdate(year,month,day);
new plname[MAX_PLAYER_NAME],astring[50];
GetPlayerName(playerid, plname, sizeof(plname));
if(pInfo[playerid][admin] == 0){ format(astring,80,"Normal"); }
if(pInfo[playerid][admin] == 1) { format(astring,80,"Supporter"); }
else if(pInfo[playerid][admin] == 2) { format(astring,80,"Moderator"); }
else if(pInfo[playerid][admin] == 3) { format(astring,80,"Suprt Moderator"); }
else if(pInfo[playerid][admin] == 4) { format(astring,80,"Administrator"); }
else if(pInfo[playerid][admin] == 5) { format(astring,80,"Serverletiung"); }
for(new haus=1;haus<MAX_HAUS;haus++)
{
if(!IsPlayerInRangeOfPoint(playerid,2,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
{
format(hdesk,sizeof(hdesk)," ~w~.::Hilfeleiste::.~n~~n~~w~Rang:~r~%s~n~~w~Uhrzeit: ~g~%d:%d %d ~n~~w~Datum: ~g~%d.%d.%d~n~~w~Dein Nickname: ~g~%s~n~~w~Dein ID:%d~n~~w~Kontostand: ~y~%d$ ~n~~w~Hunger/Durst: ~g~%d~n~~w~Energie: ~g~%d~n~~w~Harndrang: ~g~%d",astring,hour,minute,second,day,month,year,plname,playerid,pInfo[playerid][pBank],pInfo[playerid][hunger],pInfo[playerid][energie],pInfo[playerid][harndrang]);
TextDrawSetString(Helpdesk, hdesk);
}
else if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
{
format(hdesk,sizeof(hdesk)," ~w~.::Hilfeleiste::.~n~~n~~w~Rang:~r~%s~n~~w~Uhrzeit: ~g~%d:%d %d ~n~~w~Datum: ~g~%d.%d.%d~n~~w~Dein Nickname: ~g~%s~n~~w~Dein ID:%d~n~~w~Kontostand: ~y~%d$ ~n~~w~Hunger/Durst: ~g~%d~n~~w~Energie: ~g~%d~n~~w~Harndrang: ~g~%d~n~~n~~w~.::Hausinfo::..~n~~n~~w~Besitzer: %s ~n~Preis: %d$~n~Miete: %d$~n~Mieter 1: %s~n~Mieter 2: %s~n~Mieter 3: %s~n~Mieter 4: %s~n~Mieter 5: %s",
astring,hour,minute,second,day,month,year,plname,playerid,pInfo[playerid][pBank],pInfo[playerid][hunger],pInfo[playerid][energie],pInfo[playerid][harndrang],HausInfo[haus][haus_besitzer],HausInfo[haus][haus_preis],HausInfo[haus][Mieter1],HausInfo[haus][Mieter2],HausInfo[haus][Mieter3],HausInfo[haus][Mieter4],HausInfo[haus][Mieter5]);
TextDrawSetString(Helpdesk, hdesk);
break;
}
}
SetWorldTime(hour);
return 1;
}
mfg -
Ich geh mal davon aus, dass der hdesk String zu klein ist.
Wenn ein Textdraw mit einem String erstellt wird, der einen fehlerhaften "Code" mit den Wellenlinien enthält, wird entweder dein Bildschirm komisch oder du crashst.Und wenn der String zu klein ist, wird der Text für den Textdraw abgeschnitten, in dem Fall hier wohl an einer Stelle mit den Farbcodes/Zeilenumbrüchen.
-
//edit 5
So erstmal sobald ich in der nähe eines Haus bin wird trotzdem der Teil wo eigentlich die Information sein sollte nicht angezeigt.
Das heß0t irgendwo muss ein break; hin das weis ich das die Schleife gestoppt wird aber wohin? Es muss so sein das ich kein ReportCrash mehr bekomme
aber das es funktioniert.
Also wo muss den jez das break; hin? Sobald er abfragt ob ich in der nähe bin,nach dem string oder nach dem SetString?
Mit freundlichen Grüßen
Sven
//Edit 6: alles vor edit 5 gelöscht und ein RechtschreibfehlerGelöscht
//Edit 2 So ich habe jetzt nochmal nachgefroscht.
gelöscht
//Edit 3 PWN Code bei //edit 2 Ist ja dann erledigt da gelöscht
//edit 4
gelöscht -
breadfish.de
Hat das Thema geschlossen.