Smart
Ученик
Это красивейший выбор скина (класса) игрока. Такое можно редко где увидеть, но сделать это очень просто. Главное уметь и немного шевелить мозгами
Это подойдет для обсолютно любого мода, но вызовит положительные эмоции у игроков.
В чем это заключается?
Это заключается в том, что когда игрок выбирает скин (класс), выбираемый скин стоит в "окошке", и плюс ко всему справа от скина есть меню с названием скина или банд (это уже как пожелает душа скриптерская).
Как это сделать?
В принципе, это может вызвать затруднения, но только не у нас. Щас я все объясню!
Нам понадобится массив с 5-ю текстдравами и все. Пожробности увидите прямо сейчас.
Итак, начнём.
Создадим глобальную переменную - масив. (Для хранения текстдравов для одного игрока).
И 4 текстдравбокса.
Теперь создадим сами текстдравы и классы игроков (я создам 3 класса, вы делаете сколько вам угодно). Если у вас мод, то паблик OnGameModeInit(), если же скрипт, то OnFilterScriptInit()
P.S. В судь этого кода не вдавайте, этот код писал я. Это обычные 2 текстдрав бокса и один текстовой текстдрав.
Теперь мы обратимся к паблику выбора класса OnPlayerRequestClass
Создадим там место, где будет стоять игрок, и камера, откуда она будет смотреть на игрока.
А после мы будем делать красивое меню.
Далее паблик, отвечающий за первый спавн игрока. OnPlayerRequestSpawn
Ну и последний шаг.
Если у вас мод, то паблик OnGameModeExit(), если же скрипт, то OnFilterScriptExit()
Удалим все созданые текстдравы.
Вот что у нас получилось.
Автор: Gameyer
Это подойдет для обсолютно любого мода, но вызовит положительные эмоции у игроков.
В чем это заключается?
Это заключается в том, что когда игрок выбирает скин (класс), выбираемый скин стоит в "окошке", и плюс ко всему справа от скина есть меню с названием скина или банд (это уже как пожелает душа скриптерская).
Как это сделать?
В принципе, это может вызвать затруднения, но только не у нас. Щас я все объясню!
Нам понадобится массив с 5-ю текстдравами и все. Пожробности увидите прямо сейчас.
Итак, начнём.
Создадим глобальную переменную - масив. (Для хранения текстдравов для одного игрока).
И 4 текстдравбокса.
PHP:
new Text:TextDrawsByGameyer[MAX_PLAYERS];//:D
new Text:TextDrawBoxes[4];
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);
Создадим там место, где будет стоять игрок, и камера, откуда она будет смотреть на игрока.
А после мы будем делать красивое меню.
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]);
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
Последнее редактирование:
