| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- /*
- /$$ /$$ /$$$$$$ /$$$$$$$ /$$$$$$$
- | $$$ | $$ /$$__ $$ | $$__ $$| $$__ $$
- | $$$$| $$| $$ \__/ | $$ \ $$| $$ \ $$
- | $$ $$ $$| $$ /$$$$ /$$$$$$| $$$$$$$/| $$$$$$$/
- | $$ $$$$| $$|_ $$|______/| $$__ $$| $$____/
- | $$\ $$$| $$ \ $$ | $$ \ $$| $$
- | $$ \ $$| $$$$$$/ | $$ | $$| $$
- |__/ \__/ \______/ |__/ |__/|__/
- Inactivity System
- Jingles
- Next Generation Gaming, LLC
- (created by Next Generation Gaming Development Team)
-
- * Copyright (c) 2016, Next Generation Gaming, LLC
- *
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are not permitted in any case.
- *
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
- #define INACTIVE_REGULAR 15552000 // 180 days
- #define INACTIVE_BRONZE_VIP 1814400 // 21 days
- #define INACTIVE_SILVER_VIP 2592000 // 30 days
- #define INACTIVE_GOLD_VIP 5184000 // 60 days
- /*
- task Inactive_ResourceCheck[60000 * 60]() { // Every 1 hour.
- Inactive_CheckHouses();
- }
- Inactive_CheckHouses() {
- mysql_tquery(MainPipeline, "SELECT id FROM houses WHERE `Inactive` = 0 AND `Expire` < UNIX_TIMESTAMP(NOW()) AND `Ignore` = 0", true, "Inactive_OnCheckHouses", "");
- }
- */
- forward Inactive_OnCheckHouses();
- public Inactive_OnCheckHouses() {
- new iRows,
- iFields,
- iCount,
- iHouseID;
- cache_get_data(iRows, iFields, MainPipeline);
- while(iCount < iRows) {
- iHouseID = cache_get_field_content_int(iCount, "id", MainPipeline);
- Inactive_ProcessProperty(iHouseID, 0);
- iCount++;
- }
- }
- Inactive_ProcessProperty(i, type) {
- new iOwnerID;
- switch(type) {
- case 0: { // Houses
- iOwnerID = HouseInfo[i][hOwnerID];
- HouseInfo[i][hLastLogin] = 0;
- HouseInfo[i][hExpire] = 0;
- HouseInfo[i][hInactive] = 1;
- HouseInfo[i][hValue] = 3000000;
- SaveHouse(i);
- ReloadHousePickup(i);
- format(szMiscArray, sizeof(szMiscArray), "UPDATE `accounts` SET `Apartment` = '-1', `Apartment2` = '-1', `Apartment3` = '-1' WHERE `id` = '%d'", HouseInfo[i][hOwnerID]);
- }
- }
- mysql_tquery(MainPipeline, szMiscArray, false, "Inactive_OnProcessProperty", "iii", i, type, iOwnerID);
- }
- forward Inactive_OnProcessProperty(i, type, iOwnerID);
- public Inactive_OnProcessProperty(i, type, iOwnerID) {
- if(type == 0) {
- /*
- format(szMiscArray, sizeof(szMiscArray), "INACTIVITY: House ID %d", i);
- DBLog(iOwnerID, INVALID_PLAYER_ID, "Inactivity", szMiscArray);
- */
- format(szMiscArray, sizeof(szMiscArray), "[HOUSE]: Account ID %d's House ID %d was set to INACTIVE.", iOwnerID, i);
- }
- Log("logs/inactivity.log", szMiscArray);
- }
- Inactive_BuyProperty(playerid, i, type) {
- switch(type) {
- case 0: {
- HouseInfo[i][hLastLogin] = gettime();
- HouseInfo[i][hExpire] = gettime() + INACTIVE_REGULAR;
- HouseInfo[i][hInactive] = 0;
- format(szMiscArray, sizeof(szMiscArray), "[HOUSE]: %s (%d) bought House ID (%d) previously owned by %s (%d)",
- GetPlayerNameExt(playerid), PlayerInfo[playerid][pId], i, HouseInfo[i][hOwnerName], HouseInfo[i][hOwnerID]);
- Log("logs/inactivity.log", szMiscArray);
- }
- }
- }
- Inactive_CalcTime() {
- /*
- if(PlayerInfo[playerid][pDonateRank] == 0) return INACTIVE_REGULAR;
- if(PlayerInfo[playerid][pDonateRank] == 1) return INACTIVE_BRONZE_VIP;
- if(PlayerInfo[playerid][pDonateRank] == 2) return INACTIVE_SILVER_VIP;
- if(PlayerInfo[playerid][pDonateRank] == 3) return INACTIVE_GOLD_VIP;
- */
- return INACTIVE_REGULAR;
- }
- /*
- CMD:inactivitycheck(playerid, params[]) {
- if(!IsAdminLevel(playerid, ADMIN_EXECUTIVE)) return 1;
- Inactive_ResourceCheck();
- cmd_admin(playerid, "[INACTIVITY]: All server properties are checked for their inactivity.");
- return 1;
- }
- */
|