Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Informacja podczas rozpoczynania rundyInformacja razem z odliczaniem


  • Zamknięty Temat jest zamknięty
8 odpowiedzi w tym temacie

#1 hary

    Pomocny

  • Zbanowany

Reputacja: 1
Nowy

  • Postów:66
  • Imię:Szymon
  • Lokalizacja:Torun
Offline

Napisano 25.05.2011 15:34

Witam czy mógł by ktoś napisać mi plugin? Miał by on za zadanie wyświetlać na środku ekranu informację podczas rozpoczynania rundy typu "Macie 5 sekund do rozpoczęcia misji omówcie plan działania" I do tego odliczanie korzystające z mp_freezetime

#2 MASS

    Wszechpomocny

  • Zbanowany

Reputacja: 10
Początkujący

  • Postów:326
  • GG:
  • Steam:steam
  • Imię:Piotr
  • Lokalizacja:Świdnica
Offline

Napisano 01.06.2011 08:17

Dołączam się do tematu ponieważ to kolega z sieci i wspólnie staramy się o ten plugin na nasz TP. Jakiś tam kod zdobyłem, ale nie jest doskonały nie zawsze wyświetla informację i brakuje odliczania czasu tzn czyta mp_freezetime, ale jedynie pokazuje ile wynosi zamiast odliczać go do zera. Będziemy wdzięczni jeśli ktoś pomoże i poprawi kod bądź napisze własny.

#include <amxmodx> 

#define VERSION "0.0.1" 
#define PLUGIN "" 

new g_pcvarFreezeTime 
new Float:g_flEndOfFreezeTimeGameTime 

public plugin_init() 
{ 
    register_plugin(PLUGIN, VERSION, "ConnorMcLeod") 
    register_event("HLTV", "Event_HLTV_New_Round", "a", "1=0", "2=0") 
    register_logevent("LogEvent_Round_Start", 2, "1=Round_Start") 
    register_event("ResetHUD", "Event_ResetHUD", "be") 
    g_pcvarFreezeTime = get_cvar_pointer("mp_freezetime") 
    state __FreezeTime 
} 

public Event_HLTV_New_Round() 
{ 
    state __FreezeTime 
    g_flEndOfFreezeTimeGameTime = get_gametime() + get_pcvar_num(g_pcvarFreezeTime) 
} 

public Event_ResetHUD( id ) <__PlayTime> {} 
public Event_ResetHUD( id ) <__FreezeTime> 
{ 
    if( is_user_alive( id ) ) 
    { 
        set_hudmessage(170, 255, 85, -1.0, -1.0, 0, 2.0, 4.0, 0.1, 0.1, -1) 
        show_hudmessage(id, "Macie %.1f sekund do rozpoczecia misji, omowcie plan dzialania.", g_flEndOfFreezeTimeGameTime - get_gametime()) 
    } 
} 

public LogEvent_Round_Start() 
{ 
    state __PlayTime 
}


#3 hary

    Pomocny

  • Autor tematu
  • Zbanowany

Reputacja: 1
Nowy

  • Postów:66
  • Imię:Szymon
  • Lokalizacja:Torun
Offline

Napisano 01.06.2011 21:34

Staralismy sie cos pozmieniac, ale bez skutkow, jesli bylby ktos tak za***isty i pomoglby nam to zrobic bylibysmy wdzieczni.

#4 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 01.06.2011 22:32

Sprawdźcie to

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Odliczanie FT"
#define VERSION "1.0"
#define AUTHOR "R3X"

#define TASKID 324565

new giMaxPlayers;
new gcvarFT;

new Float:gfEndOfFT; 

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	gcvarFT = get_cvar_pointer("mp_freezetime");
	giMaxPlayers = get_maxplayers();
	
	register_event("HLTV", "eventNewRound", "a", "1=0", "2=0");
	register_event("RoundTime", "eventRoundTime", "be");
}

public eventNewRound(){
	for(new i=1; i<=giMaxPlayers; i++)
		if(task_exists(TASKID+i))
			remove_task(TASKID+i);
		
	if(get_pcvar_num(gcvarFT) == 0) return;
		
	gfEndOfFT = get_gametime()+get_pcvar_float(gcvarFT)-1.0;
}

public eventRoundTime(id){
	if(!is_user_alive(id)) return;
	if(gfEndOfFT == 0.0) return;
	
	if(read_data(1) <= get_pcvar_num(gcvarFT))
		taskShowHUD(id+TASKID);
}

public taskShowHUD(id){
	id -= TASKID;
	if(!is_user_alive(id)) return;
	
	new iSecs = floatround(gfEndOfFT-get_gametime());
	if(iSecs > 0){
		set_hudmessage(170, 255, 85, -1.0, -1.0, 0, 2.0, 0.8, 0.2, 0.2, -1) 
		show_hudmessage(id, "Macie %d sekund do rozpoczecia misji, omowcie plan dzialania.", iSecs) 
		
		if(iSecs > 1){
			set_task(1.0, "taskShowHUD", id+TASKID);
		}
	}
}

  • +
  • -
  • 1

#5 MASS

    Wszechpomocny

  • Zbanowany

Reputacja: 10
Początkujący

  • Postów:326
  • GG:
  • Steam:steam
  • Imię:Piotr
  • Lokalizacja:Świdnica
Offline

Napisano 02.06.2011 09:58

Działa idealnie i tego się spodziewałem jak tylko zobaczyłem kto jest autorem pluginu, ale mam jeszcze pytanie czy można jakoś wyłączyć ten licznik na dole?

Załączone miniatury

  • 2011-06-02_00001.jpg


#6 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 02.06.2011 11:01

Wystarczy pokazanie samych zer?
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Odliczanie FT"
#define VERSION "1.1"
#define AUTHOR "R3X"

#define TASKID 324565

new giMaxPlayers;
new gcvarFT;

new Float:gfEndOfFT; 

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	gcvarFT = get_cvar_pointer("mp_freezetime");
	giMaxPlayers = get_maxplayers();
	
	register_event("HLTV", "eventNewRound", "a", "1=0", "2=0");
	register_message(get_user_msgid("RoundTime"), "msgRoundTime");
}

public eventNewRound(){
	for(new i=1; i<=giMaxPlayers; i++)
		if(task_exists(TASKID+i))
			remove_task(TASKID+i);
		
	if(get_pcvar_num(gcvarFT) == 0) return;
		
	gfEndOfFT = get_gametime()+get_pcvar_float(gcvarFT)-1.0;
}
public msgRoundTime(msg_type, msg_id, id){
	if(gfEndOfFT == 0.0 || !is_user_alive(id)) return PLUGIN_CONTINUE;
	
	if(get_msg_arg_int(1) <= get_pcvar_num(gcvarFT)){
		taskShowHUD(id+TASKID);
		return PLUGIN_HANDLED;
	}
	return PLUGIN_CONTINUE
}

public taskShowHUD(id){
	id -= TASKID;
	if(!is_user_alive(id)) return;
	
	new iSecs = floatround(gfEndOfFT-get_gametime());
	if(iSecs > 0){
		set_hudmessage(170, 255, 85, -1.0, -1.0, 0, 2.0, 0.8, 0.2, 0.2, -1) 
		show_hudmessage(id, "Macie %d sekund do rozpoczecia misji, omowcie plan dzialania.", iSecs) 
		
		if(iSecs > 1){
			set_task(1.0, "taskShowHUD", id+TASKID);
		}
	}
}

żeby całkiem usunąć to bym musiał chwilę pomyśleć :P
  • +
  • -
  • 1

#7 MASS

    Wszechpomocny

  • Zbanowany

Reputacja: 10
Początkujący

  • Postów:326
  • GG:
  • Steam:steam
  • Imię:Piotr
  • Lokalizacja:Świdnica
Offline

Napisano 02.06.2011 11:06

Wystarczy pokazanie samych zer?

Nie chciał bym być wybredny, ale wolał bym całkowicie pozbyć się tego licznika :) Znalazłem coś takiego, ale niestety akurat opcji usuwania tego licznika nie ma HUD Customizer 0.4 - AMXX.pl: Support AMX Mod X

#8 R3X

    Godlike

  • Przyjaciel

Reputacja: 2 987
Godlike

  • Postów:4 248
  • Lokalizacja:Nie
Offline

Napisano 02.06.2011 11:13

No jak pomyślałeś za mnie to łap plugin :)
#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Odliczanie FT"
#define VERSION "1.2"
#define AUTHOR "R3X"

#define TASKID 324565

new giMaxPlayers;
new gcvarFT;

new Float:gfEndOfFT; 

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	gcvarFT = get_cvar_pointer("mp_freezetime");
	giMaxPlayers = get_maxplayers();
	
	register_event("HLTV", "eventNewRound", "a", "1=0", "2=0");
	register_message(get_user_msgid("RoundTime"), "msgRoundTime");
}

public eventNewRound(){
	for(new i=1; i<=giMaxPlayers; i++)
		if(task_exists(TASKID+i))
			remove_task(TASKID+i);
		
	if(get_pcvar_num(gcvarFT) == 0) return;
		
	gfEndOfFT = get_gametime()+get_pcvar_float(gcvarFT)-1.0;
}
public msgRoundTime(msg_type, msg_id, id){
	if(gfEndOfFT == 0.0 || !is_user_alive(id)) return PLUGIN_CONTINUE;
	
	if(get_msg_arg_int(1) <= get_pcvar_num(gcvarFT)){
		taskShowHUD(id+TASKID);
		hideTimer(id);
		return PLUGIN_HANDLED;
	}else
		showTimer(id);
		
	return PLUGIN_CONTINUE
}

public taskShowHUD(id){
	id -= TASKID;
	if(!is_user_alive(id)) return;
	
	new iSecs = floatround(gfEndOfFT-get_gametime());
	if(iSecs > 0){
		set_hudmessage(170, 255, 85, -1.0, -1.0, 0, 2.0, 0.8, 0.2, 0.2, -1) 
		show_hudmessage(id, "Macie %d sekund do rozpoczecia misji, omowcie plan dzialania.", iSecs) 
		
		if(iSecs > 1){
			set_task(1.0, "taskShowHUD", id+TASKID);
		}
	}
}

hideTimer(id){
	Send_HideWeapon(id, 16);
}
showTimer(id){
	Send_HideWeapon(id, 0);
}
stock Send_HideWeapon(id, flags){
	static msgid = 0;
	if(!msgid)
		msgid = get_user_msgid("HideWeapon");
	message_begin(MSG_ONE, msgid, _, id);
	write_byte(flags);
	message_end();
}

  • +
  • -
  • 1

#9 MASS

    Wszechpomocny

  • Zbanowany

Reputacja: 10
Początkujący

  • Postów:326
  • GG:
  • Steam:steam
  • Imię:Piotr
  • Lokalizacja:Świdnica
Offline

Napisano 02.06.2011 11:46

Działa idealnie +




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych