#pragma
Компетентный
Не могу не как впереть.
Сделал слёт домов но вот в чем проблема.
Если игрока нет на сервере у которого должен слететь дом, по идеи он у него должен слететь в оффлайне, так и происходит, но!
Это если тjлько сервер будет пустой, если же на сервере играют игроки, но нет владельца дома который должен слететь, то в чат игрокам пишет что Вы были выселены из дома,
и прелетают им деньги за дом. В чем может быть проблема?
Сделал слёт домов но вот в чем проблема.
Если игрока нет на сервере у которого должен слететь дом, по идеи он у него должен слететь в оффлайне, так и происходит, но!
Это если тjлько сервер будет пустой, если же на сервере играют игроки, но нет владельца дома который должен слететь, то в чат игрокам пишет что Вы были выселены из дома,
и прелетают им деньги за дом. В чем может быть проблема?
PHP:
if(newhour == 02 && newminute == 26 && newsecond == 00)
{
for(new i = 1; i <= TOTALHOUSE; i++)
{
if(GetString(HouseInfo[i][hOwner], "None")) continue;
if(HouseInfo[i][hDays] > 1)
{
HouseInfo[i][hDays]--;
mysql_str[0] = EOS;
mysql_format(connect_ID, mysql_str, sizeof(mysql_str), "UPDATE `"TABLE_HOUSE"` SET `Days` = '%d' WHERE `ID` = '%d' LIMIT 1",
HouseInfo[i][hDays], i);
mysql_tquery(connect_ID, mysql_str, "", "");
}
else
{
ClearPlayerHouse(i);
}
}
}
ClearPlayerHouse(i)
{
if(GetPlayerID(HouseInfo[i][hOwner]) != INVALID_PLAYER_ID)
{
PlayerInfo[GetPlayerID(HouseInfo[i][hOwner])][pHouse] = 0;
PlayerInfo[GetPlayerID(HouseInfo[i][hOwner])][pBank] += HouseInfo[i][hValue];
mysql_str[0] = EOS;
mysql_format(connect_ID, mysql_str, sizeof(mysql_str), "UPDATE `"TABLE_ACCOUNTS"` SET `House` = '0', `Bank` = '%d' WHERE `ID` = '%d' LIMIT 1",
PlayerInfo[GetPlayerID(HouseInfo[i][hOwner])][pBank], PlayerInfo[GetPlayerID(HouseInfo[i][hOwner])][pID]);
mysql_tquery(connect_ID, mysql_str, "", "");
new string[128];
format(string, sizeof(string), "Игрок %s был выселен из дома, возращены деьги %d", HouseInfo[i][hOwner], HouseInfo[i][hValue]);
printf(string);
SendClientMessage(GetPlayerID(HouseInfo[i][hOwner]), COLOR_LIGHTRED, "Вы были выселены из дома за неуплату квартплаты");
SendClientMessage(GetPlayerID(HouseInfo[i][hOwner]), COLOR_LIGHTRED, "Деньги за дом были возвращены на ваш банковский счёт");
HouseInfo[i][hDays] = 1;
HouseInfo[i][hLock] = 0;
HouseInfo[i][hHealth] = 0;
mysql_str[0] = EOS;
mysql_format(connect_ID, mysql_str, sizeof(mysql_str), "UPDATE `"TABLE_HOUSE"` SET `Days` = '1', `Lock` = '0', `Health` = '0', `Owner` = 'None' WHERE `ID` = '%d' LIMIT 1",
i);
mysql_tquery(connect_ID, mysql_str, "", "");
strmid(HouseInfo[i][hOwner], "None", false, strlen("None"), MAX_PLAYER_NAME);
UpdateHouse(i);
}
else
{
mysql_str[0] = EOS;
mysql_format(connect_ID, mysql_str, sizeof(mysql_str), "SELECT * FROM "TABLE_ACCOUNTS" WHERE `Name` = '%s'", HouseInfo[i][hOwner]);
mysql_tquery(connect_ID, mysql_str, "OfflineClearPlayerHouse", "i", i);
}
return true;
}
forward OfflineClearPlayerHouse(i);
public OfflineClearPlayerHouse(i)
{
new texts[25], text[5];
new
rows;
cache_get_row_count(rows);
if(rows)
{
cache_get_value_name(0, "Message", texts, 25);
}
sscanf(texts, "p<,>a<i>[5]", text);
mysql_str[0] = EOS;
mysql_format(connect_ID, mysql_str, sizeof(mysql_str), "UPDATE `"TABLE_ACCOUNTS"` SET `House` = '0', `Bank` = Bank + %i, `Message` = '%i, 1, %i, %i, %i' WHERE `Name` = '%s' LIMIT 1",
HouseInfo[i][hValue], text[0], text[2], text[3], text[4], HouseInfo[i][hOwner]);
mysql_tquery(connect_ID, mysql_str, "", "");
mysql_str[0] = EOS;
mysql_format(connect_ID, mysql_str, sizeof(mysql_str), "UPDATE `"TABLE_HOUSE"` SET `Days` = '1', `Lock` = '0', `Health` = '0', `Owner` = 'None' WHERE `ID` = '%d' LIMIT 1",
i);
mysql_tquery(connect_ID, mysql_str, "", "");
new string[148];
format(string, sizeof(string), "Игрок %s был выселен из дома в оффлайне, возращены деьги %d", HouseInfo[i][hOwner], HouseInfo[i][hValue]);
printf(string);
UpdateHouse(i);
return true;
}
stock GetPlayerID(str[])
{
foreach(new i : Player)
{
new testname[MAX_PLAYER_NAME];
GetPlayerName(i, testname, sizeof(testname));
if(strcmp(testname, str, true, strlen(str)) == 0) return i;
}
return INVALID_PLAYER_ID;
}
