Вопросы

Здравствуйте,я создаю свой проект и не могу написать команду с нуля,может у кого нибудь есть команда?Чтобы одевать мешок на голову если да отпишите пожалуйста.Использую pawncmd.Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение

3 ответа на этот вопрос

  • 0

@BlogMan 

Цитата

Держи


Ко всем new добавляем:

PHP код:
new PlayerBlinded[MAX_PLAYERS];
new Text:blindtd[5];  
Сейчас надо сделать так что бы когда игрок заходит на сервер на его голове не был надет мешок.
Идем в public OnPlayerConnect и добавляем туда следующие:
PHP код:
PlayerBlinded[playerid] = 0;  
Теперь идем в public OnGameModeInit и добавляем туда:
PHP код:
blindtd[0] = TextDrawCreate(0,0," white");
    TextDrawFont(blindtd[0],1);
    TextDrawLetterSize(blindtd[0],1000,1000);
    TextDrawBoxColor(blindtd[0],0x000000AA);
    TextDrawUseBox(blindtd[0],1);

    blindtd[1] = TextDrawCreate(0,0," white");
    TextDrawFont(blindtd[1],1);
    TextDrawLetterSize(blindtd[1],1000,1000);
    TextDrawBoxColor(blindtd[1],0x000000AA);
    TextDrawUseBox(blindtd[1],1);

    blindtd[2] = TextDrawCreate(0,0," white");
    TextDrawFont(blindtd[2],1);
    TextDrawLetterSize(blindtd[2],1000,1000);
    TextDrawBoxColor(blindtd[2],0x000000AA);
    TextDrawUseBox(blindtd[2],1);

    blindtd[3] = TextDrawCreate(0,0," white");
    TextDrawFont(blindtd[3],1);
    TextDrawLetterSize(blindtd[3],1000,1000);
    TextDrawBoxColor(blindtd[3],0x000000AA);
    TextDrawUseBox(blindtd[3],1);

    blindtd[4] = TextDrawCreate(0,0," white");
    TextDrawFont(blindtd[4],1);
    TextDrawLetterSize(blindtd[4],1000,1000);
    TextDrawBoxColor(blindtd[4],0x000000AA);
    TextDrawUseBox(blindtd[4],1);  
Теперь приступим к созданию самой команды.Для этого ищем public OnPlayerCommandText и добавляем в него команду:
PHP код:
if(strcmp(cmd, "/blind", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            new member=PlayerInfo[playerid][pMember];
            new leader=PlayerInfo[playerid][pLeader];
            if(member ==5 || member == 6 || member == 14 //Отвечает за то какие фракции могут использовать данную команду
            {
                if(PlayerInfo[playerid][pRank] < 3)//означает что член фракции ниже 3 ранга не сможет использовать данную команду
                {
                    SendClientMessage(playerid, COLOR_GREY, " Вы не можете использовать эту команду ваш ранг ниже 3!");
                    return 1;
                }
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp)) {
                    SendClientMessage(playerid, COLOR_CMD, "[INFO] {FFFFFF} /blind [Playerid/PartOfName]");
                    return 1;
                }
                giveplayerid = ReturnUser(tmp);
                if(IsPlayerConnected(giveplayerid))//проверка в сети ли игрок
                {
                    if(giveplayerid != INVALID_PLAYER_ID)
                    {
                        if(PlayerTied[giveplayerid] <= 0)//проверяет связан ли игрок
                        {
                            SendClientMessage(playerid, COLOR_GREY, " Èãðîê íå ñâÿçàí!");
                            return 1;
                        }
                        if (ProxDetectorS(8.0, playerid, giveplayerid))
                        {
                            new car = GetPlayerVehicleID(playerid);
                            if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Вы не можете одеть мешок на себя!"); return 1; }
                            if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == 2 && IsPlayerInVehicle(giveplayerid, car))//проверка на то в машине ли игрок
                            {
                                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                format(string, sizeof(string), "* %s надел вам мешок на голову", sendername);
                                SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                                format(string, sizeof(string), "* Вы надели мешок на голову %s.", giveplayer);
                                SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                                format(string, sizeof(string), "* %s надевает на голову %s мешок", sendername ,giveplayer);
                                ProxDetector(15.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,0,0);
                                GameTextForPlayer(giveplayerid, "~r~Blinded", 2500, 3);
                                TextDrawShowForPlayer(giveplayerid, blindtd[0]);
                                TextDrawShowForPlayer(giveplayerid, blindtd[1]);
                                TextDrawShowForPlayer(giveplayerid, blindtd[2]);
                                TextDrawShowForPlayer(giveplayerid, blindtd[3]);
                                TextDrawShowForPlayer(giveplayerid, blindtd[4]);
                                PlayerBlinded[giveplayerid] = 1;//1 значит мешок надет,а 0 значит нет
                            }
                            else
                            {
                                SendClientMessage(playerid, COLOR_GREY, "Игрок не в вашем автомобиле,или вы не на Водительском месте!");
                                return 1;
                            }
                        }
                        else
                        {
                            SendClientMessage(playerid, COLOR_GREY, "   Игрок не около вас!");
                            return 1;
                        }
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "Игрок не в сети!");
                    return 1;
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "Вы не член семьи!");
            }
        }
        return 1;  
Итак мы сделали команду что бы надеть мешок.Теперь надо сделать команду что бы его снять.Ниже команды /blind добавляем следующие:
PHP код:
if(strcmp(cmd, "/unblind", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            new member=PlayerInfo[playerid][pMember];
            new leader=PlayerInfo[playerid][pLeader];
            if(member ==5 || member == 6 || member == 14 || leader ==5 || leader == 6 || leader == 14)//проверка на фракцию
            {
                if(PlayerInfo[playerid][pRank] < 3)//проверка на ранг
                {
                    SendClientMessage(playerid, COLOR_GREY, "Вы не можете использовать эту команду,ваш ранг ниже 3!");
                    return 1;
                }
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp)) {
                    SendClientMessage(playerid, COLOR_CMD, "[INFO] {FFFFFF} /unblind [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; }
                            if(PlayerBlinded[giveplayerid])//проверка надет ли мешок на голову
                            {
                                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                format(string, sizeof(string), "* %s снял с вас мешок", sendername);
                                SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                                format(string, sizeof(string), "* Вы сняли мешок с %s.", giveplayer);
                                SendClientMessage(playerid, COLOR_LIGHTBLUE, 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);
                                GameTextForPlayer(giveplayerid, "~g~Unblinded", 2500, 3);
                                TextDrawHideForPlayer(giveplayerid, blindtd[0]);
                                TextDrawHideForPlayer(giveplayerid, blindtd[1]);
                                TextDrawHideForPlayer(giveplayerid, blindtd[2]);
                                TextDrawHideForPlayer(giveplayerid, blindtd[3]);
                                TextDrawHideForPlayer(giveplayerid, blindtd[4]);
                                PlayerBlinded[giveplayerid] = 0;//0 значит мешок снят
                            }
                            else
                            {
                                SendClientMessage(playerid, COLOR_GREY, "На нем нет мешка!");
                                return 1;
                            }
                        }
                        else
                        {
                            SendClientMessage(playerid, COLOR_GREY, "Игрок не около вас!");
                            return 1;
                        }
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "Игрок не в сети!");
                    return 1;
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "Вы не член семьи!");
            }
        }
        return 1;
    }  

 

 

@BlogMan И просто стандартный движок, переделай на pawncmd. Изи

Поделиться сообщением


Ссылка на сообщение
  • 0

Спасибо,большое всё сделал и переделал движок.

 

А если для сампа брать движок менять не нужно?

 

Заметка от Cawfee , создано

Объединил сообщения.

Поделиться сообщением


Ссылка на сообщение
  • 0

@BlogMan, если речь идет о командном процессоре (dc_cmd, zcmd, pawncmd), то нет, не зависит командный процессор от того, на что вы ориентированы (San Andreas или Criminal Russia).

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент