Помогите "убить таймер"

Тема в разделе "Запросы", создана пользователем pashek71, 7 янв 2016.

  1. pashek71

    pashek71

    Сообщения:
    171
    Симпатии:
    18
    Код:
    public OnPluginStart()
    {
    	HookEvent("round_start", Event_RoundStart);
    	RegConsoleCmd("sm_marker", marker);
    	RegAdminCmd("sm_clearmarker", ClearMarker, ADMFLAG_ROOT);
    }
    
    public Event_RoundStart(Handle:event, const String:name[], bool:dontBroadcast)
    {
    	KillTimer(g_Timer[0]);
    }
    
    public OnMapStart()
    {
    	g_BeamSprite = PrecacheModel("materials/sprites/blueflare1.vmt");
    	g_HaloSprite = PrecacheModel("materials/sprites/glow08.vmt");
    }
    
    GetLookPos(i, Float:pposCMD[3]) 
    { 
         decl Float:EyePosition[3], Float:EyeAngles[3], Handle:h_trace; 
         GetClientEyePosition(i, EyePosition); 
         GetClientEyeAngles(i, EyeAngles); 
         h_trace = TR_TraceRayFilterEx(EyePosition, EyeAngles, MASK_SOLID, RayType_Infinite, GetLookPos_Filter, i); 
         TR_GetEndPosition(pposCMD, h_trace); 
         CloseHandle(h_trace); 
    } 
    
    public bool:GetLookPos_Filter(ent, mask, any:i) 
    { 
          return i != ent; 
    }
    
    public Action:ClearMarker(client,args)
    {
    	KillTimer(g_Timer[0]);
    	return Plugin_Handled;
    }
    
    public Action:marker(client,args)
    {
    	if(JC_GetCaptain() != client) 
    	{
    		PrintToChat(client, "Вы не командир");
    		return;
    	} else
    	{
    	GetLookPos(client,g_pposCMD);
    	g_Timer[0] = CreateTimer(0.5, Timer_Beacon, _,TIMER_REPEAT|TIMER_FLAG_NO_MAPCHANGE);
    	}
    }
    
    public Action:Timer_Beacon(Handle:Timer, any:pack)
    {
    	TE_SetupBeamRingPoint(g_pposCMD, 50.0, 60.0, g_BeamSprite, g_HaloSprite, 0, 15, 0.1, 10.0, 0.0, g_color, 10, 0);
    	TE_SendToAll();
    	return Plugin_Continue;
    }
    Крч, вот код, нужно создать маяк в том месте куда указывает курсор+удаление маяка командой+удаление маяка в новом раунде, для этого нужно убить таймер, но я чет вообще не понимаю как, делал по примеру из другого плагина(я про то как убить тайме), но там все работает, здесь же нет. Пишет что неизвестный handle:
    [SM] Native "KillTimer" reported: Invalid timer handle 29fc082c (error 3)
    нужно так же всунуть проверку на то включен ли он или нет(таймер перед его "убийстом"), просьба пояснить :Ы

    осталось сделать проверку на то "жив" ли таймер, :С
     
    Последнее редактирование: 7 янв 2016
  2. Primo

    Primo Где мои манеры

    Сообщения:
    1.191
    Симпатии:
    310
    if(g_Timer[0]) - вот твоя проверка, жив ли таймер. А когда его будешь убивать, делай g_Timer[0] = INVALID_HANDLE (После KillTimer)
     
  3. pashek71

    pashek71

    Сообщения:
    171
    Симпатии:
    18
    спасибо