5 posts in this topic

Здравствуйте уважаемые пользователи . Сегодня я расскажу вам как создать пикап с бонусом.

Спойлер

new FFF;

 

Спойлер

FFF = CreatePickup(ID пикапа,тип пикапа,X,Y,Z, ID виртуального мира пикапа);// Координаты X,Y,Z сменить на свои.

 

Спойлер

if(pickupid == FFF) // Это наше название пикапа, то есть когда мы записывали в переменной FFF значит и название будет FFF.
       { 
          if(PlayerInfo[playerid][pLevel] >= 3) // Это проверка на то что-бы игрок не получил бонус два раза. 
          { 
             SendClientMessage(playerid, COLOR_PURPLE, "Этот бонус только для новичков 1 лвл."); 
             return 1; 
          } 
          SendClientMessage(playerid,0xFFFF00AA,"Вы получили свой бонус!"); 
          SendClientMessage(playerid, COLOR_WHITE, "2.000.000Р."); 
          SendClientMessage(playerid, COLOR_WHITE, "3 LVL."); 
          SendClientMessage(playerid, COLOR_WHITE, "Все лицензии."); 
          PlayerInfo[playerid][pLevel] = 3; // Где 3 это уровень, если хотите уровень больше или меньше меняйте 3 на ваш уровень. 
          GivePlayerMoney(playerid, 2000000);   // 3000000 - это количество денег, которое выдаст вам. 
          PlayerInfo[playerid][pCarLic] = 1; // Лицензия на вождение. 
          PlayerInfo[playerid][pFlyLic] = 1; // Лицензия на воздушный транспорт. 
          PlayerInfo[playerid][pMotoLic] = 1; // Лицензия на мотовождения. 
          PlayerInfo[playerid][pBoatLic] = 1; // Лицензия на водное вождение. 
          PlayerInfo[playerid][pGunLic] = 1; // Лицензия на оружие. 
       } 

 

 

Share this post


Link to post
Share on other sites

у меня ошибки появились:

C:\Users\Admin\Desktop\Sosnovka RolePlay\gamemodes\new.pwn(8727) : error 010: invalid function or declaration
C:\Users\Admin\Desktop\Sosnovka RolePlay\gamemodes\new.pwn(8730) : error 021: symbol already defined: "SetPlayerPosEx"
C:\Users\Admin\Desktop\Sosnovka RolePlay\gamemodes\new.pwn(8735) : error 010: invalid function or declaration
C:\Users\Admin\Desktop\Sosnovka RolePlay\gamemodes\new.pwn(8738) : error 021: symbol already defined: "SetPlayerPosEx"
C:\Users\Admin\Desktop\Sosnovka RolePlay\gamemodes\new.pwn(8738) : warning 215: expression has no effect
C:\Users\Admin\Desktop\Sosnovka RolePlay\gamemodes\new.pwn(8738) : error 001: expected token: ";", but found ")"
C:\Users\Admin\Desktop\Sosnovka RolePlay\gamemodes\new.pwn(8738) : error 010: invalid function or declaration
C:\Users\Admin\Desktop\Sosnovka RolePlay\gamemodes\new.pwn(8738 -- 8741) : fatal error 107: too many error messages on one line
 

КОД:

if(pickupid == meriapick[1]) //
{
    FreezePlayer(playerid, 2000);
    SetPlayerPos(playerid,1822.1139,2095.9165,16.1631);
    SetPlayerFacingAngle(playerid, 269.3459);
    SetPlayerVirtualWorld(playerid, 0);
    SetPlayerInterior(playerid, 0);
}

if(pickupid == shahtapick[0]); //
{
    FreezePlayer(playerid, 2000);
    SetPlayerPos(playerid,2274.0159,1655.3016,-39.9769);
    SetPlayerFacingAngle(playerid,355.0);
}

 

Share this post


Link to post
Share on other sites

Когда игрок взаимодействовал с пикапом, как его удалить?

Share this post


Link to post
Share on other sites

@Lafiho1, в коде обработчика использовать функцию DestroyPickup.

Share this post


Link to post
Share on other sites
11 часов назад, Cawfee сказал:

@Lafiho1, в коде обработчика использовать функцию DestroyPickup.

 

У меня прописан пикап в enum:

enum

{

     PICKUP_GIFTS,

     и тд

}

 

Потом в OnGameModeInit у меня созданан сам пикап:

CreatePickup(1279, 23, 1830.5680, 2527.5647, 15.6639, 0, PICKUP_GIFTS);

 

А вот тут уже само взаимодействие прописано в OnPlayerPickUpPickupEx

case PICKUP_GIFTS:

