Skocz do zawartości
Szukaj w
  • Więcej opcji...
Znajdź wyniki, które...
Szukaj wyników w...
LageR#

Problem z ColorChatem

4 odpowiedzi w tym temacie

Rekomendowane odpowiedzi

Witam. Otóż wpadłem na pomysł, aby dodać colochat do pluginu Allow_round_finish.amxx, który przedłuża rundę mimo upływu czasu.

#include <amxmodx> 
#include <colorchat>

new g_IsLastRound = 0 
new g_OldTimelimit=0 

#define TASK_ID_CHECKFORMAPEND 241 
#define TASK_ID_DELAYMAPCHANGE 242 

public plugin_init() 
{ 
    register_plugin("Allow round finish", "1.0.2" ,"EKS & Sn!ff3r") 
    
    register_event("SendAudio","Event_EndRound","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw") 
    set_task(15.0,"Task_MapEnd",TASK_ID_CHECKFORMAPEND,_,_,"d",1) 
} 

public Task_MapEnd() 
{ 
    if(get_playersnum()) 
    { 
        g_IsLastRound = 1 
        g_OldTimelimit = get_cvar_num("mp_timelimit") 
        new nextmap[33] 
        get_cvar_string("amx_nextmap",nextmap,32)        
        server_cmd("mp_timelimit 0") 
        ColorChat(id, YELLOW, "Czas mapy juz minal, zmiana mapy na ^x04%s ^x03po tej rundzie.",nextmap) 
    } 
} 
public Event_EndRound() 
{ 
    if(g_IsLastRound == 1) 
    { 
        ColorChat(id, YELLOW, "Runda zakonczona, zmiana mapy w ciagu ^x035 sekund.") 
        set_task(5.0,"Task_DelayMapEnd",TASK_ID_DELAYMAPCHANGE,_,_,"a",1) 
    } 
} 
public server_changelevel(map[]) 
{ 
    if(g_IsLastRound == 1) 
        Task_DelayMapEnd() 
} 
public Task_DelayMapEnd() 
{ 
    remove_task(TASK_ID_DELAYMAPCHANGE) 
    g_IsLastRound = 0 
    if(get_cvar_num("mp_timelimit") == 0) 
        server_cmd("mp_timelimit %d",g_OldTimelimit) 
} 

 

Dodałem parę rzeczy i kompiluję się, jednak jest napisany jeden problem:

cannot read from FILE: "colorchat" 

a gdy w amxmodmenu w "Zatrzymaj pluginy" chcę go zatrzymać, jest napisane:

unknown

i w ogóle nie działa.

Myślę, że da się rozstrzygnąć problem.

 

 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Po 1 nie ma takiego koloru w ColorChat jak YELLOW (bynajmniej w tym co Ci dałem).

Po 2 w tych funkcjach, w których wpisujesz colorchat nie ma takiego indexu, jaki definiujesz.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
#include <amxmodx>
#include <colorchat>


new g_IsLastRound = 0 
new g_OldTimelimit=0 


#define TASK_ID_CHECKFORMAPEND 241 
#define TASK_ID_DELAYMAPCHANGE 242 


public plugin_init() 
{ 
    register_plugin("Allow round finish", "1.0.2" ,"EKS & Sn!ff3r") 
    
    register_event("SendAudio","Event_EndRound","a","2=%!MRAD_terwin","2=%!MRAD_ctwin","2=%!MRAD_rounddraw") 
    set_task(15.0,"Task_MapEnd",TASK_ID_CHECKFORMAPEND,_,_,"d",1) 
} 


public Task_MapEnd() 
{ 
    if(get_playersnum()) 
    { 
        g_IsLastRound = 1; 
        g_OldTimelimit = get_cvar_num("mp_timelimit");
        new nextmap[33]; 
        get_cvar_string("amx_nextmap",nextmap,32);        
        server_cmd("mp_timelimit 0"); 
ColorChat(0, GREEN, "Czas mapy juz minal, zmiana mapy na ^x04%s ^x03po tej rundzie.",nextmap)
    } 
} 
public Event_EndRound() 
{ 
    if(g_IsLastRound == 1) 
    { 
        ColorChat(0, GREEN, "Runda zakonczona, zmiana mapy w ciagu ^x035 sekund.") ;
        set_task(5.0,"Task_DelayMapEnd",TASK_ID_DELAYMAPCHANGE,_,_,"a",1);
    } 
} 
public server_changelevel(map[]) 
{ 
    if(g_IsLastRound == 1) 
        Task_DelayMapEnd() 
} 
public Task_DelayMapEnd() 
{ 
    remove_task(TASK_ID_DELAYMAPCHANGE) 
    g_IsLastRound = 0 
    if(get_cvar_num("mp_timelimit") == 0) 
        server_cmd("mp_timelimit %d",g_OldTimelimit) 
} 
 

3ymaj kod dziala testowalem go. poprawiłem troche kodzik tylko sobie kolorek pozmieniaj :D.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×