Probleme mit for-Schleife

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
  • Ich kapiere nicht warum bei OnGameModeInit() alles wunderbar geladen wird
    for(new i; i!=MAX_SERVERCFG; i++)
    {
    if(ServerCFG[i][sLoggedIn])
    {
    CreatePickup(ServerCFG[i][sPickupID], 1, ServerCFG[i][sX],ServerCFG[i][sY],ServerCFG[i][sZ]);
    Create3DTextLabel(ServerCFG[i][sTXT], 0xFFFFFFFF, ServerCFG[i][sX],ServerCFG[i][sY],ServerCFG[i][sZ], 5, 0);
    }
    }


    und bei KeyStateChange() // Enter-Taste // nur die ID 0 geladen wird
    for(new i; i!=MAX_SERVERCFG; i++)
    {
    if(ServerCFG[i][sLoggedIn])
    {
    printf("SEARCH %d",i);
    if(IsPlayerInRangeOfPoint(playerid, 2.0, ServerCFG[i][sX], ServerCFG[i][sY], ServerCFG[i][sZ]))
    {
    switch(i)
    {
    case 0: //Stadthalle
    {
    print("0");
    break;
    }
    case 1: // Fahrradverleih
    {
    print("2");
    if(!HaveFahrrad[playerid]) return SendClientMessage(playerid, COLOR_GREY, "Du hast bereits ein Fahrrad geliehen bekommen. Mit /findbike kannst du es finden.");
    if(!SpielerInfo[playerid][pTutorial]){ format(str, sizeof(str),"Herzlich Willkommen "#SERVERFARBE"%s{FFFFFF},\nEin Fahrrad kostet dich derzeit nichts.\n\nMöchtest du dir ein Fahrrad für 30 Minuten leihen ?", SpielerInfo[playerid][pName]); }
    else { format(str, sizeof(str),"Herzlich Willkommen "#SERVERFARBE"%s{FFFFFF},\nEin Fahrrad kostet dich %d SA$.\n\nMöchtest du dir ein Fahrrad für 30 Minuten leihen ?", SpielerInfo[playerid][pName], ServerPreis[Fahrradverleih]); }
    ShowPlayerDialog(playerid, DIALOG_FAHRRADLEIH, DIALOG_STYLE_MSGBOX, ""#SERVERFARBE"Fahrradverleih",str, "Ja","Nein");
    SetPVarInt(playerid, "FahrradverleihStand",i);
    break;
    }
    }
    }
    }
    }


    Definition der Variablen bzw. speicherung:
    #define MAX_SERVERCFG 2
    enum serverPickup{
    sPickupID,
    sTXT[64],
    Float:sX,
    Float:sY,
    Float:sZ,
    bool:sLoggedIn
    }
    new ServerCFG[MAX_SERVERCFG][serverPickup] = {
    { PICKUP_PFEIL,""#SERVERFARBE"Stadthalle\n{FFFFFF}Drücke ENTER/F",1480.8480,-1771.5313,18.7958,true},
    { PICKUP_I,""#SERVERFARBE"Fahrradverleih\n{FFFFFF}Drücke ENTER/F",1753.9944,-1887.9404,13.5570,true}
    };


    Wie gesagt, InGame bekomme ich beide wunderbar angezeigt, doch bei Theo. ID 1 wenn ich Enter drücke passiert nichts, nach einer Printf Fehlersuche, stellte ich Fest das nur die ID 0 aufgezählt wird !


    Ich hoffe Ihr könnt mir das Irrtum erklären ?(


    DANKE EllBundy

  • Ich hoffe Ihr könnt mir das Irrtum erklären

    Der Code stimmt eigentlich, zwar solltest du ihn aus Übersichtlichkeit eventuell etwas auslagern, aber ansonsten müsste das so gehen.


    C
    for(new i; i!=MAX_SERVERCFG; i++)
    {
        printf("%d|%d",i,ServerCFG[i][sLoggedIn]);
        if(ServerCFG[i][sLoggedIn])
        {

    Was gibt denn das print dann aus?

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Sry für die unübersichtlichkeit, aber das Forum übernimmt die Paste Funktion nicht so :D


    printf = SEARCH 0|114
    114 Okay ?!


    Bin auch zu der ID 0 gefahren und Enter getestet, aber ich komme nicht über die IsPlayerInRange funktion, d.h. bekomme nur printf angezeigt und nicht den standart print


    //EDIT
    Sorry was übersehen, dass du das printf hoch gesetzt hast !


    Nun kommt
    printf = SEARCH 0|114
    printf = SEARCH 0|114
    printf = SEARCH 1|0


    Bekomme nun 3 Meldungen

  • //Edit:


    Ahh ja, dann geht ja alles :)


    Da siehst du eine 0.


    Das heißt irgendwo setzt du ServerCFG[i][sLoggedIn] wo i = 1 ist auf 0 bzw false :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Bin jetzt die Suche mit sLoggedIn durch !


    Ich frage Sie nur ab und setze sie oben im Script bei new ServerCFG[serverPickup] (Hier im Forum unten ;D)
    Also wo ich Sie definiere setze ich ja am Ende ein True, das ist die einzigste Setzungs des Bools.


    Ein Bool, kann ja Theoretisch nicht 114 haben sonder nur false(0) oder true(1). Wie passiert das


    EDIT: add pastebin
    https://pastebin.com/W3nCMqNc


    Habe den Codeschnipsel erst angefangen, deswegen noch so klein ;)

    Einmal editiert, zuletzt von EllBundy ()

  • Tja, man kann dir jetzt so schlecht helfen, da der Code den du postest korrekt ist.


    Hast du AnyDesk und magst mir PN mal kurz deine ID geben, dann schau ich da mal kurz drüber, das scheint interessant :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S