При компиляции пишет undefined symbol "client"

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Вот исходник:
PHP:
#include <sourcemod>
#include <sdktools>

public OnPluginStart()
{
    HookEvent("round_start", Round_Start, EventHookMode_Post);
}

public Round_Start(Handle:event, const String:name[], bool:dontBroadcast)
{
        ClientCommand(client, "play round/play.mp3");
}
При компиляции пишет это: undefined symbol "client"
 
Последнее редактирование:

Игорь Охремчук

Админ uaplayer.com
Сообщения
240
Реакции
340
Re: Что-то не добавил...

Вот исходник:
C-подобный:
#include <sourcemod>
#include <sdktools>

public OnPluginStart()
{
    HookEvent("round_start", Round_Start, EventHookMode_Post);
}

public Round_Start(Handle:event, const String:name[], bool:dontBroadcast)
{
        ClientCommand(client, "play round/play.mp3");
}
При компиляции пишет это: undefined symbol "client"

Вообще-то по-сути следует перебрать клиентов, которые в игре.
PHP:
public Round_Start(Handle:event, const String:name[], bool:dontBroadcast)
{
	for(new client = 1; client <= MaxClients; client++)
		if(IsClientInGame(client))
			ClientCommand(client, "play round/play.mp3");
}
 

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Re: Что-то не добавил...

Все работает, но музыка начинает играть на FreezeTime...
Мне надо когда FreezeTime кончиться, и пойдет простое время раунда)
Как исправить?
 

tooshkan4uk

Участник
Сообщения
455
Реакции
446
Re: Что-то не добавил...

Все работает, но музыка начинает играть на FreezeTime...
Мне надо когда FreezeTime кончиться, и пойдет простое время раунда)
Как исправить?


C-подобный:
public OnPluginStart()
{
    HookEvent("round_freeze_end", Round_Start, EventHookMode_Post);
}
 

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Re: Что-то не добавил...

Еще вопрос...
Как убрать звуки:
В начале раунда (.../cstrike/sound/radio/go.wav)
И в конце раунда (.../cstrike/sound/radio/terwin.wav и ctwin.wav)

И убрать надписи в конце раунда:
Terrorists Win! и Counter-Terrorists Win!
 

Игорь Охремчук

Админ uaplayer.com
Сообщения
240
Реакции
340
Re: Что-то не добавил...

Еще вопрос...
Как убрать звуки:
В начале раунда (.../cstrike/sound/radio/go.wav)
И в конце раунда (.../cstrike/sound/radio/terwin.wav и ctwin.wav)

И убрать надписи в конце раунда:
Terrorists Win! и Counter-Terrorists Win!

PHP:
#include <sourcemod>
#include <sdktools>

public OnPluginStart()
{
	HookEvent("round_freeze_end", Event_RoundFreezeEnd);
	HookEvent("round_end", Event_RoundEnd);
}

public OnMapStart()
{
	PrecacheSound("radio/go.wav");
	PrecacheSound("radio/terwin.wav");
	PrecacheSound("radio/ctwin.wav");
}

public Event_RoundFreezeEnd(Handle:event, const String:name[], bool:dontBroadcast)
{
	for(new client = 1; client <= MaxClients; client++)
		if(IsClientInGame(client) && !IsFakeClient(client))
			StopSound(client, SNDCHAN_STATIC, "radio/go.wav");
}

public Event_RoundEnd(Handle:event, const String:name[], bool:dontBroadcast)
{
	new winner = GetEventInt(event, "winner");
	
	if(winner <= 1)
		return;
	
	for(new client = 1; client <= MaxClients; client++)
		if(IsClientInGame(client) && !IsFakeClient(client))
			StopSound(client, SNDCHAN_STATIC, winner == 2 ? "radio/terwin.wav":"radio/ctwin.wav");
}

А на счёт надписи хз. Попробуй хукнуть "round_end" пре модом и bool:dontBroadcast установить в true, или установи свой месседж в евент
C-подобный:
round_end 

Note: The round ended Name: 	 round_end 
Structure: 	 
byte 	               winner 	               winner team/user id 
byte 	               reason 	               reason why the team won 
string 	               message 	               end round message
 
