[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
создание [ gf ][ Простенький тайник ]
Дата: 07.05.2011, Суббота, 09:25:41 | Сообщение # $NUMBER
Группа: Гл. Модераторы
Сообщений: 220
Репутация: 253+
FFFUUU
Представляю вашему вниманию, тайник в который игрок может класть деньги\материалы\наркотики
Код подойдёт для GameModels:Gf, Larp ну и их модефикаций.

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

Начнём:

1) Ищем строчку enum pInfoи добавляем:

Code
ptMoney,  
ptDrugs,  
ptMats,

2) Ищем public OnPlayerConnect и добавляем:

Code
PlayerInfo[playerid][ptMoney] = 0;  
PlayerInfo[playerid][ptDrugs] = 0;  
PlayerInfo[playerid][ptMats] = 0;

3) Ищем public OnPlayerRegister и добавляем:

Code
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 или как то по другому туда добавляем:

Code
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 и добавляем:

Code
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 и добавляем команды:

Code
   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 и добавляем:

Code
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);// Пикап так же вставьте свои кординаты

Автор: Kseon

  • Страница 1 из 1
  • 1
Поиск: