Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила форума

Этот раздел, как вы могли заметить по названию, предназначен для решения вопросов по поводу уже существующих модов и плагинов.
Пожалуйста, если у вас проблема с написанием плагина, не путайте этот раздел с разделом по скриптингу.
Для поиска плагинов и модов существует соответствующий раздел.

Название темы должно соответствовать содержанию. Темы с названием типа "Помогите", "Вопрос", "парни подскажите..." - будут удалены.
Все темы, не относящиеся к "Вопросам по модам и плагинам", будут удалены или перемещены в соответствующий раздел.

Правила оформления темы:
1. Помимо заголовка не забудьте верно сформулировать свой вопрос.
2. Выложите исходник (в тег кода + ) или ссылку на плагин который вызывает у вас вопросы.
3. Выложите лог с ошибками (если имеется) под спойлер

Музыка после захода на сервер и до выбора команды

, помогите допилить плагин..
Статус пользователя xSav
сообщение 1.12.2010, 23:22
Сообщение #1
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Есть плагин который проигрывает музыку при коннекте на сервер, затем он почему то повторяет это после захода и тушится музыка только если нажмешь команду.. если же не выберешь команду или же выберешь спектра то будет играть в лупе
код
Код
//Loading Music Also In Spectator Mode
//by Torch
//MP3 ONLY
//Copy MP3 file to sound/misc/loading.mp3
//Music will still play after the player has joined server until he chooses a team.
//Music will start playing again if the person goes back to spectator mode
//(not DEAD spectator, only Team Select>Spectator)

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

new bool:playing[32]

public plugin_init() {
    register_plugin("Loading Song","1.0","Torch")
    register_event( "ResetHUD", "song","b" )
    register_event("TextMsg","song","b","2&#Spec_Mode")
    for (new i=0;i<32;i++)
    {
        playing[i]=false
    }
    return PLUGIN_CONTINUE
}

public plugin_precache() {
    precache_sound("misc/loading.mp3")
    return PLUGIN_CONTINUE
}

public client_connect(id) {
    play_song(id)
    return PLUGIN_CONTINUE
}

public play_song(id) {
    client_cmd(id,"mp3 loop sound/misc/loading.mp3")
    return PLUGIN_HANDLED
}

public play_song_task(params[],id) {
    new player = params[0]
    client_cmd(player,"mp3 loop sound/misc/loading.mp3")
    return PLUGIN_HANDLED
}

public song(id) {
    new CsTeams:team
    team = cs_get_user_team(id)

    if ((team==CS_TEAM_SPECTATOR)||(team==CS_TEAM_UNASSIGNED))
    {
        if (playing[id]==false)
        {
            new params[1]
            params[0]=id
            set_task(0.5,"play_song_task",0,params,1,"a",1)
            playing[id]=true
        }
    }
    else
    {
            client_cmd(id,"mp3 stop")
            playing[id]=false
    }
    return PLUGIN_CONTINUE
}

Мне знакомый чуть чуть допилил его теперь он играет так как мне надо то есть только тогда когда игрок уже попал на сервер но не выбрал команду, и второе он сделал как я просил в любом случае даже если выбрал не только команду но и спектра звук тушится..
почти допиленый
Код
//Loading Music Also In Spectator Mode
//by Torch
//MP3 ONLY
//Copy MP3 file to sound/misc/loading.mp3
//Music will still play after the player has joined server until he chooses a team.
//Music will start playing again if the person goes back to spectator mode
//(not DEAD spectator, only Team Select>Spectator)

#include <amxmodx>
#include <amxmisc>
#include <cstrike>

new bool:playing[32]

public plugin_init() {
    register_plugin("Loading Song","1.0","Torch")
    register_event( "ResetHUD", "song","b" )
    register_event("TextMsg","song","b","2&#Spec_Mode")
    for (new i=0;i<32;i++)
    {
        playing[i]=false
    }
    return PLUGIN_CONTINUE
}

public plugin_precache() {
    precache_sound("cccp_sounds/ddt.mp3")
    return PLUGIN_CONTINUE
}



public play_song_task(params[],id) {
    new player = params[0]
    client_cmd(player,"mp3 loop sound/cccp_sounds/ddt.mp3")
    return PLUGIN_HANDLED
}

public song(id) {
    new CsTeams:team
    team = cs_get_user_team(id)

    if (team==CS_TEAM_UNASSIGNED)
    {
        if (playing[id]==false)
        {
            new params[1]
            params[0]=id
            set_task(0.5,"play_song_task",0,params,1,"a",1)
            playing[id]=true
        }
    }
    else
    {
            client_cmd(id,"mp3 stop")
            playing[id]=false
    }
    return PLUGIN_CONTINUE
}

но есть одно но.. плагин работает но в логах сыпятся ошибки
Код
L 12/01/2010 - 23:21:11: [CSTRIKE] Invalid player 5
L 12/01/2010 - 23:21:11: [AMXX] Displaying debug trace (plugin "loadingsong.amxx")
L 12/01/2010 - 23:21:11: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 12/01/2010 - 23:21:11: [AMXX]    [0] loadingsong.sma::song (line 41)
L 12/01/2010 - 23:21:11: [CSTRIKE] Invalid player 6
L 12/01/2010 - 23:21:11: [AMXX] Displaying debug trace (plugin "loadingsong.amxx")
L 12/01/2010 - 23:21:11: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 12/01/2010 - 23:21:11: [AMXX]    [0] loadingsong.sma::song (line 41)
L 12/01/2010 - 23:34:10: [CSTRIKE] Invalid player 7
L 12/01/2010 - 23:34:10: [AMXX] Displaying debug trace (plugin "loadingsong.amxx")
L 12/01/2010 - 23:34:10: [AMXX] Run time error 10: native error (native "cs_get_user_team")
L 12/01/2010 - 23:34:10: [AMXX]    [0] loadingsong.sma::song (line 41)

Помогите допилить чтоб было без ошибок
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя STR@TEG
сообщение 1.12.2010, 23:33
Сообщение #2
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

xSav,
Используй is_user_connected(id).
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя xSav
сообщение 2.12.2010, 7:17
Сообщение #3
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

STR@TEG,
В исходнике вместо
team = cs_get_user_team(id)
прописать
team = is_user_connected(id)
И все ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ser_UFL
сообщение 2.12.2010, 16:16
Сообщение #4


Стаж: 19 лет

Сообщений: 1632
Благодарностей: 637
Полезность: 819

xSav, нет конечно же...
Думаю, он имел ввиду, что перед проигрываем музыки нужно делать проверку, приконектился-ли игрок..
Хотя мне кажется, скорей всего нужно сделать проверку такого плана:
Код
if (1 <= id <= 32)

перед использованием cs_get_user_team
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя xSav
сообщение 2.12.2010, 17:44
Сообщение #5
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Эээ это вы меня щас запутали в конец.. можно мне написать что на что поменять я в кодинге все равно не понимаю ничего.. просто как скажете так и поставлю только прямо напишите что на что сменить
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя STR@TEG
сообщение 2.12.2010, 19:35
Сообщение #6
Стаж: 16 лет

Сообщений: 4186
Благодарностей: 1763
Полезность: 837

Не знаю как будет лучше, но выглядеть будет так:
1.
Код
if (is_user_connected(id))
{
    new CsTeams:team
    team = cs_get_user_team(id)
...

2.
Код
if (1 <= id <= 32)
{
    new CsTeams:team
    team = cs_get_user_team(id)
...

Одно из двух.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя xSav
сообщение 2.12.2010, 21:22
Сообщение #7
Стаж: 16 лет

Сообщений: 1131
Благодарностей: 174
Полезность: 126

Йопындыр.. запутали таки..
это
public song(id) {
new CsTeams:team
team = cs_get_user_team(id)

менять на это ?
if (is_user_connected(id))
{
new CsTeams:team
team = cs_get_user_team(id)
кажется не то чтото.. поподробнее можно ? простите тупицу
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ser_UFL
сообщение 2.12.2010, 22:11
Сообщение #8


Стаж: 19 лет

Сообщений: 1632
Благодарностей: 637
Полезность: 819

код
Код
public song(id) {
    if (1 <= id <= 32)
    {
        new CsTeams:team
        team = cs_get_user_team(id)

        if (team==CS_TEAM_UNASSIGNED)
        {
            if (playing[id]==false)
            {
                new params[1]
                params[0]=id
                set_task(0.5,"play_song_task",0,params,1,"a",1)
                playing[id]=true
            }
        }
        else
        {
                client_cmd(id,"mp3 stop")
                playing[id]=false
        }
    }
    return PLUGIN_CONTINUE
}


наверно так.
аналогично и с другим вариантом..
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Тема закрытаНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: