[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Форум » Уроки SourceMod (SourcePawn) Скриптинга » Разные функции на разных картах (Взято с world-source.ru)
Разные функции на разных картах
rootДата: Воскресенье, 03.02.2013, 01:43 | Сообщение # 1
Генералиссимус
Группа: Администраторы
Сообщений: 561
Статус: Offline
Например, вы хотите чтобы на карте de_dust2, после старта раунда, играл один звук, а на карте de_nuke другой. Это легко устроить с помощью глобальных переменных, хотя, можно и без них. Ниже примеры. 

Код
#include <sourcemod>  
#include <sdktools_sound>  

public OnPluginStart()  
{  
      HookEvent("round_start", round_start, EventHookMode_PostNoCopy);  
}  

public round_start(Handle:event, const String:name[], bool:dontBroadcast)  
{  
      decl String:MaP[75];  
      GetCurrentMap(MaP, 75);  
      if (StrEqual(MaP, "de_dust2")) EmitSoundToAll("1.mp3");  
      else if (StrEqual(MaP, "de_nuke")) EmitSoundToAll("1.mp3");  
}


Это совсем просто, обычные условия: 'если' и 'то'. 
Если у вас много карт и разные звуки для них, то можно сделать так: 

Код
#include <sourcemod>  
#include <sdktools_sound>  

#define MAPS_NUM 3  

new String:Maps[MAPS_NUM][] =    
{  
      "de_dust2",  
      "de_nuke",  
      "de_tides"  
};  

new String:Sounds[MAPS_NUM][] =    
{  
      "1.mp3",  
      "2.mp3",  
      "3.mp3"  
};  

public OnPluginStart()  
{  
      HookEvent("round_start", round_start, EventHookMode_PostNoCopy);  
}  

public round_start(Handle:event, const String:name[], bool:dontBroadcast)  
{  
      decl String:MaP[75];  
      GetCurrentMap(MaP, 75);  
      for (new i = 0; i < MAPS_NUM; i++)  
      {  
          if (StrEqual(MaP, Maps[i]))  
          {  
              EmitSoundToAll(Sounds[i]);  
              break;  
          }  
      }  
}


На de_dust2 будет проигрываться 1.mp3, на de_nuke 2.mp3, на de_tides 3.mp3 
Можно и так: 

Код
#include <sourcemod>  
#include <sdktools_sound>  

new String:Sound[75];  

public OnPluginStart()  
{  
       HookEvent("round_start", round_start, EventHookMode_PostNoCopy);  
}  

public OnMapStart()  
{  
      decl String:MaP[75];  
      GetCurrentMap(MaP, 75);  
      if (StrEqual(MaP, "de_dust2")) Sound = "1.mp3";  
      else if (StrEqual(MaP, "de_cbble")) Sound = "2.mp3";  
      else Sound = "-";  
}  

public round_start(Handle:event, const String:name[], bool:dontBroadcast)  
{  
      if (!StrEqual(Sound, "-")) EmitSoundToAll(Sound);  
}
 
Форум » Форум » Уроки SourceMod (SourcePawn) Скриптинга » Разные функции на разных картах (Взято с world-source.ru)
  • Страница 1 из 1
  • 1
Поиск: