JIEON_COJIORS
Умник
Добрый день Ув.Пользователи сайта Pawno-info.ru
Сегодня я выкладываю свои сис-му бомбы!
Возможности бомбы:
1. Возможность поставить бомбу как на пол так и под машину
2. Возможность поставить бомбу как ручную так и с таймером
3. Возможность выбора времени таймера
Скрины:
И так приступим:
В начало:
К всем new
В public OnPlayerConnect(playerid)
Ко всем диалогам:
В public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
Ко всем командам
Ко всем ТекстДравам:
Где-то в конце мода:
Сегодня я выкладываю свои сис-му бомбы!
Возможности бомбы:
1. Возможность поставить бомбу как на пол так и под машину
2. Возможность поставить бомбу как ручную так и с таймером
3. Возможность выбора времени таймера
Скрины:
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
В начало:
PHP:
#define SCM SendClientMessage
#define SPD ShowPlayerDialog
#define c:0%; CMD:0%(playerid, params)
PHP:
//===========================[Бомба террористов]================================
new CarBomb[MAX_PLAYERS];//ID машины
new BTimer[MAX_PLAYERS];//Таймер
new Float:BombPosP[MAX_PLAYERS][3];//Позиция
new TimeBomb[MAX_PLAYERS];//Время до взрыва
new Text:Bomb[2];//TD Бомбы
new PlayerText:TimerBomb[MAX_PLAYERS];//TD время бомбы
new Text:TDBomba;//TD бомба
PHP:
//=====================================/BOMBA===============================
TimerBomb[playerid] = CreatePlayerTextDraw(playerid, 559.000000, 262.062500, "0:00");
PlayerTextDrawLetterSize(playerid, TimerBomb[playerid], 0.449999, 1.600000);
PlayerTextDrawTextSize(playerid, TimerBomb[playerid], 40.000000, 89.687500);
PlayerTextDrawAlignment(playerid, TimerBomb[playerid], 2);
PlayerTextDrawColor(playerid, TimerBomb[playerid], -1);
PlayerTextDrawSetShadow(playerid, TimerBomb[playerid], 0);
PlayerTextDrawSetOutline(playerid, TimerBomb[playerid], 1);
PlayerTextDrawBackgroundColor(playerid, TimerBomb[playerid], 51);
PlayerTextDrawFont(playerid, TimerBomb[playerid], 2);
PlayerTextDrawSetProportional(playerid, TimerBomb[playerid], 1);
PHP:
case 7172:
{
if(response)
{
switch(listitem)
{
case 0:
{
SetPVarInt(playerid, "Tip", 1); // Создаем
SPD(playerid,7173,DIALOG_STYLE_LIST,"{FFD300}Тип бомба:","С таймером\nРучная","Выбрать","Назад");
}
case 1:
{
new carid = GetNearestVehicle(playerid);
new Float:cx,Float:cy,Float:cz;
GetVehiclePos(carid, cx, cy, cz);
if(PlayerToPoint(3.0, playerid, cx, cy, cz) )
{
SPD(playerid,7173,DIALOG_STYLE_LIST,"{FFD300}Тип бомба:","С таймером\nРучная","Выбрать","Назад");
SetPVarInt(playerid, "Tip", 2); // Создаем
}
else return SCM(playerid, COLOR_GRAD1, "Вы должны стоять около автомобиля!");
}
}
}
return true;
}
case 7173:
{
if(response)
{
switch(listitem)
{
case 0:
{
switch(GetPVarInt(playerid, "Tip"))
{
case 1:
{
SPD(playerid,7170,DIALOG_STYLE_INPUT,"{FFD300}Таймер бомбы:","{FFFFFF}Введите таймер до взрыва бомба\nПримечание:\n\t\tВремя должно быть введено в минутах.","Ок","Назад");
}
case 2:
{
SPD(playerid,7170,DIALOG_STYLE_INPUT,"{FFD300}Таймер бомбы:","{FFFFFF}Введите таймер до взрыва бомба\nПримечание:\n\t\tВремя должно быть введено в минутах.","Ок","Назад");
}
}
}
case 1:
{
switch(GetPVarInt(playerid, "Tip"))
{
case 1:
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid,x,y,z);
BombPosP[playerid][0] = x;
BombPosP[playerid][1] = y;
BombPosP[playerid][2] = z;
new objectid = CreateObject(1654,BombPosP[playerid][0]+1,BombPosP[playerid][1],BombPosP[playerid][2],-90.0,90.0,0.0);
SetPVarInt(playerid,"polobj",objectid);
SCM(playerid, 0x00D900C8, "Подсказка: {FFFFFF}Вы можете обезвредить бомбу командой /obezv или взорвать /bum!");
}
case 2:
{
new carid = GetNearestVehicle(playerid);
new Float:cx,Float:cy,Float:cz;
GetVehiclePos(carid, cx, cy, cz);
new objectid = CreateDynamicObject(1654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
SetPVarInt(playerid,"carobj",objectid);
AttachDynamicObjectToVehicle(objectid, carid, 0.56490, 1.64410, -0.51430, 90.00000, 90.00000, 90.00000);
SCM(playerid, 0x00D900C8, "Бомба поставлена под машину!");
SCM(playerid, 0x00D900C8, "Подсказка: {FFFFFF}Вы можете обезвредить бомбу командой /obezv или взорвать /bum!");
SetPVarInt(playerid, "Carb", 1); // Создаем
CarBomb[playerid] = carid;
}
}
SetPVarInt(playerid, "BUM", 1); // Создаем
TextDrawHideForPlayer(playerid, TDBomba);
DeletePVar(playerid, "Bomba"); //Удаляем
SetPVarInt(playerid, "Bomba1", 1); // Создаем
DeletePVar(playerid, "Tip"); //Удаляем
ApplyAnimation(playerid,"BOMBER","BOM_Plant",1.0,1,0,0,0,3000,0);
return true;
}
}
}
return true;
}
case 7170:
{
if(!response) return true;
if(sscanf(inputtext, "d",params[0])) return SPD(playerid,7170,DIALOG_STYLE_INPUT,"{FFD300}Таймер бомбы:","{FFFFFF}Введите таймер до взрыва бомба\nПримечание:\n\t\tВремя должно быть введено в минутах.","Ок","Назад");
if(params[0] < 1 || params[0] > 6) return SCM(playerid, 0x00D900C8, "Подсказка: {FFFFFF}Допустимые значения: 1 - 5 минут");
new putsec;
switch(params[0])
{
case 1: putsec = 60;
case 2: putsec = 120;
case 3: putsec = 180;
case 4: putsec = 240;
case 5: putsec = 300;
case 6: putsec = 10;
}
TimeBomb[playerid] = putsec;
switch(GetPVarInt(playerid, "Tip"))
{
case 1:
{
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid,x,y,z);
BombPosP[playerid][0] = x;
BombPosP[playerid][1] = y;
BombPosP[playerid][2] = z;
new objectid = CreateObject(1654,BombPosP[playerid][0],BombPosP[playerid][1],BombPosP[playerid][2]-1,-90.0,90.0,0.0);
SetPVarInt(playerid,"polobj",objectid);
SCM(playerid, 0x00D900C8, "Подсказка: {FFFFFF}Вы можете обезвредить бомбу командой /obezv");
}
case 2:
{
new carid = GetNearestVehicle(playerid);
new objectid = CreateDynamicObject(1654, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
SetPVarInt(playerid,"carobj",objectid);
AttachDynamicObjectToVehicle(objectid, carid, 0.56490, 1.64410, -0.51430, 90.00000, 90.00000, 90.00000);
SCM(playerid, 0x00D900C8, "Бомба поставлена под машину!");
SCM(playerid, 0x00D900C8, "Подсказка: {FFFFFF}Вы можете обезвредить бомбу командой /obezv!");
SetPVarInt(playerid, "Carb", 1); // Создаем
CarBomb[playerid] = carid;
}
}
TextDrawHideForPlayer(playerid, TDBomba);
ApplyAnimation(playerid,"BOMBER","BOM_Plant",1.0,1,0,0,0,3000,0);
DeletePVar(playerid, "Bomba"); //Удаляем
SetPVarInt(playerid, "Bomba1", 1); // Создаем
BTimer[playerid] = SetTimerEx("TimerBomba", 1000, true, "d", playerid);
TimerBomba(playerid);
format(stringer,sizeof(stringer),"%s",TimeConverter(TimeBomb[playerid]));
PlayerTextDrawSetString(playerid, TimerBomb[playerid], stringer);
for(new x; x < 2; x++) TextDrawShowForPlayer(playerid, Bomb[x]);
PlayerTextDrawShow(playerid, TimerBomb[playerid]);
DeletePVar(playerid, "Tip"); //Удаляем
return true;
}
PHP:
if(newkeys & KEY_SPRINT && newkeys & KEY_JUMP)
{
if(!IsPlayerInAnyVehicle(playerid))
{
if(PlayerInfo[playerid][pMRInections] != 8) return true;
if(PlayerInfo[playerid][pRKInections] < 2) return true;
if(GetPVarInt(playerid, "Bomba1") == 0) return true;
cmd::bum(playerid, "");
RemovePlayerAttachedObject(playerid,1);
}
}
PHP:
c:obezv; // обезвредить
{
if(PlayerInfo[playerid][pMRInections] != 8) return SCM(playerid,COLOR_WHITE, "Вам не доступна эта функция");
if(GetPVarInt(playerid, "Bomba1") == 0) return SCM(playerid, COLOR_GRAD1, "Вы не вставляли бомбу");
if(PlayerToPoint(3.0, playerid, BombPosP[playerid][0],BombPosP[playerid][1],BombPosP[playerid][2]) )
{
for(new x; x < 2; x++) TextDrawHideForPlayer(playerid, Bomb[x]);
PlayerTextDrawHide(playerid, TimerBomb[playerid]);
KillTimer(BTimer[playerid]);
new objectid = GetPVarInt(playerid,"polobj");
DeletePVar(playerid,"polobj");
DestroyDynamicObject(objectid);
new objectid1 = GetPVarInt(playerid,"carobj");
DeletePVar(playerid,"polobj");
DestroyDynamicObject(objectid1);
DeletePVar(playerid, "Carb"); //Удаляем
DeletePVar(playerid, "Bomba1"); //Удаляем
ApplyAnimation(playerid,"BOMBER","BOM_Plant",1.0,1,0,0,0,3000,0);
}
else return SCM(playerid, COLOR_GRAD1, "Вы должны находиться в радиусе 3 метров от бомбы!");
return true;
}
c:bum; // Взорвать
{
if(PlayerInfo[playerid][pMRInections] != 8) return SCM(playerid,COLOR_WHITE, "Вам не доступна эта функция");
if(PlayerInfo[playerid][pRKInections] < 2) return SCM(playerid, COLOR_GRAD1, "Вам нужен 2 ранг");
if(GetPVarInt(playerid, "Bomba1") == 0) return SCM(playerid, COLOR_GRAD1, "Вы не вставляли бомбу");
if(GetPVarInt(playerid, "BUM") == 0) return true;
if(GetPVarInt(playerid, "Carb") == 1)
{
new Float:x, Float:y, Float:z;
GetVehiclePos(CarBomb[playerid], x,y,z);
if(PlayerToPoint(200.0, playerid, x,y,z) )
{
Bum(x,y,z);
new objectid = GetPVarInt(playerid,"carobj");
DeletePVar(playerid,"polobj");
DestroyDynamicObject(objectid);
DeletePVar(playerid, "Bomba1"); //Удаляем
DeletePVar(playerid, "Carb"); //Удаляем
DeletePVar(playerid, "BUM"); //Удаляем
}
else return SCM(playerid, COLOR_GRAD1, "Вы должны находиться в радиусе 200 метров от бомбы!");
}
else
{
if(PlayerToPoint(100.0, playerid, BombPosP[playerid][0],BombPosP[playerid][1],BombPosP[playerid][2]) )
{
CreateExplosion(BombPosP[playerid][0],BombPosP[playerid][1],BombPosP[playerid][2],6, 100.0);
CreateExplosion(BombPosP[playerid][0]+1,BombPosP[playerid][1]+1,BombPosP[playerid][2],1, 100.0);
CreateExplosion(BombPosP[playerid][0]-1,BombPosP[playerid][1]-1,BombPosP[playerid][2],1, 100.0);
CreateExplosion(BombPosP[playerid][0]-1,BombPosP[playerid][1]+1,BombPosP[playerid][2],1, 100.0);
CreateExplosion(BombPosP[playerid][0],BombPosP[playerid][1],BombPosP[playerid][2]+1,1, 100.0);
CreateExplosion(BombPosP[playerid][0],BombPosP[playerid][1],BombPosP[playerid][2]+2,1, 100.0);
new objectid = GetPVarInt(playerid,"polobj");
DeletePVar(playerid,"polobj");
DestroyDynamicObject(objectid);
DeletePVar(playerid, "Bomba1"); //Удаляем
new objectid1 = GetPVarInt(playerid,"carobj");
DeletePVar(playerid,"polobj");
DestroyDynamicObject(objectid1);
DeletePVar(playerid, "BUM"); //Удаляем
}
else return SCM(playerid, COLOR_GRAD1, "Вы должны находиться в радиусе 100 метров от бомбы!");
}
return true;
}
CMD:bomba(playerid) //Меню
{
if(PlayerInfo[playerid][pMRInections] != 8) return SCM(playerid,COLOR_WHITE, "Вам не доступна эта функция");
if(PlayerInfo[playerid][pRKInections] < 2) return SCM(playerid, COLOR_GRAD1, "Вам нужен 2 ранг");
if(GetPVarInt(playerid, "Bomba") == 0) return SCM(playerid, COLOR_GRAD1, "У вас нету бомбы");
if(GetPVarInt(playerid, "Bomba1") == 1) return SCM(playerid, COLOR_GRAD1, "Вы уже поставили бомбу");
SPD(playerid,7172,DIALOG_STYLE_LIST,"{FFD300}Бомба:","На пол\nПод машину","Выбрать","Назад");
return true;
}
CMD:getbomb(playerid)//Взять бомбу
{
if(GetPVarInt(playerid, "Bomba") == 1) return SCM(playerid, COLOR_GREEN,"У Вас уже есть бомба!");//Любимый цвет
SetPVarInt(playerid, "Bomba", 1); // Создаем
SetPlayerHealthAC(playerid, 100);
SetPlayerArmourAC(playerid, 100);
SCM(playerid, COLOR_GREEN,"Вы взяли бомбу что бы использовать её введите /bomba");//Любимый цвет
TextDrawShowForPlayer(playerid, TDBomba);
return true;
}
PHP:
TDBomba = TextDrawCreate(343.500000, 406.875000, "LD_SPAC:white");
TextDrawLetterSize(TDBomba, -0.013000, -0.788749);
TextDrawTextSize(TDBomba, -29.500000, 32.375000);
TextDrawAlignment(TDBomba, 1);
TextDrawColor(TDBomba, -1);
TextDrawUseBox(TDBomba, true);
TextDrawBoxColor(TDBomba, 0);
TextDrawSetShadow(TDBomba, 0);
TextDrawSetOutline(TDBomba, 0);
TextDrawBackgroundColor(TDBomba, -192);
TextDrawFont(TDBomba, 5);
TextDrawSetPreviewModel(TDBomba, 1654);
TextDrawSetPreviewRot(TDBomba, 0.000000, 0.000000, 180.000000, 1.000000);
//
Bomb[0] = TextDrawCreate(559.500000, 248.937500, TextToRussia("Время"));
TextDrawLetterSize(Bomb[0], 0.549000, 1.026875);
TextDrawTextSize(Bomb[0], 4.000000, 140.000000);
TextDrawAlignment(Bomb[0], 2);
TextDrawColor(Bomb[0], -1);
TextDrawUseBox(Bomb[0], true);
TextDrawBoxColor(Bomb[0], -16776961);
TextDrawSetShadow(Bomb[0], 0);
TextDrawSetOutline(Bomb[0], 1);
TextDrawBackgroundColor(Bomb[0], 51);
TextDrawFont(Bomb[0], 2);
TextDrawSetProportional(Bomb[0], 1);
Bomb[1] = TextDrawCreate(633.500000, 261.375000, "usebox");
TextDrawLetterSize(Bomb[1], 0.000000, 1.773611);
TextDrawTextSize(Bomb[1], 485.500000, 0.000000);
TextDrawAlignment(Bomb[1], 1);
TextDrawColor(Bomb[1], 0);
TextDrawUseBox(Bomb[1], true);
TextDrawBoxColor(Bomb[1], 102);
TextDrawSetShadow(Bomb[1], 0);
TextDrawSetOutline(Bomb[1], 0);
TextDrawFont(Bomb[1], 0);
PHP:
publics: TimerBomba(playerid)
{
if(TimeBomb[playerid] > 0)TimeBomb[playerid] -= 1;
if(TimeBomb[playerid] <= 0)
{
if(GetPVarInt(playerid, "Carb") == 0)
{
CreateExplosion(BombPosP[playerid][0],BombPosP[playerid][1],BombPosP[playerid][2],6, 100.0);
CreateExplosion(BombPosP[playerid][0]+1,BombPosP[playerid][1]+1,BombPosP[playerid][2],1, 100.0);
CreateExplosion(BombPosP[playerid][0]-1,BombPosP[playerid][1]-1,BombPosP[playerid][2],1, 100.0);
CreateExplosion(BombPosP[playerid][0]-1,BombPosP[playerid][1]+1,BombPosP[playerid][2],1, 100.0);
CreateExplosion(BombPosP[playerid][0],BombPosP[playerid][1],BombPosP[playerid][2]+1,1, 100.0);
CreateExplosion(BombPosP[playerid][0],BombPosP[playerid][1],BombPosP[playerid][2]+2,1, 100.0);
for(new x; x < 2; x++) TextDrawHideForPlayer(playerid, Bomb[x]);
PlayerTextDrawHide(playerid, TimerBomb[playerid]);
KillTimer(BTimer[playerid]);
new objectid = GetPVarInt(playerid,"polobj");
DeletePVar(playerid,"polobj");
DestroyDynamicObject(objectid);
DeletePVar(playerid, "Bomba1"); //Удаляем
TimeBomb[playerid] = 0;
}
else
{
new Float:x, Float:y, Float:z;
GetVehiclePos(CarBomb[playerid], x,y,z);
Bum(x,y,z);
new objectid = GetPVarInt(playerid,"carobj");
DeletePVar(playerid,"polobj");
DestroyDynamicObject(objectid);
DeletePVar(playerid, "Bomba1"); //Удаляем
DeletePVar(playerid, "Carb"); //Удаляе
}
}
else
{
format(stringer,sizeof(stringer),"%s",TimeConverter(TimeBomb[playerid]));
PlayerTextDrawSetString(playerid, TimerBomb[playerid], stringer);
}
}
stock TextToRussia(string[])
{
new result[128];
for (new i = 0; i < sizeof(result); i++)
{
switch (string[i])
{
case 'а': result[i] = 'A';
case 'А': result[i] = 'A';
case 'б': result[i] = '—';
case 'Б': result[i] = 'Ђ';
case 'в': result[i] = '‹';
case 'В': result[i] = 'B';
case 'г': result[i] = '‚';
case 'Г': result[i] = '‚';
case 'д': result[i] = 'ѓ';
case 'Д': result[i] = 'ѓ';
case 'е': result[i] = 'E';
case 'Е': result[i] = 'E';
case 'ё': result[i] = 'E';
case 'Ё': result[i] = 'E';
case 'ж': result[i] = '„';
case 'Ж': result[i] = '„';
case 'з': result[i] = '€';
case 'З': result[i] = '€';
case 'и': result[i] = '…';
case 'И': result[i] = '…';
case 'й': result[i] = '…';
case 'Й': result[i] = '…';
case 'к': result[i] = 'K';
case 'К': result[i] = 'K';
case 'л': result[i] = '‡';
case 'Л': result[i] = '‡';
case 'м': result[i] = 'M';
case 'М': result[i] = 'M';
case 'н': result[i] = 'H';
case 'Н': result[i] = 'H';
case 'о': result[i] = 'O';
case 'О': result[i] = 'O';
case 'п': result[i] = 'Њ';
case 'П': result[i] = 'Њ';
case 'р': result[i] = 'P';
case 'Р': result[i] = 'P';
case 'с': result[i] = 'C';
case 'С': result[i] = 'C';
case 'т': result[i] = 'Џ';
case 'Т': result[i] = 'Џ';
case 'у': result[i] = 'Y';
case 'У': result[i] = 'Y';
case 'ф': result[i] = 'Ѓ';
case 'Ф': result[i] = 'Ѓ';
case 'х': result[i] = 'X';
case 'Х': result[i] = 'X';
case 'ц': result[i] = '‰';
case 'Ц': result[i] = '‰';
case 'ч': result[i] = 'Ќ';
case 'Ч': result[i] = 'Ќ';
case 'ш': result[i] = 'Ћ';
case 'Ш': result[i] = 'Ћ';
case 'щ': result[i] = 'Љ';
case 'Щ': result[i] = 'Љ';
case 'ь': result[i] = '’';
case 'Ь': result[i] = '’';
case 'ъ': result[i] = '§';
case 'Ъ': result[i] = '§';
case 'ы': result[i] = '‘';
case 'Ы': result[i] = '‘';
case 'э': result[i] = '“';
case 'Э': result[i] = '“';
case 'ю': result[i] = '”';
case 'Ю': result[i] = '”';
case 'я': result[i] = '•';
case 'Я': result[i] = '•';
default: result[i] = string[i];
}
}
return result;
}
stock TimeConverter(seconds)
{
new minutes = floatround(seconds/60);
seconds -= minutes*60;
format(stringer1, 64, "%02d:%02d", minutes, seconds);
return stringer1;
}
Последнее редактирование:
