| 
ORdli
 | 
Дата: Суббота, 26.03.2022, 23:00:55 | Сообщение # 1 |  
  
  |  
Сообщений: 11
 
Репутация: 0 [ +/- ]
 |   
 | 
 кто сможет создать плагин, который бы случайным образом воспроизводил 3 звука, когда один игрок взрывает другого игрока бочкой разбойника, и три звуковых эффекта урона от падения, как я понимаю тут люди умеют делать плагины только под кс го, поэтому заранее извиняюсь, другого раздела я не нашёл. 
 | 
 
|   | 
 |    | 
| 
Tokami2
 | 
Дата: Вторник, 29.03.2022, 23:20:29 | Сообщение # 2 |  
  
  |  
Сообщений: 20
 
Репутация: 6 [ +/- ]
 |   
 | 
 Там же используется тоже SourceMod верно? 
 | 
 
|   | 
 |    | 
| 
ORdli
 | 
Дата: Вторник, 29.03.2022, 23:59:45 | Сообщение # 3 |  
  
  |  
Сообщений: 11
 
Репутация: 0 [ +/- ]
 |   
 | 
 Да тоже Sourcemod 
 | 
 
|   | 
 |    | 
| 
Tokami2
 | 
Дата: Четверг, 31.03.2022, 14:19:49 | Сообщение # 4 |  
  
  |  
Сообщений: 20
 
Репутация: 6 [ +/- ]
 |   
 | 
ORdli, Tokami#1998, просто интересно что-то поделать для другой игры.
  Добавлено (03.04.2022, 15:06:09) --------------------------------------------- Вопрос решен. Тип дамага действительно изменился в данной игре, к сожалению какой тип дамага стал так и неизвестно по этому просто отдебажил что выводилось.
 
 Код  #include <sdktools> #include <sdkhooks>
  KeyValues kv; ArrayList sounds;
  public void OnPluginStart() {     for(int i = 1; i <= MaxClients; i++)     {   if(IsClientInGame(i))     OnClientPostAdminCheck(i);     } }
  public void OnConfigsExecuted() {     if(sounds != null)     {   delete sounds;     }
      sounds = new ArrayList(ByteCountToCells(PLATFORM_MAX_PATH));
      if(kv != null)   delete kv;
      kv = new KeyValues("sample");
      char soundfile[PLATFORM_MAX_PATH];     BuildPath(Path_SM, soundfile, sizeof(soundfile), "configs/falldamagesound.txt");
      if(!kv.ImportFromFile(soundfile))     {   SetFailState("Missing KeyValue file: \"configs/falldamagesound.txt\"");     }          kv.Rewind();
      if(!kv.GotoFirstSubKey(false))     {   SetFailState("could'nt enter in first subkey")     }
      char buffer[PLATFORM_MAX_PATH];
      do     {   kv.GetString(NULL_STRING, buffer, sizeof(buffer));   //PrintToServer("%s %i", buffer, sounds.Length);
    if(strlen(buffer) < 5)    continue;
    sounds.PushString(buffer);
    PrecacheSound(buffer);
    Format(buffer, sizeof(buffer), "sound/%s", buffer);   AddFileToDownloadsTable(buffer);     }     while(kv.GotoNextKey(false)) }
  public void OnClientPostAdminCheck(int client) {     SDKHook(client, SDKHook_OnTakeDamagePost, OnTakeDamagePost); }
  public void OnTakeDamagePost(int victim, int attacker, int inflictor, float damage, int damagetype) {     //PrintToChatAll("Отловил [%d]", damagetype);     if(damagetype == -8257536)     {   //PrintToChatAll("Сыграл");   int random = GetRandomInt(1, sounds.Length-1);
    if(sounds.Length <= 1)   {    random = 0;   }
    char buffer[PLATFORM_MAX_PATH];   sounds.GetString(random, buffer, sizeof(buffer));   //PrintToServer("array random %i %s", random, buffer);   EmitSoundToAll(buffer, victim);     } }
 
 
 
 Код  #include <sdktools>
  #pragma newdecls required
  #define SOUND_LOAD    "sound/custom/headshotz.mp3" #define SOUND_PLAY    "*/custom/headshotz.mp3"
  public void OnPluginStart() {     HookEvent("player_death", Event_PlayerDeath); }
  public void OnMapStart() {     PrecacheSound(SOUND_PLAY, true);     AddFileToDownloadsTable(SOUND_LOAD); }
  public void Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast) {     if (GetEventBool(event, "headshot"))     {         // Get all required event info         int attackerIndex = GetClientOfUserId(GetEventInt(event, "attacker"));         // Emit sound         //EmitSoundToClient(attackerIndex, SOUND_PLAY, SOUND_FROM_PLAYER, SNDCHAN_STATIC, SNDLEVEL_NORMAL);
    EmitSoundToAll(SOUND_PLAY, attackerIndex, _, SNDLEVEL_TRAIN);     } }
 
  
 
 Сообщение отредактировал Tokami2 - Воскресенье, 03.04.2022, 15:07:39  | 
 
|   | 
 |    |