grod
Умник
Всем привет вроде не разу за 5 лет сюда не вылаживал в готовые решения(пришло время выложить) и вот сегодня у видел в группе CryFox систему ограбления мне скрин понравился и я сделал почти как у них смотрим ниже скрин прилагаются
Когда идет ограбление
у кого не грузиться:
у кого не грузиться:
В тексте могут быть ошибки так что сори(да и код не очень но для паблика сойдет)
Так же вы можете скачать его как FS но лучше будет в шить
Нам понадобиться два инклуда
Ко всем new
потом туда где у вас форварды
Далее в public OnPlayerConnect(playerid)
затем в public OnGameModeInit()
Далее в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
За тем в public OnPlayerClickTextDraw(playerid, Text:clickedid)
и в конец мода вставляем это
А так же в публики OnPlayerSpawn и OnPlayerDisconnect
Добавить это
P.S. в stock OgrabKol(playerid) находим
Чтобы сделать ограбление раз в час(ОТКРОЙТЕ СПОЙЛЕР)
Устранены баги которые нашел а это ТД иногда не про подал и повторно не появлялся(эти баги нашел на моде который был взят с паблика и не в писаным в мод)
Поставлены проверки в случаи ошибки(если нету кнопку выберите) ограбление провалиться
так же не много сократил ТД
Добавил удаление при дисконекте и спавне.
и сделал табуляцию кода(но это не важно)
Обновил ссылку на FS(но лучше вписать в мод)
Русификатор на GTA:SA(
Когда идет ограбление
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
В тексте могут быть ошибки так что сори(да и код не очень но для паблика сойдет)
Так же вы можете скачать его как FS но лучше будет в шить
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
PHP:
#include <CRP>//чтобы текст дравы были на русском
PHP:
new
Ogb[MAX_PLAYERS],
PlayerOgrab[MAX_PLAYERS];
new Text:ograb[14];
new PlayerText:ograbT[MAX_PLAYERS];
new NameActor;
new ograbtimer;
new orgablenie;
PHP:
forward ograblenie(playerid);
forward OgrabForPlayer(playerid);
PHP:
ograbT[playerid] = CreatePlayerTextDraw(playerid,459.666656, 380.804473, "_");
PlayerTextDrawBackgroundColor(playerid,ograbT[playerid], 51);
PlayerTextDrawAlignment(playerid,ograbT[playerid], 1);
PlayerTextDrawLetterSize(playerid,ograbT[playerid], 0.210000, 0.900000);
PlayerTextDrawFont(playerid,ograbT[playerid], 2);
PlayerTextDrawColor(playerid,ograbT[playerid], -1);
PlayerTextDrawSetOutline(playerid,ograbT[playerid], 1);
PlayerTextDrawSetProportional(playerid,ograbT[playerid], 1);
PlayerTextDrawSetShadow(playerid,ograbT[playerid],0);
PHP:
SetTimer("timersec",1000,true);//создали 1 секундный таймер
NameActor = CreateActor(179, 1832.9752,-1846.0677,13.5781,94.1702);
ograb[1] = TextDrawCreate(631.777954, 232.468719, "usebox");
TextDrawLetterSize(ograb[1], 0.000000, 7.460122);
TextDrawTextSize(ograb[1], 445.110992, 0.000000);
TextDrawAlignment(ograb[1], 1);
TextDrawColor(ograb[1], 0);
TextDrawUseBox(ograb[1], true);
TextDrawBoxColor(ograb[1], 102);
TextDrawSetShadow(ograb[1], 0);
TextDrawSetOutline(ograb[1], 0);
TextDrawFont(ograb[1], 0);
ograb[0] = TextDrawCreate(631.333374, 226.993331, "usebox");
TextDrawLetterSize(ograb[0], 0.000000, 1.532224);
TextDrawTextSize(ograb[0], 445.555541, 0.000000);
TextDrawAlignment(ograb[0], 1);
TextDrawColor(ograb[0], 0);
TextDrawUseBox(ograb[0], true);
TextDrawBoxColor(ograb[0], 1182971135);
TextDrawSetShadow(ograb[0], 0);
TextDrawSetOutline(ograb[0], 0);
TextDrawFont(ograb[0], 0);
ograb[2] = TextDrawCreate(490.888885, 225.991073, "инструкция");
TextDrawLetterSize(ograb[2], 0.449999, 1.600000);
TextDrawAlignment(ograb[2], 1);
TextDrawColor(ograb[2], -1);
TextDrawSetShadow(ograb[2], 0);
TextDrawSetOutline(ograb[2], 1);
TextDrawBackgroundColor(ograb[2], 51);
TextDrawFont(ograb[2], 1);
TextDrawSetProportional(ograb[2], 1);
ograb[3] = TextDrawCreate(448.555328, 241.924362, "~y~нажимайте на нужную иконку в~n~нижней панели для завершения~n~ограбления~n~~r~в случае ошибки попытка~n~ограбления будет провалена");
TextDrawLetterSize(ograb[3], 0.200500, 1.300000);
TextDrawAlignment(ograb[3], 1);
TextDrawColor(ograb[3], -1);
TextDrawSetShadow(ograb[3], 0);
TextDrawSetOutline(ograb[3], 1);
TextDrawBackgroundColor(ograb[3], 51);
TextDrawFont(ograb[3], 2);
TextDrawSetProportional(ograb[3], 1);
ograb[4] = TextDrawCreate(448.222229, 404.699981, "usebox");
TextDrawLetterSize(ograb[4], 0.000000, -11.544317);
TextDrawTextSize(ograb[4], 628.222229, 0.000000);
TextDrawAlignment(ograb[4], 1);
TextDrawColor(ograb[4], 0);
TextDrawUseBox(ograb[4], true);
TextDrawBoxColor(ograb[4], 102);
TextDrawSetShadow(ograb[4], 0);
TextDrawSetOutline(ograb[4], 0);
TextDrawFont(ograb[4], 0);
ograb[5] = TextDrawCreate(631.444580, 305.646484, "usebox");
TextDrawLetterSize(ograb[5], 0.000000, 1.532224);
TextDrawTextSize(ograb[5], 444.666717, 0.000000);
TextDrawAlignment(ograb[5], 1);
TextDrawColor(ograb[5], 0);
TextDrawUseBox(ograb[5], true);
TextDrawBoxColor(ograb[5], 8388863);
TextDrawSetShadow(ograb[5], 0);
TextDrawSetOutline(ograb[5], 0);
TextDrawFont(ograb[5], 0);
ograb[6] = TextDrawCreate(548.445373, 334.506652, "LD_SPAC:white");
TextDrawLetterSize(ograb[6], 0.000000, 0.000000);
TextDrawTextSize(ograb[6], 0.444396, 54.755554);
TextDrawAlignment(ograb[6], 1);
TextDrawColor(ograb[6], -1);
TextDrawSetShadow(ograb[6], 0);
TextDrawSetOutline(ograb[6], 0);
TextDrawFont(ograb[6], 4);
ograb[7] = TextDrawCreate(490.889038, 304.150970, "ограбление");
TextDrawLetterSize(ograb[7], 0.449999, 1.600000);
TextDrawAlignment(ograb[7], 1);
TextDrawColor(ograb[7], -1);
TextDrawSetShadow(ograb[7], 0);
TextDrawSetOutline(ograb[7], 1);
TextDrawBackgroundColor(ograb[7], 51);
TextDrawFont(ograb[7], 1);
TextDrawSetProportional(ograb[7], 1);
ograb[8] = TextDrawCreate(465.888824, 329.528930, "выбери");
TextDrawLetterSize(ograb[8], 0.449999, 1.600000);
TextDrawAlignment(ograb[8], 1);
TextDrawColor(ograb[8], -1);
TextDrawSetShadow(ograb[8], 0);
TextDrawSetOutline(ograb[8], 1);
TextDrawBackgroundColor(ograb[8], 51);
TextDrawFont(ograb[8], 1);
TextDrawSetProportional(ograb[8], 1);
ograb[9] = TextDrawCreate(480.222717, 352.004455, "_");
ograb[10] = TextDrawCreate(560.000183, 336.000000, "LD_BEAT:triang");
ograb[11] = TextDrawCreate(595.222717, 336.004455, "LD_BEAT:square");
ograb[12] = TextDrawCreate(560.222595, 363.884460, "LD_BEAT:circle");
ograb[13] = TextDrawCreate(595.000671, 363.888916, "LD_BEAT:cross");
for(new i = 9; i < 14; i++)
{
TextDrawLetterSize(ograb[i], 0.000000, 0.000000);
TextDrawTextSize(ograb[i], 28.444519, 25.386688);
TextDrawAlignment(ograb[i], 1);
TextDrawColor(ograb[i], -1);
TextDrawSetShadow(ograb[i], 0);
TextDrawSetOutline(ograb[i], 0);
TextDrawFont(ograb[i], 4);
TextDrawSetSelectable(ograb[i], true);
}
Далее в public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
PHP:
if (newkeys & KEY_FIRE)
{
if(IsPlayerInRangeOfPoint(playerid,5.0,1832.9752,-1846.0677,13.5781))//5.0 - это от куда начинает действие(1832.9752,-1846.0677,13.5781 позиция актера)
{
if(GetPlayerWeapon(playerid) >= 24)//дигл (ограбление начнется когда стрельните из дигла)
{
ograblenie(playerid);
}
}
}
PHP:
if(clickedid == Text:INVALID_TEXT_DRAW)
{
if(GetPVarInt(playerid,"ograb") > 0)
{
for(new i; i < 14; i++) TextDrawHideForPlayer(playerid,ograb[i]);
PlayerTextDrawHide(playerid,ograbT[playerid]);
ograbtimer = 0;
orgablenie = 0;
SetPVarInt(playerid,"ograb",0);
ClearAnimations(playerid);
ApplyActorAnimation(NameActor, "DEALER","Dealer_idle",4.1,1,0,0,0,0);//меняем анимку после ограбления
}
}
if(clickedid == ograb[10]) //
{
if(Ogb[playerid] != 0)return xxx(playerid);//удаляет ТД и попытка ограбления аннулируется если выбрать другой ТД
OgrabForPlayer(playerid);
return 1;
}
if(clickedid == ograb[11]) //
{
if(Ogb[playerid] != 1)return xxx(playerid);//удаляет ТД и попытка ограбления аннулируется если выбрать другой ТД
OgrabForPlayer(playerid);
return 1;
}
if(clickedid == ograb[12]) //
{
if(Ogb[playerid] != 2)return xxx(playerid);//удаляет ТД и попытка ограбления аннулируется если выбрать другой ТД
OgrabForPlayer(playerid);
return 1;
}
if(clickedid == ograb[13]) //
{
if(Ogb[playerid] != 3)return xxx(playerid);//удаляет ТД и попытка ограбления аннулируется если выбрать другой ТД
OgrabForPlayer(playerid);
return 1;
}
PHP:
public OgrabForPlayer(playerid)
{
new ran;
ran = random(4);
PlayerOgrab[playerid] ++; // прибовляет +1 при ножатие
switch(ran)
{
case 0:
{
TextDrawSetString(ograb[9], "LD_BEAT:triang");
Ogb[playerid] = 0;
}
case 1:
{
TextDrawSetString(ograb[9], "LD_BEAT:square");
Ogb[playerid] = 1;
}
case 2:
{
TextDrawSetString(ograb[9], "LD_BEAT:circle");
Ogb[playerid] = 2;
}
case 3:
{
TextDrawSetString(ograb[9], "LD_BEAT:cross");
Ogb[playerid] = 3;
}
}
OgrabKol(playerid);
return 1;
}
forward OgrabKol(playerid);
public OgrabKol(playerid)
{
if(PlayerOgrab[playerid] >= 20)//20 сколько раз нужно нажимать
{
for(new i; i < 14; i++) TextDrawHideForPlayer(playerid,ograb[i]);
PlayerTextDrawHide(playerid,ograbT[playerid]);
SetPVarInt(playerid,"ograb",0);
CancelSelectTextDraw(playerid);
ClearAnimations(playerid);
ograbtimer = 0;
orgablenie = 0;
ApplyActorAnimation(NameActor, "DEALER","Dealer_idle",4.1,1,0,0,0,0);//меняем анимку после ограбления
SendClientMessage(playerid,-1,"Вы успешно совершили ограбление");
/*
Убераем(строчку выше и ниже) и ставим выдачу денег из своего мода или что у вас там будет даваться за ограбление
*/
}
return 1;
}
stock xxx(playerid)//если попытка была не удачной
{
for(new i; i < 14; i++) TextDrawHideForPlayer(playerid,ograb[i]);
PlayerTextDrawHide(playerid,ograbT[playerid]);
SetPVarInt(playerid,"ograb",0);
CancelSelectTextDraw(playerid);
ograbtimer = 0;
orgablenie = 0;
ClearAnimations(playerid);
ApplyActorAnimation(NameActor, "DEALER","Dealer_idle",4.1,1,0,0,0,0);//меняем анимку после ограбления
return 1;
}
public ograblenie(playerid)//запускаем наше ограбление
{
SetPVarInt(playerid, "ograb", 1);//
SelectTextDraw(playerid,0xddddddaa);
for(new i; i < 14; i++) TextDrawShowForPlayer(playerid,ograb[i]);
PlayerTextDrawShow(playerid,ograbT[playerid]);
PlayerOgrab[playerid] = -1; // -1 это будет = 0 в количестве попыток
OgrabForPlayer(playerid);
ApplyAnimation(playerid,"SHOP","ROB_Loop_Threat",4.1,1,0,0,0,0,0);//ваша анимка
ApplyActorAnimation(NameActor, "SHOP", "SHP_Rob_HandsUP",4.1,1,0,0,0,0);//анимка актера
orgablenie = 1;
ograbtimer = 30;//время за которое нужно успеть
return 1;
}
forward timersec(playerid);
public timersec(playerid)
{
if(orgablenie == 1 && ograbtimer > 0)
{
ograbtimer--;//начинает обратный отчет
new text[128];
PlayerTextDrawShow(playerid, ograbT[playerid]);
format(text, 128, "~g~Прогресс ~r~%d/20~n~~g~Время~y~%s ~g~секунд", PlayerOgrab[playerid],Convert(ograbtimer));
PlayerTextDrawSetString(playerid,ograbT[playerid], text);
return 1;
}
if(orgablenie == 1 && ograbtimer == 0) //
{
xxx(playerid);//если попытка была не удачной
}
return 1;
}
Convert(number)
{
new hours = 0, mins = 0, secs = 0, string[12];
hours = floatround(number / 3600);
mins = floatround((number / 60) - (hours * 60));
secs = floatround(number - ((hours * 3600) + (mins * 60)));
if(hours > 0) format(string, sizeof(string), "%i:%02d:%02d", hours, mins, secs);
else format(string, sizeof(string), "%i:%02d", mins, secs);
return string;
}
Добавить это
PHP:
xxx(playerid);//удаляем наши ТД если умерли во время ограбления
Бот для ограбления находиться у ЖД вокзала ЛС там есть 24/7 он там стоит
и ограбить можно его только когда у вас в руках дигл и нужно стрельнуть или ударить им
и ограбить можно его только когда у вас в руках дигл и нужно стрельнуть или ударить им
PHP:
/*
Убераем(строчку выше и ниже) и ставим выдачу денег из своего мода или что у вас там будет даваться за ограбление
*/
Чтобы сделать ограбление раз в час(ОТКРОЙТЕ СПОЙЛЕР)
Ко всем new
В public ograblenie(playerid)//
в payday
Код:
new RobBot=0;
Код:
if(RobBot == 1)
{
SendClientMessage(playerid, -1, "[Бот] меня уже грабили в этом часу");
return true;
}
RobBot = 1;
Код:
RobBot = 0;
Устранены баги которые нашел а это ТД иногда не про подал и повторно не появлялся(эти баги нашел на моде который был взят с паблика и не в писаным в мод)
Поставлены проверки в случаи ошибки(если нету кнопку выберите) ограбление провалиться
так же не много сократил ТД
Добавил удаление при дисконекте и спавне.
и сделал табуляцию кода(но это не важно)
Обновил ссылку на FS(но лучше вписать в мод)
Русификатор на GTA:SA(
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
) это если у вас все таки иероглифы в место текста.
Последнее редактирование:
