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

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

    Банкоматы на TextDraw

    Всем привет! И в этой теме я расскажу вам как создать банкоматы на TextDraw

    И так начнем:

    Ко всем new
    PHP код:
    new Text:Bankomat[8]; 
    Далее в public OnPlayerDisconnect(playerid, reason)

    PHP код:
    for(new x8x++) TextDrawHideForPlayer(playeridBankomat[x]);//Для того что бы не забивать память,очищаем 
    Теперь в public OnGameModeInit()

    PHP код:
    /////////////=========[Bankomat]
        
    Bankomat[0] = TextDrawCreate(215.529495134.749984"Terminal Megaphone");///"Terminal Megaphone" можно заменить на свое.
        
    TextDrawLetterSize(Bankomat[0], 0.4499991.600000);
        
    TextDrawTextSize(Bankomat[0], 414.588073, -51.916679);
        
    TextDrawAlignment(Bankomat[0], 1);
        
    TextDrawColor(Bankomat[0], -1);
        
    TextDrawUseBox(Bankomat[0], true);
        
    TextDrawBoxColor(Bankomat[0], 8388863);
        
    TextDrawSetShadow(Bankomat[0], 0);
        
    TextDrawSetOutline(Bankomat[0], 1);
        
    TextDrawBackgroundColor(Bankomat[0], 51);
        
    TextDrawFont(Bankomat[0], 1);
        
    TextDrawSetProportional(Bankomat[0], 1);

        
    Bankomat[1] = TextDrawCreate(213.647064153.416610"New Textdraw");
        
    TextDrawLetterSize(Bankomat[1], 0.4499991.600000);
        
    TextDrawTextSize(Bankomat[1], 64.47060374.083351);
        
    TextDrawAlignment(Bankomat[1], 1);
        
    TextDrawColor(Bankomat[1], -1);
        
    TextDrawUseBox(Bankomat[1], true);
        
    TextDrawBoxColor(Bankomat[1], 0);
        
    TextDrawSetShadow(Bankomat[1], 0);
        
    TextDrawSetOutline(Bankomat[1], 1);
        
    TextDrawBackgroundColor(Bankomat[1], 51);
        
    TextDrawFont(Bankomat[1], 5);
        
    TextDrawSetProportional(Bankomat[1], 1);
        
    TextDrawSetSelectable(Bankomat[1], true);
        
    TextDrawSetPreviewModel(Bankomat[1], 1274);
        
    TextDrawSetPreviewRot(Bankomat[1], 0.0000000.0000000.0000001.000000);

        
    Bankomat[2] = TextDrawCreate(279.058868153.999969"New Textdraw");
        
    TextDrawLetterSize(Bankomat[2], 0.4499991.600000);
        
    TextDrawTextSize(Bankomat[2], 68.70585673.500007);
        
    TextDrawAlignment(Bankomat[2], 1);
        
    TextDrawColor(Bankomat[2], -1);
        
    TextDrawUseBox(Bankomat[2], true);
        
    TextDrawBoxColor(Bankomat[2], 0);
        
    TextDrawSetShadow(Bankomat[2], 0);
        
    TextDrawSetOutline(Bankomat[2], 1);
        
    TextDrawBackgroundColor(Bankomat[2], 51);
        
    TextDrawFont(Bankomat[2], 5);
        
    TextDrawSetProportional(Bankomat[2], 1);
        
    TextDrawSetSelectable(Bankomat[2], true);
        
    TextDrawSetPreviewModel(Bankomat[2], 1277);
        
    TextDrawSetPreviewRot(Bankomat[2], 234.0000000.0000000.0000001.000000);

        
    Bankomat[3] = TextDrawCreate(348.705932154.000015"New Textdraw");
        
    TextDrawLetterSize(Bankomat[3], 0.4499991.600000);
        
    TextDrawTextSize(Bankomat[3], 67.76470973.499992);
        
    TextDrawAlignment(Bankomat[3], 1);
        
    TextDrawColor(Bankomat[3], -1);
        
    TextDrawUseBox(Bankomat[3], true);
        
    TextDrawBoxColor(Bankomat[3], 0);
        
    TextDrawSetShadow(Bankomat[3], 0);
        
    TextDrawSetOutline(Bankomat[3], 1);
        
    TextDrawBackgroundColor(Bankomat[3], 51);
        
    TextDrawFont(Bankomat[3], 5);
        
    TextDrawSetProportional(Bankomat[3], 1);
        
    TextDrawSetSelectable(Bankomat[3], true);
        
    TextDrawSetPreviewModel(Bankomat[3], 1273);
        
    TextDrawSetPreviewRot(Bankomat[3], 0.0000000.0000000.0000001.000000);

        
    Bankomat[4] = TextDrawCreate(215.529388231.000000"Put.M");
        
    TextDrawLetterSize(Bankomat[4], 0.4499991.600000);
        
    TextDrawTextSize(Bankomat[4], 276.23522914.583333);
        
    TextDrawAlignment(Bankomat[4], 1);
        
    TextDrawColor(Bankomat[4], -1);
        
    TextDrawUseBox(Bankomat[4], true);
        
    TextDrawBoxColor(Bankomat[4], 8388863);
        
    TextDrawSetShadow(Bankomat[4], 0);
        
    TextDrawSetOutline(Bankomat[4], 1);
        
    TextDrawBackgroundColor(Bankomat[4], 51);
        
    TextDrawFont(Bankomat[4], 1);
        
    TextDrawSetProportional(Bankomat[4], 1);

        
    Bankomat[5] = TextDrawCreate(280.941284230.999938"Balance");
        
    TextDrawLetterSize(Bankomat[5], 0.4499991.600000);
        
    TextDrawTextSize(Bankomat[5], 346.35278332.083335);
        
    TextDrawAlignment(Bankomat[5], 1);
        
    TextDrawColor(Bankomat[5], -1);
        
    TextDrawUseBox(Bankomat[5], true);
        
    TextDrawBoxColor(Bankomat[5], 8388863);
        
    TextDrawSetShadow(Bankomat[5], 0);
        
    TextDrawSetOutline(Bankomat[5], 1);
        
    TextDrawBackgroundColor(Bankomat[5], 51);
        
    TextDrawFont(Bankomat[5], 1);
        
    TextDrawSetProportional(Bankomat[5], 1);

        
    Bankomat[6] = TextDrawCreate(350.588287230.999954"Home");
        
    TextDrawLetterSize(Bankomat[6], 0.4499991.600000);
        
    TextDrawTextSize(Bankomat[6], 414.58819517.499998);
        
    TextDrawAlignment(Bankomat[6], 1);
        
    TextDrawColor(Bankomat[6], -1);
        
    TextDrawUseBox(Bankomat[6], true);
        
    TextDrawBoxColor(Bankomat[6], 8388863);
        
    TextDrawSetShadow(Bankomat[6], 0);
        
    TextDrawSetOutline(Bankomat[6], 1);
        
    TextDrawBackgroundColor(Bankomat[6], 51);
        
    TextDrawFont(Bankomat[6], 1);
        
    TextDrawSetProportional(Bankomat[6], 1);

        
    Bankomat[7] = TextDrawCreate(414.588195112.000030"LD_CHAT:thumbdn");
        
    TextDrawLetterSize(Bankomat[7], 0.4499991.600000);
        
    TextDrawTextSize(Bankomat[7], 21.17645822.166667);
        
    TextDrawAlignment(Bankomat[7], 1);
        
    TextDrawColor(Bankomat[7], 16711935);
        
    TextDrawUseBox(Bankomat[7], true);
        
    TextDrawBoxColor(Bankomat[7], 0);
        
    TextDrawSetShadow(Bankomat[7], 0);
        
    TextDrawSetOutline(Bankomat[7], 1);
        
    TextDrawBackgroundColor(Bankomat[7], 51);
        
    TextDrawFont(Bankomat[7], 4);
        
    TextDrawSetProportional(Bankomat[7], 1);
        
    TextDrawSetSelectable(Bankomat[7], true); 
    И теперь, если у вас есть команда /atm поступаем следующим образом:

    PHP код:

    else if (strcmp(cmd"/atm"true) == 0)
        {
            if(
    IsABankomat(playerid))//У меня это проверка у банкомата ли ты,у вас либо убирайте,либо на свое.
            
    {
                if(
    GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return true;
                
    ApplyAnimation(playerid,"CRIB","CRIB_Use_Switch",4.0,0,0,0,0,0);
                for(new 
    x8x++) TextDrawShowForPlayer(playeridBankomat[x]);//Показывает текстдрав
                
    SelectTextDraw(playerid0xFFFFFFAA);//Даем выбор на ТД
                
    return true;
            }
        } 
    И так же к кейсам, тоесть там где открывается меню банкоматов при нажатии ALT делаем почти то же самое:

    PHP код:
    if(newkeys == 16)
        {
            if(!
    IsPlayerInAnyVehicle(playerid))
            {
                if(
    IsABankomat(playerid))
                {
                    if(
    GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) { return true; }
                    
    ApplyAnimation(playerid,"CRIB","CRIB_Use_Switch",4.0,0,0,0,0,0);
                    for(new 
    x8x++) TextDrawShowForPlayer(playeridBankomat[x]);//Показываем  TextDraw
                        
    SelectTextDraw(playerid0xFFFFFFAA);//Даем выбор
                    
    return true;
                }
            }
        } 
    Как видите Диалог я убрал, и вам нужно сделать аналогично.

    и наконец в public OnPlayerClickTextDraw(playerid, Text:clickedid)

    PHP код:
    /////////////////============[Bankomate]
        
    if(clickedid == Bankomat[1])
        {
            
    format(stringer,sizeof(stringer), "Баланс вашего счета: %d вирт"PlayerInfo[playerid][pBank]);
            
    ShowPlayerDialog(playerid,8904,DIALOG_STYLE_LIST,stringer," - 500$\n - 1000$\n - 5000$\n - 10000$\n - 20000$\n - 50000$\n - 100000$","Ок","<< Назад");
            for(new 
    x8x++) TextDrawHideForPlayer(playeridBankomat[x]);
            
    CancelSelectTextDraw(playerid);
            return 
    true;

        }
        if(
    clickedid == Bankomat[2])
        {
            
    format(stringer,sizeof(stringer), "_________________________\nНа вашем счету %d вирт\n_________________________",PlayerInfo[playerid][pBank]);
            
    ShowPlayerDialog(playerid,8905,DIALOG_STYLE_MSGBOX,"Терминал",stringer,"<< Назад","");
            for(new 
    x8x++) TextDrawHideForPlayer(playeridBankomat[x]);
            
    CancelSelectTextDraw(playerid);
            return 
    true;

        }
        if(
    clickedid == Bankomat[3])
        {
            if(
    PlayerInfo[playerid][pPhousekey] == 255) return SendClientMessage(playeridCOLOR_WHITE"У вас нет дома");
            
    ShowPlayerDialog(playerid9521DIALOG_STYLE_LIST"Терминал","- на 7 дней\n- на 14 дней","Перевести""Выход");
            for(new 
    x8x++) TextDrawHideForPlayer(playeridBankomat[x]);
            
    CancelSelectTextDraw(playerid);
            return 
    true;

        }
        if(
    clickedid == Bankomat[7])
        {
            for(new 
    x8x++) TextDrawHideForPlayer(playeridBankomat[x]);
            
    CancelSelectTextDraw(playerid);
        } 
    Ну и конечно же результат нашей работы будет таким:
     Результат


    Если хотите, могу сделать сис-му банка на TextDraw, пишите если кому то нужно ;3.
    Последний раз редактировалось Виталий; 24.12.2014 в 22:33.
    #Скриптер#Маппер

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Функцию IsABankomat мы сами должны сделать как я понял?

    Просмотрите свой пост, обычный текст занесён в PHP код. Вам 48 часов на исправление кода.

  3. #3
    Аватар для Пельмень
    Пользователь

    Статус
    Оффлайн
    Регистрация
    05.12.2013
    Сообщений
    188
    Репутация:
    116 ±
    PHP код:
    for(new x8x++) TextDrawHideForPlayer(playeridBankomat[x]);//Для того что бы не забивать память,очищаем 
    Как это понимать, друг мой? По твоему, если текст дравы скрыты, массив Bankomat не забивает память? Или что то другое? Не пойму.

  4. #4
    Аватар для wAx
    ¯\_(ツ)_/¯

    Статус
    Оффлайн
    Регистрация
    13.12.2013
    Сообщений
    377
    Репутация:
    146 ±
    Мануал выполнен не очень качественно. Автору советую поработать над своим (или может не своим) кодом.

 

 

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

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

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

Ваши права

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