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

Тема в разделе "Программирование / Скриптинг", создана пользователем EPacker2, 29 май 2012.

  1. EPacker2

    EPacker2 3D-моделист

    Сообщения:
    1.020
    Симпатии:
    616
    Вот исходник:
    PHP:
    #include <sourcemod>
    #include <sdktools>

    public OnPluginStart()
    {
        
    HookEvent("round_start"Round_StartEventHookMode_Post);
    }

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

    Игорь Охремчук Админ uaplayer.com

    Сообщения:
    243
    Симпатии:
    366
    Re: Что-то не добавил...

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

    EPacker2 3D-моделист

    Сообщения:
    1.020
    Симпатии:
    616
    Re: Что-то не добавил...

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

    tooshkan4uk http://cssrus.ru

    Сообщения:
    423
    Симпатии:
    369
    Re: Что-то не добавил...


    Код:
    public OnPluginStart()
    {
        HookEvent("round_freeze_end", Round_Start, EventHookMode_Post);
    }
     
    EPacker2 нравится это.
  5. EPacker2

    EPacker2 3D-моделист

    Сообщения:
    1.020
    Симпатии:
    616
    Re: Что-то не добавил...

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

    И убрать надписи в конце раунда:
    Terrorists Win! и Counter-Terrorists Win!
     
  6. Игорь Охремчук

    Игорь Охремчук Админ uaplayer.com

    Сообщения:
    243
    Симпатии:
    366
    Re: Что-то не добавил...

    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 1client <= MaxClientsclient++)
            if(
    IsClientInGame(client) && !IsFakeClient(client))
                
    StopSound(clientSNDCHAN_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 1client <= MaxClientsclient++)
            if(
    IsClientInGame(client) && !IsFakeClient(client))
                
    StopSound(clientSNDCHAN_STATICwinner == "radio/terwin.wav":"radio/ctwin.wav");
    }
    А на счёт надписи хз. Попробуй хукнуть "round_end" пре модом и bool:dontBroadcast установить в true, или установи свой месседж в евент
    Код:
    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
     
    Последнее редактирование: 29 май 2012
    Andrey и EPacker2 нравится это.
  7. EPacker2

    EPacker2 3D-моделист

    Сообщения:
    1.020
    Симпатии:
    616
    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 1client <= MaxClientsclient++)
            if(
    IsClientInGame(client) && !IsFakeClient(client))
                
    StopSound(clientSNDCHAN_STATIC"radio/go.wav");

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

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

        for(new 
    client 1client <= MaxClientsclient++)
            if(
    IsClientInGame(client) && !IsFakeClient(client))
                
    StopSound(clientSNDCHAN_STATIC"radio/moveout.wav");
    }
    Не помогает...
     
  8. Игорь Охремчук

    Игорь Охремчук Админ uaplayer.com

    Сообщения:
    243
    Симпатии:
    366
    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], &numClientsString: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;
    }
    Как вариант.
     
  9. EPacker2

    EPacker2 3D-моделист

    Сообщения:
    1.020
    Симпатии:
    616
    Не хочет... :(

    Мб просто заменить начальный звук на мой?
    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 
    1<= playersConnectedi++)
        { 
            if(
    IsClientInGame(i) && !IsFakeClient(i)) 
            {
                
    StopSound(iSNDCHAN_STATIC"radio/go.wav");
                
    StopSound(iSNDCHAN_STATIC"radio/locknload.wav");
                
    StopSound(iSNDCHAN_STATIC"radio/letsgo.wav");
                
    StopSound(iSNDCHAN_STATIC"radio/moveout.wav");
                
    EmitSoundToClient(i"ZoMb1e.ru/round/start.mp3"____1.0);
            }
        }    
    }
    Все-равно не помогает... :(