Описание
Выкладываю саморучно-написанный код простенького кодового замка.
В коде реализован только сам алгоритм работы замка, по этой причине
оформление замка - очень простенькое.
Принцип работы
Игрок замораживается, появляются текстдравы.
Комбинация на замке вводиться клавишами:
После нажатия клавиши (Shift) - игрок размораживается,Ctrl (KEY_FIRE) <
Alt (KEY_WALK) >
Y (KEY_YES) Подняться выше
N (KEY_NO) Опуститься ниже
Shift (KEY_JUMP) Применить
и в зависимости от того, ввёл ли он верную комбинацию -
появляется надпись Открыто/Закрыто
Важно
Код не готов для вставки в мод в том виде, в каком он здесь представлен.
Я постарался лишь описать, и показать вам алгоритм, а вы уже можете на его основе
делать необходимые вам решения.
Код
PHP код:
new bool:InLock[MAX_PLAYERS];
new level;
new key[3];
new Text:Background;
new Text:ArrowTopRight;
new Text:ArrowTopLeft;
new Text:keyTD[3];
new Text:Letters;
new Text:ArrowMiddleRight;
new Text:ArrowMiddleLeft;
new Text:ArrowBottomRight;
new Text:ArrowBottomLeft;
forward ThrowLock(playerid);
PHP код:
ThrowLock(playerid)
{
InLock[playerid] = true; // Игрок взаимодействует с замком
level = 1; // "Обнуляем переменные"
key[0] = 0; // "Обнуляем переменные"
key[1] = 0; // "Обнуляем переменные"
key[2] = 0; // "Обнуляем переменные"
TogglePlayerControllable(playerid,0); // Замораживаем игрока
Background = TextDrawCreate(360.000000, 180.000000, " ");
TextDrawBackgroundColor(Background, 255);
TextDrawFont(Background, 1);
TextDrawLetterSize(Background, 0.500000, 1.000000);
TextDrawColor(Background, -1);
TextDrawSetOutline(Background, 0);
TextDrawSetProportional(Background, 1);
TextDrawSetShadow(Background, 1);
TextDrawUseBox(Background, 1);
TextDrawBoxColor(Background, 255);
TextDrawTextSize(Background, 273.000000, 7.000000);
ArrowTopRight = TextDrawCreate(357.000000, 186.000000, ">");
TextDrawBackgroundColor(ArrowTopRight, 255);
TextDrawFont(ArrowTopRight, 1);
TextDrawLetterSize(ArrowTopRight, 0.650000, 1.800000);
TextDrawColor(ArrowTopRight, -1);
TextDrawSetOutline(ArrowTopRight, 1);
TextDrawSetProportional(ArrowTopRight, 1);
ArrowTopLeft = TextDrawCreate(260.000000, 186.000000, "<");
TextDrawBackgroundColor(ArrowTopLeft, 255);
TextDrawFont(ArrowTopLeft, 1);
TextDrawLetterSize(ArrowTopLeft, 0.650000, 1.800000);
TextDrawColor(ArrowTopLeft, -1);
TextDrawSetOutline(ArrowTopLeft, 1);
TextDrawSetProportional(ArrowTopLeft, 1);
ArrowMiddleRight = TextDrawCreate(357.000000, 216.000000, ">");
TextDrawBackgroundColor(ArrowMiddleRight, 255);
TextDrawFont(ArrowMiddleRight, 1);
TextDrawLetterSize(ArrowMiddleRight, 0.650000, 1.800000);
TextDrawColor(ArrowMiddleRight, -1);
TextDrawSetOutline(ArrowMiddleRight, 1);
TextDrawSetProportional(ArrowMiddleRight, 1);
ArrowMiddleLeft = TextDrawCreate(260.000000, 216.000000, "<");
TextDrawBackgroundColor(ArrowMiddleLeft, 255);
TextDrawFont(ArrowMiddleLeft, 1);
TextDrawLetterSize(ArrowMiddleLeft, 0.650000, 1.800000);
TextDrawColor(ArrowMiddleLeft, -1);
TextDrawSetOutline(ArrowMiddleLeft, 1);
TextDrawSetProportional(ArrowMiddleLeft, 1);
ArrowBottomRight = TextDrawCreate(357.000000, 246.000000, ">");
TextDrawBackgroundColor(ArrowBottomRight, 255);
TextDrawFont(ArrowBottomRight, 1);
TextDrawLetterSize(ArrowBottomRight, 0.650000, 1.800000);
TextDrawColor(ArrowBottomRight, -1);
TextDrawSetOutline(ArrowBottomRight, 1);
TextDrawSetProportional(ArrowBottomRight, 1);
ArrowBottomLeft = TextDrawCreate(260.000000, 246.000000, "<");
TextDrawBackgroundColor(ArrowBottomLeft, 255);
TextDrawFont(ArrowBottomLeft, 1);
TextDrawLetterSize(ArrowBottomLeft, 0.650000, 1.800000);
TextDrawColor(ArrowBottomLeft, -1);
TextDrawSetOutline(ArrowBottomLeft, 1);
TextDrawSetProportional(ArrowBottomLeft, 1);
keyTD[0] = TextDrawCreate(309.000000, 179.000000, "0");
TextDrawBackgroundColor(keyTD[0], 255);
TextDrawFont(keyTD[0], 3);
TextDrawLetterSize(keyTD[0], 0.900001, 3.000000);
TextDrawColor(keyTD[0], -1);
TextDrawSetOutline(keyTD[0], 0);
TextDrawSetProportional(keyTD[0], 1);
TextDrawSetShadow(keyTD[0], 1);
keyTD[1] = TextDrawCreate(309.000000, 209.000000, "0");
TextDrawBackgroundColor(keyTD[1], 255);
TextDrawFont(keyTD[1], 3);
TextDrawLetterSize(keyTD[1], 0.900001, 3.000000);
TextDrawColor(keyTD[1], -1);
TextDrawSetOutline(keyTD[1], 0);
TextDrawSetProportional(keyTD[1], 1);
TextDrawSetShadow(keyTD[1], 1);
keyTD[2] = TextDrawCreate(309.000000, 239.000000, "0");
TextDrawBackgroundColor(keyTD[2], 255);
TextDrawFont(keyTD[2], 3);
TextDrawLetterSize(keyTD[2], 0.900001, 3.000000);
TextDrawColor(keyTD[2], -1);
TextDrawSetOutline(keyTD[2], 0);
TextDrawSetProportional(keyTD[2], 1);
TextDrawSetShadow(keyTD[2], 1);
Letters = TextDrawCreate(305.000000, 163.000000, "LOCK");
TextDrawBackgroundColor(Letters, 255);
TextDrawFont(Letters, 3);
TextDrawLetterSize(Letters, 0.700000, 2.000000);
TextDrawColor(Letters, -16776961);
TextDrawSetOutline(Letters, 0);
TextDrawSetProportional(Letters, 1);
TextDrawSetShadow(Letters, 1);
TextDrawShowForPlayer(playerid, Background);
TextDrawShowForPlayer(playerid, ArrowTopRight);
TextDrawShowForPlayer(playerid, ArrowTopLeft);
TextDrawShowForPlayer(playerid, keyTD[0]);
TextDrawShowForPlayer(playerid, keyTD[1]);
TextDrawShowForPlayer(playerid, keyTD[2]);
TextDrawShowForPlayer(playerid, Letters);
}
PHP код:
if (newkeys & KEY_FIRE) // Ctrl (Переключение цифры)
{
if (InLock[playerid] == true) // Игрок взаимодействует с замком ?
{
if(key[level] == 9) key[level] = 0; // Если цифра на уровне = 9, то после нее будет следовать "0"
else key[level]++; // Прибавляем единичку
new str[4]; // Создаем строку
valstr(str,key[level]); // Преобразуем цифру в строку
TextDrawSetString(keyTD[level],str); // И выводим новою цифру
TextDrawHideForPlayer(playerid, keyTD[level]); // Обновняем
TextDrawShowForPlayer(playerid, keyTD[level]);
}
}
if (newkeys & KEY_WALK)
{
if (InLock[playerid] == true)
{
if(key[level] == 0) key[level] = 9;
else key[level] = key[level] -1;
new str[4];
valstr(str,key[level]);
TextDrawSetString(keyTD[level],str);
TextDrawHideForPlayer(playerid, keyTD[level]);
TextDrawShowForPlayer(playerid, keyTD[level]);
}
}
if (newkeys & KEY_NO) // N (Опуститься на уровень ниже)
{
if (InLock[playerid] == true) // Игрок взаимодействует с замком ?
{
switch(level)// С каким уровнем замка взаимодействует игрок ?
{
case 1: // Если первый - то показываем игроку стрелки второго уровня, и записываем, что он на втором уровне замка
{
TextDrawHideForPlayer(playerid, ArrowTopRight);
TextDrawHideForPlayer(playerid, ArrowTopLeft);
TextDrawShowForPlayer(playerid, ArrowMiddleRight);
TextDrawShowForPlayer(playerid, ArrowMiddleLeft);
level = 2;
}
case 2: // Аналогично
{
TextDrawHideForPlayer(playerid, ArrowMiddleRight);
TextDrawHideForPlayer(playerid, ArrowMiddleLeft);
TextDrawShowForPlayer(playerid, ArrowBottomRight);
TextDrawShowForPlayer(playerid, ArrowBottomLeft);
level = 3;
}// Если игрок на третьем уровне - игнорируем. Дальше спуститься не возможно.
}
}
}
if (newkeys & KEY_YES)
{
if (InLock[playerid] == true)
{
switch(level)
{
case 2:
{
TextDrawHideForPlayer(playerid, ArrowMiddleRight);
TextDrawHideForPlayer(playerid, ArrowMiddleLeft);
TextDrawShowForPlayer(playerid, ArrowTopRight);
TextDrawShowForPlayer(playerid, ArrowTopLeft);
level = 1;
}
case 3:
{
TextDrawHideForPlayer(playerid, ArrowBottomRight);
TextDrawHideForPlayer(playerid, ArrowBottomLeft);
TextDrawShowForPlayer(playerid, ArrowMiddleRight);
TextDrawShowForPlayer(playerid, ArrowMiddleLeft);
level = 2;
}
}
}
}
if (newkeys & KEY_JUMP) // Shift (Проверка кода)
{
if (InLock[playerid] == true) // Игрок взаимодействует с замком ?
{
if((key[0] == 0) && (key[1] == 6) && (key[2] == 9)) // Комбинация "069" ? (По умолчанию)
{
TextDrawHideForPlayer(playerid, Background);
TextDrawHideForPlayer(playerid, ArrowTopRight);
TextDrawHideForPlayer(playerid, ArrowTopLeft);
TextDrawHideForPlayer(playerid, ArrowMiddleRight);
TextDrawHideForPlayer(playerid, ArrowMiddleLeft);
TextDrawHideForPlayer(playerid, ArrowBottomRight);
TextDrawHideForPlayer(playerid, ArrowBottomLeft);
TextDrawHideForPlayer(playerid, keyTD[0]);
TextDrawHideForPlayer(playerid, keyTD[1]);
TextDrawHideForPlayer(playerid, keyTD[2]);
TextDrawHideForPlayer(playerid, Letters);
TogglePlayerControllable(playerid,1);
GameTextForPlayer(playerid, "~g~Unlocked", 1500, 5);
InLock[playerid] = false;
// Убираем все текстдравы, размораживаем игрока, записываем что он больше не
// взаимодействует с замком, и в качестве примера - выводим ему надпись, что замок открыт.
}
else
{
TextDrawHideForPlayer(playerid, Background);
TextDrawHideForPlayer(playerid, ArrowTopRight);
TextDrawHideForPlayer(playerid, ArrowTopLeft);
TextDrawHideForPlayer(playerid, ArrowMiddleRight);
TextDrawHideForPlayer(playerid, ArrowMiddleLeft);
TextDrawHideForPlayer(playerid, ArrowBottomRight);
TextDrawHideForPlayer(playerid, ArrowBottomLeft);
TextDrawHideForPlayer(playerid, keyTD[0]);
TextDrawHideForPlayer(playerid, keyTD[1]);
TextDrawHideForPlayer(playerid, keyTD[2]);
TextDrawHideForPlayer(playerid, Letters);
TogglePlayerControllable(playerid,1);
GameTextForPlayer(playerid, "~r~Locked", 1500, 5);
InLock[playerid] = false;
// Аналогично, только пишем, что замок по прежнему закрыт.
}
}
}
PHP код:
InLock[playerid] = false;
PHP код:
new bool:InLock[MAX_PLAYERS];
new level;
new TopNumber;
new MiddleNumber;
new BottomNumber;
new Text:Background;
new Text:ArrowTopRight;
new Text:ArrowTopLeft;
new Text:Top;
new Text:Middle;
new Text:Bottom;
new Text:Letters;
new Text:ArrowMiddleRight;
new Text:ArrowMiddleLeft;
new Text:ArrowBottomRight;
new Text:ArrowBottomLeft;
forward ThrowLock(playerid);
PHP код:
ThrowLock(playerid)
{
InLock[playerid] = true; // Игрок взаимодействует с замком
level = 1; // "Обнуляем переменные"
TopNumber = 0; // "Обнуляем переменные"
MiddleNumber = 0; // "Обнуляем переменные"
BottomNumber = 0; // "Обнуляем переменные"
TogglePlayerControllable(playerid,0); // Замораживаем игрока
Background = TextDrawCreate(360.000000, 180.000000, " ");
TextDrawBackgroundColor(Background, 255);
TextDrawFont(Background, 1);
TextDrawLetterSize(Background, 0.500000, 1.000000);
TextDrawColor(Background, -1);
TextDrawSetOutline(Background, 0);
TextDrawSetProportional(Background, 1);
TextDrawSetShadow(Background, 1);
TextDrawUseBox(Background, 1);
TextDrawBoxColor(Background, 255);
TextDrawTextSize(Background, 273.000000, 7.000000);
ArrowTopRight = TextDrawCreate(357.000000, 186.000000, ">");
TextDrawBackgroundColor(ArrowTopRight, 255);
TextDrawFont(ArrowTopRight, 1);
TextDrawLetterSize(ArrowTopRight, 0.650000, 1.800000);
TextDrawColor(ArrowTopRight, -1);
TextDrawSetOutline(ArrowTopRight, 1);
TextDrawSetProportional(ArrowTopRight, 1);
ArrowTopLeft = TextDrawCreate(260.000000, 186.000000, "<");
TextDrawBackgroundColor(ArrowTopLeft, 255);
TextDrawFont(ArrowTopLeft, 1);
TextDrawLetterSize(ArrowTopLeft, 0.650000, 1.800000);
TextDrawColor(ArrowTopLeft, -1);
TextDrawSetOutline(ArrowTopLeft, 1);
TextDrawSetProportional(ArrowTopLeft, 1);
ArrowMiddleRight = TextDrawCreate(357.000000, 216.000000, ">");
TextDrawBackgroundColor(ArrowMiddleRight, 255);
TextDrawFont(ArrowMiddleRight, 1);
TextDrawLetterSize(ArrowMiddleRight, 0.650000, 1.800000);
TextDrawColor(ArrowMiddleRight, -1);
TextDrawSetOutline(ArrowMiddleRight, 1);
TextDrawSetProportional(ArrowMiddleRight, 1);
ArrowMiddleLeft = TextDrawCreate(260.000000, 216.000000, "<");
TextDrawBackgroundColor(ArrowMiddleLeft, 255);
TextDrawFont(ArrowMiddleLeft, 1);
TextDrawLetterSize(ArrowMiddleLeft, 0.650000, 1.800000);
TextDrawColor(ArrowMiddleLeft, -1);
TextDrawSetOutline(ArrowMiddleLeft, 1);
TextDrawSetProportional(ArrowMiddleLeft, 1);
ArrowBottomRight = TextDrawCreate(357.000000, 246.000000, ">");
TextDrawBackgroundColor(ArrowBottomRight, 255);
TextDrawFont(ArrowBottomRight, 1);
TextDrawLetterSize(ArrowBottomRight, 0.650000, 1.800000);
TextDrawColor(ArrowBottomRight, -1);
TextDrawSetOutline(ArrowBottomRight, 1);
TextDrawSetProportional(ArrowBottomRight, 1);
ArrowBottomLeft = TextDrawCreate(260.000000, 246.000000, "<");
TextDrawBackgroundColor(ArrowBottomLeft, 255);
TextDrawFont(ArrowBottomLeft, 1);
TextDrawLetterSize(ArrowBottomLeft, 0.650000, 1.800000);
TextDrawColor(ArrowBottomLeft, -1);
TextDrawSetOutline(ArrowBottomLeft, 1);
TextDrawSetProportional(ArrowBottomLeft, 1);
Top = TextDrawCreate(309.000000, 179.000000, "0");
TextDrawBackgroundColor(Top, 255);
TextDrawFont(Top, 3);
TextDrawLetterSize(Top, 0.900001, 3.000000);
TextDrawColor(Top, -1);
TextDrawSetOutline(Top, 0);
TextDrawSetProportional(Top, 1);
TextDrawSetShadow(Top, 1);
Middle = TextDrawCreate(309.000000, 209.000000, "0");
TextDrawBackgroundColor(Middle, 255);
TextDrawFont(Middle, 3);
TextDrawLetterSize(Middle, 0.900001, 3.000000);
TextDrawColor(Middle, -1);
TextDrawSetOutline(Middle, 0);
TextDrawSetProportional(Middle, 1);
TextDrawSetShadow(Middle, 1);
Bottom = TextDrawCreate(309.000000, 239.000000, "0");
TextDrawBackgroundColor(Bottom, 255);
TextDrawFont(Bottom, 3);
TextDrawLetterSize(Bottom, 0.900001, 3.000000);
TextDrawColor(Bottom, -1);
TextDrawSetOutline(Bottom, 0);
TextDrawSetProportional(Bottom, 1);
TextDrawSetShadow(Bottom, 1);
Letters = TextDrawCreate(305.000000, 163.000000, "LOCK");
TextDrawBackgroundColor(Letters, 255);
TextDrawFont(Letters, 3);
TextDrawLetterSize(Letters, 0.700000, 2.000000);
TextDrawColor(Letters, -16776961);
TextDrawSetOutline(Letters, 0);
TextDrawSetProportional(Letters, 1);
TextDrawSetShadow(Letters, 1);
TextDrawShowForPlayer(playerid, Background);
TextDrawShowForPlayer(playerid, ArrowTopRight);
TextDrawShowForPlayer(playerid, ArrowTopLeft);
TextDrawShowForPlayer(playerid, Top);
TextDrawShowForPlayer(playerid, Middle);
TextDrawShowForPlayer(playerid, Bottom);
TextDrawShowForPlayer(playerid, Letters);
}
PHP код:
if (newkeys & KEY_FIRE) // Ctrl (Переключение цифры)
{
if (InLock[playerid] == true) // Игрок взаимодействует с замком ?
{
switch(level) // С каким уровнем замка взаимодействует игрок ?
{
case 1:
{
if(TopNumber == 9) TopNumber = 0; // Если цифра на уровне = 9, то после нее будет следовать "0"
else TopNumber++; // Прибавляем единичку
new str[4]; // Создаем строку
valstr(str,TopNumber); // Преобразуем цифру в строку
TextDrawSetString(Top,str); // И выводим новою цифру
TextDrawHideForPlayer(playerid, Top); // Обновняем
TextDrawShowForPlayer(playerid, Top);
}
case 2:
{
if(MiddleNumber == 9) MiddleNumber = 0;
else MiddleNumber++;
new str[4];
valstr(str,MiddleNumber);
TextDrawSetString(Middle,str);
TextDrawHideForPlayer(playerid, Middle);
TextDrawShowForPlayer(playerid, Middle);
}
case 3:
{
if(BottomNumber == 9) BottomNumber = 0;
else BottomNumber++;
new str[4];
valstr(str,BottomNumber);
TextDrawSetString(Bottom,str);
TextDrawHideForPlayer(playerid, Bottom);
TextDrawShowForPlayer(playerid, Bottom);
}
}
}
}
if (newkeys & KEY_WALK)
{
if (InLock[playerid] == true)
{
switch(level)
{
case 1:
{
if(TopNumber == 0) TopNumber = 9;
else TopNumber = TopNumber -1;
new str[4];
valstr(str,TopNumber);
TextDrawSetString(Top,str);
TextDrawHideForPlayer(playerid, Top);
TextDrawShowForPlayer(playerid, Top);
}
case 2:
{
if(MiddleNumber == 0) MiddleNumber = 9;
else MiddleNumber = MiddleNumber -1;
new str[4];
valstr(str,MiddleNumber);
TextDrawSetString(Middle,str);
TextDrawHideForPlayer(playerid, Middle);
TextDrawShowForPlayer(playerid, Middle);
}
case 3:
{
if(BottomNumber == 0) BottomNumber = 9;
else BottomNumber = BottomNumber -1;
new str[4];
valstr(str,BottomNumber);
TextDrawSetString(Bottom,str);
TextDrawHideForPlayer(playerid, Bottom);
TextDrawShowForPlayer(playerid, Bottom);
}
}
}
}
if (newkeys & KEY_NO) // N (Опуститься на уровень ниже)
{
if (InLock[playerid] == true) // Игрок взаимодействует с замком ?
{
switch(level)// С каким уровнем замка взаимодействует игрок ?
{
case 1: // Если первый - то показываем игроку стрелки второго уровня, и записываем, что он на втором уровне замка
{
TextDrawHideForPlayer(playerid, ArrowTopRight);
TextDrawHideForPlayer(playerid, ArrowTopLeft);
TextDrawShowForPlayer(playerid, ArrowMiddleRight);
TextDrawShowForPlayer(playerid, ArrowMiddleLeft);
level = 2;
}
case 2: // Аналогично
{
TextDrawHideForPlayer(playerid, ArrowMiddleRight);
TextDrawHideForPlayer(playerid, ArrowMiddleLeft);
TextDrawShowForPlayer(playerid, ArrowBottomRight);
TextDrawShowForPlayer(playerid, ArrowBottomLeft);
level = 3;
}// Если игрок на третьем уровне - игнорируем. Дальше спуститься не возможно.
}
}
}
if (newkeys & KEY_YES)
{
if (InLock[playerid] == true)
{
switch(level)
{
case 2:
{
TextDrawHideForPlayer(playerid, ArrowMiddleRight);
TextDrawHideForPlayer(playerid, ArrowMiddleLeft);
TextDrawShowForPlayer(playerid, ArrowTopRight);
TextDrawShowForPlayer(playerid, ArrowTopLeft);
level = 1;
}
case 3:
{
TextDrawHideForPlayer(playerid, ArrowBottomRight);
TextDrawHideForPlayer(playerid, ArrowBottomLeft);
TextDrawShowForPlayer(playerid, ArrowMiddleRight);
TextDrawShowForPlayer(playerid, ArrowMiddleLeft);
level = 2;
}
}
}
}
if (newkeys & KEY_JUMP) // Shift (Проверка кода)
{
if (InLock[playerid] == true) // Игрок взаимодействует с замком ?
{
if((TopNumber == 0) && (MiddleNumber == 6) && (BottomNumber == 9)) // Комбинация "069" ? (По умолчанию)
{
TextDrawHideForPlayer(playerid, Background);
TextDrawHideForPlayer(playerid, ArrowTopRight);
TextDrawHideForPlayer(playerid, ArrowTopLeft);
TextDrawHideForPlayer(playerid, ArrowMiddleRight);
TextDrawHideForPlayer(playerid, ArrowMiddleLeft);
TextDrawHideForPlayer(playerid, ArrowBottomRight);
TextDrawHideForPlayer(playerid, ArrowBottomLeft);
TextDrawHideForPlayer(playerid, Top);
TextDrawHideForPlayer(playerid, Middle);
TextDrawHideForPlayer(playerid, Bottom);
TextDrawHideForPlayer(playerid, Letters);
TogglePlayerControllable(playerid,1);
GameTextForPlayer(playerid, "~g~Unlocked", 1500, 5);
InLock[playerid] = false;
// Убираем все текстдравы, размораживаем игрока, записываем что он больше не
// взаимодействует с замком, и в качестве примера - выводим ему надпись, что замок открыт.
}
else
{
TextDrawHideForPlayer(playerid, Background);
TextDrawHideForPlayer(playerid, ArrowTopRight);
TextDrawHideForPlayer(playerid, ArrowTopLeft);
TextDrawHideForPlayer(playerid, ArrowMiddleRight);
TextDrawHideForPlayer(playerid, ArrowMiddleLeft);
TextDrawHideForPlayer(playerid, ArrowBottomRight);
TextDrawHideForPlayer(playerid, ArrowBottomLeft);
TextDrawHideForPlayer(playerid, Top);
TextDrawHideForPlayer(playerid, Middle);
TextDrawHideForPlayer(playerid, Bottom);
TextDrawHideForPlayer(playerid, Letters);
TogglePlayerControllable(playerid,1);
GameTextForPlayer(playerid, "~r~Locked", 1500, 5);
InLock[playerid] = false;
// Аналогично, только пишем, что замок по прежнему закрыт.
}
}
}
return 1;
}
PHP код:
InLock[playerid] = false;
Тестируем
Для вызова функции отображения замка игроку используем:
Пример:PHP код:
ThrowLock(playerid);
Опять-же напомню, что это лишь пример алгоритма. Замок просто появляется, и выводит различные надписи, в зависимости от правильности введёного игроком комбинация (по умолчанию верная комбинация: 069).PHP код:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
if(newstate == PLAYER_STATE_DRIVER)
{
ThrowLock(playerid);
}
return 1;
}
Автор: LMapper