viper_093, Просто мужик
Конечно в таком виде оно не будет работать, т.к. завязано на выносливости, которая равна 0. Уважаемые, вы хоть немного вникайте в скрипты, читайте комментарии к его работе.
var int PC_Sprint_Mode; //Переменная режима быстрого бега.
var int PC_STAMINA_MAX; //Атрбут максимальной выносливости ГГ. - сейчас значние равно 0!
var int PC_STAMINA_CURRENT; //Атрибут текущей выносливости ГГ. - сейчас значние равно 0!
Простейшие ЧИТЕРСКИЕ дополнения для работы скрипта.
Установи где-нибудь:
PC_STAMINA_MAX = 1000;
PC_STAMINA_CURRENT = 1000;
Скорость расхода выносливости в данном случае ни чем не регулируется и расходуется в зависимости от скорости триггера, так что возможно нужно будет ставить более высокие цифры для медленного расхода или уменьшать значение времени отклика триггера.
func void B_GlobalInit()
{
if(C_BodyStateContains(hero,BS_STAND)) //Если ГГ стоит на месте.
{
if(PC_Sprint_Mode == TRUE) //Если ГГ в режиме спринтера.
{
//Переход в режим обычного бега.
Mdl_RemoveOverlayMds(hero,"HUMANS_SPRINT.MDS");
PC_Sprint_Mode = FALSE;
PC_STAMINA_CURRENT = 1000; //Выносливость будет автоматически восстановлена.
};
};
if(C_BodyStateContains(hero,BS_WALK)) //Если ГГ в режиме ходьбы (зажата клавиша SHIFT).
{
if(!Npc_IsInFightMode(hero,FMODE_FAR)) //Если ГГ не в режиме дальнего боя, например с луком или арбалетом (при остановке после бега с луком или арбалетом будут небольшие глюки, нужно спрятать и повторно вытащить оружие)
{
//Переключение в режим подготовки спринтера если остаток выносливости не менее одной четверти и ГГ уже не в режиме быстрого бега.
if(PC_Sprint_Mode == FALSE && PC_STAMINA_CURRENT > PC_STAMINA_MAX / 4 )
{
PC_Sprint_Mode = 2;
};
};
};
if(C_BodyStateContains(hero,BS_RUN)) //Если ГГ в режиме обычного бега.
{
//Переключение в режим спринтера.
if(PC_Sprint_Mode == 2) //Если ГГ в режиме подготовки к спринтеру.
{
//Переход в режим спринтера.
Mdl_ApplyOverlayMds(hero,"HUMANS_SPRINT.MDS");
PC_Sprint_Mode = TRUE;
};
};
if(PC_Sprint_Mode == TRUE && PC_STAMINA_CURRENT < PC_STAMINA_MAX / 15) //Если выносливости менее 1/15 быстрый бег выключается
{
Mdl_RemoveOverlayMds(hero,"HUMANS_SPRINT.MDS");
PC_Sprint_Mode = FALSE;
PC_STAMINA_CURRENT = 1000; //Выносливость будет автоматически восстановлена.
};
if(PC_Sprint_Mode == TRUE) //Если ГГ в режиме быстрого бега.
{
PC_STAMINA_CURRENT -=1; //Расход выносливости!
};
Wld_SendTrigger("GLOBAL_INIT"); //Вызов триггера для зацикливания всей функции.
};