Problem mit dem Code



  • Hallo an Alle! 🙂

    Hab folgendes Problem: Ich sollte eine Datei.c aus einem Spiel von russisch auf deutsch übersetzen.
    Wenn ich das Spiel auf russisch spiel, ist alles okay und das Interface sieht etwas so aus "Gesamt: 123 Crewmitglieder, 3 Offiziere..." <--- steht natürlich auf russisch da. Doch sobald ich das auf deutsch übersetze, trauchen Fehler auf und das ganze sieht dann etwas so aus "Gesamt:, 123 Crewmitglieder,3 Offiziere..." also auf einmal taucht da ein Komma auf.
    Ich kenn mich leider nicht so mit dem C-Code aus und weiß nicht woran das liegen kann. Vielleicht an der Stringlänge? Weil sobald man nur die folgende zeile auf russisch schreibt ist alles ok...nur diese Zeile scheint dafür verantwortlich zu sein.

    /*_*/{crewQ=crewQ+GetCrewQuantity(chref);capt++;}else{othi++;}}}cn=0;string conof="Gesamt: ";string oths="Gesamt: ";
    

    der wichtige teil des codes ist das hier:

    *_*/int j,cn,crewQ,capt;ref chref;crewQ=0;capt=0;int othi=0;for(j=0;j<COMPANION_MAX;j++){cn=GetCompanionIndex(pchar,j);
    /*_*/if(cn>=1 && GetRemovable(&Characters[cn])){chref=GetCharacter(cn);if(checkattribute(&characters[cn],"quest.OfficerPrice"))
    /*_*/{crewQ=crewQ+GetCrewQuantity(chref);capt++;}else{othi++;}}}cn=0;string conof="Gesamt: ";string oths="Gesamt: ";
    /*_*/conof=StrFillNumName(conof,"Crewmitglieder","","",crewQ);crewQ=0;oths=StrFillNumName(oths,"Kapitän","","e",othi);cnum=capt;
    

    Vielen Dank für die Hilfe 🙂



  • Also wenn das C-Code sein soll, sollte der Verfasser besser gestern als heute mit dem Programmieren aufhören .. Das ist unleserlich für nicht Aussenstehende.



  • Tut mir leid aber was anderes habe ich nicht 😞



  • Dann weisst Du ja jetzt, was Dein erster Schritt sein muss: aufraeumen.



  • IndentoBot hat geschrieben:

    int j, cn, crewQ, capt;
    ref chref;
    
    crewQ = 0;
    capt = 0;
    int othi = 0;
    
    for (j = 0; j < COMPANION_MAX; j++)
    {
        cn = GetCompanionIndex(pchar, j);
    
        if (cn >= 1 && GetRemovable(&Characters[cn]))
        {
            chref = GetCharacter(cn);
            if (checkattribute(&characters[cn], "quest.OfficerPrice"))
    
            {
                crewQ = crewQ + GetCrewQuantity(chref);
                capt++;
            }
            else
            {
                othi++;
            }
        }
    }
    
    cn = 0;
    string conof = "Gesamt: ";
    string oths = "Gesamt: ";
    
    conof = StrFillNumName(conof, "Crewmitglieder", "", "", crewQ);
    crewQ = 0;
    oths = StrFillNumName(oths, "Kapitän", "", "e", othi);
    cnum = capt;
    


  • Wow, das sieht wunderschön aus!
    Danke sehr! 🙂 👍



  • ich seh es grad in deinem code, in c gibts keinen datentyp "string"...



  • Hab das Problem gelöst!
    Es gab noch eine andere datei, wo "Gesamt: " übersetzt werden musste und dort stand die noch auf russisch und soweit ich den code da verstanden habe, ist da eine bedingung die aussagt, dass wenn die variable nicht "Gesamt: "(auf russisch) ist, wird sie automatisch als zahl+text+komma angesehen und da im ausdruck "Gesamt: " keine zahlvariable vohanden ist, sieht man nur den text+komma.
    Nach dem ich das auch übersetzt habe, verschwand das Komma und die ausgabe wird richtig dargestellt. 🙂


Anmelden zum Antworten