#include <a_samp> #include <zcmd> #include <streamer> new DB:database, DBResult:queryresult, fquery[300];
#define MAX_HOUSES 300 //MAX_HOUSES estб 300 . #define MAX_HOUSES_PER_PLAYER 2 //MAX_HOUSES_PER_PLAYER estб 2 #define databasename "housedb.db" //O DatabaseName й atualmente housedb.db
enum hinfo
{
owner[24], // Armazena o nome do proprietario da casa
Hname[100], //Armazena o nome da casa.
costprice, //Armazena o preзo de custo da casa
Float:EnterPos[3], // vai armazenar a posiзгo do checkpoint da casa
Float:TelePos[3], // Ela sу й a posiзгo que sгo enviados para se entrar na casa
sellprice, //Permite-nos vender a casa pelo preзo que foi escolhido
interiors, //Permite definir o interior do jogador
Text3D:textid, //Sao as informaзoes em 3D textlabel que fica fora da nossa casa mudei para gametext to 3D text porque й a maneira mais facil.
checkpointidx[2]
};
new HouseInformation[MAX_HOUSES][hinfo], houseid;
new InHouse[MAX_PLAYERS], InHouseCP[MAX_PLAYERS];
public OnFilterScriptInit()
{
database = db_open(databasename);
db_query(database, "CREATE TABLE IF NOT EXISTS `HOUSEINFO` (housename varchar(51), houseowner varchar(25))");
return 1;
}
public OnPlayerConnect(playerid)
{
InHouse[playerid] = -1;
InHouseCP[playerid] = -1;
return 1;
}
CreateHouse(HouseName[], CostP, Float:EnterX, Float:EnterY, Float:EnterZ, Float:TeleX, Float:TeleY, Float:TeleZ, SellP, Interiorx)
HouseName[] - O nome que voce quer dar para a casa (EX:Mansao1) CostP - O preзo que vocк quer dar para a casa (Ex: 500000) Float:EnterX - O ponto de entrada da casa X (Ex: 1264.53433) Float:EnterY - O ponto de entrada da casa Y (Ex: 2625.6436) Float:EnterZ - O ponto de entrada da casa Z(Ex: 200.532) Float:TeleX - O teleporte X,tele para o interior (Ex: 432.4234) Float:TeleY - O teleporte Y,tele para o interior(Ex: 4216.4152) Float:TeleZ - O teleporte Z,tele para o interior(Ex: 10.53672) SellP - O preзo de quando o dono vender a casa (Ex: 200000) Interiorx - O id do interior que vamos se teleportar
SELECT [VARIABLE] FROM [TABLENAME] WHERE [ANOTHER VARIABLE] = [A VALUE] VARIABLE = Dono da casa TABLENAME = HOUSEINFO ANOTHER VARIABLE = housename A VALUE = our house name.
stock CreateHouse(HouseName[], CostP, Float:EnterX, Float:EnterY, Float:EnterZ, Float:TeleX, Float:TeleY, Float:TeleZ, Interiorx, SellP)
{
format(HouseInformation[houseid][Hname], 100, "%s", HouseName);
HouseInformation[houseid][costprice] = CostP;
HouseInformation[houseid][EnterPos][0] = EnterX;
HouseInformation[houseid][EnterPos][1] = EnterY;
HouseInformation[houseid][EnterPos][2] = EnterZ;
HouseInformation[houseid][TelePos][0] = TeleX;
HouseInformation[houseid][TelePos][1] = TeleY;
HouseInformation[houseid][TelePos][2] = TeleZ;
HouseInformation[houseid][sellprice] = SellP;
HouseInformation[houseid][interiors] = Interiorx;
format(fquery, sizeof(fquery), "SELECT donodacasa informaзoes nome dacasa = '%s'", HouseName);
queryresult = db_query(database, fquery);
if(db_num_rows(queryresult) != 0) db_get_field_assoc(queryresult, "dono da casa", HouseInformation[houseid][owner], 24);
HouseInformation[houseid][checkpointidx][0] = CreateDynamicCP(EnterX, EnterY, EnterZ, 1.0);
//CreateDynamicCP(Float:x, Float:y, Float:z, Float:size);
HouseInformation[houseid][checkpointidx][1] = CreateDynamicCP(TeleX, TeleY, TeleZ, 1.0, 15500000+houseid, Interiorx);
//CreateDynamicCP(Float:x, Float:y, Float:z, Float:size, worldid, interiorid);
if(!HouseInformation[houseid][owner][0]) format(fquery, sizeof(fquery), "House Name: %s \n House Price:$%d \n Sell Price: $%d", HouseName, CostP, SellP);
else if(HouseInformation[houseid][owner][0] != 0) format(fquery, sizeof(fquery), "House Name: %s \n Owner: %s", HouseName, HouseInformation[houseid][owner]);
HouseInformation[houseid][textid] = CreateDynamic3DTextLabel(fquery, 0xFFFFFF, EnterX, EnterY, EnterZ + 0.5, 50.0);
//CreateDynamic3DTextLabel(const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:distance = 100.0);
houseid ++;
return 1;
}
INSERT INTO [TABLENAME] ([FIELD1], [FIELD2]) VALUES ([VALUE1], [VALUE2]) TABLENAME - HOUSEINFO FIELD1 - housename FIELD2 - houseowner VALUE1 - Our housename value VALUE2 - Our houseowner value
DELETE FROM [TABLENAME] WHERE [FIELD] = [VALUE] TABLENAME - HOUSEINFO FIELD - housename VALUE - the housename
stock SetOwner(HouseName[], ownername[], houseids)
{
format(fquery, sizeof(fquery), "INSERT INTO `HOUSEINFO` (`housename`, `houseowner`) VALUES('%s', '%s')", HouseName, ownername);
db_query(database, fquery); //SQLITE
format(HouseInformation[houseids][owner], 24, "%s", ownername);
format(fquery, sizeof(fquery), "House Name: %s \n Owner: %s", HouseName, HouseInformation[houseids][owner]);
UpdateDynamic3DTextLabelText(HouseInformation[houseids][textid], 0xFFFFFF, fquery); //Text label.
return 1;
}
stock DeleteOwner(HouseName[], houseids)
{
format(HouseInformation[houseids][owner], 24, "%s", "\0");
format(fquery, sizeof(fquery), "DELETE FROM `HOUSEINFO` WHERE `housename` = '%s'", HouseName);
db_query(database, fquery); //SQLITE.
format(fquery, sizeof(fquery), "House Name: %s \n House Price:$%d \n Sell Price: $%d", HouseName, HouseInformation[houseids][costprice], HouseInformation[houseids][sellprice]);
UpdateDynamic3DTextLabelText(HouseInformation[houseids][textid], 0xFFFFFF, fquery); //Text Label.
return 1;
}
public OnPlayerEnterDynamicCP(playerid, checkpointid)
{
for(new x; x<houseid; x++) //Loops through all current house ids.
{
if(HouseInformation[x][checkpointidx][0] == checkpointid) //If the entry checkpoint is entry checkpoint.
{
if(InHouse[playerid] != -1)
{
InHouse[playerid] = -1;
return 1;
}
InHouseCP[playerid] = x;
new Pname[24];
GetPlayerName(playerid, Pname, 24);
if(HouseInformation[x][owner][0] != 0 && !strcmp(Pname, HouseInformation[x][owner][0]))
{
SetPlayerPos(playerid, HouseInformation[x][TelePos][0], HouseInformation[x][TelePos][1], HouseInformation[x][TelePos][2]);
SetPlayerInterior(playerid, HouseInformation[x][interiors]);
SetPlayerVirtualWorld(playerid, 15500000 + x);
}
if(!HouseInformation[x][owner][0]) SendClientMessage(playerid, -1, "Esta casa esta б venda use /comprar para adiquiri-lб");
return 1;
}
if(HouseInformation[x][checkpointidx][1] == checkpointid)
{
if(InHouse[playerid] == -1)
{
InHouse[playerid] = x;
return 1;
}
SetPlayerPos(playerid, HouseInformation[x][EnterPos][0], HouseInformation[x][EnterPos][1], HouseInformation[x][EnterPos][2]);
SetPlayerInterior(playerid, 0);
SetPlayerVirtualWorld(playerid, 0);
return 1;
}
}
return 1;
}
public OnPlayerLeaveDynamicCP(playerid, checkpointid)
{
if(InHouseCP[playerid] != - 1) InHouseCP[playerid] = -1; /
return 1;
|
eu nao acho bom , usar um tutorial de alguem e simplismente disfarзar e fingir que й seu , que coisa feia voce apenas traduziu
http://forum.sa-mp.com/showthread.ph...t=create+house |

C:\Users\Administrador\Downloads\Samp\gamemodes\BWR.pwn(170) : warning 225: unreachable code
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Warning.
{
InHouse[playerid] = -1;
InHouseCP[playerid] = -1;
return 1;
}
TextDrawShowForPlayer(playerid, TextDrawBarraStatus);
return 1;
}
|
Malz Recussitar o tуpico mais , deu um Warning
![]() pawn Code:
pawn Code:
|
{
InHouse[playerid] = -1;
InHouseCP[playerid] = -1;
TextDrawShowForPlayer(playerid, TextDrawBarraStatus);
return 1;
}