MYSQl Fraktions Cars nur für Fraktion Fahrbar Fehler !Wichtig!

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
  • Hallo mein Lieben Leute,


    Ich hab eine abfrage gemacht aber wen ich in gam bin dan kann nur die fraktion mit der nummer 1 Alle autos fahren und die anderen keine warum ?



    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    for (new i=0; i< MAX_VEHICLES; i++)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(AutoInfo[i][frakid] != 1)
    {
    if(PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 1)
    {
    SendClientMessage(playerid,ROT,"Du bist in der Fraktion !");
    return 1;
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du bist nicht in der Fraktion !");
    return 1;
    }
    }
    }
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(AutoInfo[i][frakid] != 5)
    {
    if(PlayerInfo[playerid][pLeader] != 5 || PlayerInfo[playerid][pMember] != 5)
    {
    SendClientMessage(playerid,ROT,"Du bist in der Fraktion !");
    return 1;
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du bist nicht in der Fraktion !");
    return 1;
    }
    }
    }
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(AutoInfo[i][frakid] != 0)
    {
    if(PlayerInfo[playerid][pLeader] == 0 || PlayerInfo[playerid][pMember] == 0)
    {
    return 1;
    }
    }
    }
    }
    return 1;
    }



    Hier die Mysql-Abfrage



    stock LoadAutosData()
    {
    for(new i;i<MAX_VEHICLES;i++)
    {
    new query[128],data[128],bedienung[40];
    format(bedienung,sizeof(bedienung),"id='%i'",i);
    format(query,sizeof(query),"SELECT * FROM cardata WHERE %s", bedienung);//Die query
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows())// Eine Abfrage zur Sicherheit
    {
    mysql_fetch_field("Fraknummer",data);
    AutoInfo[i][frakid]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("CarID",data);
    AutoInfo[i][carid]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("X",data);
    AutoInfo[i][PosX]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("Y",data);
    AutoInfo[i][PosY]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("Z",data);
    AutoInfo[i][PosZ]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("A",data);
    AutoInfo[i][PosA]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("Farbe1",data);
    AutoInfo[i][Farbe1]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("Farbe2",data);
    AutoInfo[i][Farbe2]=strval(data);
    strdel(data,0,100);
    }
    mysql_free_result();
    }
    return printf("Autos wurden Geladen");
    }



    public OnGameModeInit()
    {
    for(new i;i<MAX_VEHICLES;i++)
    {
    AutoInfo[i][frakid] = CreateVehicle(AutoInfo[i][carid],AutoInfo[i][PosX],AutoInfo[i][PosY],AutoInfo[i][PosZ],AutoInfo[i][PosA],AutoInfo[i][Farbe1],AutoInfo[i][Farbe2],-1);
    }
    return 1;
    }


    Bitte um Hilfe


    MFG
    Ingo


    //Edit Titel bearbeitet

  • ich denke es liegt an der abfrage bei statechange. Du gibst dem server den befehl, dass er überprüfen soll, ob der spieler z.b. In fraktion 5 ist obwohl das auto garnicht zur fraktion 5 gehört. Unter statechange müsstest du soweit ich gesehen hab mal alle "!=" durch "==" ersetzen.

  • Platzsparend gehts auch so :D



    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    for (new i=0; i< MAX_VEHICLES; i++)
    {
    if(i = AutoInfo[i][carid])
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pLeader] == AutoInfo[i][frakid] || PlayerInfo[playerid][pMember] == AutoInfo[i][frakid])
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist in der Fraktion");
    return 1;
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,0xFF0000FF,"Du bist nicht in der Fraktion");
    return 1;
    }
    }
    }
    }
    return 1;
    }

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Werde ich mal testen Antwort Folgt:


    So Jetzt gibt es ein Anderes Problem ich kann in jedes Fahrzeug ein steige und wen ich aussteige kommt(Du bist nicht in der Fraktion);



    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    for (new i=0; i< MAX_VEHICLES; i++)
    {
    if(i == AutoInfo[i][frakid])
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pLeader] == AutoInfo[i][frakid] || PlayerInfo[playerid][pMember] == AutoInfo[i][frakid])
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist in der Fraktion");
    return 1;
    }
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,0xFF0000FF,"Du bist nicht in der Fraktion");
    return 1;
    }
    }
    }
    return 1;
    }


    //edit Antwort

    Einmal editiert, zuletzt von Sam Cooper ()

  • public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    for (new i=0; i< MAX_VEHICLES; i++)
    {
    if(i == AutoInfo[frakid])
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pLeader] == AutoInfo[frakid] || PlayerInfo[playerid][pMember] == AutoInfo[frakid])
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist in der Fraktion");
    return 1;
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,0xFF0000FF,"Du bist nicht in der Fraktion");
    return 1;
    }
    }
    }
    }
    return 1;
    }

    Bin weg, Tschau! (Account kann gelöscht werden)

  • Da kommen Fehler .



    D:\pawno\2411.pwn(337) : error 033: array must be indexed (variable "AutoInfo")
    D:\pawno\2411.pwn(341) : error 033: array must be indexed (variable "AutoInfo")



    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    for (new i=0; i< MAX_VEHICLES; i++)
    {
    if(i == AutoInfo[frakid])
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pLeader] == AutoInfo[frakid] || PlayerInfo[playerid][pMember] == AutoInfo[frakid])
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist in der Fraktion");
    return 1;
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,0xFF0000FF,"Du bist nicht in der Fraktion");
    return 1;
    }
    }
    }
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • Zeig doch mal dein enum ?

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • versuchs mal so



    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    for (new i=0; i< MAX_VEHICLES; i++)
    {
    if(i == AutoInfo[i][carid])
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pLeader] == AutoInfo[i][frakid] || PlayerInfo[playerid][pMember] == AutoInfo[i][frakid])
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist in der Fraktion");
    return 1;
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,0xFF0000FF,"Du bist nicht in der Fraktion");
    return 1;
    }
    }
    }
    }
    return 1;
    }

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • probier es mal so:
    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    for (new i=0; i< MAX_VEHICLES; i++)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pLeader] == AutoInfo[i][frakid] || PlayerInfo[playerid][pMember] == AutoInfo[i][frakid])
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist in der Fraktion");
    return 1;
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,0xFF0000FF,"Du bist nicht in der Fraktion");
    return 1;
    }
    }
    }
    return 1;
    }

  • Danke für deine Antwort nur ich werde aus jedem Auto Raus geworfen mit dem grund (Du bist nicht in der Fraktion !)


    enum carInfo
    {
    frakid,
    carid,
    Float:PosX,
    Float:PosY,
    Float:PosZ,
    Float:PosA,
    Farbe1,
    Farbe2,
    }
    new AutoInfo[MAX_VEHICLES][carInfo];




    public OnGameModeInit()
    {
    LoadAutosData();
    for(new i;i<MAX_VEHICLES;i++)
    {
    AutoInfo[i][frakid] = CreateVehicle(AutoInfo[i][carid],AutoInfo[i][PosX],AutoInfo[i][PosY],AutoInfo[i][PosZ],AutoInfo[i][PosA],AutoInfo[i][Farbe1],AutoInfo[i][Farbe2],-1);
    }
    return 1;
    }



    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    for (new i=0; i< MAX_VEHICLES; i++)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(PlayerInfo[playerid][pLeader] == AutoInfo[i][frakid] || PlayerInfo[playerid][pMember] == AutoInfo[i][frakid])
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist in der Fraktion");
    return 1;
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,0xFF0000FF,"Du bist nicht in der Fraktion");
    return 1;
    }
    }
    }
    return 1;
    }



    stock LoadAutosData()
    {
    for(new i;i<MAX_VEHICLES;i++)
    {
    new query[128],data[128],bedienung[40];
    format(bedienung,sizeof(bedienung),"id='%i'",i);
    format(query,sizeof(query),"SELECT * FROM cardata WHERE %s", bedienung);//Die query
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows())// Eine Abfrage zur Sicherheit
    {
    mysql_fetch_field("fn",data);
    AutoInfo[i][frakid]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("CarID",data);
    AutoInfo[i][carid]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("X",data);
    AutoInfo[i][PosX]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("Y",data);
    AutoInfo[i][PosY]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("Z",data);
    AutoInfo[i][PosZ]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("A",data);
    AutoInfo[i][PosA]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("Farbe1",data);
    AutoInfo[i][Farbe1]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("Farbe2",data);
    AutoInfo[i][Farbe2]=strval(data);
    strdel(data,0,100);
    }
    mysql_free_result();
    }
    return printf("Autos wurden Geladen");
    }


    Ich Hoffe mir kan jetzt einer helfen ich hab einfach maol das Ganze system gepostet von auto system :(



    MYSQL:




    //Edit Bild Hinzugefügt

  • Na völlig falsch...
    Machs mal so:



    enum carInfo
    {
    frakid,
    carid,
    vehid,
    Float:PosX,
    Float:PosY,
    Float:PosZ,
    Float:PosA,
    Farbe1,
    Farbe2,
    }
    new AutoInfo[MAX_VEHICLES][carInfo];





    public OnGameModeInit()
    {
    LoadAutosData();
    return 1;
    }






    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    for (new i=0; i< MAX_VEHICLES; i++)
    {
    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(i == AutoInfo[i][vehid])
    {
    if(PlayerInfo[playerid][pLeader] == AutoInfo[i][frakid] || PlayerInfo[playerid][pMember] == AutoInfo[i][frakid])
    {
    SendClientMessage(playerid,0xFF0000FF,"Du bist in der Fraktion");
    return 1;
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,0xFF0000FF,"Du bist nicht in der Fraktion");
    return 1;
    }
    }
    }
    }
    return 1;
    }





    stock LoadAutosData()
    {
    for(new i;i<MAX_VEHICLES;i++)
    {
    new query[128],data[128],bedienung[40];
    format(bedienung,sizeof(bedienung),"id='%i'",i);
    format(query,sizeof(query),"SELECT * FROM cardata WHERE %s", bedienung);//Die query
    mysql_query(query);
    mysql_store_result();
    if(mysql_num_rows())// Eine Abfrage zur Sicherheit
    {
    mysql_fetch_field("fn",data);
    AutoInfo[i][frakid]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("CarID",data);
    AutoInfo[i][carid]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("X",data);
    AutoInfo[i][PosX]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("Y",data);
    AutoInfo[i][PosY]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("Z",data);
    AutoInfo[i][PosZ]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("A",data);
    AutoInfo[i][PosA]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("Farbe1",data);
    AutoInfo[i][Farbe1]=strval(data);
    strdel(data,0,100);

    mysql_fetch_field("Farbe2",data);
    AutoInfo[i][Farbe2]=strval(data);
    strdel(data,0,100);
    }
    AutoInfo[i][vehid] = CreateVehicle(AutoInfo[i][carid],AutoInfo[i][PosX],AutoInfo[i][PosY],AutoInfo[i][PosZ],AutoInfo[i][PosA],AutoInfo[i][Farbe1],AutoInfo[i][Farbe2],-1);
    mysql_free_result();
    }
    return printf("Autos wurden Geladen");
    }

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • Nein Vehid musst du nich in der MySQL datenbank machen ^^
    Das ist einfach eine Lokale Variable, die dafür da ist, dass das Fahrzeug darauf erstellt wird...


    Also, z.B. machst du es ja auch so



    //Beispiel


    new vehicle;
    vehicle = CreateVehicle(411,x,y,z,a,0,0,-1);


    Damit du damit nachher etwas abfragen kannst

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • dan muss ich die doch mach weil es muss ja eine name sein also

    enum carInfo
    {
    vehid[64],
    }
    new AutoInfo[MAX_VEHICLES][carInfo]


    AutoInfo[i][vehid] = CreateVehicle(411,x,y,z,a,0,0,-1);


    Oder wie meinst du da jetzt weil dan muss ich eine Neue Spalte in der Datenbank machen ^^


    //edit1: enum Bearbeiter

    Einmal editiert, zuletzt von Sam Cooper ()