Beiträge von Jeffry

    Doch, aber eben MAX_CARS oft. Wenn du MAX_CARS zu 100 definiert hast, stehen dort 100 Autos. ^^


    Wenn du das nicht haben willst, sondern nur eins:
    for(new i; i<MAX_CARS;i++)
    {
    veh[i] = CreateVehicle(vehid, x, y, z, Angle, cc1[playerid], cc2,300);
    }


    zu:
    CreateVehicle(vehid, x, y, z, Angle, cc1[playerid], cc2,300);


    Also die Schleife weg machen.

    format(query,sizeof(query),"UPDATE `haus` SET `Besitzer` = '%s' WHERE `id` = '%d'",Hauser[haus][pOwner],haus);


    oder:
    format(query,sizeof(query),"INSERT INTO `Hauser` (`id`) VALUES ('%d')",i);



    Eines der Beiden, je nach dem wie deine Tabelle heißt. Du hast einmal `haus` und einmal `Hauser` geschrieben, eines stimmt nicht.

    for(new i; i<MAX_CARS;i++)
    {
    veh[i] = CreateVehicle(vehid, x, y, z, Angle, cc1[playerid], cc2,300);
    }
    Dieser Teil erstellt dir MAX_CARS an der Position X,Y,Z.
    Ich weiß nicht ob das das ist was du damit bezwecken willst, kann ich mir nur schwer vorstellen.

    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    static cc1[MAX_PLAYERS];
    if(dialogid == DIALOG_CAR && response)
    {
    new vehid = strval(inputtext);
    if(vehid >= 400 && vehid < 612) ShowPlayerDialog(playerid,DIALOG_COLOR1,DIALOG_STYLE_INPUT,"Farbe","Gib hier die erste FarbID ein.","Bestätigen","Abbrechen");
    else SendClientMessage(playerid,-1,"Die VehID darf nur zwischen 400 & 611 sein.");
    }
    if(dialogid == DIALOG_COLOR1 && response)
    {
    cc1[playerid] = strval(inputtext);
    if(cc1[playerid] >= 0 && cc1[playerid] < 256) ShowPlayerDialog(playerid,DIALOG_COLOR2,DIALOG_STYLE_INPUT,"Farbe","Gib hier die zweite FarbID ein.","Bestätigen","Abbrechen");
    else SendClientMessage(playerid,-1,"Die FarbID darf nur zwischen 0 & 255 sein.");
    }
    if(dialogid == DIALOG_COLOR2 && response)
    {
    new cc2 = strval(inputtext);
    if(cc2 >= 0 && cc2 < 256)
    {
    carget[playerid] = 1;
    new Float:x, Float:y, Float:z;
    new Float:Angle;
    GetPlayerFacingAngle(playerid, Angle);
    GetPlayerPos(playerid, x, y, z);
    for(new i; i<MAX_CARS;i++)
    {
    veh[i] = CreateVehicle(vehid, x, y, z, Angle, cc1[playerid], cc2,300);
    }
    }
    else SendClientMessage(playerid,-1,"Die FarbID darf nur zwischen 0 & 255 sein.");
    }
    return 1;
    }


    Also so tut es bei mir.
    Die Frage ist nur, warum du MAX_CARS auf einmal an der selben Stelle spawnen willst. Sei dahingestellt, dein code. ^^

    Also bei mir tuts. Ich hab als ID 415 eingegeben.


    Hab dir den Code nebenbei mal etwas zusammengerückt:
    if(dialogid == DIALOG_CAR && response)
    {
    new vehid = strval(inputtext);
    if(vehid >= 400 && vehid < 612) ShowPlayerDialog(playerid,DIALOG_COLOR1,DIALOG_STYLE_INPUT,"Farbe","Gib hier die erste FarbID ein.","Bestätigen","Abbrechen");
    else SendClientMessage(playerid,-1,"Die VehID darf nur zwischen 400 & 611 sein.");
    }

    ^ Also genau so tut es bei mir.
    Wenn es bei dir nicht tut, liegt das an was anderem, vielleicht hast du die ID von DIALOG_CAR schon definiert bei einem anderen Dialog, oder OnDialogResponse erreicht die Abfrage erst gar nicht, weil du das Callback schon zuvor beendest.

    SAB0h, warum nimmst du nicht einfach das was ich dir zu Anfangs gemacht und gegeben habe. Einfacher und schneller geht es nicht.
    Das was ihr da gerade produziert ist extrem umständlich.

    Ach man Leute. Probiert doch erst mal den Code aus, bevor ihr sagt, dass es nicht tun wird...


    Ja, du kannst es genau so stumpf verwenden:
    PlayerSpectatePlayer(playerid,SDArray[listitem]);
    Das geht. Ich hab es dir extra so einfach wie möglich gemacht. ;)



    123marvin123: Bitte den Thread vorher lesen, dann posten. Was du da gepostet hast, hat gar nichts mit dem Thema zu tun. Danke :)

    Ja.


    Oben im code:
    new SDArray[MAX_PLAYERS];


    Wo du den Dialog anzeigen willst:
    new j, string[1024];
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(SpielerVariable == 3)
    {
    SDArray[j] = i;
    j++;
    format(string, sizeof(string), "%s%s\n", string,SpielerName(playerid));
    }
    }
    ShowPlayerDialog(...);


    Und bei OnDialogResponse, bei dem definierten Dialog:
    new id = SDArray[listitem]; //Die ID des Spielers den du angeklickt hast, mit der kannst du dann weiter machen.
    SpecPlayer(id); //z.B.

    Der Compiler stürzt z.B. ab wenn du bei einem stock einen Integer und einen String als return Wert angibst, z.B. so:


    stock Test(a)
    {
    if(a == 1) return 2;
    else return "Hallo";
    }
    ^ Das zerlegt dir den Compiler.


    Es gibt bestimmt noch andere Gründe, ich würde dir raten, entweder ein Backup einzufügen (täglich eins machen!!) oder du suchst den Fehler mit der Skript Halbierungs Methode. Also immer die Hälfte des Codes auskommentieren, dort wo es abstürzt, wieder halbieren, bis du irgendwann auf den Fehler stößt. Geht schnell, und funktioniert.


    Ob Klammerfehler den Compiler zerlegen weiß ich nicht, ich denke nicht.

    Asoo :) mit ... meintest du usw aso sry ^^


    Genau. :)
    Du wirst eigentlich nie ''...'' im Script verwenden, das macht man nur ganz selten und dann sind aber immer { } dabei, z.B. so:
    new Variable[10] = {123,...};
    Das setzt die zehndimensionale Variable in jeder Dimension auf 123.


    So nebenbei ^^