{

    тут код

    DestroyPickup(PICKUP_GIFTS);

}

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • Chopick
      By Chopick
      Всем здравствуйте! Делаю систему домов/бизнесов по туториалу knox know с плагином GoodArea. Есть проблема, если заходишь в интерьер бизнеса, то когда выходишь спавнит почему-то на пикап дома.

      Вот енумы:
       
      #define MAX_HOUSES 1000 #define MAX_BIZS 1000 enum house {         hID,         STREAMER_TAG_PICKUP:hPICKUP,         STREAMER_TAG_AREA:hAREA,         hOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:hTEXT[256],         STREAMER_TAG_MAP_ICON:hICON,         hPRICE,         hCLASS,         hINTERIOR,         Float:hX,         Float:hY,         Float:hZ,         Float:hA,         hCONDITION // Закрыт/Открыт } new House[MAX_HOUSES][house]; new Houses; new HouseGroup; enum biz {         bID,         STREAMER_TAG_PICKUP:bPICKUP,         STREAMER_TAG_AREA:bAREA,         bOWNER[MAX_PLAYER_NAME],         STREAMER_TAG_3D_TEXT_LABEL:bTEXT[256],         STREAMER_TAG_MAP_ICON:bICON,         bNAME[25],         bPRICE,         bTYPE,         bINTERIOR,         Float:bX,         Float:bY,         Float:bZ,         Float:bA } new Biz[MAX_BIZS][biz]; new Bizs; new BizGroup; enum interior_info {         intID,         intNAME[41],         intINTERIOR,         Float:intX,         Float:intY,         Float:intZ,         Float:intA,         STREAMER_TAG_AREA:intAREA } new Interior[MAX_INTERIORS][interior_info]; new Interiors; new InteriorGroup; Вот что у меня в OnGameModeInit:
      HouseGroup = CreateGroupGoodAreas(GoodArea:HouseEnter); InteriorGroup = CreateGroupGoodAreas(GoodArea:InteriorExit); BizGroup = CreateGroupGoodAreas(GoodArea:BizArea);  
      Вот стоки:
      GAResponse:HouseEnter(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                 if(House[index][hCONDITION] > 0 && House[index][hOWNER] == player_info[playerid][NAME] || House[index][hCONDITION] == 0)                 {                                         GoToInterior(playerid, House[index][hINTERIOR]);                                         SetPlayerVirtualWorld(playerid, index);                                 }                                 else if(House[index][hCONDITION] > 0 && House[index][hOWNER] != player_info[playerid][NAME]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Этот дом закрыт на ключ!");                         }                 }                 case GA_RESPONSE_ENTER:                 {                     if(House[index][hOWNER] == 0)                     {                         CreateNoOwnerHouseTD(playerid);                         for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                         {                             PlayerTextDrawShow(playerid, NoOwnerTextDraw_PTD[playerid][i]);                                 }                                 new price[8];                                 format(price, sizeof(price), "%d$", House[index][hPRICE]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][2], price);                                 new id[9];                                 format(id, sizeof(id), "%d", House[index][hID]);                                 PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][0], id);                                 switch(House[index][hCLASS])                                 {                                     case 1: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "A");                                     case 2: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "B");                                     case 3: PlayerTextDrawSetString(playerid, NoOwnerTextDraw_PTD[playerid][1], "C");                                 }                                 for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                         {                             TextDrawShowForPlayer(playerid, NoOwnerTextDraw_TD[i]);                                 }                         }                 }                 case GA_RESPONSE_LEAVE:                 {                 for(new i = 0; i < sizeof NoOwnerTextDraw_PTD[]; i++)                 {                     PlayerTextDrawHide(playerid, NoOwnerTextDraw_PTD[playerid][i]);                         }                         for(new i = 0; i < sizeof NoOwnerTextDraw_TD; i++)                 {                     TextDrawHideForPlayer(playerid, NoOwnerTextDraw_TD[i]);                         }                 }         }         return 1; } GAResponse:BizArea(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 if(key & KEY_WALK)                 {                     GoToInteriorBiz(playerid, Biz[index][bINTERIOR]);                                 SetPlayerVirtualWorld(playerid, index);                 }                 }         }         return 1; } GAResponse:InteriorExit(playerid, response, key, index) {         switch(response)         {             case GA_RESPONSE_PRESS_KEY:             {                 new world = GetPlayerVirtualWorld(playerid);                 if(key & KEY_WALK)                 {                     if(world < MAX_HOUSES)                     {                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, House[world][hX], House[world][hY], House[world][hZ]);                             SetPlayerFacingAngle(playerid, House[world][hA]);                                 }                                 else if(world < MAX_HOUSES + MAX_BIZS)                     {                         world -= MAX_HOUSES;                                         printf("%d index world", world);                         SetPlayerInterior(playerid, 0);                             SetPlayerVirtualWorld(playerid, 0);                             SetPlayerPos(playerid, Biz[world][bX], Biz[world][bY], Biz[world][bZ]);                             SetPlayerFacingAngle(playerid, Biz[world][bA]);                                 }                         }                         if(key & KEY_CTRL_BACK)                         {                             if(player_info[playerid][HOUSE] != House[world][hID]) return SCM(playerid, COLOR_RED, "[Ошибка]{ffffff}Вы не владелец данного дома!");                             new dialog[256];                                 format(dialog, sizeof(dialog),                                         "{ffd900}[1]{ffffff}Информация о доме\n\                                         {ffd900}[2]{ffffff}%s дом",                                 (House[world][hCONDITION] == 1) ? ("{00ff00}Открыть") : ("{ff0000}Закрыть"));                             SPD(playerid, DLG_HMENU, DIALOG_STYLE_LIST, "{ffd900}Меню дома", dialog, "Выбрать", "Закрыть");                             return 1;                         }                 }         }         return 1; } stock GoToInterior(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода\n\                         Нажмите \"H\", чтобы открыть меню дома");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; } stock GoToInteriorBiz(playerid, interior) {     for(new i = 0; i < Interiors; i++)         {             if(Interior[i][intID] != interior) continue;             SetPlayerInterior(playerid, Interior[i][intINTERIOR]);             SetPlayerPos(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ]);             SetPlayerFacingAngle(playerid, Interior[i][intA]);             SetPlayerCheckpoint(playerid, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 1.0);             new str[128];             format(str, sizeof(str),                         "Нажмите \"ALT\" для выхода");             Create3DTextLabel(str, -1, Interior[i][intX], Interior[i][intY], Interior[i][intZ], 15.0, 0, 1);             return 1;         }         return 0; }  
       
      Что мне делать, подскажите пожалуйста?