←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Wyłaczenie Huda?

  • +
  • -
Andrzejek - zdjęcie Andrzejek 12.08.2012

Witam, jak w tej funkcji wywołać, ze jak np. jest restart rundy zrobiony przez jakiegoś admina to żeby hud się wyłączył?

public Game_Restart(){

new iRTime=60;
for(new i=1;i<33;i++)
gbPlay[i]=true;

new param[1];
param[0]=iRTime;
set_task(1.0,"CountDown",RESTART_TASKID,param,1);

}
public CountDown(param[1]){
new iNow=param[0]--;

switch(iNow){
case 0:{
new param[1];
param[0]=0;
}
case 1:{
client_cmd(0,"speak one");
}
case 2:{
client_cmd(0,"speak two");
}
case 3:{
client_cmd(0,"speak three");
}
}
if(iNow>=1)
set_task(1.0,"CountDown",RESTART_TASKID,param,1);

set_hudmessage(255, 255, 255, 0.65, 0.75, 2, 0.02, 1.0, 0.01, 0.1, 10)
show_hudmessage(0,"==================^nRESTART ZA: %2d:%02d ^n==================",iNow/60,iNow%60)
}

Użytkownik Andrzejek edytował ten post 12.08.2012 19:02
Odpowiedz

  • +
  • -
fgsfds - zdjęcie fgsfds 13.08.2012

Chyba możesz użyć tego eventu:
Dołączona grafika
W plugin_init():
MsgHideWeapon = get_user_msgid("HideWeapon")


A później wywołujesz sobie:
message_begin(MSG_ONE_UNRELIABLE, MsgHideWeapon, _, id);
write_byte((1 << 3 | 1 << 5 | 1 << 6));
message_end();

Ten kod wyłączy radar, ilość HP, armoru, celownik i kasę.
Można to zastąpić też "1 << 2" co powinno usunąć calutki HUD.
Oczywiście "id" jest identyfikatorem gracza, więc możliwe, że musisz zrobić pętlę dla odpalenia dla każdego gracza.
Możliwe też, że da się to zrobić korzystając z MSG_ALL, i id = 0.
Mam nadzieję, że o wyłączenie TAKIEGO HUD'a ci chodziło.
Odpowiedz

Gość_21977_* 13.08.2012

Można też wysłać prosty MESSAGE_BROADCAST, mamy wtedy wysłane nie dość, że do wszystkich, to unreliable, czyli odporny na crashe kosztem ew. możliwości nie dotarcia wiadomości do gracza, a to chyba lepsze, niż crash :)
Odpowiedz