lonin
Компетентный
Добрый день уважаемы пользователи форума!
Представляю вашему вниманию выбор оружия на текстдравах с использованием PreviewModel.
И так, начнем... Ко всем new ... добавляем:
Далее добавляем собственно TextDraw:
Затем, создадим стоки загрузки TextDraw, их удаления и отображения PreviewModel:
Далее создаем комманду:
Теперь делаем функцию выдачи оружия) Для начала в коллбэк OnPlayerClickTextDraw:
ВНИМАНИЕ: обязательно проверьте незанятость диалогов: 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479
Добавляем функционал диалогов:
Вот и все :ar: Система готова, скриншот в студии:
Спасибо за внимание! :ar:
Представляю вашему вниманию выбор оружия на текстдравах с использованием PreviewModel.
И так, начнем... Ко всем new ... добавляем:
PHP:
new Text: Guns[ 10 ];
new Text: gicont[ 7 ];
PHP:
Guns[0] = TextDrawCreate ( 500.285705, 103.046669, "usebox" );
TextDrawLetterSize ( Guns[0], 0.000000, 19.926298 );
TextDrawTextSize ( Guns[0], 144.285720, 0.000000 );
TextDrawAlignment ( Guns[0], 1 );
TextDrawColor ( Guns[0], 0 );
TextDrawUseBox ( Guns[0], true );
TextDrawBoxColor ( Guns[0], 102 );
TextDrawSetShadow ( Guns[0], 0 );
TextDrawSetOutline ( Guns[0], 0 );
TextDrawFont ( Guns[0], 0 );
Guns[1] = TextDrawCreate ( 233.142959, 109.653350, "The choice of weapons" );
TextDrawLetterSize ( Guns[1], 0.449999, 1.600000 );
TextDrawAlignment ( Guns[1], 1 );
TextDrawColor ( Guns[1], 16711935 );
TextDrawSetShadow ( Guns[1], 0 );
TextDrawSetOutline ( Guns[1], 1 );
TextDrawBackgroundColor ( Guns[1], 51 );
TextDrawFont ( Guns[1], 3 );
TextDrawSetProportional ( Guns[1], 1 );
gicont[0] = TextDrawCreate ( 188.190536, 169.813354, "_" ); //m4a1
TextDrawFont ( gicont[0], TEXT_DRAW_FONT_MODEL_PREVIEW );
TextDrawUseBox ( gicont[0], 1 );
TextDrawBoxColor ( gicont[0], 0x00000000 );
TextDrawTextSize ( gicont[0], 60.0, 20.0 );
TextDrawSetPreviewRot ( gicont[0], 0.000000, 0.000000, 0.000000, 1.7 );
TextDrawSetSelectable ( gicont[0], true );
gicont[1] = TextDrawCreate ( 260.952392, 169.386672, "_" ); //ak47
TextDrawFont ( gicont[1], TEXT_DRAW_FONT_MODEL_PREVIEW );
TextDrawUseBox ( gicont[1], 1 );
TextDrawBoxColor ( gicont[1], 0x00000000 );
TextDrawTextSize ( gicont[1], 60.0, 20.0 );
TextDrawSetPreviewRot ( gicont[1], 0.000000, 0.000000, 0.000000, 1.7 );
TextDrawSetSelectable ( gicont[1], true );
gicont[2] = TextDrawCreate ( 340.952362, 169.813339, "_" ); // SMG
TextDrawFont ( gicont[2], TEXT_DRAW_FONT_MODEL_PREVIEW );
TextDrawUseBox ( gicont[2], 1 );
TextDrawBoxColor ( gicont[2], 0x00000000 );
TextDrawTextSize ( gicont[2], 60.0, 20.0 );
TextDrawSetPreviewRot ( gicont[2], 0.000000, 0.000000, 0.000000, 1.7 );
TextDrawSetSelectable ( gicont[2], true );
gicont[3] = TextDrawCreate ( 224.380966, 225.279998, "_" );//shotgun
TextDrawFont ( gicont[3], TEXT_DRAW_FONT_MODEL_PREVIEW );
TextDrawUseBox ( gicont[3], 1 );
TextDrawBoxColor ( gicont[3], 0x00000000 );
TextDrawTextSize ( gicont[3], 60.0, 20.0 );
TextDrawSetPreviewRot ( gicont[3], 0.000000, 0.000000, 0.000000, 1.7 );
TextDrawSetSelectable ( gicont[3], true );
gicont[4] = TextDrawCreate ( 301.333343, 226.986663, "_" ); //deagle
TextDrawFont ( gicont[4], TEXT_DRAW_FONT_MODEL_PREVIEW );
TextDrawUseBox ( gicont[4], 1 );
TextDrawBoxColor ( gicont[4], 0x00000000 );
TextDrawTextSize ( gicont[4], 60.0, 20.0 );
TextDrawSetPreviewRot ( gicont[4], 0.000000, 0.000000, 0.000000, 1.7 );
TextDrawSetSelectable ( gicont[4], true );
gicont[5] = TextDrawCreate ( 366.476257, 226.560012, "_" );//sdpistol
TextDrawFont ( gicont[5], TEXT_DRAW_FONT_MODEL_PREVIEW );
TextDrawUseBox ( gicont[5], 1 );
TextDrawBoxColor ( gicont[5], 0x00000000 );
TextDrawTextSize ( gicont[5], 60.0, 20.0 );
TextDrawSetPreviewRot ( gicont[5], 0.000000, 0.000000, 0.000000, 1.7 );
TextDrawSetSelectable ( gicont[5], true );
gicont[6] = TextDrawCreate ( 415.999969, 168.960006, "_" ); //rifle
TextDrawFont ( gicont[6], TEXT_DRAW_FONT_MODEL_PREVIEW );
TextDrawUseBox ( gicont[6], 1 );
TextDrawBoxColor ( gicont[6], 0x00000000 );
TextDrawTextSize ( gicont[6], 60.0, 20.0 );
TextDrawSetPreviewRot ( gicont[6], 0.000000, 0.000000, 0.000000, 1.7 );
TextDrawSetSelectable ( gicont[6], true );
Guns[2] = TextDrawCreate ( 187.047698, 153.600021, "M4A1" );
TextDrawLetterSize ( Guns[2], 0.324665, 1.032533 );
TextDrawAlignment ( Guns[2], 1 );
TextDrawColor ( Guns[2], 866844671 );
TextDrawSetShadow ( Guns[2], 0 );
TextDrawSetOutline ( Guns[2], 1 );
TextDrawBackgroundColor ( Guns[2], 51 );
TextDrawFont ( Guns[2], 1 );
TextDrawSetProportional ( Guns[2], 1 );
Guns[3] = TextDrawCreate ( 263.619049, 153.600006, "AK-47" );
TextDrawLetterSize ( Guns[3], 0.352095, 1.058133 );
TextDrawAlignment ( Guns[3], 1 );
TextDrawColor ( Guns[3], 866844671 );
TextDrawSetShadow ( Guns[3], 0 );
TextDrawSetOutline ( Guns[3], 1 );
TextDrawBackgroundColor ( Guns[3], 51 );
TextDrawFont ( Guns[3], 1 );
TextDrawSetProportional ( Guns[3], 1 );
Guns[4] = TextDrawCreate ( 344.000061, 153.173324, "MP-5" );
TextDrawLetterSize ( Guns[4], 0.280476, 1.096531 );
TextDrawAlignment ( Guns[4], 1 );
TextDrawColor ( Guns[4], 866844671 );
TextDrawSetShadow ( Guns[4], 0 );
TextDrawSetOutline ( Guns[4], 1 );
TextDrawBackgroundColor ( Guns[4], 51 );
TextDrawFont ( Guns[4], 1 );
TextDrawSetProportional ( Guns[4], 1 );
Guns[5] = TextDrawCreate ( 408.000000, 152.746673, "Sniper Country" );
TextDrawLetterSize ( Guns[5], 0.193618, 1.130666 );
TextDrawAlignment ( Guns[5], 1 );
TextDrawColor ( Guns[5], 866844671 );
TextDrawSetShadow ( Guns[5], 0 );
TextDrawSetOutline ( Guns[5], 1 );
TextDrawBackgroundColor ( Guns[5], 51 );
TextDrawFont ( Guns[5], 1 );
TextDrawSetProportional ( Guns[5], 1 );
Guns[6] = TextDrawCreate ( 225.523773, 206.933334, "Shotgun" );
TextDrawLetterSize ( Guns[6], 0.275523, 1.211732 );
TextDrawAlignment ( Guns[6], 1 );
TextDrawColor ( Guns[6], 866844671 );
TextDrawSetShadow ( Guns[6], 0 );
TextDrawSetOutline ( Guns[6], 1 );
TextDrawBackgroundColor ( Guns[6], 51 );
TextDrawFont ( Guns[6], 1 );
TextDrawSetProportional ( Guns[6], 1 );
Guns[7] = TextDrawCreate ( 302.095214, 209.066665, "Deagle" );
TextDrawLetterSize ( Guns[7], 0.339522, 1.062399 );
TextDrawAlignment ( Guns[7], 1 );
TextDrawColor ( Guns[7], 866844671 );
TextDrawSetShadow ( Guns[7], 0 );
TextDrawSetOutline ( Guns[7], 1 );
TextDrawBackgroundColor ( Guns[7], 51 );
TextDrawFont ( Guns[7], 1 );
TextDrawSetProportional ( Guns[7], 1 );
Guns[8] = TextDrawCreate ( 375.238128, 209.493331, "SD-Pistol" );
TextDrawLetterSize ( Guns[8], 0.261047, 1.036800 );
TextDrawAlignment ( Guns[8], 1 );
TextDrawColor ( Guns[8], 866844671 );
TextDrawSetShadow ( Guns[8], 0 );
TextDrawSetOutline ( Guns[8], 1 );
TextDrawBackgroundColor ( Guns[8], 51 );
TextDrawFont ( Guns[8], 1 );
TextDrawSetProportional ( Guns[8], 1 );
Guns[9] = TextDrawCreate ( 304.380920, 261.973327, "Exit" );
TextDrawLetterSize ( Guns[9], 0.449999, 1.600000 );
TextDrawAlignment ( Guns[9], 1 );
TextDrawColor ( Guns[9], -16179969 );
TextDrawSetShadow ( Guns[9], 0 );
TextDrawSetOutline ( Guns[9], 1 );
TextDrawBackgroundColor ( Guns[9], 51 );
TextDrawFont ( Guns[9], 2 );
TextDrawSetProportional ( Guns[9], 1 );
TextDrawSetSelectable ( Guns[9], true );
PHP:
stock GiveGunTextShow ( playerid ) // Отображение текстдравов
{
for ( new t; t != 7; t++) TextDrawShowForPlayer ( playerid, gicont[t] ); // показываем иконки
for ( new x; x != 10; x++) TextDrawShowForPlayer ( playerid, Guns[x] );// Показываем обводку.
SelectTextDraw ( playerid, 0xFFFF00AA );// делаем кликабельность
return true;
}
stock GiveGunTextHide ( playerid )
{
for ( new t; t != 7; t++) TextDrawHideForPlayer ( playerid, gicont[t] ); // Убираем иконки
for ( new t; t != 10; t++) TextDrawHideForPlayer ( playerid, Guns[t] ); // Убираем обводку.
CancelSelectTextDraw ( playerid ); // Убираем мышь ;3
return true;
}
stock GiveGunsTextModel( q, w, e, r, t, y, z) // функция заполнения PreviewModel
{
TextDrawSetPreviewModel ( gicont[0], q );
TextDrawSetPreviewModel ( gicont[1], w );
TextDrawSetPreviewModel ( gicont[2], e );
TextDrawSetPreviewModel ( gicont[3], r );
TextDrawSetPreviewModel ( gicont[4], t );
TextDrawSetPreviewModel ( gicont[5], y );
TextDrawSetPreviewModel ( gicont[6], z );
}
PHP:
YCMD: getgun ( playerid, params[], help)
{
if ( !IsPlayerConnected ( playerid ) ) return true;
GiveGunsTextModel ( 356, 355, 353, 349, 348, 347, 357 ); // Рисуем иконки оружия
GiveGunTextShow ( playerid ); // показываем текстдравы
return true;
}
PHP:
if ( _:clickedid != INVALID_TEXT_DRAW)
{
if ( clickedid == gicont[0]) ShowPlayerDialogEx ( playerid, 2472, 1, "Give Guns", "Выбрано: M4A1\nВведите количество патроно\nМаксимальное количество: 150", "Выбрать", "Выход" );
else if ( clickedid == gicont[1]) ShowPlayerDialogEx ( playerid, 2473, 1, "Give Guns", "Выбрано: AK-47\nВведите количество патроно\nМаксимальное количество: 150", "Выбрать", "Выход" );
else if ( clickedid == gicont[2]) ShowPlayerDialogEx ( playerid, 2474, 1, "Give Guns", "Выбрано: MP-5\nВведите количество патроно\nМаксимальное количество: 150", "Выбрать", "Выход" );
else if ( clickedid == gicont[3]) ShowPlayerDialogEx ( playerid, 2475, 1, "Give Guns", "Выбрано: Shotgun\nВведите количество патроно\nМаксимальное количество: 150", "Выбрать", "Выход" );
else if ( clickedid == gicont[4]) ShowPlayerDialogEx ( playerid, 2476, 1, "Give Guns", "Выбрано: Deagle\nВведите количество патроно\nМаксимальное количество: 150", "Выбрать", "Выход" );
else if ( clickedid == gicont[5]) ShowPlayerDialogEx ( playerid, 2477, 1, "Give Guns", "Выбрано: SD Pistol\nВведите количество патроно\nМаксимальное количество: 150", "Выбрать", "Выход" );
else if ( clickedid == gicont[6]) ShowPlayerDialogEx ( playerid, 2478, 1, "Give Guns", "Выбрано: Sniper Country\nВведите количество патроно\nМаксимальное количество: 150", "Выбрать", "Выход" );
else if ( clickedid == Guns[9]) ShowPlayerDialogEx ( playerid, 2479, DIALOG_STYLE_MSGBOX, "Подтвердите выход", "Вы действительно хотите выйти из выбора оружия?", "Да", "Нет" );
}
Добавляем функционал диалогов:
PHP:
case 2472:
{
if ( response )
{
if ( !strlen ( inputtext)) return ShowPlayerDialogEx ( playerid, 2472, 1, "Give Guns", "Выбрано оружие: M4A1\nВведите количество патронов\nМаксимальное количество: 150", "Выбрать", "Выход" );
new ptr = strval ( inputtext );
if ( ptr < 1 || ptr > 150) return SendClientMessage ( playerid, 0x00D900C8, "{FFFFFF}Допустимые значения: 1 - 150" );
GiveWeapon ( playerid, 31, ptr );
format ( string, sizeof ( string ), "Вы взяли: %d патронов M4A1", ptr );
SendClientMessage ( playerid, COLOR_LIGHTGREEN, string );
}
GiveGunTextHide ( playerid );
}
case 2473:
{
if ( response )
{
if ( !strlen ( inputtext)) return ShowPlayerDialogEx ( playerid, 2473, 1, "Give Guns", "Выбрано оружие: AK-47\nВведите количество патронов\nМаксимальное количество: 150", "Выбрать", "Выход" );
new ptr = strval ( inputtext );
if ( ptr < 1 || ptr > 150) return SendClientMessage ( playerid, 0x00D900C8, "{FFFFFF}Допустимые значения: 1 - 150" );
GiveWeapon ( playerid, 30, ptr );
format ( string, sizeof ( string ), "Вы взяли: %d патронов AK-47", ptr );
SendClientMessage ( playerid, COLOR_LIGHTGREEN, string );
}
GiveGunTextHide ( playerid );
}
case 2474:
{
if ( response )
{
if ( !strlen ( inputtext)) return ShowPlayerDialogEx ( playerid, 2474, 1, "Give Guns", "Выбрано оружие: MP5\nВведите количество патронов\nМаксимальное количество: 150", "Выбрать", "Выход" );
new ptr = strval ( inputtext );
if ( ptr < 1 || ptr > 150) return SendClientMessage ( playerid, 0x00D900C8, "{FFFFFF}Допустимые значения: 1 - 150" );
GiveWeapon ( playerid, 29, ptr );
format ( string, sizeof ( string ), "Вы взяли: %d патронов MP5", ptr );
SendClientMessage ( playerid, COLOR_LIGHTGREEN, string );
}
GiveGunTextHide ( playerid );
}
case 2475:
{
if ( response )
{
if ( !strlen ( inputtext)) return ShowPlayerDialogEx ( playerid, 2475, 1, "Give Guns", "Выбрано оружие: ShotGun\nВведите количество патронов\nМаксимальное количество: 150", "Выбрать", "Выход" );
new ptr = strval ( inputtext );
if ( ptr < 1 || ptr > 150) return SendClientMessage ( playerid, 0x00D900C8, "{FFFFFF}Допустимые значения: 1 - 150" );
GiveWeapon ( playerid, 25, ptr );
format ( string, sizeof ( string ), "Вы взяли: %d патронов ShotGun", ptr );
SendClientMessage ( playerid, COLOR_LIGHTGREEN, string );
}
GiveGunTextHide ( playerid );
}
case 2476:
{
if ( response )
{
if ( !strlen ( inputtext)) return ShowPlayerDialogEx ( playerid, 2476, 1, "Give Guns", "Выбрано оружие: Deagle\nВведите количество патронов\nМаксимальное количество: 150", "Выбрать", "Выход" );
new ptr = strval ( inputtext );
if ( ptr < 1 || ptr > 150) return SendClientMessage ( playerid, 0x00D900C8, "{FFFFFF}Допустимые значения: 1 - 150" );
GiveWeapon ( playerid, 24, ptr );
format ( string, sizeof ( string ), "Вы взяли: %d патронов Deagle", ptr );
SendClientMessage ( playerid, COLOR_LIGHTGREEN, string );
}
GiveGunTextHide ( playerid );
}
case 2477:
{
if ( response )
{
if ( !strlen ( inputtext)) return ShowPlayerDialogEx ( playerid, 2477, 1, "Give Guns", "Выбрано оружие: SD Pistol\nВведите количество патронов\nМаксимальное количество: 150", "Выбрать", "Выход" );
new ptr = strval ( inputtext );
if ( ptr < 1 || ptr > 150) return SendClientMessage ( playerid, 0x00D900C8, "{FFFFFF}Допустимые значения: 1 - 150" );
GiveWeapon ( playerid, 23, ptr );
format ( string, sizeof ( string ), "Вы взяли: %d патронов SD Pistol", ptr );
SendClientMessage ( playerid, COLOR_LIGHTGREEN, string );
}
GiveGunTextHide ( playerid );
}
case 2478:
{
if ( response )
{
if ( !strlen ( inputtext)) return ShowPlayerDialogEx ( playerid, 2478, 1, "Give Guns", "Выбрано оружие: Sniper Coutry\nВведите количество патронов\nМаксимальное количество: 150", "Выбрать", "Выход" );
new ptr = strval ( inputtext );
if ( ptr < 1 || ptr > 150) return SendClientMessage ( playerid, 0x00D900C8, "{FFFFFF}Допустимые значения: 1 - 150" );
GiveWeapon ( playerid, 33, ptr );
format ( string, sizeof ( string ), "Вы взяли: %d патронов Sniper Country", ptr );
SendClientMessage ( playerid, COLOR_LIGHTGREEN, string );
}
GiveGunTextHide ( playerid );
}
case 2479:
{
if ( response)
{
B_HideGuns ( playerid );
SendClientMessage ( playerid, COLOR_GREEN, "Вы отменили выбор оружия!" );
}
else
{
SendClientMessage ( playerid, COLOR_GREEN, "Вы отменили выход. Выбирайте оружие!" );
}
}
Спасибо за внимание! :ar:
Последнее редактирование:
