Question

HAPKOMAH
User

Всем привет.

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

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

1 answer to this question

  • 0
MuhammadPawn
Великий Гуру

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

Share this post


Link to post
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

    • Татарников Георгий
      By Татарников Георгий
      🔎 Ищем маппера в проект GTA SA (SA-MP)
      В развивающийся проект GTA San Andreas (SA-MP) требуется маппер.
      🧩 Задачи:
      Создание и доработка карт (интерьеры / экстерьеры)
      Работа с объектами GTA SA
      Оптимизация маппинга под онлайн
      💰 Оплата:
      На первое время — сдельная оплата (за конкретные работы / объекты / зоны)
      В перспективе — переход на фиксированную зарплату при постоянном сотрудничестве
      📌 Требования:
      Опыт маппинга GTA SA (SA-MP)
      Умение работать с Map Editor / MTA Map Editor (или аналогами)
      Понимание оптимизации (объекты, стриминг, FPS)
      Ответственность и соблюдение сроков
      ➕ Будет плюсом:
      Опыт работы в командах
      Портфолио или примеры работ (скрины / видео / .map)
      Идеи и инициативность
      🤝 Мы предлагаем:
      Адекватное ТЗ без «сделай красиво, сам не знаю как»
      Оплату без задержек
      Возможность долгосрочного сотрудничества
      Участие в развитии проекта с нуля
      📩 Связь:
      Пишите в ЛС / Telegram / Discord
      (ТГ @foxune777)
    • Nimalin⁵²
      By Nimalin⁵²
      Всем привет. Я часто использую моды по типу: Adrenaline RP, Russia RP и подобный калл. И из этого говна по выкачке денег, я хотел сделать конфетку, но каждый раз падал лицом в грязь. Начинал я с организаций, так как по мне это самая важная часть на RP серверах. Я бывало хотел создать новую организацию, но не знал как. Полазив в Базе Данных, в моде, я не нашел, как же тут создать фракцию. Поэтому прошу помощи скиньте пожалуйста решение этой задачки.