Nike_
Умник
Делал для rls
Объясню на примерах
Допустим кто то из банды хочет взять маты со склада
А чтобы их взять лидер должен разрешить брать маты со склада
Он вводит например команду /matsdost и всем разрешается брать маты
Потом он вводит /matsundost и доступ к складу закрывается.
Или во втором варианте будет использоваться таймер
Лидер вводит /matsdost и склад открыт ну например на 1 минуту
Так же эту команду можно сделать и для замов
Для примера я делаю для банд!
и так начнём
Ко всем new
В команду /getmaterials добавим проверку на доступ к складу
Ниже команды /getmaterials добавим команды /matsdost /matsundost
Так же можно сделать так чтобы банде писалось что склад закрыт
Когда они будут брать маты
Для этого добавьте к команду /getmaterials всем бандам индивидуально
Вот это
А проверку if(matsdost == 1) уберите
Всё теперь чтобы банда могла взять материалы со склада лидер должен им разрешить!
Но есть и второй вариант
Это использование таймера
Лидер даёт доступ брать маты на минуту или сколько душе угодно.
Мы просто добавим ко всем new
Изменим команду /matsdost
Команду /getmaterials
И команду /matsundost
Затем в конец мода
В public OnGameModeInit()
Всё теперь благодаря таймеру маты можно брать со слада только 1 минуту
после того как лидер или зам дали доступ командой /matsdost
Примечание: Систему таймера я взял не помню уже из какой темы тут на pawno-info
Автор: команд и самого урока я
Так же вы можете ставить такие проверки и на другие команды
Удачи вам в творчестве.
:dt::dt::dt::dt::dt::dt::dt::dt::dt::dt:
Объясню на примерах
Допустим кто то из банды хочет взять маты со склада
А чтобы их взять лидер должен разрешить брать маты со склада
Он вводит например команду /matsdost и всем разрешается брать маты
Потом он вводит /matsundost и доступ к складу закрывается.
Или во втором варианте будет использоваться таймер
Лидер вводит /matsdost и склад открыт ну например на 1 минуту
Так же эту команду можно сделать и для замов
Для примера я делаю для банд!
и так начнём
Ко всем new
PHP:
new matsdost;
PHP:
if(strcmp(cmd,"/getmaterials",true)==0)
{
if(matsdost == 1)
{
if(!IsATerra (playerid)) return SendClientMessage(playerid, COLOR_GRAD1, "Вы не на своей базе");
if(PlayerInfo[playerid][pMember] == 12 && PlayerInfo[playerid][pRank] >= 3)//Баллас с 3 ранга
{
if(ballasmatbi <= 0) { SendClientMessage(playerid, COLOR_GREY, "На складе нет материалов"); return 1; }
if(PlayerInfo[playerid][pMats] > 1000) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя взять больше");
ballasmatbi -= 500;
PlayerInfo[playerid][pMats] += 500;
format(string, sizeof(string), "Вы взяли 500 матов со склада банды");
SendClientMessage(playerid, 0x6495EDFF, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s взял со склада банды 500 материалов", sendername);
SendFamilyMessage(12, COLOR_YELLOW2, string);
return 1;
}
else if(PlayerInfo[playerid][pMember] == 15 && PlayerInfo[playerid][pRank] >= 3)//grove с 3 ранга
{
if(groovmatbi <= 0) { SendClientMessage(playerid, COLOR_GREY, "На складе нет материалов"); return 1; }
if(PlayerInfo[playerid][pMats] > 1000) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя взять больше");
groovmatbi -= 500;
PlayerInfo[playerid][pMats] += 500;
format(string, sizeof(string), "Вы взяли 500 матов со склада банды");
SendClientMessage(playerid, 0x6495EDFF, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s взял со склада банды 500 материалов", sendername);
SendFamilyMessage(15, COLOR_YELLOW2, string);
return 1;
}
else if(PlayerInfo[playerid][pMember] == 13 && PlayerInfo[playerid][pRank] >= 3)//vagos с 3 ранга
{
if(vagosmatbi <= 0) { SendClientMessage(playerid, COLOR_GREY, "На складе нет материалов"); return 1; }
if(PlayerInfo[playerid][pMats] > 1000) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя взять больше");
vagosmatbi -= 500;
PlayerInfo[playerid][pMats] += 500;
format(string, sizeof(string), "Вы взяли 500 матов со склада банды");
SendClientMessage(playerid, 0x6495EDFF, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s взял со склада банды 500 материалов", sendername);
SendFamilyMessage(13, COLOR_YELLOW2, string);
return 1;
}
else if(PlayerInfo[playerid][pMember] == 17 && PlayerInfo[playerid][pRank] >= 3)//azte с 3 ранга
{
if(aztekmatbi <= 0) { SendClientMessage(playerid, COLOR_GREY, "На складе нет материалов"); return 1; }
if(PlayerInfo[playerid][pMats] > 1000) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя взять больше");
aztekmatbi -= 500;
PlayerInfo[playerid][pMats] += 500;
format(string, sizeof(string), "Вы взяли 500 матов со склада банды");
SendClientMessage(playerid, 0x6495EDFF, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s взял со склада банды 500 материалов", sendername);
SendFamilyMessage(17, COLOR_YELLOW2, string);
return 1;
}
else if(PlayerInfo[playerid][pMember] == 18 && PlayerInfo[playerid][pRank] >= 3)//rifa с 3 ранга
{
if(rifamatbi <= 0) { SendClientMessage(playerid, COLOR_GREY, "На складе нет материалов"); return 1; }
if(PlayerInfo[playerid][pMats] > 1000) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя взять больше");
rifamatbi -= 500;
PlayerInfo[playerid][pMats] += 500;
format(string, sizeof(string), "Вы взяли 500 матов со склада банды");
SendClientMessage(playerid, 0x6495EDFF, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s взял со склада банды 500 материалов", sendername);
SendFamilyMessage(18, COLOR_YELLOW2, string);
return 1;
}
return 1;
}
}
PHP:
if(strcmp(cmd, "/matsdost", true) == 0)
{
if(IsAGang(playerid) || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] == 9)
{
SendClientMessage(playerid,COLOR_WHITE,"Вы открыли склад");
matsdost = 1;
}
return 1;
}
if(strcmp(cmd, "/matsundost", true) == 0)
{
if(IsAGang(playerid) || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] == 9)
{
SendClientMessage(playerid,COLOR_WHITE,"Вы закрыли склад");
matsdost = 0;
}
return 1;
}
Когда они будут брать маты
Для этого добавьте к команду /getmaterials всем бандам индивидуально
Вот это
PHP:
if(matsdost == 0) { SendClientMessage(playerid, COLOR_GREY, "Склад закрыт"); return 1; }
PHP:
И если будете убирать не забудьте и убрать скобки
if(matsdost == 1)
{
Тут ваша команда
}
Но есть и второй вариант
Это использование таймера
Лидер даёт доступ брать маты на минуту или сколько душе угодно.
Мы просто добавим ко всем new
PHP:
new matsdostLock;
PHP:
if(strcmp(cmd, "/matsdost", true) == 0)
{
if(IsAGang(playerid) || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] == 9)
{
SendClientMessage(playerid,COLOR_WHITE,"Вы открыли склад");
matsdostLock = 1;// Там где 1 это время в минутах
}
return 1;
}
PHP:
if(strcmp(cmd,"/getmaterials",true)==0)
{
if(matsdostLock > 0)
{
if(!IsATerra (playerid)) return SendClientMessage(playerid, COLOR_GRAD1, "Вы не на своей базе");
if(PlayerInfo[playerid][pMember] == 12 && PlayerInfo[playerid][pRank] >= 3)//Баллас с 3 ранга
{
if(ballasmatbi <= 0) { SendClientMessage(playerid, COLOR_GREY, "На складе нет материалов"); return 1; }
if(PlayerInfo[playerid][pMats] > 1000) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя взять больше");
ballasmatbi -= 500;
PlayerInfo[playerid][pMats] += 500;
format(string, sizeof(string), "Вы взяли 500 матов со склада банды");
SendClientMessage(playerid, 0x6495EDFF, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s взял со склада банды 500 материалов", sendername);
SendFamilyMessage(12, COLOR_YELLOW2, string);
return 1;
}
else if(PlayerInfo[playerid][pMember] == 15 && PlayerInfo[playerid][pRank] >= 3)//grove с 3 ранга
{
if(groovmatbi <= 0) { SendClientMessage(playerid, COLOR_GREY, "На складе нет материалов"); return 1; }
if(PlayerInfo[playerid][pMats] > 1000) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя взять больше");
groovmatbi -= 500;
PlayerInfo[playerid][pMats] += 500;
format(string, sizeof(string), "Вы взяли 500 матов со склада банды");
SendClientMessage(playerid, 0x6495EDFF, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s взял со склада банды 500 материалов", sendername);
SendFamilyMessage(15, COLOR_YELLOW2, string);
return 1;
}
else if(PlayerInfo[playerid][pMember] == 13 && PlayerInfo[playerid][pRank] >= 3)//vagos с 3 ранга
{
if(vagosmatbi <= 0) { SendClientMessage(playerid, COLOR_GREY, "На складе нет материалов"); return 1; }
if(PlayerInfo[playerid][pMats] > 1000) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя взять больше");
vagosmatbi -= 500;
PlayerInfo[playerid][pMats] += 500;
format(string, sizeof(string), "Вы взяли 500 матов со склада банды");
SendClientMessage(playerid, 0x6495EDFF, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s взял со склада банды 500 материалов", sendername);
SendFamilyMessage(13, COLOR_YELLOW2, string);
return 1;
}
else if(PlayerInfo[playerid][pMember] == 17 && PlayerInfo[playerid][pRank] >= 3)//azte с 3 ранга
{
if(aztekmatbi <= 0) { SendClientMessage(playerid, COLOR_GREY, "На складе нет материалов"); return 1; }
if(PlayerInfo[playerid][pMats] > 1000) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя взять больше");
aztekmatbi -= 500;
PlayerInfo[playerid][pMats] += 500;
format(string, sizeof(string), "Вы взяли 500 матов со склада банды");
SendClientMessage(playerid, 0x6495EDFF, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s взял со склада банды 500 материалов", sendername);
SendFamilyMessage(17, COLOR_YELLOW2, string);
return 1;
}
else if(PlayerInfo[playerid][pMember] == 18 && PlayerInfo[playerid][pRank] >= 3)//rifa с 3 ранга
{
if(rifamatbi <= 0) { SendClientMessage(playerid, COLOR_GREY, "На складе нет материалов"); return 1; }
if(PlayerInfo[playerid][pMats] > 1000) return SendClientMessage(playerid,COLOR_GRAD1,"Нельзя взять больше");
rifamatbi -= 500;
PlayerInfo[playerid][pMats] += 500;
format(string, sizeof(string), "Вы взяли 500 матов со склада банды");
SendClientMessage(playerid, 0x6495EDFF, string);
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s взял со склада банды 500 материалов", sendername);
SendFamilyMessage(18, COLOR_YELLOW2, string);
return 1;
}
return 1;
}
}
PHP:
if(strcmp(cmd, "/matsundost", true) == 0)
{
if(IsAGang(playerid) || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pRank] == 9)
{
SendClientMessage(playerid,COLOR_WHITE,"Вы закрыли склад");
matsdostLock = 0;
}
return 1;
}
PHP:
forward matsdostUnlock();
public matsdostUnlock()
{
if(matsdostLock > 0) matsdostLock--;
}
PHP:
SetTimer("matsdostUnlock", 60000, 1);
после того как лидер или зам дали доступ командой /matsdost
Примечание: Систему таймера я взял не помню уже из какой темы тут на pawno-info
Автор: команд и самого урока я
Так же вы можете ставить такие проверки и на другие команды
Удачи вам в творчестве.
:dt::dt::dt::dt::dt::dt::dt::dt::dt::dt:
Последнее редактирование:
