Funktion stoppt bei Verwendung von format()

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
  • So,


    wie ihr in meinem Titel schon vielleicht rauslesen konntet hängt es zurzeit bei mir an der Funktion format() zumindest denke ich das:


    if(dialogid == DIALOG_SAVEBOX_TRANSFER)
    {
    new imputtext2 = strval(inputtext);
    if(response)
    {
    switch(GetPVarInt(playerid, "Savebox_Art_Transfer"))
    {
    case 1:
    {
    if(imputtext2 == 0 || imputtext2 > PlayerInfo[playerid][pMaterialien])
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Der Wert muss größer als 0 sein oder du hast nicht so viele Materialien bei dir!");
    format(string, sizeof(string), "Bitte gebe unten die Menge an\ndie du in die Savebox legen möchtest\nim Moment hast du \n{FF0000}%d {FFFFFF}Materialien in der Savebox\n{FF0000}%d{FFFFFF} Materialien bei dir", PlayerInfo[playerid][pSavedMats],PlayerInfo[playerid][pMaterialien]);
    ShowPlayerDialog(playerid,DIALOG_SAVEBOX_TRANSFER,DIALOG_STYLE_INPUT,"Materialien reinlegen",string,"Reinlegen","Abbrechen");
    }else{
    PlayerInfo[playerid][pSavedMats] = imputtext2 + PlayerInfo[playerid][pSavedMats];
    PlayerInfo[playerid][pMaterialien] = PlayerInfo[playerid][pMaterialien] - imputtext2;
    format(string, sizeof(string), "Du hast erfolgreich {FF0000} %d {FFFFFF}Materialien in die Savebox gelegt. Du hast noch{FF0000}%d{FFFFFF} Materialien bei dir und {FF0000}%d{FFFFFF} Materialien in der Savebox",imputtext2,PlayerInfo[playerid][pSavedMats],PlayerInfo[playerid][pMaterialien]);
    SendClientMessage(playerid, COLOR_GRAD1, string);
    }
    }
    }
    }
    }else ShowPlayerDialog(playerid,DIALOG_SAVEBOX,DIALOG_STYLE_LIST,"Savebox","Materialien\nDrogen","Auswählen","Abbrechen");
    }


    hier die Stelle, es ist der Dialog unter OnDialogResponse in dem hier im Bsp. Materialien in die Savebox gelegt werden, ich habe case 2-4 rausgenommen da diese ähnlich aufgebaut sind.
    Mein Problem ist, es geht alles soweit, nur sobald Materialien ERFOLGREICH reingelegt wurden, also die Stelle Nach dem "else" aufgerufen wird wird es nicht angezeigt, also sozusagen läuft die Funktion bis
    PlayerInfo[playerid][pMats] = PlayerInfo[playerid][pMaterialien] - imputtext2;
    und dann geht sie nicht mehr weiter...


    Ich hoffe ihr könnt mir helfen... Ich habe das gleiche Problem nochmal hier:


    forward PublicNewsTimer();
    public PublicNewsTimer()
    {
    new string[256];
    SendClientMessageToAll(0xFF9700FF, "========================================={FF0000}Wichtige Meldung{FF9700}=========================================");
    for(new n = 1; n < sizeof(NewsInfo), n++;)
    {
    if(NewsInfo[n][newsTextAktiv] == 1)
    {
    format(string,sizeof(string),"%s",NewsInfo[n][newsText]);
    SendClientMessageToAll(0xE600FFFF, string);
    }
    }
    SendClientMessageToAll(0xFF9700FF, "===================================================================================================================");//wird nicht angezeigt
    return 1;
    }
    da wird das letzte SendClientMessageToAll einfach nicht im Chat InGame angezeigt?


    Gibt es da sowas wie ein Limit??


    bei Fragen einfach fragen^^


    MfG. Cody09


    PS: wegen PlayerInfo[playerid][pSavedMats] = imputtext2 + PlayerInfo[playerid][pSavedMats]; ich benutze es so eher umständlich da es bei =+ irgendein schei* zusammengerechnet hat.
    PS²: woran kann das liegen? Fehlt ein Return oder sonst was?


    //edit besser formatiert+text hinzugefügt

    Einmal editiert, zuletzt von Cody09 ()

  • Bist du dir überhaupt sicher, dass Else überhaupt Eintritt?
    Probier's mal mit:
    else if (imputtext2 < PlayerInfo[playerid][pMaterialien]) {


    /E:
    Mir ist klar, dass im Normalfall immer Else Eintritt, solange If nicht True ist,
    jedoch hatte ich einmal das gleiche Problem.

    Bin weg, Tschau! (Account kann gelöscht werden)

  • ja, da wenn ich /stats aufrufe wurden die drogen/materialien in die Savebox gelegt, bzw rausgenommen


    vorhin hab ich nochwas getestet, ich habe ein sentclientmessage so gemacht also


    SendClientMessage(playerid, COLOR_GRAD1, "test");
    das wurde angezeigt,
    und was ich noch herausgefunden habe ist, das die volle funktion ausgeführt wird, nur nicht angezeigt wird(durch debugs herausgefunden)