NikeDunk
Сообщения : 37 Дата регистрации : 2011-08-11
| Тема: [/roadblock]создание блока для копов Чт Авг 11, 2011 11:29 am | |
| Всем доброго времени суток. Я долго пытался сделать блоки для копов и они все получались с багами . Потом я увидел блоки на одном серве и нашел их в одном моде. Вот немног оподправил их под себя и решил выложить суда. Что дает команда: Команда позволяет законника ставить блоки для так сказать перекрытия дороги, чтобы легче было проверять водителей и т.д. В общем сами решайте что делать будете. Ко всем форвардам ставим: - Код:
-
forward ResetRoadblockTimer(); forward RemoveRoadblock(playerid); Потом ко всем new ставим: - Код:
-
new roadblocktimer = 0; В pInfo ставим - Код:
-
pRoadblock В public OnPlayerConnect(playerid) ставим - Код:
-
PlayerInfo[playerid][pRoadblock] = 0; Потом в public OnPlayerDisconnect(playerid, reason) а точнее в конец его ставим - Код:
-
if (PlayerInfo[playerid][pRoadblock] != 0) { RemoveRoadblock(playerid); } Потом куда хотите ставьте паблики: - Код:
-
public ResetRoadblockTimer() { roadblocktimer = 0; return 1; } //============================================================================== public RemoveRoadblock(playerid) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1) { DisablePlayerCheckpoint(i); } } } DestroyObject(PlayerInfo[playerid][pRoadblock]); PlayerInfo[playerid][pRoadblock] = 0; return 1; } И наконец сами команды: - Код:
-
if(strcmp(cmdtext, "/roadblock", true)==0 || strcmp(cmdtext, "/rb", true)==0) { if(PlayerInfo[playerid][pMember] == 1 && PlayerInfo[playerid][pLeader] == 1 && PlayerInfo[playerid][pMember] == 2 && PlayerInfo[playerid][pLeader] == 2 && PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pLeader] == 3) return SendClientMessage(playerid, COLOR_GREY, " Ты не законник!"); if (PlayerInfo[playerid][pRoadblock] != 0) return SendClientMessage(playerid, COLOR_GREY, " Ты можешь использовать только 1 блок за раз, используй /unrb чтобы убрать его."); if (roadblocktimer != 0) return SendClientMessage(playerid, COLOR_GREY, " Подожди, прежде чем ставить еще один блок."); new Float:X, Float:Y, Float:Z, Float:A; GetPlayerPos(playerid, X, Y, Z); GetPlayerFacingAngle(playerid, A); PlayerInfo[playerid][pRoadblock] = CreateObject(981, X, Y, Z, 0.0, 0.0, A+180); SetPlayerPos(playerid, X, Y, Z+4); GameTextForPlayer(playerid, "~w~Roadblock ~r~Placed", 5000, 5); SendClientMessage(playerid, COLOR_GREEN, " Блок поставлен успешно, используй /unrb или /roadunblock чтобы убрать его."); roadblocktimer = 1; GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), " Штаб: %s установил дорожный блок, он помечен чекпоинтом на карте.", sendername); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3) { SetPlayerCheckpoint(playerid, X, Y, Z-10, 1.0); SendClientMessage(i, TEAM_BLUE_COLOR, string); if (PlayerInfo[i][pRank] >= 5 && PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 1 || PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 2 || PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 3) { SendClientMessage(i, COLOR_YELLOW, " Ты можеш убрать все блоки, используя /unrball"); } } } } SetTimer("ResetRoadblockTimer", 60000, false); return 1; }
if(strcmp(cmdtext, "/roadunblock", true)==0 || strcmp(cmdtext, "/unrb", true)==0) { if(PlayerInfo[playerid][pMember] != 1 && PlayerInfo[playerid][pLeader] != 1 && PlayerInfo[playerid][pMember] != 2 && PlayerInfo[playerid][pLeader] != 2 && PlayerInfo[playerid][pMember] != 3 && PlayerInfo[playerid][pLeader] != 3) { SendClientMessage(playerid, COLOR_GREY, " Ты не законник!"); return 1; } if (PlayerInfo[playerid][pRoadblock] == 0) { SendClientMessage(playerid, COLOR_GREY, " У тебя нету установленных дорожных блоков!"); return 1; } RemoveRoadblock(playerid); SendClientMessage(playerid, COLOR_GREEN, " Дорожный блок успешно убран."); return 1; }
if(strcmp(cmdtext, "/roadunblockall", true)==0 || strcmp(cmdtext, "/unrball", true)==0) { if (PlayerInfo[playerid][pRank] >= 5 && PlayerInfo[playerid][pMember] != 1||PlayerInfo[playerid][pLeader] != 1 ||PlayerInfo[playerid][pMember] != 2 || PlayerInfo[playerid][pLeader] != 2 ||PlayerInfo[playerid][pMember] != 3 || PlayerInfo[playerid][pLeader] != 3) { for(new i = 0; i < MAX_PLAYERS; i++) { if(PlayerInfo[i][pRoadblock] != 0) { RemoveRoadblock(i); } } GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), " Штаб: Все дорожные блоки были убраны по указанию %s.", sendername); for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1) { SendClientMessage(i, TEAM_BLUE_COLOR, string); } } } } else { SendClientMessage(playerid, COLOR_GREY, " Твой ранг должен быть 5, чтобы убрать се дорожные блоки!"); } return 1; } в игре пишем /roadblock Переделывал проверки на фракции и редактировал немного код. В общем это команда пойдет на все моды!!! | |
|
Vanek
Сообщения : 1 Дата регистрации : 2011-09-16
| Тема: Re: [/roadblock]создание блока для копов Пт Сен 16, 2011 5:04 am | |
| Здрасте. Херли вы материалы пиз**те а ресурс откуда взяли не указываете? Вот [url=forum.pawno.ru/showthread.php/36391-All-roadblock-создание-блока-для-копов] ресурс [/url] | |
|