Door system not working
#1

Using this tutorial: https://sampforum.blast.hk/showthread.php?tid=414001

One of the first things is when I do /door, it automatically creates one without me having to put in the ID and the type. Another thing is when you create the exterior and the interior on the same ID and then go to '/enter' into the exterior, instead of sending you to the interior point that you've created, it sends you to coords 0,0,0.

Also when you create an exterior and then go to create and interior, instead of saying, "Created doors interior", it says, "Edited door's interior".

pawn Код:
enum Doors
{
    Pickup,
    Float:X,
    Float:Y,
    Float:Z,
    World,
    Interior,
    Float:iX,
    Float:iY,
    Float:iZ,
    iWorld,
    iInterior,
    Active

}
pawn Код:
CMD:door(playerid, params[]){
    if(pStats[playerid][Admin] == 5){
        new Float:Pos[3],id,type[32];
        if(sscanf(params,"is[32]",id,type)) return SendClientMessage(playerid,COLOR_GRAY,"USAGE: /door [ID] [type]");
        if(strcmp(type,"exterior",true)==0){
            if(hDoors[id][Active] == 0) {
                GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
                hDoors[id][X] = Pos[0];
                hDoors[id][Y] = Pos[1];
                hDoors[id][Z] = Pos[2];
                hDoors[id][World] = GetPlayerVirtualWorld(playerid);
                hDoors[id][Interior] = GetPlayerInterior(playerid);
                hDoors[id][Active] = 1;
                hDoors[id][Pickup] = CreateDynamicPickup(1239,1,hDoors[id][X],hDoors[id][Y],hDoors[id][Z],GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
                SendClientMessage(playerid,COLOR_RED,"Created door's exterior!");
            }
            else{
                DestroyDynamicPickup(hDoors[id][Pickup]);
                hDoors[id][X] = Pos[0];
                hDoors[id][Y] = Pos[1];
                hDoors[id][Z] = Pos[2];
                hDoors[id][World] = GetPlayerVirtualWorld(playerid);
                hDoors[id][Interior] = GetPlayerInterior(playerid);
                hDoors[id][Pickup] = CreateDynamicPickup(1239,1,hDoors[id][X],hDoors[id][Y],hDoors[id][Z],GetPlayerVirtualWorld(playerid),GetPlayerInterior(playerid));
                SendClientMessage(playerid,COLOR_RED,"Edited door's exterior!");
            }
        }
        else if(strcmp(type,"interior",true)==0){
            if(hDoors[id][Active] == 0){
                hDoors[id][iX] = Pos[0];
                hDoors[id][iY] = Pos[1];
                hDoors[id][iZ] = Pos[2];
                hDoors[id][iWorld] = GetPlayerVirtualWorld(playerid);
                hDoors[id][iInterior] = GetPlayerInterior(playerid);
                SendClientMessage(playerid,COLOR_RED,"Created door's interior!");
            }
            else{
                hDoors[id][iX] = Pos[0];
                hDoors[id][iY] = Pos[1];
                hDoors[id][iZ] = Pos[2];
                hDoors[id][iWorld] = GetPlayerVirtualWorld(playerid);
                hDoors[id][iInterior] = GetPlayerInterior(playerid);
                SendClientMessage(playerid,COLOR_RED,"Edited door's interior!");
            }
        }
        else if(strcmp(type,"delete",true)==0){
            hDoors[id][X] = 0;
            hDoors[id][Y] = 0;
            hDoors[id][Z] = 0;
            hDoors[id][iX] = 0;
            hDoors[id][iY] = 0;
            hDoors[id][iZ] = 0;
            DestroyDynamicPickup(hDoors[id][Pickup]);
            SendClientMessage(playerid,COLOR_RED,"Deleted door!");
        }
    }
    return 1;
}

CMD:enter(playerid, params[]){
    if(!IsPlayerInAnyVehicle(playerid)){
        for(new i = 0; i < sizeof(hDoors); i++) {
            if(IsPlayerInRangeOfPoint(playerid,1,hDoors[i][X],hDoors[i][Y],hDoors[i][Z])){
                SetPlayerPos(playerid,hDoors[i][iX],hDoors[i][iY],hDoors[i][iZ]);
                SetPlayerVirtualWorld(playerid,hDoors[i][iWorld]);
                SetPlayerInterior(playerid,hDoors[i][iInterior]);
            }
        }
    }
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)