[Урок]: Создание военкоматa. (копия Рустама) - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: Phoenixxx_Czar, Getbackthere, [CM]OlegEhtler  
[Урок]: Создание военкоматa. (копия Рустама)
TTaKeMoWa Дата: Среда, 06.06.2012, 11:21 | Сообщение # 1
Боец
Сообщений: 118
Статус: Offline
Призыв проходит следующим образом:
После оглашения о призыве в Государственные Новости призывник приезжает в здание военкомата, для прохода всех необходимых процедур. Для более детального медицинского осмотра была добавлена раздевалка. Далее генерал или его заместитель решают, принять или не принять призывника в ряды своей Армии. Чтобы переодеться в форму, призывнику необходимо воспользоваться раздевалкой в военкомате.

Пожалуй начнём.

1. В enum pInfo добавим, которая будет обозначать у нас пригласительный листок в Армию и сохранятся в файл аккаунта.
Code
pVoenik


2. Ко всем new добавим 2 пикапа:
Code
new Voenik;  
new Voenik1;  


3.Дальше в public OnPlayerDisconnect сразу добавим следующие:
Code
  PlayerInfo[playerid][pVoenik] = 0;


4. В public OnGameModeInit добавляем 2 пикапа:
Code
     Voenik = CreatePickup(1275,2,1167.6565,1346.9349,10.9219);//Voenkomat ( отправка ) SFA  
     Voenik1 = CreatePickup(1275,2,1165.3510,1346.6511,10.9219);//Voenkomat ( отправка ) LVA  


5.Теперь в public OnPlayerRegister добавим следующее:
Code
ini_setInteger(File,"Voenik",PlayerInfo[playerid][pVoenik]);


6. public OnPlayerUpdateRL или рublic OnPlayerUpdate:
Code

ini_setInteger(File,"Voenik",PlayerInfo[playerid][pVoenik]);


7. В public OnPlayerLogin добавляем:
Code

ini_getInteger(File,"Voenik",PlayerInfo[playerid][pVoenik]);


Продолжение следует...

Добавлено (06.06.2012, 11:21)
---------------------------------------------
8. Теперь зададим функцию пикапам, которые мы обозначили раньше в public OnPlayerPickUpPickup вставляем:

Quote

if(pickupid == Voenik)
{
new invite[512];
if(PlayerInfo[playerid][pVoenik] == 0)
{
SendClientMessage(playerid,COLOR_RED, "У Вас нет пропуска!");
return true;
}
if(PlayerInfo[playerid][pVoenik] == 2)
{
SendClientMessage(playerid,0xFFFFFFAA, "Вы ошиблись раздевалкой!");
return true;
}
format(invite,sizeof(invite), "Вы действительно хотите начать службу в {008000}Армии SF \'Авианосец\'?\n{ffffff}\t\tПодтвердите свой выбор!");
ShowPlayerDialog(playerid,74,DIALOG_STYLE_MSGBOX,"<< Приглашение >>",invite, "Да", "Нет");
}
if(pickupid == Voenik1)
{
new invite[512];
if(PlayerInfo[playerid][pVoenik] != 2)
{
SendClientMessage(playerid,COLOR_RED, "У вас нет пропуска!");
return true;
}
if(PlayerInfo[playerid][pVoenik] == 1)
{
SendClientMessage(playerid,0xFFFFFFAA, "Вы ошиблись раздевалкой!");
return true;
}
format(invite,sizeof(invite), "Вы действительно хотите начать службу в {008000}Армии LV \'Зона 51\'?\n{ffffff}\t\tПодтвердите свой выбор!");
ShowPlayerDialog(playerid,75,DIALOG_STYLE_MSGBOX,"<< Приглашение >>",invite, "Да", "Нет");
}


9. В public OnDialogResponse добавим функцию диалогам:

Code

         case 75://LVa  
             {  
                 if(response)  
                 {  
                     SetPlayerSkin(playerid,287);  
                     PlayerInfo[playerid][pMember] = 19;  
                     PlayerInfo[playerid][pRank] = 1;  
                     SendClientMessage(playerid, COLOR_REDD, "Используйте клавишу 'Быстрый бег' (пробел по умолчанию)");  
                     SendClientMessage(playerid, COLOR_REDD, "Используйте клавишу 'Вверх,вниз' (W,S по умолчанию)");  
                     SendClientMessage(playerid, COLOR_GRAD1, "Если Вы случайно нажали 'Enter' и меню пропало, нажмите 'Enter' еще раз");  
                     SetPlayerInterior(playerid,3);  
                     ShowMenuForPlayer(ChoseSkin,playerid);  
                     new rand = random(sizeof(gInviteSpawnsss));  
                     SetPlayerPos(playerid, gInviteSpawnsss[rand][0], gInviteSpawnsss[rand][1], gInviteSpawnsss[rand][2]); // Warp the player  
                     SetPlayerFacingAngle(playerid, gInviteSpawnsss[rand][3]);  
                     SetPlayerCameraPos(playerid,gInviteSpawnsss[rand][0] + 3, gInviteSpawnsss[rand][1], gInviteSpawnsss[rand][2]);  
                     SetPlayerCameraLookAt(playerid,gInviteSpawnsss[rand][0], gInviteSpawnsss[rand][1], gInviteSpawnsss[rand][2]);  
                     TogglePlayerControllable(playerid, 0);  
                     SelectChar[playerid] = 255;  
                     PlayerInfo[playerid][pJob] = 0;  
                     SelectCharID[playerid] = 19;  
                     SelectCharPlace[playerid] = 1;  
                     PlayerInfo[playerid][pModel] = 287;  
                     PlayerInfo[playerid][pVoensik] = 0;  
                     new skin =2 + random(100);  
                     SetPlayerVirtualWorld(playerid,skin);  
                     OnPlayerUpdateRL(playerid);  
                     return true;  
                 }  
                 else  
                 {  
                     return true;  
                 }  
             }  
         case 74://SFA  
             {  
                 if(response)  
                 {  
                     SetPlayerSkin(playerid,287);  
                     PlayerInfo[playerid][pMember] = 3;  
                     PlayerInfo[playerid][pRank] = 1;  
                     SendClientMessage(playerid, COLOR_REDD, "Используйте клавишу 'Быстрый бег' (пробел по умолчанию)");  
                     SendClientMessage(playerid, COLOR_REDD, "Используйте клавишу 'Вверх,вниз' (W,S по умолчанию)");  
                     SendClientMessage(playerid, COLOR_GRAD1, "Если Вы случайно нажали 'Enter' и меню пропало, нажмите 'Enter' еще раз");  
                     SetPlayerInterior(playerid,3);  
                     ShowMenuForPlayer(ChoseSkin,playerid);  
                     new rand = random(sizeof(gInviteSpawnsss));  
                     SetPlayerPos(playerid, gInviteSpawnsss[rand][0], gInviteSpawnsss[rand][1], gInviteSpawnsss[rand][2]); // Warp the player  
                     SetPlayerFacingAngle(playerid, gInviteSpawnsss[rand][3]);  
                     SetPlayerCameraPos(playerid,gInviteSpawnsss[rand][0] + 3, gInviteSpawnsss[rand][1], gInviteSpawnsss[rand][2]);  
                     SetPlayerCameraLookAt(playerid,gInviteSpawnsss[rand][0], gInviteSpawnsss[rand][1], gInviteSpawnsss[rand][2]);  
                     TogglePlayerControllable(playerid, 0);  
                     SelectChar[playerid] = 255;  
                     PlayerInfo[playerid][pJob] = 0;  
                     SelectCharID[playerid] = 3;  
                     SelectCharPlace[playerid] = 1;  
                     PlayerInfo[playerid][pVoensik] = 0;  
                     PlayerInfo[playerid][pModel] = 287;  
                     new skin =2 + random(100);  
                     SetPlayerVirtualWorld(playerid,skin);  
                     OnPlayerUpdateRL(playerid);  
                     return true;  
                 }  
                 else  
                 {  
                     return true;  
                 }  
             }


10.Теперь добавим команду выдачи приглашения:

Code
  
     if(strcmp(cmd, "/giveinvite", true) == 0)  
     {  
         new para1;  
         if(IsPlayerConnected(playerid))  
         {  
             tmp = strtok(cmdtext, idx);  
             if(!strlen(tmp)) return    SendClientMessage(playerid, COLOR_GRAD2, "Введите: /giveinvit [id]");  
             para1 = ReturnUser(tmp);  
             if (!PlayerToPoint(20.0,playerid,1173.5294,1346.7789,10.9219)) return SendClientMessage(playerid, COLOR_GREY, "{FF3200} ! {FEFEFE} - Вы не в военкомате!");  
             if (PlayerInfo[playerid][pLeader] == 3 || PlayerInfo[playerid][pMember] == 3 && PlayerInfo[playerid][pRank] == 15)  
             {  
                 if(IsPlayerConnected(para1))  
                 {  
                     if(para1 != INVALID_PLAYER_ID)  
                     {  
                         if (PlayerInfo[para1][pMember] != 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок уже где то состоит");  
                         if (PlayerInfo[para1][pVoenik] != 0) return SendClientMessage(playerid, COLOR_GREY, "У игрока уже есть приглашение");  
                         if (!PlayerToPoint(20.0,para1,1173.5294,1346.7789,10.9219)) return SendClientMessage(playerid, COLOR_GREY, "Человек не в военкомате!");  
                         if(PlayerInfo[para1][pWarns] >= 1) return SendClientMessage(playerid, COLOR_GRAD1,"У игрока Warn.");  
                         GetPlayerName(para1, giveplayer, sizeof(giveplayer));  
                         GetPlayerName(playerid, sendername, sizeof(sendername));  
                         format(string,sizeof(string), "выдал(а) повестку %s'у",para1);  
                         SetPlayerChatBubble(playerid,string,COLOR_PURPLE,30.0,10000);  
                         format(string, sizeof(string), "%s выдал(а) повестку %s'у", sendername ,para1);  
                         ProxDetector(10.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);  
                         format(string, sizeof(string), "Вы выдали повестку %s.", giveplayer);  
                         SendClientMessage(playerid, COLOR_BLUE, string);  
                         PlayerInfo[para1][pVoenik] = 1;  
                         new year,month,day;  
                         getdate(year, month, day);  
                         SendClientMessage(para1, COLOR_YEGURT, "======[ Повестка в Армию SF ]======");  
                         SendClientMessage(para1, COLOR_WHITE, "Вы получили повестку в {008000}Армию SF 'Авианосец'");  
                         SendClientMessage(para1, COLOR_WHITE, "Пройдите к раздевалке");  
                         format(string, sizeof(string),"====== Выдал: {ffffff}%s {8080ff}Число: {FFFFFF}%d.%d.%d ======", sendername,day,month,year);  
                         SendClientMessage(para1, COLOR_YEGURT, string);  

                     }  
                  }  
             }  
             else if (PlayerInfo[playerid][pLeader] == 19 || PlayerInfo[playerid][pMember] == 19 && PlayerInfo[playerid][pRank] == 15)  
             {  
                 if(IsPlayerConnected(para1))  
                 {  
                     if(para1 != INVALID_PLAYER_ID)  
                     {  
                         if (PlayerInfo[para1][pMember] != 0) return SendClientMessage(playerid, COLOR_GREY, "Игрок уже где то состоит");  
                         if (PlayerInfo[para1][pVoenik] != 0) return SendClientMessage(playerid, COLOR_GREY, "Y  игрока уже есть приглашение");  
                         if (!PlayerToPoint(20.0,para1,1173.5294,1346.7789,10.9219)) return SendClientMessage(playerid, COLOR_GREY, "Человек не в военкомате!");  
                         if(PlayerInfo[para1][pWarns] >= 1) return SendClientMessage(playerid, COLOR_GRAD1,"У игрока Warn.");  
                         GetPlayerName(para1, giveplayer, sizeof(giveplayer));  
                         GetPlayerName(playerid, sendername, sizeof(sendername));  
                         format(string,sizeof(string), "выдал(а) повестку %s'у",para1);  
                         SetPlayerChatBubble(playerid,string,COLOR_PURPLE,30.0,10000);  
                         format(string, sizeof(string), "%s выдал(а) повестку %s'у", sendername ,para1);  
                         ProxDetector(10.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);  
                         format(string, sizeof(string), "Вы выдали повестку %s.", giveplayer);  
                         SendClientMessage(playerid, COLOR_BLUE, string);  
                         PlayerInfo[para1][pVoenik] = 2;  
                         new year, month,day;  
                         getdate(year, month, day);  
                         SendClientMessage(para1, COLOR_YEGURT, "======[ Повестка в Армию LV ]======");  
                         SendClientMessage(para1, COLOR_WHITE, "Вы получили повестку в {008000}Армию LV 'Зона 51'");  
                         SendClientMessage(para1, COLOR_WHITE, "Пройдите к раздевалке");  
                         format(string, sizeof(string),"====== Выдал: {ffffff}%s {8080ff}Число: {FFFFFF}%d.%d.%d ======", sendername,day,month,year);  
                         SendClientMessage(para1, COLOR_YEGURT, string);  
                     }  
                 }  
             }  
             else  
             {  
                 SendClientMessage(playerid, COLOR_GRAD1, "Вы не уполномочены использовать эту команду!");  
                 return true;  
             }  
             return true;  
         }  
         else  
         {  
             SendClientMessage(playerid, COLOR_GREY, "Игрок не найден!");  
             return true;  
         }  
     }  


11. Добавим нужные 3dtext в public OnGameModeInit:
Code
  
     Create3DTextLabel("Раздевалка принадлежит:\n {008000}Армии SF 'Авианосец'",0xFFFFFFFFF,1167.6565,1346.9349,10.9219,10.0,0,0);  
     Create3DTextLabel("Раздевалка принадлежит:\n {008000}Армии LV 'Зона 51'",0xFFFFFFFFF,1165.3510,1346.6511,10.9219,10.0,0,0);  
     Create3DTextLabel("Военный осмотр",0xFFFFFFFFF,1174.2035,1354.4834,10.9219,10.0,0,0);  
     Create3DTextLabel("Приемная генерала",0xFFFFFFFFF,1173.3198,1348.3237,10.9219,10.0,0,0);  
     Create3DTextLabel("Медицинский осмотр",0xFFFFFFFFF,1174.2035,1358.4862,10.9219,10.0,0,0);  
     Create3DTextLabel("Используйте - \'ALT\'",0x696969FF,1172.1096,1357.7673,10.9219,2.0,0,0);  
     Create3DTextLabel("Для выдачи пропуска используйте \n/giveinvite [ID]",0x696969FF,1173.5294,1346.7789,10.9219,5.0,0,0);  
     Create3DTextLabel("  Военкомат   ",0x9500FFFF,1168.6603,1363.4364,10.8203,17.0,0,0);  


12. Теперь в public OnPlayerKeyStateChange:
Code

     if(newkeys == 1024 && PlayerToPoint(1.0,playerid,1172.1096,1357.7673,10.9219))  
     {  
          if(PlayerInfo[playerid][pNarcoZavisimost] > 2000)  
          {  
              SendClientMessage(playerid,0xFF0000AA,"Вы наркозависимы!\nПроконсультируйтесь с доктором!");  
               return true;  
           }  
           if(PlayerInfo[playerid][pNarcoZavisimost] <= 2000)  
           {  
              SendClientMessage(playerid,COLOR_WHITE,"Поздравляю! Наркотической зависимости не обнаружено!");  
               return true;  
           }  
      }

13. Последний пункт, это нужные обьекты в военкомате, добовляем куда-нибудь в конец мода:

Code

CreateObject(1256,1172.18359375,1363.69702148,10.54026318,0.00000000,0.00000000,270.00000000); //object(stonebench1) (1)
  CreateObject(1722,1164.41674805,1353.98486328,9.89999962,0.00000000,1.50000000,264.50000000); //object(off_chairnu) (1)
  CreateObject(1722,1164.40625000,1353.23876953,9.89999962,0.00000000,0.00000000,270.00000000); //object(off_chairnu) (2)
  CreateObject(1722,1164.40625000,1352.56677246,9.89999962,0.00000000,0.00000000,270.00000000); //object(off_chairnu) (3)
  CreateObject(1722,1164.40625000,1351.32885742,9.89999962,0.00000000,0.00000000,270.00000000); //object(off_chairnu) (4)
  CreateObject(1722,1164.40625000,1351.94079590,9.89999962,0.00000000,0.00000000,270.00000000); //object(off_chairnu) (5)
  CreateObject(1722,1164.84094238,1350.15783691,9.92187500,0.00000000,1.99951172,264.49584961); //object(off_chairnu) (6)
  CreateObject(2615,1167.26318359,1356.01489258,11.50426006,0.00000000,0.00000000,89.75000000); //object(police_nb3) (1)
  CreateObject(2614,1171.39904785,1345.80944824,11.87487602,0.00000000,0.00000000,180.00000000); //object(cj_us_flag) (1)
  CreateObject(1622,1175.55468750,1348.79248047,15.08916283,0.00000000,0.00000000,270.00000000); //object(nt_securecam2_01) (1)
  CreateObject(2387,1170.57910156,1346.19287109,9.92187500,0.00000000,0.00000000,0.00000000); //object(shop_set_2_unit5) (1)
  CreateObject(2894,1173.51342773,1347.46093750,10.72346497,0.00000000,0.00000000,0.00000000); //object(kmb_rhymesbook) (1)
  CreateObject(2106,1172.69506836,1347.66015625,10.72346497,0.00000000,0.00000000,0.00000000); //object(cj_mlight15) (1)
  CreateObject(3022,1179.73693848,1349.49230957,11.88554382,0.00000000,0.00000000,0.00000000); //object(target_rarm) (1)
  CreateObject(2002,1175.09765625,1350.03710938,9.92187500,0.00000000,0.00000000,270.00000000); //object(water_coolnu) (1)
  CreateObject(711,1174.90722656,1363.32543945,15.79760361,0.00000000,0.00000000,0.00000000); //object(vgs_palm02) (1)
  CreateObject(1409,1157.44506836,1363.56176758,9.82031250,0.00000000,0.00000000,0.00000000); //object(cj_dump1_low) (1)
  CreateObject(3504,1159.40258789,1384.78527832,11.16267586,0.00000000,0.00000000,180.00000000); //object(vgsn_portaloo) (1)
  CreateObject(19121,1167.62194824,1363.33996582,10.38500023,0.00000000,0.00000000,0.00000000); //object(bollardlight1) (1)


На этом все. Автор данного мануала - Niko Vincente.


[img]http://cheat-master.ru/_fr/1/9873422.png[/img]
[CM]FCDK Дата: Воскресенье, 24.06.2012, 00:55 | Сообщение # 2
Новичок
Сообщений: 16
Статус: Offline
спаасибо лови + давно это искал
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7210]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
cheatjopa2 [11:58]

gabitovismaismaisma [09:18]

Gotham_ws [03:45]

раре [02:58]

Epiphonexmr [02:38]

ksuexe [01:35]

petrusenko_t [23:29]

shanepk60 [21:19]

chadaevvo18 [19:34]

zazik965mb [17:41]

AndreSR [16:49]

funovv [20:46]

Dizelmotnik [11:22]