←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Modyfikacja
amx_flash drobna przerobka, pomoc

Zablokowany

  • +
  • -
Meelo - zdjęcie Meelo 20.12.2010

#include <amxmodx>
#include <amxmisc>

new gMsgScreenFade 

public admin_flash(id,level,cid) { 
   if (!cmd_access(id,level,cid,2)) { 
      return PLUGIN_HANDLED 
   } 

   new victim[32] 
   read_argv(1,victim,31) 
//   new arg2[32]
//   read_argv(2,arg2,31)
//   new number=strtonum(arg2)
//   if (number==0) number=1

   if (victim[0]=='@') { 
      new team[32], inum 
      get_players(team,inum,"e",victim[1]) 
      if (inum==0) { 
         console_print(id,"[AMX] No clients found on such team.") 
         return PLUGIN_HANDLED 
      } 
      for (new i=0;i<inum;++i) { 
         Flash(team[i]) 
         client_print(id,print_chat,"[AMX] You Flashed all %s's.",victim[1]) 
         //client_print(id,print_chat,"[AMX] You Flashed all %s's for %i secs.",victim[1],number) 
      } 
   } 
   else if (victim[0]=='*') { 
      new all[32], inum 
      get_players(all,inum) 
      for (new i=0;i<inum;++i) { 
         Flash(all[i])
         client_print(id,print_chat,"[AMX] You Flashed everyone.")
         //client_print(id,print_chat,"[AMX] You Flashed everyone for %i secs.",number) 
      } 
   } 
   else { 
      new player = cmd_target(id,victim,0) 
      new playername[32] 
      get_user_name(player,playername,31) 

      if (!player) {  
         return PLUGIN_HANDLED
      } 
      Flash(player)
      client_print(id,print_chat,"[AMX] You Flashed %s.",playername)
      //client_print(id,print_chat,"[AMX] You Flashed %s for %i secs.",playername,number) 
   } 

   return PLUGIN_HANDLED 
} 

public Flash(id) {
	message_begin(MSG_ONE,gMsgScreenFade,{0,0,0},id) 
	write_short( 1<<15 ) 
	write_short( 1<<10 )
	write_short( 1<<12 )
	write_byte( 255 ) 
	write_byte( 255 ) 
	write_byte( 255 ) 
	write_byte( 255 ) 
	message_end()
	emit_sound(id,CHAN_BODY, "weapons/flashbang-2.wav", 1.0, ATTN_NORM, 0, PITCH_HIGH)
}

public plugin_init() { 
   register_plugin("Admin Flash","1.0","AssKicR") 
   register_concmd("amx_flash","admin_flash",ADMIN_LEVEL_A,"< Nick, UniqueID, #userid, @TEAM, or * > flashes selected client(s)") 
   gMsgScreenFade = get_user_msgid("ScreenFade") 
   return PLUGIN_CONTINUE 
}

public plugin_precache()
{
    // FLASHBANG SOUND
    precache_sound( "weapons/flashbang-2.wav" )
}


Mam ten plugin amx_flash i nie mogę znaleźć, gdzie mogę ustawić czas działania flesza na graczu po jego użyciu.. chciałbym, żeby gracz miał flesza przes 10~ sekund.

@
Użytkownik Meelo edytował ten post 21.12.2010 16:05
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 20.12.2010

chyba to
write_short( 1<<15 )
zamień
write_short( 1<<15 )
na
write_short( 1<<10 )
ale nie jestem pewien
Odpowiedz

  • +
  • -
Meelo - zdjęcie Meelo 20.12.2010

write_short( 1<<15 ) 
        write_short( 1<<15 )
        write_short( 1<<15 )
Tak ustawiłem i flesz na graczu działa jakieś 8sekund. Dzięki.
Mam jeszcze 2 sprawy:
1. Jak dodać do tego pluginu takie coś, żeby po użyciu amx_flash robiły się graczu 3 screeny ? <-- na tym mi zależy :P
2. logi na których było by widać który admim na jakim graczu używa amx_flash (ale to chyba powinno być w normalnych logach, tak po prostu było by przejrzyściej).
@DarkGL dostałeś już plusika ale byłym wdzięczny za pomoc.
Odpowiedz

  • +
  • -
DarkGL - zdjęcie DarkGL 20.12.2010

przed czy po "zaflaszowaniu" gracza te screeny?
Odpowiedz

  • +
  • -
Meelo - zdjęcie Meelo 20.12.2010

po użyciu amx_flash robiły się graczu 3 screeny ?

Po użyciu = po "zaflaszowaniu" :D może być jakaś sekunda po fleszu:)
Użytkownik Meelo edytował ten post 21.12.2010 16:05
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 21.12.2010

W "public Flash(id)" dodaj
set_task(0.8, "zrob_ssy", id, "", 0, "a", 3);

no i do tego nowy public "zrob_ssy"
public zrob_ssy(id) {
client_cmd(id, "snapshot");
client_cmd(id, "screenshot");

return PLUGIN_HANDLED;
}

Chyba powinno działać. Po oślepieniu wykona się 3 razy task na zrobienie ssów w dwóch formatach, bmp i tga, czyli razem będzie 6 ssów, a te ssy będą się robić z odstępami 0.8 sek.
Użytkownik sebul edytował ten post 21.12.2010 22:29
Odpowiedz

  • +
  • -
Meelo - zdjęcie Meelo 21.12.2010

set_task(0.8, "zrob_ssy", id, "", 0, "a", 3);
Mam rozumieć, że za ilość zrobionych ss'ów odpowiada ta trójeczka na końcu ?
Zaraz sprawdze czy działa ^^

Śmiga, plusik dla ciebie, dzięki.

TEMAT MOŻNA ZAMKNĄĆ
Użytkownik Meelo edytował ten post 21.12.2010 22:45
Odpowiedz

  • +
  • -
sebul - zdjęcie sebul 21.12.2010

Tak "3" odpowiada za ilość wykonanych tasków, czyli w tym przypadku ilości zrobienia ssów.
Użytkownik sebul edytował ten post 22.12.2010 01:48
Odpowiedz
Zablokowany