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

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

    За подсказку буду очень благодарен

    Здравствуйте! У меня такая вот проблемка. Я кое как написал систему домов, но вот команду продажи домов игроку и государству не как не могу подстроить под систему. Подскажите как это сделать. Заранее спасибо.

    Вот код системы
    PHP код:
    enum hInfo // ñèñòåìà äîìîâ
    {
        
    hID,
    Float:hEntrx,
    Float:hEntry,
    Float:hEntrz,
    Float:hExitx,
    Float:hExity,
    Float:hExitz,
        
    hOwner[MAX_PLAYER_NAME],
         
    hPrice,
        
    hBuyPrice,
        
    hInt,
        
    hVirtual,
        
    hLock,
        
    hMIcon,
        
    hPickup,
        
    hDiscript[3]
    };
    new 
    HouseInfo[MAX_HOUSE][hInfo];
    new 
    TOTALHOUSE;
        case 
    27:
            {
                if(!
    response) return 1;
                new 
    idx GetPVarInt(playerid"PlayerHouse");
                   if(!
    strcmp(HouseInfo[idx][hOwner],"None",true))
                   {
                    if(
    Player[playerid][pMoney] < HouseInfo[idx][hPrice])
                        return 
    SendClientMessage(playeridCOLOR_GREY"Ó Âàñ íåäîñòàòî÷íî ñðåäñòâ!");
                    else
                    {
                        new 
    house 0,
                            
    string[30];
                        for(new 
    1<= TOTALHOUSE;i++)
                        {
                               if(!
    strcmp(HouseInfo[i][hOwner],GN(playerid),true)) house++;
                        }
                        if(
    house != 0) return SendClientMessage(playeridCOLOR_GREY"Ó Âàñ óæå åñòü äîì!");
                        
    Player[playerid][pMoney] -= HouseInfo[idx][hPrice];
                        
    HouseInfo[idx][hBuyPrice] = HouseInfo[idx][hPrice];
                        
    format(string,sizeof(string),"Âû êóïèëè äîì çà %i$",HouseInfo[idx][hPrice]);
                        
    SendClientMessage(playeridCOLOR_WHITEstring);
                        
    SendClientMessage(playeridCOLOR_LIGHTRED"Âíèìàíèå! Íå çàáûâàéòå ïîïîëíÿòü äîìàøíèé ñ÷åò");
                         
    format(HouseInfo[idx][hOwner],MAX_PLAYER_NAME,"%s",GN(playerid));
                        new 
    query[256];
                        
    format(querysizeof(query), "\
                        UPDATE `house` SET `hOwner` = '%s', `hBuyprice` = %i WHERE `hID` = '%d' LIMIT 1"
    ,
                         
    HouseInfo[idx][hOwner], HouseInfo[idx][hBuyPrice], HouseInfo[idx][hID]);
                        
    mysql_function_query(ConnectMySQLqueryfalse"""");
                        
    SetPlayerPos(playerid,HouseInfo[idx][hExitx],HouseInfo[idx][hExity],HouseInfo[idx][hExitz]);
                        
    SetPlayerInterior(playerid,HouseInfo[idx][hInt]);
                        
    SetPlayerVirtualWorld(playerid,HouseInfo[idx][hVirtual]);
                        
    SetPlayerFacingAngle(playerid, -90.0);
                        
    UpdateHouse(idx);
                         
    SavePlayer(playerid);
                        return 
    1;
                    }
                }
                else
                {
                    if(
    HouseInfo[idx][hLock] == 1)
                    {
                        if(
    strcmp(GN(playerid), HouseInfo[idx][hOwner], true) == 0)
                        {
                            
    SetPlayerPos(playerid,HouseInfo[idx][hExitx],HouseInfo[idx][hExity],HouseInfo[idx][hExitz]);
                            
    SetPlayerInterior(playerid,HouseInfo[idx][hInt]);
                            
    SetPlayerVirtualWorld(playerid,HouseInfo[idx][hVirtual]);
                            
    SetPlayerFacingAngle(playerid, -90.0);
                        }
                        
    GameTextForPlayer(playerid"~r~Locked"50001);
                    }
                    else
                    {
                        
    SetPlayerPos(playerid,HouseInfo[idx][hExitx],HouseInfo[idx][hExity],HouseInfo[idx][hExitz]);
                        
    SetPlayerInterior(playerid,HouseInfo[idx][hInt]);
                        
    SetPlayerVirtualWorld(playerid,HouseInfo[idx][hVirtual]);
                        
    SetPlayerFacingAngle(playerid, -90.0);
                    }
                }
            }
            case 
    28:
            {
                if(!
    response) return 1;
                new 
    GetPVarInt(playerid"PlayerHouse");
                switch(
    listitem)
                {
                    case 
    0:
                    {
                        
    HouseInfo[h][hLock] = (HouseInfo[h][hLock]) ? (0) : (1);
                        
    GameTextForPlayer(playerid, (HouseInfo[h][hLock]) ? ("~g~Locked") : ("~r~Locked"), 50001);
                    }
                    case 
    1ShowPlayerDialog(playerid29DSM"Ïðîäàòü äîì""{FFFF00}Âû õîòèòå ïðîäàòü ñâîé äîì ãîñóäàðñòâó?\n{32CD32}Âàì íà÷èñëèòñÿ ñóììà â ðàçìåðå ãîñóäàðñòâåííîé öåíû äîìà""Äà""Íåò");
                    case 
    2:
                    {
                        static const 
    statistics[] = "\
                        Öåíà ïîêóïêè äîìà:\t%d\n\
                        Êëàññ äîìà:\t\t%s\n\
                        Ñòàòóñ äâåðåé:\t%s"
    ;
                        new 
    house_statistics[sizeof(statistics)+21-6];
                        
    format(house_statisticssizeof(house_statistics), statistics,
                         
    HouseInfo[h][hBuyPrice], HouseInfo[h][hDiscript], (HouseInfo[h][hLock]) ? ("Îòêðûòû") : ("Çàêðûòû"));
                        
    ShowPlayerDialog(playerid30DSM"Ñòàòèñòèêà äîìà"house_statistics"Îêåé""");
                    }
                }
            }
            case 
    29:
            {
                if(
    response)
                {
                    new 
    GetPVarInt(playerid"PlayerHouse");
                    
    HouseInfo[h][hPrice] = GetPVarInt(playerid,"PriceHouse");
                    
    strmid(HouseInfo[h][hOwner], "None"0strlen("None"), MAX_PLAYER_NAME);
                    
    HouseInfo[h][hLock] = 0;
                    
    SetHouseStr(h"hOwner""None");
                       
    SetPlayerPos(playerid,HouseInfo[h][hEntrx],HouseInfo[h][hEntry],HouseInfo[h][hEntrz]);
                       
    SetPlayerFacingAngle(playerid, -90);
                       
    SetPlayerInterior(playerid,0);
                       
    SetPlayerVirtualWorld(playerid,0);
                       
    Player[playerid][pMoney] += HouseInfo[h][hBuyPrice];
                    
    HouseInfo[h][hBuyPrice] = 0;
                    
    SendClientMessage(playeridCOLOR_LIGHTRED" Âû ïðîäàëè ñâîé äîì !");
                    new 
    query[200];
                    
    format(query,sizeof(query),"UPDATE `house` SET  `hOwner` = '%s',`hPrice` = '%d',\
                     `hBuyPrice` = '%d', `hLock` = %d WHERE `hID` = %d LIMIT 1"
    ,
                     
    HouseInfo[h][hOwner], HouseInfo[h][hPrice], HouseInfo[h][hBuyPrice], HouseInfo[h][hLock], HouseInfo[h][hID]);
                    
    mysql_function_query(ConnectMySQLqueryfalse"""");
                    
    printf("\n\n%s\n\n"query);
                    
    UpdateHouse(h);
                    
    SavePlayer(playerid);
                    
    DeletePVar(playerid"PriceHouse");
                }
                else 
    DeletePVar(playerid"PriceHouse");
            }
    stock UpdateHouse(idx)
    {
        
    DestroyDynamicMapIcon(HouseInfo[idx][hMIcon]);
        
    DestroyDynamicPickup(HouseInfo[idx][hPickup]);
         if(!
    strcmp(HouseInfo[idx][hOwner],"None",true))
        {
            
    HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEntrx], HouseInfo[idx][hEntry], HouseInfo[idx][hEntrz], 310,-1,-1,-1,160.0);
            
    HouseInfo[idx][hPickup] = CreateDynamicPickup(127323HouseInfo[idx][hEntrx], HouseInfo[idx][hEntry], HouseInfo[idx][hEntrz]);
         }
        else
        {
            
    HouseInfo[idx][hMIcon] = CreateDynamicMapIcon(HouseInfo[idx][hEntrx], HouseInfo[idx][hEntry], HouseInfo[idx][hEntrz], 320,-1,-1,-1,160.0);
            
    HouseInfo[idx][hPickup] = CreateDynamicPickup(127223HouseInfo[idx][hEntrx], HouseInfo[idx][hEntry], HouseInfo[idx][hEntrz]);
        }
        return 
    1;
    }
    stock SetHouseStr(idxstolb[], znach[])
    {
        new 
    query[128];
        
    format(querysizeof(query), "UPDATE house SET  %s = '%s' WHERE hID = '%d'"stolbznachidx);
        return 
    mysql_function_query(ConnectMySQLqueryfalse"""");
    }
    stock GetPlayerHouse(playerid)
    {
        new 
    house 0;
        for(new 
    1<= TOTALHOUSE;i++)
        {
            if(!
    strcmp(HouseInfo[i][hOwner],GN(playerid),true)) house++, SetPVarInt(playerid"PlayerHouse"i);
        }
        return 
    house;
    }
    stock SetHouseInt(idxstolb[], znach)
    {
        new 
    query[128];
        
    format(querysizeof(query), "UPDATE house SET  %s = '%d' WHERE hID = '%d'"stolbznachidx);
        return 
    mysql_function_query(MysqlConnect_IDqueryfalse"""");
    }
    publics LoadHouse()
    {
        new 
    rows,fields;
        
    cache_get_data(rows,fields);
        if(
    rows 1) return 1;
        for(new 
    idxidx rowsidx++)
        {
             
    HouseInfo[idx+1][hID] = cache_get_field_content_int(idx"hID"ConnectMySQL);
            
    HouseInfo[idx+1][hEntrx] = cache_get_field_content_float(idx"hEntrx"ConnectMySQL);
            
    HouseInfo[idx+1][hEntry] = cache_get_field_content_float(idx"hEntry"ConnectMySQL);
            
    HouseInfo[idx+1][hEntrz] = cache_get_field_content_float(idx"hEntrz"ConnectMySQL);
            
    HouseInfo[idx+1][hExitx] = cache_get_field_content_float(idx"hExitx"ConnectMySQL);
            
    HouseInfo[idx+1][hExity] = cache_get_field_content_float(idx"hExity"ConnectMySQL);
            
    HouseInfo[idx+1][hExitz] = cache_get_field_content_float(idx"hExitz"ConnectMySQL);
            
    cache_get_field_content(idx"hDiscript"HouseInfo[idx+1][hDiscript], ConnectMySQL16);
             
    cache_get_field_content(idx"hOwner"HouseInfo[idx+1][hOwner], ConnectMySQLMAX_PLAYER_NAME);
             
    HouseInfo[idx+1][hPrice] = cache_get_field_content_int(idx"hPrice"ConnectMySQL);
             
    HouseInfo[idx+1][hBuyPrice] = cache_get_field_content_int(idx"hBuyprice"ConnectMySQL);
             
    HouseInfo[idx+1][hInt] = cache_get_field_content_int(idx"hInt"ConnectMySQL);
             
    HouseInfo[idx+1][hVirtual] = cache_get_field_content_int(idx"hVirtual"ConnectMySQL);
             
    HouseInfo[idx+1][hLock] = cache_get_field_content_int(idx"hLock"ConnectMySQL);
            if(!
    strcmp(HouseInfo[idx+1][hOwner],"None",true))
            {
                   
    HouseInfo[idx+1][hMIcon] =
                   
    CreateDynamicMapIcon(HouseInfo[idx+1][hEntrx],\
                
    HouseInfo[idx+1][hEntry], HouseInfo[idx+1][hEntrz], 310,-1,-1,-1,160.0);
                
    HouseInfo[idx+1][hPickup] = CreateDynamicPickup(127323HouseInfo[idx+1][hEntrx], HouseInfo[idx+1][hEntry], HouseInfo[idx+1][hEntrz]);
             }
             else
             {
                
    HouseInfo[idx+1][hMIcon] =
                
    CreateDynamicMapIcon(HouseInfo[idx+1][hEntrx],\
                 
    HouseInfo[idx+1][hEntry], HouseInfo[idx+1][hEntrz], 320,-1,-1,-1,160.0);
                
    HouseInfo[idx+1][hPickup] = CreateDynamicPickup(127223HouseInfo[idx+1][hEntrx], HouseInfo[idx+1][hEntry], HouseInfo[idx+1][hEntrz]);
             }
             
    TOTALHOUSE++;
        }
        
    printf("- Óñïåøíî çàãðóæåíû äîìà.Âñåãî äîìîâ %d",TOTALHOUSE);
        return 
    1;


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

    Статус
    Оффлайн
    Регистрация
    15.06.2014
    Сообщений
    651
    Репутация:
    106 ±
    Ошиблись разделом, вам в Стол заказов.

 

 

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

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

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

Ваши права

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