Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Тайник

Статус
В этой теме нельзя размещать новые ответы.

bigbox

Ученик
Представляю вашему вниманию, тайник в который игрок может класть деньги\материалы\наркотики

Код обязательно надо вписать в мод.

Начнём:
1) Ищем строчку enum pInfo и добавляем:
PHP:
ptMoney,
ptDrugs,
ptMats,
2) Ищем public OnPlayerConnect и добавляем:
PHP:
PlayerInfo[playerid][ptMoney] = 0;
PlayerInfo[playerid][ptDrugs] = 0;
PlayerInfo[playerid][ptMats] = 0;
3) Ищем public OnPlayerRegister и добавляем:
PHP:
format(var, 32, "TanikMoney=%d\n",PlayerInfo[playerid][ptMoney]);fwrite(hFile, var);
format(var, 32, "TanikDrugs=%d\n",PlayerInfo[playerid][ptDrugs]);fwrite(hFile, var);
format(var, 32, "TanikMats=%d\n",PlayerInfo[playerid][ptMats]);fwrite(hFile, var);
4) После public OnPlayerRegister есть public SavePlayer у меня он называеться так у некоторых может называться public OnPlayerUpdate_GF или как то по другому туда добавляем
PHP:
format(var, 32, "TanikMoney=%d\n",PlayerInfo[playerid][ptMoney]);fwrite(hFile, var);
format(var, 32, "TanikDrugs=%d\n",PlayerInfo[playerid][ptDrugs]);fwrite(hFile, var);
format(var, 32, "TanikMats=%d\n",PlayerInfo[playerid][ptMats]);fwrite(hFile, var);
5) Ищем public OnPlayerLogin и добавляем:
PHP:
if( strcmp( key , "TanikMoney" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][ptMoney] = strval( val ); }
if( strcmp( key , "TanikDrugs" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][ptDrugs] = strval( val ); }
if( strcmp( key , "TanikMats" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][ptMats] = strval( val ); }
6) Ищем public OnPlayerCommandText и добавляем команды
PHP:
if(strcmp(cmd, "/tinfo", true) == 0)// Команда показывает что лежит в тайнике
    {
        if(IsPlayerConnected(playerid))
        {
             if(PlayerToPoint(5.0,playerid,539.8622,-506.1435,25.5234))// кординаты заменяйте на свои
           {
               SendClientMessage(playerid,COLOR_YELLOW,"*** Тайник ***");
               format(string,sizeof(string),"Деньги: %d$",PlayerInfo[playerid][ptMoney]);
               SendClientMessage(playerid,COLOR_WHITE,string);
               format(string,sizeof(string),"Наркотики: %d",PlayerInfo[playerid][ptDrugs]);
               SendClientMessage(playerid,COLOR_WHITE,string);
               format(string,sizeof(string),"Материалы: %d",PlayerInfo[playerid][ptMats]);
               SendClientMessage(playerid,COLOR_WHITE,string);
           }
        }
        return 1;
    }
    if(strcmp(cmd, "/tgive", true) == 0)// Командой класть вещи в тайник
    {
        if(IsPlayerConnected(playerid))
        {
            new x_job[256];
            x_job = strtok(cmdtext, idx);
            if(!strlen(x_job))
            {
                SendClientMessage(playerid, COLOR_WHITE, "|__________________ Положить в тайник __________________|");
                SendClientMessage(playerid, COLOR_WHITE, "Используйте: /tgive [Название] [Кол-во]");
                SendClientMessage(playerid, COLOR_GREY, "Доступно: money, drugs, mats");
                SendClientMessage(playerid, COLOR_WHITE, "|____________________________________________|");
                return 1;
            }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /tgive [Название] [Кол-во]");
                return 1;
            }
            new kolvo = strval(tmp);
            if(PlayerToPoint(5.0,playerid,539.8622,-506.1435,25.5234))// кординаты заменяйте на свои
            {
               if(strcmp(x_job,"money",true) == 0)
               {
                  if(kolvo > GetPlayerMoney(playerid))
                  {
                     SendClientMessage(playerid,COLOR_GREY,"У тебя нет такой суммы.");
                     return 1;
                  }
                  format(string,sizeof(string),"Вы положили %d$ в тайник",kolvo);
                  SendClientMessage(playerid,COLOR_WHITE,string);
                  PlayerInfo[playerid][ptMoney] += kolvo;
                  GivePlayerMoney(playerid,-kolvo);// ваша переменная на получение денег
               }
               else if(strcmp(x_job,"drugs",true) == 0)
               {
                  if(kolvo > PlayerInfo[playerid][pDrugs])
                    {
                     SendClientMessage(playerid,COLOR_GREY,"У тебя нет столько наркотиков.");
                     return 1;
                  }
                  format(string,sizeof(string),"Вы положили %d грам наркоты в тайник",kolvo);
                  SendClientMessage(playerid,COLOR_WHITE,string);
                  PlayerInfo[playerid][ptDrugs] += kolvo;
                  PlayerInfo[playerid][pDrugs] -= kolvo;
               }
               else if(strcmp(x_job,"mats",true) == 0)
               {
                  if(kolvo > PlayerInfo[playerid][pMats])
                  {
                     SendClientMessage(playerid,COLOR_GREY,"У тебя нет столько материалов.");
                     return 1;
                  }
                  format(string,sizeof(string),"Вы положили %d материалов в тайник",kolvo);
                  SendClientMessage(playerid,COLOR_WHITE,string);
                  PlayerInfo[playerid][ptMats] += kolvo;
                  PlayerInfo[playerid][pMats] -= kolvo;
               }
            }
        }
        return 1;
    }
    if(strcmp(cmd, "/ttake", true) == 0)// Командой брать вещи из тайника
    {
        if(IsPlayerConnected(playerid))
        {
            new x_job[256];
            x_job = strtok(cmdtext, idx);
            if(!strlen(x_job))
            {
                SendClientMessage(playerid, COLOR_WHITE, "|__________________ Взять из тайника __________________|");
                SendClientMessage(playerid, COLOR_WHITE, "Используйте: /ttake [Название] [Кол-во]");
                SendClientMessage(playerid, COLOR_GREY, "Доступно: money, drugs, mats");
                SendClientMessage(playerid, COLOR_WHITE, "|____________________________________________|");
                return 1;
            }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /ttake [Название] [Кол-во]");
                return 1;
            }
            new kolvo = strval(tmp);
            if(PlayerToPoint(5.0,playerid,539.8622,-506.1435,25.5234))// кординаты заменяйте на свои
            {
               if(strcmp(x_job,"money",true) == 0)
               {
                  if(kolvo >  PlayerInfo[playerid][ptMoney])
                  {
                     SendClientMessage(playerid,COLOR_GREY,"У тебя в хранилище нет такой суммы.");
                     return 1;
                  }
                  format(string,sizeof(string),"Вы взяли %d$ из тайника",kolvo);
                  SendClientMessage(playerid,COLOR_WHITE,string);
                  PlayerInfo[playerid][ptMoney] -= kolvo;
                  GivePlayerMoney(playerid,kolvo);// ваша переменная на дачю денег
               }
               else if(strcmp(x_job,"drugs",true) == 0)
               {
                  if(kolvo > PlayerInfo[playerid][ptDrugs])
                   {
                     SendClientMessage(playerid,COLOR_GREY,"У тебя в хранилище нет столько наркотиков.");
                     return 1;
                  }
                  format(string,sizeof(string),"Вы взяли %d грам наркоты из тайника",kolvo);
                  SendClientMessage(playerid,COLOR_WHITE,string);
                  PlayerInfo[playerid][ptDrugs] -= kolvo;
                  PlayerInfo[playerid][pDrugs] += kolvo;
               }
               else if(strcmp(x_job,"mats",true) == 0)
               {
                  if(kolvo > PlayerInfo[playerid][ptMats])
                   {
                     SendClientMessage(playerid,COLOR_GREY,"У тебя в хранилище нет столько материалов.");
                     return 1;
                  }
                  format(string,sizeof(string),"Вы взяли %d материалов из тайника",kolvo);
                  SendClientMessage(playerid,COLOR_WHITE,string);
                  PlayerInfo[playerid][ptMats] -= kolvo;
                  PlayerInfo[playerid][pMats] += kolvo;
               }
            }
        }
        return 1;
    }
7) Ну и для красоты ищем public OnGameModeInit и добавляем:
PHP:
Create3DTextLabel("[Тайник]\nИспользуйте /tgive что бы положить в тайник\nИспользуйте /ttake что бы забрать из тайника\nИспользуйте /tinfo информация о тайнике",0x0000FFAA,539.8622,-506.1435,25.5234,40.0,0, 1);// Текст так же вставьте свои кординаты
AddStaticPickup(1239, 1, 539.8622,-506.1435,25.5234);// Пикап так же вставьте свои кординаты
автор не я
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу