Отличный ответ)
Вид для печати
Как-то так..PHP код:
CMD:addhouse(playerid,params[])
{
/* Не использовать такие дефайны в каждой команде,
Подробней тут: http://pro-pawn.ru/showthread.php?1028-DC_CMD-v2-8-(23-03-14)8*/
new
house_price,
house_class;
if(PlayerInfo[playerid][pAdmin] < 6)return SCM(playerid,COLOR_GREY,ERROR);
if(sscanf(params,"ii", house_price, house_class]))return SCM(playerid,COLOR_GREY,"Совет: /addhouse [price][class]");
if(house_class < 1 || house_class > 4)return SCM(playerid,COLOR_GREY,"Класс дома от 1 до 4!");
if(house_price < 1000 || house_price > 10000000)return SCM(playerid,COLOR_GREY,"Цена от 1000 до 10кк!");
new Float:x,Float:y,Float:z;
GetPlayerPos(playerid,x,y,z);
HouseInfo[TOTALHOUSE+1][hPrice] = house_price;
HouseInfo[TOTALHOUSE+1][hBuyPrice] = 0;
HouseInfo[TOTALHOUSE+1][hLock] = 0;
HouseInfo[TOTALHOUSE+1][hEntrx] = x;
HouseInfo[TOTALHOUSE+1][hEntry] = y;
HouseInfo[TOTALHOUSE+1][hEntrz] = z;
switch(house_class)
{
case 1:
{
HouseInfo[TOTALHOUSE+1][hInt] = 4;
HouseInfo[TOTALHOUSE+1][hExitx] = 261.1165;
HouseInfo[TOTALHOUSE+1][hExity] = 1287.2197;
HouseInfo[TOTALHOUSE+1][hExitz] = 1080.2578;
strmid(HouseInfo[TOTALHOUSE+1][hDiscript], "D", 0, strlen("D"), 16);
}
case 2:
{
HouseInfo[TOTALHOUSE+1][hInt] = 10;
HouseInfo[TOTALHOUSE+1][hExitx] = 24.3769;
HouseInfo[TOTALHOUSE+1][hExity] = 1341.1829;
HouseInfo[TOTALHOUSE+1][hExitz] = 1084.375;
strmid(HouseInfo[TOTALHOUSE+1][hDiscript], "C", 0, strlen("D"), 16);
}
case 3:
{
HouseInfo[TOTALHOUSE+1][hInt] = 7;
HouseInfo[TOTALHOUSE+1][hExitx] = 225.630997;
HouseInfo[TOTALHOUSE+1][hExity] = 1022.479980;
HouseInfo[TOTALHOUSE+1][hExitz] = 1084.069946;
strmid(HouseInfo[TOTALHOUSE+1][hDiscript], "B", 0, strlen("D"), 16);
}
case 4:
{
HouseInfo[TOTALHOUSE+1][hInt] = 6;
HouseInfo[TOTALHOUSE+1][hExitx] = 234.2826;
HouseInfo[TOTALHOUSE+1][hExity] = 1065.229;
HouseInfo[TOTALHOUSE+1][hExitz] = 1084.2101;
strmid(HouseInfo[TOTALHOUSE+1][hDiscript], "A", 0, strlen("D"), 16);
}
}
TOTALHOUSE++;
HouseInfo[TOTALHOUSE][hVirtual] = TOTALHOUSE;
strmid(HouseInfo[TOTALHOUSE][hOwner], "None", 0, strlen("None"), 24);
HouseInfo[TOTALHOUSE][hMIcon] = CreateDynamicMapIcon(HouseInfo[TOTALHOUSE][hEntrx], HouseInfo[TOTALHOUSE][hEntry], HouseInfo[TOTALHOUSE][hEntrz], 31, 0,-1,-1,-1,160.0);
HouseInfo[TOTALHOUSE][hPickup] = CreateDynamicPickup(1273, 23, HouseInfo[TOTALHOUSE][hEntrx], HouseInfo[TOTALHOUSE][hEntry], HouseInfo[TOTALHOUSE][hEntrz]);
SCM(playerid, COLOR_YELLOW," Дом успешно создан! ");
static const
frm_string[] = "INSERT INTO `house` (`hID`, `hEnterx`)
new query_string[sizeof(house)-2+11-2+11]; // дальше сам подсчитаешь
format(query_string, sizeof(query_string), frm_string, HouseInfo[TOTALHOUSE][hID], HouseInfo[TOTALHOUSE][hEntrx],
mysql_function_query(MysqlConnect_ID, str_house, false, "", "");
printf("Дом %d создан\n\n\n%s\n\n", TOTALHOUSE,str_house);
return 1;
}
Сначала вы работаете с TOTALHOUSE как с индексом + 1, потом сам TOTALHOUSE увеличиваете. Разве нельзя сделать это сразу?
Еще можно оcharовать массив :D.
А нельзя сделать так?PHP код:
HouseInfo[TOTALHOUSE][hDiscript] = 'A'
PHP код:
HouseInfo[TOTALHOUSE][hOwner] = "None";
Учитель из меня не очень, но вот в учебнике Кортеза доходчиво эта фича объяснена.