- Регистрация
- 11 Июн 2015
- Сообщения
- 195
- Лучшие ответы
- 0
- Репутация
- 55
Доброго времени суток, пользователи P-I.RU!
Недавно увидел на одном из серверов (GameWorld-RP) систему лоурайдеров.
Решил сделать на скорую руку что-то подобное, может кому-нибудь понадобится.
Используются 4 вида стрелок: верх, низ, лево, право.
Используется Num клавиши.
Приступим к выполнению работы.
Недавно увидел на одном из серверов (GameWorld-RP) систему лоурайдеров.
Решил сделать на скорую руку что-то подобное, может кому-нибудь понадобится.
Используются 4 вида стрелок: верх, низ, лево, право.
Используется Num клавиши.
Приступим к выполнению работы.
Ко всем переменным:
PHP:
#define f(%1, format(%1,sizeof(%1),
new Text:LRRegister[4];
new Text:LRRightBox[5];
new PlayerText:LRShowVehicle[MAX_PLAYERS];
new PlayerText:LRArrows[MAX_PLAYERS][3];
new gChangeLRVehicle[8] = {536, 575, 534, 567, 535, 566, 576, 412};
new gNumberLRList[MAX_PLAYERS];
new gGamersLowRiders[2];
new Float:gDriversPlace[2][4] =
{
{1791.4767,-1927.1775,13.3891,359.1139},
{1791.8611,-1899.7068,13.3980,180.8908}
};
new PlayerVehicleID[MAX_PLAYERS];
new PlayerName[MAX_PLAYERS][MAX_PLAYER_NAME];
new SelectedImage[4][15] =
{
"LD_BEAT:up",
"LD_BEAT:down",
"LD_BEAT:left",
"LD_BEAT:right"
};
new PlayerImageID[MAX_PLAYERS][3];
new bool:StartServerRiders;
new TimerSecond[2];
new PlayerCountGoodKeys[MAX_PLAYERS];
PHP:
if(StartServerRiders)
{
if(gGamersLowRiders[0] == playerid || gGamersLowRiders[1] == playerid)
{
if(newkeys & KEY_ANALOG_UP)
{
if(PlayerImageID[playerid][1] == 0) GameTextForPlayer(playerid, "~g~GOOD KEYS", 500, 4), PlayerCountGoodKeys[playerid] += 5;
else GameTextForPlayer(playerid, "~r~BAD KEYS", 500, 4);
PlayerChangeImage(playerid, true);
}
if(newkeys & KEY_ANALOG_DOWN)
{
if(PlayerImageID[playerid][1] == 1) GameTextForPlayer(playerid, "~g~GOOD KEYS", 500, 4), PlayerCountGoodKeys[playerid] += 5;
else GameTextForPlayer(playerid, "~r~BAD KEYS", 500, 4);
PlayerChangeImage(playerid, true);
}
if(newkeys & KEY_ANALOG_LEFT)
{
if(PlayerImageID[playerid][1] == 2) GameTextForPlayer(playerid, "~g~GOOD KEYS", 500, 4), PlayerCountGoodKeys[playerid] += 5;
else GameTextForPlayer(playerid, "~r~BAD KEYS", 500, 4);
PlayerChangeImage(playerid, true);
}
if(newkeys & KEY_ANALOG_RIGHT)
{
if(PlayerImageID[playerid][1] == 3) GameTextForPlayer(playerid, "~g~GOOD KEYS", 500, 4), PlayerCountGoodKeys[playerid] += 5;
else GameTextForPlayer(playerid, "~r~BAD KEYS", 500, 4);
PlayerChangeImage(playerid, true);
}
new mes[MAX_PLAYER_NAME+20];
if(gGamersLowRiders[0] == playerid) f(mes, "1. %s %i", PlayerName[playerid], PlayerCountGoodKeys[playerid]), TextDrawSetString(LRRightBox[2],mes);
else f(mes, "2. %s %i", PlayerName[playerid], PlayerCountGoodKeys[playerid]), TextDrawSetString(LRRightBox[3],mes);
}
}
PHP:
// ВЫБОР МАШИНЫ
LRRegister[0] = TextDrawCreate(373.199981, 169.500000, "usebox");
TextDrawLetterSize(LRRegister[0], 0.000000, 14.450742);
TextDrawTextSize(LRRegister[0], 247.599990, 0.000000);
TextDrawAlignment(LRRegister[0], 1);
TextDrawColor(LRRegister[0], 0);
TextDrawUseBox(LRRegister[0], true);
TextDrawBoxColor(LRRegister[0], -2147483393);
TextDrawSetShadow(LRRegister[0], 0);
TextDrawSetOutline(LRRegister[0], 0);
TextDrawFont(LRRegister[0], 0);
LRRegister[1] = TextDrawCreate(251.199996, 306.133331, "LD_BEAT:left");
TextDrawLetterSize(LRRegister[1], 0.000000, 0.000000);
TextDrawTextSize(LRRegister[1], 29.600021, 28.373321);
TextDrawAlignment(LRRegister[1], 1);
TextDrawColor(LRRegister[1], -1);
TextDrawSetShadow(LRRegister[1], 0);
TextDrawSetOutline(LRRegister[1], 0);
TextDrawFont(LRRegister[1], 4);
TextDrawSetSelectable(LRRegister[1], true);
LRRegister[2] = TextDrawCreate(340.999938, 304.893310, "LD_BEAT:right");
TextDrawLetterSize(LRRegister[2], 0.000000, 0.000000);
TextDrawTextSize(LRRegister[2], 29.600021, 28.373321);
TextDrawAlignment(LRRegister[2], 1);
TextDrawColor(LRRegister[2], -1);
TextDrawSetShadow(LRRegister[2], 0);
TextDrawSetOutline(LRRegister[2], 0);
TextDrawFont(LRRegister[2], 4);
TextDrawSetSelectable(LRRegister[2], true);
LRRegister[3] = TextDrawCreate(297.600097, 310.613342, "play");
TextDrawLetterSize(LRRegister[3], 0.449999, 1.600000);
TextDrawTextSize(LRRegister[3], 327.199890, 28.373331);
TextDrawAlignment(LRRegister[3], 1);
TextDrawColor(LRRegister[3], -1);
TextDrawUseBox(LRRegister[3], true);
TextDrawBoxColor(LRRegister[3], 0);
TextDrawSetShadow(LRRegister[3], 0);
TextDrawSetOutline(LRRegister[3], 1);
TextDrawBackgroundColor(LRRegister[3], 51);
TextDrawFont(LRRegister[3], 1);
TextDrawSetProportional(LRRegister[3], 1);
TextDrawSetSelectable(LRRegister[3], true);
// ПРАВЫЙ БОКС
LRRightBox[0] = TextDrawCreate(643.599975, 150.086669, "usebox");
TextDrawLetterSize(LRRightBox[0], 0.000000, 10.984079);
TextDrawTextSize(LRRightBox[0], 490.799987, 0.000000);
TextDrawAlignment(LRRightBox[0], 1);
TextDrawColor(LRRightBox[0], 0);
TextDrawUseBox(LRRightBox[0], true);
TextDrawBoxColor(LRRightBox[0], 12582826);
TextDrawSetShadow(LRRightBox[0], 0);
TextDrawSetOutline(LRRightBox[0], 0);
TextDrawFont(LRRightBox[0], 0);
LRRightBox[1] = TextDrawCreate(586.400024, 150.079940, "1:20");
TextDrawLetterSize(LRRightBox[1], 0.449999, 1.600000);
TextDrawAlignment(LRRightBox[1], 1);
TextDrawColor(LRRightBox[1], -1);
TextDrawSetShadow(LRRightBox[1], 0);
TextDrawSetOutline(LRRightBox[1], 1);
TextDrawBackgroundColor(LRRightBox[1], 51);
TextDrawFont(LRRightBox[1], 2);
TextDrawSetProportional(LRRightBox[1], 1);
LRRightBox[2] = TextDrawCreate(502.600006, 185.426635, "_");// name 1
TextDrawLetterSize(LRRightBox[2], 0.237199, 1.517866);
TextDrawAlignment(LRRightBox[2], 1);
TextDrawColor(LRRightBox[2], -1);
TextDrawSetShadow(LRRightBox[2], 0);
TextDrawSetOutline(LRRightBox[2], 1);
TextDrawBackgroundColor(LRRightBox[2], 51);
TextDrawFont(LRRightBox[2], 2);
TextDrawSetProportional(LRRightBox[2], 1);
LRRightBox[3] = TextDrawCreate(501.200042, 204.346710, "_");// name 2
TextDrawLetterSize(LRRightBox[3], 0.237199, 1.517866);
TextDrawAlignment(LRRightBox[3], 1);
TextDrawColor(LRRightBox[3], -1);
TextDrawSetShadow(LRRightBox[3], 0);
TextDrawSetOutline(LRRightBox[3], 1);
TextDrawBackgroundColor(LRRightBox[3], 51);
TextDrawFont(LRRightBox[3], 2);
TextDrawSetProportional(LRRightBox[3], 1);
LRRightBox[4] = TextDrawCreate(284.000061, 380.053253, "LD_BEAT:cring");
TextDrawLetterSize(LRRightBox[4], 0.000000, 0.000000);
TextDrawTextSize(LRRightBox[4], 47.999984, 47.786636);
TextDrawAlignment(LRRightBox[4], 1);
TextDrawColor(LRRightBox[4], -1061109505);
TextDrawSetShadow(LRRightBox[4], 0);
TextDrawSetOutline(LRRightBox[4], 0);
TextDrawFont(LRRightBox[4], 4);
gGamersLowRiders[0] = INVALID_PLAYER_ID;
gGamersLowRiders[1] = INVALID_PLAYER_ID;
PHP:
LRShowVehicle[playerid] = CreatePlayerTextDraw(playerid, 252.800003, 169.493316, "LD_SPAC:white");
PlayerTextDrawLetterSize(playerid, LRShowVehicle[playerid], 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, LRShowVehicle[playerid], 116.000015, 131.413360);
PlayerTextDrawAlignment(playerid, LRShowVehicle[playerid], 1);
PlayerTextDrawColor(playerid, LRShowVehicle[playerid], -1);
PlayerTextDrawUseBox(playerid, LRShowVehicle[playerid], true);
PlayerTextDrawBoxColor(playerid, LRShowVehicle[playerid], 0xA9A9A9FF);
PlayerTextDrawBackgroundColor(playerid, LRShowVehicle[playerid], 0xA9A9A9FF);
PlayerTextDrawSetShadow(playerid, LRShowVehicle[playerid], 0);
PlayerTextDrawSetOutline(playerid, LRShowVehicle[playerid], 0);
PlayerTextDrawFont(playerid, LRShowVehicle[playerid], 5);
PlayerTextDrawSetPreviewRot(playerid, LRShowVehicle[playerid], -15.000000, 0.000000, 15.000000, 1.0);
LRArrows[playerid][0] = CreatePlayerTextDraw(playerid, 338.599731, 393.000061, "LD_BEAT:right");
LRArrows[playerid][1] = CreatePlayerTextDraw(playerid, 300.799896, 394.240081, "LD_BEAT:up");
LRArrows[playerid][2] = CreatePlayerTextDraw(playerid, 260.399871, 393.253387, "LD_BEAT:left");
for(new i; i <= 2; i++)
{
PlayerTextDrawLetterSize(playerid, LRArrows[playerid][i], 0.000000, 0.000000);
PlayerTextDrawTextSize(playerid, LRArrows[playerid][i], 16.000015, 20.160001);
PlayerTextDrawAlignment(playerid, LRArrows[playerid][i], 1);
PlayerTextDrawColor(playerid, LRArrows[playerid][i], -1);
PlayerTextDrawSetShadow(playerid, LRArrows[playerid][i], 0);
PlayerTextDrawSetOutline(playerid, LRArrows[playerid][i], 0);
PlayerTextDrawFont(playerid, LRArrows[playerid][i], 4);
}
PlayerVehicleID[playerid] = INVALID_VEHICLE_ID
PHP:
if(strcmp(cmdtext, "/startriders", true) == 0)
{
SelectTextDraw(playerid, 0xFFFFE0AA);
PlayerTextDrawSetPreviewModel(playerid, LRShowVehicle[playerid], gChangeLRVehicle[gNumberLRList[playerid]]);
for(new i; i <= 3; i++) TextDrawShowForPlayer(playerid, LRRegister[i]);
PlayerTextDrawShow(playerid,LRShowVehicle[playerid]);
}
PHP:
if(clickedid == LRRegister[1]) // left
{
if(!gNumberLRList[playerid]) gNumberLRList[playerid] = 7;
else gNumberLRList[playerid]--;
PlayerTextDrawSetPreviewModel(playerid, LRShowVehicle[playerid], gChangeLRVehicle[gNumberLRList[playerid]]);
PlayerTextDrawShow(playerid,LRShowVehicle[playerid]);
}
else if(clickedid == LRRegister[2]) // right
{
if(gNumberLRList[playerid] == 7) gNumberLRList[playerid] = 0;
else gNumberLRList[playerid]++;
PlayerTextDrawSetPreviewModel(playerid, LRShowVehicle[playerid], gChangeLRVehicle[gNumberLRList[playerid]]);
PlayerTextDrawShow(playerid,LRShowVehicle[playerid]);
}
else if(clickedid == LRRegister[3]) // play
{
CancelSelectTextDraw(playerid);
for(new i; i <= 1; i++)
{
if(gGamersLowRiders[i] != INVALID_PLAYER_ID) continue;
gGamersLowRiders[i] = playerid;
PlayerVehicleID[playerid] = CreateVehicle(gChangeLRVehicle[gNumberLRList[playerid]], gDriversPlace[i][0],gDriversPlace[i][1],gDriversPlace[i][2], gDriversPlace[i][3], random(10), 0, -1);
PutPlayerInVehicle(playerid, PlayerVehicleID[playerid], 0);
AddVehicleComponent(PlayerVehicleID[playerid], 1087);
for(new c; c <= 3; c++) TextDrawHideForPlayer(playerid,LRRegister[c]);
PlayerTextDrawHide(playerid,LRShowVehicle[playerid]);
for(new c; c <= 4; c++) TextDrawShowForPlayer(playerid, LRRightBox[c]);
new randomImage = random(sizeof(SelectedImage));
PlayerTextDrawSetString(playerid, LRArrows[playerid][0], SelectedImage[randomImage]);
PlayerTextDrawShow(playerid,LRArrows[playerid][0]);
PlayerImageID[playerid][0] = randomImage;
new mes[MAX_PLAYER_NAME+20];
f(mes, "%i. %s 0", i+1, PlayerName[playerid]), TextDrawSetString(LRRightBox[i+2],mes);
return 1;
}
SendClientMessage(playerid, 0xA9A9A9FF, "Места на сражение заняты.");
}
PHP:
if(gGamersLowRiders[0] != INVALID_PLAYER_ID && gGamersLowRiders[1] != INVALID_PLAYER_ID)
{
if(!StartServerRiders)
{
new mes[10];
if(!TimerSecond[0])
{
TimerSecond[0] = 15;
SendClientMessage(gGamersLowRiders[0], 0x00FF00FF, "Битва начнется через 15 секунд!");
SendClientMessage(gGamersLowRiders[1], 0x00FF00FF, "Битва начнется через 15 секунд!");
}
else
{
if(TimerSecond[0] == 1)
{
StartServerRiders = true, TimerSecond[0] = 0;
SendClientMessage(gGamersLowRiders[1], 0x00FF00FF, "Начинай!");
TimerSecond[1] = 80;
PlayerChangeImage(gGamersLowRiders[0], false);
PlayerChangeImage(gGamersLowRiders[1], false);
}
else TimerSecond[0] --;
}
f(mes, "~p~%i sec", TimerSecond[0]), GameTextForPlayer(gGamersLowRiders[0], mes, 500, 4);
GameTextForPlayer(gGamersLowRiders[1], mes, 500, 4);
}
else
{
if(TimerSecond[1] > 0) TimerSecond[1]--;
new mes[10];
f(mes, "%s", ConvertSeconds(TimerSecond[1])), TextDrawSetString(LRRightBox[1],mes);
if(!TimerSecond[1])
{
if(PlayerCountGoodKeys[gGamersLowRiders[0]] > PlayerCountGoodKeys[gGamersLowRiders[1]])
{
SendClientMessage(gGamersLowRiders[0], 0xFF00FFFF, "Поздравляем с победой!"), SendClientMessage(gGamersLowRiders[1], 0xFFFF00FF, "Ты проиграл!");
}
else if(PlayerCountGoodKeys[gGamersLowRiders[1]] > PlayerCountGoodKeys[gGamersLowRiders[0]])
{
SendClientMessage(gGamersLowRiders[1], 0xFF00FFFF, "Поздравляем с победой!"), SendClientMessage(gGamersLowRiders[0], 0xFFFF00FF, "Ты проиграл!");
}
else if(PlayerCountGoodKeys[gGamersLowRiders[1]] == PlayerCountGoodKeys[gGamersLowRiders[0]])
{
SendClientMessage(gGamersLowRiders[1], 0xFF00FFFF, "Ничья!"), SendClientMessage(gGamersLowRiders[0], 0xFFFF00FF, "Ничья!");
}
StartServerRiders = false;
TextDrawHideForPlayer(gGamersLowRiders[0], LRRightBox[0]);
TextDrawHideForPlayer(gGamersLowRiders[0], LRRightBox[1]);
TextDrawHideForPlayer(gGamersLowRiders[0], LRRightBox[2]);
TextDrawHideForPlayer(gGamersLowRiders[0], LRRightBox[3]);
TextDrawHideForPlayer(gGamersLowRiders[0], LRRightBox[4]);
PlayerTextDrawHide(gGamersLowRiders[0], LRArrows[gGamersLowRiders[0]][0]);
PlayerTextDrawHide(gGamersLowRiders[0], LRArrows[gGamersLowRiders[0]][1]);
PlayerTextDrawHide(gGamersLowRiders[0], LRArrows[gGamersLowRiders[0]][2]);
TextDrawHideForPlayer(gGamersLowRiders[1], LRRightBox[0]);
TextDrawHideForPlayer(gGamersLowRiders[1], LRRightBox[1]);
TextDrawHideForPlayer(gGamersLowRiders[1], LRRightBox[2]);
TextDrawHideForPlayer(gGamersLowRiders[1], LRRightBox[3]);
TextDrawHideForPlayer(gGamersLowRiders[1], LRRightBox[4]);
PlayerTextDrawHide(gGamersLowRiders[1], LRArrows[gGamersLowRiders[1]][0]);
PlayerTextDrawHide(gGamersLowRiders[1], LRArrows[gGamersLowRiders[1]][1]);
PlayerTextDrawHide(gGamersLowRiders[1], LRArrows[gGamersLowRiders[1]][2]);
DestroyVehicle(PlayerVehicleID[gGamersLowRiders[0]]), DestroyVehicle(PlayerVehicleID[gGamersLowRiders[1]]);
SpawnPlayer(gGamersLowRiders[0]), SpawnPlayer(gGamersLowRiders[1]);
gGamersLowRiders[0] = INVALID_PLAYER_ID, gGamersLowRiders[1] = INVALID_PLAYER_ID;
PlayerVehicleID[gGamersLowRiders[0]] = INVALID_VEHICLE_ID, PlayerVehicleID[gGamersLowRiders[1]] = INVALID_VEHICLE_ID;
}
}
}
PHP:
stock ConvertSeconds(times)
{
new string[128];
if(times < 60) f(string, "0:%i", times);
else if(times == 60) string = "1:00";
else if(times > 60 && times < 3600)
{
new Float: minutes;
new seconds;
minutes = times / 60;
seconds = times % 60;
f(string, "%.0f:%i", minutes, seconds);
}
return string;
}
stock PlayerChangeImage(playerid, bool:type)
{
if(type)
{
PlayerImageID[playerid][2] = PlayerImageID[playerid][1];
PlayerTextDrawSetString(playerid, LRArrows[playerid][2], SelectedImage[PlayerImageID[playerid][2]]);
PlayerTextDrawShow(playerid,LRArrows[playerid][2]);
}
PlayerImageID[playerid][1] = PlayerImageID[playerid][0];
PlayerTextDrawSetString(playerid, LRArrows[playerid][1], SelectedImage[PlayerImageID[playerid][1]]);
PlayerTextDrawShow(playerid,LRArrows[playerid][1]);
new randomImage = random(sizeof(SelectedImage));
PlayerTextDrawSetString(playerid, LRArrows[playerid][0], SelectedImage[randomImage]);
PlayerTextDrawShow(playerid,LRArrows[playerid][0]);
PlayerImageID[playerid][0] = randomImage;
return 1;
}
Чтобы начать соревнования лоурайдеров введите
PHP:
/startriders
Так же прикрепляю FS:
Последнее редактирование модератором: