Иконка ресурса

Observe Client 1.2.5

raven18

Участник
Сообщения
1
Реакции
0
Re: Observe Client v1.2.3

После установки этого плагина на серве у меня перебанило половину игроков, в том числе и админов!:angry2::angry2::angry2::angry2:
 

kv.acid

Участник
Сообщения
2,025
Реакции
755
Re: Observe Client v1.2.3

После установки этого плагина на серве у меня перебанило половину игроков, в том числе и админов!
А причем тут половина народа? Это привилегия только для админов вроде :) И скажи пожалуйста, причина бана какая была? Оффтоп
 

Phoenixcrazy

Участник
Сообщения
211
Реакции
6
Re: Observe Client v1.2.3

Вот внутренность adminmenu_custom
Оффтоп
В чем ошибка почему может не работать..
При выборе в меню пункта авто наблюдения пишет ([SM] Не найден подходящий игрок Невозможно найти цель, пожалуйста попробуйте позже.)
Народ на сервере есть и когда в ручную вводеш то все нормально показывает..
 

ptahalife

Участник
Сообщения
1
Реакции
0
Re: Observe Client v1.2.3

и куда он ету демку записывает???
 

KeNt606

Участник
Сообщения
68
Реакции
2
Re: Observe Client v1.2.3

Куда это надо прописывать adminmenu_custom или в smsuper.ini?
И возможно ли наблюдение за игроком другой команды, если стоит ограничение в server.cfg?
 

noBap

Участник
Сообщения
395
Реакции
169
Re: Observe Client v1.2.3
И возможно ли наблюдение за игроком другой команды, если стоит ограничение в server.cfg?
 
Последнее редактирование модератором:

KeNt606

Участник
Сообщения
68
Реакции
2
Re: Observe Client v1.2.3

Спасибо, а есть такой, только чтобы из меню выбирать за кем наблюдать?
 
Последнее редактирование модератором:

KapaT

Эгоист
Сообщения
1,988
Реакции
535
Re: Observe Client v1.2.3

этот плагин чем тебе плох? Observe Client v1.2.3
 

kv.acid

Участник
Сообщения
2,025
Реакции
755
Re: Observe Client v1.2.3

KeNt606, Читайте первый пост внимательно, если не доходит читайте еще раз и еще внимательнее!
 

DrJekil

Участник
Сообщения
296
Реакции
6
Re: Observe Client v1.2.3

Меню не появляется, все закинул согласно дирректориям. у меня sm 1.4.1
 

Серый™

CS:S Server
Сообщения
2,925
Реакции
1,376
Re: Observe Client v1.2.3

DrJekil, Меню прописывается ручками.
 

DrJekil

Участник
Сообщения
296
Реакции
6
Re: Observe Client v1.2.3

DrJekil, Меню прописывается ручками.

Дык, прописываю, поделитесь, как прописывать, все пред посты перепробывал
Получилось, просто не в то меню запихнул, но жму на опцию в меню и ничего не происходит, никакого выбора игрока
Короче, я запихнул его в главное меню, а не в подменю, все заработало, всем спс )
 
Последнее редактирование:

Эндрю

Участник
Сообщения
3
Реакции
0
Re: Observe Client v1.2.3

если вам не сложно скиньте работачий adminmenu_custom.txt
 

FallenNT

Участник
Сообщения
23
Реакции
0
Re: Observe Client v1.2.3

adminmenu_custom.txt

"Commands"
{
"Меню наблюдения"
{
"Начать наблюдение"
{
"admin" "sm_kick"
"cmd" "sm_observe #1"
"execute" "player"
"1"
{
"type" "groupplayer"
"method" "name"
"title" "Наблюдать за:"
}
}
"Закончить наблюдение"
{
"cmd" "sm_endobserve"
"admin" "sm_kick"
"execute" "player"
}
}
}
 

Metamoto

Участник
Сообщения
407
Реакции
14
Re: Observe Client v1.2.3

как понять помогает следить за игроком? Обьясните
 

KapaT

Эгоист
Сообщения
1,988
Реакции
535
Re: Observe Client v1.2.3

Хочу добавить красок в плагин (а именно, что бы при выборе игрока в чат писался ник цвета команды {teamcolor}). Добавил #include <morecolors> и везде прописал CPrintToChat, цвета рабоатют а вот конкретно {teamcolor} не хочет, вместо цвета пишет тег цвета. Подскажите где загвоздка.

.sp
PHP:
#include <morecolors>  
#include <sourcemod>
#include <sdktools>

#pragma semicolon 1

#define VERSION "1.2.3"
#define NAME "Observe Client"

#define ADMINFLAG ADMFLAG_KICK

public Plugin:myinfo = 
{
    name = NAME,
    author = "WhiteWolf, puopjik, psychonic",
    description = "Observe client when dead",
    version = VERSION,
    url = "http://www.whitewolf.us"
};

/* Credits:
    Mani - Showed me his observer code from MAP
*/

/* Globals */
new g_offObserverTarget;
new g_clientObserveTarget[MAXPLAYERS+1];
new bool:g_useSteamBans = false;


public OnPluginStart() {
    new Handle:conVar;
    
    CreateConVar("observe_version", VERSION, NAME, FCVAR_SPONLY|FCVAR_REPLICATED|FCVAR_NOTIFY);
    
    HookEvent("player_spawn", EventPlayerSpawn);
    HookEvent("player_death", EventPlayerDeath);
    
    
    RegAdminCmd("sm_observe", CommandObserve, ADMINFLAG, "Spectate a player when dead.");
    RegAdminCmd("sm_endobserve", CommandEndObserve, ADMINFLAG, "End spectating a player.");
    
    LoadTranslations("common.phrases");
    LoadTranslations("observe.phrases");
    
    g_offObserverTarget = FindSendPropOffs("CBasePlayer", "m_hObserverTarget");    
    if(g_offObserverTarget == -1) {
        SetFailState("Expected to find the offset to m_hObserverTarget, couldn't.");
    }
    
    conVar = FindConVar("sbsrc_version");
    if(conVar != INVALID_HANDLE) {
        g_useSteamBans = true;
    }
}

/********************************************************************************
    Events
*********************************************************************************/

public Action:EventPlayerSpawn(Handle:event, const String:name[], bool:dontBroadcast) {
    /* Suggestions for improvement, or single-shot method? */
    new target = GetClientOfUserId(GetEventInt(event, "userid"));
    for(new client = 1; client <= MaxClients; client++) {
        if(g_clientObserveTarget[client] == target && (IsClientObserver(client) || !IsPlayerAlive(client))) {
            SetClientObserver(client, target, true);
            return Plugin_Handled;
        }
    }
    return Plugin_Handled;
}

public Action:EventPlayerDeath(Handle:event, const String:name[], bool:dontBroadcast) {
    new client = GetClientOfUserId(GetEventInt(event, "userid"));
    if(g_clientObserveTarget[client] > 0) {
        new target = g_clientObserveTarget[client];
        if(!isValidHumanClient(target)) {
            g_clientObserveTarget[client] = 0;
            return Plugin_Handled;
        }
        
        if(IsPlayerAlive(target)) {
            SetClientObserver(client, target, true);
        }
    }
    return Plugin_Handled;
}
        
public OnClientDisconnect(client) {
    new String:clientName[MAX_NAME_LENGTH];
    GetClientName(client, clientName, MAX_NAME_LENGTH);
    
    g_clientObserveTarget[client] = 0;
    for(new i = 1; i <= MaxClients; i++) {
        if(g_clientObserveTarget[i] == client) {
            g_clientObserveTarget[i] = 0;
            if (IsClientInGame(i) && IsClientConnected(i)) {
                CPrintToChat(i, "%t", "Target Left", clientName);
            }
        }
    }
}

/********************************************************************************
    Commands
*********************************************************************************/

public Action:CommandEndObserve(client, args) {
    g_clientObserveTarget[client] = 0;
    CPrintToChat(client, "%t", "End Observe");
    return Plugin_Handled;
}

public Action:CommandObserve(client, args) {
    if(GetCmdArgs() < 1) {
        ReplyToCommand(client, "Usage: sm_observe <name or #userid>");
        return Plugin_Handled;
    }
    
    decl String:targetName[MAX_NAME_LENGTH], String:targetSteamID[MAX_NAME_LENGTH];
    
    GetCmdArg(1, targetName, sizeof(targetName)); //get username part from arguments
    
    new targetClient = FindTarget(client, targetName, false, false);
    if(targetClient == -1) {
        CPrintToChat(client, "%t", "Unknown Target");
        return Plugin_Handled;
    }
    
    GetClientName(targetClient, targetName, sizeof(targetName));
    GetClientAuthString(targetClient, targetSteamID, sizeof(targetSteamID));
    g_clientObserveTarget[client] = targetClient;
    
    if(IsClientObserver(client) || !IsPlayerAlive(client)) {
        if(!SetClientObserver(client, targetClient, true)) {
            CPrintToChat(client, "%t", "Observe Failed", targetName);
        }
    } else {
        CPrintToChat(client, "%t", "Observe on Spec", targetName, targetSteamID);
    }
    
    return Plugin_Handled;
}

/********************************************************************************
    Helper Methods
*********************************************************************************/

public bool:isValidHumanClient(client) {
    if(client > 0 && IsClientInGame(client) && IsClientConnected(client)) {
        return true;
    }
    return false;
}
        
public bool:SetClientObserver(client, target, bool:sendMessage) {
    if(!isValidHumanClient(client) || !isValidHumanClient(target)) {
        return false;
    }
    
    SetEntDataEnt2(client, g_offObserverTarget, target, true);
    
    if(sendMessage) {
        SendClientObserveMessage(client, target);
    }
    
    if(g_useSteamBans) {
        ClientCommand(client, "sb_status");
    }
        
    return true; //we assume it went through, else SM would throw a native error and we wouldn't get here anyway
}

public SendClientObserveMessage(client, target) {
    decl String:targetName[MAX_NAME_LENGTH], String:targetSteamID[65];
    GetClientName(target, targetName, MAX_NAME_LENGTH);
    GetClientAuthString(target, targetSteamID, 65);
    CPrintToChat(client, "%t", "Observing", targetName, targetSteamID);
}

observe.phrases
PHP:
"Phrases"
{
    "Observing"
    {
        "#format"    "{1:s},{2:s}"
        "en"    "You are now observing {1} ({2})."
        "ru"    "{olive}Вы наблюдаете за {teamcolor}{1} {green}({2})."
    }
    "Observe on Spec"
    {
        "#format" "{1:s},{2:s}"
        "en"    "When you are dead or switch to spectator you will observe {1} ({2})"
        "ru"    "{olive}Когда вы умрете или перейдете в наблюдающие камера зафиксируется за {teamcolor}{1} {green}({2})"
    }
    "Observe Failed"
    {
        "#format" "{1:s}"
        "en"    "Unable to observe target {1}, unspecified error."
        "ru"    "{olive}Наблюдение за целью {teamcolor}{1} {olive}невозможно, неизвесная ошибка."
    }

    "Target Left"
    {
        "#format" "{1:s}"
        "en" "You are no longer observing {1}, target has left the server."
        "ru" "{olive}Вы больше не наблюдаете за {teamcolor}{1}, {olive}цель покинула игру."
    }
    "End Observe"
    {
        "en"    "You are no longer observing anyone."
        "ru"    "{olive}Вы больше ни за кем не наблюдаете."
    }

    "Unknown Target"
    {
        "en" "Couldn't find the target, please try again."
        "ru" "{olive}Невозможно найти цель, пожалуйста попробуйте позже."
    }
}
 
Сверху Снизу