Beiträge von BlackLegend

    Änder mal stock auf public und oben im Script natürlich
    forward SetVehicleData(vehicleid, fuel);


    Dann sollte es funktionieren, wenn nicht schau mal nach, ob du das Filterscript in der Server.cfg eingetragen hast.
    So leicht wie in Java geht das leider nicht, wär auch zu schön^^.


    BlackLegend

    Hoffe ich habe dich jetzt richtig verstanden:


    Im Filterscript:

    stock SetVehicleFuelState(vehicleid, state)
    {
    vehData[vehicleid][tank] = state;
    }


    Im Gamemode (Mainscript):

    SetVehicleFuelState(vehicleid, 100); //100 kann auch jede andere Zahl sein, ganz wie du willst.




    BlackLegend

    new PlayerName[MAX_PLAYER_NAME], string[64];
    GetPlayerName(playerid, PlayerName, sizeof(PlayerName));
    format(string, sizeof(string), "Hallo %s hier möchten wir dir ein wenig über den Server erklären.", PlayerName);
    SendClientMessage(playerid, 0x00A900FF, string);

    Sollte ungefähr so aussehen, ausserdem habe ich einen Fehler korrigiert, "||" steht für oder, "|| if" währe falsch:


    if(strcmp(cmdtext,"/haus",true)==0)
    {
    for(new haus = 0; haus < HAUS_ANZAHL; haus++) //HAUS_ANZAHL durch die Anzahl deiner Häuser ersetzen
    {
    if(!IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]) || inHaus[playerid] == -1) return SendClientMessage(playerid,ROT,"Du befindest dich nicht AN oder IN deinem Haus!");
    ShowPlayerDialog(playerid,DIALOG_HAUSMENU,DIALOG_STYLE_LIST,"{ADFF2F}Haus-Optionen:","{39E01B}Haus betreten\n{E01B1B}Haus Verlassen\nHaus Verkaufen","Select", "Abbrechen");
    return 1;
    }
    }

    if(strcmp("/aoff",cmdtext))
    {
    if(IsPlayerAdmin(playerid))
    {
    new pName[MAX_PLAYER_NAME];
    new string[48];
    GetPlayerName(playerid, pName, sizeof(pName));
    format(string, sizeof(string), "Admin %s ist nun OnDuty.", pName);
    SendClientMessageToAll(BLAU, string);
    Delete3DTextLabel(Aduty[playerid]);// Text3D: schreibt man nur bei der Definierung davor, danach nicht mehr.
    return 1;
    }
    }




    BlackLegend

    SetTimer("Nachrichten",1000,true)


    1. Fehlt da ein Semikolon
    2. Muss das in eine Funktion, bestenfalls unter OnGameModeInit


    OnGameModeInit()
    {
    SetTimer("Nachrichten",1000,true);
    }





    BlackLegend

    strval wandelt einen String in eine Integervariable um, da du aber Strings vergleichen willst, denn das was du ausliest(rank) ist ja bereits ein String, musst du dies wie folgt machen:


    if (strcmp("/rank", cmdtext, true, 10) == 0)
    {
    // Objekte
    new query1[180];
    new rank[180];
    new userRank;

    // Bekomme Informationen von der Datenbank
    format(query1, sizeof(query1), "SELECT userRank FROM users WHERE username = '%s'", playerName);
    mysql_query(query1);
    mysql_store_result();
    mysql_fetch_field("userRank", rank);
    mysql_free_result();


    if(!strcmp("user", rank, true))//strcmp vergleicht zwei Strings, true gibt an, ob Groß- und Kleinschreibung ingoriert werden soll.
    {
    return 1;
    }

    // kill
    return 1;
    }

    Nein, daran liegt es ganz sicher nicht.


    Hier liegt der Fehler:
    format(query,sizeof(query),"UPDATE gbdata SET GBZoneX1 ='%f',GBZoneX2 ='%f',GBZoneY1 ='%f',GBZoneY2 ='%f' WHERE GBID =='%i'",p1x,p2x,p1y,p2y,id);
    SQL Bedingungen fragt man mit nur einem '=' ab, nicht wie sonst mit zweien.


    Hier die richtige Variante:
    format(query,sizeof(query),"UPDATE gbdata SET GBZoneX1='%f',GBZoneX2='%f',GBZoneY1='%f',GBZoneY2='%f' WHERE GBID='%i'",p1x,p2x,p1y,p2y,id);





    BlackLegend

    Poste mal bitte die Zeilen rundum 827, wenn ich mich nicht irre ist es diese:
    if(carid == GrooveCar || carid == LCNCar || carid == BallasCar || carid == BikerCar || carid == VagosCar || carid == YakuzzaCar || carid == RifaCar)
    Oder?
    Wenn ja, dann ersetz die Zeile einfach durch folgende:
    if(IsAGrooveCar(carid) || carid == LCNCar || carid == BallasCar || carid == BikerCar || carid == VagosCar || carid == YakuzzaCar || carid == RifaCar)





    BlackLegend

    Deainstalliere GTA San Andreas und alles was dazu gehört komplett (Multiplayer usw.).
    Dann erstelsst du einen neuen Ordner, da wo das Spiel installiert werden soll.
    Bei den Meisten ist dies wahrscheinlich C:\Programme, achte dadrauf, dass der Ordner sich nicht an der selben Stelle befindet,
    wie der Ordner, in dem sich das Spiel davor befand (C:\Programme\Rockstar Games\Grand Theft Auto San Andreas).


    Dann installierst du das Spiel erneut, aber diesmal in den von dir erstellten Ordner.
    Das Problem beim Deainstallieren ist, dass manchmal vereinzelte Daten(-reste) zurückbleiben.
    Einen neuen Benutzer erstellen oder Windows neu aufsetzen braucht du dafür ganz sicher nicht,
    ich hatte dieses Problem bereits und konnte es mit der von mir genannten Variante erfolgreich lösen.




    BlackLegend

    if(!IsAMedicCar(GetPlayerVehicleID(playerid))) return SendClientMessage(playerid, Rot,"Du bist in keinem Rtw ");
    Da haben nur 2 Klammern gefehlt, wenn du 3 "Öffnungsklammern" benutzt (also "(" ) brauchst du natürlich auch 3 "Schliessungsklammern", hoffe du verstehst, was ich meine.
    Da sind noch andere gleiche Fehler, wenns die selben sind, kannst du die ja beheben, wenn nicht poste die Zeilen:
    C:\Users\EliteBread\Desktop\Spiele usw\Andere Programme\Daten\Selfmade Script\gamemodes\Bread.pwn(1264) : error 001: expected token: ",", but found "return"



    So nächster Fehler:
    C:\Users\EliteBread\Desktop\Spiele usw\Andere Programme\Daten\Selfmade Script\gamemodes\Bread.pwn(827) : error 033: array must be indexed (variable "GrooveCar")
    Das bedeutet, dass die Variable GrooveCar ein Array ist, es besteht also sozusaegn aus mehreren einzelnen Variablen (stell dir das einfach so vereinfacht vor).
    Du musst also jede einzelne Variable des Arrays überprüfen:



    for(new i = 0; i < sizeof(GrooveCar); i++)
    {
    if(carid == GrooveCar[i])
    {
    return 1;
    }
    }



    BlackLegend

    Wenn du etwas abfragst, musst du natürlich auch festlegen, was passieren soll, wenn die Aussage wahr ist.
    In diesem Fall soll ein "Ja" oder "Nein" bzw. "Wahr" oder "Falsch" zurückgegeben werden.


    stock IsAGangCar(carid)
    {
    if(carid == GrooveCar || carid == LCNCar || carid == BallasCar || carid == BikerCar || carid == VagosCar || carid == YakuzzaCar || carid == RifaCar)
    {
    return 1; //Ja | Wahr
    }
    return 0;//Nein | Falsch
    }


    Alternativ und einfacher geht das übrigends auch so:


    stock IsAGangCar(carid)
    {
    return (carid == GrooveCar || carid == LCNCar || carid == BallasCar || carid == BikerCar || carid == VagosCar || carid == YakuzzaCar || carid == RifaCar);//Hier wird automatisch 0 (Falsch) oder 1 (Ja) zurückgegeben.
    }




    BlackLegend

    #define MAX_FRACS 28
    new Fracs[MAX_FRACS][23] = {
    "LSPD",
    "SFPD",
    "U.S. Army",
    "Notrufzentrale",
    "La Cosa Nostra",
    "Yakuza",
    "Präsident",
    "Hitman Agency",
    "SAN News",
    "Streetfighter",
    "Fahrschule",
    "Hells Angels",
    "Grove Street",
    "Ballas",
    "Red Soldiers",
    "L.S. Vagos",
    "Varrios Los Aztecas",
    "Guerilla",
    "Red Dragons",
    "Feuerwehr",
    "FBI",
    "Triaden",
    "Wheelman Agency",
    "Ordnungsamt",
    "Banditos",
    "LV News.",
    "Cali Kartell",
    };



    Hier (nach "Cali Kartell") einfach das Komma weg, die letzte ArrayVariable darf nicht mit einem Komma enden, danach kommt ja nichts mehr.
    Außerdem, wenn es nur 27 Variablen sind, darf MAX_FRACS auch nur 27 betragen, die [23] gibt übrigends nur an, dass eine Variable des Arrays
    maximal 23 Zeichen lang sein darf.


    #define MAX_FRACS 27
    new Fracs[MAX_FRACS][23] = {
    "LSPD",
    "SFPD",
    "U.S. Army",
    "Notrufzentrale",
    "La Cosa Nostra",
    "Yakuza",
    "Präsident",
    "Hitman Agency",
    "SAN News",
    "Streetfighter",
    "Fahrschule",
    "Hells Angels",
    "Grove Street",
    "Ballas",
    "Red Soldiers",
    "L.S. Vagos",
    "Varrios Los Aztecas",
    "Guerilla",
    "Red Dragons",
    "Feuerwehr",
    "FBI",
    "Triaden",
    "Wheelman Agency",
    "Ordnungsamt",
    "Banditos",
    "LV News.",
    "Cali Kartell"
    };





    lg
    BlackLegend

    $Player = mysql_query("SELECT * FROM accounts WHERE Name = 'Spielername' AND Gebannt='1'");


    Als erstes musst du den Name des Spielers wissen, von dem überprüft werden soll, ob er gebannt ist oder nicht.
    und den setzt du dann bei WHERE Name='Spielername' ein, zum Beispiel Player. Sollte also jemand in der Datenbank den Namen Player haben, und die Variable Gebannt auf 1 ist, dann werden alle Informationen über den Spieler ausgelesen. Wenn du nun aber nur wissen willst, ob der Spieler gebannt ist, machst du das am besten so:


    $Banned = mysql_query("SELECT Gebannt FROM accounts WHERE Name = 'Spielername'");
    bzw.: $Banned = mysql_query("SELECT Gebannt FROM accounts WHERE Name = 'Player'");