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

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

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

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

Energy System

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

Lancer

Умник
Система работает так:Если вы бежите быстро,прыгаете,или бьёте(именно бьёте,стоит проверка на оружие,так что бага со стрельбой не будет!)то система отнимает энергию,если она равна 0,то вам ставится анимация одышки.
Скрипт прост,но думаю будет многим интересен!

И так начнём добавляем следующие форварды

PHP:
forward Energy();//Создаём паблик,который будет прибавлять енергию игроку
PHP:
forward TiredCheck();//проверяет действия игрока,и отнимает энергию игрока
Далее добавляем
PHP:
new Tired[MAX_PLAYERS];//флажок
new sprint[MAX_PLAYERS];//флажок
Далее в паблик OnPlayerKeyStateChange добавляем проверку на бег и удары
PHP:
  if(GetPlayerState(playerid) == 1)
    {
     if(newkeys == 8 && GetPlayerState(playerid) == 1 ) sprint[playerid]=1;
     if(oldkeys == 8 && sprint[playerid] == 1) sprint[playerid]=0;
    }
     if(newkeys & KEY_JUMP || newkeys & KEY_SPRINT )
     {
     if(IsPlayerConnected(playerid))
     {
         if(Tired[playerid] != 1)
          {
          if(IsPlayerInAnyVehicle(playerid)){}
            if(PlayerInfo[playerid][pEnergy] <= 0)
          {}
          else if(PlayerInfo[playerid][pEnergy] <= 5)
          {PlayerInfo[playerid][pEnergy] -= 1;}
       else{PlayerInfo[playerid][pEnergy] -= 2;
         }
      }
     }
    }
    if(newkeys & KEY_FIRE )
    {
     if(GetPlayerWeapon(playerid) == 0 && GetPlayerSpecialAction(playerid) == 0 && Tired[playerid] != 1)
     {
          PlayerInfo[playerid][pEnergy] -= 5;
     }
     else if(GetPlayerWeapon(playerid) != 0 || GetPlayerSpecialAction(playerid) != 0)
     {}
    }
В OnGameModeInit

PHP:
SetTimer("Energy",1600,1);
       SetTimer("TiredCheck",900,1);
в конец:

PHP:
public TiredCheck()
{
    for(new i = 0; i<MAX_PLAYERS;i++)
    {
     if(IsPlayerConnected(i))
     {
      if(!IsPlayerInAnyVehicle(i))
       {
           if(Tired[i] == 0)
           {
        if(sprint[i] != 0)
        {
         PlayerInfo[i][pEnergy] -= 1;
        }
        if(PlayerInfo[i][pEnergy] <= 1)
        {
         ApplyAnimation(i,"PED","IDLE_tired",4.1,0,1,1,1,1);
         Tired[i] = 1;
        }
       }
       else
       {
        if(PlayerInfo[i][pEnergy] >= 5)
        {
             Tired[i] = 0;
            ClearAnimations(i);
        }
        if(PlayerInfo[i][pEnergy] <= 4)
        {
             ApplyAnimation(i,"PED","IDLE_tired",4.1,0,1,1,1,1);
        }
       }
      }
     }
    }
    return 1;
}

public Energy()
{
    for(new i = 0; i<MAX_PLAYERS;i++)
    {
     if(IsPlayerConnected(i))
     {
         if(PlayerInfo[i][pEnergy] <= 99 && sprint[i] != 1)
         {
       PlayerInfo[i][pEnergy]++;
      }
      return 1;
     }
    }
    return 1;
}
к new
PHP:
new Text:TextDrawForEnergy[MAX_PLAYERS];
в onplayerconnect:

PHP:
TextDrawForEnergy[playerid] = TextDrawCreate(1.0,440.0," ");
     TextDrawAlignment(Text:TextDrawForEnergy[playerid],1);
     TextDrawSetShadow(Text:TextDrawForEnergy[playerid],1);
     TextDrawFont(Text:TextDrawForEnergy[playerid],3);
     TextDrawSetOutline(Text:TextDrawForEnergy[playerid],1);
     TextDrawLetterSize(Text:TextDrawForEnergy[playerid],0.361999,0.800000);
     TextDrawBoxColor(Text:TextDrawForEnergy[playerid], 0x00000070);
     TextDrawTextSize(Text:TextDrawForEnergy[playerid], 800, 105);
     TextDrawUseBox(Text:TextDrawForEnergy[playerid], 1);

        TextDrawShowForPlayer(playerid,Text:TextDrawForEnergy[playerid]);
в OnPlayerUpdate:

PHP:
new bride[64];
         format(bride,sizeof(bride),"Energy:%d",PlayerInfo[playerid][pEnergy]);
      TextDrawSetString(Text:TextDrawForEnergy[playerid],bride);
      TextDrawShowForPlayer(playerid,Text:TextDrawForEnergy[playerid]);
В OnPlayerDisconnect
PHP:
TextDrawDestroy(TextDrawForEnergy[playerid]);
Не забываем сделать сохранения в файл
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу