/maison is the main command for me (it mean /house) and /maison acheter -> acheter is the subcommand. (/maison buy)
pawn Код:
if(strcmp(cmd, "/maison", true) == 0 || strcmp(cmd, "/ma", true) == 0) // Commandes pour les maisons
{
new Float:cx, Float:cy, Float:cz;
subcmd = strtok(cmdtext, idx);
if( !strlen(subcmd) )
{
SendClientMessage(playerid, COLOR_USAGE, "{FF6600}[Action]{99EEFF} (/ma)ison <action>");
SendClientMessage(playerid, COLOR_USAGE, "{FF6600}[Action]{99EEFF} Actions valides : acheter, vendre, louer, delouer, fraper");
SendClientMessage(playerid, COLOR_USAGE, "{FF6600}[Action]{99EEFF} Actions valides : Faites /entrer pour visiter.");
SendClientMessage(playerid, COLOR_USAGE, "{FF6600}[Action]{99EEFF} Actions valides : general");
if(pack_isAnAdmin(playerid))
{SendClientMessage(playerid, COLOR_ADMIN, "[Action] Admin: creer, edit");}
return 1;
}
if(strcmp(subcmd, "creer", true) == 0)
{
if(!pack_isAdmin(playerid, 4))
{SendClientMessage(playerid, COLOR_SERVER, noAcces); return 1;}
// Position du joueur
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
// Id
format(sql, sizeof(sql), "SELECT COUNT(*) FROM srp_players_houses");
MySQLCheckConnection();
mysql_query(sql);
//SQLLog(query);
mysql_store_result();
mysql_fetch_row(result);
new newHouseId = strval(result) + 1;
mysql_free_result();
if (newHouseId>=MAX_HOUSE)
{SendClientMessage(playerid, COLOR_ADMIN, "[Admin] Maximum de maison atteint."); return 1;}
new intStr[64], prixStr[64];
intStr = strtok(cmdtext, idx);
prixStr = strtok(cmdtext, idx);
if(!strlen(intStr) || !strlen(prixStr))
{SendClientMessage(playerid, COLOR_USAGE, "{FF6600}[Action]{99EEFF} /ma creer [Interieur(1-42] [Prix]"); return 1;}
new idint, prix;
idint = strval(intStr);
prix = strval(prixStr);
if(idint < 1 || idint > 42)
{SendClientMessage(playerid, COLOR_USAGE, "[Interieur] Compris entre 1 et 42"); return 1;}
if(prix < 1 || prix > 10000000)
{SendClientMessage(playerid, COLOR_USAGE, "[Prix] Compris entre 1 et 10 000 000$"); return 1;}
new Float:x1, Float:y1, Float:z1;
house_getExitPos(idint, x1, y1, z1);
new interieur = house_getInterior(idint);
new description[LITTLE_STRING];
house_getDes(idint, description);
//DB
format(sql, sizeof(sql), "INSERT INTO srp_players_houses SET id=%d, ent_x=%f, ent_y=%f, ent_z=%f, ext_x=%f, ext_y=%f, ext_z=%f, price=%d, interior=%d, description='%s'", newHouseId, x, y, z,x1,y1,z1,prix,interieur,description);
MySQLCheckConnection();
mysql_query(sql);
// IG
HouseInfo[newHouseId-1][hEntrancex] = x;
HouseInfo[newHouseId-1][hEntrancey] = y;
HouseInfo[newHouseId-1][hEntrancez] = z;
HouseInfo[newHouseId-1][hExitx] = x1;
HouseInfo[newHouseId-1][hExity] = y1;
HouseInfo[newHouseId-1][hExitz] = z1;
memcpy(HouseInfo[newHouseId-1][hOwner],NOMDEFAULT, 0, MAX_PLAYER_NAME*4, MAX_PLAYER_NAME*4);
memcpy(HouseInfo[newHouseId-1][hDiscription],description, 0, 32*4, 32*4);
HouseInfo[newHouseId-1][hValue] = prix;
HouseInfo[newHouseId-1][hInt] = interieur;
HouseInfo[newHouseId-1][hLock] = 0;
HouseInfo[newHouseId-1][hOwned] = 0;
HouseInfo[newHouseId-1][hRent] = 0;
HouseInfo[newHouseId-1][hRentabil] = 0;
HouseInfo[newHouseId-1][hTakings] = 0;
HouseInfo[newHouseId-1][hAssurance] = 0;
HouseInfo[newHouseId-1][hLevel] = 0;
HouseInfo[newHouseId-1][hType] = 1;
HouseInfo[newHouseId-1][hFrigo] = 0;
HouseInfo[newHouseId-1][hArmes] = 0;
HouseInfo[newHouseId-1][hArme1] = 0;
HouseInfo[newHouseId-1][hAmmo1] = 0;
HouseInfo[newHouseId-1][hArme2] = 0;
HouseInfo[newHouseId-1][hAmmo2] = 0;
HouseInfo[newHouseId-1][hArme3] = 0;
HouseInfo[newHouseId-1][hAmmo3] = 0;
HouseInfo[newHouseId-1][hArme4] = 0;
HouseInfo[newHouseId-1][hAmmo4] = 0;
HouseInfo[newHouseId-1][hArme5] = 0;
HouseInfo[newHouseId-1][hAmmo5] = 0;
HouseInfo[newHouseId-1][hCache] = 0;
HouseInfo[newHouseId-1][hWeed] = 0;
HouseInfo[newHouseId-1][hHero] = 0;
HouseInfo[newHouseId-1][hCafetiere] = 0;
HouseInfo[newHouseId-1][hAlarme] = 0;
HouseInfo[newHouseId-1][hLoc] = 0;
HouseInfo[newHouseId-1][hLocMax] = 0;
HouseInfo[newHouseId-1][hPropre] = 0;
HouseInfo[newHouseId-1][hTrashes] = 0;
HouseInfo[newHouseId-1][hTPropre] = 0;
HouseInfo[newHouseId-1][hCambriolee] = 0;
HouseInfo[newHouseId-1][hTCambriolee] = 0;
HouseInfo[newHouseId-1][hEdited] = 0;
totalhouses++;
HousePickup[newHouseId-1]=CreateDynamicPickup(1272, 1,x,y,z,0,0,-1,PICKUP_STREAM_DISTANCE); // Ajout du pickup
format(string, sizeof(string), "[Admin] Maison ID %d crйe.", newHouseId-1);
SendClientMessage(playerid, COLOR_ADMIN, string);
return 1;
}
pawn Код:
if(strcmp(subcmd, "acheter", true) == 0) // Acheter une maison
if(PlayerInfo[playerid][pOHouse] == 0)
{
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
print("Lancement Boucle 108");
for(new h = 0; h < totalhouses; h++)
{
if(PlayerToPoint(2.0, playerid, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]) && HouseInfo[h][hOwned] == 0)
{
if(HouseInfo[h][hOwned] == 1)
{ SendClientMessage(playerid, COLOR_MAISON, "[Info] Cette maison n'est pas а vendre."); return 1; }
pay_tempPrice[playerid] = HouseInfo[h][hValue];
pay_tempArticle[playerid] = h;
pay_tempType[playerid] = 3;
pay_showDialog(playerid, HouseInfo[h][hValue]);
break;
}
}
print("Fin Boucle 108");
return 1;
}