Biz-System fehlerhaft

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
  • guten Tag liebe SA:MP Community,


    abspeichern & laden klappt bisjetzt prima.


    Hier sind meine Befhele:
    ocmd:buybiz(playerid,params[])
    {
    for(new b = 0; b < MAX_ANZAHL_AN_BIZZ; b++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, BizInfo[b][bX],BizInfo[b][bY],BizInfo[b][bZ]))
    {
    if(BizInfo[b][bInBesitz] == 0)
    {
    if(GetPlayerMoney(playerid) > BizInfo[b][bPreis])
    {
    new NAME[MAX_PLAYER_NAME];
    BizInfo[b][bInBesitz] = 1;
    BizInfo[b][bBesitzerName] = GetPlayerName(playerid, NAME, sizeof(NAME));
    DestroyPickup(Bizgekauft);
    AGivePlayerMoney(playerid, -BizInfo[b][bPreis]);
    Bizgekauft = CreatePickup(1272, 1,BizInfo[b][bX],BizInfo[b][bY],BizInfo[b][bZ]);
    SaveBizz();
    }
    else
    {
    SendClientMessage(playerid, FARBE_ROT, "Error: Du hast nicht genügend Geld!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, FARBE_ROT, "Error: Dieses Biz besitzt bereits jemand!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, FARBE_ROT, "Error: Du bist an keinem Biz!");
    return 1;
    }
    }
    return 1;
    }


    ocmd:abuybiz(playerid,params[])
    {
    new Name[16];
    BizInfo[1][bBesitzerName] = GetPlayerName(playerid, Name, sizeof(Name));
    BizInfo[1][bInBesitz] = 1;
    DestroyPickup(Bizgekauft);
    Bizgekauft = CreatePickup(1272, 1,BizInfo[1][bX],BizInfo[1][bY],BizInfo[1][bZ]);
    return 1;
    }


    ocmd:sellbiz(playerid,params[])
    {
    for(new b = 0; b < MAX_ANZAHL_AN_BIZZ; b++)
    {
    new sendername[MAX_PLAYER_NAME];
    if(IsPlayerInRangeOfPoint(playerid, 5.0, BizInfo[b][bX],BizInfo[b][bY],BizInfo[b][bZ]) && BizInfo[b][bBesitzerName] == GetPlayerName(playerid, sendername, sizeof(sendername)))
    {
    BizInfo[b][bInBesitz] = 0;
    BizInfo[b][bBesitzerName] = 0;
    DestroyPickup(Bizgekauft);
    AGivePlayerMoney(playerid, BizInfo[b][bPreis]);
    Bizgekauft = CreatePickup(1273, 1,BizInfo[b][bX],BizInfo[b][bY],BizInfo[b][bZ]);
    SendClientMessage(playerid, FARBE_BLAU, "Biz verkauft!");
    SaveBizz();
    }
    else
    {
    SendClientMessage(playerid, FARBE_ROT, "Error: Du bist an keinem Biz!");
    return 1;
    }
    }
    return 1;
    }


    /abuybiz hab ihc nur gemacht, um zu testen, ob die Position von dem Biz den richtig ist.
    JA, ingame wird ein Pickup erstellt.
    Bei den Befehlen /buybiz und /sellbiz jedoch wird immer angezeigt , "Error: Du bist an keinem Biz!".


    Wäre nett wenn mir jmd. helfen könnte.


    Lg

  • ocmd:buybiz(playerid,params[])
    {
    new b = IstSpielerBeiBiz(playerid);
    if(b == 0) return SendClientMessage(playerid,FARBE_BLAU,"Du bist bei keinem Biz");
    if(BizInfo[b][bInBesitz]== 1) return SendClientMessage(playerid,FARBE_ROT,"Du musst vor dem Biz stehen.");
    if(GetPlayerMoney(playerid) < BizInfo[b][bPreis]) return SendClientMessage(playerid,FARBE_ROT,"Du hast nicht genug Geld dabei.");
    new NAME[MAX_PLAYER_NAME];
    GetPlayerName(playerid, NAME, sizeof(NAME));
    BizInfo[b][bInBesitz] = 1;
    format(BizInfo[b][bBesitzerName],24,NAME);
    DestroyPickup(Bizgekauft);
    AGivePlayerMoney(playerid, -BizInfo[b][bPreis]);
    Bizgekauft = CreatePickup(1272, 1,BizInfo[b][bX],BizInfo[b][bY],BizInfo[b][bZ]);
    SaveBizz();
    return 1;
    }


    ocmd:sellbiz(playerid,params[])
    {
    new b = IstSpielerBeiBiz(playerid);
    new sendername[MAX_PLAYER_NAME];
    GetPlayerName(playerid,sendername,24);
    if(b == -1) return SendClientMessage(playerid,FARBE_BLAU,"Du bist bei keinem Biz");
    if(!strcmp(BizInfo[b][bBesitzerName],sendername,false))
    {
    BizInfo[b][bInBesitz] = 0;
    BizInfo[b][bBesitzerName] = 0;
    DestroyPickup(Bizgekauft);
    AGivePlayerMoney(playerid, BizInfo[b][bPreis]);
    Bizgekauft = CreatePickup(1273, 1,BizInfo[b][bX],BizInfo[b][bY],BizInfo[b][bZ]);
    SendClientMessage(playerid, FARBE_BLAU, "Biz verkauft!");
    SaveBizz();
    }
    else
    {
    SendClientMessage(playerid,FARBE_BLAU,"Du bist nicht der Besitzer.");
    }
    return 1;
    }


    geht trzd. noch nicht


    edit mein stock vom istspielerbeibiz:



    stock IstSpielerBeiBiz(playerid)
    {
    new sendername[MAX_PLAYER_NAME];
    for(new b = 0; b < MAX_ANZAHL_AN_BIZZ; b++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 5.0, BizInfo[b][bX],BizInfo[b][bY],BizInfo[b][bZ]) && BizInfo[b][bBesitzerName] == GetPlayerName(playerid, sendername, sizeof(sendername)))
    {
    return b;// Wenn er beim Biz ist stoppt er den durchlauf und gibt die aktuele biz id wieder
    }
    }
    return 0;
    }


    /edit2:


    Problem behoben, vielen Dank an Rapsor, welcher mir dieses Biz-System ohne Bugs lieferte.

    2 Mal editiert, zuletzt von inCrecdible ()