07:47
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Модератор форума: Alcoholik  
Диалоги на дома и бизнессы.
SatelliteДата: Пятница, 12.11.2010, 19:35 | Сообщение # 1
Местный
Группа: Продвинутые
Сообщений: 622
Награды: 10
Город: Хмельницкий
Замечания: 20%
Статус:
В начало мода где все forward вставляем
Code
forward PropertyDialogs();//by snoowker

В удобном для Вас месте создаем паблик.
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;
}

В public OnDialogResponse
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 OnGameModeInIt вставляем

Code
SetTimer("PropertyDialogs",5000,1);//by snoowker

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

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


Сообщение отредактировал Satellite - Суббота, 13.11.2010, 11:11
DiSEДата: Пятница, 12.11.2010, 19:37 | Сообщение # 2
Группа: I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус:
Satellite, если обновляется инфа о доме, то поставлю +
SatelliteДата: Пятница, 12.11.2010, 19:45 | Сообщение # 3
Местный
Группа: Продвинутые
Сообщений: 622
Награды: 10
Город: Хмельницкий
Замечания: 20%
Статус:
Quote (DiSE)
Satellite, если обновляется инфа о доме, то поставлю +

Это не 3д текст. Она обновляется каждые 5 сек.
Чел подошел - ему показало ;)

Добавлено (12.11.2010, 19:45)
---------------------------------------------
Забыл указать, специально для школоты сделал точь в точь как на ГВ, заходил и скринил там диалог и делал такой-же :D

ABATAPДата: Пятница, 12.11.2010, 20:03 | Сообщение # 4
Советчик
Группа: Продвинутые
Сообщений: 1007
Награды: 14
Город: Новосибирск
Репутация: 729
Замечания: 0%
Статус:
Quote (Satellite)
В public OnDialogResponse

У меня нет такого
---------------------

Нашёл


Сообщение отредактировал ABATAP - Пятница, 12.11.2010, 20:05
themrsnkДата: Пятница, 12.11.2010, 20:15 | Сообщение # 5
themrsnk
Группа: I'm V.I.P.
Сообщений: 609
Награды: 14
Город: Челябинск
Репутация: 758
Замечания: 0%
Статус:
Лишний таймер - лаги сервера.
Сделать можно на пикапах,как игрок наступил на пикап так и выскакивает диалоговое окно.

Ну,а так пойдёт ;)


[INC]
vehicle_fun (0.3c only)
[GM]
tRPG (0.3c only)
[ADDON]
Samp spamer
colorgen
ABATAPДата: Пятница, 12.11.2010, 20:56 | Сообщение # 6
Советчик
Группа: Продвинутые
Сообщений: 1007
Награды: 14
Город: Новосибирск
Репутация: 729
Замечания: 0%
Статус:
Code
(53356) : error 017: undefined symbol "string"
(53356) : error 017: undefined symbol "string"
(53356) : error 029: invalid expression, assumed zero
(53356) : fatal error 107: too many error messages on one line

Ругаеться на строчку:

Code
format(string, sizeof(string), "~r~-$%d~n~~w~type /exit~n~to get out", BizzInfo[i][bEntranceCost]);

DiSEДата: Пятница, 12.11.2010, 21:14 | Сообщение # 7
Группа: I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус:
ABATAP, и ты называл себя скриптёром, эх ты. Сделай переменную string[256];
[RD]ChezДата: Суббота, 13.11.2010, 01:00 | Сообщение # 8
Мастер джэдай
Группа: Продвинутые
Сообщений: 3687
Награды: 206
Город: St. P
Репутация: 0
Замечания: 20%
Статус:
[SNK], лишний грамм жирного мяса - инфаркт миокарда...
Так теперь, что, не жрать?



1 час моей работы стоит минимум 800 рублей для срочных работ.
Знаю CodeIgniter, Kohana, втч. кастом(php), Вникаю в Yii. jQuery на должном уровне, немного разбираюсь в RightJS.
Алсо, 6 лет павно, 2 года в шарпе, понимаю си и плюсы.
Немного ассемблер.
Ох**тельный верстальщик какб.

Если ваш заказ потребует неделю работы и вы собираетесь заплатить 100 рублей - лес там ->> ^^^^^

chezrd@gmail.com
lance@chez-lab.ru
ABATAPДата: Суббота, 13.11.2010, 09:21 | Сообщение # 9
Советчик
Группа: Продвинутые
Сообщений: 1007
Награды: 14
Город: Новосибирск
Репутация: 729
Замечания: 0%
Статус:
DiSE, [off]я не называл себя скриптером[/off]
спасибо за помощь.

ИвентДата: Суббота, 13.11.2010, 10:34 | Сообщение # 10
Местный
Группа: I'm V.I.P.
Сообщений: 610
Награды: 65
Город: ?
Замечания: 100%
Статус:
Дождался :) Спасибо за мануал new_russian

Добавлено (13.11.2010, 10:34)
---------------------------------------------
I:\Admin\gamemodes\new.pwn(18546) : error 017: undefined symbol "GetPlayerMoneyNoCheat"
I:\Admin\gamemodes\new.pwn(18560) : error 017: undefined symbol "GivePlayerMoneyNoCheat"
I:\Admin\gamemodes\new.pwn(18589) : error 017: undefined symbol "GetPlayerMoneyNoCheat"
I:\Admin\gamemodes\new.pwn(18620) : error 017: undefined symbol "GivePlayerMoneyNoCheat"
I:\Admin\gamemodes\new.pwn(18621) : error 017: undefined symbol "GetPlayerMoneyNoCheat"
Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase

5 Errors.
Эм... mda Исправить как то?


Банец.
ABATAPДата: Суббота, 13.11.2010, 10:39 | Сообщение # 11
Советчик
Группа: Продвинутые
Сообщений: 1007
Награды: 14
Город: Новосибирск
Репутация: 729
Замечания: 0%
Статус:
Ивент,

Попробуй

Code
GetPlayerMoneyNoCheat

Заменить на

Code
GetPlayerMoney

И дальше по аналогии, мне помогло! ;)

ИвентДата: Суббота, 13.11.2010, 10:43 | Сообщение # 12
Местный
Группа: I'm V.I.P.
Сообщений: 610
Награды: 65
Город: ?
Замечания: 100%
Статус:
ABATAP, Спасибо помогло crazy


Банец.
SatelliteДата: Суббота, 13.11.2010, 11:10 | Сообщение # 13
Местный
Группа: Продвинутые
Сообщений: 622
Награды: 10
Город: Хмельницкий
Замечания: 20%
Статус:
Исправил мануал, добавил стринг и изменил раздачу денег. Убрал вирт мир с домов.
p.s: можно просто не ставить таймер а функцию PropertyDialogs впихнуть уже в имеющийся таймер.



Сообщение отредактировал Satellite - Суббота, 13.11.2010, 11:12
Demon_WolfДата: Суббота, 13.11.2010, 14:42 | Сообщение # 14
Освоившийся
Группа: Пользователи
Сообщений: 90
Награды: 0
Город: Ульяновск
Репутация: -1
Замечания: 0%
Статус:
Всё отлично. Спасибо! Только один вопрос ещё как сделать чтобы сразу выводился диалог не через 3 секунды а сразу встал на пикап и вышел диалог.
ИвентДата: Суббота, 13.11.2010, 15:20 | Сообщение # 15
Местный
Группа: I'm V.I.P.
Сообщений: 610
Награды: 65
Город: ?
Замечания: 100%
Статус:
Demon_Wolf, Убери таймер


Банец.
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua