Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Красивейший выбор скина в окошке с меню

Статус
В этой теме нельзя размещать новые ответы.

Smart

Ученик
Это красивейший выбор скина (класса) игрока. Такое можно редко где увидеть, но сделать это очень просто. Главное уметь и немного шевелить мозгами
Это подойдет для обсолютно любого мода, но вызовит положительные эмоции у игроков.

В чем это заключается?
Это заключается в том, что когда игрок выбирает скин (класс), выбираемый скин стоит в "окошке", и плюс ко всему справа от скина есть меню с названием скина или банд (это уже как пожелает душа скриптерская).

Как это сделать?
В принципе, это может вызвать затруднения, но только не у нас. Щас я все объясню!
Нам понадобится массив с 5-ю текстдравами и все. Пожробности увидите прямо сейчас.
Итак, начнём.

Создадим глобальную переменную - масив. (Для хранения текстдравов для одного игрока).
И 4 текстдравбокса.
PHP:
new Text:TextDrawsByGameyer[MAX_PLAYERS];//:D 
new Text:TextDrawBoxes[4];
Теперь создадим сами текстдравы и классы игроков (я создам 3 класса, вы делаете сколько вам угодно). Если у вас мод, то паблик OnGameModeInit(), если же скрипт, то OnFilterScriptInit()
P.S. В судь этого кода не вдавайте, этот код писал я. Это обычные 2 текстдрав бокса и один текстовой текстдрав.

PHP:
 /*ТекстДравы*/ 
    /*ТекстДравы*/ 
    TextDrawBoxes[0] = TextDrawCreate(-5.000000, -1.000000, "~n~"); 
    TextDrawBackgroundColor(TextDrawBoxes[0], 255); 
    TextDrawFont(TextDrawBoxes[0], 1); 
    TextDrawLetterSize(TextDrawBoxes[0], -0.009999, 49.699996); 
    TextDrawColor(TextDrawBoxes[0], -1); 
    TextDrawSetOutline(TextDrawBoxes[0], 0); 
    TextDrawSetProportional(TextDrawBoxes[0], 1); 
    TextDrawSetShadow(TextDrawBoxes[0], 1); 
    TextDrawUseBox(TextDrawBoxes[0], 1); 
    TextDrawBoxColor(TextDrawBoxes[0], 255); 
    TextDrawTextSize(TextDrawBoxes[0], 51.000000, 35.000000); 
    TextDrawBoxes[1] = TextDrawCreate(638.000000, 2.000000, "_"); 
    TextDrawAlignment(TextDrawBoxes[1], 3); 
    TextDrawBackgroundColor(TextDrawBoxes[1], 255); 
    TextDrawFont(TextDrawBoxes[1], 1); 
    TextDrawLetterSize(TextDrawBoxes[1], 0.600000, 6.099999); 
    TextDrawColor(TextDrawBoxes[1], -1); 
    TextDrawSetOutline(TextDrawBoxes[1], 0); 
    TextDrawSetProportional(TextDrawBoxes[1], 1); 
    TextDrawSetShadow(TextDrawBoxes[1], 1); 
    TextDrawUseBox(TextDrawBoxes[1], 1); 
    TextDrawBoxColor(TextDrawBoxes[1], 255); 
    TextDrawTextSize(TextDrawBoxes[1], 30.000000, 1.000000); 
    TextDrawBoxes[2] = TextDrawCreate(55.000000, 417.000000, "__"); 
    TextDrawBackgroundColor(TextDrawBoxes[2], 255); 
    TextDrawFont(TextDrawBoxes[2], 1); 
    TextDrawLetterSize(TextDrawBoxes[2], 0.500000, 4.000000); 
    TextDrawColor(TextDrawBoxes[2], -1); 
    TextDrawSetOutline(TextDrawBoxes[2], 0); 
    TextDrawSetProportional(TextDrawBoxes[2], 1); 
    TextDrawSetShadow(TextDrawBoxes[2], 1); 
    TextDrawUseBox(TextDrawBoxes[2], 1); 
    TextDrawBoxColor(TextDrawBoxes[2], 255); 
    TextDrawTextSize(TextDrawBoxes[2], 390.000000, 0.000000); 
    TextDrawBoxes[3] = TextDrawCreate(645.000000, 61.000000, "~n~~n~"); 
    TextDrawBackgroundColor(TextDrawBoxes[3], 255); 
    TextDrawFont(TextDrawBoxes[3], 1); 
    TextDrawLetterSize(TextDrawBoxes[3], 0.900000, 21.400001); 
    TextDrawColor(TextDrawBoxes[3], -1); 
    TextDrawSetOutline(TextDrawBoxes[3], 0); 
    TextDrawSetProportional(TextDrawBoxes[3], 1); 
    TextDrawSetShadow(TextDrawBoxes[3], 1); 
    TextDrawUseBox(TextDrawBoxes[3], 1); 
    TextDrawBoxColor(TextDrawBoxes[3], 255); 
    TextDrawTextSize(TextDrawBoxes[3], 389.000000, 1.000000); 
    for(new i; i != GetMaxPlayers(); i++) 
    { 
    TextDrawsByGameyer[i] = TextDrawCreate(399.000000, 57.000000, "Select You play class:~n~~g~~h~~>~ Groove~n~~p~ Ballas~n~~y~ Vagos"); 
    TextDrawBackgroundColor(TextDrawsByGameyer[i], 255); 
    TextDrawFont(TextDrawsByGameyer[i], 1); 
    TextDrawLetterSize(TextDrawsByGameyer[i], 0.440000, 1.700000); 
    TextDrawColor(TextDrawsByGameyer[i], -1); 
    TextDrawSetOutline(TextDrawsByGameyer[i], 0); 
    TextDrawSetProportional(TextDrawsByGameyer[i], 1); 
    TextDrawSetShadow(TextDrawsByGameyer[i], 1); 
    //TextDraws By Gameyer (c) 
    } 
    /*Классы*/ 
    AddPlayerClassEx(105,105,0,0,0,0,0,0,0,0,0,0); 
    AddPlayerClassEx(103,103,0,0,0,0,0,0,0,0,0,0); 
    AddPlayerClassEx(110,110,0,0,0,0,0,0,0,0,0,0);
