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

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

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

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

Аптека v2.0 + Автомобильные аптечки [ALL]

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

Alan_Waket

Умник
Автор: Alan_Waket

На мэрии расположено здание ( аптека ), там можно купить аптечку и использовать ее в машине или пополнить себе хп, если по близости нет врачей.


Ко всем new добавим переменную:

PHP:
new apteka[4];
в public OnPlayerPickUpPickup(playerid, pickupid) добавим:

PHP:
	else if(pickupid == apteka[0]) //вход
	{
		SetPlayerInterior(playerid, 1);
		SetPlayerPos(playerid, -2170.5815,638.9775,1052.3750);
		SetPlayerFacingAngle(playerid, 3.5299);
		GameTextForPlayer(playerid, "~r~ Apteka", 2000, 1);
		return 1;
	}
	else if(pickupid == apteka[1]) //выход
	{
		SetPlayerInterior(playerid, 0);
		SetPlayerPos(playerid, 1481.3577,-1707.7793,14.0469);
		SetPlayerFacingAngle(playerid, 272.4807);
	}
	else if(pickupid == apteka[2])
	{
	   new listitems[] = "{FFFFFF}[1] Витаминка ( 20 Вирт )\n[2] Пустышка ( 10 Вирт )\n[3] Активированный уголь ( 15 Вирт )\n[4] Парацетамол ( 100 Вирт )\n[5] Пивные дрожжи ( 180 Вирт )\n[6] Антибиотики ( 320 Вирт )\n[7] Автомобильная аптечка ( 700 )";
	   ShowPlayerDialog(playerid,5522,DIALOG_STYLE_LIST,"{66CDAA}Аптека",listitems,"Купить","Закрыть");
	}
	else if(pickupid == apteka[3])
	{
	   new listitems[] = "{FFFFFF}[1] Витаминка ( 20 Вирт )\n[2] Пустышка ( 10 Вирт )\n[3] Активированный уголь ( 15 Вирт )\n[4] Парацетамол ( 100 Вирт )\n[5] Пивные дрожжи ( 180 Вирт )\n[6] Антибиотики ( 320 Вирт )\n[7] Автомобильная аптечка ( 700 )";
	   ShowPlayerDialog(playerid,5522,DIALOG_STYLE_LIST,"{66CDAA}Аптека",listitems,"Купить","Закрыть");
	}
В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])

HTML:
	case 5522:
     {
     if(response)
         {
        if(listitem == 0)
            {
               if(PlayerInfo[playerid][pHP] <=80)
			   {
			   if(PlayerInfo[playerid][pCash] < 20) return SendClientMessage(playerid, COLOR_GREY, "{ADAEAD}У вас нет столько денег на руках!");
			   new Float:health;
			   GetPlayerHealth(playerid,health);
	           SetPlayerHealthAC(playerid, health + 5.0);
               PlayerInfo[playerid][pCash] -= 20;
               PlayerInfo[playerid][pHP] += 20;
               FracBank[0][fKazna] +=20;
               SendClientMessage(playerid,0xF60000AA,"{FFFFFF}Спасибо за покупку! Не болейте");
               }
               else
               {
               SendClientMessage(playerid,COLOR_WHITE,"Вы не нуждаетесь в лечении");
			   return 1;
               }
            }
        if(listitem == 1)
            {
               if(PlayerInfo[playerid][pHP] <=90)
			   {
			   if(PlayerInfo[playerid][pCash] < 10) return SendClientMessage(playerid, COLOR_GREY, "{ADAEAD}У вас нет столько денег на руках!");
			   new Float:health;
			   GetPlayerHealth(playerid,health);
	           SetPlayerHealthAC(playerid, health + 1.0);
               PlayerInfo[playerid][pCash] -= 10;
               PlayerInfo[playerid][pHP] += 10;
               FracBank[0][fKazna] +=10;
               SendClientMessage(playerid,0xF60000AA,"{FFFFFF}Спасибо за покупку! Не болейте");
			   }
			   else
               {
               SendClientMessage(playerid,COLOR_WHITE,"Вы не нуждаетесь в лечении");
			   return 1;
               }
            }
        if(listitem == 2)
            {
               if(PlayerInfo[playerid][pHP] <=85)
			   {
			   if(PlayerInfo[playerid][pCash] < 15) return SendClientMessage(playerid, COLOR_GREY, "{ADAEAD}У вас нет столько денег на руках!");
			   new Float:health;
			   GetPlayerHealth(playerid,health);
	           SetPlayerHealthAC(playerid, health + 15.0);
               PlayerInfo[playerid][pCash] -= 15;
               PlayerInfo[playerid][pHP] += 15;
               FracBank[0][fKazna] +=15;
               SendClientMessage(playerid,0xF60000AA,"{FFFFFF}Спасибо за покупку! Не болейте");
               }
               else
               {
               SendClientMessage(playerid,COLOR_WHITE,"Вы не нуждаетесь в лечении");
			   return 1;
               }
            }
        if(listitem == 3)
            {
               if(PlayerInfo[playerid][pHP] <= 65)
			   {
			   if(PlayerInfo[playerid][pCash] < 100) return SendClientMessage(playerid, COLOR_GREY, "{ADAEAD}У вас нет столько денег на руках!");
			   new Float:health;
			   GetPlayerHealth(playerid,health);
	           SetPlayerHealthAC(playerid, health + 35.0);
               PlayerInfo[playerid][pCash] -= 100;
               PlayerInfo[playerid][pHP] += 35;
               FracBank[0][fKazna] +=100;
               SendClientMessage(playerid,0xF60000AA,"{FFFFFF}Спасибо за покупку! Не болейте");
               }
               else
               {
               SendClientMessage(playerid,COLOR_WHITE,"Вы не нуждаетесь в лечении");
			   return 1;
               }
            }
         if(listitem == 4)
            {
               if(PlayerInfo[playerid][pHP] <= 45)
			   {
			   if(PlayerInfo[playerid][pCash] < 180) return SendClientMessage(playerid, COLOR_GREY, "{ADAEAD}У вас нет столько денег на руках!");
			   new Float:health;
			   GetPlayerHealth(playerid,health);
	           SetPlayerHealthAC(playerid, health + 55.0);
               PlayerInfo[playerid][pCash] -= 180;
               PlayerInfo[playerid][pHP] += 55;
               FracBank[0][fKazna] +=180;
               SendClientMessage(playerid,0xF60000AA,"{FFFFFF}Спасибо за покупку! Не болейте");
               }
               else
               {
               SendClientMessage(playerid,COLOR_WHITE,"Вы не нуждаетесь в лечении");
			   return 1;
               }
            }
         if(listitem == 5)
            {
               if(PlayerInfo[playerid][pHP] <= 30)
			   {
			   if(PlayerInfo[playerid][pCash] < 320) return SendClientMessage(playerid, COLOR_GREY, "{ADAEAD}У вас нет столько денег на руках!");
			   new Float:health;
			   GetPlayerHealth(playerid,health);
	           SetPlayerHealthAC(playerid, health + 70.0);
               PlayerInfo[playerid][pCash] -= 320;
               PlayerInfo[playerid][pHP] += 70;
               FracBank[0][fKazna] +=320;
               SendClientMessage(playerid,0xF60000AA,"{FFFFFF}Спасибо за покупку! Не болейте");
               }
               else
               {
               SendClientMessage(playerid,COLOR_WHITE,"Вы не нуждаетесь в лечении");
			   return 1;
               }
            }
            if(listitem == 6)
            {
               if(PlayerInfo[playerid][pAptechka] == 0)
			   {
			   if(PlayerInfo[playerid][pCash] < 700) return SendClientMessage(playerid, COLOR_GREY, "{ADAEAD}У вас нет столько денег на руках!");
               PlayerInfo[playerid][pCash] -= 700;
               PlayerInfo[playerid][pAptechka] = 1;
               FracBank[0][fKazna] +=700;
               SendClientMessage(playerid,0xF60000AA,"{FFFFFF}Спасибо за покупку!");
               }
               else
               {
               SendClientMessage(playerid,COLOR_WHITE,"У вас уже есть аптечка");
			   return 1;
               }
            }
         }
		else
		{
		return 1;
		}
		}
В public OnGameModeInit

PHP:
	apteka[0] = CreatePickup(19132,23,1481.5159,-1704.5953,14.0468);//apteka вход
	apteka[1] = CreatePickup(19132,23,-2170.2478,635.7123,1052.3750);//apteka выход
	apteka[2] = CreatePickup(1239,2,-2161.1653,640.3580,1052.3817);//apteka пикап 1
	apteka[3] = CreatePickup(1239,2,-2158.9829,640.3636,1052.3817);//apteka пикап 2
И туда же в OnGameModeInit ко всем 3D текстам

PHP:
	Create3DTextLabel("{FFA500}Аптека\n{FFBF00}San Andreas",0xBFF600FF,1481.5159,-1704.5953,14.7468,15.0,0,1);
И снова в OnGameModeInit добавим объекты

PHP:
	//=================================== [Аптека] ==================
	CreateObject(1569,-2171.1000977,639.9299927,1056.5860596,0.0000000,0.0000000,0.0000000); //object(adam_v_door) (1)
	CreateObject(1569,-2169.6000977,639.9199829,1056.5860596,0.0000000,0.0000000,0.0000000); //object(adam_v_door) (2)
	CreateObject(1675,1479.9770508,-1697.0080566,16.2059994,0.0000000,0.0000000,0.0000000); //object(wshxrefhse1) (1)
В html потому что
PHP:
 и PHP не получается соотнести, путаница получается

В [COLOR="#0000FF"]pInfo[/COLOR] добавим:[/B]

[PHP]pAptechka,
В public OnPlayerRegister(playerid, password[])

PHP:
ini_setInteger(File,"Aptechka",PlayerInfo[playerid][pAptechka]);
В public OnPlayerUpdateRL(playerid)

PHP:
ini_setInteger(File,"Atpechka",PlayerInfo[playerid][pAptechka]);
В public OnPlayerLogin(playerid,password[])

PHP:
ini_getInteger(File,"Aptechka",PlayerInfo[playerid][pAptechka]);
В public OnPlayerCommandText(playerid, cmdtext[]) добавим команду:

HTML:
        else if(strcmp(cmd, "/carheal", true) == 0)
    {
		if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, "{ADAEAD}Вы не в машине");
        if(PlayerInfo[playerid][pAptechka] == 1)
			   {
			   SetPlayerHealthAC(playerid, 100);
               PlayerInfo[playerid][pHP] = 100;
               PlayerInfo[playerid][pAptechka] = 0;
               SendClientMessage(playerid,0xF60000AA,"{FFFFFF}Вы использовали аптечку");
               }
               else
               {
               SendClientMessage(playerid,COLOR_WHITE,"У вас нет аптечек");
			   return 1;
               }
		return true;
    }
Если честно, не знаю к чему это определить, мануал, урок или прочее :)

Screens:



 
Последнее редактирование модератором:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу