7 Errors

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


    Ich hab mit mein Kumpel ein Motorsystem in mein Script eingefügt jetzt habe ich ein Problem
    Es gibt Errors...


    Zeilen:


    C:\Users\*****\Desktop\SA-MP 0.3c R4\gamemodes\LosAngelesReallife.pwn(15383) : error 033: array must be indexed (variable "status")
    C:\Users\*****\Desktop\SA-MP 0.3c R4\gamemodes\LosAngelesReallife.pwn(15410) : error 033: array must be indexed (variable "status")
    C:\Users\*****\Desktop\SA-MP 0.3c R4\gamemodes\LosAngelesReallife.pwn(15439) : error 033: array must be indexed (variable "text")
    C:\Users\*****\Desktop\SA-MP 0.3c R4\gamemodes\LosAngelesReallife.pwn(15466) : error 033: array must be indexed (variable "status")
    C:\Users\*****\Desktop\SA-MP 0.3c R4\gamemodes\LosAngelesReallife.pwn(15491) : error 033: array must be indexed (variable "status")
    C:\Users\*****\Desktop\SA-MP 0.3c R4\gamemodes\LosAngelesReallife.pwn(15516) : error 033: array must be indexed (variable "status")
    C:\Users\*****\Desktop\SA-MP 0.3c R4\gamemodes\LosAngelesReallife.pwn(15542) : error 033: array must be indexed (variable "status")
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Errors.


    Der Befehl:


    if(strcmp(cmdtext, "/licht", true) == 0)
    {
    new status[4];
    if(!status)return SendClientMessage(playerid,COLOR_YELLOW,"/licht an/aus");
    new engine,lights,alarm,doors,bonnet,boot,objective;
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vid = GetPlayerVehicleID(playerid);
    if(strcmp(status,"an",true) == 0)
    {
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
    licht[vid] = true;
    SendClientMessage(playerid,0xFF0000,"Du hast das Licht angeschaltet!");
    }
    else
    if(strcmp(status,"aus",true) == 0)
    {
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    SetVehicleParamsEx(vid,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
    licht[vid] = false;
    SendClientMessage(playerid,0xFF0000,"Du hast das Lich ausgeschaltet!");
    }
    }
    return 1;
    }


    Mfg
    ProScripter


    EDIT: Titel geändert

    2 Mal editiert, zuletzt von ProScripter ()

  • if(!strcmp(cmd,"/licht",true)){new status[4];tmp = strtok(cmdtext,var);if(!strlen(tmp))return SendClientMessage(playerid,Farbe,"Nutze: /licht [an/aus]");strmid(status,tmp,0,strlen(tmp),4);if(!strcmp(status,"an",true)){GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);SetVehicleParamsEx(vid,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective); licht[vid] = true; SendClientMessage(playerid,0xFF0000,"Du hast das Licht angeschaltet!");}else if(!strcmp(status,"aus",true)){GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective); SetVehicleParamsEx(vid,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);licht[vid] = false;SendClientMessage(playerid,0xFF0000,"Du hast das Lich ausgeschaltet!");}}return 1;}

    so sollte es gehen

  • wat fürn threadtitel 8|
    meine augen -.- kann das ein admin oder so ändern ? danke.

  • Wie jetzt ? ;D
    Könntet ihr bitte den Befehl leichter machen?


    Danke


    Mfg
    ProScripter

  • "Nächstes mal" gibt es eine Verwarnung, warum nicht gleich -.-


    es liegt hieran


    new status[4];
    if(!status)return SendClientMessage(playerid,COLOR_YELLOW,"/licht an/aus");



    if (!status)


    hat keinen Index, du definierst doch den ganzen Spaß schon :D
    Die Abfrage kann lauten if (strlen(cmdtext[6]) == 0)


    an und aus fragst du ab mit


    if (strcmp(cmdtext[6], "an", true, 2) == 0)
    {
    dann soll er an machen
    }



    if (strcmp(cmdtext[6], "aus", true, 3) == 0)
    {
    dann soll er aus machen
    }


    und cmd abfrage

    if (strcmp(cmdtext, "/licht", true, 6) == 0)



    So den rest bastelst du dir selbst...



    warum cmdtext[6] = / : 0 | l : 1 | usw... ab der 6. stelle (die 7. eigentlich aber wir zählen die 0. Stelle im Script mit) steht dann an oder aus :)


    strtok = unnötige For-Schleife!

  • Nix gegen dich aber ich checke gar nichts ;D


    Könntest du vielleicht Pawno Code benutzen?
    und bisschen genauer erklären?


    Danke im Vorraus


    Mfg
    ProScripter

  • Nein ich werde dir nicht genauer helfen, du sollst es lernen und denken, glaubst du ich habe einen kompletten Gamemode gescriptet, weil ich mir alles geben lasse?


    Okay ich lehre dich nun in der Sache der Strings:


    Der Spieler gibt /licht an ein.


    Wir fragen uns, in welchem String wird uns das wiedergegeben:


    cmdtext


    Weiter, ab welchem index steht an oder aus


    cmdtext[0] = /
    cmdtext[1] = l
    cmdtext[2] = i
    cmdtext[5] = t
    cmdtext[5] = " " (Leerzeichen)


    cmdtext[6]


    Also der String cmdtext[6] (Also alles ab Stelle 6)!



    Wie fragen wir ab ob dort überhaupt was steht (mit der länge des Strings!)


    Wie fragen wir was ab dort steht strcmp


    Mehr erkläre ich dir nicht, denk mal ne Runde



    UND WER JETZT DEN LEHREFFEKT ZERSTÖRT IST BEI MIR GANZ UNTEN DURCH!


    WIR BRAUCHEN HIER EINFACH KEIN STRTOK, wer strtok hier nutzt hat strings nicht so ganz verstanden.

  • if(strcmp(cmdtext, "/licht", true) == 0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new vid = GetPlayerVehicleID(playerid);
    new engine,lights,alarm,doors,bonnet,boot,objective;
    GetVehicleParamsEx(vid,engine,lights,alarm,doors,bonnet,boot,objective);
    if(licht[vid]==false)
    {
    SetVehicleParamsEx(vid,engine,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
    licht[vid] = true;
    SendClientMessage(playerid,0xFF0000,"Du hast das Licht angeschaltet!");
    }
    else
    {
    SetVehicleParamsEx(vid,engine,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
    licht[vid] = false;
    SendClientMessage(playerid,0xFF0000,"Du hast das Lich ausgeschaltet!");
    }
    }
    return 1;
    }


    Unabhängig von Meister Yodas String-Lehrstunde würde ich dir empfehlen, es so umzucoden: Wenn das Licht aus ist und der Spieler /licht eingibt geht es an, andernfalls geht es aus. Einfacher, weniger Code und leichter zu verstehen. :)