SA-MP Forums Archive
[Help]Add command /garageforhouse - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: [Help]Add command /garageforhouse (/showthread.php?tid=467986)



[Help]Add command /garageforhouse - jose005 - 05.10.2013

i need a system for add garages for houses
i have 2 commands, /createhouse and /creategarage and i need /garageforhouse for create garage for house id

ejemplo /garageforhouse [idhouse] [garagetype]

my commands:
Garages:
pawn Код:
if(strcmp(cmd, "/creategarage", true) == 0)
    {
        if(PlayerInfo[playerid][pAdmin] >= 1337)
        {
            tmp = strtok(cmdtext, idx);
            if (!strlen(tmp)) return SyntaxMessage(playerid, "/creategarage [price] [size]");
            new price = strval(tmp);
            tmp = strtok(cmdtext, idx);
            if (!strlen(tmp)) return SyntaxMessage(playerid, "/creategarage [price] [size]");
            new size = strval(tmp);
            if (size < 1 || size > 3) return SendClientMessage(playerid, GREY, "Invalid size.");
            new location[32];
            new Float:x, Float:y, Float:z;
            new id = GetAvailableID(TYPE_GARAGE);
            if (id == -1) return SendClientMessage(playerid, GREY, "    Garages are at their maximum. Cannot continue.");
            GarageIDTaken[id] = 1;
            GetPlayerPos(playerid, x, y, z);
            GarageInfo[id][GarageEnterX] = x;
            GarageInfo[id][GarageEnterY] = y;
            GarageInfo[id][GarageEnterZ] = z;
            GarageInfo[id][GaragePickup] = CreateDynamicPickup(1239, 23, x, y, z);
            GarageInfo[id][GarageOwned] = 0;
            GarageInfo[id][GaragePrice] = price;
            GarageInfo[id][GarageVirtual] = id;
            GarageInfo[id][GarageInsideX] = 0;
            GarageInfo[id][GarageInsideY] = 0;
            GarageInfo[id][GarageInsideZ] = 0;
            GarageInfo[id][GarageInsideA] = 0;
            GarageInfo[id][GarageExitX] = 0;
            GarageInfo[id][GarageExitY] = 0;
            GarageInfo[id][GarageExitZ] = 0;
            GarageInfo[id][GarageExitA] = 0;
            strmid(GarageInfo[id][GarageOwner], "The State", 0, strlen("The State"), 255);
            GarageInfo[id][GarageSize] = 0;
            Get2DZone(location, MAX_ZONE_NAME,  x, y, z);
            format(string, sizeof(string), "Garage Owner: {FFFFFF} The State\n"GARAGE_HEX"Garage Size: {FFFFFF}None\n"GARAGE_HEX"Garage Location: {FFFFFF}%s", location);
            GarageInfo[id][GarageLabel] = CreateStreamed3DTextLabel(string, GARAGE_COLOR, x, y, z, 10.0, 0);
            SendClientMessage(playerid, LIGHTBLUE, "Garage created, now use /editgarage [id] to edit it.");
            format(string, sizeof(string), "The garage ID is: %d (you can use this id to /editgarage with it).", id);
            SendClientMessage(playerid, LIGHTBLUE, string);
            SetGarageSize(id, size);
            SaveGarages();
            garages++;
            return 1;
        }
        else
        {
            SendClientMessage(playerid, GREY, "    You are not authorized to use that command.");
        }
        return 1;
    }
Houses:
pawn Код:
if(strcmp(cmd, "/createhouse", true) == 0)
    {
        if(PlayerInfo[playerid][pAdmin] >= 1337)
        {
            tmp = strtok(cmdtext, idx);
            if (!strlen(tmp)) return SyntaxMessage(playerid, "/createhouse [price] [type]");
            new price = strval(tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SyntaxMessage(playerid, "/createhouse [price] [type]");
                SendClientMessage(playerid, WHITE, "Available names: bedroom1, bedroom2, motelroom, smallhouse1, smallhouse2, woodhouse");
                SendClientMessage(playerid, WHITE, "Available names: medhouse1, medhouse2, medhouse3, richhouse1, richhouse2, richhouse3");
                SendClientMessage(playerid, WHITE, "Available names: richhouse4, richouse5, richhouse6, dungeon, office, stripclub");
                SendClientMessage(playerid, WHITE, "Available names: brothel, factory, maddogs");
                return 1;
            }
            new id = GetAvailableID(TYPE_HOUSE), location[MAX_ZONE_NAME];
            if (id == -1) return SendClientMessage(playerid, GREY, "    Houses are at their maximum. Cannot continue.");
            new Float:x, Float:y, Float:z;
            GetPlayerPos(playerid, x, y, z);
            if (!InvalidHouseInterior(tmp)) return SendClientMessage(playerid, GREY, "Invalid house type.");
            HouseIDTaken[id] = 1;
            HouseInfo[id][HouseWait] = 0;
            HouseInfo[id][HouseOwned] = 0;
            HouseInfo[id][HouseVirtual] = id;
            HouseInfo[id][HouseEnterX] = x;
            HouseInfo[id][HouseEnterY] = y;
            HouseInfo[id][HouseEnterZ] = z;
            HouseInfo[id][HouseInsideX] = 244.5000;
            HouseInfo[id][HouseInsideY] = 305.0000;
            HouseInfo[id][HouseInsideZ] = 999.1484;
            HouseInfo[id][HouseInsideA] = 270.0000;
            HouseInfo[id][HouseGun1] = 0;
            HouseInfo[id][HouseGun2] = 0;
            HouseInfo[id][HouseGun3] = 0;
            HouseInfo[id][HouseGun4] = 0;
            HouseInfo[id][HouseCash] = 0;
            HouseInfo[id][HouseMats] = 0;
            HouseInfo[id][HouseWeed] = 0;
            HouseInfo[id][HouseMeth] = 0;
            HouseInfo[id][HouseHeroin] = 0;
            HouseInfo[id][HouseCocaine] = 0;
            HouseInfo[id][HousePrice] = price;
            HouseInfo[id][HouseInterior] = 1;
            HouseInfo[id][HouseType] = 1;
            HouseInfo[id][HouseExitVW] = GetPlayerVirtualWorld(playerid);
            HouseInfo[id][HouseExitInt] = GetPlayerInterior(playerid);
            HouseInfo[id][HouseSafe] = 0;
            HouseInfo[id][HouseSafeCode] = 0;
            strmid(HouseInfo[id][HouseType], "Bedsit", 0, strlen("Bedsit"), 255);
            strmid(HouseInfo[id][HouseOwner], "The State", 0, strlen("The State"), 255);
            SendClientMessage(playerid, LIGHTBLUE, "House created, now use /edithouse [id] to edit it.");
            format(string, sizeof(string), "The house ID is: %d (you can use this id to /edithouse with it).", id);
            SendClientMessage(playerid, LIGHTBLUE, string);
            HouseInfo[id][HousePickup] = CreateDynamicPickup(1273, 23, x, y, z);
            Get2DZone(location, MAX_ZONE_NAME,  x, y, z);
            format(string, sizeof(string), "House Owner: {FFFFFF}The State\n"HOUSE_HEX"House Location: {FFFFFF}%s\n"HOUSE_HEX"House Interior: {FFFFFF}Bedsit\n"HOUSE_HEX"House Cost: {FFFFFF}$%d", location, price);
            HouseInfo[id][HouseLabel] = CreateStreamed3DTextLabel(string, HOUSE_COLOR, x, y, z, 10.0, 0);
            EditHouseInterior(id, tmp);
            SaveHouses();
            houses++;
            return 1;
        }
        else
        {
            SendClientMessage(playerid, GREY, "    You are not authorized to use that command.");
        }
        return 1;
    }
Sorry for my bad english


Respuesta: [Help]Add command /garageforhouse - jose005 - 06.10.2013

help D:


Respuesta: [Help]Add command /garageforhouse - jose005 - 06.10.2013

PLEASE T_T


Respuesta: [Help]Add command /garageforhouse - jose005 - 06.10.2013

help? D:


Re: [Help]Add command /garageforhouse - DanishHaq - 06.10.2013

This certainly won't be easy as you'll have to create new savable variables, and link them together with houses, preferably save the garage information onto the house file(s) too so it'd load the house with the garage and they'd be linked together in the same enum. It's not easy at all.


Respuesta: [Help]Add command /garageforhouse - jose005 - 06.10.2013

can you help me a little and I continue?


Respuesta: [Help]Add command /garageforhouse - jose005 - 07.10.2013

help?