Рекомендованные сообщения



Не найдено.

4 posts in this topic

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

Share this post


Link to post
Share on other sites

@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. Изи

Share this post


Link to post
Share on other sites

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

 

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

 

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Dworkin
      By Dworkin
      Привет. Мне тяжело дается понимание строк в pawn из за не динамических массивов.
      #include enum pInfo { pRangName[25] } new players[MAX_PLAYERS][pInfo]; new string[20]; main() { format(string, sizeof(string), "Салага"); printf(string); players[0][pRangName] = string; } выдает ошибку "error 047: array sizes do not match, or destination array is too small" на строку "players[0][pRangName] = string;"
      Я понимаю что в ошибке говорится что размер не совпадает, но не могу понять как это сделать в павне