[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Naja dachte ich auch aber nach Zeile 5 passiert nichts mehr selbst wenn der Job nicht 1 ist sondern 2 oder 3 etc.


    Ich möchte das wenn der pJob beispielsweise ==2 ist das es dann weiter geht zur zeit bricht er nach Zeile 5 ab^^.


    pJob == 1 ist der Taxijob und wenn man den gerade ausübt soll man sich kein Taxi rufen können^^.

  • Die Schleife danach geht alle Spieler durch und gibt denen welche gerade den Beruf des Taxifahrers ausgeben eine Nachricht aus das der ocmd User ein Taxi benötigt.


    Klammere ich die ersten Zeilen wie unten aus dann funktioniert alles nur das dann auch ein Taxifahrer sich selbst ein Taxi rufen kann xD


    ocmd:333(playerid,params[])
    {
    //if(SpielerInfo[playerid][pJob] == 1)
    //{
    // return 1;
    //}
    for (new p = 0; p < MAX_PLAYERS; p++)
    {
    if(SpielerInfo[p][pJob] == 1)
    {
    new string[128],name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    format(string,sizeof(string),"%s benötigt ein Taxi. Tippe /accept um den Auftrag anzunehmen.",name);
    SendClientMessage(p,COLOR_YELLOW,string);
    taxi[playerid] = 1;
    }
    }
    return 1;
    }

  • Wer kann hier den Fehler finden?
    public GetKey(Username[],password[])
    {
    new salt[64],query[512],bool:wert=false;
    strcat(salt, CreateSalt());
    format(query, sizeof(query), "SELECT * FROM `wcf1_user` WHERE `password` = '%s' AND `username` = '%s'", GetDoubleSaltedHash(password, salt),Username);
    mysql_query(query, (-1), (0), ForenSQL);
    mysql_store_result(ForenSQL);
    if(mysql_num_rows(ForenSQL)!=0)
    wert=true;
    mysql_free_result(ForenSQL);
    return ((wert)?(1):(0));
    }
    Der edbug spuckt mir das aus:
    [04:17:35] [debug] Run time error 4: "Array index out of bounds"
    [04:17:35] [debug] Accessing element at index 4311300 past array upper bound 1999
    [04:17:35] [debug] AMX backtrace:
    [04:17:35] [debug] #0 00011470 in public GetKey () from DT-RP.amx
    [04:17:35] [debug] #1 native CallRemoteFunction () [00471ae0] from samp-server.exe
    [04:17:35] [debug] #2 00014b10 in ?? () from DT-RP.amx
    [04:17:35] [debug] #3 000f471c in public beaviscmd_checkkey () from DT-RP.amx
    [04:17:35] [debug] #4 native CallLocalFunction () [00471e90] from samp-server.exe
    [04:17:35] [debug] #5 0000d300 in public OnPlayerCommandText () from DT-RP.amx
    das is der command:
    BeavisCMD.checkkey(u,p[])
    {
    new input[128];
    if(sscanf(p,"s[128]",input))
    return SendClientMessage(u,cRed,"/checkkey [Key]");
    if(!CheckWBBKey(PlayerInfo[u][Name],input))
    return SendClientMessage(u,cRed,"Fehlerhafter Key");
    SendClientMessage(u,cYellow,"Key ist richtig");
    return 1;
    }
    Ich möcht ja abfragen ob das Passwort das eingegeben wurde richtig ist

    All in all it's just another brick in the wall


  • such ein array mit der größe 2000(new array[2000], "past array upper bound 1999") in deinem Script und poste den namen, so kann man wenigstens schonmal sagen bei welcher Variable der Fehler auftritt.


    oder du fügst print Befehle ein um zu sehen bei welcher Zeile der Fehler auftritt

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • PVars einfach nur stupide Böse zu titulieren ist auch falsch. Wenn man fachlich korrekt Scripten möchte, muss man nunmal in der Lage sein, zu wissen, wann man PVars verwenden sollte und wann nicht.


    Mein CS:GO Server: 62.75.168.39:27016


    Ich bin so hungrig, dass ich vor lauter Durst nicht weiß, was ich rauchen soll - so müde bin ich!
    Freedom is just another word for 'Nothing left to lose'