Помощь в решении нескольких проблем
#1

*удалено*
Reply
#2

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

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

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

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

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;
}
Reply
#6

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

Замени на ClearAnimations(playerid)
Reply
#7

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

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

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


Forum Jump:


Users browsing this thread: 2 Guest(s)