Problem mit /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 mit /exit. Wenn ich beispielsweise ein Biz betrete mit /enter, und danach wieder /exit eingebe, bin ich wieder am Anfangspunkte (normal). Wenn nun aber ein neuer Spieler dies genauso macht, dann ist er an den Koordinaten 0 0 0, also im Mittelpunkt der Map.
    Hier der Code, falls ihr den braucht.^^
    ocmd:exit(playerid,params[])
    {
    if(inHaus[playerid] != -1)
    {
    new haus = inHaus[playerid];
    SetPlayerPos(playerid,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,Color_Green,"Du hast das Haus verlassen!");
    inHaus[playerid] = -1;
    }
    else if(inBiz[playerid] != -1) {
    new biz = inBiz[playerid];
    SetPlayerPos(playerid,BizInfo[biz][biz_x],BizInfo[biz][biz_y],BizInfo[biz][biz_z]);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,Color_Green,"Du hast das Biz verlassen!");
    inBiz[playerid] = -1;
    }
    return 1;
    }


    Ich hoffe, dass ihr mir weiterhelfen könnt :)
    Edit: Wenn neue Spieler ein Biz betreten, dann wieder verlassen, bekommen sie die Meldung "Du hast das Haus verlassen" und spawnen beim Bauernhof. Beim weiteren /Exit bekommen sie die Meldung "Du hast das Biz verlassen!" und spawnen am Anfangspunkt. Wieso geht das nicht richtig?
    Habe schon alles versucht...


    Mfg Maksimo007 :) :)

    Einmal editiert, zuletzt von Maksimo007 ()


  • ocmd:exit(playerid,params[])
    {
    if(inHaus[playerid] != -1)
    {
    new haus = inHaus[playerid];
    SetPlayerPos(playerid,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,Color_Green,"Du hast das Haus verlassen!");
    inHaus[playerid] = -0;
    }
    else if(inBiz[playerid] != -1) {
    new biz = inBiz[playerid];
    SetPlayerPos(playerid,BizInfo[biz][biz_x],BizInfo[biz][biz_y],BizInfo[biz][biz_z]);
    SetPlayerInterior(playerid,0);
    SendClientMessage(playerid,Color_Green,"Du hast das Biz verlassen!");
    inBiz[playerid] = -0;
    }
    return 1;
    }

  • Warum nicht? Habe die Häuser mit /createhaus erstellt. Es legt eine Datei mit den Koordinaten an. Hier die verschiedenen Codes:
    enum innenraum_info
    {
    Float:innen_x,
    Float:innen_y,
    Float:innen_z,
    innen_interior
    }
    new HausInnenraum[][innenraum_info] =
    {
    {2454.717041,-1700.871582,1013.5151,2}
    };


    new inHaus[MAX_PLAYERS] = -1;
    new inBiz[MAX_PLAYERS] = -1;


    enum haus_info
    {
    Float:haus_x,
    Float:haus_y,
    Float:haus_z,
    haus_besitzer[32],
    haus_preis,
    haus_pickup,
    haus_innenraum,
    haus_id
    }
    new HausInfo[MAX_HAUS][haus_info];


    Und hier das mit dem Biz:
    enum biz_info
    {
    Float:biz_x,
    Float:biz_y,
    Float:biz_z,
    biz_name[32],
    biz_besitzer[32],
    biz_preis,
    Text3D:biz_3DText,
    biz_innenraum,
    biz_id
    }
    new BizInfo[MAX_BIZ][biz_info];
    Enter-Befehl:
    ocmd:enter(playerid,params[])
    {
    for(new haus=1;haus<MAX_HAUS;haus++)
    {
    for(new biz=1;biz<MAX_BIZ;biz++)
    {
    if(IsPlayerInRangeOfPoint(playerid,5,HausInfo[haus][haus_x],HausInfo[haus][haus_y],HausInfo[haus][haus_z]))
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof name);
    if(strcmp(HausInfo[haus][haus_besitzer],name,false) == 0)
    {
    new innenraum = HausInfo[haus][haus_innenraum];
    SetPlayerPos(playerid,HausInnenraum[innenraum][innen_x],HausInnenraum[innenraum][innen_y],HausInnenraum[innenraum][innen_z]);
    SetPlayerInterior(playerid,HausInnenraum[innenraum][innen_interior]);
    inHaus[playerid] = haus;
    }
    else SendClientMessage(playerid,Color_DarkRed,"Du bist nicht der Besitzer!");
    break;
    }
    else if(IsPlayerInRangeOfPoint(playerid,5,BizInfo[biz][biz_x],BizInfo[biz][biz_y],BizInfo[biz][biz_z]))
    {
    if(strcmp(BizInfo[biz][biz_name],"24/7",false)==0)
    {
    SetPlayerPos(playerid,-25.884498,-185.868988,1003.546875);
    SetPlayerInterior(playerid,17);
    inBiz[playerid] = biz;
    }
    else if(strcmp(BizInfo[biz][biz_name],"Pizza-Restaurant",false)==0)
    {
    SetPlayerPos(playerid,373.825653,-117.270904,1001.499511);
    SetPlayerInterior(playerid,5);
    inBiz[playerid] = biz; } //Hier würde es mit (strcmp...Restaurant und so weitergehen)
    }
    }
    }
    return 1;
    }
    //Edit: Es funktioniert ja eig. alles, bloß halt nur bei mir xD, bei anderen Spielern nicht. Falls ihr noch paar andere Codes braucht, poste ich die auch gerne.^^


    Mfg Maksimo007 :)

    5 Mal editiert, zuletzt von Maksimo007 ()