Beiträge von DasNeo

    Weil das die maximallänge von Texten/Dialoginputs ist.
    Viele machen einfach immer 128, weil 'se keine Lust zum zählen haben.
    Die Größe ist eigentlich nicht weiter wichtig. - Darf halt nur nicht zu klein sein ;)


    Gruß,
    Neo. :)

    Nach dem du den Spieler in den Interior spawnst, startest du einen Timer mit parameter. Dies geht wie folgt:


    SetTimerEx("dTimer", 60000, false, "i", playerid);


    Dann erstellst du die Funktion.


    forward dTimer(playerid);
    public dTimer(playerid)
    {
    // Und hier musst du ihn einfach wo anders hin setzen :P
    }

    Das Thema hatten wir, soweit ich weiß, schon mal.
    Raus kam, wie ich mich erinnere, dass SA-MP kein Doubleside hin bekommt. :P


    Wie wärs denn, wenn du einfach noch eine zweite Scheibe machst? ;)


    Gruß,
    Neo. :)

    public OnPlayerConnect(playerid)
    {
    new Text3D:label = Create3DTextLabel("Hello, I am new here!", 0x008080FF, 30.0, 40.0, 50.0, 40.0, 0);
    Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.7);
    return 1;
    }


    Die Parameter stehen in der Wiki.

    Meinst du, dass du zum Beispiel eine Zeit in Sekunden angibst, und das Script sie in Millisekunden umrechnet, oder wie?

    Verdammt! Vergessen!


    Dankeschöhhöhöhn :D


    Ich liebe dich, ich hoffe du weißt das. :D


    Gruß,
    Neo. :)


    €dit:


    Um jetzt nicht noch ein neues Thema aufzumachen, hier noch 'ne Frage:


    Ist es möglich, dass man das Programm zu 'ner exe macht?

    Habe es gerade etwas umständlicher gelöst. (Meiner Meinung nach aber besser.)


    Spoiler anzeigen
    #include <string>

    Spoiler anzeigen
    new inputText[10], text1[10] = "a", text2[10] = "s", text3[10] = "m", text4[10] = "d";

    Spoiler anzeigen
    main()
    {
    startFunc();
    return 1;
    }

    Spoiler anzeigen
    startFunc()
    {
    getstring(inputText); // Hier's u.a. Das Problem mit dem Array must be indexed
    if(inputText != '\0') // Hier nicht o;
    {
    if(inputText == 'a') // Und hier
    {
    rechAdd();
    return 1;
    }
    else if(inputText == 's') // Und hier
    {
    rechSubb();
    return 1;
    }
    else if(inputText == 'm') // Und so weiter
    {
    rechMult();
    return 1;
    }
    else if(inputText == 'd')
    {
    rechDiv();
    return 1;
    }
    else
    {
    print("Fehler in der Eingabe.\nBitte wiederholen.");
    startFunc();
    return 0;
    }
    }
    else
    {
    print("Fehler in der Eingabe.\nBitte wiederholen.");
    startFunc();
    return 0;
    }
    }

    Spoiler anzeigen
    rechAdd()
    {
    new AddInp[10];
    print("Addition.\n");
    print("Geben Sie eine Zahl ein:\n");
    false_add1:
    getstring(AddInp);
    new z1 = strval(AddInp);
    if(z1 == '\0')
    {
    print("Fehler in der Eingabe.\nBitte wiederholen.");
    goto false_add1;
    }
    print("Geben Sie die zweite Zahl ein:\n");
    false_add2:
    getstring(AddInp);
    new z2 = strval(AddInp);
    if(z1 == '\0')
    {
    print("Fehler in der Eingabe.\nBitte wiederholen.");
    goto false_add2;
    }
    new ergebnis = z1 + z2;
    print("Das Ergebnis aus %d + %d = %d", z1,z2,ergebnis);
    return 1;
    }

    Spoiler anzeigen
    rechSubb()
    {
    new SubbInp[10];
    print("Subtraktion.\n");
    print("Geben Sie eine Zahl ein:\n");
    false_subb1:
    getstring(SubbInp);
    new z1 = strval(SubbInp);
    if(z1 == '\0')
    {
    print("Fehler in der Eingabe.\nBitte wiederholen.");
    goto false_subb1;
    }
    print("Geben Sie die zweite Zahl ein:\n");
    false_subb2:
    getstring(SubbInp);
    new z2 = strval(SubbInp);
    if(z1 == '\0')
    {
    print("Fehler in der Eingabe.\nBitte wiederholen.");
    goto false_subb2;
    }
    new ergebnis = z1 - z2;
    print("Das Ergebnis aus %d - %d = %d", z1,z2,ergebnis);
    return 1;
    }

    Spoiler anzeigen
    rechMult()
    {
    new MultInp[10];
    print("Multiplikation.\n");
    print("Geben Sie eine Zahl ein:\n");
    false_mult1:
    getstring(MultInp);
    new z1 = strval(MultInp);
    if(z1 == '\0')
    {
    print("Fehler in der Eingabe.\nBitte wiederholen.");
    goto false_mult1;
    }
    print("Geben Sie die zweite Zahl ein:\n");
    false_mult2:
    getstring(MultInp);
    new z2 = strval(MultInp);
    if(z1 == '\0')
    {
    print("Fehler in der Eingabe.\nBitte wiederholen.");
    goto false_mult2;
    }
    new ergebnis = z1 + z2;
    print("Das Ergebnis aus %d * %d = %d", z1,z2,ergebnis);
    return 1;
    }

    Spoiler anzeigen
    rechDiv()
    {
    new DivInp[10];
    print("Addition.\n");
    print("Geben Sie eine Zahl ein:\n");
    false_div1:
    getstring(DivInp);
    new z1 = strval(DivInp);
    if(z1 == '\0')
    {
    print("Fehler in der Eingabe.\nBitte wiederholen.");
    goto false_div1;
    }
    print("Geben Sie die zweite Zahl ein:\n");
    false_div2:
    getstring(DivInp);
    new z2 = strval(DivInp);
    if(z1 == '\0')
    {
    print("Fehler in der Eingabe.\nBitte wiederholen.");
    goto false_div2;
    }
    if(z1 == 0 || z2 == 0)
    {
    print("You stupid Fag! DON'T TRY TO DEVIDE BY 0!");
    print("Shutting Down!");
    return 0;
    }
    new ergebnis = z1 / z2;
    print("Das Ergebnis aus %d / %d = %d", z1,z2,ergebnis);
    return 1;
    }


    Jetzt habe ich aber das "Array must be indexed"-Problem. Wie lös' ich das?

    Hey, ich sitz grad mal ein bisschen an Pawn, und habe leider ein kleines Problem.


    Spoiler anzeigen
    #include <string>

    Spoiler anzeigen
    main()
    {
    new inputText[10], text1[10] = "a", text2[10] = "s", text3[10] = "m", text4[10] = "d";
    print("Wählen Sie die Art der Rechnung.\n");
    print("[A]ddition, [S]ubtraktion, [M]ultiplikation, [D]ivision\n");
    getstring(inputText);
    while(strcmp(inputText, "", true) || !strcmp(inputText, text1, true) || !strcmp(inputText, text2, true) || !strcmp(inputText, text3, true) || !strcmp(inputText, text4, true))
    {
    getstring(inputText);
    print("Falsche Eingabe!!\n");
    }
    print("Success");
    return 1;
    }


    So, Problem ist nun, dass:


    • Egal welchen Buchstaben man eingibt, es kommt immer Falsche Eingabe.
    • Wenn man nur Enter drückt, sprich einen leeren String weiter gibt, dann kommt erst die Falsche eingabe und dann Success.


    Weiß jemand woran das liegt?


    Gruß,
    Neo. :)

    ocmd:countdown(playerid,params[])
    {
    new count;
    if(SpielerInfo[playerid][pAdmin]>=3)
    {
    if(sscanf(params,"d",count)) return SendClientMessage(playerid,TEAM_HIT_COLOR,"Verwendung: /countdown [Zeit]");
    {
    Start_Countdown(count);
    new string[128];
    format(string,128,"Du hast den Countdown für %d Sekunden laufen lassen!",count);
    SendClientMessage(playerid,TEAM_BLUE,string);
    }
    }
    return 1;
    }

    Und so?


    Gruß,
    Neo. :)