Beiträge von Jeffry

    Du darfst den print erst in OnFrakKasseLoad ausgeben lassen, am besten vor dem return 1 darin.


    Zwecks dem Code:
    Du musst den Code über den "Quellcode" Editor posten (erster BB Button (Kästchen vor den Pfeilen)).
    Oder du nimmst den </> Button und wählst C-Code.

    loadFrakKasse(fraktid)
    {
    new query[128];
    format(query,sizeof(query),"SELECT * FROM fraktkasse WHERE besitzer='%i'",frakid);
    mysql_function_query(dbhandle,query,true,"OnFrakKasseLoad","i",frakid);
    return 1;
    }


    Und dann woanders, zum Beispiel bei OnGameModeInit:
    loadFrakKasse(0);
    loadFrakKasse(1);
    Oder:
    for(new i = 0; i < sizeof(fInfo); i++) loadFrakKasse(i);

    Ja, das Fahrzeug ist auf einer Hebebühne oben und der Spieler ist dann unter dem Fahrzeug, sprich liegend

    Versuche es so:
    new id = GetClosestVehicleID(playerid, 500);
    if(id != INVALID_VEHICLE_ID)
    {
    new Float:X, Float:Y, Float:Z;
    new Float:px, Float:py, Float:pz;
    GetVehiclePos(id);
    GetPlayerPos(playerid, px, py, pz);
    if(IsPlayerInRangeOfPoint(playerid, 3.0, X, Y, Z - 2.0) && pz < Z) //Die - 2.0 eventuell anpassen
    {
    SendClientMessage(playerid, COLOR_WHITE, "Super Funktioniert :)");
    return 1;
    }
    }
    else SendClientMessage(playerid, COLOR_WHITE, "Du bist nicht in der Nähe eines Fahrzeuges.");

    Immer noch das gleich Problem wie vorher das die Zeit da steht

    Komisch. Möglicherweise ein Fehler im Plugin.
    Versuche es so zu umgehen:
    ocmd:spielerinfo(playerid,params[])
    {
    new str[145], name[MAX_PLAYER_NAME], lastjoin[64], gebannt;
    if(sscanf(params, "s", name)) return SendClientMessage(playerid,ROT,"{FFD200}Benutze:{FEFEFE}/spielerinfo [Name]");

    mysql_real_escape_string(name,name);
    format(str, sizeof(str),"SELECT LastJoin, Gebannt FROM `accounts` WHERE `Name`='%s'",name);
    mysql_query(str);
    mysql_store_result();
    if(mysql_num_rows() == 0)
    {
    mysql_free_result();
    return SendClientMessage(playerid,ROT,"Spieler existiert nicht.");
    }
    format(str, sizeof(str), "Der Spieler %s war zuletzt online am:",name);
    mysql_fetch_field("LastJoin",lastjoin);
    format(str, sizeof(str), "%s %s", str, lastjoin);
    SendClientMessage(playerid, 0xFFFFFFFF, str);

    mysql_fetch_field("Gebannt",str);
    gebannt = strval(str);
    mysql_free_result();

    if(gebannt != 0) SendClientMessage(playerid, 0xFFFFFFFF,"Der Spieler ist gebannt.");
    else SendClientMessage(playerid, 0xFFFFFFFF,"Der Spieler ist nicht gebannt.");
    return 1;
    }

    Was genau meinst du?
    Die IDs wären hier der Index im Array, also:
    new fInfo[][fraktEnum] = {
    {"Zivilist", 1108.7543, -1796.4539, 16.5938, 88.3845, 0, 0, CLR_WHITE}, //ID 0
    {"LSPD", 254.2813, 78.9334, 1003.6406, 180.7323, 6, 0, CLR_BLUE} //ID 1
    };


    Somit kannst du bei deinem ? oben einfach "frakid" einfügen.
    loadFrakKasse rufst du dann für alle Indizies (0 - 1) auf.

    Nutze diesen stock:
    stock GetEmptyPlayerCarID()
    {
    for(new i = 0; i < sizeof(PlayerCar); i++)
    {
    if(PlayerCar[i] == 0) return i;
    }
    return -1;
    }


    new id = GetEmptyPlayerCarID();
    if(id == -1) return SendClientMessage(playerid, 0xFF0000FF, "Error: Kein Fahrzeug mehr möglich.");
    PlayerCar[id] = CreateVehicle(Buycars[Cars[playerid]][modelid],2148.3618,-1138.3479,25.1614,270.5389,SuchtFarbe[playerid],SuchtFarbe2[playerid],0);

    <Bilder>

    Ah, da dort die Zeit noch dabei steht war der String zu klein.
    Versuche es so:
    ocmd:spielerinfo(playerid,params[])
    {
    new str[145], name[MAX_PLAYER_NAME], lastjoin[11], gebannt;
    if(sscanf(params, "s", name)) return SendClientMessage(playerid,ROT,"{FFD200}Benutze:{FEFEFE}/spielerinfo [Name]");

    mysql_real_escape_string(name,name);
    format(str, sizeof(str),"SELECT LastJoin, Gebannt FROM `accounts` WHERE `Name`='%s'",name);
    mysql_query(str);
    mysql_store_result();
    if(mysql_num_rows() == 0)
    {
    mysql_free_result();
    return SendClientMessage(playerid,ROT,"Spieler existiert nicht.");
    }
    mysql_fetch_field("LastJoin",lastjoin);
    mysql_fetch_field("Gebannt",str);
    gebannt = strval(str);
    mysql_free_result();

    format(str, sizeof(str), "Der Spieler %s war zuletzt am Spieler: %s",name,lastjoin);
    SendClientMessage(playerid, 0xFFFFFFFF, str);
    if(gebannt != 0) SendClientMessage(playerid, 0xFFFFFFFF,"Der Spieler ist gebannt.");
    else SendClientMessage(playerid, 0xFFFFFFFF,"Der Spieler ist nicht gebannt.");
    return 1;
    }



    @J0a9
    Unter dem Auto? Direkt drunter liegend?

    mysql_function_query(dbhandle,query,true,"OnUserChck","i",playerid);
    Zu
    mysql_function_query(dbhandle,query,true,"OnUserCheck","i",playerid);


    Außerdem ist es empfehlenswert, den Code bei OnPlayerRequestClass auszuführen, da bei OnPlayerConnect der Dialog eventuell nicht immer angezeigt wird (musst du ausprobieren).

    Klar ist der string groß genug. Hätte aber gern das mit den Floates etc entbuggt

    Wäre gut, wenn du den Code dazu postest und einen Screenshot aus der Datenbank der die Daten zeigt.



    Deswegen wundert es mich ja genauso, auch weil er die Daten ausliest.

    Setze mal einen Print an die Speicherung und prüfe, ob der Print zur gleichen Zeit im Log steht, wie die Warnung. So kannst du feststellen, ob es wirklich davon kommt.

    ocmd:job(playerid,params[])
    {
    if(IsPlayerInRangeOfPoint(playerid,2.0,362.1261,173.7344,1008.3828))
    {
    ShowMenuForPlayer(Stadthalle, playerid);
    FreezePlayer(playerid);
    return 1;
    }
    return 1;
    }


    Wenn der Spieler sonst nicht in der Nähe wäre, würde kein Wert zurück gegeben werden.