Последнее редактирование:

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Re: Что-то не добавил...

Звук при победе убрался.
А вот на начале раунда нет.
Заметил что там несколько звуков...
Попробовал:
PHP:
#include <sourcemod>
#include <sdktools>

public OnPluginStart()
{
    HookEvent("round_freeze_end", Event_RoundFreezeEnd);
}

public OnMapStart()
{
    PrecacheSound("radio/go.wav");
    PrecacheSound("radio/locknload.wav");
    PrecacheSound("radio/letsgo.wav");
    PrecacheSound("radio/moveout.wav");
}

public Event_RoundFreezeEnd(Handle:event, const String:name[], bool:dontBroadcast)
{
    for(new client = 1; client <= MaxClients; client++)
        if(IsClientInGame(client) && !IsFakeClient(client))
            StopSound(client, SNDCHAN_STATIC, "radio/go.wav");

    for(new client = 1; client <= MaxClients; client++)
        if(IsClientInGame(client) && !IsFakeClient(client))
            StopSound(client, SNDCHAN_STATIC, "radio/locknload.wav");

    for(new client = 1; client <= MaxClients; client++)
        if(IsClientInGame(client) && !IsFakeClient(client))
            StopSound(client, SNDCHAN_STATIC, "radio/letsgo.wav");

    for(new client = 1; client <= MaxClients; client++)
        if(IsClientInGame(client) && !IsFakeClient(client))
            StopSound(client, SNDCHAN_STATIC, "radio/moveout.wav");
}
Не помогает...
 

Игорь Охремчук

Админ uaplayer.com
Сообщения
240
Реакции
340
Re: Что-то не добавил...

PHP:
#include <sourcemod>
#include <sdktools>

public OnPluginStart()
{
	AddNormalSoundHook(NormalSHook:SoundsHook);
}

public OnMapStart()
{
    PrecacheSound("radio/go.wav");
    PrecacheSound("radio/locknload.wav");
    PrecacheSound("radio/letsgo.wav");
    PrecacheSound("radio/moveout.wav");
}

public Action:SoundsHook(clients[64], &numClients, String:sample[PLATFORM_MAX_PATH], &entity, &channel, &Float:volume, &level, &pitch, &flags)
{
	if(StrEqual(sample, "radio/go.wav", false) || 
	StrEqual(sample, "radio/locknload.wav", false) ||
	StrEqual(sample, "radio/letsgo.wav", false) ||
	StrEqual(sample, "radio/moveout.wav", false))
		return Plugin_Stop;
	else
		return Plugin_Continue;
}
Как вариант.
 

EPacker2

3D-моделист
Сообщения
1,040
Реакции
759
Не хочет... :(

Мб просто заменить начальный звук на мой?
PHP:
#pragma semicolon 1

#include <sourcemod> 
#include <sdktools> 

public OnPluginStart() 
{ 
    HookEvent("round_freeze_end", Event_RoundFreezeEnd); 
} 

public OnMapStart() 
{
    AddFileToDownloadsTable("sound/ZoMb1e.ru/round/start.mp3");
    PrecacheSound("ZoMb1e.ru/round/start.mp3");
    
    PrecacheSound("radio/go.wav"); 
    PrecacheSound("radio/locknload.wav"); 
    PrecacheSound("radio/letsgo.wav"); 
    PrecacheSound("radio/moveout.wav"); 
} 

public Event_RoundFreezeEnd(Handle:event, const String:name[], bool:dontBroadcast) 
{ 
    new playersConnected = GetMaxClients();
    for(new i = 1; i <= playersConnected; i++)
    { 
        if(IsClientInGame(i) && !IsFakeClient(i)) 
        {
            StopSound(i, SNDCHAN_STATIC, "radio/go.wav");
            StopSound(i, SNDCHAN_STATIC, "radio/locknload.wav");
            StopSound(i, SNDCHAN_STATIC, "radio/letsgo.wav");
            StopSound(i, SNDCHAN_STATIC, "radio/moveout.wav");
            EmitSoundToClient(i, "ZoMb1e.ru/round/start.mp3", _, _, _, _, 1.0);
        }
    }    
}
Все-равно не помогает... :(
 
Сверху Снизу