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

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

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

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

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

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

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

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

Connect IP Client v1.2 Проблема

Статус пользователя ASPT
сообщение 28.10.2012, 21:26
Сообщение #1


Стаж: 14 лет

Сообщений: 44
Благодарностей: 4
Полезность: 71

Бывает игрок коннектится на сервер и не отображается его ник:

Незнаете в чем может быть проблема?
Исходник
Код
/*    

Changelog:
1.0 - релиз. Переделанная версия плагина join_ip_new (3.0)
Изменения: уменьшен код, добавлена поддержка multilanguage (en и ru) и добавлен квар amx_join_authid

Квары:
connect_client_msg <0|1|2|3|4|5|6> (по-умолчанию 1)
  connect_client_msg 0 - отключает плагин (в том числе и звук)
  connect_client_msg 1 - Показывает сообщение в чат только тогда, когда игрок соединяется на сервер.
  connect_client_msg 2 - Показывает сообщение в чат только тогда, когда игрок присоединился за команду.
  connect_client_msg 3 - Показывет сообщение в чат тогда, когда игрок соединяется на сервер и когда присоединился за команду.
  connect_client_msg 4 - Показывет сообщение в чат тогда, когда игрок присоединился за команду и когда вышел с сервера.
  connect_client_msg 5 - Показывет сообщение в чат тогда,когда игрок соединяется на сервер и когда вышел с сервера.
  connect_client_msg 6 - Показывает сообщение во время соединения, присоединения за команду и выхода с сервера игрока.
  
connect_client_country <1|0> - вкл/выкл показ страны (по-умолчанию 1)
connect_client_ip <1|0> - вкл/выкл показ ip-адреса (по-умолчанию 1)
connect_client_authid <1|0> - вкл/выкл показ AuthID игрока (по-умолчанию 1)
connect_client_sound <1|0> - вкл/выкл воспроизведение звука, сообщающего о том, что игрок присоединился за команду (по-умолчанию 1)

1.1:
Изменения: по просьбе изменил перевод в ланг-файле
с CONNECT_IP_CONNECTING = соединяется на сервер
на CONNECT_IP_CONNECTING = заходит на сервер,
не воспроизводился звук в случаях connect_client_msg <1|3|5>,
добавил квар connect_client_sound,
подправил недочет, связанный с multi-lingual поддержкой.
1.2
в предыдущей версии допустил огромный косяк из-за
недочёта, связанного с multi-lingual поддержкой.
Эту версию перепроверил разными способами - всё ок
*/


#include <amxmodx>
#include <amxmisc>
#include <geoip>
//#include <colorchat>

#define MAXPLAYER 32
new maxplayers=MAXPLAYER

new id_send;
new temp;
new TeamInfo;
new SayText;

new g_CvarJoinMsg;
new g_CvarJoinCountry;
new g_CvarJoinIp;
new g_CvarJoinAuthId;
new g_CvarJoinSound
new Players[32]
new send_msg[200]

new bool:IsConnected[MAXPLAYER + 1];

new g_szSoundFile[] = "buttons/blip1.wav";

public plugin_init()
{
    register_plugin("Connect IP Client", "1.2", "hunter");
    register_dictionary("connect_ip_client.txt")

    g_CvarJoinMsg = register_cvar("connect_client_msg", "6")
    g_CvarJoinCountry = register_cvar("connect_client_country", "1")
    g_CvarJoinIp = register_cvar("connect_client_ip", "1")
    g_CvarJoinAuthId = register_cvar("connect_client_authid", "1")
    g_CvarJoinSound = register_cvar("connect_client_sound", "1")    
    
    TeamInfo = get_user_msgid("TeamInfo");
    SayText = get_user_msgid("SayText");
}

public plugin_precache()
{
    precache_sound(g_szSoundFile);
}
public client_putinserver(player)
{
    temp=get_pcvar_num(g_CvarJoinMsg);
    IsConnected[player] = true;
    if((temp >= 2 && temp<=4) || temp>=6)
    {
        show_msg(player,"CONNECT_IP_JOINED")    
        client_cmd(0,"hud_saytext_time 8")
        client_cmd(0,"hud_deathnotice_time 8") //lol just my own remove if needed        
    }
    if (temp>=1 && get_pcvar_num(g_CvarJoinSound)) client_cmd(0, "spk %s", g_szSoundFile)
}

public client_disconnect(player)
{
    IsConnected[player] = false;
    if(get_pcvar_num(g_CvarJoinMsg) >= 4) show_msg(player,"CONNECT_IP_DISCONNECTED");    
}
public client_authorized(player)
{
    temp=get_pcvar_num(g_CvarJoinMsg);
    IsConnected[player] = false;
    if(temp == 1 || temp==3 || temp>=5) show_msg(player,"CONNECT_IP_CONNECTING")
}

public show_msg(player,lang_msg[]){
    new authid[35],user[32],ip[15],Country[33],msg[200],len;
    get_user_name(player,user,31)
    get_user_ip(player,ip,15,1)
    get_user_authid(player,authid,34)
    geoip_country(ip,Country)
    
    len=format(msg,199,"^x04%s^x01",user);
    if (get_pcvar_num(g_CvarJoinIp)==1) len+=format(msg[len],199," (^x03%s^x01)",ip);
    if (get_pcvar_num(g_CvarJoinAuthId)==1) len+=format(msg[len],199," (^x03%s^x01)",authid);
    len+=format(msg[len],199," %s","%L");
    if (get_pcvar_num(g_CvarJoinCountry)==1) len+=format(msg[len],199," (^x03%s^x01)",Country);
    format(msg[len],199,".");
    print_in_chat(msg,lang_msg);    
}


public print_in_chat(msg[200],lang_msg[])
{
    id_send=get_player()
    
    if (id_send!=-1)
    {
        new team,id
        new team_name[10]        
        team = get_user_team(id_send);
        team_name=get_team_name(team)
                
        format(msg[192],199,"^0")

        get_players(Players, maxplayers,"c")
        for (new playerIdx=0;playerIdx<maxplayers; ++playerIdx)
        {
            id = Players[playerIdx];
            if (!IsConnected[id]) continue

            send_msg=msg;
            formatex(send_msg,199,msg,id,lang_msg)
            
            Team_Info(id,id_send,MSG_ONE,"TERRORIST");
            
            message_begin(MSG_ONE, SayText,{0,0,0},id);
            write_byte(id_send);
            write_string(send_msg);
            message_end();

            Team_Info(id,id_send,MSG_ONE,team_name);
        }        
        return 1;
    }
    return 0;
}

Team_Info(id_send,id_change,type,team[])
{
    message_begin(type, TeamInfo,_,id_send);
    write_byte(id_change);
    write_string(team);
    message_end();

    return 1;
}

get_player()
{
    for( new plr = 1; plr <= maxplayers; plr++ )
    {
        if( IsConnected[plr] )
        {
            return plr;
        }
    }
    
    return -1;
}

get_team_name(team)
{
    new team_name[10]
    switch(team)
    {
        case 0:
        {
            team_name=""
        }
        case 1:
        {
            team_name="TERRORIST"
        }
        case 2:
        {
            team_name="CT"
        }
        case 3:
        {
            team_name="SPECTATOR"            
        }
    }
    return team_name
}


Отредактировал: ASPT, - 28.10.2012, 22:02
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Safety1st
сообщение 28.10.2012, 21:49
Сообщение #2
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Код
format(msg[192],199,"^0")

Это меня просто убило. Начиная с бессмысленности самого действия))

Код кривой sad.gif Там добро всего нагородили) Удивительно, как даже такие простые вещи можно извратить :D

Может попробуете убрать вывод SteamID или IP? Вдруг поможет... По коду вроде ник не должен исчезать %

Отредактировал: Safety1st, - 28.10.2012, 22:01
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя ASPT
сообщение 28.10.2012, 22:00
Сообщение #3


Стаж: 14 лет

Сообщений: 44
Благодарностей: 4
Полезность: 71

Цитата(Safety1st @ 28.10.2012, 21:49) *
Код
format(msg[192],199,"^0")

Это меня просто убило. Начиная с бессмысленности самого действия))

Код кривой sad.gif Там добро всего нагородили) Удивительно, как даже такие простые вещи можно извратить :D

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