Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 2 из 2
  1. #1
    Аватар для flechette
    Пользователь

    Статус
    Оффлайн
    Регистрация
    04.08.2017
    Сообщений
    1
    Репутация:
    0 ±

    Проблема с домамы

    Вообщем, когда игрок в онлайне все работает нормально, кварплата снимается, но только он оффается все, после пайдея не слетает,при том что с бизнесамы все нормально
    То что в stock payday()
    Код:
    	if(GetPlayerHouse(i))
     		{
    			new b = GetPVarInt(i, "PlayerHouse");
    			if(!strcmp("None", HouseInfo[b][hOwner], true)) continue;
    			if(HouseInfo[b][hOplata] < GetHomeOplata(b))
       			{
    				new targetid = GetPlayerID(HouseInfo[b][hOwner]);
    				if(targetid != INVALID_PLAYER_ID)
        			{
    					PI[targetid][pBank] += HouseInfo[b][hBuyPrice];
    					PI[targetid][pSpawnChange] = 0;
    				    SendClientMessage(targetid, COLOR_WHITE, "- Вы не оплатили счета, выставленные за дом и он был продан государству");
           				SendClientMessage(targetid, COLOR_WHITE, "- На ваш банковский счет возвращена государственная стоимость дома");
    					if(PI[targetid][PlayerCarID] != INVALID_VEHICLE_ID)
    					{
    						DestroyVehicle(PI[targetid][PlayerCarID]);
    						PI[targetid][PlayerCarID] = INVALID_VEHICLE_ID;
    					}
    				}
    				else
    				{
    					format(query, sizeof(query), "SELECT * FROM "T_ACCOUNTS" WHERE name = '%s'", HouseInfo[b][hOwner]);
    					mysql_tquery(dbHandle, query, "OfflineClearHouse", "i", b);
    				}
    				MysqlUpdatePlayerInt(targetid, "spawnchange", 0);
    				strmid(HouseInfo[b][hOwner], "None", 0, strlen("None"), MAX_PLAYER_NAME);
    				HouseInfo[b][hBuyPrice] = HouseInfo[b][hOplata] = HouseInfo[b][hGarage] = HouseInfo[b][hAutoDoors] = 0;
    				HouseInfo[b][hLock] = 1;
    				format(query, sizeof(query), "UPDATE "T_HOUSE" SET hOwner='%s',hOplata=%d,buyprice=%d,hGarage=%d,hAutoDoors=%d,hLock=%d WHERE id=%d",
    				HouseInfo[b][hOwner],HouseInfo[b][hOplata],HouseInfo[b][hBuyPrice],HouseInfo[b][hGarage],HouseInfo[b][hAutoDoors],HouseInfo[b][hLock],b);
    				mysql_tquery(dbHandle, query, "", "");
    				UpdateHouse(b);
    			}
    			else
    			{
        			HouseInfo[b][hOplata] -= GetHomeOplata(b);
    				MysqlUpdateHouseInt(b, "hOplata", HouseInfo[b][hOplata]);
    				HouseInfo[b][hRob] = false;
    			}
    		}
    	}
    stock OfflineClearHouse
    Код:
    forward OfflineClearHouse(houseid);
    public OfflineClearHouse(houseid)
    {
        new rows, fields, texts[16], text[4];
    	cache_get_data(rows, fields);
    	if(rows)
    	{
    		cache_get_field_content(0, "text", texts);
    	}
    	sscanf(texts, "p<,>a<i>[4]", text);
    	format(texts, sizeof(texts), "%i, %i, %i, %i", houseid, text[1], text[2], text[3]);
    	format(query, sizeof(query), "UPDATE "T_ACCOUNTS"  SET text = '%s' WHERE name = '%s'", texts, HouseInfo[houseid][hOwner]);
    	mysql_tquery(dbHandle, query, "", "");
    	return 1; 
    }

  2. #2
    Аватар для BodyanZe
    Пользователь

    Статус
    Оффлайн
    Регистрация
    31.01.2017
    Сообщений
    23
    Репутация:
    0 ±
    Всё верно. Пока игрок онлайн - будут происходить операции с домом, по проверке
    PHP код:
    if(GetPlayerHouse(i)) 
    Если хотите, чтобы квартплата считывалась без присутствия игрока на сервере, то создайте отдельный цикл, который будет перебирать все дома на сервере во время пайдея и считывать с них квартплату.
    Последний раз редактировалось BodyanZe; 05.08.2017 в 21:50.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •