[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
[FAQ]Диалоги на дома
Дата: 26.02.2011, Суббота, 14:14:41 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 74
Репутация: 27+
Создаём ко всем форвардам
Code
forward PropertyDialogs();//by snoowker

В удобном для Вас месте создаем паблик.
Code

Code
public PropertyDialogs()//by snoowker  
{  
        new Float:oldposx, Float:oldposy, Float:oldposz;  
        new string[128];  
        for(new i = 0; i < MAX_PLAYERS; i++)  
        {  
         if(IsPlayerConnected(i))  
         {  
          GetPlayerPos(i, oldposx, oldposy, oldposz);  
          if(oldposx!=0.0 && oldposy!=0.0 && oldposz!=0.0)  
          {  
           for(new h = 0; h < sizeof(SBizzInfo); h++)  
           {  
            if(PlayerToPoint(2.0, i, SBizzInfo[h][sbEntranceX], SBizzInfo[h][sbEntranceY], SBizzInfo[h][sbEntranceZ]))  
            {  
             if(SBizzInfo[h][sbOwned] == 1)  
             {  
              format(string, sizeof(string), "Название: %s\nПлата за вход: $%d\n\nВладелец: %s\nExtortion by: %s\nLevel: %d",SBizzInfo[h][sbMessage],SBizzInfo[h][sbEntranceCost],SBizzInfo[h][sbOwner],SBizzInfo[h][sbExtortion],SBizzInfo[h][sbLevelNeeded]);  
             }  
             else  
             {  
              format(string, sizeof(string), "Этот бизнес продаётся!\nНазвание: %s\nЦена: $%d\nLevel: %d\nВведите /buybiz для приобретения собственности.",SBizzInfo[h][sbMessage],SBizzInfo[h][sbBuyPrice],SBizzInfo[h][sbLevelNeeded]);  
             }  
             ShowPlayerDialog(i,27,DIALOG_STYLE_MSGBOX,"Информация о бизнесе",string,"ENTER","CANCEL");  
             return 1;  
            }  
           }  
           for(new h = 0; h < sizeof(HouseInfo); h++)  
           {  
            if(PlayerToPoint(2.0, i, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]))  
            {  
             if(HouseInfo[h][hOwned] == 1)  
             {  
              if(HouseInfo[h][hRentabil] == 0)  
              {  
               format(string, sizeof(string), "Владелец: %s\nLevel: %d\nID дома: %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel],h);  
              }  
              else  
              {  
               format(string, sizeof(string), "Владелец: %s\nСтоимость аренды: $%d\nLevel: %d\nID дома: %d\nВведите /rentroom чтобы арендовать комнату.",HouseInfo[h][hOwner],HouseInfo[h][hRent],HouseInfo[h][hLevel], h);  
              }  
              ShowPlayerDialog(i,27,DIALOG_STYLE_MSGBOX,"Информация о доме",string,"ENTER","CANCEL");  
              return 1;  
             }  
             else  
             {  
              format(string, sizeof(string), "Этот дом продается!\n\nОписание: %s\nЦена: $%d\nLevel: %d\nID дома: %d\nВведите /buyhouse для приобретения собственности.",HouseInfo[h][hDiscription],HouseInfo[h][hValue],HouseInfo[h][hLevel], h);  
             }  
             ShowPlayerDialog(i,27,DIALOG_STYLE_MSGBOX,"Информация о доме",string,"ENTER","CANCEL");  
             return 1;  
            }  
           }  
           for(new h = 0; h < sizeof(BizzInfo); h++)  
           {  
            if(PlayerToPoint(2.0, i, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]))  
            {  
             if(BizzInfo[h][bOwned] == 1)  
             {  
              format(string, sizeof(string), "Название:%s\nПлата за вход: $%d\n\nВладелец: %s\nExtortion by: %s\nУровень: %d",BizzInfo[h][bMessage],BizzInfo[h][bEntranceCost],BizzInfo[h][bOwner],BizzInfo[h][bExtortion],BizzInfo[h][bLevelNeeded]);  
             }  
             else  
             {  
              format(string, sizeof(string), "Этот бизнес продаётся!\n\nНазвание:%s\nЦена: $%d\nLevel: %d\nВведите /buybiz для приобретения собственности.",BizzInfo[h][bMessage],BizzInfo[h][bBuyPrice],BizzInfo[h][bLevelNeeded]);  
             }  
             ShowPlayerDialog(i,27,DIALOG_STYLE_MSGBOX,"Информация о бизнесе",string,"ENTER","CANCEL");  
             return 1;  
            }  
           }  
          }//custompickups end  
         }  
        }  
        return 1;  
}

В

Code
public OnDialogResponse

Code
Code
if(dialogid == 27)//by snoowker  
         {  
             if(response)  
             {  
          new string[256];  
          for(new i = 0; i < sizeof(HouseInfo); i++)  
          {  
           if (PlayerToPoint(3, playerid,HouseInfo[i][hEntrancex], HouseInfo[i][hEntrancey], HouseInfo[i][hEntrancez]))  
           {  
            //printf("Found House :%d",i);  
            if(PlayerInfo[playerid][pPhousekey] == i || HouseInfo[i][hLock] == 0)  
            {  
             SetPlayerInterior(playerid,HouseInfo[i][hInt]);  
             SetPlayerPos(playerid,HouseInfo[i][hExitx],HouseInfo[i][hExity],HouseInfo[i][hExitz]);  
             GameTextForPlayer(playerid, "~w~Welcome Home", 5000, 1);  
             PlayerInfo[playerid][pInt] = HouseInfo[i][hInt];  
             PlayerInfo[playerid][pLocal] = i;  
            }  
            else  
            {  
             GameTextForPlayer(playerid, "~r~Locked", 5000, 1);  
            }  
           }  
          }  
          for(new i = 0; i < sizeof(BizzInfo); i++)  
          {  
           if (PlayerToPoint(3, playerid,BizzInfo[i][bEntranceX], BizzInfo[i][bEntranceY], BizzInfo[i][bEntranceZ]))  
           {  
            //printf("Found House :%d",i);  
            /*if(!IsACop(playerid) && i == 3)  
            {  
                SendClientMessage(playerid, COLOR_GREY, "   Только для копов !");  
                return 1;  
            }*/  
            if(PlayerInfo[playerid][pPbiskey] == i || GetPlayerMoney(playerid) >= BizzInfo[i][bEntranceCost])  
            {  
             if(PlayerInfo[playerid][pPbiskey] != i)  
             {  
              if(BizzInfo[i][bLocked] == 1)  
              {  
               GameTextForPlayer(playerid, "~r~Closed", 5000, 1);  
               return 1;  
              }  
              if(BizzInfo[i][bProducts] == 0)  
              {  
               GameTextForPlayer(playerid, "~r~Out Of Stock", 5000, 1);  
               return 1;  
              }  
              GivePlayerMoney(playerid,-BizzInfo[i][bEntranceCost]);  
              format(string, sizeof(string), "~r~-$%d~n~~w~type /exit~n~to get out", BizzInfo[i][bEntranceCost]);  
              BizzInfo[i][bTill] += BizzInfo[i][bEntranceCost];  
              ExtortionBiz(i, BizzInfo[i][bEntranceCost]);  
              BizzInfo[i][bProducts]--;  
              OnPropUpdate();  
              GameTextForPlayer(playerid, string, 5000, 3);  
             }  
             SetPlayerInterior(playerid,BizzInfo[i][bInterior]);  
             SetPlayerPos(playerid,BizzInfo[i][bExitX],BizzInfo[i][bExitY],BizzInfo[i][bExitZ]);  
             PlayerInfo[playerid][pInt] = BizzInfo[i][bInterior];  
             PlayerInfo[playerid][pLocal] = i+99;  
             new dood[MAX_PLAYER_NAME];  
             GetPlayerName(playerid, dood, sizeof(dood));  
             format(string, sizeof(string), "%s payed $%d to enter biz %d", dood, BizzInfo[i][bEntranceCost], i);  
             printf("%s", string);  
             PayLog(string);  
             //PlayerInfo[playerid][pLocal] = i;  
            }  
            else  
            {  
             GameTextForPlayer(playerid, "~r~You dont have the cash", 5000, 1);  
            }  
           }  
          }  
          for(new i = 0; i < sizeof(SBizzInfo); i++)  
          {  
           if (PlayerToPoint(3, playerid,SBizzInfo[i][sbEntranceX], SBizzInfo[i][sbEntranceY], SBizzInfo[i][sbEntranceZ]))  
           {  
            if(PlayerInfo[playerid][pPbiskey] == i || GetPlayerMoney(playerid) >= SBizzInfo[i][sbEntranceCost])  
            {  
             if(PlayerInfo[playerid][pPbiskey] != i)  
             {  
              if(SBizzInfo[i][sbLocked] == 1)  
              {  
               GameTextForPlayer(playerid, "~r~Closed", 5000, 1);  
               return 1;  
              }  
              if(SBizzInfo[i][sbProducts] == 0)  
              {  
               GameTextForPlayer(playerid, "~r~Out Of Stock", 5000, 1);  
               return 1;  
              }  
              if(i == 10)  
              {  
                  PaintballPlayers ++;  
                  PlayerPaintballing[playerid] = 1;  
                  new rand = random(sizeof(PaintballSpawns));  
               SetPlayerPos(playerid, PaintballSpawns[rand][0], PaintballSpawns[rand][1], PaintballSpawns[rand][2]);  
               TogglePlayerControllable(playerid, 0);  
              }  
              else if(i == 11)  
              {  
                  PlayerKarting[playerid] = 1;  
                  SendClientMessage(playerid, TEAM_GROVE_COLOR, "Теперь Вы можете участвовать в гонках на картах, садитесь в карт.");  
              }  
              else  
              {  
                  return 1;  
              }  
              GivePlayerMoney(playerid,-SBizzInfo[i][sbEntranceCost]);  
              gSpentCash[playerid] = GetPlayerMoney(playerid);  
              SBizzInfo[i][sbProducts]--;  
              SBizzInfo[i][sbTill] += SBizzInfo[i][sbEntranceCost];  
              ExtortionSBiz(i, SBizzInfo[i][sbEntranceCost]);  
              new dood[MAX_PLAYER_NAME];  
              GetPlayerName(playerid, dood, sizeof(dood));  
              format(string, sizeof(string), "%s payed $%d to enter sbiz %d", dood, SBizzInfo[i][sbEntranceCost], i);  
              printf("%s", string);  
              PayLog(string);  
              OnPropUpdate();  
             }  
            }  
            else  
            {  
             GameTextForPlayer(playerid, "~r~You dont have the cash", 5000, 1);  
            }  
           }  
          }  
         }  
         else  
         {  
             // -_-  
             return 1;  
         }  
        }

И не забудьте заменить ид диалога на свой.
27 - ИД диалога, в ShowPlayerDialog(i, вместо 27 поставьте свой ид диалога
В dialogid == 27 так-же поставьте свой ид диалога.

В public

Code
OnGameModeInIt
вставляем
Code
Code
SetTimer("PropertyDialogs",5000,1);//by snoowker

Автор: Snoowker (Satellite) aka Grey_Winston.

Кому помог - ставим +

Дата: 26.02.2011, Суббота, 16:04:38 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 203
Репутация: 334+
Drifter96, Копипастишь,копипасть качественно. =\ + не твоя работа за что +?
Дата: 26.02.2011, Суббота, 16:38:37 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 74
Репутация: 27+
Dima_Tkach, не умничай! ты много сам написал м?
Дата: 28.02.2011, Понедельник, 04:37:55 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 51
Репутация: 17+
Ну и ладно что копипаст, зато комунибудь поможет
Дата: 02.03.2011, Среда, 22:14:51 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 74
Репутация: 27+
2BX, Согласен
Дата: 04.03.2011, Пятница, 07:52:23 | Сообщение # $NUMBER
Группа: Забаненые
Сообщений: 273
Репутация: 251+
Ладно уж + поставлю за то что вырезал.
Дата: 04.03.2011, Пятница, 13:29:10 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 223
Репутация: 98+
нормально вроде все верно написано :)
Дата: 04.03.2011, Пятница, 16:44:56 | Сообщение # $NUMBER
Группа: Проверенные
Сообщений: 74
Репутация: 27+
Quote (SeoGod)
нормально вроде все верно написано

Не вроде а верно у меня самого на серве стоит)
Дата: 06.03.2011, Воскресенье, 23:49:02 | Сообщение # $NUMBER
Группа: Пользователи
Сообщений: 85
Репутация: 60+
Quote (Drifter96)
Не вроде а верно у меня самого на серве стоит)
это точно вписывал себе в мод.....
  • Страница 1 из 1
  • 1
Поиск: