Problem mit Autohaus/Biz System

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
  • Hallo Community!
    Ich weise gerade die Bizes Ihr Verkaufsprodukt zu, aber ich habe ein Fehler mit dem Autohaus System.
    Er nimmt immer nur das erste von der Schleife und wenn ich zb in ein anderen Autohaus gehe geht es nicht.
    Nur bei der ersten if-abfrage.


    //Mit if... habe ich auch schon Probiert Funktioniert auch nicht. So langsam weiß ich nicht weiter.
    if(ahCars[id][ah_id] == 0 && bsInfo[b][b_id] == 4)//Die Funktioniert darunter die geht auch nicht
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 4");
    }
    else if(ahCars[id][ah_id] == 1 && bsInfo[b][b_id] == 5)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 5");
    }
    else if(ahCars[id][ah_id] == 2 && bsInfo[b][b_id] == 6)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 6");
    }
    else if(ahCars[id][ah_id] == 3 && bsInfo[b][b_id] == 7)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 7");
    }

  • if(dialogid == DIALOG_BIZMENU)
    {
    if(response)
    {
    new Float:x,Float:y,Float:z,query[350];
    new id = GetFreeBizID();
    switch(listitem)
    {
    case 0:
    {
    //Bürgershot
    bsInfo[id][ib_x] = 375.962463;
    bsInfo[id][ib_y] = -65.816848;
    bsInfo[id][ib_z] = 1001.507812;
    bsInfo[id][b_interior] = 10;
    bsInfo[id][b_shopname] = "FDBURG";
    bsInfo[id][b_id] = 1;
    SCM(playerid,COLOR_GELB,"[Business]: Du hast als Unternehm den Bürger Shot gewählt.");
    SCM(playerid,COLOR_GELB,"[Business]: Setz bitte noch ein 'Marker' wo der Spieler eintreten soll.");
    SetPVarInt(playerid,"Marker_Biz",1);
    }
    case 1:
    {
    //Tankstelle
    bsInfo[id][ib_x] = 663.836242;
    bsInfo[id][ib_y] = -575.605407;
    bsInfo[id][ib_z] = 16.343263;
    bsInfo[id][b_interior] = 0;
    bsInfo[id][b_id] = 2;
    SCM(playerid,COLOR_GELB,"[Business]: Du hast als Unternehm die Tankstelle gewählt.");
    SCM(playerid,COLOR_GELB,"[Business]: Setz bitte noch ein 'Marker' wo der Spieler eintreten soll.");
    SetPVarInt(playerid,"Marker_Biz",1);
    }
    case 2:
    {
    //24/7
    bsInfo[id][ib_x] = -30.946699;
    bsInfo[id][ib_y] = -89.609596;
    bsInfo[id][ib_z] = 1003.546875;
    bsInfo[id][b_interior] = 18;
    bsInfo[id][b_id] = 3;
    SCM(playerid,COLOR_GELB,"[Business]: Du hast als Unternehm den 24/7 Shop gewählt.");
    SCM(playerid,COLOR_GELB,"[Business]: Setz bitte noch ein 'Marker' wo der Spieler eintreten soll.");
    SCM(playerid,COLOR_GELB,"[Business]: Benutze dafür bitte '/emarker'.");
    SetPVarInt(playerid,"Marker_Biz",1);
    }
    case 3:
    {
    //Noob Autohaus
    bsInfo[id][b_id] = 4;
    SCM(playerid,COLOR_GELB,"[Business]: Du hast als Unternehm das Noob Autohaus gewählt.");
    }
    case 4:
    {
    //Sport Autohaus
    bsInfo[id][b_id] = 5;
    SCM(playerid,COLOR_GELB,"[Business]: Du hast als Unternehm das Sportcar Autohaus gewählt.");
    }
    case 5:
    {
    //Bike Händler
    bsInfo[id][b_id] = 6;
    SCM(playerid,COLOR_GELB,"[Business]: Du hast als Unternehm den Bike Händler gewählt.");
    }
    case 6:
    {
    //Flugzeug shop
    bsInfo[id][b_id] = 7;
    SCM(playerid,COLOR_GELB,"[Business]: Du hast als Unternehm den Flugzeug Shop gewählt.");
    }
    case 7:
    {
    //Fahrschule
    bsInfo[id][b_id] = 8;
    SCM(playerid,COLOR_GELB,"[Business]: Du hast als Unternehm die Fahrschule gewählt.");
    }
    }
    GetPlayerPos(playerid,x,y,z);
    bsInfo[id][bx] = x;
    bsInfo[id][by] = y;
    bsInfo[id][bz] = z;
    strmid(bsInfo[id][b_besitzer], "",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    strmid(bsInfo[id][b_cobesitzer], "",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME);
    format(query,350,"INSERT INTO biz (`bx`, `b_y`, `bz`, `ib_x`, `ib_y`, `ib_z`, `b_interior`,`b_level`,`b_preis`,`b_kasse`) VALUES ('%f','%f','%f','%f','%f','%f','%i','%i','%i','%i')",
    x,y,z,bsInfo[id][ib_x],bsInfo[id][ib_y],bsInfo[id][ib_z],bsInfo[id][b_interior],
    GetPVarInt(playerid,"b_klevel"),GetPVarInt(playerid,"b_kpreis"),GetPVarInt(playerid,"b_kasse"));
    mysql_function_query(dbhandle,query,true,"CreateBiz","i",id);
    UpdateBiz(id);
    }
    else{}
    return 1;
    }


    Dann hab ich irgendwie noch ein Fehler.
    Sowie es aussieht will er immer nur das Biz mit der ID 1 befüllen.
    Im Dialog sagt er mir er hat 50/100 Produkte, aber wenn ich ihn 50 mehr geben möchte sagt er Das Business hat zuviel Produkte.


    if(dialogid == DIALOG_SELLPRODS)
    {
    if(response)
    {
    for(new i=0; i<sizeof(bsInfo); i++)
    {
    if(bsInfo[i][b_kasse] < bsInfo[i][b_pPrice]*strval(inputtext))return SCM(playerid,COLOR_GRAU,"Dieses Business hat nicht genügend Geld auf der Kasse.");
    if(bsInfo[i][b_prods] >= 100)return SCM(playerid,COLOR_GRAU,"Dieses Business hat genügend Produkte.");
    if(pInfo[playerid][pProdukte] < strval(inputtext))return SCM(playerid,COLOR_GRAU,"Soviel Produkte hast du nicht!");
    bsInfo[i][b_prods] +=strval(inputtext);
    pInfo[playerid][pProdukte] -=strval(inputtext);
    bsInfo[i][b_kasse] -=strval(inputtext)*bsInfo[i][b_pPrice];
    GivePlayerMoney(playerid, strval(inputtext)*bsInfo[i][b_pPrice]);
    new string[128];
    format(string,128,"Du hast dass Business beliefert. Gelieferte Produkte (%i). Summe erhalten: %i$",
    strval(inputtext),strval(inputtext)*bsInfo[i][b_pPrice]);
    SCM(playerid,COLOR_GELB,string);
    UpdateBiz(i);
    return 1;
    }
    }
    else{}
    return 1;
    }


    ocmd:sellprods(playerid,params[])
    {
    if(pInfo[playerid][pEingeloggt] == 0)return SendClientMessage(playerid,COLOR_GRAU,"Info: Du bist nicht Eingeloggt!");
    if(pInfo[playerid][pFraktion] <1)return SCM(playerid,COLOR_GRAU,"Du bist in keiner Fraktion!");
    if(pInfo[playerid][pFraktion] !=5)return SCM(playerid,COLOR_GRAU,"Du bist kein Trucker!");
    for(new i=0; i<sizeof(bsInfo); i++)
    {
    if(!bsInfo[i][db_id])continue;
    if(!IsPlayerInRangeOfPoint(playerid,3,bsInfo[i][bx],bsInfo[i][by],bsInfo[i][bz]))continue;
    new string[128];
    format(string,128,"Business hat %i/100 Produkte.\nProdukt preis vom Business %i$\nWieviel Produkte möchtest du ihn Liefern?",
    bsInfo[i][b_prods],bsInfo[i][b_pPrice]);
    ShowPlayerDialog(playerid,DIALOG_SELLPRODS,DIALOG_STYLE_INPUT,"Business - Produkte",string,"Verkaufen","Abbrechen");
    return 1;
    }
    return 1;
    }

  • Was hat der Code mit dem Fehler vom ersten Post zu tun?
    Das ist nicht der gleiche Code, und eine Schleife sehe ich da auch nicht.



    Um das andere Problem können wir uns später kümmern. Eins nach dem anderen, sonst kommt nichts dabei raus.

  • Was hat der Code mit dem Fehler vom ersten Post zu tun?
    Das ist nicht der gleiche Code, und eine Schleife sehe ich da auch nicht.



    Um das andere Problem können wir uns später kümmern. Eins nach dem anderen, sonst kommt nichts dabei raus.


    Sorry, war ein falscher code -.-
    Hier ist der richtige:


    if(dialogid == DIALOG_AHKAUFEN)
    {
    if(response)
    {
    for(new i= 0; i<sizeof(cInfo); i++)
    {
    for(new b=0; b<sizeof(bsInfo); b++)
    {
    new id = GetPVarInt(playerid,"BuyCarID");
    if(GetPlayerMoney(playerid) < ahCars[id][c_preis])
    {
    SCM(playerid,COLOR_GELB,"[Autohaus]: Du hast nicht genügend Geld.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    if(GetPlayerScore(playerid) < ahCars[id][c_level])
    {
    SCM(playerid,COLOR_GELB,"[Autohaus]: Dein Level reicht nicht aus um das Fahrzeug zu kaufen.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    if(ahCars[id][ah_id] == 0 && bsInfo[b][b_id] == 4)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 4");
    }
    if(ahCars[id][ah_id] == 1 && bsInfo[b][b_id] == 5)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 5");
    }
    if(ahCars[id][ah_id] == 2 && bsInfo[b][b_id] == 6)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 6");
    }
    if(ahCars[id][ah_id] == 3 && bsInfo[b][b_id] == 7)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 7");
    }
    CreatePlayerCar(playerid,ahCars[id][model],ahInfo[ahCars[id][ah_id]][s_x],ahInfo[ahCars[id][ah_id]][s_y],ahInfo[ahCars[id][ah_id]][s_z],ahInfo[ahCars[id][ah_id]][s_r],-1,-1,
    ahCars[id][c_steuern]);
    SCM(playerid,COLOR_GELB,"[Autohaus]: Herzlichen Glückwunsch, du hast dir soeben ein Fahrzeug gekauft.");
    SCM(playerid,COLOR_GELB,"[Autohaus]: Wir wünschen dir viel Spaß mit dem Fahrzeug, bitte fahren sie Vorsichtig.");
    RemovePlayerFromVehicle(playerid);
    UpdateBiz(b);
    SaveBiz(b);
    return 1;
    }
    }
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    }
    return 1;
    }

  • Debugge es mal so:

    Spoiler anzeigen
    if(dialogid == DIALOG_AHKAUFEN)
    {
    if(response)
    {
    for(new b=0; b<sizeof(bsInfo); b++)
    {
    new id = GetPVarInt(playerid,"BuyCarID");
    printf("b: %d / id: %d / ah_id: %d / b_id: %d", b, id, ahCars[id][ah_id], bsInfo[b][b_id]);
    if(GetPlayerMoney(playerid) < ahCars[id][c_preis])
    {
    SCM(playerid,COLOR_GELB,"[Autohaus]: Du hast nicht genügend Geld.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    if(GetPlayerScore(playerid) < ahCars[id][c_level])
    {
    SCM(playerid,COLOR_GELB,"[Autohaus]: Dein Level reicht nicht aus um das Fahrzeug zu kaufen.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    if(ahCars[id][ah_id] == 0 && bsInfo[b][b_id] == 4)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 4");
    }
    if(ahCars[id][ah_id] == 1 && bsInfo[b][b_id] == 5)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 5");
    }
    if(ahCars[id][ah_id] == 2 && bsInfo[b][b_id] == 6)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 6");
    }
    if(ahCars[id][ah_id] == 3 && bsInfo[b][b_id] == 7)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 7");
    }
    CreatePlayerCar(playerid,ahCars[id][model],ahInfo[ahCars[id][ah_id]][s_x],ahInfo[ahCars[id][ah_id]][s_y],ahInfo[ahCars[id][ah_id]][s_z],ahInfo[ahCars[id][ah_id]][s_r],-1,-1,
    ahCars[id][c_steuern]);
    SCM(playerid,COLOR_GELB,"[Autohaus]: Herzlichen Glückwunsch, du hast dir soeben ein Fahrzeug gekauft.");
    SCM(playerid,COLOR_GELB,"[Autohaus]: Wir wünschen dir viel Spaß mit dem Fahrzeug, bitte fahren sie Vorsichtig.");
    RemovePlayerFromVehicle(playerid);
    UpdateBiz(b);
    SaveBiz(b);
    return 1;
    }
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    }
    return 1;
    }


    Was steht im Log, wenn du das Auto kaufst?
    Bei welcher ID sollte es eigentlich gekauft werden?

  • So.
    Wie gesagt bei der ID 4 Funktioniert es einwandfrei.
    Das steht dort ja auch.
    Aber darunter alles Funktioniert garnicht ob bei ID 5 oder ID 6 geht nicht.

    Code
    [21:45:49] b: 0 / id: 2 / ah_id: 0  /  b_id: 4
    [21:45:49] DEBUG: Auto gekauft bei ID 4
    [21:46:02] b: 0 / id: 22 / ah_id: 2  /  b_id: 4


    So dann gibt es 2x b_id im Log, aber das erste ist nur richtig.
    Die zweite b_id muss eig 6 gewesen sein.

  • Ok, dann schreibe es mal so:

    Spoiler anzeigen
    if(dialogid == DIALOG_AHKAUFEN)
    {
    if(response)
    {
    for(new b=0; b<sizeof(bsInfo); b++)
    {
    new id = GetPVarInt(playerid,"BuyCarID");
    printf("b: %d / id: %d / ah_id: %d / b_id: %d", b, id, ahCars[id][ah_id], bsInfo[b][b_id]);
    if(GetPlayerMoney(playerid) < ahCars[id][c_preis])
    {
    SCM(playerid,COLOR_GELB,"[Autohaus]: Du hast nicht genügend Geld.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    else if(GetPlayerScore(playerid) < ahCars[id][c_level])
    {
    SCM(playerid,COLOR_GELB,"[Autohaus]: Dein Level reicht nicht aus um das Fahrzeug zu kaufen.");
    RemovePlayerFromVehicle(playerid);
    return 1;
    }
    else if(ahCars[id][ah_id] == 0 && bsInfo[b][b_id] == 4)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 4");
    }
    else if(ahCars[id][ah_id] == 1 && bsInfo[b][b_id] == 5)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 5");
    }
    else if(ahCars[id][ah_id] == 2 && bsInfo[b][b_id] == 6)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 6");
    }
    else if(ahCars[id][ah_id] == 3 && bsInfo[b][b_id] == 7)
    {
    GivePlayerMoney(playerid,-ahCars[id][c_preis]);
    bsInfo[b][b_kasse] +=ahCars[id][c_preis]/2;
    bsInfo[b][b_cokasse] +=ahCars[id][c_preis]/4;
    print("DEBUG: Auto gekauft bei ID 7");
    }
    else
    {
    continue;
    }
    CreatePlayerCar(playerid,ahCars[id][model],ahInfo[ahCars[id][ah_id]][s_x],ahInfo[ahCars[id][ah_id]][s_y],ahInfo[ahCars[id][ah_id]][s_z],ahInfo[ahCars[id][ah_id]][s_r],-1,-1,
    ahCars[id][c_steuern]);
    SCM(playerid,COLOR_GELB,"[Autohaus]: Herzlichen Glückwunsch, du hast dir soeben ein Fahrzeug gekauft.");
    SCM(playerid,COLOR_GELB,"[Autohaus]: Wir wünschen dir viel Spaß mit dem Fahrzeug, bitte fahren sie Vorsichtig.");
    RemovePlayerFromVehicle(playerid);
    UpdateBiz(b);
    SaveBiz(b);
    return 1;
    }
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    }
    return 1;
    }


    Klappt es dann?
    Wenn nicht, was sagt der Log?

  • Teste es mal so:
    ocmd:sellprods(playerid,params[])
    {
    if(pInfo[playerid][pEingeloggt] == 0)return SendClientMessage(playerid,COLOR_GRAU,"Info: Du bist nicht Eingeloggt!");
    if(pInfo[playerid][pFraktion] <1)return SCM(playerid,COLOR_GRAU,"Du bist in keiner Fraktion!");
    if(pInfo[playerid][pFraktion] !=5)return SCM(playerid,COLOR_GRAU,"Du bist kein Trucker!");
    for(new i=0; i<sizeof(bsInfo); i++)
    {
    if(!bsInfo[i][db_id])continue;
    if(!IsPlayerInRangeOfPoint(playerid,3,bsInfo[i][bx],bsInfo[i][by],bsInfo[i][bz]))continue;
    new string[128];
    format(string,128,"Business hat %i/100 Produkte.\nProdukt preis vom Business %i$\nWieviel Produkte möchtest du ihn Liefern?",
    bsInfo[i][b_prods],bsInfo[i][b_pPrice]);
    ShowPlayerDialog(playerid,DIALOG_SELLPRODS,DIALOG_STYLE_INPUT,"Business - Produkte",string,"Verkaufen","Abbrechen");
    SetPVarInt(playerid, "tmp_id", i);
    return 1;
    }
    return 1;
    }


    if(dialogid == DIALOG_SELLPRODS)
    {
    if(response)
    {
    new i = GetPVarInt(playerid, "tmp_id");
    if(bsInfo[i][b_kasse] < bsInfo[i][b_pPrice]*strval(inputtext))return SCM(playerid,COLOR_GRAU,"Dieses Business hat nicht genügend Geld auf der Kasse.");
    if(bsInfo[i][b_prods] >= 100)return SCM(playerid,COLOR_GRAU,"Dieses Business hat genügend Produkte.");
    if(bsInfo[i][b_prods]+strval(inputtext) > 100)return SCM(playerid,COLOR_GRAU,"Es gehen nicht mehr als 100 insgesamt.");
    if(pInfo[playerid][pProdukte] < strval(inputtext))return SCM(playerid,COLOR_GRAU,"Soviel Produkte hast du nicht!");
    bsInfo[i][b_prods] +=strval(inputtext);
    pInfo[playerid][pProdukte] -=strval(inputtext);
    bsInfo[i][b_kasse] -=strval(inputtext)*bsInfo[i][b_pPrice];
    GivePlayerMoney(playerid, strval(inputtext)*bsInfo[i][b_pPrice]);
    new string[128];
    format(string,128,"Du hast dass Business beliefert. Gelieferte Produkte (%i). Summe erhalten: %i$",
    strval(inputtext),strval(inputtext)*bsInfo[i][b_pPrice]);
    SCM(playerid,COLOR_GELB,string);
    UpdateBiz(i);
    return 1;
    }
    return 1;
    }


    Du scheinst ein Freund von Schleifen zu sein, nur leider benutzt du sie zu oft. ;)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Kein Problem. :)


    Ja, klar, Schleifen machen in deinen Fällen schon Sinn, aber du hast beides mal eine doppelte Schleife verwendet, einmal verschachtelt und einmal hintereinander. Da vielleicht etwas aufpassen, für was die Schleife steht.
    Ansonsten passt ja das meiste, weiter so!

  • Jeffry:
    Eine weitere frage, ich weiß schon wieder nicht weiter.
    Seit du dein letzten beitrag hier geschrieben hast sitze ich hier dran.
    Wenn ich ein Biz erstelle kriegt jedes Biz eine biz_id zugewiesen also diese b_id,
    so und zb der Bürger Shot kriegt "immer" die 1.
    Aber ich will es so machen, dass ich mehrere Bürger shots als Biz haben kann und wenn jemand in ein Bürger Shot essen geht dass nicht jedes
    biz was die b_id '1' hat, die kasse addiert wird.
    Nur da wo der Spieler essen geht.


    if(dialogid == DIALOG_BFOOT)
    {
    if(response)
    {
    for(new i=0; i<sizeof(bsInfo); i++)
    {
    new id = i;
    new Float:health;
    GetPlayerHealth(playerid,health);
    if(health >100)return SCM(playerid,COLOR_GRAU,"Dein Leben ist bereits voll.");
    if(bsInfo[id][b_id] != 1)continue;
    if(bsInfo[id][b_prods] <0)return SCM(playerid,COLOR_GRAU,"Das Business hat nicht genügend Produkte.");
    switch(listitem)
    {
    case 0:{health +=5;SetPlayerHealth(playerid,health);GivePlayerMoney(playerid,-50);bsInfo[id][b_kasse] +=50;}
    case 1:{health +=10;SetPlayerHealth(playerid,health);GivePlayerMoney(playerid,-100);bsInfo[id][b_kasse]+=100;}
    case 2:{health +=8;SetPlayerHealth(playerid,health);GivePlayerMoney(playerid,-75);bsInfo[id][b_kasse]+=75;}
    case 3:{health +=35;SetPlayerHealth(playerid,health);GivePlayerMoney(playerid,-500);bsInfo[id][b_kasse]+=500;}
    case 4:{health +=50;SetPlayerHealth(playerid,health);GivePlayerMoney(playerid,-1000);bsInfo[id][b_kasse]+=1000;}
    }
    SCM(playerid,COLOR_GELB,"[Bürger Shot]: Guten appetit!");
    SaveBiz(id);
    UpdateBiz(id);
    return 1;
    }
    }
    else{}
    return 1;
    }

  • Ne da ist diesmal keine Schleife vorhanden.
    ocmd:essen(playerid,params[])
    {
    if(pInfo[playerid][pEingeloggt] == 0)return SCM(playerid,COLOR_GRAU,"Info: Du bist nicht Eingeloggt!");
    if(!IsPlayerInRangeOfPoint(playerid,2,376.5327,-68.1133,1001.5151))return 1;
    new string[250];
    format(string,250,"\
    Bürger (+5 HP) - 50$\n\
    Pommes (+10 HP) - 100$\n\
    Cola (+8 HP) - 75$\n\
    Bürger+Cola+Pommes (+35 HP) - 500$\n\
    Bürger+Cola+Pommes+Nuggets (+50 HP) - 1.000$");
    ShowPlayerDialog(playerid,DIALOG_BFOOT,DIALOG_STYLE_LIST,"Bürger Shot",string,"Kaufen","Abbrechen");
    return 1;
    }

  • Hm, das macht irgendwie keinen Sinn was du da machst, allerdings weiß ich auch nicht, was du machen willst.
    Also, du hast einen /essen Befehl, der geht nur an der einen Position die du angegeben hast. Ok, soweit klar.
    Dann zeigst du dem Spieler den Dialog, und wenn er da was auswählt machst du einen Schleife durch alle deine bsInfo's und schaust ob es existiert und noch Produkte hat. Aber hier vestehe ich das Prinzip nicht, das du vor hast.
    Was willst du denn machen, was soll passieren?


    An dieser einen Position (/essen) kann es ja nur ein Bussiness geben, oder? Soll das über die Schleife gefunden werden?
    Wenn ja, dann fehlt in der Schleife noch die Abfrage, ob der Spieler in der nähe der Bussiness ID ist (i).
    Wenn nein, wie soll es dann sein?

  • Ja gut, aber wenn du zwei Business hast, die die gleiche Position haben, wie willst du dann herausfinden, an welchem Business er ist?
    Welches ist das Unterschiedungskriterium?


    Weißt du was ich meine?
    Wenn ich zwei Häuser an der gleichen Position habe, dann kann ich nicht mit der Position prüfen an welchem ich bin, da ich an beiden bin.

  • Sind die jeweiligen Business außerhalb des Interiors an unterschiedlichen Orten, sprich einmal ein BurgerShot in LV, dann einer in SF, etc, und nutzen eben nur das gleiche Interior?
    Betrittst du das Interior über die gelben Pfeile von GTA, oder hast du eigene Pickups gemacht?

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen