Выбор скина/автомобиля/оружия на TextDraw'ах

Описание: Уроки по скриптингу
Модератор: SJplayer

Layk M
Автор темы, Прапорщик
Прапорщик
Аватара
Layk M
Автор темы, Прапорщик
Прапорщик
Сообщения: 170
Зарегистрирован: 4 июня 2013
С нами: 10 лет 9 месяцев

#1 Layk » 30 октября 2014, 21:53

Автор: Botan.

Изображение


Ко всем new:

Код: Выделить всё

new Texttextdraw[12];   


Ко всем stock:

Код: Выделить всё

stock B_HideForPlayer(playerid)
{
    for(new 
t!= 12t++) TextDrawHideForPlayer(playeridtextdraw[t]);
    
CancelSelectTextDraw(playerid);
    return 
true;
}

stock B_ShowForPlayer(playerid)
{
    for(new 
t!= 12t++) TextDrawShowForPlayer(playeridtextdraw[t]);
    
SelectTextDraw(playerid0xFFFF00AA);
    return 
true;
}

stock B_SelectClothes(playeridclothes)
{
    
SetPlayerSkin(playeridclothes);
    
B_HideForPlayer(playerid);
    return 
true;
}

stock B_SelectGun(playeridgunammo)
{
    
GivePlayerWeapon(playeridgunammo);
    
B_HideForPlayer(playerid);
    return 
true;
}

stock B_SelectVehicle(playeridvehicle)
{
    new 
FloatPlayerPos[3];
    
GetPlayerPos(playeridPlayerPos[0], PlayerPos[1], PlayerPos[2]);
    
CreateVehicle(vehiclePlayerPos[0] + 3.0PlayerPos[1], PlayerPos[2] + 3.00.0random(128), random(128), -1);
    
B_HideForPlayer(playerid);
    return 
true;
}

stock B_SetPreviewModel(qwertyuiop)
{
    
TextDrawSetPreviewModel(textdraw[1], q);
    
TextDrawSetPreviewModel(textdraw[2], w);
    
TextDrawSetPreviewModel(textdraw[3], e);
    
TextDrawSetPreviewModel(textdraw[4], r);
    
TextDrawSetPreviewModel(textdraw[5], t);
    
TextDrawSetPreviewModel(textdraw[6], y);
    
TextDrawSetPreviewModel(textdraw[7], u);
    
TextDrawSetPreviewModel(textdraw[8], i);
    
TextDrawSetPreviewModel(textdraw[9], o);
    
TextDrawSetPreviewModel(textdraw[10], p);
    return 
true;
}   


В public OnGameModeInit:

Код: Выделить всё

    textdraw[0] = TextDrawCreate(517.000000120.399925"_");
    
TextDrawLetterSize(textdraw[0], 0.00000020.379625);
    
TextDrawTextSize(textdraw[0], 121.0000000.000000);
    
TextDrawAlignment(textdraw[0], 1);
    
TextDrawColor(textdraw[0], 0);
    
TextDrawUseBox(textdraw[0], true);
    
TextDrawBoxColor(textdraw[0], 0x4A5A6BBB);
    
TextDrawSetShadow(textdraw[0], 0);
    
TextDrawSetOutline(textdraw[0], 0);
    
TextDrawFont(textdraw[0], 0);

    
textdraw[1] = TextDrawCreate(281.000000118.533126"_");
    
TextDrawFont(textdraw[1], TEXT_DRAW_FONT_MODEL_PREVIEW);
    
TextDrawUseBox(textdraw[1], true);
    
TextDrawBoxColor(textdraw[1], 0x88888899);
    
TextDrawBackgroundColor(textdraw[1], 0x88888899);
    
TextDrawTextSize(textdraw[1], 76.00000084.933326);
    
TextDrawSetSelectable(textdraw[1], true);

    
textdraw[2] = TextDrawCreate(281.000000204.399780"_");
    
TextDrawFont(textdraw[2], TEXT_DRAW_FONT_MODEL_PREVIEW);
    
TextDrawUseBox(textdraw[2], true);
    
TextDrawBoxColor(textdraw[2], 0x88888899);
    
TextDrawBackgroundColor(textdraw[2], 0x88888899);
    
TextDrawTextSize(textdraw[2], 76.00000084.933334);
    
TextDrawSetSelectable(textdraw[2], true);

    
textdraw[3] = TextDrawCreate(358.000000118.533264"_");
    
TextDrawFont(textdraw[3], TEXT_DRAW_FONT_MODEL_PREVIEW);
    
TextDrawUseBox(textdraw[3], true);
    
TextDrawBoxColor(textdraw[3], 0x88888899);
    
TextDrawBackgroundColor(textdraw[3], 0x88888899);
    
TextDrawTextSize(textdraw[3], 76.00000084.933319);
    
TextDrawSetSelectable(textdraw[3], true);

    
textdraw[4] = TextDrawCreate(358.000000204.399932"_");
    
TextDrawFont(textdraw[4], TEXT_DRAW_FONT_MODEL_PREVIEW);
    
TextDrawUseBox(textdraw[4], true);
    
TextDrawBoxColor(textdraw[4], 0x88888899);
    
TextDrawBackgroundColor(textdraw[4], 0x88888899);
    
TextDrawTextSize(textdraw[4], 76.00000084.933334);
    
TextDrawSetSelectable(textdraw[4], true);

    
textdraw[5] = TextDrawCreate(204.000000118.533401"_");
    
TextDrawFont(textdraw[5], TEXT_DRAW_FONT_MODEL_PREVIEW);
    
TextDrawUseBox(textdraw[5], true);
    
TextDrawBoxColor(textdraw[5], 0x88888899);
    
TextDrawBackgroundColor(textdraw[5], 0x88888899);
    
TextDrawTextSize(textdraw[5], 76.00000084.933334);
    
TextDrawSetSelectable(textdraw[5], true);

    
textdraw[6] = TextDrawCreate(204.000000203.466766"_");
    
TextDrawFont(textdraw[6], TEXT_DRAW_FONT_MODEL_PREVIEW);
    
TextDrawUseBox(textdraw[6], true);
    
TextDrawBoxColor(textdraw[6], 0x88888899);
    
TextDrawBackgroundColor(textdraw[6], 0x88888899);
    
TextDrawTextSize(textdraw[6], 76.00000084.933334);
    
TextDrawSetSelectable(textdraw[6], true);

    
textdraw[7] = TextDrawCreate(127.000000118.533157"_");
    
TextDrawFont(textdraw[7], TEXT_DRAW_FONT_MODEL_PREVIEW);
    
TextDrawUseBox(textdraw[7], true);
    
TextDrawBoxColor(textdraw[7], 0x88888899);
    
TextDrawBackgroundColor(textdraw[7], 0x88888899);
    
TextDrawTextSize(textdraw[7], 76.00000084.933326);
    
TextDrawSetSelectable(textdraw[7], true);

    
textdraw[8] = TextDrawCreate(127.000000204.400009"_");
    
TextDrawFont(textdraw[8], TEXT_DRAW_FONT_MODEL_PREVIEW);
    
TextDrawUseBox(textdraw[8], true);
    
TextDrawBoxColor(textdraw[8], 0x88888899);
    
TextDrawBackgroundColor(textdraw[8], 0x88888899);
    
TextDrawTextSize(textdraw[8], 76.00000084.933334);
    
TextDrawSetSelectable(textdraw[8], true);

    
textdraw[9] = TextDrawCreate(435.000000118.533050"_");
    
TextDrawFont(textdraw[9], TEXT_DRAW_FONT_MODEL_PREVIEW);
    
TextDrawUseBox(textdraw[9], true);
    
TextDrawBoxColor(textdraw[9], 0x88888899);
    
TextDrawBackgroundColor(textdraw[9], 0x88888899);
    
TextDrawTextSize(textdraw[9], 76.00000084.933334);
    
TextDrawSetSelectable(textdraw[9], true);

    
textdraw[10] = TextDrawCreate(435.000000204.399826"_");
    
TextDrawFont(textdraw[10], TEXT_DRAW_FONT_MODEL_PREVIEW);
    
TextDrawUseBox(textdraw[10], true);
    
TextDrawBoxColor(textdraw[10], 0x88888899);
    
TextDrawBackgroundColor(textdraw[10], 0x88888899);
    
TextDrawTextSize(textdraw[10], 76.00000084.933334);
    
TextDrawSetSelectable(textdraw[10], true);

    
textdraw[11] = TextDrawCreate(178.000000292.133483"Click on the icon to select");
    
TextDrawLetterSize(textdraw[11], 0.4499991.600000);
    
TextDrawTextSize(textdraw[11], 500.00000035.866767);
    
TextDrawAlignment(textdraw[11], 1);
    
TextDrawColor(textdraw[11], 16777215);
    
TextDrawSetShadow(textdraw[11], 0);
    
TextDrawSetOutline(textdraw[11], 1);
    
TextDrawBackgroundColor(textdraw[11], 51);
    
TextDrawFont(textdraw[11], 2);
    
TextDrawSetProportional(textdraw[11], 1);
    
TextDrawSetSelectable(textdraw[11], true);   


Пример использования:

Сделаем выбор скина через команду:

Код: Выделить всё

CMD:test(playeridparams[])
{
    
B_SetPreviewModel(12345678910); // Установили модели
    
B_ShowForPlayer(playerid); // Показали TextDraw
       
return true;
}   


Теперь действие при нажатии на TextDraw:

Код: Выделить всё

public OnPlayerClickTextDraw(playeridText:clickedid)
{
    if(
_:clickedid != INVALID_TEXT_DRAW)
    {
        if(
clickedid == textdraw[1]) B_SelectClothes(playerid1);
        else if(
clickedid == textdraw[2]) B_SelectClothes(playerid2);
        else if(
clickedid == textdraw[3]) B_SelectClothes(playerid3);
        else if(
clickedid == textdraw[4]) B_SelectClothes(playerid4);
        else if(
clickedid == textdraw[5]) B_SelectClothes(playerid5);
        else if(
clickedid == textdraw[6]) B_SelectClothes(playerid6);
        else if(
clickedid == textdraw[7]) B_SelectClothes(playerid7);
        else if(
clickedid == textdraw[8]) B_SelectClothes(playerid8);
        else if(
clickedid == textdraw[9]) B_SelectClothes(playerid9);
        else if(
clickedid == textdraw[10]) B_SelectClothes(playerid10);
        else if(
clickedid == textdraw[11]) B_HideForPlayer(playerid);
    }
    return 
true;
}   

1. B_HideForPlayer(playerid) - скрывает TextDraw'ы.
2. B_ShowForPlayer(playerid) - показывает TextDraw'ы.
3. B_SelectClothes(playerid, clothes) - выдает указанный скин, скрывает TextDraw'ы. Где clothes - ID скина.
4. B_SelectGun(playerid, gun, ammo) - выдает указанное оружие, скрывает TextDraw'ы. Где gun - ID оружия, ammo - количество патронов.
5. B_SelectVehicle(playerid, vehicle) - спавнит автомобиль, скрывает TextDraw'ы. Где vehicle - ID автомобиля.
6. B_SetPreviewModel(q, w, e, r, t, y, u, i, o, p) - показывает указанные модели. Где q - модель для 1 TextDraw'a, w - для 2, e - для 3 и т.д.
7. Для закрытия TextDraw'ов нажмите на кнопку "Click on the icon to select".
Изображение


Женя
Аватара
Женя

Проблема

#2 Женя » 9 февраля 2018, 18:41

pwn(228) : error 017: undefined symbol "TEXT_DRAW_FONT_MODEL_PREVIEW"

pwn(8087) : error 017: undefined symbol "TextDrawSetPreviewModel"

pwn(8085) : warning 203: symbol is never used: "p"
pwn(8085) : warning 203: symbol is never used: "o"
pwn(8085) : warning 203: symbol is never used: "i"
pwn(8085) : warning 203: symbol is never used: "u"
pwn(8085) : warning 203: symbol is never used: "y"
pwn(8085) : warning 203: symbol is never used: "t"
pwn(8085) : warning 203: symbol is never used: "r"
pwn(8085) : warning 203: symbol is never used: "e"
pwn(8085) : warning 203: symbol is never used: "w"
pwn(8085) : warning 203: symbol is never used: "q"

pwn(11174) : warning 225: unreachable code

Помоги пожалуйста

SJplayer M
Модератор
Модератор
Аватара
SJplayer M
Модератор
Модератор
Сообщения: 196
Зарегистрирован: 25 мая 2013
С нами: 10 лет 10 месяцев

#3 SJplayer » 9 февраля 2018, 19:06


санек сенно
Аватара
санек сенно

краш

#4 санек сенно » 8 августа 2018, 12:43

Я все сделал так как так, но когда я использую эту функцию, у меня игра крашиться

Miranda F
Старшина
Старшина
Аватара
Miranda F
Старшина
Старшина
Сообщения: 143
Зарегистрирован: 5 июля 2013
С нами: 10 лет 8 месяцев

#5 Miranda » 9 августа 2018, 10:51

Проверено - работает нормально.


  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Уроки»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 6 гостей