Lancer
Умник
Система работает так:Если вы бежите быстро,прыгаете,или бьёте(именно бьёте,стоит проверка на оружие,так что бага со стрельбой не будет!)то система отнимает энергию,если она равна 0,то вам ставится анимация одышки.
Скрипт прост,но думаю будет многим интересен!
И так начнём добавляем следующие форварды
Далее добавляем
Далее в паблик OnPlayerKeyStateChange добавляем проверку на бег и удары
В OnGameModeInit
в конец:
к new
в onplayerconnect:
в OnPlayerUpdate:
В OnPlayerDisconnect
Не забываем сделать сохранения в файл
Скрипт прост,но думаю будет многим интересен!
И так начнём добавляем следующие форварды
PHP:
forward Energy();//Создаём паблик,который будет прибавлять енергию игроку
PHP:
forward TiredCheck();//проверяет действия игрока,и отнимает энергию игрока
PHP:
new Tired[MAX_PLAYERS];//флажок
new sprint[MAX_PLAYERS];//флажок
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)
{}
}
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;
}
PHP:
new Text:TextDrawForEnergy[MAX_PLAYERS];
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]);
PHP:
new bride[64];
format(bride,sizeof(bride),"Energy:%d",PlayerInfo[playerid][pEnergy]);
TextDrawSetString(Text:TextDrawForEnergy[playerid],bride);
TextDrawShowForPlayer(playerid,Text:TextDrawForEnergy[playerid]);
PHP:
TextDrawDestroy(TextDrawForEnergy[playerid]);
