Gebäude rein/raus gehen

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 liebe com ich habe gerade versucht meine gebäude zugänglich zu machen aber es Funktioniert nicht rein komme ich aber raus nicht weil drinnen kein Pickup ist 8| kann mir jemand helfen ?


    Oben Im Script
    enum buildingsEnum{
    Float:b_x,
    Float:b_y,
    Float:b_z,
    Float:b_ix,
    Float:b_iy,
    Float:b_iz,
    b_interior


    new bInfo[][buildingsEnum] = {
    {1209.1383,-1752.1898,13.5935,387.8430,173.8047,1008.3828,3}
    };
    }


    unter OnGameModeInit


    for(new i=0; i<sizeof(bInfo); i++)
    {
    CreatePickup(1559,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
    }


    unter OnPlayerPicUpPickup(playerid,pickupid)


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    for(new i=0; i<sizeof(bInfo); i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue;
    SetPlayerPos(playerid,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]);
    SetPlayerInterior(playerid,bInfo[i][b_interior]);
    SetPlayerVirtualWorld(playerid,i);
    return 1;
    }

    for(new i=0; i<sizeof(bInfo); i++)
    {
    if(GetPlayerVirtualWorld(playerid)!=i)continue;
    if(!IsPlayerInRangeOfPoint(playerid,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue;
    SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    return 1;
    }

    return 1;
    }

  • Ändere mal


    if(!IsPlayerInRangeOfPoint(playerid,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue;


    zu


    if(!IsPlayerInRangeOfPoint(playerid,1,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]))continue;


    und probier mal


    /Edit: Also in der 2. Schleife

  • Mach es doch einfach mit einer Schleife..
    public OnPlayerPickUpPickup(playerid, pickupid){
    for(new i=0; i<sizeof(bInfo); i++){
    if(IsPlayerInRangeOfPoint(playerid,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z])){
    SetPlayerPos(playerid,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]);
    SetPlayerInterior(playerid,bInfo[i][b_interior]);
    return SetPlayerVirtualWorld(playerid,i);
    }
    else if(IsPlayerInRangeOfPoint(playerid,1,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]) && GetPlayerVirtualWorld(playerid) == i){
    SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
    SetPlayerInterior(playerid,0);
    return SetPlayerVirtualWorld(playerid,0);
    }
    continue;
    }
    return 1;
    }

  • So habe ich das jetze aber ich wenn ich rein gehe spawn ich drinne alles ok aber wenn ich in den Pickup gehe um wd nach draußen zu kommen spawne ich wieder in den Pickup und geh direkt wieder nach drinne


    das soll der spawn sein wenn ich raus komme wo füge ich das ein ? kann mir das einer machen habe schon alles ausprobiert ( bitte den ganzen code dann )
    AddPlayerClass(26,1207.4749,-1750.8892,13.5931,54.3547,0,0,0,0,0,0); //



    //Ganz oben im script
    enum buildingsEnum{
    Float:b_x,
    Float:b_y,
    Float:b_z,
    Float:b_ix,
    Float:b_iy,
    Float:b_iz,
    b_interior
    }


    new sInfo[MAX_PLAYERS][playerInfo];
    new bInfo[][buildingsEnum] = {
    {1209.1383,-1752.1898,13.5935,387.8430,173.8047,1008.3828,3},
    {390.3139,173.7579,1008.3828,1207.4749,-1750.8892,13.5931,0}
    };


    //OnGameModeInit
    for(new i=0; i<sizeof(bInfo); i++)
    {
    CreatePickup(1559,1,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
    }



    //OnPlayerPickUpPickup(playerid, pickupid)
    {
    for(new i=0; i<sizeof(bInfo); i++)
    {
    if(GetPlayerVirtualWorld(playerid)!=i)continue;
    if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]))continue;
    SetPlayerPos(playerid,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]);
    SetPlayerInterior(playerid,0);
    SetPlayerVirtualWorld(playerid,0);
    return 1;
    }


    for(new i=0; i<sizeof(bInfo); i++)
    {
    if(!IsPlayerInRangeOfPoint(playerid,2,bInfo[i][b_x],bInfo[i][b_y],bInfo[i][b_z]))continue;
    SetPlayerPos(playerid,bInfo[i][b_ix],bInfo[i][b_iy],bInfo[i][b_iz]);
    SetPlayerInterior(playerid,bInfo[i][b_interior]);
    SetPlayerVirtualWorld(playerid,i);
    return 1;
    }
    return 1;
    }