Beiträge von Robert

    Unter OnPlayerEnterVehicle einfach mal fragen ob er beim >einsteigen< im Gangjail ist. Wenn er es ist machste einfach mal "TogglePlayerControllable" auf 0 und dann wieder auf 1 - das bricht dann das einsteigen ab. Und solltest dann noch ne Nachricht schicken das ausbrechen nicht erlaubt ist.

    Also Preis ist ja abhängig vom eingestellten Preis - versuch dazu mal sofern es ein Godfather ist "/edit price 1" an dem Haus. Ansonsten halt einfach den Preis in der Variable für den Hauspreis irgendwo im Script umstellbar machen.
    Das Gleiche gilt eigtl. auch für "Rent & Miete". Da solltest du dann deine normalen Befehle anwenden.


    Oder simpel: Server ausschalten und in der MySQL Datenbank die Daten richtig eintragen dann siehst du, ob es am Laden liegt oder an der Speicherung.


    if(strcmp(cmd, "/setlohn", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutzung: /setlohn [Spieler ID / Name] [Lohn / Payday]");
    return 1;
    }
    new playa;
    playa = ReturnUser(tmp);
    new gehalt;
    tmp = strtok(cmdtext, idx);
    gehalt = strval(tmp);
    if (PlayerInfo[playerid][pLeader] >= 1)
    {
    if(IsPlayerConnected(playa))
    {
    if(PlayerInfo[playerid][pLeader] == PlayerInfo[playa][pMember] || PlayerInfo[playerid][pLeader] == PlayerInfo[playa][pLeader])
    {
    if(gehalt < 0 || gehalt > 10000) return SendClientMessage(playerid, COLOR_RED," Der Lohn muss zwischen 0 und 10000 liegen!"); // Hier muss ja sein das "gehalt" unter 0 ist oder über 10.000


    PlayerInfo[playa][pGehalt] = gehalt;
    GetPlayerName(playa, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "*Du hast %s Gehalt geändert in %d$.", giveplayer, gehalt);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "*%s hat dein Gehalt geändert in %d$.", sendername, gehalt);
    SendClientMessage(playa, COLOR_LIGHTBLUE, string);
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "Dieser Befehl ist nur für Leader einer Fraktion!");
    }
    }
    return 1;
    }

    Tomsen: denke mal flüchtigkeitfehler ^^ habe einen Kommentar in der "gehalt" zeile gemacht.

    Create3DTextLabel


    Also

    new string[256];
    format(string,sizeof(string), "ZU VERKAUFEN!\nName: %s\nBesitzer: Der Staat\nKaufpreis: %d", BTanke[idx][bName], BTanke[idx][bPrice]);
    Create3DTextLabel(BTanke[idx][bName], COLOR_RED, BTanke[idx][bPosX], BTanke[idx][bPosY], BTanke[idx][bPosZ], 20.0, 0, 0);

    zu

    new string[256];
    format(string,sizeof(string), "ZU VERKAUFEN!\nName: %s\nBesitzer: Der Staat\nKaufpreis: %d", BTanke[idx][bName], BTanke[idx][bPrice]);
    Create3DTextLabel(string, COLOR_RED, BTanke[idx][bPosX], BTanke[idx][bPosY], BTanke[idx][bPosZ], 20.0, 0, 0); // hier das BName zu string ändern sonst wird es nichts!

    Lies das von RG mal gründlich dann siehst du das er recht hat & dein Problem gelöst hat. Du würdest mit deiner aktuellen Variante nur den "Name: %s" nutzen bzw was da hin sollte.

    new fraktion = 0;
    if(PlayerInfo[playerid][pMember] > 0) fraktion = PlayerInfo[playerid][pMember] - 1;
    if(PlayerInfo[playerid][pLeader] > 0) fraktion = PlayerInfo[playerid][pLeader] - 1;
    FraktionsKasse[fraktion] += preis/2;
    GivePlayerMoney(playerid,preis/2);
    SaveFraktionsKassen();



    Tipp bei Givelicense nutze einfach #defines:

    #define KOSTEN_AUTOFÜHRERSCHEIN 5000 // Wären $5000


    // Unter /givelicense vor der Abfrage mit "driving"
    new fraktion = 0;
    if(PlayerInfo[playerid][pMember] > 0) fraktion = PlayerInfo[playerid][pMember] - 1;
    if(PlayerInfo[playerid][pLeader] > 0) fraktion = PlayerInfo[playerid][pLeader] - 1;



    // Dazu unter /givelicense in driving:
    new preis = KOSTEN_AUTOFÜHRERSCHEIN;
    GivePlayerMoney(giveplayerid,-preis);
    FraktionsKasse[fraktion] += preis/2;
    GivePlayerMoney(playerid,preis/2);
    SaveFraktionsKassen();

    ungetestet sollte aber so gehn


    new Cops = 0;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1 || PlayerInfo[i][pLeader] == 2 || PlayerInfo[i][pMember] == 2 || PlayerInfo[i][pLeader] == 3 || PlayerInfo[i][pMember] == 3)
    {
    Cops += 3; // Es wird sogar nur ein Cop benötigt wg deinem Script^^
    }
    }
    }


    Kopier den Code mal 1zu1 aus deinem Script und poste ihn erneut - so kann man ihn nicht lesen geschweige denn dir helfen. Bei dem langzeilen Code kann keiner durchblicken und warum sollten die Helfer sich die mühe machen deinen Code zu entziffern.

    SetPlayerVirtualWorld(playerid,playerid+1); // Würde ihn in die Virtuelle Welt mit seiner ID setzen + 1 [ wg ID 0 :D ]
    SetVehicleVirtualWorld(/*Das Fahrzeug das nur der Spieler sehn soll*/,playerid+1);


    public OnPlayerRequestClass(playerid, classid)
    {
    SetPlayerPos(playerid, 487.9458, -5.9515, 1002.0867);
    SetPlayerFacingAngle(playerid, 180); SetPlayerInterior(playerid, 17);
    SetPlayerCameraPos(playerid, 487.8283, -11.4869, 1001.7832);
    SetPlayerCameraLookAt(playerid, 487.8446, -10.4885, 1001.7479);
    switch(classid) {
    case 0,1,2,3,4: Team[playerid] = 1;
    default: Team[playerid] = 0;
    }
    if(classid == 0 || classid == 1 || classid == 2 || classid == 3 || classid == 4)
    {
    SetPlayerColor(playerid, COLOR_GREY);
    GameTextForPlayer(playerid, "~w~Yakuza", 1500, 6);
    }
    else if(classid == 5 || classid == 6 || classid == 7 || classid == 8 || classid == 9)
    {
    SetPlayerColor(playerid, COLOR_BLUE);
    GameTextForPlayer(playerid, "~b~Triaden", 1500, 6);
    }
    else if(classid == 10 || classid == 11 || classid == 12 || classid == 13 || classid == 14)
    {
    SetPlayerColor(playerid, COLOR_GSF);
    GameTextForPlayer(playerid, "~g~Grove Street", 1500, 6);
    }
    return 1;
    }

    1. Code mal übersichtlich.
    2. Hier ist kein SetPlayerPos bei den Triaden / Yakuza also ist hier auch nicht die festlegung der Spawn Position.


    Kuck mal unter "OnPlayerSpawn" bzw sende diesen an uns.

    Das ist aus dem Tutorial Link von Tround also nutze mal dein Gehirn, lies das Tutorial durch und versuche es damit zu schaffen. Fragen kannst du danach ja immernoch stellen.