SA-MP Forums Archive
Помощь в решении нескольких проблем - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Помощь в решении нескольких проблем (/showthread.php?tid=551159)



Помощь в решении нескольких проблем - LiMOH - 17.12.2014

*удалено*


Re: Помощь в решении нескольких проблем - White_116 - 17.12.2014

1) При смерти установить 100 хп и вроде ещё позицию нужно сменить.


Re: Помощь в решении нескольких проблем - LiMOH - 17.12.2014

White_116, не помогло. Забыл дополнить, что после смерти игрок почему-то отправляется на стандартный выбор скина и там и зависает в воздухе =/ Хотя должен просто заспавниться

UPD: первая проблема всё-таки решена, осталась вторая)


Re: Помощь в решении нескольких проблем - OKStyle - 17.12.2014

pawn Код:
TSetTimer("TextAnim", 5000, 0);
Как я понимаю, тут очищение анимации должно быть. Покажи код? И дефайн TSetTimer


Re: Помощь в решении нескольких проблем - LiMOH - 17.12.2014

OKStyle, верно понимаете) А код уже был показан, повторюсь:

Код:
public TextAnim(playerid)
{
	ApplyAnimation(playerid,"CARRY","crry_prtial",4.0,0,0,0,0,0,0);
	return 1;
}
Насчёт TSetTimer, эта функция из отдельного инклуда, который по заявлениям автора устраняет задержку при выполнении таймеров. Вот код самого инклуда целиком:

Код:
#define MAX_TIMERS 1
#define TIMERS_UPDATE 250
#define INVALID_TIMER_ID (0xFFFF)
 
forward UpdateTimers();
 
enum TInfo
{
        TTime,
        TInterval,
        TRepeating
};
new TimerInfo[MAX_TIMERS][TInfo];
new TimerName[MAX_TIMERS][75];
new StartTimers, UpdateTimersID;
 
public UpdateTimers()
{
        for(new A; A != MAX_TIMERS; A++)
        {
                if(!TimerInfo[A][TTime]) continue;
                if(TimerInfo[A][TTime] <= GetTickCount())
                {
                                if(!TimerInfo[A][TRepeating])
                        {
                                TimerInfo[A][TTime] = 0;
                                if(!--StartTimers) KillTimer(UpdateTimersID);
                        }
                        else TimerInfo[A][TTime] = GetTickCount()+TimerInfo[A][TInterval];
                                CallLocalFunction(TimerName[A], "");      
                }
        }
        return 1;
}
 
stock TSetTimer(const funcname[], interval, repeating)
{
        if(!StartTimers) UpdateTimersID = SetTimer("UpdateTimers", TIMERS_UPDATE, 1);
        for(new A; A != MAX_TIMERS; A++)
        {
                if(TimerInfo[A][TTime] != 0) continue;
                strmid(TimerName[A], funcname, 0, strlen(funcname));
                TimerInfo[A][TInterval] = interval;
                TimerInfo[A][TTime] = GetTickCount()+interval;
                TimerInfo[A][TRepeating] = repeating;
                StartTimers++;
                return A;
        }
        return INVALID_TIMER_ID;
}
 
stock TKillTimer(timerid)
{
        if(TimerInfo[timerid][TTime] != 0)
        {
                TimerInfo[timerid][TTime] = 0;
                if(!--StartTimers) KillTimer(UpdateTimersID);
        }
        return 1;
}



Re: Помощь в решении нескольких проблем - OKStyle - 17.12.2014

ApplyAnimation(playerid,"CARRY","crry_prtial",4.0, 0,0,0,0,0,0);

Замени на ClearAnimations(playerid)


Re: Помощь в решении нескольких проблем - LiMOH - 17.12.2014

OKStyle, пробовал, ничего не изменилось.


Re: Помощь в решении нескольких проблем - White_116 - 18.12.2014

pawn Код:
SetTimerEx("TextAnim",5000, false, "d", playerid);
Замени на выше приведённый код и просто ничего не говори про оптимизацию
P.S. "Костылезированные" "Оптимизированные" таймеры не передают параметры в функцию.


Re: Помощь в решении нескольких проблем - LiMOH - 19.12.2014

White_116, благодарю, помогло