Всем привет. Это система одежд которая позволяет одевать и раздевать вашего персонажа в игре.
Существует 3 слота для каждого игрока, Писал с нуля, идею взял из РакНет.
ко всем переменным:
PHP код:
// ============= [ одежда игрока by Scooter ] ===========
new
// === TD
Text:u_SkinPlayerMenuTD[5],
PlayerText:u_SkinPlayerMenuTDforPlayer[MAX_PLAYERS][4],
// === Other
u_SkinSlot[MAX_PLAYERS][4],
u_SelectedSkin[MAX_PLAYERS];
// ============= [ покупка одежды by Scooter ]===============
new
Text:u_SkinBuyMenuTD[15],
//SelectedSlot[15];
u_MenuSkinsMale[15] = { 0,2,14,24,25,29,59,60,82,83,84,170,185,240,299 },
u_MenuSkinsFemale[15] = { 0,12,13,40,55,56,76,90,141,148,169,192,190,193,216 },
u_skinshop_seller, u_toshop[2], u__inorder4 = INVALID_PLAYER_ID;
в OnGameModeInt
PHP код:
u_toshop[0] = CreatePickup(1318,23,499.509,-1360.63,16.3691,0);
u_toshop[1] = CreatePickup(1318,23,206.956,-140.373,1003.51,1);
u_skinshop_seller= CreateActor(241,207.0798,-127.8070,1003.5078,182.8684);
SetActorVirtualWorld(u_skinshop_seller, 1);
в OnPlayerPickUpPickup
PHP код:
if(pickupid == u_toshop[0])
{
SetPlayerVirtualWorld(playerid,1);
SetPlayerInterior(playerid,3);
SetPlayerPos(playerid,207.018,-138.37,1003.51);
SetPlayerFacingAngle(playerid, 358.31);
SetCameraBehindPlayer(playerid);
}
else if(pickupid == u_toshop[1])
{
SetPlayerVirtualWorld(playerid,0);
SetPlayerInterior(playerid,0);
SetPlayerPos(playerid,500.092,-1358.59,16.2078);
SetPlayerFacingAngle(playerid, 358.31);
SetCameraBehindPlayer(playerid);
}
в OnPlayerDisconnect
PHP код:
if(playerid == u__inorder4) u__inorder4 = INVALID_PLAYER_ID;
PHP код:
new SellerActSays[3][3][73] = {
{"- Продавец: Привет чувак, тебе чо ?","- Продавец: Здарова, я тя слушаю?","- Продавец: Брооо, чем я тебе могу помочь?"},
{"Привет, что у тебя на продаже?","Привет, что посоветуешь ?","Здарова, мне бы новую одежду ..."},
{"- Продавец: йо, вот, посмотри","- Продавец: посмотри на это","- Продавец: оцени"}
};
в OnPlayerClickTextDraw
PHP код:
if(GetPVarInt(playerid,"ShopTD_Active") == 1)
{
if(_:clickedid == INVALID_TEXT_DRAW) SelectTextDraw(playerid, 0xcfcfcfAA);
new empty_skin = (PlayerInfo[playerid][pSex] == 1) ? (154) : (140);
if(u_SkinSlot[playerid][0] != empty_skin) return SendClientMessage(playerid,COLOR_LIGHTRED,"[Ошибка] Вам нужно быть без одежды");
SetPlayerSkin(playerid,(PlayerInfo[playerid][pSex] == 1) ? (u_MenuSkinsMale[_:clickedid]) : (u_MenuSkinsFemale[_:clickedid]));
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][0],(PlayerInfo[playerid][pSex] == 1) ? (u_MenuSkinsMale[_:clickedid]) : (u_MenuSkinsFemale[_:clickedid]));
PlayerTextDrawShow(playerid, u_SkinPlayerMenuTDforPlayer[playerid][0]);
}
if(GetPVarInt(playerid,"u_SkinPlayerMenuTD_Active") == 1)
{
if(_:clickedid == INVALID_TEXT_DRAW) SelectTextDraw(playerid, 0xcfcfcfAA);
else if(clickedid == u_SkinPlayerMenuTD[2])
{
if(u_SelectedSkin[playerid] != -1) return SendClientMessage(playerid,COLOR_LIGHTRED,"[Ошибка] Положите вашу одежду в любой свободный слот.");
ReturnPlayerMenu(playerid,0);
}
else if(clickedid == u_SkinPlayerMenuTD[4])
{
if(u_SelectedSkin[playerid] != -1) u_SelectedSkin[playerid] = -1;
}
}
в OnPlayerClickPlayerTextDraw
PHP код:
if(GetPVarInt(playerid,"u_SkinPlayerMenuTD_Active") == 1)
{
// Если нажал 'ESC' не даем закрывать стрелку
if(playertextid == PlayerText:INVALID_TEXT_DRAW) SelectTextDraw(playerid, 0xcfcfcfAA);
// Если нажал на основной слот
else if(playertextid == u_SkinPlayerMenuTDforPlayer[playerid][0])
{
new empty_skin = PlayerInfo[playerid][pSex] == 1 ? 154 : 140;
if(u_SelectedSkin[playerid] == -1)
{
if(u_SkinSlot[playerid][0] == empty_skin) return SendClientMessage(playerid,COLOR_LIGHTRED,"[Ошибка] Вы без одежды");
u_SelectedSkin[playerid] = GetPlayerSkin(playerid);
u_SkinSlot[playerid][0] = empty_skin;
SetPlayerSkin(playerid,empty_skin);
}
else
{
if(u_SkinSlot[playerid][0] != empty_skin) return SendClientMessage(playerid,COLOR_LIGHTRED,"[Ошибка] Вам нужно быть без одежды");
u_SkinSlot[playerid][0] = u_SelectedSkin[playerid];
SetPlayerSkin(playerid,u_SkinSlot[playerid][0]);
u_SelectedSkin[playerid] = -1;
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][0],u_SkinSlot[playerid][0]);
}
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][0],u_SkinSlot[playerid][0]);
PlayerTextDrawShow(playerid, u_SkinPlayerMenuTDforPlayer[playerid][0]);
}
// Если нажал на слот 1
else if(playertextid == u_SkinPlayerMenuTDforPlayer[playerid][1])
{
if(u_SelectedSkin[playerid] == -1)
{
if(u_SkinSlot[playerid][1] == 19374) return 1;
u_SelectedSkin[playerid] = u_SkinSlot[playerid][1];
u_SkinSlot[playerid][1] = 19374;
}
else
{
if(u_SkinSlot[playerid][1] != 19374) return SendClientMessage(playerid,COLOR_LIGHTRED,"[Ошибка] Этот слот занят");
u_SkinSlot[playerid][1] = u_SelectedSkin[playerid];
u_SelectedSkin[playerid] = -1;
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][1],u_SkinSlot[playerid][1]);
}
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][1],u_SkinSlot[playerid][1]);
PlayerTextDrawShow(playerid, u_SkinPlayerMenuTDforPlayer[playerid][1]);
}
// Если нажал на слот 2
else if(playertextid == u_SkinPlayerMenuTDforPlayer[playerid][2])
{
if(u_SelectedSkin[playerid] == -1)
{
if(u_SkinSlot[playerid][2] == 19374) return 1;
u_SelectedSkin[playerid] = u_SkinSlot[playerid][2];
u_SkinSlot[playerid][2] = 19374;
}
else
{
if(u_SkinSlot[playerid][2] != 19374) return SendClientMessage(playerid,COLOR_LIGHTRED,"[Ошибка] Этот слот занят");
u_SkinSlot[playerid][2] = u_SelectedSkin[playerid];
u_SelectedSkin[playerid] = -1;
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][2],u_SkinSlot[playerid][2]);
}
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][2],u_SkinSlot[playerid][2]);
PlayerTextDrawShow(playerid, u_SkinPlayerMenuTDforPlayer[playerid][2]);
}
// Если нажал на слот 3
else if(playertextid == u_SkinPlayerMenuTDforPlayer[playerid][3])
{
if(u_SelectedSkin[playerid] == -1)
{
if(u_SkinSlot[playerid][3] == 19374) return 1;
u_SelectedSkin[playerid] = u_SkinSlot[playerid][3];
u_SkinSlot[playerid][3] = 19374;
}
else
{
if(u_SkinSlot[playerid][3] != 19374) return SendClientMessage(playerid,COLOR_LIGHTRED,"[Ошибка] Этот слот занят");
u_SkinSlot[playerid][3] = u_SelectedSkin[playerid];
u_SelectedSkin[playerid] = -1;
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][3],u_SkinSlot[playerid][3]);
}
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][3],u_SkinSlot[playerid][3]);
PlayerTextDrawShow(playerid, u_SkinPlayerMenuTDforPlayer[playerid][3]);
}
return 1;
}
в конец мода
PHP код:
// ===================== [ by Scooter ] =================
stock ReturnPlayerMenu(playerid,status)
{
// Если он в машине
if(IsPlayerInAnyVehicle(playerid)) return 1;
// Если он не активирован
if(status == 1)
{
TextDrawShowForPlayer(playerid,u_SkinPlayerMenuTD[0]); // Фон
TextDrawShowForPlayer(playerid,u_SkinPlayerMenuTD[1]); // Фон 2
TextDrawShowForPlayer(playerid,u_SkinPlayerMenuTD[2]); // Кнопка Close
TextDrawShowForPlayer(playerid,u_SkinPlayerMenuTD[3]); // Фон Дропа
TextDrawShowForPlayer(playerid,u_SkinPlayerMenuTD[4]); // Кнопка Дроп
new empty_skin = PlayerInfo[playerid][pSex] == 1 ? 154 : 140;
if(GetPlayerSkin(playerid) != empty_skin)
{
u_SkinSlot[playerid][0] = (PlayerInfo[playerid][pMember]) ? (PlayerInfo[playerid][pModel]) : (PlayerInfo[playerid][pChar]);
}
else u_SkinSlot[playerid][0] = empty_skin;
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][0],u_SkinSlot[playerid][0]);
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][1],u_SkinSlot[playerid][1]);
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][2],u_SkinSlot[playerid][2]);
PlayerTextDrawSetPreviewModel(playerid,u_SkinPlayerMenuTDforPlayer[playerid][3],u_SkinSlot[playerid][3]);
PlayerTextDrawShow(playerid,u_SkinPlayerMenuTDforPlayer[playerid][0]); // Основной
PlayerTextDrawShow(playerid,u_SkinPlayerMenuTDforPlayer[playerid][1]); // Слот 1
PlayerTextDrawShow(playerid,u_SkinPlayerMenuTDforPlayer[playerid][2]); // Слот 2
PlayerTextDrawShow(playerid,u_SkinPlayerMenuTDforPlayer[playerid][3]); // Слот 3
SelectTextDraw(playerid, 0xcfcfcfAA);
SetPVarInt(playerid,"u_SkinPlayerMenuTD_Active",1);
return 1;
}
// Иначе
TextDrawHideForPlayer(playerid,u_SkinPlayerMenuTD[0]); // Фон
TextDrawHideForPlayer(playerid,u_SkinPlayerMenuTD[1]); // Фон 2
TextDrawHideForPlayer(playerid,u_SkinPlayerMenuTD[2]); // Кнопка Close
TextDrawHideForPlayer(playerid,u_SkinPlayerMenuTD[3]); // Фон Дропа
TextDrawHideForPlayer(playerid,u_SkinPlayerMenuTD[4]); // Кнопка Дроп
PlayerTextDrawHide(playerid,u_SkinPlayerMenuTDforPlayer[playerid][0]); // Основной
PlayerTextDrawHide(playerid,u_SkinPlayerMenuTDforPlayer[playerid][1]); // Слот 1
PlayerTextDrawHide(playerid,u_SkinPlayerMenuTDforPlayer[playerid][2]); // Слот 2
PlayerTextDrawHide(playerid,u_SkinPlayerMenuTDforPlayer[playerid][3]); // Слот 3
CancelSelectTextDraw(playerid);
DeletePVar(playerid,"u_SkinPlayerMenuTD_Active");
return 1;
}
PHP код:
forward InTheShop(playerid,f);
public InTheShop(playerid,f)
{
#define M(%0) ProxDetector(20.0, playerid,%0,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5)
switch(f)
{
case 0: M(SellerActSays[f][RandomEx(0,3)]),SetTimerEx("InTheShop",1800,false,"dd",playerid,f+1);
case 1: ApplyActorAnimation(u_skinshop_seller,"CARRY","crry_prtial",4.1,0,0,0,0,1),OnPlayerText(playerid,SellerActSays[f][RandomEx(0,3)]),SetTimerEx("InTheShop",2300,false,"dd",playerid,f+1);
case 2: ApplyAnimation(playerid, "BD_FIRE", "BD_Fire1", 4.1, 0, 0, 0, 0, 1, 1),ApplyActorAnimation(u_skinshop_seller, "PED","IDLE_CHAT", 4.1, 1, 1, 1, 1, 3),M(SellerActSays[f][RandomEx(0,3)]),SetTimerEx("InTheShop",1800,false,"dd",playerid,f+1);
case 3:
{
SetPlayerCameraPos(playerid,212.7066,-131.0801,1003.200);
SetPlayerCameraLookAt(playerid,214.3746,-127.8927,1003.5078,1);
ApplyActorAnimation(u_skinshop_seller,"CARRY","crry_prtial",4.1,0,0,0,0,1);
SetPlayerPos(playerid,214.3746,-127.8927,1003.5078);
SetPlayerFacingAngle(playerid,148.2331);
TogglePlayerControllable(playerid,false);
ReturnPlayerMenu(playerid,1);
SetPVarInt(playerid,"ShopTD_Active",1);
SendClientMessage(playerid, COLOR_BLUE,"Что-бы купить введите '/purch', отмена покупки: '/pcancel'");
for(new i = 0; i < sizeof u_SkinBuyMenuTD; i++)
{
if(i != 0) TextDrawSetPreviewModel(u_SkinBuyMenuTD[i],PlayerInfo[playerid][pSex] == 1 ? u_MenuSkinsMale[i] : u_MenuSkinsFemale[i]);
TextDrawShowForPlayer(playerid,u_SkinBuyMenuTD[i]);
}
}
}
#undef M
return 1;
}
ко всем текстдравам
PHP код:
// ====================== [ TD Buy by Scooter ] ========================= //
// Фон
u_SkinBuyMenuTD[0] = TextDrawCreate(404.500000, 136.644378, "LD_SPAC:white");
TextDrawLetterSize(u_SkinBuyMenuTD[0], 0.000000, 0.000000);
TextDrawTextSize(u_SkinBuyMenuTD[0], 172.000000, 130.666549);
TextDrawAlignment(u_SkinBuyMenuTD[0], 1);
TextDrawColor(u_SkinBuyMenuTD[0], -370605825);
TextDrawSetShadow(u_SkinBuyMenuTD[0], 0);
TextDrawSetOutline(u_SkinBuyMenuTD[0], 0);
TextDrawBackgroundColor(u_SkinBuyMenuTD[0], 0x00000000);
TextDrawFont(u_SkinBuyMenuTD[0], 4);
// Кнопки
u_SkinBuyMenuTD[1] = TextDrawCreate(407.000000, 140.266662, "PreviewModel");
u_SkinBuyMenuTD[2] = TextDrawCreate(440.500000, 140.022216, "PreviewModel");
u_SkinBuyMenuTD[3] = TextDrawCreate(474.000000, 140.399993, "PreviewModel");
u_SkinBuyMenuTD[4] = TextDrawCreate(507.500000, 140.155548, "PreviewModel");
u_SkinBuyMenuTD[5] = TextDrawCreate(541.000000, 140.533325, "PreviewModel");
u_SkinBuyMenuTD[6] = TextDrawCreate(421.000000, 181.977767, "PreviewModel");
u_SkinBuyMenuTD[7] = TextDrawCreate(454.500000, 181.733322, "PreviewModel");
u_SkinBuyMenuTD[8] = TextDrawCreate(488.500000, 182.111099, "PreviewModel");
u_SkinBuyMenuTD[9] = TextDrawCreate(522.000000, 181.866653, "PreviewModel");
u_SkinBuyMenuTD[10] = TextDrawCreate(407.000000, 223.933303, "PreviewModel");
u_SkinBuyMenuTD[11] = TextDrawCreate(440.500000, 223.688858, "PreviewModel");
u_SkinBuyMenuTD[12] = TextDrawCreate(474.500000, 223.444412, "PreviewModel");
u_SkinBuyMenuTD[13] = TextDrawCreate(508.500000, 223.822189, "PreviewModel");
u_SkinBuyMenuTD[14] = TextDrawCreate(542.500000, 222.955520, "PreviewModel");
for(new i = 1; i < sizeof u_SkinBuyMenuTD; i++)
{
//SelectedSlot[u_SkinBuyMenuTD[i]] = i;
TextDrawLetterSize(u_SkinBuyMenuTD[i], 0.000000, 0.000000);
TextDrawTextSize(u_SkinBuyMenuTD[i], 31.500000, 39.199943);
TextDrawAlignment(u_SkinBuyMenuTD[i], 1);
TextDrawColor(u_SkinBuyMenuTD[i], -1);
TextDrawSetShadow(u_SkinBuyMenuTD[i], 0);
TextDrawSetOutline(u_SkinBuyMenuTD[i], 0);
TextDrawBackgroundColor(u_SkinBuyMenuTD[i], -402677761);
TextDrawFont(u_SkinBuyMenuTD[i], 5);
TextDrawSetPreviewModel(u_SkinBuyMenuTD[i],0);
TextDrawSetPreviewRot(u_SkinBuyMenuTD[i], 0.000000, 0.000000, 0.000000, 1.000000);
TextDrawSetSelectable(u_SkinBuyMenuTD[i], true);
}
// ================= [ Одежда by Scooter ] ============
// Фон
u_SkinPlayerMenuTD[0] = TextDrawCreate(23.500000, 138.755554, "LD_SPAC:white");
TextDrawLetterSize(u_SkinPlayerMenuTD[0], 0.000000, 0.000000);
TextDrawTextSize(u_SkinPlayerMenuTD[0], 107.000000, 154.311019);
TextDrawAlignment(u_SkinPlayerMenuTD[0], 1);
TextDrawColor(u_SkinPlayerMenuTD[0], -370605825);
TextDrawSetShadow(u_SkinPlayerMenuTD[0], 0);
TextDrawSetOutline(u_SkinPlayerMenuTD[0], 0);
TextDrawBackgroundColor(u_SkinPlayerMenuTD[0], 0x00000000);
TextDrawFont(u_SkinPlayerMenuTD[0], 4);
// Фон 2
u_SkinPlayerMenuTD[1] = TextDrawCreate(27.000000, 295.311187, "LD_SPAC:white");
TextDrawLetterSize(u_SkinPlayerMenuTD[1], 0.000000, 0.000000);
TextDrawTextSize(u_SkinPlayerMenuTD[1], 99.500000, 23.644292);
TextDrawAlignment(u_SkinPlayerMenuTD[1], 1);
TextDrawColor(u_SkinPlayerMenuTD[1], -370605825);
TextDrawSetShadow(u_SkinPlayerMenuTD[1], 0);
TextDrawSetOutline(u_SkinPlayerMenuTD[1], 0);
TextDrawBackgroundColor(u_SkinPlayerMenuTD[1], 0x00000000);
TextDrawFont(u_SkinPlayerMenuTD[1], 4);
TextDrawSetSelectable(u_SkinPlayerMenuTD[1], true);
// Кнопка Закрыть
u_SkinPlayerMenuTD[2] = TextDrawCreate(47.000000, 299.288879, "close");
TextDrawLetterSize(u_SkinPlayerMenuTD[2], 0.449999, 1.600000);
TextDrawAlignment(u_SkinPlayerMenuTD[2], 1);
TextDrawColor(u_SkinPlayerMenuTD[2], -1);
TextDrawSetShadow(u_SkinPlayerMenuTD[2], 0);
TextDrawSetOutline(u_SkinPlayerMenuTD[2], 1);
TextDrawBackgroundColor(u_SkinPlayerMenuTD[2], 51);
TextDrawFont(u_SkinPlayerMenuTD[2], 2);
TextDrawSetProportional(u_SkinPlayerMenuTD[2], 1);
TextDrawSetSelectable(u_SkinPlayerMenuTD[2], true);
// Фон дропа
u_SkinPlayerMenuTD[3] = TextDrawCreate(27.000000, 320.000000, "LD_SPAC:white");
TextDrawLetterSize(u_SkinPlayerMenuTD[3], 0.000000, 0.000000);
TextDrawTextSize(u_SkinPlayerMenuTD[3], 99.500000, 23.644292);
TextDrawAlignment(u_SkinPlayerMenuTD[3], 1);
TextDrawColor(u_SkinPlayerMenuTD[3], -370605825);
TextDrawSetShadow(u_SkinPlayerMenuTD[3], 0);
TextDrawSetOutline(u_SkinPlayerMenuTD[3], 0);
TextDrawBackgroundColor(u_SkinPlayerMenuTD[3], 0x00000000);
TextDrawFont(u_SkinPlayerMenuTD[3], 4);
TextDrawSetSelectable(u_SkinPlayerMenuTD[3], true);
// Дроп
u_SkinPlayerMenuTD[4] = TextDrawCreate(46.500000, 323.933349, "drope");
TextDrawLetterSize(u_SkinPlayerMenuTD[4], 0.449999, 1.600000);
TextDrawAlignment(u_SkinPlayerMenuTD[4], 1);
TextDrawColor(u_SkinPlayerMenuTD[4], -1);
TextDrawSetShadow(u_SkinPlayerMenuTD[4], 0);
TextDrawSetOutline(u_SkinPlayerMenuTD[4], 1);
TextDrawBackgroundColor(u_SkinPlayerMenuTD[4], 51);
TextDrawFont(u_SkinPlayerMenuTD[4], 2);
TextDrawSetProportional(u_SkinPlayerMenuTD[4], 1);
TextDrawSetSelectable(u_SkinPlayerMenuTD[4], true);
к другим текстдравам для игроков
PHP код:
// ============= Система одежд by Scooter
u_SkinPlayerMenuTDforPlayer[playerid][0] = CreatePlayerTextDraw(playerid, 27.000000, 141.866668, "PreviewModel"); // Основной
u_SkinPlayerMenuTDforPlayer[playerid][1] = CreatePlayerTextDraw(playerid, 28.000000, 248.644500, "PreviewModel"); // Слот 1
u_SkinPlayerMenuTDforPlayer[playerid][2] = CreatePlayerTextDraw(playerid, 61.500000, 248.400054, "PreviewModel"); // Слот 2
u_SkinPlayerMenuTDforPlayer[playerid][3] = CreatePlayerTextDraw(playerid, 95.000000, 248.777832, "PreviewModel"); // Слот 3
for(new i = 0; i != 4; i++)
{
PlayerTextDrawTextSize(playerid, u_SkinPlayerMenuTDforPlayer[playerid][i],(i == 0) ? (99.500000) : (31.500000), (i == 0) ? (96.444442) : (39.199943));
PlayerTextDrawLetterSize(playerid, u_SkinPlayerMenuTDforPlayer[playerid][i], 0.000000, 0.000000);
PlayerTextDrawAlignment(playerid, u_SkinPlayerMenuTDforPlayer[playerid][i], 1);
PlayerTextDrawColor(playerid, u_SkinPlayerMenuTDforPlayer[playerid][i], -1);
PlayerTextDrawSetShadow(playerid, u_SkinPlayerMenuTDforPlayer[playerid][i], 0);
PlayerTextDrawSetOutline(playerid, u_SkinPlayerMenuTDforPlayer[playerid][i], 0);
PlayerTextDrawBackgroundColor(playerid, u_SkinPlayerMenuTDforPlayer[playerid][i],0xcfcfcfAA);
PlayerTextDrawFont(playerid, u_SkinPlayerMenuTDforPlayer[playerid][i], 5);
PlayerTextDrawSetPreviewModel(playerid, u_SkinPlayerMenuTDforPlayer[playerid][i], 0);
PlayerTextDrawSetPreviewRot(playerid, u_SkinPlayerMenuTDforPlayer[playerid][i], 0.000000, 0.000000, 0.000000, 1.000000);
PlayerTextDrawSetSelectable(playerid, u_SkinPlayerMenuTDforPlayer[playerid][i], true);
}
в OnPlayerKeyStateChange
PHP код:
if(oldkeys & KEY_YES)
{
ReturnPlayerMenu(playerid,1);
}
if(oldkeys & KEY_SECONDARY_ATTACK)
{
if(PlayerInfo[playerid][pInt])
{
if(IsPlayerInRangeOfPoint(playerid,2.0,207.0940,-129.1801,1003.5078))
{
if(PlayerInfo[playerid][pCash] < 3000) return SendClientMessage(playerid,COLOR_ADM,"[Ошибка] Вам нужно $3000");
if(u__inorder4 != INVALID_PLAYER_ID) return SendClientMessage(playerid,COLOR_LIGHTRED,"Пожалуйста, подождите ...");
SetPlayerPos(playerid,207.0940,-129.1801,1003.5078);
u__inorder4 = playerid;
ApplyActorAnimation(u_skinshop_seller, "PED","IDLE_CHAT", 4.1, 1, 1, 1, 1, 3);
return InTheShop(playerid,0);
}
}
}
где данные игрока очищаются
PHP код:
u_SkinSlot[playerid][0] = 0;
u_SkinSlot[playerid][1] = u_SkinSlot[playerid][2] = u_SkinSlot[playerid][3] = 19374;
u_SelectedSkin[playerid] = -1;
команды
PHP код:
CMD:purch(playerid)
{
if(GetPVarInt(playerid,"ShopTD_Active") == 1)
{
for(new i = 0; i < sizeof u_SkinBuyMenuTD; i++)
{
TextDrawHideForPlayer(playerid,u_SkinBuyMenuTD[i]);
}
GameTextForPlayer(playerid,"~r~-$3000", 3000, 1);
PlayerInfo[playerid][pCash] -= 3000;
ReturnPlayerMenu(playerid,0);
new skin = GetPlayerSkin(playerid);
u_SkinSlot[playerid][0] = skin;
SetPlayerSkin(playerid,skin);
TogglePlayerControllable(playerid,true);
SetCameraBehindPlayer(playerid);
u__inorder4 = INVALID_PLAYER_ID;
DeletePVar(playerid,"ShopTD_Active");
}
return 1;
}
CMD:pcancel(playerid)
{
if(GetPVarInt(playerid,"ShopTD_Active") == 1)
{
for(new i = 0; i < sizeof u_SkinBuyMenuTD; i++)
{
TextDrawHideForPlayer(playerid,u_SkinBuyMenuTD[i]);
}
ReturnPlayerMenu(playerid,0);
TogglePlayerControllable(playerid,true);
SetCameraBehindPlayer(playerid);
u__inorder4 = INVALID_PLAYER_ID;
u_SkinSlot[playerid][0] = PlayerInfo[playerid][pSex] == 1 ? 154 : 140;
SetPlayerSkin(playerid,u_SkinSlot[playerid][0]);
DeletePVar(playerid,"ShopTD_Active");
}
return 1;
}
SCREENS
Автор - Scooter
Если что-то забыл - скажите об этом
И создание TD должна быть первой. В начале, что-бы ID TD было 0-1. Тогда глюков не будет.