Теперь мы обратимся к паблику выбора класса OnPlayerRequestClass
Создадим там место, где будет стоять игрок, и камера, откуда она будет смотреть на игрока.
А после мы будем делать красивое меню.
PHP:
 SetPlayerPos(playerid,815.3527,-1389.9990,13.6215); 
    SetPlayerCameraPos(playerid,817.1997,-1393.1088,13.0); 
    SetPlayerCameraLookAt(playerid,815.8746,-1388.0259,14.6138); 
    SetPlayerFacingAngle(playerid,180.0); 
    /*Что написано выше я уже все подобрал, скин будет стоять у бара*/ 
    /*С расстановкой скина могут быть сложности*/ 
    switch(classid) 
    { 
    case 0: 
    { 
    TextDrawSetString(TextDrawsByGameyer[playerid],"Select You play class:~n~~g~~h~~>~ Groove~n~~p~ Ballas~n~~y~ Vagos"); 
    SetPlayerSkin(playerid,105); 
    } 
    case 1: 
    { 
    TextDrawSetString(TextDrawsByGameyer[playerid],"Select You play class:~n~~g~~h~ Groove~n~~p~~>~ Ballas~n~~y~ Vagos"); 
    SetPlayerSkin(playerid,103); 
    } 
    case 2: 
    { 
    TextDrawSetString(TextDrawsByGameyer[playerid],"Select You play class:~n~~g~~h~ Groove~n~~p~ Ballas~n~~y~~>~ Vagos"); 
    SetPlayerSkin(playerid,110); 
    } 
    } 
    /*Выше приведенный код показывает скин и делает меню (смотрите скриншот внизу поста)*/ 
    for(new i; i <= 4; i++) 
    { 
    TextDrawShowForPlayer(i,TextDrawBoxes[i]); 
    //Покажем все текстдравы. 
    } 
    TextDrawShowForPlayer(playerid,TextDrawsByGameyer[playerid]);
Далее паблик, отвечающий за первый спавн игрока. OnPlayerRequestSpawn
PHP:
  for(new i; i <= 5; i++) 
    { 
    TextDrawHideForPlayer(i,TextDrawBoxes[i]); 
    } 
    TextDrawHideForPlayer(playerid,TextDrawsByGameyer[playerid]);//Уберем все текстравы (скроем их) 
    //Тут вы знаете что делать, выведем сообщение о первом спавне :)
Ну и последний шаг.
Если у вас мод, то паблик OnGameModeExit(), если же скрипт, то OnFilterScriptExit()
Удалим все созданые текстдравы.
PHP:
    for(new i; i != GetMaxPlayers(); i++) 
    { 
    TextDrawDestroy(TextDrawsByGameyer[i]); 
    } 
    for(new i; i != 4; i++) 
    { 
    TextDrawDestroy(TextDrawBoxes[i]); 
    }
Вот что у нас получилось.



Автор: Gameyer
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу