Biz-Probleme - Enter/Exit

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
  • Hey,
    Ich habe ein Problem, (damals Hilfe von SnoX bekommen hierbei)


    Also so sieht es bei normalen Objekten aus, wenn ich ein Interior betrete.


    So sieht es beim Biz aus

    Irgendwie komme ich nicht in das Interior rein, ich drücke "Enter" nichts passiert. Bin gerade dabei alle Biz Geschäfte aufzustellen usw.
    Ich hoffe jemand kann mir da helfen


    Aufgrund meines Ausbildungsplatzes war ich inaktiv ab Weihnachten bin ich wieder richtig aktiv :)

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • wie kommst du auf
    bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ]


    das hast du doch nirgend du hast das:
    Float:IX,Float:IY,Float:IZ,// Exit Position
    und
    Float:EX,Float:EY,Float:EZ,// Enter Position

  • Doch habe ich sogar, vergessen es anzugeben.


    bInfo[bX],bInfo[b][bY],bInfo[b][bZ]


    Da wird der Textlabel erstellt und das Icon. Sozusagen sind die Werte in der Datenbank.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Ja wird gesetzt, ich habe neue Informationen.


    Das zeigt er mir an, wenn ich versuche, in den 24/7 rein zu gehen.
    http://prntscr.com/lvdegu


    Wenn ich rein gehen will passiert das.



    (

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Das ist doch dafür, wenn du raus gehst siehe an Interior und SetVirtualWorld ?

    Hey,


    Das ist doch für das reingehen oder?


    Dann alss dochmal printen,

    for(new b;b<MAX_BIZ;b++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5.0,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ]))
    {
    if(bInfo[b][biztype]==3)return SendClientMessage(playerid,-1,"Diesen BizTyp kannst du nicht betreten!");
    new bi=bInfo[b][bInterior];
    if(bi==0) return SendClientMessage(playerid,-1,"Das Biz hat kein Interior");
    SetPlayerPos(playerid,BizInts[bi][IX],BizInts[bi][IY],BizInts[bi][IZ]);
    SetPlayerInterior(playerid,BizInts[bi][Interior]);
    SetPlayerVirtualWorld(playerid,BizInts[bi][Welt]);
    SetPVarInt(playerid,"InBiz",b);


    new string[250];
    format(string,sizeof(string),"Binfo Interior: %d | BizInfo Y: %f | BizInfo Interior: %d",bi,BizInts[bi][IY],BizInts[bi][Interior])
    println(string);
    return 1;
    }
    }
    }

    dann zeig malw as erprintet

  • Hab es mir printen lassen, es kommt nicht mal zum printen, dass heißt irgendwas muss mit dem PVar nicht stimmen oder?



    Code: OnPlayerConnect
    SetPVarInt(playerid,"InBiz",-1);

    http://prntscr.com/lvovh7 <- Das kommt in die Konsole




    im Public ist noch das selbe für Öffentliche Gebäude aber daran liegt das bestimmt nicht.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • http://prntscr.com/lw2xbz
    Es erscheint immer noch das selbe in der Konsole, funktioniert immer noch nicht. Aber woran kann es liegen was bedeuten die Fehler überhaupt?


    Das Komma kann man sogar da lassen, es würde trotzdem funktionieren. Irgendwie ist dem Compiler das egal

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • MAX_BIZ stimmt nicht mit sizeof(BizInts) überein.


    Lösche am besten MAX_BIZ und verwende überall nur sizeof(BizInts) :)


    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

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

  • Wenigstens ist das Problem jetzt gefunden, ich brauche aber MAX_BIZ für die Sachen z.B
    Was soll ich jetzt machen ich kann da doch nicht sizeof(BizInts) hinschreiben.




    Code
    static const BizInts[][bizinteriors]={
    {"Dummy",0,0,0,0.0,0.0,0.0},
    {"24/7",17,1,1,/*InteriorPos*/-25.884498,-185.868988,1003.546873}
    };

    Ich habe extra die 0 nie besetzt weil es ja wie du es schon sagst zu Komplikationen führt.

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Was soll ich jetzt machen ich kann da doch nicht sizeof(BizInts) hinschreiben.

    Doooch kannst du, du schaffst das :)


    Vertrau mir <3


    //Edit: bzw verwende mal überall sizeof(bInfo) Denn eigentlich greifst du ja überall darauf nur zu :D Wieso hast du so viele Variablen?!?! Eigentlich reicht eine :D


    Ich habe extra die 0 nie besetzt weil es ja wie du es schon sagst zu Komplikationen führt.

    Doch kannst du, wenn du überall das sizeof verwendest, kommt es zu keinen Komplikationen.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Code
    new bInfo[MAX_BIZ][bizinfo];

    Wie soll das bleiben ist ja MAX_BIZ drin.


    http://prntscr.com/lw4o9n
    Komme immer noch nicht in das Interior rein.



    zu


    Also würde das so auch funktionieren?

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Okay, der Erste Beitrag mit den Buildings hat mich super verwirrt...das hat ja nichts mit dem zu tun, was du gerade machst. Sowas kannst du also weglassen, das verwirrt nur.


    In meinen Augen, macht es überhaupt keinen Sinn, die Biz Positionen dynamisch in MySQL zu speichern, wohingegen du die Interiors zu den Bizzes statisch lädst.


    Was macht das für einen Sinn?


    Wäre es nicht sinniger, das alles dynamisch laden zu lassen?


    Sonst kannst du direkt auch die Bizzes statisch laden lassen xD



    Wenn du keinen Dummy dann nutzt:

    if(bInfo[bizid][db_bid]==0)continue;

    Diese Zeile macht dann keinen Sinn mehr.



    PS: Strings deklariert man immer außerhalb von Schleifen.



    Der Fehler entsteht offensichtlich, weil du mehr dynamische Bizzes hast, als statische Interiors angegeben.


    Das ist dein Fehler. Also machst du beides dynamisch, löst das quasi all deine Probleme und macht dein System um einiges sauberer.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Ich bin jetzt durcheinander.


    Soll jetzt alles was MAX_BIZ] hatte wieder rückgängig machen oder ist sizeof(bInfo) doch richtig.


    Ich habe bewusst die Interior XYZ Pos nicht in der Datenbank gespeichert damit ich einfacher alles ändern kann weil es am Anfang bequemer ist.


    Was soll ich jetzt genau tun um es dynamisch zu machen?
    Was soll weg fallen, welche Variable soll dazu kommen usw.



    Code
    #define MAX_BIZ 7




    Code
    stock IsAtBiz(playerid)
    {
        for(new b;b<sizeof(bInfo);b++)
        {
            if(!IsPlayerInRangeOfPoint(playerid,5.0,bInfo[b][bX],bInfo[b][bY],bInfo[b][bZ])) continue;
            return b;
    	}
     	return 0;
    }

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Schreibs mal so:


    Das zwingt dich, dass jedes Biz, jetzt einen Interior benötigt, den du angeben musst, wenn dir das "anfangs" lieber ist..wieso auch immer :D


    Und wie gesagt, lösche MAX_BIZ. (Vorerst. Wenn du dynamische Interiors verwendest, kannst es ja wieder einführen. Wobei es nicht nötig ist, da du ja sizeof überall verwendest und sich das dadurch dynamisch anpasst, wenn du die größe von dem Array ändert).


    Jetzt ist es auch egal, ob du sizeof(bInfo) oder sizeof(BizInts) verwendest, da die den gleichen Wert haben :)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Habe ich das richtig verstanden das ich den Quellcode so einfach einfügen soll weiter unten zu dem OnPlayerKeyChange davor so?
    Weil ich habe den new jetzt geändert und da steht das BizInts nicht definiert wurde.


    Also, den Quellcode komplett so wie er ist nach unten setzten oder einfach nur den bInfo new einfügen da wo der alte war?


    Max_BIZ wird gelöscht :D

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • Wieder selber Fehler in der Konsole wenn ich rein gehen will. wie muss ich den jetzt angeben? also ich habe 8 Biz soll ich jetzt noch 6 Dummys hinterherschicken oder wie
    muss ich das verstehen? :D

    wm2c6p1.png
    Ich weiß, dass ich weiß, dass ich nichts weiß.

  • also ich habe 8 Biz soll ich jetzt noch 6 Dummys hinterherschicken oder wie
    muss ich das verstehen?

    Richtig, so dass du gleichviele Ints, wie Bizzes hast.


    Sonst wie gesagt, bau es dynamisch auf, dann kannste einfach prüfen, ob das Biz schon einen Interior hat oder nicht.

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

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