Maks_Sempai
Компетентный
Привет всем пользователям Pawno-Info. Я тут шарился на просторах Rezone, и наткнулся на очень простые баги. Не знаю был ли урок по их исправлению но я не нашёл.
-----------------------------------------------------------------------
P.S - Урок создан исключительно для новичков.
Кому-то что-то не нравиться сразу говорю идите лесом.
-----------------------------------------------------------------------
1 - баг.-----------------------------------------------------------------------
P.S - Урок создан исключительно для новичков.
Кому-то что-то не нравиться сразу говорю идите лесом.
-----------------------------------------------------------------------
Баг с /atune.
Суть бага: Могли пользоваться все. Просто замените свою команду на эту
Код:
if(strcmp(cmd, "/atune", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] >= 9999) //Меняйте уровень админки на свой!
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
SPD(playerid, 8004, 2, "Тюнинг меню", "Диски \nГидравлика \nАрхангел Тюнинг \nЦвет \nВинилы ", "Выбрать", "Назад");
}
else return SendClientMessage(playerid, COLOR_RED, "{ff0000}x{c0c0c0} Вы не водитель машины!");
}
-----------------------------------------------------------------------
Cуть бага: Могли пользоваться все. Просто замените свою команду на эту
Код:
else if(strcmp(cmd, "/gmx", true) == 0)
{
if (PlayerInfo[playerid][pAdmin] >= 9999) //Меняйте уровень админки на свой!
{
SendClientMessageToAll(COLOR_YELLOW2,">>> {ECF2B6}Внимание! Происходит рестарт сервера, это займёт менее 15 секунд <<<");
SendClientMessageToAll(COLOR_YELLOW2,">>> {ECF2B6}Администрация {E1F52F} "NameServer" {ECF2B6}приносит извинения, за предоставленные неудобства <<<");
format(string, sizeof(string), "~r~RESTART");
foreach (new i : Player)
{
new txtid;
GameTextForPlayer(i, string, 5000, txtid);
}
SaveMaterials();
GameModeExitFunc();
format(string, sizeof(string), "~r~RESTART");
}
return true;
}
-----------------------------------------------------------------------
Обновлено: Истиную благодарность можете дать DmX и Steve
-----------------------------------------------------------------------
Суть бага: Если игрок в наручниках то может двигаться/драться. Просто замените свою команду на мою.
Код:
else if(strcmp(cmd, "/cuff", true) == 0)
{
if(IsACop(playerid)|| IsAArm(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{2fff00}•{c0c0c0} /cuff [ID/NickName]");
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(IsACop(giveplayerid)) return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Вы не можете надеть наручники на законника!");
if(PlayerCuffed[giveplayerid] == false)
{
if(ProxDetectorS(8.0, playerid, giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "На Вас надел наручники %s.", sendername);
SendClientMessage(giveplayerid, 0x6495EDFF, string);
format(string, sizeof(string), "Вы надели наручники на %s.", giveplayer);
SendClientMessage(playerid, 0x6495EDFF, string);
format(string, sizeof(string), "%s надел(а) на %s наручники.", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
PlayerCuffed[giveplayerid] = true;
SetPlayerSpecialAction(giveplayerid, SPECIAL_ACTION_CUFFED);
TogglePlayerControllable(giveplayerid, 0); //Заморозка на наручники
}
else return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Игрок не рядом с вами!");
}
else return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Игрок уже в наручниках!");
}
else return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Вы указал свой id");
}
else return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Этот игрок в оффлайн!");
}
else return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Вы не Полицейский/ФБР/Армия !");
}
-----------------------------------------------------------------------
Суть бага: Если снять с игрока наручники то он будет стоять каббу-то в наручниках. Для начала надо изменить /cuff.
Код:
else if(strcmp(cmd, "/uncuff", true) == 0)
{
if(IsACop(playerid)|| IsAArm(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{2fff00}•{c0c0c0} /cuff [ID/NickName]");
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if(IsACop(giveplayerid)) return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Вы не можете надеть наручники на законника!");
if(PlayerCuffed[giveplayerid] ==true)
{
if(ProxDetectorS(8.0, playerid, giveplayerid))
{
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "С Вас снял наручники %s.", sendername);
SendClientMessage(giveplayerid, 0x6495EDFF, string);
format(string, sizeof(string), "Вы сняли наручники с %s.", giveplayer);
SendClientMessage(playerid, 0x6495EDFF, string);
PlayerCuffed[giveplayerid] = false;
RemovePlayerAttachedObject(playerid, 6);
SetPlayerSpecialAction(giveplayerid, SPECIAL_ACTION_NONE);
TogglePlayerControllable(giveplayerid, 1); //Заморозка на наручники
}
else return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Игрок не рядом с вами!");
}
else return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Игрок не в наручниках!");
}
else return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Вы указал свой id");
}
else return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Этот игрок в оффлайн!");
}
else return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Вы не Полицейский/ФБР/Армия !");
}
-----------------------------------------------------------------------
Суть бага: Если ударить тазером то игрок будет стоять всё время при это оглушится сам сотрудник LSPD.
Код:
else if(strcmp(cmd, "/tazer", true) ==0) {
if(IsACop(playerid) || PlayerInfo[playerid][pMember] == 7 && PlayerInfo[playerid][pRank] == 3 )
{
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Невозможно использовать в машине!");
if(Tazer[playerid] == 1) return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Перезарядка тайзера ещё не прошла!");
new suspect = GetClosestPlayer(playerid);
if(IsPlayerConnected(suspect))
{
if(PlayerCuffed[suspect] == true) return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Игрок уже в наручниках!");
if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
{
if(IsACop(suspect)) return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Вы не можете ударить тазером законника");
if(IsPlayerInAnyVehicle(suspect)) return SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Человек в машине!");
GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "Вас оглушили электрошокером %s на 15 секунд.", sendername);
SendClientMessage(suspect, 0x6495EDFF, string);
format(string, sizeof(string), "Вы оглушили электрошокером %s на 15 секунд.", giveplayer);
SendClientMessage(playerid, 0x6495EDFF, string);
format(string, sizeof(string), "%s оглушил(а) %s ", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
TogglePlayerControllable(suspect, 0);
SetPlayerSpecialAction(suspect,SPECIAL_ACTION_HANDSUP);
Tazer[suspect] = 1;
TazerTime[suspect] = 10;
}
else
{
SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Рядом с тобой никого нет!");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "{ff0000}x{c0c0c0} Вам не доступна данная команда!");
}
return 1;
}
-----------------------------------------------------------------------
Кто нашёл ещё какие-нибудь баги прошу писать их сюда - ИСПРАВЛЮ.
У меня не было префикса "Урок", поставьте если не сложно.
+ не прошу. Т.к это в помощь новичкам.
Последнее редактирование модератором:
