07.11.2010, 19:55
No aHouse eu to querendo bota a casa do cj mas naum consigo de geito ninhum eu vo lah coloco certin as localizaзхes mas no jogo num aparece nada.
#include <a_samp> #include <dudb> #include <dini> #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 //---------------------------- //---------------------------- // Full house script by Antironix! // Just don't remove the credits! //---------------------------- //---------------------------- #define MAX_DISTANCE_TO_PROP 1.5 #define MAX_HOUSES 100 #define MAX_RENTCOST 1000 #define MIN_RENTCOST 500 #define MAX_BUY_CARS 8 #define CAR_DELIVER_TIME 1 //The time that it takes that your car will be delivered. In hours. //buyable cars enum CarInfo {CarModel,CarName[24],CarCost}; new Buyable_Cars[MAX_BUY_CARS][CarInfo] = { //Modelid, Buy Name, Price {411,"Infernus",0}, {522,"NRG-500",50000}, {451,"Turismo",50000}, {541,"Bullet",50000}, {415,"Cheetah",50000}, {429,"Banshee",50000}, {494,"Hotring",50000}, {556,"Monster",50000} }; //---------------------------- //---------------------------- #define c_y 0xFFFF00AA #define c_r 0xAA3333AA new HousePickup[MAX_HOUSES]; new playerinterior[MAX_PLAYERS]=-1; new Float:housex, Float:housey, Float:housez; new housemapicon[MAX_PLAYERS]; new playerworld[MAX_PLAYERS]; new bool:KillVeh[MAX_VEHICLES] = false; forward rentfee(); forward newcar(); forward KillVehicle(carid); enum HouseInfo { Name[24], Renter[24], Rentable, Rentcost, Cost, Sell, Interior, Virtualworld, Locked, Float:InteriorX, Float:InteriorY, Float:InteriorZ, Float:iconx, Float:icony, Float:iconz, Rentfee } new hInfo[MAX_HOUSES][HouseInfo]; enum HouseCarInfo { HouseCar, GotCar, Houseid, CarModel, Float:CarX, Float:CarY, Float:CarZ, Float:CarRotation, CarColor1, CarColor2, Respawn_Delay, NewCar } new cInfo[MAX_HOUSES][HouseCarInfo]; #define FILTERSCRIPT #if defined FILTERSCRIPT public OnFilterScriptInit() { AddHouse(0, 1442.9769,-629.5287,95.7186, 2317.8201,-1024.7500,1050.2109, 0, 0, 9, 0); AddHouse(1, 1980.9896,-1719.0171,17.0304, 328.1465, 1478.4457,1084.4375, 0, 0, 15, 0); AddHouseCar(1, 429, 1975.3328,-1709.8126,15.9688, 0, 0, 5*60*1000);//5 min respawn delay SetTimer("rentfee", 1*60*60*1000, 1);//1 hour SetTimer("newcar", CAR_DELIVER_TIME*60*10*1000,1);//1 hour return 0; } public OnFilterScriptExit() { for(new i=0;i<MAX_HOUSES;i++) { DestroyPickup(HousePickup[i]); DestroyVehicle(cInfo[i][HouseCar]); } return 0; } #else #endif public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(comprarcasa,3,cmdtext); dcmd(vendercasa,4,cmdtext); dcmd(entrar,5,cmdtext); dcmd(sair,4,cmdtext); dcmd(fecharcasa,4,cmdtext); dcmd(abrircasa,6,cmdtext); dcmd(casackeck,4,cmdtext); dcmd(setaluguel,7,cmdtext); dcmd(alugar,4,cmdtext); dcmd(desalugar,6,cmdtext); dcmd(infocasa,5,cmdtext); dcmd(casastatus,10,cmdtext); dcmd(pegarrendas,7,cmdtext); dcmd(pagaraluguel,7,cmdtext); dcmd(comprarcarro,8,cmdtext); return 0; } AddHouse(houseid, Float:iconX, Float:iconY, Float:iconZ, Float:interiorX, Float:interiorY, Float:interiorZ, Costa, Sella, Interiora, virtualworld) { new house[256]; format(house, sizeof(house), "Houses/houseid%d",houseid); if(!dini_Exists(house)) { dini_Create(house); format(hInfo[houseid][Name], 24, "ForSale"); dini_Set(house, "Name", "ForSale"); format(hInfo[houseid][Renter], 24, "Ninguem"); dini_Set(house, "Renter", "Ninguem"); hInfo[houseid][Rentable] = 0; dini_IntSet(house, "Rentable", 0); hInfo[houseid][Rentcost] = 0; dini_IntSet(house, "Rentcost", 0); hInfo[houseid][Cost] = Costa; dini_IntSet(house, "Cost", Costa); hInfo[houseid][Sell] = Sella; dini_IntSet(house, "Sell", Sella); hInfo[houseid][Interior] = Interiora; dini_IntSet(house, "Interior", Interiora); dini_IntSet(house, "Virtualworld", virtualworld); hInfo[houseid][Virtualworld] = virtualworld; hInfo[houseid][Locked] = 1; dini_IntSet(house, "Locked", 1); hInfo[houseid][InteriorX] = interiorX; hInfo[houseid][InteriorY] = interiorY; hInfo[houseid][InteriorZ] = interiorZ; dini_FloatSet(house, "X", interiorX); dini_FloatSet(house, "Y", interiorY); dini_FloatSet(house, "Z", interiorZ); dini_IntSet(house, "RentPay", 0); dini_IntSet(house, "RentGet", 0); cInfo[houseid][HouseCar] = 429; dini_IntSet(house, "HouseCar", 0); cInfo[houseid][CarModel] = 429; dini_IntSet(house, "CarModel", 0); cInfo[houseid][CarX] = 0; cInfo[houseid][CarY] = 0; cInfo[houseid][CarZ] = 0; cInfo[houseid][CarRotation]=0; dini_FloatSet(house, "CarX", 0); dini_FloatSet(house, "CarY", 0); dini_FloatSet(house, "CarZ", 0); dini_FloatSet(house,"CarRotation",0); cInfo[houseid][CarColor1] = 0; cInfo[houseid][CarColor2] = 0; dini_IntSet(house, "CarColor1", 0); dini_IntSet(house, "CarColor2", 0); cInfo[houseid][GotCar] = 0; print("-"); print("--------------House Created--------------"); printf("- Houseid: %d", houseid); printf("- Buy Cost: %d", Costa); printf("- Sell Cost: %d", Sella); printf("- Interior: %d", Interiora); printf("- VirtualWorld: %d", virtualworld); print("-----------------------------------------"); print("-"); } else { format(hInfo[houseid][Name], 24, dini_Get(house, "Name")); format(hInfo[houseid][Renter], 24, dini_Get(house, "Renter")); hInfo[houseid][Rentable] = dini_Int(house, "Rentable"); hInfo[houseid][Rentcost] = dini_Int(house, "Rentcost"); hInfo[houseid][Cost] = dini_Int(house, "Cost"); hInfo[houseid][Sell] = dini_Int(house, "Sell"); hInfo[houseid][Interior] = dini_Int(house, "Interior"); hInfo[houseid][Locked] = dini_Int(house, "Locked"); hInfo[houseid][InteriorX] = dini_Float(house, "X"); hInfo[houseid][InteriorY] = dini_Float(house, "Y"); hInfo[houseid][InteriorZ] = dini_Float(house, "Z"); hInfo[houseid][Virtualworld] = dini_Int(house, "Virtualworld"); } hInfo[houseid][iconx]=iconX; hInfo[houseid][icony]=iconY; hInfo[houseid][iconz]=iconZ; format(house, sizeof(house), "Houses/houseid%d",houseid); if(strcmp(hInfo[houseid][Name],"ForSale",true)==0) { HousePickup[houseid] = CreatePickup(1273, 23, iconX, iconY, iconZ);//not bought } else { HousePickup[houseid] = CreatePickup(1272,23, iconX, iconY, iconZ);//bought } } AddHouseCar(houseid, modelid, Float:Carx, Float:Cary, Float:Carz, CarRot, color1, color2, respawn_delay) { new house[256]; format(house, sizeof(house), "Houses/houseid%d",houseid); if(dini_Exists(house)) { cInfo[houseid][GotCar] = 1; if(dini_Int(house, "CarModel")==0) { dini_IntSet(house, "CarModel", modelid); cInfo[houseid][CarModel] = modelid; cInfo[houseid][CarX] = Carx; cInfo[houseid][CarY] = Cary; cInfo[houseid][CarZ] = Carz; cInfo[houseid][CarRotation] = CarRot; dini_FloatSet(house, "CarX", Carx); dini_FloatSet(house, "CarY", Cary); dini_FloatSet(house, "CarZ", Carz); dini_FloatSet(house, "CarRotation", CarRot); cInfo[houseid][CarColor1] = color1; cInfo[houseid][CarColor2] = color2; dini_IntSet(house, "CarColor1", color1); dini_IntSet(house, "CarColor2", color2); dini_IntSet(house, "Respawn_Delay", respawn_delay); cInfo[houseid][Respawn_Delay] = respawn_delay; cInfo[houseid][HouseCar] = CreateVehicle(cInfo[houseid][CarModel], Carx, Cary, Carz, CarRot, color1, color2, respawn_delay); print("-"); print("--------------Car Created--------------"); printf("- Car Houseid: %d", houseid); printf("- Modelid: %d", modelid); printf("- Color 1: %d", color1); printf("- Color 2: %d", color2); printf("- Respawn Delay: %d", respawn_delay); print("---------------------------------------"); print("-"); } else { cInfo[houseid][CarModel] = dini_Int(house, "CarModel"); } cInfo[houseid][CarX] = dini_Int(house, "CarX"); cInfo[houseid][CarY] = dini_Int(house, "CarY"); cInfo[houseid][CarZ] = dini_Int(house, "CarZ"); cInfo[houseid][CarRotation] = dini_Int(house, "CarRotation"); cInfo[houseid][CarColor1] = dini_Int(house, "CarColor1"); cInfo[houseid][CarColor2] = dini_Int(house, "CarColor2"); cInfo[houseid][Respawn_Delay] = dini_Int(house, "Respawn_Delay"); cInfo[houseid][HouseCar] = CreateVehicle(cInfo[houseid][CarModel], Carx, Cary, Carz, CarRot, color1, color2, respawn_delay); } } stock SpawnPlayerAtHouse(playerid) { new str1[256],pname[24],str[256]; GetPlayerName(playerid, pname, sizeof(pname)); format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname)); if (dini_Exists(str1)) { if(dini_Int(str1,"Houseid")!=-255) { new Float:x,Float:y,Float:z; str = dini_Get(str1,"SpawnInt"); SetPlayerInterior(playerid, strval(str)); playerinterior[playerid] = strval(str); x = dini_Float(str1,"SpawnX"); y = dini_Float(str1,"SpawnY"); z = dini_Float(str1,"SpawnZ"); SetPlayerPos(playerid, x, y, z); } } return 1; } public OnPlayerSpawn(playerid) { SpawnPlayerAtHouse(playerid); } stock GetHouseStats(playerid, hid) { new str2[256]; format(str2, sizeof(str2), "Dono : %s", hInfo[hid][Name]); SendClientMessage(playerid, c_y, str2); if(strcmp(hInfo[hid][Renter],"Ninguem",true)) { format(str2, sizeof(str2), "Alugante : %s", hInfo[hid][Renter]); SendClientMessage(playerid, c_y, str2); } format(str2,sizeof(str2),"Cost: %i",hInfo[hid][Cost]); SendClientMessage(playerid, c_y, str2); } dcmd_vendercasa(playerid,params[]) { #pragma unused params new str[255],str1[256],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); if (strcmp(hInfo[housenumber][Name],pname,false)) return SendClientMessage(playerid, c_r, "Esta casa nгo й sua!"); SendClientMessage(playerid, c_y, "Vocк vendeu sua casa!"); format(str, sizeof(str), "%s Vendeu a casa",pname); print(str); GivePlayerMoney(playerid, hInfo[housenumber][Sell]); dini_Set(str1, "Name", "ForSale"); hInfo[housenumber][Locked] = dini_IntSet(str1,"Locked",1); format(hInfo[housenumber][Name],255,"ForSale"); format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname)); if (!dini_Exists(str1)) dini_Create(str1); dini_IntSet(str1, "Houseid", -255); DestroyPickup(HousePickup[housenumber]); HousePickup[housenumber] = CreatePickup(1273, 23, hInfo[housenumber][iconx], hInfo[housenumber][icony], hInfo[housenumber][iconz]); RemovePlayerMapIcon(playerid, housemapicon[playerid]); return 1; } dcmd_comprarcasa(playerid,params[]) { #pragma unused params new str[255],str1[255],pname[24], housenumber; housenumber = GetHouseID(playerid); if(housenumber == -1) return SendClientMessage(playerid, c_r, "Vocк nгo estб em um нcone de casa!"); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname)); if(dini_Exists(str1)) { if (dini_Int(str1, "Houseid")!=-255) return SendClientMessage(playerid, c_r, "Vocк sу pode comprar uma casa!"); } format(str1, sizeof(str1), "Houses/houseid%d", housenumber); if (strcmp(hInfo[housenumber][Name],"ForSale",true)) return SendClientMessage(playerid, c_r, "Esta casa nгo estб а venda!"); if(GetPlayerMoney(playerid)<hInfo[housenumber][Cost]) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente!"); SendClientMessage(playerid, c_y, "Vocк comprou a casa!"); format(str, sizeof(str), "%s comprou a acsa",pname); print(str); GivePlayerMoney(playerid, -hInfo[housenumber][Cost]); dini_Set(str1, "Name", pname); hInfo[housenumber][Name]=pname; hInfo[housenumber][Locked] = dini_IntSet(str1,"Locked",0); format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname)); if (!dini_Exists(str1)) dini_Create(str1); new Float:sy, Float:sx, Float:sz; dini_IntSet(str1, "Houseid", housenumber); if(!dini_Isset(str1,"Rentid")) { dini_IntSet(str1, "Rentid", -255); } GetPlayerPos(playerid, sx,sy,sz); dini_FloatSet(str1, "SpawnX", sx); dini_FloatSet(str1, "SpawnY", sy); dini_FloatSet(str1, "SpawnZ", sz); dini_IntSet(str1, "SpawnInt", GetPlayerInterior(playerid)); DestroyPickup(HousePickup[housenumber]); HousePickup[housenumber] = CreatePickup(1272, 23, hInfo[housenumber][iconx], hInfo[housenumber][icony], hInfo[housenumber][iconz]); return 1; } dcmd_fecharcasa(playerid,params[]) { #pragma unused params new str1[256],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); if(strcmp(hInfo[housenumber][Name],pname,true)==0) { SendClientMessage(playerid, c_y, "Vocк Fechou sua casa!"); dini_IntSet(str1,"Locked",1); hInfo[housenumber][Locked] = 1; } else if(strcmp(hInfo[housenumber][Renter],pname,true)==0) { SendClientMessage(playerid, c_y, "Vocк Abriu sua casa!"); dini_IntSet(str1,"Locked",1); hInfo[housenumber][Locked] = 1; } else { SendClientMessage(playerid, c_r, "Esta casa nгo й sua!"); } return 1; } dcmd_abrircasa(playerid,params[]) { #pragma unused params new str1[256],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); if(strcmp(hInfo[housenumber][Name],pname,true)==0) { SendClientMessage(playerid, c_y, "Vocк abriu sua casa!"); dini_IntSet(str1,"Locked",0); hInfo[housenumber][Locked] = 0; } else if(strcmp(hInfo[housenumber][Renter],pname,true)==0) { SendClientMessage(playerid, c_y, "Vocк abriu sua casa!"); dini_IntSet(str1,"Locked",0); hInfo[housenumber][Locked] = 0; } else { SendClientMessage(playerid, c_r, "Esta casa nгo й sua!"); } return 1; } dcmd_entrar(playerid,params[]) { #pragma unused params new str1[255],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerPos(playerid, housex, housey, housez); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); GetPlayerName(playerid, pname, 24); if(hInfo[housenumber][Locked]==1) return SendClientMessage(playerid, c_r, "Esta casa estб trancada!"); playerworld[playerid] = GetPlayerVirtualWorld(playerid); SetPlayerVirtualWorld(playerid, hInfo[housenumber][Virtualworld]); SetPlayerInterior(playerid, hInfo[housenumber][Interior]); SetPlayerPos(playerid, hInfo[housenumber][InteriorX], hInfo[housenumber][InteriorY], hInfo[housenumber][InteriorZ]); playerinterior[playerid] = hInfo[housenumber][Interior]; return 1; } dcmd_sair(playerid,params[]) { #pragma unused params if(GetPlayerInterior(playerid)==playerinterior[playerid]) { SetPlayerPos(playerid, housex, housey, housez); SetPlayerInterior(playerid, playerworld[playerid]); } else { SendClientMessage(playerid, c_r, "[ERRO]Esse comando vocк so pode digitar emcima de um icone de uma casa !"); } return 1; } dcmd_casackeck(playerid,params[]) { #pragma unused params new str1[256],pname[24]; GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname)); if(!dini_Exists(str1)) return SendClientMessage(playerid, c_r, "Vocк nгo й dono de uma casa!"); if(dini_Int(str1, "Houseid")!=-255) { housemapicon[playerid] = SetPlayerMapIcon(playerid,31,hInfo[dini_Int(str1, "Houseid")][iconx], hInfo[dini_Int(str1, "Houseid")][icony], hInfo[dini_Int(str1, "Houseid")][iconz],31,c_y); } else if (dini_Int(str1, "Rentid")!=-255) { housemapicon[playerid] = SetPlayerMapIcon(playerid,31,hInfo[dini_Int(str1, "Rentid")][iconx], hInfo[dini_Int(str1, "Rentid")][icony], hInfo[dini_Int(str1, "Rentid")][iconz],31,c_y); } else { SendClientMessage(playerid, c_r, "Vocк nгo й dono de uma casa!"); } return 1; } dcmd_setaluguel(playerid,params[]) { new str[256],str1[256],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); str = dini_Get(str1,"Name"); if (strcmp(str,pname,true)) return SendClientMessage(playerid, c_r, "Esta casa nгo й sua!"); new rentcost, rentable; if (sscanf(params, "dd", rentable, rentcost)) return SendClientMessage(playerid, c_r, "USE: /setaluguel [0/1] [Rentcost]"); else if (rentcost<MIN_RENTCOST) { format(str, sizeof(str), "O minimo do custo й $%i.", MIN_RENTCOST); SendClientMessage(playerid, c_r, str); return 1; } else if (rentcost>MAX_RENTCOST) { format(str, sizeof(str), "O maximo do custo й $%i.", MAX_RENTCOST); SendClientMessage(playerid, c_r, str); return 1; } else if(rentable==1) { SendClientMessage(playerid, c_y, "Sua casa agora й aluguavel!"); hInfo[housenumber][Rentable] = 1; dini_IntSet(str1, "Rentable", 1); hInfo[housenumber][Rentcost] = rentcost; dini_IntSet(str1, "Rentcost", rentcost); return 1; } else if(rentable==0) { SendClientMessage(playerid, c_y, "Sua casa agora nгo й alugavel!"); hInfo[housenumber][Rentable] = 0; dini_IntSet(str1, "Rentable", 0); hInfo[housenumber][Rentcost] = rentcost; dini_IntSet(str1, "Rentcost", rentcost); return 1; } return 1; } dcmd_alugar(playerid,params[]) { #pragma unused params new str[255],str1[256],str5[255],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); format(str5, sizeof(str5), "Houses/Users/%s", udb_encode(pname)); if(dini_Isset(str5, "Rentid")) { if (dini_Int(str5, "Rentid")!=-255) return SendClientMessage(playerid, c_r, "Vocк sу pode alugar uma casa!"); } format(str, sizeof(str), dini_Get(str1,"Name")); if (strcmp(str,"ForSale",true)==0) return SendClientMessage(playerid, c_r, "Esta casa nгo tem dono!"); if(hInfo[housenumber][Rentable]==0 || strcmp(hInfo[housenumber][Renter], "Ninguem", true)) return SendClientMessage(playerid, c_r, "Esta casa nгo й alugavel!"); if(GetPlayerMoney(playerid)<hInfo[housenumber][Rentcost]) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente!"); dini_Set(str1, "Renter", udb_encode(pname)); format(hInfo[housenumber][Renter], 24, udb_encode(pname)); dini_IntSet(str5, "Rentid", housenumber); format(str1, sizeof(str1), "Vocк alugou esta casa, que vai custar-lhe $%i por hora!", hInfo[housenumber][Rentcost]); SendClientMessage(playerid, c_y, str1); return 1; } dcmd_desalugar(playerid,params[]) { #pragma unused params new str1[256],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); if(strcmp(hInfo[housenumber][Renter], pname, true)) return SendClientMessage(playerid, c_r, "Vocк nгo estб alugando esta casa!"); dini_Set(str1, "Renter", "Ninguem"); format(hInfo[housenumber][Renter], 24, "Ninguem"); format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname)); dini_IntSet(str1, "Rentid", -255); SendClientMessage(playerid, c_y, "Vocк nгo tem o aluguel desta casa"); return 1; } dcmd_infocasa(playerid,params[]) { #pragma unused params SendClientMessage(playerid, c_y, "-------------"); SendClientMessage(playerid, c_y, "Casa Comandos (Ajuda)"); SendClientMessage(playerid, c_y, "-------------"); SendClientMessage(playerid, c_y, "/setaluguel [0/1] [Preзo] - Dono da casa"); SendClientMessage(playerid, c_y, "/Comprarcarro [nomecarro] - Dono da casa"); SendClientMessage(playerid, c_y, "/pegarrendas - Dono da casa"); SendClientMessage(playerid, c_y, "/fecharcasa - Alugante/Dono da casa"); SendClientMessage(playerid, c_y, "/abrircasa - Alugante/Dono da casa"); SendClientMessage(playerid, c_y, "/pagaraluguel - Alugante"); SendClientMessage(playerid, c_y, "/desalugar - Alugante"); SendClientMessage(playerid, c_y, "/alugar - Sem casa"); SendClientMessage(playerid, c_y, "-------------"); return 1; } dcmd_casastatus(playerid,params[]) { #pragma unused params new str[256],housenumber; housenumber = GetHouseID(playerid); format(str, sizeof(str), "Dono: %s", hInfo[housenumber][Name]); SendClientMessage(playerid, c_y, str); format(str, sizeof(str), "Preзo: $%d", hInfo[housenumber][Cost]); SendClientMessage(playerid, c_y, str); format(str, sizeof(str), "Alugante: %s", hInfo[housenumber][Renter]); SendClientMessage(playerid, c_y, str); format(str, sizeof(str), "Aluguel Custo: $%d / Por Horas", hInfo[housenumber][Rentcost]); SendClientMessage(playerid, c_y, str); return 1; } dcmd_pegarrendas(playerid,params[]) { #pragma unused params new pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); if(strcmp(hInfo[housenumber][Name],pname,true)==0) { new str[255]; SendClientMessage(playerid, c_y, "Vocк recolheu a renda da casa!"); format(str, sizeof(str), "Houses/houseid%d", housenumber); GivePlayerMoney(playerid, dini_Int(str, "RentGet")); dini_IntSet(str, "RentGet", 0); } else { SendClientMessage(playerid, c_r, "Esta casa nгo й sua!"); } return 1; } dcmd_pagaraluguel(playerid,params[]) { #pragma unused params new pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); if(strcmp(hInfo[housenumber][Renter],pname,true)==0) { new str[255]; format(str, sizeof(str), "Houses/houseid%d", housenumber); if(GetPlayerMoney(playerid)<dini_Int(str, "RentPay")) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente para pagar o dono da casa!"); SendClientMessage(playerid, c_y, "Vocк pagou o dinheiro do aluguel ao dono!"); GivePlayerMoney(playerid, -dini_Int(str, "RentPay")); dini_IntSet(str, "RentPay", 0); } else { SendClientMessage(playerid, c_r, "Vocк nгo estб alugando esta casa!"); } return 1; } dcmd_comprarcarro(playerid,params[]) { #pragma unused params new pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); if(cInfo[housenumber][GotCar]==0) return SendClientMessage(playerid, c_r, "Esta casa nгo pode comprar um carro!"); if(strcmp(hInfo[housenumber][Name],pname,true)==0) { new carname[40]; if (sscanf(params, "s", carname)) { SendClientMessage(playerid, c_r, "USE: /comprarcarro [CarName]"); } else { new str[256], abc; for(new i=0;i<MAX_BUY_CARS;i++) { if(strcmp(carname,Buyable_Cars[i][CarName],true)==0) { if(GetPlayerMoney(playerid)<Buyable_Cars[i][CarCost]) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente para comprar o carro!"); GivePlayerMoney(playerid, -Buyable_Cars[i][CarCost]); cInfo[housenumber][CarModel] = Buyable_Cars[i][CarModel]; format(str, sizeof(str), "Houses/houseid%d", housenumber); dini_IntSet(str, "CarModel", Buyable_Cars[i][CarModel]); format(str, sizeof(str), "Vocк compro o carro %s por $%d!", carname, Buyable_Cars[i][CarCost]); SendClientMessage(playerid, c_y, str); SendClientMessage(playerid, c_y, "Vai levar algum tempo, para o seu carro vai ser entregue."); cInfo[housenumber][NewCar] = 1; abc = 1; } } if(abc==0) { SendClientMessage(playerid, c_r, "Nome do veнculo errado!Use /NomeCars"); abc=0; } } } else { SendClientMessage(playerid, c_r, "Esta casa nгo й sua!"); } return 1; } public newcar() { for(new carid=0;carid<MAX_HOUSES;carid++) { if(cInfo[carid][NewCar]==1) { cInfo[carid][NewCar]=0; KillVehicle(cInfo[carid][HouseCar]); cInfo[carid][HouseCar] = CreateVehicle(cInfo[carid][CarModel], cInfo[carid][CarX], cInfo[carid][CarY], cInfo[carid][CarZ], cInfo[carid][CarRotation], cInfo[carid][CarColor1], cInfo[carid][CarColor2], cInfo[carid][Respawn_Delay]); } } } public KillVehicle(carid) { for (new i=0;i<MAX_PLAYERS;i++) { if(IsPlayerInVehicle(i, carid)) { RemovePlayerFromVehicle(i); KillVeh[carid] = true; SetVehicleToRespawn(carid); SendClientMessage(i, c_r, "Sistema: Seu carro foi destruнdo."); SendClientMessage(i, c_r, "Motivo: sistema de Casas."); } else { KillVeh[carid] = true; SetVehicleToRespawn(carid); } } } public OnVehicleSpawn(vehicleid) { for(new i=0;i<MAX_HOUSES;i++) { if(KillVeh[cInfo[i][HouseCar]]==true) { KillVeh[cInfo[i][HouseCar]] = false; DestroyVehicle(cInfo[i][HouseCar]); } } } public rentfee() { new str[255],str2[255],pname[24]; for(new houseid=0;houseid<MAX_HOUSES;houseid++) { format(str, sizeof(str), "Houses/houseid%d", houseid); if(strcmp(hInfo[houseid][Renter], "Ninguem", true)) { for(new ii=0;ii<MAX_PLAYERS;ii++) { if(IsPlayerConnected(ii)) { GetPlayerName(ii, pname, 24); if(strcmp(hInfo[houseid][Renter], pname, true)==0) { format(str2, sizeof(str2), "Vocк tem que pagar $%s por a hora por ter alugado a casa !", hInfo[houseid][Rentcost]); SendClientMessage(ii, c_y, str2); dini_IntSet(str, "RentGet", dini_Int(str, "RentGet")+hInfo[houseid][Rentcost]); dini_IntSet(str, "RentPay", dini_Int(str, "RentPay")+hInfo[houseid][Rentcost]); hInfo[houseid][Rentfee]=1; } } } if(hInfo[houseid][Rentfee]==0) { if(strcmp(hInfo[houseid][Renter],"Ninguem")) { dini_IntSet(str, "RentGet", dini_Int(str, "RentGet")+hInfo[houseid][Rentcost]); dini_IntSet(str, "RentPay", dini_Int(str, "RentPay")+hInfo[houseid][Rentcost]); } } hInfo[houseid][Rentfee]=0; } } } public OnPlayerPickUpPickup(playerid, pickupid) { if(GetHouseID(playerid) != -255) GetHouseStats(playerid, GetHouseID(playerid)); return 0; } stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z) { if(IsPlayerConnected(playerid)) { new Float:oldposx, Float:oldposy, Float:oldposz; new Float:tempposx, Float:tempposy, Float:tempposz; GetPlayerPos(playerid, oldposx, oldposy, oldposz); tempposx = (oldposx -x); tempposy = (oldposy -y); tempposz = (oldposz -z); if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) { return 1; } } return 0; } stock GetHouseID(playerid) { for(new i=0; i<MAX_HOUSES; i++) { if(PlayerToPoint(MAX_DISTANCE_TO_PROP, playerid, hInfo[i][iconx], hInfo[i][icony], hInfo[i][iconz])) { return i; } } return -255; } stock sscanf(string[], format[], {Float,_}:...) { new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(); while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if (ch >= '0' && ch <= '9') { num = (num * 10) + (ch - '0'); } else { return 1; } } while ((ch = string[stringPos]) && ch != ' '); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new ch, num = 0; while ((ch = string[stringPos++])) { switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } case ' ': { break; } default: { return 1; } } } setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new tmp[25]; strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2); setarg(paramPos, 0, _:floatstr(tmp)); } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != ' ') { setarg(paramPos, i++, ch); } if (!i) return 1; } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != ' ') { stringPos++; } while (string[stringPos] == ' ') { stringPos++; } paramPos++; } while (format[formatPos] == 'z') formatPos++; return format[formatPos]; } /*public OnVehicleMod(vehicleid, componentid) { new house[256]; for(new i=0; i<MAX_HOUSES; i++) { format(house, sizeof(house), "Houses/houseid%d",i); if(!dini_Isset(house, "CarModel")) continue; if( } return 1; }*/
AddHouse(0, 1442.9769,-629.5287,95.7186, 2317.8201,-1024.7500,1050.2109, 0, 0, 9, 0);
AddHouse(0, 1442.9769,-629.5287,95.7186, 2317.8201,-1024.7500,1050.2109, 0, 0, 9, 0);
0 = ID da casa = (cada casa que vocк vai criando coloque em ordem crescente 1, 2, 3 e etc..)
1442.9769,-629.5287,95.7186 = (Coordenadas do pickup do lado de fora da casa)
2317.8201,-1024.7500,1050.2109 = (Coordenada do interior da casa)
0, 0, = (Valor de compra e venda da casa)
9 = (O ID do interior da casa)
0 = (VirtualWorld)
AddHouse(CasaID, LocalX, LocalY, LocalZ, InteriorX, InteriorY, InteriorZ, PreзoDEcompra, PreзoDEvenda, IDinterior, VirtualWorld);
#include <a_samp> #include <dudb> #include <dini> #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 //---------------------------- //---------------------------- // Full house script by Antironix! // Just don't remove the credits! //---------------------------- //---------------------------- #define MAX_DISTANCE_TO_PROP 1.5 #define MAX_HOUSES 100 #define MAX_RENTCOST 1000 #define MIN_RENTCOST 500 #define MAX_BUY_CARS 8 #define CAR_DELIVER_TIME 1 //The time that it takes that your car will be delivered. In hours. //buyable cars enum CarInfo {CarModel,CarName[24],CarCost}; new Buyable_Cars[MAX_BUY_CARS][CarInfo] = { //Modelid, Buy Name, Price {411,"Infernus",0}, {522,"NRG-500",50000}, {451,"Turismo",50000}, {541,"Bullet",50000}, {415,"Cheetah",50000}, {429,"Banshee",50000}, {494,"Hotring",50000}, {556,"Monster",50000} }; //---------------------------- //---------------------------- #define c_y 0xFFFF00AA #define c_r 0xAA3333AA new HousePickup[MAX_HOUSES]; new playerinterior[MAX_PLAYERS]=-1; new Float:housex, Float:housey, Float:housez; new housemapicon[MAX_PLAYERS]; new playerworld[MAX_PLAYERS]; new bool:KillVeh[MAX_VEHICLES] = false; forward rentfee(); forward newcar(); forward KillVehicle(carid); enum HouseInfo { Name[24], Renter[24], Rentable, Rentcost, Cost, Sell, Interior, Virtualworld, Locked, Float:InteriorX, Float:InteriorY, Float:InteriorZ, Float:iconx, Float:icony, Float:iconz, Rentfee } new hInfo[MAX_HOUSES][HouseInfo]; enum HouseCarInfo { HouseCar, GotCar, Houseid, CarModel, Float:CarX, Float:CarY, Float:CarZ, Float:CarRotation, CarColor1, CarColor2, Respawn_Delay, NewCar } new cInfo[MAX_HOUSES][HouseCarInfo]; #define FILTERSCRIPT #if defined FILTERSCRIPT public OnFilterScriptInit() { AddHouse(0, 1442.9769,-629.5287,95.7186, 2317.8201,-1024.7500,1050.2109, 0, 0, 9, 0); AddHouse(1, 1980.9896,-1719.0171,17.0304, 328.1465, 1478.4457,1084.4375, 0, 0, 15, 0); AddHouse(2, 836.6476,-894.0554,68.7689,2324.419921,-1145.568359,1050.710083, 0, 0, 12, 0); AddHouseCar(1, 429, 1975.3328,-1709.8126,15.9688, 0, 0, 5*60*1000);//5 min respawn delay SetTimer("rentfee", 1*60*60*1000, 1);//1 hour SetTimer("newcar", CAR_DELIVER_TIME*60*10*1000,1);//1 hour return 0; } public OnFilterScriptExit() { for(new i=0;i<MAX_HOUSES;i++) { DestroyPickup(HousePickup[i]); DestroyVehicle(cInfo[i][HouseCar]); } return 0; } #else #endif public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(comprarcasa,3,cmdtext); dcmd(vendercasa,4,cmdtext); dcmd(entrar,5,cmdtext); dcmd(sair,4,cmdtext); dcmd(fecharcasa,4,cmdtext); dcmd(abrircasa,6,cmdtext); dcmd(casackeck,4,cmdtext); dcmd(setaluguel,7,cmdtext); dcmd(alugar,4,cmdtext); dcmd(desalugar,6,cmdtext); dcmd(infocasa,5,cmdtext); dcmd(casastatus,10,cmdtext); dcmd(pegarrendas,7,cmdtext); dcmd(pagaraluguel,7,cmdtext); dcmd(comprarcarro,8,cmdtext); return 0; } AddHouse(houseid, Float:iconX, Float:iconY, Float:iconZ, Float:interiorX, Float:interiorY, Float:interiorZ, Costa, Sella, Interiora, virtualworld) { new house[256]; format(house, sizeof(house), "Houses/houseid%d",houseid); if(!dini_Exists(house)) { dini_Create(house); format(hInfo[houseid][Name], 24, "ForSale"); dini_Set(house, "Name", "ForSale"); format(hInfo[houseid][Renter], 24, "Ninguem"); dini_Set(house, "Renter", "Ninguem"); hInfo[houseid][Rentable] = 0; dini_IntSet(house, "Rentable", 0); hInfo[houseid][Rentcost] = 0; dini_IntSet(house, "Rentcost", 0); hInfo[houseid][Cost] = Costa; dini_IntSet(house, "Cost", Costa); hInfo[houseid][Sell] = Sella; dini_IntSet(house, "Sell", Sella); hInfo[houseid][Interior] = Interiora; dini_IntSet(house, "Interior", Interiora); dini_IntSet(house, "Virtualworld", virtualworld); hInfo[houseid][Virtualworld] = virtualworld; hInfo[houseid][Locked] = 1; dini_IntSet(house, "Locked", 1); hInfo[houseid][InteriorX] = interiorX; hInfo[houseid][InteriorY] = interiorY; hInfo[houseid][InteriorZ] = interiorZ; dini_FloatSet(house, "X", interiorX); dini_FloatSet(house, "Y", interiorY); dini_FloatSet(house, "Z", interiorZ); dini_IntSet(house, "RentPay", 0); dini_IntSet(house, "RentGet", 0); cInfo[houseid][HouseCar] = 429; dini_IntSet(house, "HouseCar", 0); cInfo[houseid][CarModel] = 429; dini_IntSet(house, "CarModel", 0); cInfo[houseid][CarX] = 0; cInfo[houseid][CarY] = 0; cInfo[houseid][CarZ] = 0; cInfo[houseid][CarRotation]=0; dini_FloatSet(house, "CarX", 0); dini_FloatSet(house, "CarY", 0); dini_FloatSet(house, "CarZ", 0); dini_FloatSet(house,"CarRotation",0); cInfo[houseid][CarColor1] = 0; cInfo[houseid][CarColor2] = 0; dini_IntSet(house, "CarColor1", 0); dini_IntSet(house, "CarColor2", 0); cInfo[houseid][GotCar] = 0; print("-"); print("--------------House Created--------------"); printf("- Houseid: %d", houseid); printf("- Buy Cost: %d", Costa); printf("- Sell Cost: %d", Sella); printf("- Interior: %d", Interiora); printf("- VirtualWorld: %d", virtualworld); print("-----------------------------------------"); print("-"); } else { format(hInfo[houseid][Name], 24, dini_Get(house, "Name")); format(hInfo[houseid][Renter], 24, dini_Get(house, "Renter")); hInfo[houseid][Rentable] = dini_Int(house, "Rentable"); hInfo[houseid][Rentcost] = dini_Int(house, "Rentcost"); hInfo[houseid][Cost] = dini_Int(house, "Cost"); hInfo[houseid][Sell] = dini_Int(house, "Sell"); hInfo[houseid][Interior] = dini_Int(house, "Interior"); hInfo[houseid][Locked] = dini_Int(house, "Locked"); hInfo[houseid][InteriorX] = dini_Float(house, "X"); hInfo[houseid][InteriorY] = dini_Float(house, "Y"); hInfo[houseid][InteriorZ] = dini_Float(house, "Z"); hInfo[houseid][Virtualworld] = dini_Int(house, "Virtualworld"); } hInfo[houseid][iconx]=iconX; hInfo[houseid][icony]=iconY; hInfo[houseid][iconz]=iconZ; format(house, sizeof(house), "Houses/houseid%d",houseid); if(strcmp(hInfo[houseid][Name],"ForSale",true)==0) { HousePickup[houseid] = CreatePickup(1273, 23, iconX, iconY, iconZ);//not bought } else { HousePickup[houseid] = CreatePickup(1272,23, iconX, iconY, iconZ);//bought } } AddHouseCar(houseid, modelid, Float:Carx, Float:Cary, Float:Carz, CarRot, color1, color2, respawn_delay) { new house[256]; format(house, sizeof(house), "Houses/houseid%d",houseid); if(dini_Exists(house)) { cInfo[houseid][GotCar] = 1; if(dini_Int(house, "CarModel")==0) { dini_IntSet(house, "CarModel", modelid); cInfo[houseid][CarModel] = modelid; cInfo[houseid][CarX] = Carx; cInfo[houseid][CarY] = Cary; cInfo[houseid][CarZ] = Carz; cInfo[houseid][CarRotation] = CarRot; dini_FloatSet(house, "CarX", Carx); dini_FloatSet(house, "CarY", Cary); dini_FloatSet(house, "CarZ", Carz); dini_FloatSet(house, "CarRotation", CarRot); cInfo[houseid][CarColor1] = color1; cInfo[houseid][CarColor2] = color2; dini_IntSet(house, "CarColor1", color1); dini_IntSet(house, "CarColor2", color2); dini_IntSet(house, "Respawn_Delay", respawn_delay); cInfo[houseid][Respawn_Delay] = respawn_delay; cInfo[houseid][HouseCar] = CreateVehicle(cInfo[houseid][CarModel], Carx, Cary, Carz, CarRot, color1, color2, respawn_delay); print("-"); print("--------------Car Created--------------"); printf("- Car Houseid: %d", houseid); printf("- Modelid: %d", modelid); printf("- Color 1: %d", color1); printf("- Color 2: %d", color2); printf("- Respawn Delay: %d", respawn_delay); print("---------------------------------------"); print("-"); } else { cInfo[houseid][CarModel] = dini_Int(house, "CarModel"); } cInfo[houseid][CarX] = dini_Int(house, "CarX"); cInfo[houseid][CarY] = dini_Int(house, "CarY"); cInfo[houseid][CarZ] = dini_Int(house, "CarZ"); cInfo[houseid][CarRotation] = dini_Int(house, "CarRotation"); cInfo[houseid][CarColor1] = dini_Int(house, "CarColor1"); cInfo[houseid][CarColor2] = dini_Int(house, "CarColor2"); cInfo[houseid][Respawn_Delay] = dini_Int(house, "Respawn_Delay"); cInfo[houseid][HouseCar] = CreateVehicle(cInfo[houseid][CarModel], Carx, Cary, Carz, CarRot, color1, color2, respawn_delay); } } stock SpawnPlayerAtHouse(playerid) { new str1[256],pname[24],str[256]; GetPlayerName(playerid, pname, sizeof(pname)); format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname)); if (dini_Exists(str1)) { if(dini_Int(str1,"Houseid")!=-255) { new Float:x,Float:y,Float:z; str = dini_Get(str1,"SpawnInt"); SetPlayerInterior(playerid, strval(str)); playerinterior[playerid] = strval(str); x = dini_Float(str1,"SpawnX"); y = dini_Float(str1,"SpawnY"); z = dini_Float(str1,"SpawnZ"); SetPlayerPos(playerid, x, y, z); } } return 1; } public OnPlayerSpawn(playerid) { SpawnPlayerAtHouse(playerid); } stock GetHouseStats(playerid, hid) { new str2[256]; format(str2, sizeof(str2), "Dono : %s", hInfo[hid][Name]); SendClientMessage(playerid, c_y, str2); if(strcmp(hInfo[hid][Renter],"Ninguem",true)) { format(str2, sizeof(str2), "Alugante : %s", hInfo[hid][Renter]); SendClientMessage(playerid, c_y, str2); } format(str2,sizeof(str2),"Cost: %i",hInfo[hid][Cost]); SendClientMessage(playerid, c_y, str2); } dcmd_vendercasa(playerid,params[]) { #pragma unused params new str[255],str1[256],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); if (strcmp(hInfo[housenumber][Name],pname,false)) return SendClientMessage(playerid, c_r, "Esta casa nгo й sua!"); SendClientMessage(playerid, c_y, "Vocк vendeu sua casa!"); format(str, sizeof(str), "%s Vendeu a casa",pname); print(str); GivePlayerMoney(playerid, hInfo[housenumber][Sell]); dini_Set(str1, "Name", "ForSale"); hInfo[housenumber][Locked] = dini_IntSet(str1,"Locked",1); format(hInfo[housenumber][Name],255,"ForSale"); format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname)); if (!dini_Exists(str1)) dini_Create(str1); dini_IntSet(str1, "Houseid", -255); DestroyPickup(HousePickup[housenumber]); HousePickup[housenumber] = CreatePickup(1273, 23, hInfo[housenumber][iconx], hInfo[housenumber][icony], hInfo[housenumber][iconz]); RemovePlayerMapIcon(playerid, housemapicon[playerid]); return 1; } dcmd_comprarcasa(playerid,params[]) { #pragma unused params new str[255],str1[255],pname[24], housenumber; housenumber = GetHouseID(playerid); if(housenumber == -1) return SendClientMessage(playerid, c_r, "Vocк nгo estб em um нcone de casa!"); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname)); if(dini_Exists(str1)) { if (dini_Int(str1, "Houseid")!=-255) return SendClientMessage(playerid, c_r, "Vocк sу pode comprar uma casa!"); } format(str1, sizeof(str1), "Houses/houseid%d", housenumber); if (strcmp(hInfo[housenumber][Name],"ForSale",true)) return SendClientMessage(playerid, c_r, "Esta casa nгo estб а venda!"); if(GetPlayerMoney(playerid)<hInfo[housenumber][Cost]) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente!"); SendClientMessage(playerid, c_y, "Vocк comprou a casa!"); format(str, sizeof(str), "%s comprou a acsa",pname); print(str); GivePlayerMoney(playerid, -hInfo[housenumber][Cost]); dini_Set(str1, "Name", pname); hInfo[housenumber][Name]=pname; hInfo[housenumber][Locked] = dini_IntSet(str1,"Locked",0); format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname)); if (!dini_Exists(str1)) dini_Create(str1); new Float:sy, Float:sx, Float:sz; dini_IntSet(str1, "Houseid", housenumber); if(!dini_Isset(str1,"Rentid")) { dini_IntSet(str1, "Rentid", -255); } GetPlayerPos(playerid, sx,sy,sz); dini_FloatSet(str1, "SpawnX", sx); dini_FloatSet(str1, "SpawnY", sy); dini_FloatSet(str1, "SpawnZ", sz); dini_IntSet(str1, "SpawnInt", GetPlayerInterior(playerid)); DestroyPickup(HousePickup[housenumber]); HousePickup[housenumber] = CreatePickup(1272, 23, hInfo[housenumber][iconx], hInfo[housenumber][icony], hInfo[housenumber][iconz]); return 1; } dcmd_fecharcasa(playerid,params[]) { #pragma unused params new str1[256],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); if(strcmp(hInfo[housenumber][Name],pname,true)==0) { SendClientMessage(playerid, c_y, "Vocк Fechou sua casa!"); dini_IntSet(str1,"Locked",1); hInfo[housenumber][Locked] = 1; } else if(strcmp(hInfo[housenumber][Renter],pname,true)==0) { SendClientMessage(playerid, c_y, "Vocк Abriu sua casa!"); dini_IntSet(str1,"Locked",1); hInfo[housenumber][Locked] = 1; } else { SendClientMessage(playerid, c_r, "Esta casa nгo й sua!"); } return 1; } dcmd_abrircasa(playerid,params[]) { #pragma unused params new str1[256],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); if(strcmp(hInfo[housenumber][Name],pname,true)==0) { SendClientMessage(playerid, c_y, "Vocк abriu sua casa!"); dini_IntSet(str1,"Locked",0); hInfo[housenumber][Locked] = 0; } else if(strcmp(hInfo[housenumber][Renter],pname,true)==0) { SendClientMessage(playerid, c_y, "Vocк abriu sua casa!"); dini_IntSet(str1,"Locked",0); hInfo[housenumber][Locked] = 0; } else { SendClientMessage(playerid, c_r, "Esta casa nгo й sua!"); } return 1; } dcmd_entrar(playerid,params[]) { #pragma unused params new str1[255],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerPos(playerid, housex, housey, housez); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); GetPlayerName(playerid, pname, 24); if(hInfo[housenumber][Locked]==1) return SendClientMessage(playerid, c_r, "Esta casa estб trancada!"); playerworld[playerid] = GetPlayerVirtualWorld(playerid); SetPlayerVirtualWorld(playerid, hInfo[housenumber][Virtualworld]); SetPlayerInterior(playerid, hInfo[housenumber][Interior]); SetPlayerPos(playerid, hInfo[housenumber][InteriorX], hInfo[housenumber][InteriorY], hInfo[housenumber][InteriorZ]); playerinterior[playerid] = hInfo[housenumber][Interior]; return 1; } dcmd_sair(playerid,params[]) { #pragma unused params if(GetPlayerInterior(playerid)==playerinterior[playerid]) { SetPlayerPos(playerid, housex, housey, housez); SetPlayerInterior(playerid, playerworld[playerid]); } else { SendClientMessage(playerid, c_r, "[ERRO]Esse comando vocк so pode digitar emcima de um icone de uma casa !"); } return 1; } dcmd_casackeck(playerid,params[]) { #pragma unused params new str1[256],pname[24]; GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname)); if(!dini_Exists(str1)) return SendClientMessage(playerid, c_r, "Vocк nгo й dono de uma casa!"); if(dini_Int(str1, "Houseid")!=-255) { housemapicon[playerid] = SetPlayerMapIcon(playerid,31,hInfo[dini_Int(str1, "Houseid")][iconx], hInfo[dini_Int(str1, "Houseid")][icony], hInfo[dini_Int(str1, "Houseid")][iconz],31,c_y); } else if (dini_Int(str1, "Rentid")!=-255) { housemapicon[playerid] = SetPlayerMapIcon(playerid,31,hInfo[dini_Int(str1, "Rentid")][iconx], hInfo[dini_Int(str1, "Rentid")][icony], hInfo[dini_Int(str1, "Rentid")][iconz],31,c_y); } else { SendClientMessage(playerid, c_r, "Vocк nгo й dono de uma casa!"); } return 1; } dcmd_setaluguel(playerid,params[]) { new str[256],str1[256],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); str = dini_Get(str1,"Name"); if (strcmp(str,pname,true)) return SendClientMessage(playerid, c_r, "Esta casa nгo й sua!"); new rentcost, rentable; if (sscanf(params, "dd", rentable, rentcost)) return SendClientMessage(playerid, c_r, "USE: /setaluguel [0/1] [Rentcost]"); else if (rentcost<MIN_RENTCOST) { format(str, sizeof(str), "O minimo do custo й $%i.", MIN_RENTCOST); SendClientMessage(playerid, c_r, str); return 1; } else if (rentcost>MAX_RENTCOST) { format(str, sizeof(str), "O maximo do custo й $%i.", MAX_RENTCOST); SendClientMessage(playerid, c_r, str); return 1; } else if(rentable==1) { SendClientMessage(playerid, c_y, "Sua casa agora й aluguavel!"); hInfo[housenumber][Rentable] = 1; dini_IntSet(str1, "Rentable", 1); hInfo[housenumber][Rentcost] = rentcost; dini_IntSet(str1, "Rentcost", rentcost); return 1; } else if(rentable==0) { SendClientMessage(playerid, c_y, "Sua casa agora nгo й alugavel!"); hInfo[housenumber][Rentable] = 0; dini_IntSet(str1, "Rentable", 0); hInfo[housenumber][Rentcost] = rentcost; dini_IntSet(str1, "Rentcost", rentcost); return 1; } return 1; } dcmd_alugar(playerid,params[]) { #pragma unused params new str[255],str1[256],str5[255],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); format(str5, sizeof(str5), "Houses/Users/%s", udb_encode(pname)); if(dini_Isset(str5, "Rentid")) { if (dini_Int(str5, "Rentid")!=-255) return SendClientMessage(playerid, c_r, "Vocк sу pode alugar uma casa!"); } format(str, sizeof(str), dini_Get(str1,"Name")); if (strcmp(str,"ForSale",true)==0) return SendClientMessage(playerid, c_r, "Esta casa nгo tem dono!"); if(hInfo[housenumber][Rentable]==0 || strcmp(hInfo[housenumber][Renter], "Ninguem", true)) return SendClientMessage(playerid, c_r, "Esta casa nгo й alugavel!"); if(GetPlayerMoney(playerid)<hInfo[housenumber][Rentcost]) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente!"); dini_Set(str1, "Renter", udb_encode(pname)); format(hInfo[housenumber][Renter], 24, udb_encode(pname)); dini_IntSet(str5, "Rentid", housenumber); format(str1, sizeof(str1), "Vocк alugou esta casa, que vai custar-lhe $%i por hora!", hInfo[housenumber][Rentcost]); SendClientMessage(playerid, c_y, str1); return 1; } dcmd_desalugar(playerid,params[]) { #pragma unused params new str1[256],pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); format(str1, sizeof(str1), "Houses/houseid%d", housenumber); if(strcmp(hInfo[housenumber][Renter], pname, true)) return SendClientMessage(playerid, c_r, "Vocк nгo estб alugando esta casa!"); dini_Set(str1, "Renter", "Ninguem"); format(hInfo[housenumber][Renter], 24, "Ninguem"); format(str1, sizeof(str1), "Houses/Users/%s", udb_encode(pname)); dini_IntSet(str1, "Rentid", -255); SendClientMessage(playerid, c_y, "Vocк nгo tem o aluguel desta casa"); return 1; } dcmd_infocasa(playerid,params[]) { #pragma unused params SendClientMessage(playerid, c_y, "-------------"); SendClientMessage(playerid, c_y, "Casa Comandos (Ajuda)"); SendClientMessage(playerid, c_y, "-------------"); SendClientMessage(playerid, c_y, "/setaluguel [0/1] [Preзo] - Dono da casa"); SendClientMessage(playerid, c_y, "/Comprarcarro [nomecarro] - Dono da casa"); SendClientMessage(playerid, c_y, "/pegarrendas - Dono da casa"); SendClientMessage(playerid, c_y, "/fecharcasa - Alugante/Dono da casa"); SendClientMessage(playerid, c_y, "/abrircasa - Alugante/Dono da casa"); SendClientMessage(playerid, c_y, "/pagaraluguel - Alugante"); SendClientMessage(playerid, c_y, "/desalugar - Alugante"); SendClientMessage(playerid, c_y, "/alugar - Sem casa"); SendClientMessage(playerid, c_y, "-------------"); return 1; } dcmd_casastatus(playerid,params[]) { #pragma unused params new str[256],housenumber; housenumber = GetHouseID(playerid); format(str, sizeof(str), "Dono: %s", hInfo[housenumber][Name]); SendClientMessage(playerid, c_y, str); format(str, sizeof(str), "Preзo: $%d", hInfo[housenumber][Cost]); SendClientMessage(playerid, c_y, str); format(str, sizeof(str), "Alugante: %s", hInfo[housenumber][Renter]); SendClientMessage(playerid, c_y, str); format(str, sizeof(str), "Aluguel Custo: $%d / Por Horas", hInfo[housenumber][Rentcost]); SendClientMessage(playerid, c_y, str); return 1; } dcmd_pegarrendas(playerid,params[]) { #pragma unused params new pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); if(strcmp(hInfo[housenumber][Name],pname,true)==0) { new str[255]; SendClientMessage(playerid, c_y, "Vocк recolheu a renda da casa!"); format(str, sizeof(str), "Houses/houseid%d", housenumber); GivePlayerMoney(playerid, dini_Int(str, "RentGet")); dini_IntSet(str, "RentGet", 0); } else { SendClientMessage(playerid, c_r, "Esta casa nгo й sua!"); } return 1; } dcmd_pagaraluguel(playerid,params[]) { #pragma unused params new pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); if(strcmp(hInfo[housenumber][Renter],pname,true)==0) { new str[255]; format(str, sizeof(str), "Houses/houseid%d", housenumber); if(GetPlayerMoney(playerid)<dini_Int(str, "RentPay")) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente para pagar o dono da casa!"); SendClientMessage(playerid, c_y, "Vocк pagou o dinheiro do aluguel ao dono!"); GivePlayerMoney(playerid, -dini_Int(str, "RentPay")); dini_IntSet(str, "RentPay", 0); } else { SendClientMessage(playerid, c_r, "Vocк nгo estб alugando esta casa!"); } return 1; } dcmd_comprarcarro(playerid,params[]) { #pragma unused params new pname[24],housenumber; housenumber = GetHouseID(playerid); GetPlayerName(playerid, pname, 24); if(cInfo[housenumber][GotCar]==0) return SendClientMessage(playerid, c_r, "Esta casa nгo pode comprar um carro!"); if(strcmp(hInfo[housenumber][Name],pname,true)==0) { new carname[40]; if (sscanf(params, "s", carname)) { SendClientMessage(playerid, c_r, "USE: /comprarcarro [CarName]"); } else { new str[256], abc; for(new i=0;i<MAX_BUY_CARS;i++) { if(strcmp(carname,Buyable_Cars[i][CarName],true)==0) { if(GetPlayerMoney(playerid)<Buyable_Cars[i][CarCost]) return SendClientMessage(playerid, c_r, "Vocк nгo tem dinheiro suficiente para comprar o carro!"); GivePlayerMoney(playerid, -Buyable_Cars[i][CarCost]); cInfo[housenumber][CarModel] = Buyable_Cars[i][CarModel]; format(str, sizeof(str), "Houses/houseid%d", housenumber); dini_IntSet(str, "CarModel", Buyable_Cars[i][CarModel]); format(str, sizeof(str), "Vocк compro o carro %s por $%d!", carname, Buyable_Cars[i][CarCost]); SendClientMessage(playerid, c_y, str); SendClientMessage(playerid, c_y, "Vai levar algum tempo, para o seu carro vai ser entregue."); cInfo[housenumber][NewCar] = 1; abc = 1; } } if(abc==0) { SendClientMessage(playerid, c_r, "Nome do veнculo errado!Use /NomeCars"); abc=0; } } } else { SendClientMessage(playerid, c_r, "Esta casa nгo й sua!"); } return 1; } public newcar() { for(new carid=0;carid<MAX_HOUSES;carid++) { if(cInfo[carid][NewCar]==1) { cInfo[carid][NewCar]=0; KillVehicle(cInfo[carid][HouseCar]); cInfo[carid][HouseCar] = CreateVehicle(cInfo[carid][CarModel], cInfo[carid][CarX], cInfo[carid][CarY], cInfo[carid][CarZ], cInfo[carid][CarRotation], cInfo[carid][CarColor1], cInfo[carid][CarColor2], cInfo[carid][Respawn_Delay]); } } } public KillVehicle(carid) { for (new i=0;i<MAX_PLAYERS;i++) { if(IsPlayerInVehicle(i, carid)) { RemovePlayerFromVehicle(i); KillVeh[carid] = true; SetVehicleToRespawn(carid); SendClientMessage(i, c_r, "Sistema: Seu carro foi destruнdo."); SendClientMessage(i, c_r, "Motivo: sistema de Casas."); } else { KillVeh[carid] = true; SetVehicleToRespawn(carid); } } } public OnVehicleSpawn(vehicleid) { for(new i=0;i<MAX_HOUSES;i++) { if(KillVeh[cInfo[i][HouseCar]]==true) { KillVeh[cInfo[i][HouseCar]] = false; DestroyVehicle(cInfo[i][HouseCar]); } } } public rentfee() { new str[255],str2[255],pname[24]; for(new houseid=0;houseid<MAX_HOUSES;houseid++) { format(str, sizeof(str), "Houses/houseid%d", houseid); if(strcmp(hInfo[houseid][Renter], "Ninguem", true)) { for(new ii=0;ii<MAX_PLAYERS;ii++) { if(IsPlayerConnected(ii)) { GetPlayerName(ii, pname, 24); if(strcmp(hInfo[houseid][Renter], pname, true)==0) { format(str2, sizeof(str2), "Vocк tem que pagar $%s por a hora por ter alugado a casa !", hInfo[houseid][Rentcost]); SendClientMessage(ii, c_y, str2); dini_IntSet(str, "RentGet", dini_Int(str, "RentGet")+hInfo[houseid][Rentcost]); dini_IntSet(str, "RentPay", dini_Int(str, "RentPay")+hInfo[houseid][Rentcost]); hInfo[houseid][Rentfee]=1; } } } if(hInfo[houseid][Rentfee]==0) { if(strcmp(hInfo[houseid][Renter],"Ninguem")) { dini_IntSet(str, "RentGet", dini_Int(str, "RentGet")+hInfo[houseid][Rentcost]); dini_IntSet(str, "RentPay", dini_Int(str, "RentPay")+hInfo[houseid][Rentcost]); } } hInfo[houseid][Rentfee]=0; } } } public OnPlayerPickUpPickup(playerid, pickupid) { if(GetHouseID(playerid) != -255) GetHouseStats(playerid, GetHouseID(playerid)); return 0; } stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z) { if(IsPlayerConnected(playerid)) { new Float:oldposx, Float:oldposy, Float:oldposz; new Float:tempposx, Float:tempposy, Float:tempposz; GetPlayerPos(playerid, oldposx, oldposy, oldposz); tempposx = (oldposx -x); tempposy = (oldposy -y); tempposz = (oldposz -z); if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) { return 1; } } return 0; } stock GetHouseID(playerid) { for(new i=0; i<MAX_HOUSES; i++) { if(PlayerToPoint(MAX_DISTANCE_TO_PROP, playerid, hInfo[i][iconx], hInfo[i][icony], hInfo[i][iconz])) { return i; } } return -255; } stock sscanf(string[], format[], {Float,_}:...) { new formatPos = 0, stringPos = 0, paramPos = 2, paramCount = numargs(); while (paramPos < paramCount && string[stringPos]) { switch (format[formatPos++]) { case '\0': { return 0; } case 'i', 'd': { new neg = 1, num = 0, ch = string[stringPos]; if (ch == '-') { neg = -1; ch = string[++stringPos]; } do { stringPos++; if (ch >= '0' && ch <= '9') { num = (num * 10) + (ch - '0'); } else { return 1; } } while ((ch = string[stringPos]) && ch != ' '); setarg(paramPos, 0, num * neg); } case 'h', 'x': { new ch, num = 0; while ((ch = string[stringPos++])) { switch (ch) { case 'x', 'X': { num = 0; continue; } case '0' .. '9': { num = (num << 4) | (ch - '0'); } case 'a' .. 'f': { num = (num << 4) | (ch - ('a' - 10)); } case 'A' .. 'F': { num = (num << 4) | (ch - ('A' - 10)); } case ' ': { break; } default: { return 1; } } } setarg(paramPos, 0, num); } case 'c': { setarg(paramPos, 0, string[stringPos++]); } case 'f': { new tmp[25]; strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2); setarg(paramPos, 0, _:floatstr(tmp)); } case 's', 'z': { new i = 0, ch; if (format[formatPos]) { while ((ch = string[stringPos++]) && ch != ' ') { setarg(paramPos, i++, ch); } if (!i) return 1; } else { while ((ch = string[stringPos++])) { setarg(paramPos, i++, ch); } } stringPos--; setarg(paramPos, i, '\0'); } default: { continue; } } while (string[stringPos] && string[stringPos] != ' ') { stringPos++; } while (string[stringPos] == ' ') { stringPos++; } paramPos++; } while (format[formatPos] == 'z') formatPos++; return format[formatPos]; } /*public OnVehicleMod(vehicleid, componentid) { new house[256]; for(new i=0; i<MAX_HOUSES; i++) { format(house, sizeof(house), "Houses/houseid%d",i); if(!dini_Isset(house, "CarModel")) continue; if( } return 1; }*/