sasa50
Умник
Добрый день жители портала pawno-info, нигде не видел похожей темы и поэтому создам ее=)
Этот мануал поможет вам сделать так что бы банды грабили мирных людей на улицах штата.
Интервал грабежа 1 час=)
И так начнем:
Ко всем new добавляем:
После этого идем в паблик PayDay и после чека, который выводиться в игре вставляем:
Далее ко всем форвардам пишем:
Создаем паблик:
где 14; 15; 16; 17; 18; - это ид'ы банд, заменяем их на свои... если потребуется.
Если у кого-то паблик есть, то пропускаем этот шаг.
Далее создаем команду /robgang
Затем мы создаем диалог:
Функцию выдачи денег GiveMoney, меняете на ту которая у вас в моде.
Вот весь механизм грабежа сделан, для удобства можно создать команду обыска, что мы сейчас и сделаем:
Сама команда:
Автор урока:sasa50-Санёк
Автор идеи: Неизвестен
Спасибо за внимание=):df::df::df:
Убираем промежуток времени:
Удаляем все ниже перечисленное:
Все теперь грабьте сколько хотите=)
Теперь увеличим количество попыток грабежа:
Удалять вышеперечисленное не надо
Заменяем следующие строки:
Этот мануал поможет вам сделать так что бы банды грабили мирных людей на улицах штата.
Интервал грабежа 1 час=)
И так начнем:
Ко всем new добавляем:
HTML:
new robOffer[MAX_PLAYERS];
new robmoney[MAX_PLAYERS];
new ots[MAX_PLAYERS];
HTML:
ots[i] = 0;
HTML:
forward IsAGang(playerid);
HTML:
public IsAGang(playerid)
{
if(IsPlayerConnected(playerid))
{
new leader = PlayerInfo[playerid][pLeader];
new member = PlayerInfo[playerid][pMember];
if(member==14 || member==15 || member==16 || member==17 || member==18 )
{
return 1;
}
if(leader==14 || leader==15 || leader==16 || leader==17 || leader==18 )
{
return 1;
}
}
return 0;
}
Если у кого-то паблик есть, то пропускаем этот шаг.
Далее создаем команду /robgang
HTML:
if(strcmp(cmd, "/robgang", true) == 0)
{
if(IsAGang(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "Введите: /robgang [id] [сумма]");
return 1;
}
//giveplayerid = strval(tmp);
giveplayerid = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD1, "Введите: /robgang [id] [сумма]");
return 1;
}
if(ots[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GRAD1, "Грабить можно раз в час");
return 1;
}
if (IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(5.0, playerid, giveplayerid))
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "[Ошибка] Вы указали свой ID"); return 1; }
if (IsAGang(playerid)) { SendClientMessage(playerid, COLOR_GREY, "Нельзя ограбить бандита..."); return 1; }
new money;
money = strval(tmp);
if(money >5000)
{
SendClientMessage(playerid, COLOR_GRAD1, "Сумма должна быть не более 5.000 вирт");
return 1;
}
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "Вы попытались ограбить %s на сумму %d вирт",giveplayer,money);
SendClientMessage(playerid, COLOR_BLUE, string);
format(string, sizeof(string), "%s попытался ограбить %s", sendername, giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,CO
LOR_PURPLE);
new robdialog[256];
format(robdialog,sizeof(robdialog), "Вас хотят ограбить на сумму %d вирт\nОтдать деньги?",money);
ShowPlayerDialog(giveplayerid,5050,DIALOG_STYLE_MSGBOX,"Ограбление", robdialog, "Да", "Нет");
robmoney[giveplayerid] = money;
robOffer[giveplayerid] = playerid;
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Вы слишком далеко.");
}
}//invalid id
}
else
{
format(string, sizeof(string), "Игрок не найден", giveplayerid);
SendClientMessage(playerid, COLOR_GRAD1, string);
}
}
return 1;
}
HTML:
else if(dialogid == 5050)
{
if(response)
{
new giveplayer[MAX_PLAYER_NAME];
new giveplayerid;
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
if(GetPlayerMoney(playerid) < robmoney[playerid]) return SendClientMessage(playerid,COLOR_GRAD1,"У вас нет столько денег!");
format(string, sizeof(string), "Вы ограбили %s на %d вирт!",sendername, robmoney[playerid]);
SendClientMessage(robOffer[playerid], COLOR_BLUE,string);
format(string, sizeof(string), "%s'а ограбили", sendername);
ProxDetector(30.0, giveplayerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,CO
LOR_PURPLE);
GiveMoney(robOffer[playerid],robmoney[playerid]);
GiveMoney(playerid,-robmoney[playerid]);
ots[playerid] = 1;
SaveAccounts();
}
}
Вот весь механизм грабежа сделан, для удобства можно создать команду обыска, что мы сейчас и сделаем:
Сама команда:
HTML:
if(strcmp(cmd,"/robfrisk",true)==0)
{
if(IsPlayerConnected(playerid))
{
if(IsAGang(playerid))
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, " Используйте: /robfrisk [playerid/PartOfName]");
return 1;
}
giveplayerid = ReturnUser(tmp);
if(IsPlayerConnected(giveplayerid))
{
if(giveplayerid != INVALID_PLAYER_ID)
{
if (ProxDetectorS(8.0, playerid, giveplayerid))
{
if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Вы не можете Обыскать себя!"); return 1; }
GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "|__________ Кошелек %s __________|", giveplayer);
SendClientMessage(playerid, COLOR_WHITE, string);
format(string, sizeof(string), "Наличные в кошельке: %d$",GetPlayerMoney(giveplayerid));
SendClientMessage(playerid, COLOR_GREEN, string);
format(string, sizeof(string), "%s обшманал вас",sendername);
if(IsAGang(playerid))
{
SendClientMessage(giveplayerid, COLOR_LIGHTRED, string);
format(string, sizeof(string), "Используйте /robgang что бы совершить ограбление");
}
SendClientMessage(playerid, COLOR_GREY, string);
format(string, sizeof(string), "* %s обшманал %s ", sendername ,giveplayer);
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,0,0);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "* Этот игрок не около Вас!");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "* Этот игрок является Офлайновым !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "* Вы не бандит !");
return 1;
}
}
return 1;
}
Автор идеи: Неизвестен
Спасибо за внимание=):df::df::df:
Добавлю
Так что же нам мешает уменьшить интервал? или вообще его убрать?Убираем промежуток времени:
Удаляем все ниже перечисленное:
HTML:
new ots[MAX_PLAYERS];//из всех new
ots[i] = 0;//из паблика пейдей
if(ots[playerid] == 1)//из команды /robgang
{
SendClientMessage(playerid, COLOR_GRAD1, "Грабить можно раз в час");
return 1;
}
ots[playerid] = 1;//из диалога
Теперь увеличим количество попыток грабежа:
Удалять вышеперечисленное не надо
Заменяем следующие строки:
HTML:
if(ots[playerid] == 5)//команда /rodgang
{
SendClientMessage(playerid, COLOR_GRAD1, "Грабить можно 5 раз в час");
return 1;
}
ots[playerid] += 1;
Последнее редактирование:
