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



2 posts in this topic

Всем привет.

У меня есть команда для ОПГ для продажи оружия, но продавать можно только на своей территории. Вот команда:

CMD:sellgun(playerid, params[])
{
    if(IsAGang(playerid))
    {
        new full = 0;
        for(new i; i < MAX_GZONE;i++)
        {
            if(PlayerToKvadrat(playerid,GZMZ[i][gCoords][0], GZMZ[i][gCoords][1],GZMZ[i][gCoords][2],GZMZ[i][gCoords][3]) && ZoneOnBattle[i] == 0)
            {
                if(sscanf(params, "udd", params[0], params[1], params[2])) return SendClientMessage(playerid, COLOR_RED, "[Информация] {FFFFFF}Используйте: /sellgun [id игрока] [патроны] [Цена]");
                if(!IsPlayerConnected(params[0]) || params[0] == playerid) return SendClientMessage(playerid,CWHITE,"Неверный ID игрока");
                if(GetPlayerDistanceToPlayer(playerid,params[0]) > 3.0 || GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(params[0])) return SendClientMessage(playerid,CWHITE,"Вы далеко друг от друга");
                if(params[2] > 30000 || params[2] < 1) return SendClientMessage(playerid,CWHITE,"Цена должна быть от 1 до 30000.");
                if(params[1] > 150 || params[1] < 1) return SendClientMessage(playerid,CWHITE,"Неверное к-во патронов 1 до 150");
                new weaponid = GetPlayerWeapon(playerid);
                new ammo = GetPlayerAmmo(playerid);
                if(!weaponid) return SendClientMessage(playerid,CWHITE,"Возьмите в руку то оружие, которое хотите продать");
                if(ammo < params[1]) return SendClientMessage(playerid,CWHITE,"У вас недостаточно патронов");
                SetPVarInt(playerid,"gunoffee",params[0]);
                SetPVarInt(params[0],"gunoffee",params[0]);
                SetPVarInt(params[0],"gunoffer",playerid);
                SetPVarInt(params[0],"gunprice",params[2]);
                SetPVarInt(params[0],"gunammo",params[1]);
                SetPVarInt(params[0],"gunid",weaponid);
                SetPVarInt(params[0],"pxa",ammo);
                new weapname[24];
                GetWeaponName(weaponid,weapname,24);
                SFCM(playerid,CINFO,"Вы предложили {FFFFFF}%s купить у вас {FFFFFF}%s за {FFFFFF}%d рублей. Патронов: {FFFFFF}%d",pData[params[0]][pNickname],weapname,params[2],params[1]);
                SFCM(params[0],CINFO,"%s предложил вам купить {FFFFFF}%s за {FFFFFF}%d рублей. Патронов: {FFFFFF}%d",pData[playerid][pNickname],weapname,params[2],params[1]);
                SendClientMessage(params[0],CGREEN,"{33AAFF}Нажмите {f6ff00}Y {33AAFF}что-бы принять предложение или {c54d13}N {33AAFF}для отказа");
                break;
            }
        }
        if(!full) return SendClientMessage(playerid, COLOR_GREY, "Нужно быть на своей территории");
    }
    return true;

А что бы продавать можно было где угодна, будет так: ( Это вопрос )

CMD:sellgun(playerid, params[])
{
    if(IsAGang(playerid))
    {
                if(sscanf(params, "udd", params[0], params[1], params[2])) return SendClientMessage(playerid, COLOR_RED, "[Информация] {FFFFFF}Используйте: /sellgun [id игрока] [патроны] [Цена]");
                if(!IsPlayerConnected(params[0]) || params[0] == playerid) return SendClientMessage(playerid,CWHITE,"Неверный ID игрока");
                if(GetPlayerDistanceToPlayer(playerid,params[0]) > 3.0 || GetPlayerVirtualWorld(playerid) != GetPlayerVirtualWorld(params[0])) return SendClientMessage(playerid,CWHITE,"Вы далеко друг от друга");
                if(params[2] > 30000 || params[2] < 1) return SendClientMessage(playerid,CWHITE,"Цена должна быть от 1 до 30000.");
                if(params[1] > 150 || params[1] < 1) return SendClientMessage(playerid,CWHITE,"Неверное к-во патронов 1 до 150");
                new weaponid = GetPlayerWeapon(playerid);
                new ammo = GetPlayerAmmo(playerid);
                if(!weaponid) return SendClientMessage(playerid,CWHITE,"Возьмите в руку то оружие, которое хотите продать");
                if(ammo < params[1]) return SendClientMessage(playerid,CWHITE,"У вас недостаточно патронов");
                SetPVarInt(playerid,"gunoffee",params[0]);
                SetPVarInt(params[0],"gunoffee",params[0]);
                SetPVarInt(params[0],"gunoffer",playerid);
                SetPVarInt(params[0],"gunprice",params[2]);
                SetPVarInt(params[0],"gunammo",params[1]);
                SetPVarInt(params[0],"gunid",weaponid);
                SetPVarInt(params[0],"pxa",ammo);
                new weapname[24];
                GetWeaponName(weaponid,weapname,24);
                SFCM(playerid,CINFO,"Вы предложили {FFFFFF}%s купить у вас {FFFFFF}%s за {FFFFFF}%d рублей. Патронов: {FFFFFF}%d",pData[params[0]][pNickname],weapname,params[2],params[1]);
                SFCM(params[0],CINFO,"%s предложил вам купить {FFFFFF}%s за {FFFFFF}%d рублей. Патронов: {FFFFFF}%d",pData[playerid][pNickname],weapname,params[2],params[1]);
                SendClientMessage(params[0],CGREEN,"{33AAFF}Нажмите {f6ff00}Y {33AAFF}что-бы принять предложение или {c54d13}N {33AAFF}для отказа");
                break;
            }
    return true;

Верно?

Share this post


Link to post
Share on other sites

да... (смысл просто задавать вопрос когда можно протестить её за 5 сек...)

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • SCRIPTMAN
      By SCRIPTMAN
      Приветствую.
      Достаточно большое количество времени ищу мод под основу для сервера, останавливался на районе, но как-то не очень. В ютубе смотреть - там сливают такое, что...
      Знаю, что тема с основной заезженная, но всё же, уже 21 год и интересно, что сейчас можно взять?
      И ещё 1: Если у Вас есть хороший мод, не слитый с изменённым названием и парой исправленных багов, Вы готовы предоставить IP для теста, то пишите мне в ВК, с пометкой, что вы по поводу мода и желательно пару скриншотов бы, рассмотрим вариант покупки)
    • SteelPlay
      By SteelPlay
      Добрый вечер. Стоит мод Aurora RP, не могу изменить бонус, строку не могу саму найти. Помогите пожалуйста, что скажете то и скину.