13.04.2007, 17:46
Code:
Because many People were asking How To make a new Property in my Gamemode i made this HowTo IMPORTANT:IT ONLY WORKS WITH THE LVDMOD by SYNTAX! First we need for one Property 3 Coords 1.Area Point 1 2.Area Point 2 Those are very importent that People can See the Checkpoint of the Property, so they can buy it. 3.Checkpoint of the Property Without this it wont work To get the Area Points Do This -Start/Launch DEBUG Mode Do "/save" like this: /save1-------------------- | | /save1 & /save2:This is how we get the Area where the Checkpoint can be seen | /save3 | /save3:This is the Checkpoint where People can buy it | | |---------------------/save2 Wasnt so hard isnt? Now we have to do it into the Script and Define everything For Example i use Sintax LV-DM-MG~LG (i hope its ok)This is what there is Staying Right?Well Lets add the new PropertyCode:#define CP_BANK 0 #define CP_PIRATE 1 #define CP_AMMU 2 #define CP_DRAGON 3 #define CP_SEXSHOP 4 #define CP_BAR 5 #define CP_CALIGULA 6 #define CP_ZIP 7 #define CP_BINCO 8 #define CP_TATOO 9 #define CP_BOTIQUE 10 #define P_DRAGON 0 #define P_SEXSHOP 1 #define P_BAR 2 #define P_CALIGULA 3 #define P_ZIP 4 #define P_BINCO 5 #define P_TATOO 6 #define P_BOTIQUE 7
we add ONE New Property that means one new Checkpoint and one new Property.The Property is defined with the name "CP_PAWN" & "P_PAWN" at the Property List.Code:#define CP_BANK 0 #define CP_PIRATE 1 #define CP_AMMU 2 #define CP_DRAGON 3 #define CP_SEXSHOP 4 #define CP_BAR 5 #define CP_CALIGULA 6 #define CP_ZIP 7 #define CP_BINCO 8 #define CP_TATOO 9 #define CP_BOTIQUE 10 #define CP_PAWN 11 #define P_DRAGON 0 #define P_SEXSHOP 1 #define P_BAR 2 #define P_CALIGULA 3 #define P_ZIP 4 #define P_BINCO 5 #define P_TATOO 6 #define P_BOTIQUE 7 #define P_PAWN 8
Ok now we have to add the Checkpoint Area and the Checkpoint.This is how it Looks like if NO New Property is Added.
Now its ADDING Time!!!!Code:#define MAX_POINTS 11 new Float:checkCoords[MAX_POINTS][4] = { {-36.5483,-57.9948, -17.2655,-49.2967}, //BANK {1894.6128,1445.3431, 2084.9739,1637.8186}, //PIRATE {284.0546,-86.4384, 302.9315,-56.6674}, //AMMUNATION {1925.1511,968.2358, 2019.0715,1067.4276}, //DRAGON {-115.9544,-24.2706, -99.1631,-7.1391}, //SEXSHOP {487.6558,-88.5900, 512.0635, -67.7503}, //BAR {2216.7971,1638.0493, 2255.2097,1714.0806}, //CALIGULA {144.9131,-96.0927, 177.4128,-70.7923}, //ZIP {201.4462,-112.4556, 218.5237,-95.1238}, //BINCO {-204.7623,-44.0326, -200.2330,-39.8128}, //TATOO {416.7485,-84.4242, 422.6890,-74.0611} //BOTIQUE }; new Float:checkpoints[MAX_POINTS][3] = { {-22.2549,-55.6575,1003.5469}, {2000.3132,1538.6012,13.5859}, {291.0004,-84.5168,1001.5156}, {1989.0619,1005.5241,994.4688}, {-103.5525,-22.4661,1000.7188}, {501.4927,-75.4323,998.7578}, {2235.5408,1679.0402,1008.3594}, {161.1875,-79.9915,1001.8047}, {207.5640,-97.8188,1005.2578}, {-203.4864,-41.2045,1002.2734}, {418.5547,-80.1667,1001.8047} }; new checkpointType[MAX_POINTS] = { CP_BANK, CP_PIRATE, CP_AMMU, CP_DRAGON, CP_SEXSHOP, CP_BAR, CP_CALIGULA, CP_ZIP, CP_BINCO, CP_TATOO, CP_BOTIQUE }; #define MAX_PROPERTIES 8 new propertyNames[MAX_PROPERTIES][32] = { "Four Dragons", "Sex Shop", "Shithole Bar", "Caligula", "Zip Shop", "Binco Shop", "Tatoo Parlor", "Botique" }; new propertyValues[MAX_PROPERTIES] = { 75000, 25000, 20000, 100000, 15000, 15000, 10000, 20000 }; new propertyEarnings[MAX_PROPERTIES] = { 5000, 2000, 1500, 7000, 1000, 1000, 700, 1500 }; new propertyOwner[MAX_PROPERTIES] = {999,999,999,999,999,999,999,999};
This was the Area Coords.We only need the X and Y Coords.The Height (Z-Coords) are not importent here.Besides it will crash your Script and u get Errors.Code:#define MAX_POINTS 12 //Because we have ONE More Checkpoint new Float:checkCoords[MAX_POINTS][4] = { {-36.5483,-57.9948, -17.2655,-49.2967}, //BANK {1894.6128,1445.3431, 2084.9739,1637.8186}, //PIRATE {284.0546,-86.4384, 302.9315,-56.6674}, //AMMUNATION {1925.1511,968.2358, 2019.0715,1067.4276}, //DRAGON {-115.9544,-24.2706, -99.1631,-7.1391}, //SEXSHOP {487.6558,-88.5900, 512.0635, -67.7503}, //BAR {2216.7971,1638.0493, 2255.2097,1714.0806}, //CALIGULA {144.9131,-96.0927, 177.4128,-70.7923}, //ZIP {201.4462,-112.4556, 218.5237,-95.1238}, //BINCO {-204.7623,-44.0326, -200.2330,-39.8128}, //TATOO {416.7485,-84.4242, 422.6890,-74.0611} , //BOTIQUE { xmin , ymin , xmax , ymax } //PAWN };
Now we have to Add the New Checkpoint!!!!
This Time we need ONLY The Checkpoint coords no MIN or MAXCode:new Float:checkpoints[MAX_POINTS][3] = { {-22.2549,-55.6575,1003.5469}, {2000.3132,1538.6012,13.5859}, {291.0004,-84.5168,1001.5156}, {1989.0619,1005.5241,994.4688}, {-103.5525,-22.4661,1000.7188}, {501.4927,-75.4323,998.7578}, {2235.5408,1679.0402,1008.3594}, {161.1875,-79.9915,1001.8047}, {207.5640,-97.8188,1005.2578}, {-203.4864,-41.2045,1002.2734}, {418.5547,-80.1667,1001.8047}, {xxxx.xxxx.yyyy.yyyy.zzzz.zzzz} };
Now we have to Add it to the Checkpoint List so u can walk in it /See it
Now we have to let the Script now that we have ONE More Property.Code:new checkpointType[MAX_POINTS] = { CP_BANK, CP_PIRATE, CP_AMMU, CP_DRAGON, CP_SEXSHOP, CP_BAR, CP_CALIGULA, CP_ZIP, CP_BINCO, CP_TATOO, CP_BOTIQUE, CP_PAWN };
Lets Add the Name!!!Code:#define MAX_PROPERTIES 9
Now we have to Config the Price to buy it and the EarningsCode:new propertyNames[MAX_PROPERTIES][32] = { "Four Dragons", "Sex Shop", "Shithole Bar", "Caligula", "Zip Shop", "Binco Shop", "Tatoo Parlor", "Botique", "PAWN Example" };
Then we have to Add a New Property Owner for the beginning (999 = No1 Owns it because there is now playerid 999)Code:new propertyValues[MAX_PROPERTIES] = { 75000, 25000, 20000, 100000, 15000, 15000, 10000, 20000, 50000 }; new propertyEarnings[MAX_PROPERTIES] = { 5000, 2000, 1500, 7000, 1000, 1000, 700, 1500, 9000 };
new propertyOwner[MAX_PROPERTIES] = {999,999,999,999,999,999,999,999,999};
We just have to add the CP_PAWN and the P_PAWN in there.
Code:
if(strcmp(cmd, "/buy", true) == 0) { new property=999; if(IsPlayerInCheckpoint(playerid)) { switch (playerCheckpoint[playerid]) { case CP_DRAGON:{ property = P_DRAGON; } case CP_SEXSHOP:{ property = P_SEXSHOP; } case CP_BAR:{ property = P_BAR; } case CP_CALIGULA:{ property = P_CALIGULA; } case CP_ZIP:{ property = P_ZIP; } case CP_BINCO:{ property = P_BINCO; } case CP_TATOO:{ property = P_TATOO; } case CP_BOTIQUE:{ property = P_BOTIQUE; } case CP_PAWN:{ property = P_PAWN; } } if(property==999) { SendClientMessage(playerid, COLOR_YELLOW, "You need to be in a property checkpoint to /buy it."); return 1; } // property--; if(GetPlayerMoney(playerid) < propertyValues[property]) { SendClientMessage(playerid, COLOR_RED, "You don't have enough money to buy this property."); return 1; } if(propertyOwner[property]==playerid) { SendClientMessage(playerid, COLOR_RED, "You already own this property."); return 1; } if(propertyOwner[property] < 999) { GetPlayerName(playerid, giveplayer, sizeof(giveplayer)); GivePlayerMoney(propertyOwner[property], propertyValues[property]); format (string, sizeof(string), "Your property, the %s, has been bought out by %s (id: %d).",propertyNames[property],giveplayer,playerid); SendClientMessage(propertyOwner[property], COLOR_RED, string); } GivePlayerMoney(playerid, 0-propertyValues[property]); propertyOwner[property]=playerid; format(string, sizeof(string), "You have purchased the %s!", propertyNames[property]); SendClientMessage(playerid, COLOR_GREEN, string); } else { SendClientMessage(playerid, COLOR_YELLOW, "You need to be in a property checkpoint to /buy it."); return 1; } return 1; }
I hope i could help you^^