- Регистрация
- 21 Окт 2011
- Сообщения
- 360
- Лучшие ответы
- 0
- Репутация
- 242
итак, хочу вам показать, как сделать систему выбора скинов на TextDraw.
Это всего-лишь пример, писал в new.pwn, так что при вставке в мод, придется все же поработать ручками.
Начнем.
1. Объявим текстдравы, скины, и нужные нам переменные.
В начало мода ставим:
2. Создадим текстдравы.
В public OnGameModeInit вставляем:
3. В public OnGameModeExit вставляем:
4. Теперь в public OnPlayerClickTextDraw(playerid, Text:clickedid) добавим:
5. Далее создадим сток:
Все что вам остается - немного поработать ручками, и поменять несколько проверок, вставить сохранение в
При отправлении игрока на выбор скинов, используйте
Autor: Advokat48
Про кликабельность текстдравов можете почитать здесь:Урок Den_Wilson
Это всего-лишь пример, писал в new.pwn, так что при вставке в мод, придется все же поработать ручками.
Начнем.
1. Объявим текстдравы, скины, и нужные нам переменные.
В начало мода ставим:
PHP:
new Text: skin[3];
new cskin[MAX_PLAYERS];
new PedMan[9][0] = {
{26},
{25},
{35},
{36},
{50},
{96},
{143},
{262},
{2}
};
new PedMale[5][0] = {
{12},
{55},
{69},
{90},
{93}
};
В public OnGameModeInit вставляем:
PHP:
skin[0] = TextDrawCreate(250.000000, 300.000000, "LD_BEAT:left");
TextDrawBackgroundColor(skin[0], 255);
TextDrawFont(skin[0], 4);
TextDrawLetterSize(skin[0], 0.500000, 1.000000);
TextDrawColor(skin[0], -1);
TextDrawSetOutline(skin[0], 0);
TextDrawSetProportional(skin[0], 1);
TextDrawSetShadow(skin[0], 1);
TextDrawUseBox(skin[0], 1);
TextDrawBoxColor(skin[0], 255);
TextDrawTextSize(skin[0], 34.000000, 28.000000);
TextDrawSetSelectable(skin[0], true);//Данная функция добавлена в 0.3e, true - делает текстдрав кликабельным, false - отключает кликабельность
skin[1] = TextDrawCreate(360.000000, 300.000000, "LD_BEAT:right");
TextDrawBackgroundColor(skin[1], 255);
TextDrawFont(skin[1], 4);
TextDrawLetterSize(skin[1], 0.500000, 1.000000);
TextDrawColor(skin[1], -1);
TextDrawSetOutline(skin[1], 0);
TextDrawSetProportional(skin[1], 1);
TextDrawSetShadow(skin[1], 1);
TextDrawUseBox(skin[1], 1);
TextDrawBoxColor(skin[1], 255);
TextDrawTextSize(skin[1], 34.000000, 28.000000);
TextDrawSetSelectable(skin[1], true);
skin[2] = TextDrawCreate(318.000000, 370.000000, "SELECT");
TextDrawAlignment(skin[2], 2);
TextDrawBackgroundColor(skin[2], 255);
TextDrawFont(skin[2], 1);
TextDrawLetterSize(skin[2], 0.679999, 1.900000);
TextDrawColor(skin[2], -1);
TextDrawSetOutline(skin[2], 0);
TextDrawSetProportional(skin[2], 1);
TextDrawSetShadow(skin[2], 1);
TextDrawUseBox(skin[2], 1);
TextDrawBoxColor(skin[2], 0);
TextDrawTextSize(skin[2], 15.000000, 68.000000);
TextDrawSetSelectable(skin[2], true);
PHP:
TextDrawDestroy(skin[0]);TextDrawDestroy(skin[1]);TextDrawDestroy(skin[2]);//удаляем созданные текстдравы
PHP:
if(clickedid == skin[0])//left
{
cskin[playerid]--;
if(GetPVarInt(playerid, "pol") == 1)//проверку на пол ставьте свою. Как я уже говорил писал в new.pwn, и для тестирования использовал PVar'ы
{
if(cskin[playerid] < 0) cskin[playerid] = 9;
SetPlayerSkin(playerid, PedMan[cskin[playerid]][0]);
}
else if(GetPVarInt(playerid, "pol") == 2)//свою проверку на пол.
{
if(cskin[playerid] < 0) cskin[playerid] = 5;
SetPlayerSkin(playerid, PedMale[cskin[playerid]][0]);
}
}
else if(clickedid == skin[1])//right
{
cskin[playerid]++;
if(GetPVarInt(playerid, "pol") == 1)//свою проверку
{
if(cskin[playerid] > 9) cskin[playerid] = 0;
SetPlayerSkin(playerid, PedMan[cskin[playerid]][0]);
}
else if(GetPVarInt(playerid, "pol") == 2)//свою проверку
{
if(cskin[playerid] > 5) cskin[playerid] = 0;
SetPlayerSkin(playerid, PedMale[cskin[playerid]][0]);
}
}
else if(clickedid == skin[2])//select
{
TextDrawHideForPlayer(playerid, skin[0]);
TextDrawHideForPlayer(playerid, skin[1]);
TextDrawHideForPlayer(playerid, skin[2]);
CancelSelectTextDraw(playerid);
}
PHP:
stock Invite(pl)
{
if(GetPVarInt(pl, "pol") == 1)//своя проверка
{
SetPlayerSkin(pl, 26);
}
if(GetPVarInt(pl, "pol") == 2)//своя проверка
{
SetPlayerSkin(pl, 12);
}
SetPlayerPos(pl, 1971.5336,1424.0586,76.1563);//координаты персонажа
SetPlayerFacingAngle(pl, 266.4810);//куда будет смотреть персонаж
SetPlayerVirtualWorld(pl,0);//виртуальный мир
SetPlayerCameraPos(pl,1975.5336,1424.0586,140);//положение камеры
TextDrawShowForPlayer(pl, skin[0]);
TextDrawShowForPlayer(pl, skin[1]);
TextDrawShowForPlayer(pl, skin[2]);
SelectTextDraw(pl, 0x2641FEAA);//делаем текстдравы активными. 0x2641FEAA - цвет, на который будет меняться текстдрав при наведении на него мышки.
return true;
}
PHP:
clickedid == skin[2]
PHP:
Invite(playerid);
Про кликабельность текстдравов можете почитать здесь:Урок Den_Wilson
Последнее редактирование модератором: