yuras0401
Умник
Помогите!!!!!! сделал системку домов, всё норм дома грузит ставит пикапы, делает 3д тексты, но вот беда, когда я покупаю любой домик то оно мне покупает первый дом в файле...
Код в спойлере
Код в спойлере
public LoadHouse()
{
new cords[12][64];
new sff[256];
new File: file = fopen("houses.cfg",io_read);
if(file)
{
new h;
while(h<sizeof(HouseInfo))
{
fread(file,sff);
split(sff,cords,',');
HouseInfo[h][hOwned] = strval(cords[0]);
strmid(HouseInfo[h][hOwner],cords[1],0,strlen(cords[1]),255);
HouseInfo[h][hEnx] = floatstr(cords[2]);
HouseInfo[h][hEny] = floatstr(cords[3]);
HouseInfo[h][hEnz] = floatstr(cords[4]);
HouseInfo[h][hExx] = floatstr(cords[5]);
HouseInfo[h][hExy] = floatstr(cords[6]);
HouseInfo[h][hExz] = floatstr(cords[7]);
HouseInfo[h][hLevel] = strval(cords[8]);
HouseInfo[h][hInt] = strval(cords[9]);
HouseInfo[h][hPrice] = strval(cords[10]);
HouseInfo[h][hLock] = strval(cords[11]);
h++;
}
fclose(file);
}
return true;
}
public SaveHouse()
{
new h, ftr[256];
new File: file;
while(h<sizeof(HouseInfo))
{
format(ftr,sizeof(ftr),"%d,%s,%f,%f,%f,%f,%f,%f,%d,%d,%d\n",
HouseInfo[h][hOwned],
HouseInfo[h][hOwner],
HouseInfo[h][hEnx],
HouseInfo[h][hEny],
HouseInfo[h][hEnz],
HouseInfo[h][hExx],
HouseInfo[h][hExy],
HouseInfo[h][hExz],
HouseInfo[h][hLevel],
HouseInfo[h][hInt],
HouseInfo[h][hPrice],
HouseInfo[h][hLock]);
if(h==0)
{
file=fopen("houses.cfg",io_write);
}
else
{
file=fopen("houses.cfg",io_append);
}
fwrite(file,ftr);
h++;
fclose(file);
}
return true;
}
public Pikaps(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
//==========================HOUSE=========================
new htr[256];
for(new h=0; h<sizeof(HouseInfo); h++)
{
if(PlayerToPoint(0.8,playerid,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz]))
{
if(HouseInfo[h][hOwned]==0)
{
if(PlayerInfo[playerid][pPhousekey]!=0 && strcmp(name, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0)
{
SendClientMessage(playerid,COLOR_RED,"У Вас уже есть дом!");
return true;
}
else
{
format(htr,256,"{FFFFFF}Владелец: %s\nУровень: %d\nЦена: %d\nНомер дома: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel],HouseInfo[h][hPrice],h+1);
ShowPlayerDialog(playerid,24,DIALOG_STYLE_MSGBOX,"{FFFFFF}",htr,"Купить","Отмена");
}
}
}
}
for(new h=0; h<sizeof(HouseInfo); h++)
{
if(HouseInfo[h][hOwned]==0)
{
CreateDynamicPickup(1273,2,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz]);
}
else if(HouseInfo[h][hOwned]==1)
{
CreateDynamicPickup(1272,2,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz]);
}
}
return true;
}
Гейм мод инит
new htr[256];
for(new h=0; h<sizeof(HouseInfo); h++)
{
if(HouseInfo[h][hOwned]==0)
{
format(htr,256,"{FFFFFF}Владелец: %s\nУровень: %d\nЦена: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel],HouseInfo[h][hPrice]);
house[h]=CreateDynamic3DTextLabel(htr,COLOR_WHITE,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz],20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,0,0,-1,100.0);
}
else if(HouseInfo[h][hOwned]==1)
{
format(htr,256,"{FFFFFF}Владелец: %s\nНомер дома: %d",HouseInfo[h][hOwner],h);
house[h]=CreateDynamic3DTextLabel(htr,COLOR_WHITE,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz],20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,0,0,-1,100.0);
}
}
for(new h=0; h<sizeof(HouseInfo); h++)
{
if(HouseInfo[h][hOwned]==0)
{
CreateDynamicMapIcon(HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz],31,-1,0,0,-1,400.0);
}
else if(HouseInfo[h][hOwned]==1)
{
CreateDynamicMapIcon(HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz],32,-1,0,0,-1,400.0);
}
}
for(new h=0; h<sizeof(HouseInfo); h++)
{
if(HouseInfo[h][hOwned]==0)
{
CreateDynamicPickup(1273,2,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz],0,0,-1,40.0);
}
else if(HouseInfo[h][hOwned]==1)
{
CreateDynamicPickup(1272,2,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz],0,0,-1,40.0);
}
}
а вот и диалог
else if(dialogid==24)
{
if(response)
{
for(new h=0; h<sizeof(HouseInfo); h++)
{
if(PlayerInfo[playerid][pLevel]>=HouseInfo[h][hLevel])
{
if(GetPlayerMoney(playerid)>=HouseInfo[h][hPrice])
{
PlayerInfo[playerid][pPhousekey]=h;
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
strmid(HouseInfo[h][hOwner],pname,0,strlen(pname),255);
HouseInfo[h][hLock]=1;
HouseInfo[h][hOwned]=1;
PlayerInfo[playerid][pInt]=HouseInfo[h][hInt];
GivePlayerMoney(playerid,-HouseInfo[h][hPrice]);
SetPlayerInterior(playerid,HouseInfo[h][hInt]);
SetPlayerPos(playerid,HouseInfo[h][hExx],HouseInfo[h][hExy],HouseInfo[h][hExz]);
SendClientMessage(playerid,COLOR_WHITE,"=====================");
SendClientMessage(playerid,COLOR_YELLOW,"Поздравляем с покупкой!");
SendClientMessage(playerid,COLOR_YELLOW,"Чтоб выйти из дома используйте lAlt");
SendClientMessage(playerid,COLOR_YELLOW,"Меню дома используйте - /hmenu");
SendClientMessage(playerid,COLOR_WHITE,"=====================");
SaveAccounts();
SaveHouse();
new htr[256];
format(htr,256,"{FFFFFF}Владелец: %s\nНомер дома: %d",HouseInfo[h][hOwner],PlayerInfo[playerid][pPhousekey]);
UpdateDynamic3DTextLabelText(house[h],COLOR_WHITE,htr);
Pikaps(playerid);
return true;
}
else{SendClientMessage(playerid,COLOR_RED,"Не достаточно денег");}
}
else{SendClientMessage(playerid,COLOR_RED,"Не достаточный уровень");}
}
}
}
{
new cords[12][64];
new sff[256];
new File: file = fopen("houses.cfg",io_read);
if(file)
{
new h;
while(h<sizeof(HouseInfo))
{
fread(file,sff);
split(sff,cords,',');
HouseInfo[h][hOwned] = strval(cords[0]);
strmid(HouseInfo[h][hOwner],cords[1],0,strlen(cords[1]),255);
HouseInfo[h][hEnx] = floatstr(cords[2]);
HouseInfo[h][hEny] = floatstr(cords[3]);
HouseInfo[h][hEnz] = floatstr(cords[4]);
HouseInfo[h][hExx] = floatstr(cords[5]);
HouseInfo[h][hExy] = floatstr(cords[6]);
HouseInfo[h][hExz] = floatstr(cords[7]);
HouseInfo[h][hLevel] = strval(cords[8]);
HouseInfo[h][hInt] = strval(cords[9]);
HouseInfo[h][hPrice] = strval(cords[10]);
HouseInfo[h][hLock] = strval(cords[11]);
h++;
}
fclose(file);
}
return true;
}
public SaveHouse()
{
new h, ftr[256];
new File: file;
while(h<sizeof(HouseInfo))
{
format(ftr,sizeof(ftr),"%d,%s,%f,%f,%f,%f,%f,%f,%d,%d,%d\n",
HouseInfo[h][hOwned],
HouseInfo[h][hOwner],
HouseInfo[h][hEnx],
HouseInfo[h][hEny],
HouseInfo[h][hEnz],
HouseInfo[h][hExx],
HouseInfo[h][hExy],
HouseInfo[h][hExz],
HouseInfo[h][hLevel],
HouseInfo[h][hInt],
HouseInfo[h][hPrice],
HouseInfo[h][hLock]);
if(h==0)
{
file=fopen("houses.cfg",io_write);
}
else
{
file=fopen("houses.cfg",io_append);
}
fwrite(file,ftr);
h++;
fclose(file);
}
return true;
}
public Pikaps(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
//==========================HOUSE=========================
new htr[256];
for(new h=0; h<sizeof(HouseInfo); h++)
{
if(PlayerToPoint(0.8,playerid,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz]))
{
if(HouseInfo[h][hOwned]==0)
{
if(PlayerInfo[playerid][pPhousekey]!=0 && strcmp(name, HouseInfo[PlayerInfo[playerid][pPhousekey]][hOwner], true) == 0)
{
SendClientMessage(playerid,COLOR_RED,"У Вас уже есть дом!");
return true;
}
else
{
format(htr,256,"{FFFFFF}Владелец: %s\nУровень: %d\nЦена: %d\nНомер дома: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel],HouseInfo[h][hPrice],h+1);
ShowPlayerDialog(playerid,24,DIALOG_STYLE_MSGBOX,"{FFFFFF}",htr,"Купить","Отмена");
}
}
}
}
for(new h=0; h<sizeof(HouseInfo); h++)
{
if(HouseInfo[h][hOwned]==0)
{
CreateDynamicPickup(1273,2,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz]);
}
else if(HouseInfo[h][hOwned]==1)
{
CreateDynamicPickup(1272,2,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz]);
}
}
return true;
}
Гейм мод инит
new htr[256];
for(new h=0; h<sizeof(HouseInfo); h++)
{
if(HouseInfo[h][hOwned]==0)
{
format(htr,256,"{FFFFFF}Владелец: %s\nУровень: %d\nЦена: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel],HouseInfo[h][hPrice]);
house[h]=CreateDynamic3DTextLabel(htr,COLOR_WHITE,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz],20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,0,0,-1,100.0);
}
else if(HouseInfo[h][hOwned]==1)
{
format(htr,256,"{FFFFFF}Владелец: %s\nНомер дома: %d",HouseInfo[h][hOwner],h);
house[h]=CreateDynamic3DTextLabel(htr,COLOR_WHITE,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz],20.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,0,0,-1,100.0);
}
}
for(new h=0; h<sizeof(HouseInfo); h++)
{
if(HouseInfo[h][hOwned]==0)
{
CreateDynamicMapIcon(HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz],31,-1,0,0,-1,400.0);
}
else if(HouseInfo[h][hOwned]==1)
{
CreateDynamicMapIcon(HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz],32,-1,0,0,-1,400.0);
}
}
for(new h=0; h<sizeof(HouseInfo); h++)
{
if(HouseInfo[h][hOwned]==0)
{
CreateDynamicPickup(1273,2,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz],0,0,-1,40.0);
}
else if(HouseInfo[h][hOwned]==1)
{
CreateDynamicPickup(1272,2,HouseInfo[h][hEnx],HouseInfo[h][hEny],HouseInfo[h][hEnz],0,0,-1,40.0);
}
}
а вот и диалог
else if(dialogid==24)
{
if(response)
{
for(new h=0; h<sizeof(HouseInfo); h++)
{
if(PlayerInfo[playerid][pLevel]>=HouseInfo[h][hLevel])
{
if(GetPlayerMoney(playerid)>=HouseInfo[h][hPrice])
{
PlayerInfo[playerid][pPhousekey]=h;
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid,pname,sizeof(pname));
strmid(HouseInfo[h][hOwner],pname,0,strlen(pname),255);
HouseInfo[h][hLock]=1;
HouseInfo[h][hOwned]=1;
PlayerInfo[playerid][pInt]=HouseInfo[h][hInt];
GivePlayerMoney(playerid,-HouseInfo[h][hPrice]);
SetPlayerInterior(playerid,HouseInfo[h][hInt]);
SetPlayerPos(playerid,HouseInfo[h][hExx],HouseInfo[h][hExy],HouseInfo[h][hExz]);
SendClientMessage(playerid,COLOR_WHITE,"=====================");
SendClientMessage(playerid,COLOR_YELLOW,"Поздравляем с покупкой!");
SendClientMessage(playerid,COLOR_YELLOW,"Чтоб выйти из дома используйте lAlt");
SendClientMessage(playerid,COLOR_YELLOW,"Меню дома используйте - /hmenu");
SendClientMessage(playerid,COLOR_WHITE,"=====================");
SaveAccounts();
SaveHouse();
new htr[256];
format(htr,256,"{FFFFFF}Владелец: %s\nНомер дома: %d",HouseInfo[h][hOwner],PlayerInfo[playerid][pPhousekey]);
UpdateDynamic3DTextLabelText(house[h],COLOR_WHITE,htr);
Pikaps(playerid);
return true;
}
else{SendClientMessage(playerid,COLOR_RED,"Не достаточно денег");}
}
else{SendClientMessage(playerid,COLOR_RED,"Не достаточный уровень");}
}
}
}
