if(HOLDING(KEY_SPRINT))
{
if(armytraining[playerid] == 1)
{
SetPlayerProgressBarValue(playerid,testbar[playerid],GetPlayerProgressBarValue(playerid,bar[playerid])+ 1);
UpdatePlayerProgressBar(playerid,testbar[playerid]);
if(GetPlayerProgressBarValue(playerid, testbar[playerid]) == 99)
{
GameTextForPlayer(playerid,"~r~MISSION FAILED",3000,5);
PlayAudioStreamForPlayer(playerid,"http://k003.kiwi6.com/hotlink/7o7bkddi9b/Tornado_Siren_II-Delilah-747233690.mp3");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
}
if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
{
SetPlayerProgressBarValue(playerid,testbar[playerid],GetPlayerProgressBarValue(playerid,bar[playerid]) -1);
UpdatePlayerProgressBar(playerid,testbar[playerid]);
if(GetPlayerProgressBarValue(playerid, testbar[playerid]) == 0)
{
GameTextForPlayer(playerid,"~G~ keep stealth",3000,5);
}
}
}
}
if (HOLDING(KEY_SPRINT))
{
timerid[playerid] = SetTimerEx("OnUpdate", 1000, true, "ii", playerid, 1);
}
forward OnUpdate(playerid, value);
public OnUpdate(playerid, value)
{
your_variable[playerid] += value;
// update progress bar
}
if (GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
{
value = -1;
}
if (RELEASED(KEY_SPRINT))
{
KillTimer(timerid[playerid]);
}
if(PRESSED(KEY_SPRINT))
{
timer[playerid] = SetTimerEx(...);
}
if(RELEASED(KEY_SPRINT))
{
KillTimer(timer[playerid]);
}
if(PRESSED(KEY_CROUCH)) // when crouch is pressed
{
if(HOLDING(KEY_SPRINT)) // if key sprint was already held in when key crouch was pressed
{
}
else
{
}
}
That's not really necessary. Gammix has the right idea, but the timer should be set under PRESSED and killed under RELEASED. Then for the crouching, you can also use KEY_CROUCH;
PHP код:
|
if(PRESSED(KEY_SPRINT))
{
holdingkey[playerid] = SetTimerEx("HoldingSprintKey", 1000, true, "ii", playerid, 1);
}
if(RELEASED(KEY_SPRINT))
{
KillTimer(holdingkey[playerid]);
}
if(PRESSED(KEY_CROUCH)) // when crouch is pressed
{
if(HOLDING(KEY_SPRINT)) // if key sprint was already held in when key crouch was pressed
{
}
else
{
}
}
function HoldingSprintKey(playerid,value)
{
if(armytraining[playerid] == 1)
{
SetPlayerProgressBarValue(playerid,testbar[playerid], GetPlayerProgressBarValue(playerid,testbar[playerid])+value);
UpdatePlayerProgressBar(playerid,testbar[playerid]);
if(GetPlayerProgressBarValue(playerid, testbar[playerid]) == 99)
{
GameTextForPlayer(playerid,"~r~MISSION FAILED",3000,5);
PlayAudioStreamForPlayer(playerid,"http://k003.kiwi6.com/hotlink/7o7bkddi9b/Tornado_Siren_II-Delilah-747233690.mp3");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
}
if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
{
SetPlayerProgressBarValue(playerid,testbar[playerid],GetPlayerProgressBarValue(playerid,bar[playerid]) -value);
UpdatePlayerProgressBar(playerid,testbar[playerid]);
if(GetPlayerProgressBarValue(playerid, testbar[playerid]) == 0)
{
GameTextForPlayer(playerid,"~G~ keep stealth",3000,5);
}
}
}
return 1;
}
if(PRESSED(KEY_SPRINT))
{
if(armytraining[playerid] == 1)
{
holdingkey[playerid] = SetTimerEx("HoldingSprintKey", 500, true, "i", playerid);
}
}
if(RELEASED(KEY_SPRINT))
{
KillTimer(holdingkey[playerid]);
}
if(PRESSED(KEY_CROUCH)) // when crouch is pressed
{
if(crouching[playerid] == 0)
{
crouching[playerid] = 1;
holdingkey[playerid] = SetTimerEx("PlayerCrouching", 500, true, "i", playerid);
}
else if(crouching[playerid] == 1)
{
crouching[playerid] = 0;
KillTimer(holdingkey[playerid]);
}
}
return 1;
}
function HoldingSprintKey(playerid)
{
SetPlayerProgressBarValue(playerid,testbar[playerid], GetPlayerProgressBarValue(playerid,testbar[playerid])+3);
UpdatePlayerProgressBar(playerid,testbar[playerid]);
if(GetPlayerProgressBarValue(playerid, testbar[playerid]) >= 99)
{
GameTextForPlayer(playerid,"~r~MISSION FAILED",3000,5);
PlayAudioStreamForPlayer(playerid,"http://k003.kiwi6.com/hotlink/7o7bkddi9b/Tornado_Siren_II-Delilah-747233690.mp3");
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
}
return 1;
}
function PlayerCrouching(playerid)
{
if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_DUCK)
{
SetPlayerProgressBarValue(playerid,testbar[playerid],GetPlayerProgressBarValue(playerid,bar[playerid]) -3);
UpdatePlayerProgressBar(playerid,testbar[playerid]);
if(GetPlayerProgressBarValue(playerid, testbar[playerid]) == 0)
{
GameTextForPlayer(playerid,"~G~ keep stealth",3000,5);
}
}
return 1;
}