Не,в этом суть маленько другая)
Игрок пишет в чате !закуп и у него вылазит вот такое меню,ну там какой оружия выбираешь,то и будет в автозакупе.
Ну удобная штука конечно
ну я так понял что он приватный
Да просто подумал так)Это же выдранный из Баллопановского DM плагина кусок кода. Как он может быть приватным?
Все что описал это цельная 3D модель?Есть моделька гранаты, которая имеет к парент к другой модельке, которая смещается каждые Х секунд на 0,5 юните, так-же есть ещё одна моделька, к которой первая модель движется, как заставить гранату наносить урон так, что бы хук SDKHook_OnTakeDamage сработал на второй модельке когда граната прикоснётся к ней. Хук на прикосновение не подходит! Нужно именно найти позицию урона на теле игрока.
Что там делиться, он в свободном доступе. Ссылку не дам, давно с ним дела не имел, ищи просто что то из разряда cssdmДа просто подумал так)
Если есть то поделись
Раз он не приватный
#include <sdktools_sound>
#include <sdktools_stringtables>
#pragma newdecls required
#define SOUND_LOAD "sound/custom/ur.mp3"
#define SOUND_PLAY "*/custom/ur.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 (event.GetBool("headshot"))
{
int attacker[1];
attacker[0] = GetClientOfUserId(event.GetInt("attacker"));
EmitSound(attacker, 1, SOUND_PLAY);
}
}
Читайте EmitSound · sdktools_sound · SourceMod Scripting API ReferenceВсем привет.
Может кто сделать громкость звука меньше ?
Сильно громко при попадание.
C-подобный:#include <sdktools_sound> #include <sdktools_stringtables> #pragma newdecls required #define SOUND_LOAD "sound/custom/ur.mp3" #define SOUND_PLAY "*/custom/ur.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 (event.GetBool("headshot")) { int attacker[1]; attacker[0] = GetClientOfUserId(event.GetInt("attacker")); EmitSound(attacker, 1, SOUND_PLAY); } }
#include <sdktools_sound>
#include <sdktools_stringtables>
#pragma newdecls required
#define SOUND_LOAD "sound/custom/ur.mp3"
#define SOUND_PLAY "*/custom/ur.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 (event.GetBool("headshot"))
{
int attacker[1];
attacker[0] = GetClientOfUserId(event.GetInt("attacker"));
EmitSound(attacker, 1, SOUND_PLAY, _, _, _, _, 0.5);
}
}
Ты лучший,я выйду за тебя замуж )Читайте EmitSound · sdktools_sound · SourceMod Scripting API Reference
Значения от 1,0 до 0,0
Результат:#include <sdktools_sound> #include <sdktools_stringtables> #pragma newdecls required #define SOUND_LOAD "sound/custom/ur.mp3" #define SOUND_PLAY "*/custom/ur.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 (event.GetBool("headshot")) { int attacker[1]; attacker[0] = GetClientOfUserId(event.GetInt("attacker")); EmitSound(attacker, 1, SOUND_PLAY, _, _, _, _, 0.5); } }
Сообщения автоматически склеены:
Как отловить Change Callbacks конвара, то-есть как получить Handle плагина, который сменил данный конвар? Нужно это для отлавливания r_screenoverlay у игроков.
А можно сделать так что-быЧитайте EmitSound · sdktools_sound · SourceMod Scripting API Reference
Значения от 1,0 до 0,0
Результат:#include <sdktools_sound> #include <sdktools_stringtables> #pragma newdecls required #define SOUND_LOAD "sound/custom/ur.mp3" #define SOUND_PLAY "*/custom/ur.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 (event.GetBool("headshot")) { int attacker[1]; attacker[0] = GetClientOfUserId(event.GetInt("attacker")); EmitSound(attacker, 1, SOUND_PLAY, _, _, _, _, 0.5); } }
Сообщения автоматически склеены:
Как отловить Change Callbacks конвара, то-есть как получить Handle плагина, который сменил данный конвар? Нужно это для отлавливания r_screenoverlay у игроков.
Ты лучший,я выйду за тебя замуж )
Сообщения автоматически склеены:
А можно сделать так что-бы
Я хочу поставить звук например 1 хедшот 1 звук второй хедшот,уже другой звук.и всё за один раунд !?
#include <sdktools_sound>
#include <sdktools_stringtables>
#pragma newdecls required
static const char iSounds[][] =
{
"custom/ur.mp3",
"custom/ur2.mp3",
"custom/ur3.mp3",
"custom/ur4.mp3",
}
public void OnPluginStart()
{
HookEvent("player_death", Event_PlayerDeath);
}
public void OnMapStart()
{
char buff[256];
for(int poss = 0; poss < sizeof(iSounds); poss++)
{
Format(buff, 63, "sound/%s", iSounds[poss]);
PrecacheSound(buff, true);
AddFileToDownloadsTable(buff);
}
}
public void Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast)
{
if(event.GetBool("headshot"))
{
int attacker[1];
attacker[0] = GetClientOfUserId(event.GetInt("attacker"));
EmitSound(attacker, 1, iSounds[GetRandomInt(0, sizeof(iSounds)-1)], _, _, _, _, 0.5);
}
}
Смотри,я стреляю в голову у меня один звук, а по тому кому я попал именно в голову,у него другой звукТипо рандомный звук?
C++:#include <sdktools_sound> #include <sdktools_stringtables> #pragma newdecls required static const char iSounds[][] = { "custom/ur.mp3", "custom/ur2.mp3", "custom/ur3.mp3", "custom/ur4.mp3", } public void OnPluginStart() { HookEvent("player_death", Event_PlayerDeath); } public void OnMapStart() { char buff[256]; for(int poss = 0; poss < sizeof(iSounds); poss++) { Format(buff, 63, "sound/%s", iSounds[poss]); PrecacheSound(buff, true); AddFileToDownloadsTable(buff); } } public void Event_PlayerDeath(Event event, const char[] name, bool dontBroadcast) { if(event.GetBool("headshot")) { int attacker[1]; attacker[0] = GetClientOfUserId(event.GetInt("attacker")); EmitSound(attacker, 1, iSounds[GetRandomInt(0, sizeof(iSounds)-1)], _, _, _, _, 0.5); } }
Нужно запретить заходить за наблюдателей, если ты уже играешь за КТ или Т. Если ты только подключился к серверу и не выбрал команду, запрета быть не должно. Реализуемо?
public void OnPluginStart()
{
AddCommandListener(SelectTeam, "jointeam");
}
public Action SelectTeam(int client, const char[] command, int args)
{
char sTeam[3];
GetCmdArg(1, sTeam, sizeof(sTeam));
int Team = StringToInt(sTeam);
if(GetClientTeam(client) > 1 && Team == 1)
return Plugin_Stop;
return Plugin_Continue;
}
Не компилитсяC++:public void OnPluginStart() { AddCommandListener(SelectTeam, "jointeam"); } public Action SelectTeam(int client, const char[] command, int args) { char sTeam[3]; GetCmdArg(1, sTeam, sizeof(sTeam)); int Team = StringToInt(sTeam); if(GetClientTeam(client) > 1 && Team == 1) return Plugin_Stop; return Plugin_Continue; }
Не компилится
public void OnPluginStart()
{
AddCommandListener(SelectTeam, "jointeam");
}
public Action SelectTeam(int client, const char[] command, int args)
{
static char team[4];
GetCmdArg(1, team, sizeof(team));
return GetClientTeam(client) > 1 && team[0] == '1' ? Plugin_Stop : Plugin_Continue;
}
и где этот параметр прописан, в исходнике плагина или в vmt спрайта?scale менее 0.25 (а может и 1.0) не влияет никак (захардкодили наверное)
Где угоднои где этот параметр прописан, в исходнике плагина или в vmt спрайта?