Beiträge von Jeffry

    Willkommen auf breadfish!


    Dieser Fehler deutet auf eine Fehlende Library hin.
    Lade dir dein Plugin nochmal herunter. In dem Ordner findest du dann eine mysql.so und eine mysql_static.so. Nutze dann die mysql_static.so und entferne die mysql.so aus deinem Server.
    Dann geht es, denn die static Version hat diese fehlende Library bereits eingebaut.

    Oh, das hat so aber auch noch nie jemand gemacht. :D


    if(sscanf(params,"uds[64]",pID,time,grund))return SendClientMessage(playerid,"Tippe: /tban [id] [Dauer] [Grund]");
    zu:
    if(sscanf(params,"uds[64]",pID,time,grund))return SendClientMessage(playerid,ROT,"Tippe: /tban [id] [Dauer] [Grund]");


    Es hat einfach die Farbe gefehlt.

    Diese Funktion (randomex) ist selbstgemacht, von daher kann ich dir das nicht zu 100% sagen, aber zu 99,9% ja. Zwischen 2800 und 3200.





    EDIT:
    @Posts Unten:
    Ihr wisst schon, dass er nur gefragt hast was die Funktion macht. Wenn er das so im Code hat, dann hat er die Funktion schon. ;)

    ocmd:forumacccheck(playerid,params[])
    {
    if(!isAdmin(playerid,2)) return SendClientMessage(playerid,-1,"Bitte frage einen Admin ob du einen Forumaccount hast");
    {
    new pID,Name[MAX_PLAYER_NAME];
    if(sscanf(params, "u", pID)) return SendClientMessage(playerid,-1,"INFO: /forumacccheck [ID | Username]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,-1,"INFO: Spieler nicht online");
    GetPlayerName(pID, Name, MAX_PLAYER_NAME);
    WBB_IsValidUser(Name, pID);
    SetPVarInt(playerid, "pID",pID)
    return 1;
    }
    }
    Einfach abfragen, ob die ID online ist.

    Ok. Der erste Fehler heißt, dass du mysql_num_rows() nutzt ohne davor mysql_store_result() verwendet zu haben. Da solltest du entweder den Code posten, oder es dir selbst anschauen, vielleicht siehst du den Fehler ja, wo das fehlt.


    Die beiden anderen Fehler sagen, dass dein Server die Verbindung zum SQL-Server verloren hat. Das kann entweder ein Folgefehler von Fehler 1 sein, oder ein Fehler deines SQL-Servers. So wie ich das sehe hast du außerdem 4 verschiedene Verbindungen aufgebaut (0,1,2,3). Das ist nicht wirklich gut. Schau mal wo du überall mysql_connect verwendest.
    Ich kenne den Fehler eigentlich nur, wenn man den SQL-Server neu startet, während der SA-MP Server in Betrieb ist, deshalb würde ich sagen du kümmerst dich erst mal um den ersten Fehler und wenn der nicht mehr kommt, schaust du ob der zweite Fehler immer noch kommt.

    ^ Hauptsache gepostet und genörgelt, aber hilfreich? ... :thumbdown:



    @CIBERKILLER: Dein Code hat einen Denkfehler drin, und zwar wechselst du die Variable bei jedem Spieler, sprich wenn du den Befehl eingibst, wird es jedem zweiten Spieler den Stream abspielen, und jedem anderen nicht. Gibst du den Befehl erneut ein, genau andersherum.


    Richtig wäre es so:
    if(!strcmp(cmdtext, "/befehl", true))
    {
    static bool:streamvar;
    if(!streamvar)
    {
    for(new x, o = GetMaxPlayers(); x < o; ++x)
    {
    if(!IsPlayerConnected(x) || IsPlayerNPC(x)) continue;
    PlayAudioStreamForPlayer(x, "link");
    }
    streamvar = true;
    }
    else
    {
    for(new x, o = GetMaxPlayers(); x < o; ++x)
    {
    if(!IsPlayerConnected(x) || IsPlayerNPC(x)) continue;
    StopAudioStreamForPlayer(x);
    }
    streamvar = false;
    }
    return 1;
    }


    Die static Variable ist hier besser, da wir es sonst global deklarieren müssten, und das ist bei einer Variable die nur an einer Stelle verwendet wird nicht wirklich schön, wenn es auch so geht. static speichert den Wert der Variable in der jeweiligen Ebene.
    Außerdem, als kleiner Hinweis: In einer Schleife Abfragen wie x != o als End-Kriterium zu setzen ist nicht zu empfehlen. Zwar funktioniert es, aber stellt man sich nur vor, dass aus irgendeinem Grund der x-Wert o übergangen wird, dann läuft die Schleife ins Unendliche. Besser ist x < o. ;)

    Almero: Er wird die Daten wohl aus der Datenbank laden, außerdem nutzt er ja die gleichen Werte für das Label, sprich es wäre einfach alles weiter unten.


    Er will nur das Pickup näher zum Boden.
    So:
    HouseInfo[h][hPickupID] = CreatePickup(19470, 1, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]-0.5);


    Falls die 0.5 nicht genug oder zu viel sind, musst es eben etwas ändern.

    Ich schätze mal du rufst den stock vor dem Login auf.
    Ändere
    if(SpielerInfo[playerid][pBanned] == 1)
    zu:
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, name, MAX_PLAYER_NAME);
    if(mysql_GetInt("user", "Banned", "Name", name) == 1)

    Also mit dem Code von mir kommst du erst gar nicht rein, die Türen sind da zu. Er macht halt die Animation nicht, dafür musst du die Funktionen nutze die Pr0x gepostet hat, allerdings bin ich kein Freund von diesen Funktionen, da man sie auch beim einstreamen des Fahrzeugs wieder aufrufen muss, und es eben mehr Arbeit ist.


    Ein Beispiel dafür ist bei dem zweiten Link ja dabei.
    Welches du da nimmst bleibt dir überlassen.
    Ich würde sagen du fängst mal an, mit welchem auch immer, und wenn du Fragen hast, postest du deinen Code bis dahin und schilderst dein Problem. ;)

    Wie speicherst du den Ban-Status des Spielers in die Datenbank? Poste mal den Code mit dem du das speicherst.
    Und wie prüfst du es beim Connect ab, ob der Spieler gebannt ist?

    Unter die Includes:
    new bool:LockedVehicle[MAX_VEHICLES];


    Erstellen:
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid, x, y, z);
    SetVehicleNumberPlate(admincar = CreateVehicle(560,x,y,z,0.0,1,1,-1),"Admin Car!");
    LockedVehicle[admincar] = true;



    OnPlayerEnterVehicle:
    if(LockedVehicle[vehicleid])
    {
    TogglePlayerControllable(playerid, false);
    TogglePlayerControllable(playerid, true);
    }



    EDIT: Almero: Um noch hinzuzufügen: Das wäre nur für Admins zugänglich:
    if(LockedVehicle[vehicleid] && IsPlayerAdmin(playerid) == 0)
    {
    TogglePlayerControllable(playerid, false);
    TogglePlayerControllable(playerid, true);
    }

    Problem behoben.
    Er hat sich die ganze Zeit mit dem falschen Befehl den Job gesetzt, der eine andere Variable verwendet hat. Beide Variablen in den Code eingebaut, sodass es egal ist welchen Befehl er nutzt, jetzt geht es.


    @John_Alvarez: Bitte Thread als erledigt markieren! Danke. :)