• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Слёт домов

#pragma

Компетентный
Не могу не как впереть.
Сделал слёт домов но вот в чем проблема.
Если игрока нет на сервере у которого должен слететь дом, по идеи он у него должен слететь в оффлайне, так и происходит, но!
Это если т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;
}
 
Сверху Снизу