Artem_Sneil
Новичок
Скрины:
И так приступим:
Ко всем #Define
Теперь глобальные переменные:
Далее в Паблик OnGameModeInit
Паблик OnGameModeExit
Паблик OnPlayerDisconnect
Паблик OnPlayerDeath
В CMD:
Тут пейнтбол может запустить любой игрок, можно добавить проверку на админа(У всех она своя)Мой пример:
Если у вас есть CMD:get(или что то подобное), то просто добавить:
Если же нету то:
В сток SetPlayerSpawn(у всех по разному)
Паблик OnPlayerPickUpPickup
Паблик Update
Ну и в у кого то паблик у кого то сток CreateTextDraws
Так-же в CreatePickups
Ах да и в сток ResetPlayerStat
Думаю не чего не забыл.
Систему необходимо адаптировать под свой мод(не для новичков)
P.S. Строго не судите, это моя первая тема
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
И так приступим:
Ко всем #Define
Код:
#define TIME_PAINTBALL 900
#define REGISTER_PAINTBALL 600
PHP:
new strpaintball[1000];
new StartPaintBall;
new TimerPaintBall;
new TeamPain[MAX_PLAYERS];
new KillPain[MAX_PLAYERS];
new DeathPain[MAX_PLAYERS];
new RedPlayer;
new BluePlayer;
new RedScore;
new BlueScore;
new paintball;
new weaponpaintball[4];
PHP:
Create3DTextLabel("ЗАПИСЬ НА ПЕЙНТБОЛ", COLOR_ORANGE, 2693.9631,-1708.9209,11.8478, 25.0, 0, 0);
PHP:
TextDrawDestroy(RedTeam);
TextDrawDestroy(BlueTeam);
PHP:
if(TeamPain[playerid] == 1) BluePlayer--;
if(TeamPain[playerid] == 2) RedPlayer--;
TeamPain[playerid] = 0;
KillPain[playerid] = 0;
DeathPain[playerid] = 0;
PHP:
if(StartPaintBall == 1 && TeamPain[playerid] != 0)
{
if(TeamPain[playerid] == 1) BluePlayer --;
if(TeamPain[playerid] == 2) RedPlayer --;
TeamPain[playerid] = 0;
KillPain[playerid] = 0;
DeathPain[playerid] = 0;
SCM(playerid, COLOR_WHITE,"Вы были дисквалефицированы!");
}
if(TeamPain[playerid] != 0 && TeamPain[killerid] != 0 && TeamPain[killerid] != TeamPain[playerid] && StartPaintBall == 2)
{
DeathPain[playerid] ++;
KillPain[killerid] ++;
SetPlayerHealthAC(killerid, 100.0);
new mes[128];
format(mes, sizeof(mes), "~r~Kill: %d Death: %d", KillPain[killerid], DeathPain[killerid]);
GameTextForPlayer(killerid,mes, 2000, 4);
format(mes, sizeof(mes), "~r~Kill: %d Death: %d", KillPain[playerid], DeathPain[playerid]);
GameTextForPlayer(playerid,mes, 2000, 4);
if(TeamPain[playerid] == 1) RedScore ++;
if(TeamPain[playerid] == 2) BlueScore ++;
foreach (new i : Player)
{
if(TeamPain[i] == 0) continue;
new sttr[28];
format(sttr,sizeof(sttr),"~r~TEAM RED: ~w~%d",RedScore);
TextDrawSetString(RedTeam, sttr);
format(sttr,sizeof(sttr),"~b~TEAM BLUE: ~w~%d",BlueScore);
TextDrawSetString(BlueTeam, sttr);
}
}
PHP:
CMD:startpb(playerid, params[])
{
if(StartPaintBall != 0) return SCM(playerid, COLOR_GREY,"Пейнтбол уже начат!");
TimerPaintBall = REGISTER_PAINTBALL;
StartPaintBall = 1;
RedScore = 0, BlueScore = 0;
RedPlayer = 0, BluePlayer = 0;
SCMToAll(COLOR_YELLOW3,"SMS от СМИ: Начало пейнтбола через 10 минут.Желающим прибыть на стадион Лос Сантос");
foreach (new i : Player)
{
if(TeamPain[i] != 0 && gPlayerLogged[i] == true) TeamPain[i] = 0;
}
return true;
}
PHP:
if(DostupForAdministration[playerid] == false || PlayerInfo[playerid][pAdmin] < 2) return SCM(playerid, -1, "Вы не авторизованы. (( Введите /alogin ))");
PHP:
if(strcmp(inputtext, "paintball", true) == 0)
{
if(strlen(strpaintball) > 5 && StartPaintBall == 0) SPD(playerid, 0, DIALOG_STYLE_MSGBOX, "Отчет по матчу", strpaintball, "Закрыть", "");
else SPD(playerid, 0, DIALOG_STYLE_MSGBOX, "Отчет по матчу", "\tМатч не состоялся!", "Закрыть", "");
return true;
}
PHP:
CMD:get(playerid,params[])
{
new inputtext[16];
if(sscanf(params,"s[16]",inputtext))
{
SCM(playerid, COLOR_GREY, "Введите: /get [название]");
SCM(playerid, COLOR_GREY, "[N]: drugs, warehouse, paintball");
return true;
}
if(strcmp(inputtext, "paintball", true) == 0)
{
if(strlen(strpaintball) > 5 && StartPaintBall == 0) SPD(playerid, 0, DIALOG_STYLE_MSGBOX, "Отчет по матчу", strpaintball, "Закрыть", "");
else SPD(playerid, 0, DIALOG_STYLE_MSGBOX, "Отчет по матчу", "\tМатч не состоялся!", "Закрыть", "");
return true;
}
}
PHP:
if(StartPaintBall == 0 && TeamPain[playerid] != 0)
{
TeamPain[playerid] = 0;
SetPlayerPosition(playerid, 2690.1577,-1693.4609,9.7754);
TextDrawHideForPlayer(playerid, BlueTeam);
TextDrawHideForPlayer(playerid, RedTeam);
if(PlayerInfo[playerid][pMember] != 0) SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
else SetPlayerSkin(playerid, PlayerInfo[playerid][pChar]);
SetPlayerToTeamColor(playerid);
}
if(TeamPain[playerid] != 0 && StartPaintBall == 2)
{
SetPlayerHealthAC(playerid, 100.0);
SetPlayerInterior(playerid, 0);
new spawn = random(6);
if(TeamPain[playerid] == 1)
{
if(PlayerInfo[playerid][pSex] == 1) SetPlayerSkin(playerid, 21);
if(PlayerInfo[playerid][pSex] == 2) SetPlayerSkin(playerid, 41);
SetPlayerPosition(playerid, SpawnBlueTeam[spawn][0],SpawnBlueTeam[spawn][1],SpawnBlueTeam[spawn][2]);
SetPlayerColor(playerid, COLOR_BLUE);
}
if(TeamPain[playerid] == 2)
{
if(PlayerInfo[playerid][pSex] == 1) SetPlayerSkin(playerid, 19);
if(PlayerInfo[playerid][pSex] == 2) SetPlayerSkin(playerid, 40);
SetPlayerPosition(playerid, SpawnRedTeam[spawn][0],SpawnRedTeam[spawn][1],SpawnRedTeam[spawn][2]);
SetPlayerColor(playerid, COLOR_RED);
}
return true;
}
PHP:
if(pickupid == weaponpaintball[0] && StartPaintBall == 2 && TeamPain[playerid] != 0) return GivePlayerWeaponAC(playerid, 24, 49);//Выдачу оружий ставим свою
if(pickupid == weaponpaintball[1] && StartPaintBall == 2 && TeamPain[playerid] != 0) return GivePlayerWeaponAC(playerid, 25, 25);
if(pickupid == weaponpaintball[2] && StartPaintBall == 2 && TeamPain[playerid] != 0) return GivePlayerWeaponAC(playerid, 34, 10);
if(pickupid == weaponpaintball[3] && StartPaintBall == 2 && TeamPain[playerid] != 0) return GivePlayerWeaponAC(playerid, 29, 90);
if(pickupid == paintball)
{
if(StartPaintBall != 1) return SCM(playerid, COLOR_WHITE,"Регистрация закрыта!");
if(TeamPain[playerid] != 0) return SCM(playerid, COLOR_WHITE,"Вы уже зарегистрированны!");
if(RedPlayer > 14 && BluePlayer > 14) return SCM(playerid, COLOR_GREY,"Все места заняты.");
if(RedPlayer == 0 && BluePlayer == 0 || BluePlayer < RedPlayer || RedPlayer == BluePlayer)
{
SCM(playerid, -1,"Вы зарегестрированы на матч.Вы играете за команду {33AAFF}синих{FFFFFF}!");
BluePlayer ++;
TeamPain[playerid] = 1;
KillPain[playerid] = 0;
DeathPain[playerid] = 0;
return true;
}
if(BluePlayer > RedPlayer)
{
SCM(playerid, -1,"Вы зарегистрированы на матч.Вы играете за команду {FF0000}красных{FFFFFF}!");
RedPlayer ++;
TeamPain[playerid] = 2;
KillPain[playerid] = 0;
DeathPain[playerid] = 0;
return true;
}
return true;
}
PHP:
if(TimerPaintBall && (StartPaintBall == 1 || StartPaintBall == 2)) TimerPaintBall--;
if(!TimerPaintBall && StartPaintBall == 1)
{
StartPaintBall = 2;
TimerPaintBall = TIME_PAINTBALL;
SCMToAll(COLOR_YELLOW3, "SMS от СМИ: Матч по пейнтболу начался, продолжительность 15 минут.");
foreach (new i : Player)
{
if(TeamPain[i] != 0) GameTextForPlayer(i,"~y~[START]", 2000, 4);
}
}
if(TimerPaintBall == 5 && StartPaintBall == 1)
{
if(RedPlayer == 0 || BluePlayer == 0)
{
foreach (new i : Player)
{
if(TeamPain[i] != 0) TeamPain[i] = 0;
}
SCMToAll(COLOR_YELLOW3, "SMS от СМИ:Мат по пейнтболу отменен из за недостатка участников.");
RedPlayer = 0, BluePlayer = 0;
StartPaintBall = 0;
}
else
{
foreach (new i : Player)
{
if(TeamPain[i] == 0 || !gPlayerLogged[i]) continue;
new strr[28];
format(strr,sizeof(strr),"~r~TEAM RED: ~w~%d",RedScore);
TextDrawSetString(RedTeam, strr);
TextDrawShowForPlayer(i, RedTeam);
format(strr,sizeof(strr),"~b~TEAM BLUE: ~w~%d",BlueScore);
TextDrawSetString(BlueTeam, strr);
TextDrawShowForPlayer(i, BlueTeam);
TogglePlayerControllableEx(i, 0);
SetTimerEx("UnFreeze", 5000, false, "i",i);
ResetPlayerWeaponEx(i);
SetPlayerInterior(i, 0);
SetPlayerArmourAC(i, 0);
SetPlayerHealthAC(i, 100);
new spawn = random(6);
if(TeamPain[i] == 1)
{
SetPlayerPosition(i, SpawnBlueTeam[spawn][0],SpawnBlueTeam[spawn][1],SpawnBlueTeam[spawn][2]);
if(PlayerInfo[i][pSex] == 1) SetPlayerSkin(i, 21);
if(PlayerInfo[i][pSex] == 2) SetPlayerSkin(i, 41);
SetPlayerColor(i, COLOR_BLUE);
}
if(TeamPain[i] == 2)
{
SetPlayerPosition(i, SpawnRedTeam[spawn][0],SpawnRedTeam[spawn][1],SpawnRedTeam[spawn][2]);
if(PlayerInfo[i][pSex] == 1) SetPlayerSkin(i, 19);
if(PlayerInfo[i][pSex] == 2) SetPlayerSkin(i, 40);
SetPlayerColor(i, COLOR_RED);
}
}
}
}
if(StartPaintBall == 2 && !TimerPaintBall)
{
SCMToAll(COLOR_YELLOW3, "SMS от СМИ:Матч по пейнтболу завершен (( для просмотра результатов введите: /get paintball ))");
StartPaintBall = 0;
new str[128], number = 0;
format(str,sizeof(str),"{33AAFF} Team Blue %d {FFFFFF}|| {FF0000}%d Team Red\n\n",BlueScore, RedScore);
strcat(strpaintball,str);
foreach (new i : Player)
{
if(TeamPain[i] == 0) continue;
SetPlayerPosition(i, 2690.1577,-1693.4609,9.7754);
if(PlayerInfo[i][pMember] != 0) SetPlayerSkin(i, PlayerInfo[i][pSkin]);
else SetPlayerSkin(i, PlayerInfo[i][pChar]);
ResetPlayerWeaponEx(i);
SetPlayerHealthAC(i,PlayerInfo[i][pHealth]);
SetPlayerToTeamColor(i);
TextDrawHideForPlayer(i, BlueTeam);
TextDrawHideForPlayer(i, RedTeam);
number++;
if(TeamPain[i] == 1)
{
if(BlueScore > RedScore)
{
SCM(i, COLOR_GREENOK,"Ваша команда победла! ваш приз составил: 30000$");
TransferMoney(-1,i,30000);
}
GetPlayerName(i, sn, sizeof(sn));
format(str,sizeof(str),"{33AAFF}%s | Kill: %d | Death: %d \n",sn, KillPain[i], DeathPain[i]);
strcat(strpaintball,str);
}
if(TeamPain[i] == 2)
{
if(BlueScore < RedScore)
{
SCM(i, COLOR_GREENOK,"Ваша команда победила! ваш приз составил: 30000$");
TransferMoney(-1,i,30000);
}
GetPlayerName(i, sn, sizeof(sn));
format(str,sizeof(str),"{FF0000}%s | Kill: %d | Death: %d\n",sn, KillPain[i], DeathPain[i]);
strcat(strpaintball,str);
}
TeamPain[i] = 0;
KillPain[i] = 0;
DeathPain[i] = 0;
}
}
PHP:
BlueTeam = TextDrawCreate(510.000000, 141.000000, "TEAM BLUE:");
TextDrawBackgroundColor(BlueTeam, 255);
TextDrawFont(BlueTeam, 1);
TextDrawLetterSize(BlueTeam, 0.300000, 1.000000);
TextDrawColor(BlueTeam, -1);
TextDrawSetOutline(BlueTeam, 0);
TextDrawSetProportional(BlueTeam, 1);
TextDrawSetShadow(BlueTeam, 1);
RedTeam = TextDrawCreate(510.000000, 152.000000, "TEAM RED:");
TextDrawBackgroundColor(RedTeam, 255);
TextDrawFont(RedTeam, 1);
TextDrawLetterSize(RedTeam, 0.300000, 1.000000);
TextDrawColor(RedTeam, -1);
TextDrawSetOutline(RedTeam, 0);
TextDrawSetProportional(RedTeam, 1);
TextDrawSetShadow(RedTeam, 1);
PHP:
paintball = CreatePickupAC(19134, 23, 2693.9631,-1708.9209,11.8478);
weaponpaintball[0] = CreatePickupAC(348, 23, 1068.5187,2101.3992,10.8203);
weaponpaintball[1] = CreatePickupAC(349, 23, 1080.0931,2103.7437,10.8203);
weaponpaintball[2] = CreatePickupAC(358, 23, 1088.9740,2106.9214,10.8203);
weaponpaintball[3] = CreatePickupAC(353, 23, 1092.9535,2103.1909,15.3504);
PHP:
TeamPain[playerid] = 0;
KillPain[playerid] = 0;
DeathPain[playerid] = 0;
Систему необходимо адаптировать под свой мод(не для новичков)
P.S. Строго не судите, это моя первая тема
Последнее редактирование:
